@loafmarkets/ui 0.0.8 → 0.1.0

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.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var React5 = require('react');
3
+ var o = require('react');
4
4
  var reactSlot = require('@radix-ui/react-slot');
5
5
  var classVarianceAuthority = require('class-variance-authority');
6
6
  var clsx = require('clsx');
@@ -27,9 +27,8 @@ function _interopNamespace(e) {
27
27
  return Object.freeze(n);
28
28
  }
29
29
 
30
- var React5__namespace = /*#__PURE__*/_interopNamespace(React5);
30
+ var o__namespace = /*#__PURE__*/_interopNamespace(o);
31
31
 
32
- // src/components/button.tsx
33
32
  function cn(...inputs) {
34
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
35
34
  }
@@ -64,7 +63,7 @@ var buttonVariants = classVarianceAuthority.cva(
64
63
  }
65
64
  }
66
65
  );
67
- var Button = React5__namespace.forwardRef(
66
+ var Button = o__namespace.forwardRef(
68
67
  ({ className, variant, size, radius, asChild = false, ...props }, ref) => {
69
68
  const Comp = asChild ? reactSlot.Slot : "button";
70
69
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -102,11 +101,11 @@ var badgeVariants = classVarianceAuthority.cva(
102
101
  }
103
102
  }
104
103
  );
105
- var Badge = React5__namespace.forwardRef(
104
+ var Badge = o__namespace.forwardRef(
106
105
  ({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("span", { ref, className: cn(badgeVariants({ variant, size }), className), ...props })
107
106
  );
108
107
  Badge.displayName = "Badge";
109
- var Card = React5__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
108
+ var Card = o__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
110
109
  "div",
111
110
  {
112
111
  ref,
@@ -118,11 +117,11 @@ var Card = React5__namespace.forwardRef(({ className, ...props }, ref) => /* @__
118
117
  }
119
118
  ));
120
119
  Card.displayName = "Card";
121
- var CardHeader = React5__namespace.forwardRef(
120
+ var CardHeader = o__namespace.forwardRef(
122
121
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
123
122
  );
124
123
  CardHeader.displayName = "CardHeader";
125
- var CardTitle = React5__namespace.forwardRef(
124
+ var CardTitle = o__namespace.forwardRef(
126
125
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
127
126
  "h3",
128
127
  {
@@ -133,15 +132,15 @@ var CardTitle = React5__namespace.forwardRef(
133
132
  )
134
133
  );
135
134
  CardTitle.displayName = "CardTitle";
136
- var CardDescription = React5__namespace.forwardRef(
135
+ var CardDescription = o__namespace.forwardRef(
137
136
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-slate-500", className), ...props })
138
137
  );
139
138
  CardDescription.displayName = "CardDescription";
140
- var CardContent = React5__namespace.forwardRef(
139
+ var CardContent = o__namespace.forwardRef(
141
140
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("px-6 pb-6 pt-2 text-sm text-slate-600", className), ...props })
142
141
  );
143
142
  CardContent.displayName = "CardContent";
144
- var CardFooter = React5__namespace.forwardRef(
143
+ var CardFooter = o__namespace.forwardRef(
145
144
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center border-t border-slate-100 px-6 py-4", className), ...props })
146
145
  );
147
146
  CardFooter.displayName = "CardFooter";
@@ -159,7 +158,7 @@ var defaultFormatSignedCurrency = (value) => {
159
158
  const sign = value >= 0 ? "+" : "-";
160
159
  return `${sign}${defaultFormatCurrency(Math.abs(value))}`;
161
160
  };
162
- var PortfolioSummary = React5__namespace.forwardRef(
161
+ var PortfolioSummary = o__namespace.forwardRef(
163
162
  ({
164
163
  availableCash,
165
164
  portfolioValue,
@@ -232,12 +231,12 @@ var PortfolioSummary = React5__namespace.forwardRef(
232
231
  }
233
232
  );
234
233
  PortfolioSummary.displayName = "PortfolioSummary";
235
- var clamp = (v, min, max) => Math.min(max, Math.max(min, v));
236
- var fmt0 = (v) => Math.abs(v).toLocaleString(void 0, { maximumFractionDigits: 0 });
234
+ var clamp = (v2, min, max) => Math.min(max, Math.max(min, v2));
235
+ var fmt0 = (v2) => Math.abs(v2).toLocaleString(void 0, { maximumFractionDigits: 0 });
237
236
  var normalizeLevels = (levels = []) => levels.filter((level) => Number.isFinite(level.price) && level.price > 0 && Number.isFinite(level.amount) && level.amount > 0);
238
237
  var estimateMarketBuyFromUsd = (levels = [], usdAmount) => {
239
238
  if (!Number.isFinite(usdAmount) || usdAmount <= 0) return { tokens: 0, value: 0, avgPrice: null };
240
- const asks = normalizeLevels(levels).sort((a, b) => a.price - b.price);
239
+ const asks = normalizeLevels(levels).sort((a2, b2) => a2.price - b2.price);
241
240
  let remainingUsd = usdAmount;
242
241
  let tokensFilled = 0;
243
242
  let spent = 0;
@@ -258,7 +257,7 @@ var estimateMarketBuyFromUsd = (levels = [], usdAmount) => {
258
257
  };
259
258
  var estimateMarketBuyFromTokens = (levels = [], tokenAmount) => {
260
259
  if (!Number.isFinite(tokenAmount) || tokenAmount <= 0) return { tokens: 0, value: 0, avgPrice: null };
261
- const asks = normalizeLevels(levels).sort((a, b) => a.price - b.price);
260
+ const asks = normalizeLevels(levels).sort((a2, b2) => a2.price - b2.price);
262
261
  let remainingTokens = tokenAmount;
263
262
  let tokensFilled = 0;
264
263
  let spent = 0;
@@ -277,7 +276,7 @@ var estimateMarketBuyFromTokens = (levels = [], tokenAmount) => {
277
276
  };
278
277
  var estimateMarketSellFromTokens = (levels = [], tokenAmount) => {
279
278
  if (!Number.isFinite(tokenAmount) || tokenAmount <= 0) return { tokens: 0, value: 0, avgPrice: null };
280
- const bids = normalizeLevels(levels).sort((a, b) => b.price - a.price);
279
+ const bids = normalizeLevels(levels).sort((a2, b2) => b2.price - a2.price);
281
280
  let remainingTokens = tokenAmount;
282
281
  let tokensFilled = 0;
283
282
  let received = 0;
@@ -309,31 +308,31 @@ function HousePositionSlider({
309
308
  className,
310
309
  ...props
311
310
  }) {
312
- const [orderMode, setOrderMode] = React5__namespace.useState("none");
313
- const [buyTrackingMode, setBuyTrackingMode] = React5__namespace.useState("dollars");
314
- const [deltaDollars, setDeltaDollars] = React5__namespace.useState(0);
315
- const [deltaTokensBuy, setDeltaTokensBuy] = React5__namespace.useState(0);
316
- const [deltaTokensSell, setDeltaTokensSell] = React5__namespace.useState(0);
317
- const [isDragging, setIsDragging] = React5__namespace.useState(false);
318
- const [visualTargetPct, setVisualTargetPct] = React5__namespace.useState(null);
319
- const [orderType, setOrderType] = React5__namespace.useState(defaultOrderType);
320
- const [limitPrice, setLimitPrice] = React5__namespace.useState(currentPrice);
321
- const [limitPriceInput, setLimitPriceInput] = React5__namespace.useState(currentPrice.toFixed(2));
322
- const [limitPriceDirty, setLimitPriceDirty] = React5__namespace.useState(false);
323
- const [ownershipInput, setOwnershipInput] = React5__namespace.useState("");
324
- const [tokenAmountInput, setTokenAmountInput] = React5__namespace.useState("");
325
- const houseRef = React5__namespace.useRef(null);
311
+ const [orderMode, setOrderMode] = o__namespace.useState("none");
312
+ const [buyTrackingMode, setBuyTrackingMode] = o__namespace.useState("dollars");
313
+ const [deltaDollars, setDeltaDollars] = o__namespace.useState(0);
314
+ const [deltaTokensBuy, setDeltaTokensBuy] = o__namespace.useState(0);
315
+ const [deltaTokensSell, setDeltaTokensSell] = o__namespace.useState(0);
316
+ const [isDragging, setIsDragging] = o__namespace.useState(false);
317
+ const [visualTargetPct, setVisualTargetPct] = o__namespace.useState(null);
318
+ const [orderType, setOrderType] = o__namespace.useState(defaultOrderType);
319
+ const [limitPrice, setLimitPrice] = o__namespace.useState(currentPrice);
320
+ const [limitPriceInput, setLimitPriceInput] = o__namespace.useState(currentPrice.toFixed(2));
321
+ const [limitPriceDirty, setLimitPriceDirty] = o__namespace.useState(false);
322
+ const [ownershipInput, setOwnershipInput] = o__namespace.useState("");
323
+ const [tokenAmountInput, setTokenAmountInput] = o__namespace.useState("");
324
+ const houseRef = o__namespace.useRef(null);
326
325
  const asks = orderbook?.asks ?? [];
327
326
  const bids = orderbook?.bids ?? [];
328
- React5__namespace.useEffect(() => {
327
+ o__namespace.useEffect(() => {
329
328
  if (orderType !== "limit") return;
330
329
  if (limitPriceDirty) return;
331
330
  setLimitPrice(currentPrice);
332
331
  setLimitPriceInput(currentPrice.toFixed(2));
333
332
  }, [currentPrice, limitPriceDirty, orderType]);
334
333
  const effectivePrice = orderType === "limit" ? limitPrice : currentPrice;
335
- const pendingBuyValue = pendingOrders.filter((o) => o.type === "buy").reduce((s, o) => s + o.value, 0);
336
- const pendingSellTokens = pendingOrders.filter((o) => o.type === "sell").reduce((s, o) => s + Math.abs(o.tokens), 0);
334
+ const pendingBuyValue = pendingOrders.filter((o2) => o2.type === "buy").reduce((s, o2) => s + o2.value, 0);
335
+ const pendingSellTokens = pendingOrders.filter((o2) => o2.type === "sell").reduce((s, o2) => s + Math.abs(o2.tokens), 0);
337
336
  const effectiveAvailableCash = Math.max(0, availableCash - pendingBuyValue);
338
337
  const effectiveTokensHeld = Math.max(0, tokensHeld - pendingSellTokens);
339
338
  const holdingsValue = tokensHeld * effectivePrice;
@@ -400,7 +399,7 @@ function HousePositionSlider({
400
399
  const impliedDisplayTargetOwnership = clamp(targetOwnership + ownershipShift, 0, 100);
401
400
  const displayTargetOwnership = visualTargetPct ?? impliedDisplayTargetOwnership;
402
401
  const estFeeTokens = Math.abs(deltaValue) * 5e-3 / (effectivePrice || 1);
403
- const resetOrder = React5__namespace.useCallback(() => {
402
+ const resetOrder = o__namespace.useCallback(() => {
404
403
  setOrderMode("none");
405
404
  setBuyTrackingMode("dollars");
406
405
  setDeltaDollars(0);
@@ -408,7 +407,7 @@ function HousePositionSlider({
408
407
  setDeltaTokensSell(0);
409
408
  setVisualTargetPct(null);
410
409
  }, []);
411
- const updateOrderFromTargetValue = React5__namespace.useCallback(
410
+ const updateOrderFromTargetValue = o__namespace.useCallback(
412
411
  (newTargetValue) => {
413
412
  const newDeltaValue = newTargetValue - holdingsValue;
414
413
  if (newDeltaValue > 0) {
@@ -432,7 +431,7 @@ function HousePositionSlider({
432
431
  },
433
432
  [effectiveAvailableCash, effectivePrice, effectiveTokensHeld, holdingsValue, resetOrder, tokensHeld]
434
433
  );
435
- const updateOrderFromOwnership = React5__namespace.useCallback(
434
+ const updateOrderFromOwnership = o__namespace.useCallback(
436
435
  (newOwnershipPercent) => {
437
436
  const nextOwnership = clamp(newOwnershipPercent, 0, 100);
438
437
  const newTargetTokens = nextOwnership / 100 * totalTokens;
@@ -441,7 +440,7 @@ function HousePositionSlider({
441
440
  },
442
441
  [effectivePrice, totalTokens, updateOrderFromTargetValue]
443
442
  );
444
- const updateOrderFromTokenAmount = React5__namespace.useCallback(
443
+ const updateOrderFromTokenAmount = o__namespace.useCallback(
445
444
  (tokenAmountSigned) => {
446
445
  if (tokenAmountSigned > 0) {
447
446
  const maxTokens = effectiveAvailableCash / (effectivePrice || 1);
@@ -464,7 +463,7 @@ function HousePositionSlider({
464
463
  },
465
464
  [effectiveAvailableCash, effectivePrice, effectiveTokensHeld, resetOrder]
466
465
  );
467
- const updateOrderFromSlider = React5__namespace.useCallback(
466
+ const updateOrderFromSlider = o__namespace.useCallback(
468
467
  (pct) => {
469
468
  const normalized = (pct - 50) / 50;
470
469
  const magnitude = Math.min(Math.abs(normalized), 1);
@@ -508,12 +507,12 @@ function HousePositionSlider({
508
507
  },
509
508
  [effectiveAvailableCash, effectiveTokensHeld, resetOrder]
510
509
  );
511
- const handleDragAtClientY = React5__namespace.useCallback(
510
+ const handleDragAtClientY = o__namespace.useCallback(
512
511
  (clientY) => {
513
512
  if (!houseRef.current) return;
514
513
  const rect = houseRef.current.getBoundingClientRect();
515
- const y = clientY - rect.top;
516
- const pct = clamp(100 - y / rect.height * 100, 0, 100);
514
+ const y2 = clientY - rect.top;
515
+ const pct = clamp(100 - y2 / rect.height * 100, 0, 100);
517
516
  updateOrderFromSlider(pct);
518
517
  },
519
518
  [updateOrderFromSlider]
@@ -548,9 +547,9 @@ function HousePositionSlider({
548
547
  const handleCancel = () => {
549
548
  resetOrder();
550
549
  };
551
- const handleOrderTypeSelection = (next) => {
552
- setOrderType(next);
553
- if (next === "limit") {
550
+ const handleOrderTypeSelection = (next2) => {
551
+ setOrderType(next2);
552
+ if (next2 === "limit") {
554
553
  setLimitPriceDirty(false);
555
554
  setLimitPrice(currentPrice);
556
555
  setLimitPriceInput(currentPrice.toFixed(2));
@@ -806,6 +805,1547 @@ function HousePositionSlider({
806
805
  ] })
807
806
  ] });
808
807
  }
808
+
809
+ // ../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
810
+ var __assign = function() {
811
+ __assign = Object.assign || function __assign2(t) {
812
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
813
+ s = arguments[i];
814
+ for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t[p2] = s[p2];
815
+ }
816
+ return t;
817
+ };
818
+ return __assign.apply(this, arguments);
819
+ };
820
+ function __spreadArray(to, from2, pack) {
821
+ if (pack || arguments.length === 2) for (var i = 0, l2 = from2.length, ar; i < l2; i++) {
822
+ if (ar || !(i in from2)) {
823
+ if (!ar) ar = Array.prototype.slice.call(from2, 0, i);
824
+ ar[i] = from2[i];
825
+ }
826
+ }
827
+ return to.concat(ar || Array.prototype.slice.call(from2));
828
+ }
829
+
830
+ // ../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
831
+ function memoize(fn) {
832
+ var cache = /* @__PURE__ */ Object.create(null);
833
+ return function(arg) {
834
+ if (cache[arg] === void 0) cache[arg] = fn(arg);
835
+ return cache[arg];
836
+ };
837
+ }
838
+
839
+ // ../../../node_modules/.pnpm/@emotion+is-prop-valid@1.4.0/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js
840
+ var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/;
841
+ var isPropValid = /* @__PURE__ */ memoize(
842
+ function(prop) {
843
+ return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91;
844
+ }
845
+ /* Z+1 */
846
+ );
847
+
848
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Enum.js
849
+ var MS = "-ms-";
850
+ var MOZ = "-moz-";
851
+ var WEBKIT = "-webkit-";
852
+ var COMMENT = "comm";
853
+ var RULESET = "rule";
854
+ var DECLARATION = "decl";
855
+ var IMPORT = "@import";
856
+ var NAMESPACE = "@namespace";
857
+ var KEYFRAMES = "@keyframes";
858
+ var LAYER = "@layer";
859
+
860
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Utility.js
861
+ var abs = Math.abs;
862
+ var from = String.fromCharCode;
863
+ var assign = Object.assign;
864
+ function hash(value, length2) {
865
+ return charat(value, 0) ^ 45 ? (((length2 << 2 ^ charat(value, 0)) << 2 ^ charat(value, 1)) << 2 ^ charat(value, 2)) << 2 ^ charat(value, 3) : 0;
866
+ }
867
+ function trim(value) {
868
+ return value.trim();
869
+ }
870
+ function match(value, pattern) {
871
+ return (value = pattern.exec(value)) ? value[0] : value;
872
+ }
873
+ function replace(value, pattern, replacement) {
874
+ return value.replace(pattern, replacement);
875
+ }
876
+ function indexof(value, search, position2) {
877
+ return value.indexOf(search, position2);
878
+ }
879
+ function charat(value, index) {
880
+ return value.charCodeAt(index) | 0;
881
+ }
882
+ function substr(value, begin, end) {
883
+ return value.slice(begin, end);
884
+ }
885
+ function strlen(value) {
886
+ return value.length;
887
+ }
888
+ function sizeof(value) {
889
+ return value.length;
890
+ }
891
+ function append(value, array) {
892
+ return array.push(value), value;
893
+ }
894
+ function combine(array, callback) {
895
+ return array.map(callback).join("");
896
+ }
897
+ function filter(array, pattern) {
898
+ return array.filter(function(value) {
899
+ return !match(value, pattern);
900
+ });
901
+ }
902
+
903
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Tokenizer.js
904
+ var line = 1;
905
+ var column = 1;
906
+ var length = 0;
907
+ var position = 0;
908
+ var character = 0;
909
+ var characters = "";
910
+ function node(value, root, parent, type, props, children, length2, siblings) {
911
+ return { value, root, parent, type, props, children, line, column, length: length2, return: "", siblings };
912
+ }
913
+ function copy(root, props) {
914
+ return assign(node("", null, null, "", null, null, 0, root.siblings), root, { length: -root.length }, props);
915
+ }
916
+ function lift(root) {
917
+ while (root.root)
918
+ root = copy(root.root, { children: [root] });
919
+ append(root, root.siblings);
920
+ }
921
+ function char() {
922
+ return character;
923
+ }
924
+ function prev() {
925
+ character = position > 0 ? charat(characters, --position) : 0;
926
+ if (column--, character === 10)
927
+ column = 1, line--;
928
+ return character;
929
+ }
930
+ function next() {
931
+ character = position < length ? charat(characters, position++) : 0;
932
+ if (column++, character === 10)
933
+ column = 1, line++;
934
+ return character;
935
+ }
936
+ function peek() {
937
+ return charat(characters, position);
938
+ }
939
+ function caret() {
940
+ return position;
941
+ }
942
+ function slice(begin, end) {
943
+ return substr(characters, begin, end);
944
+ }
945
+ function token(type) {
946
+ switch (type) {
947
+ // \0 \t \n \r \s whitespace token
948
+ case 0:
949
+ case 9:
950
+ case 10:
951
+ case 13:
952
+ case 32:
953
+ return 5;
954
+ // ! + , / > @ ~ isolate token
955
+ case 33:
956
+ case 43:
957
+ case 44:
958
+ case 47:
959
+ case 62:
960
+ case 64:
961
+ case 126:
962
+ // ; { } breakpoint token
963
+ case 59:
964
+ case 123:
965
+ case 125:
966
+ return 4;
967
+ // : accompanied token
968
+ case 58:
969
+ return 3;
970
+ // " ' ( [ opening delimit token
971
+ case 34:
972
+ case 39:
973
+ case 40:
974
+ case 91:
975
+ return 2;
976
+ // ) ] closing delimit token
977
+ case 41:
978
+ case 93:
979
+ return 1;
980
+ }
981
+ return 0;
982
+ }
983
+ function alloc(value) {
984
+ return line = column = 1, length = strlen(characters = value), position = 0, [];
985
+ }
986
+ function dealloc(value) {
987
+ return characters = "", value;
988
+ }
989
+ function delimit(type) {
990
+ return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));
991
+ }
992
+ function whitespace(type) {
993
+ while (character = peek())
994
+ if (character < 33)
995
+ next();
996
+ else
997
+ break;
998
+ return token(type) > 2 || token(character) > 3 ? "" : " ";
999
+ }
1000
+ function escaping(index, count) {
1001
+ while (--count && next())
1002
+ if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97)
1003
+ break;
1004
+ return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));
1005
+ }
1006
+ function delimiter(type) {
1007
+ while (next())
1008
+ switch (character) {
1009
+ // ] ) " '
1010
+ case type:
1011
+ return position;
1012
+ // " '
1013
+ case 34:
1014
+ case 39:
1015
+ if (type !== 34 && type !== 39)
1016
+ delimiter(character);
1017
+ break;
1018
+ // (
1019
+ case 40:
1020
+ if (type === 41)
1021
+ delimiter(type);
1022
+ break;
1023
+ // \
1024
+ case 92:
1025
+ next();
1026
+ break;
1027
+ }
1028
+ return position;
1029
+ }
1030
+ function commenter(type, index) {
1031
+ while (next())
1032
+ if (type + character === 47 + 10)
1033
+ break;
1034
+ else if (type + character === 42 + 42 && peek() === 47)
1035
+ break;
1036
+ return "/*" + slice(index, position - 1) + "*" + from(type === 47 ? type : next());
1037
+ }
1038
+ function identifier(index) {
1039
+ while (!token(peek()))
1040
+ next();
1041
+ return slice(index, position);
1042
+ }
1043
+
1044
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Parser.js
1045
+ function compile(value) {
1046
+ return dealloc(parse("", null, null, null, [""], value = alloc(value), 0, [0], value));
1047
+ }
1048
+ function parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
1049
+ var index = 0;
1050
+ var offset = 0;
1051
+ var length2 = pseudo;
1052
+ var atrule = 0;
1053
+ var property = 0;
1054
+ var previous = 0;
1055
+ var variable = 1;
1056
+ var scanning = 1;
1057
+ var ampersand = 1;
1058
+ var character2 = 0;
1059
+ var type = "";
1060
+ var props = rules;
1061
+ var children = rulesets;
1062
+ var reference = rule;
1063
+ var characters2 = type;
1064
+ while (scanning)
1065
+ switch (previous = character2, character2 = next()) {
1066
+ // (
1067
+ case 40:
1068
+ if (previous != 108 && charat(characters2, length2 - 1) == 58) {
1069
+ if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f", abs(index ? points[index - 1] : 0)) != -1)
1070
+ ampersand = -1;
1071
+ break;
1072
+ }
1073
+ // " ' [
1074
+ case 34:
1075
+ case 39:
1076
+ case 91:
1077
+ characters2 += delimit(character2);
1078
+ break;
1079
+ // \t \n \r \s
1080
+ case 9:
1081
+ case 10:
1082
+ case 13:
1083
+ case 32:
1084
+ characters2 += whitespace(previous);
1085
+ break;
1086
+ // \
1087
+ case 92:
1088
+ characters2 += escaping(caret() - 1, 7);
1089
+ continue;
1090
+ // /
1091
+ case 47:
1092
+ switch (peek()) {
1093
+ case 42:
1094
+ case 47:
1095
+ append(comment(commenter(next(), caret()), root, parent, declarations), declarations);
1096
+ if ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters2) && substr(characters2, -1, void 0) !== " ") characters2 += " ";
1097
+ break;
1098
+ default:
1099
+ characters2 += "/";
1100
+ }
1101
+ break;
1102
+ // {
1103
+ case 123 * variable:
1104
+ points[index++] = strlen(characters2) * ampersand;
1105
+ // } ; \0
1106
+ case 125 * variable:
1107
+ case 59:
1108
+ case 0:
1109
+ switch (character2) {
1110
+ // \0 }
1111
+ case 0:
1112
+ case 125:
1113
+ scanning = 0;
1114
+ // ;
1115
+ case 59 + offset:
1116
+ if (ampersand == -1) characters2 = replace(characters2, /\f/g, "");
1117
+ if (property > 0 && (strlen(characters2) - length2 || variable === 0 && previous === 47))
1118
+ append(property > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1, declarations) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2, declarations), declarations);
1119
+ break;
1120
+ // @ ;
1121
+ case 59:
1122
+ characters2 += ";";
1123
+ // { rule/at-rule
1124
+ default:
1125
+ append(reference = ruleset(characters2, root, parent, index, offset, rules, points, type, props = [], children = [], length2, rulesets), rulesets);
1126
+ if (character2 === 123)
1127
+ if (offset === 0)
1128
+ parse(characters2, root, reference, reference, props, rulesets, length2, points, children);
1129
+ else {
1130
+ switch (atrule) {
1131
+ // c(ontainer)
1132
+ case 99:
1133
+ if (charat(characters2, 3) === 110) break;
1134
+ // l(ayer)
1135
+ case 108:
1136
+ if (charat(characters2, 2) === 97) break;
1137
+ default:
1138
+ offset = 0;
1139
+ // d(ocument) m(edia) s(upports)
1140
+ case 100:
1141
+ case 109:
1142
+ case 115:
1143
+ }
1144
+ if (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length2, children), children), rules, children, length2, points, rule ? props : children);
1145
+ else parse(characters2, reference, reference, reference, [""], children, 0, points, children);
1146
+ }
1147
+ }
1148
+ index = offset = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo;
1149
+ break;
1150
+ // :
1151
+ case 58:
1152
+ length2 = 1 + strlen(characters2), property = previous;
1153
+ default:
1154
+ if (variable < 1) {
1155
+ if (character2 == 123)
1156
+ --variable;
1157
+ else if (character2 == 125 && variable++ == 0 && prev() == 125)
1158
+ continue;
1159
+ }
1160
+ switch (characters2 += from(character2), character2 * variable) {
1161
+ // &
1162
+ case 38:
1163
+ ampersand = offset > 0 ? 1 : (characters2 += "\f", -1);
1164
+ break;
1165
+ // ,
1166
+ case 44:
1167
+ points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1;
1168
+ break;
1169
+ // @
1170
+ case 64:
1171
+ if (peek() === 45)
1172
+ characters2 += delimit(next());
1173
+ atrule = peek(), offset = length2 = strlen(type = characters2 += identifier(caret())), character2++;
1174
+ break;
1175
+ // -
1176
+ case 45:
1177
+ if (previous === 45 && strlen(characters2) == 2)
1178
+ variable = 0;
1179
+ }
1180
+ }
1181
+ return rulesets;
1182
+ }
1183
+ function ruleset(value, root, parent, index, offset, rules, points, type, props, children, length2, siblings) {
1184
+ var post = offset - 1;
1185
+ var rule = offset === 0 ? rules : [""];
1186
+ var size = sizeof(rule);
1187
+ for (var i = 0, j2 = 0, k2 = 0; i < index; ++i)
1188
+ for (var x2 = 0, y2 = substr(value, post + 1, post = abs(j2 = points[i])), z2 = value; x2 < size; ++x2)
1189
+ if (z2 = trim(j2 > 0 ? rule[x2] + " " + y2 : replace(y2, /&\f/g, rule[x2])))
1190
+ props[k2++] = z2;
1191
+ return node(value, root, parent, offset === 0 ? RULESET : type, props, children, length2, siblings);
1192
+ }
1193
+ function comment(value, root, parent, siblings) {
1194
+ return node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings);
1195
+ }
1196
+ function declaration(value, root, parent, length2, siblings) {
1197
+ return node(value, root, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2, siblings);
1198
+ }
1199
+
1200
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Prefixer.js
1201
+ function prefix(value, length2, children) {
1202
+ switch (hash(value, length2)) {
1203
+ // color-adjust
1204
+ case 5103:
1205
+ return WEBKIT + "print-" + value + value;
1206
+ // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)
1207
+ case 5737:
1208
+ case 4201:
1209
+ case 3177:
1210
+ case 3433:
1211
+ case 1641:
1212
+ case 4457:
1213
+ case 2921:
1214
+ // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break
1215
+ case 5572:
1216
+ case 6356:
1217
+ case 5844:
1218
+ case 3191:
1219
+ case 6645:
1220
+ case 3005:
1221
+ // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)
1222
+ case 4215:
1223
+ case 6389:
1224
+ case 5109:
1225
+ case 5365:
1226
+ case 5621:
1227
+ case 3829:
1228
+ // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position
1229
+ case 6391:
1230
+ case 5879:
1231
+ case 5623:
1232
+ case 6135:
1233
+ case 4599:
1234
+ return WEBKIT + value + value;
1235
+ // mask-composite
1236
+ case 4855:
1237
+ return WEBKIT + value.replace("add", "source-over").replace("substract", "source-out").replace("intersect", "source-in").replace("exclude", "xor") + value;
1238
+ // tab-size
1239
+ case 4789:
1240
+ return MOZ + value + value;
1241
+ // appearance, user-select, transform, hyphens, text-size-adjust
1242
+ case 5349:
1243
+ case 4246:
1244
+ case 4810:
1245
+ case 6968:
1246
+ case 2756:
1247
+ return WEBKIT + value + MOZ + value + MS + value + value;
1248
+ // writing-mode
1249
+ case 5936:
1250
+ switch (charat(value, length2 + 11)) {
1251
+ // vertical-l(r)
1252
+ case 114:
1253
+ return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "tb") + value;
1254
+ // vertical-r(l)
1255
+ case 108:
1256
+ return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "tb-rl") + value;
1257
+ // horizontal(-)tb
1258
+ case 45:
1259
+ return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "lr") + value;
1260
+ }
1261
+ // flex, flex-direction, scroll-snap-type, writing-mode
1262
+ case 6828:
1263
+ case 4268:
1264
+ case 2903:
1265
+ return WEBKIT + value + MS + value + value;
1266
+ // order
1267
+ case 6165:
1268
+ return WEBKIT + value + MS + "flex-" + value + value;
1269
+ // align-items
1270
+ case 5187:
1271
+ return WEBKIT + value + replace(value, /(\w+).+(:[^]+)/, WEBKIT + "box-$1$2" + MS + "flex-$1$2") + value;
1272
+ // align-self
1273
+ case 5443:
1274
+ return WEBKIT + value + MS + "flex-item-" + replace(value, /flex-|-self/g, "") + (!match(value, /flex-|baseline/) ? MS + "grid-row-" + replace(value, /flex-|-self/g, "") : "") + value;
1275
+ // align-content
1276
+ case 4675:
1277
+ return WEBKIT + value + MS + "flex-line-pack" + replace(value, /align-content|flex-|-self/g, "") + value;
1278
+ // flex-shrink
1279
+ case 5548:
1280
+ return WEBKIT + value + MS + replace(value, "shrink", "negative") + value;
1281
+ // flex-basis
1282
+ case 5292:
1283
+ return WEBKIT + value + MS + replace(value, "basis", "preferred-size") + value;
1284
+ // flex-grow
1285
+ case 6060:
1286
+ return WEBKIT + "box-" + replace(value, "-grow", "") + WEBKIT + value + MS + replace(value, "grow", "positive") + value;
1287
+ // transition
1288
+ case 4554:
1289
+ return WEBKIT + replace(value, /([^-])(transform)/g, "$1" + WEBKIT + "$2") + value;
1290
+ // cursor
1291
+ case 6187:
1292
+ return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + "$1"), /(image-set)/, WEBKIT + "$1"), value, "") + value;
1293
+ // background, background-image
1294
+ case 5495:
1295
+ case 3959:
1296
+ return replace(value, /(image-set\([^]*)/, WEBKIT + "$1$`$1");
1297
+ // justify-content
1298
+ case 4968:
1299
+ return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + "box-pack:$3" + MS + "flex-pack:$3"), /space-between/, "justify") + WEBKIT + value + value;
1300
+ // justify-self
1301
+ case 4200:
1302
+ if (!match(value, /flex-|baseline/)) return MS + "grid-column-align" + substr(value, length2) + value;
1303
+ break;
1304
+ // grid-template-(columns|rows)
1305
+ case 2592:
1306
+ case 3360:
1307
+ return MS + replace(value, "template-", "") + value;
1308
+ // grid-(row|column)-start
1309
+ case 4384:
1310
+ case 3616:
1311
+ if (children && children.some(function(element, index) {
1312
+ return length2 = index, match(element.props, /grid-\w+-end/);
1313
+ })) {
1314
+ return ~indexof(value + (children = children[length2].value), "span", 0) ? value : MS + replace(value, "-start", "") + value + MS + "grid-row-span:" + (~indexof(children, "span", 0) ? match(children, /\d+/) : +match(children, /\d+/) - +match(value, /\d+/)) + ";";
1315
+ }
1316
+ return MS + replace(value, "-start", "") + value;
1317
+ // grid-(row|column)-end
1318
+ case 4896:
1319
+ case 4128:
1320
+ return children && children.some(function(element) {
1321
+ return match(element.props, /grid-\w+-start/);
1322
+ }) ? value : MS + replace(replace(value, "-end", "-span"), "span ", "") + value;
1323
+ // (margin|padding)-inline-(start|end)
1324
+ case 4095:
1325
+ case 3583:
1326
+ case 4068:
1327
+ case 2532:
1328
+ return replace(value, /(.+)-inline(.+)/, WEBKIT + "$1$2") + value;
1329
+ // (min|max)?(width|height|inline-size|block-size)
1330
+ case 8116:
1331
+ case 7059:
1332
+ case 5753:
1333
+ case 5535:
1334
+ case 5445:
1335
+ case 5701:
1336
+ case 4933:
1337
+ case 4677:
1338
+ case 5533:
1339
+ case 5789:
1340
+ case 5021:
1341
+ case 4765:
1342
+ if (strlen(value) - 1 - length2 > 6)
1343
+ switch (charat(value, length2 + 1)) {
1344
+ // (m)ax-content, (m)in-content
1345
+ case 109:
1346
+ if (charat(value, length2 + 4) !== 45)
1347
+ break;
1348
+ // (f)ill-available, (f)it-content
1349
+ case 102:
1350
+ return replace(value, /(.+:)(.+)-([^]+)/, "$1" + WEBKIT + "$2-$3$1" + MOZ + (charat(value, length2 + 3) == 108 ? "$3" : "$2-$3")) + value;
1351
+ // (s)tretch
1352
+ case 115:
1353
+ return ~indexof(value, "stretch", 0) ? prefix(replace(value, "stretch", "fill-available"), length2, children) + value : value;
1354
+ }
1355
+ break;
1356
+ // grid-(column|row)
1357
+ case 5152:
1358
+ case 5920:
1359
+ return replace(value, /(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/, function(_2, a2, b2, c2, d2, e, f2) {
1360
+ return MS + a2 + ":" + b2 + f2 + (c2 ? MS + a2 + "-span:" + (d2 ? e : +e - +b2) + f2 : "") + value;
1361
+ });
1362
+ // position: sticky
1363
+ case 4949:
1364
+ if (charat(value, length2 + 6) === 121)
1365
+ return replace(value, ":", ":" + WEBKIT) + value;
1366
+ break;
1367
+ // display: (flex|inline-flex|grid|inline-grid)
1368
+ case 6444:
1369
+ switch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {
1370
+ // (inline-)?fle(x)
1371
+ case 120:
1372
+ return replace(value, /(.+:)([^;\s!]+)(;|(\s+)?!.+)?/, "$1" + WEBKIT + (charat(value, 14) === 45 ? "inline-" : "") + "box$3$1" + WEBKIT + "$2$3$1" + MS + "$2box$3") + value;
1373
+ // (inline-)?gri(d)
1374
+ case 100:
1375
+ return replace(value, ":", ":" + MS) + value;
1376
+ }
1377
+ break;
1378
+ // scroll-margin, scroll-margin-(top|right|bottom|left)
1379
+ case 5719:
1380
+ case 2647:
1381
+ case 2135:
1382
+ case 3927:
1383
+ case 2391:
1384
+ return replace(value, "scroll-", "scroll-snap-") + value;
1385
+ }
1386
+ return value;
1387
+ }
1388
+
1389
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Serializer.js
1390
+ function serialize(children, callback) {
1391
+ var output = "";
1392
+ for (var i = 0; i < children.length; i++)
1393
+ output += callback(children[i], i, children, callback) || "";
1394
+ return output;
1395
+ }
1396
+ function stringify(element, index, children, callback) {
1397
+ switch (element.type) {
1398
+ case LAYER:
1399
+ if (element.children.length) break;
1400
+ case IMPORT:
1401
+ case NAMESPACE:
1402
+ case DECLARATION:
1403
+ return element.return = element.return || element.value;
1404
+ case COMMENT:
1405
+ return "";
1406
+ case KEYFRAMES:
1407
+ return element.return = element.value + "{" + serialize(element.children, callback) + "}";
1408
+ case RULESET:
1409
+ if (!strlen(element.value = element.props.join(","))) return "";
1410
+ }
1411
+ return strlen(children = serialize(element.children, callback)) ? element.return = element.value + "{" + children + "}" : "";
1412
+ }
1413
+
1414
+ // ../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Middleware.js
1415
+ function middleware(collection) {
1416
+ var length2 = sizeof(collection);
1417
+ return function(element, index, children, callback) {
1418
+ var output = "";
1419
+ for (var i = 0; i < length2; i++)
1420
+ output += collection[i](element, index, children, callback) || "";
1421
+ return output;
1422
+ };
1423
+ }
1424
+ function rulesheet(callback) {
1425
+ return function(element) {
1426
+ if (!element.root) {
1427
+ if (element = element.return)
1428
+ callback(element);
1429
+ }
1430
+ };
1431
+ }
1432
+ function prefixer(element, index, children, callback) {
1433
+ if (element.length > -1) {
1434
+ if (!element.return)
1435
+ switch (element.type) {
1436
+ case DECLARATION:
1437
+ element.return = prefix(element.value, element.length, children);
1438
+ return;
1439
+ case KEYFRAMES:
1440
+ return serialize([copy(element, { value: replace(element.value, "@", "@" + WEBKIT) })], callback);
1441
+ case RULESET:
1442
+ if (element.length)
1443
+ return combine(children = element.props, function(value) {
1444
+ switch (match(value, callback = /(::plac\w+|:read-\w+)/)) {
1445
+ // :read-(only|write)
1446
+ case ":read-only":
1447
+ case ":read-write":
1448
+ lift(copy(element, { props: [replace(value, /:(read-\w+)/, ":" + MOZ + "$1")] }));
1449
+ lift(copy(element, { props: [value] }));
1450
+ assign(element, { props: filter(children, callback) });
1451
+ break;
1452
+ // :placeholder
1453
+ case "::placeholder":
1454
+ lift(copy(element, { props: [replace(value, /:(plac\w+)/, ":" + WEBKIT + "input-$1")] }));
1455
+ lift(copy(element, { props: [replace(value, /:(plac\w+)/, ":" + MOZ + "$1")] }));
1456
+ lift(copy(element, { props: [replace(value, /:(plac\w+)/, MS + "input-$1")] }));
1457
+ lift(copy(element, { props: [value] }));
1458
+ assign(element, { props: filter(children, callback) });
1459
+ break;
1460
+ }
1461
+ return "";
1462
+ });
1463
+ }
1464
+ }
1465
+ }
1466
+
1467
+ // ../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js
1468
+ var unitlessKeys = {
1469
+ animationIterationCount: 1,
1470
+ aspectRatio: 1,
1471
+ borderImageOutset: 1,
1472
+ borderImageSlice: 1,
1473
+ borderImageWidth: 1,
1474
+ boxFlex: 1,
1475
+ boxFlexGroup: 1,
1476
+ boxOrdinalGroup: 1,
1477
+ columnCount: 1,
1478
+ columns: 1,
1479
+ flex: 1,
1480
+ flexGrow: 1,
1481
+ flexPositive: 1,
1482
+ flexShrink: 1,
1483
+ flexNegative: 1,
1484
+ flexOrder: 1,
1485
+ gridRow: 1,
1486
+ gridRowEnd: 1,
1487
+ gridRowSpan: 1,
1488
+ gridRowStart: 1,
1489
+ gridColumn: 1,
1490
+ gridColumnEnd: 1,
1491
+ gridColumnSpan: 1,
1492
+ gridColumnStart: 1,
1493
+ msGridRow: 1,
1494
+ msGridRowSpan: 1,
1495
+ msGridColumn: 1,
1496
+ msGridColumnSpan: 1,
1497
+ fontWeight: 1,
1498
+ lineHeight: 1,
1499
+ opacity: 1,
1500
+ order: 1,
1501
+ orphans: 1,
1502
+ scale: 1,
1503
+ tabSize: 1,
1504
+ widows: 1,
1505
+ zIndex: 1,
1506
+ zoom: 1,
1507
+ WebkitLineClamp: 1,
1508
+ // SVG-related properties
1509
+ fillOpacity: 1,
1510
+ floodOpacity: 1,
1511
+ stopOpacity: 1,
1512
+ strokeDasharray: 1,
1513
+ strokeDashoffset: 1,
1514
+ strokeMiterlimit: 1,
1515
+ strokeOpacity: 1,
1516
+ strokeWidth: 1
1517
+ };
1518
+
1519
+ // ../../../node_modules/.pnpm/styled-components@6.3.6_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/styled-components/dist/styled-components.esm.js
1520
+ var a = "undefined" != typeof process && void 0 !== process.env && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || "data-styled";
1521
+ var c = "active";
1522
+ var u = "data-styled-version";
1523
+ var l = "6.3.6";
1524
+ var p = "/*!sc*/\n";
1525
+ var d = "undefined" != typeof window && "undefined" != typeof document;
1526
+ var h = void 0 === o__namespace.default.createContext;
1527
+ var f = Boolean("boolean" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== process.env && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && "" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? "false" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== process.env && void 0 !== process.env.SC_DISABLE_SPEEDY && "" !== process.env.SC_DISABLE_SPEEDY ? "false" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : "production" !== process.env.NODE_ENV);
1528
+ var y = /invalid hook call/i;
1529
+ var v = /* @__PURE__ */ new Set();
1530
+ var g = function(t, n) {
1531
+ if ("production" !== process.env.NODE_ENV) {
1532
+ if (h) return;
1533
+ var r2 = n ? ' with the id of "'.concat(n, '"') : "", s = "The component ".concat(t).concat(r2, " has been created dynamically.\n") + "You may see this warning because you've called styled inside another component.\nTo resolve this only create new StyledComponents outside of any render method and function component.\nSee https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\n", i = console.error;
1534
+ try {
1535
+ var a2 = true;
1536
+ console.error = function(t2) {
1537
+ for (var n2 = [], o2 = 1; o2 < arguments.length; o2++) n2[o2 - 1] = arguments[o2];
1538
+ y.test(t2) ? (a2 = false, v.delete(s)) : i.apply(void 0, __spreadArray([t2], n2, false));
1539
+ }, "function" == typeof o__namespace.default.useState && o__namespace.default.useState(null), a2 && !v.has(s) && (console.warn(s), v.add(s));
1540
+ } catch (e) {
1541
+ y.test(e.message) && v.delete(s);
1542
+ } finally {
1543
+ console.error = i;
1544
+ }
1545
+ }
1546
+ };
1547
+ var S = Object.freeze([]);
1548
+ var w = Object.freeze({});
1549
+ function b(e, t, n) {
1550
+ return void 0 === n && (n = w), e.theme !== n.theme && e.theme || t || n.theme;
1551
+ }
1552
+ var C = /* @__PURE__ */ new Set(["a", "abbr", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "blockquote", "body", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "menu", "meter", "nav", "object", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "slot", "small", "span", "strong", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "foreignObject", "g", "image", "line", "linearGradient", "marker", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "switch", "symbol", "text", "textPath", "tspan", "use"]);
1553
+ var E = /[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g;
1554
+ var N = /(^-|-$)/g;
1555
+ function A(e) {
1556
+ return e.replace(E, "-").replace(N, "");
1557
+ }
1558
+ var P = /(a)(d)/gi;
1559
+ var _ = function(e) {
1560
+ return String.fromCharCode(e + (e > 25 ? 39 : 97));
1561
+ };
1562
+ function I(e) {
1563
+ var t, n = "";
1564
+ for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = _(t % 52) + n;
1565
+ return (_(t % 52) + n).replace(P, "$1-$2");
1566
+ }
1567
+ var O;
1568
+ var D = function(e, t) {
1569
+ for (var n = t.length; n; ) e = 33 * e ^ t.charCodeAt(--n);
1570
+ return e;
1571
+ };
1572
+ var T = function(e) {
1573
+ return D(5381, e);
1574
+ };
1575
+ function x(e) {
1576
+ return I(T(e) >>> 0);
1577
+ }
1578
+ function R(e) {
1579
+ return "production" !== process.env.NODE_ENV && "string" == typeof e && e || e.displayName || e.name || "Component";
1580
+ }
1581
+ function j(e) {
1582
+ return "string" == typeof e && ("production" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());
1583
+ }
1584
+ var k = "function" == typeof Symbol && Symbol.for;
1585
+ var M = k ? Symbol.for("react.memo") : 60115;
1586
+ var V = k ? Symbol.for("react.forward_ref") : 60112;
1587
+ var F = { childContextTypes: true, contextType: true, contextTypes: true, defaultProps: true, displayName: true, getDefaultProps: true, getDerivedStateFromError: true, getDerivedStateFromProps: true, mixins: true, propTypes: true, type: true };
1588
+ var B = { name: true, length: true, prototype: true, caller: true, callee: true, arguments: true, arity: true };
1589
+ var L = { $$typeof: true, compare: true, defaultProps: true, displayName: true, propTypes: true, type: true };
1590
+ var z = ((O = {})[V] = { $$typeof: true, render: true, defaultProps: true, displayName: true, propTypes: true }, O[M] = L, O);
1591
+ function G(e) {
1592
+ return ("type" in (t = e) && t.type.$$typeof) === M ? L : "$$typeof" in e ? z[e.$$typeof] : F;
1593
+ var t;
1594
+ }
1595
+ var $ = Object.defineProperty;
1596
+ var Y = Object.getOwnPropertyNames;
1597
+ var W = Object.getOwnPropertySymbols;
1598
+ var q = Object.getOwnPropertyDescriptor;
1599
+ var H = Object.getPrototypeOf;
1600
+ var U = Object.prototype;
1601
+ function J(e, t, n) {
1602
+ if ("string" != typeof t) {
1603
+ if (U) {
1604
+ var o2 = H(t);
1605
+ o2 && o2 !== U && J(e, o2, n);
1606
+ }
1607
+ var r2 = Y(t);
1608
+ W && (r2 = r2.concat(W(t)));
1609
+ for (var s = G(e), i = G(t), a2 = 0; a2 < r2.length; ++a2) {
1610
+ var c2 = r2[a2];
1611
+ if (!(c2 in B || n && n[c2] || i && c2 in i || s && c2 in s)) {
1612
+ var u2 = q(t, c2);
1613
+ try {
1614
+ $(e, c2, u2);
1615
+ } catch (e2) {
1616
+ }
1617
+ }
1618
+ }
1619
+ }
1620
+ return e;
1621
+ }
1622
+ function X(e) {
1623
+ return "function" == typeof e;
1624
+ }
1625
+ function Z(e) {
1626
+ return "object" == typeof e && "styledComponentId" in e;
1627
+ }
1628
+ function K(e, t) {
1629
+ return e && t ? "".concat(e, " ").concat(t) : e || t || "";
1630
+ }
1631
+ function Q(e, t) {
1632
+ if (0 === e.length) return "";
1633
+ for (var n = e[0], o2 = 1; o2 < e.length; o2++) n += e[o2];
1634
+ return n;
1635
+ }
1636
+ function ee(e) {
1637
+ return null !== e && "object" == typeof e && e.constructor.name === Object.name && !("props" in e && e.$$typeof);
1638
+ }
1639
+ function te(e, t, n) {
1640
+ if (void 0 === n && (n = false), !n && !ee(e) && !Array.isArray(e)) return t;
1641
+ if (Array.isArray(t)) for (var o2 = 0; o2 < t.length; o2++) e[o2] = te(e[o2], t[o2]);
1642
+ else if (ee(t)) for (var o2 in t) e[o2] = te(e[o2], t[o2]);
1643
+ return e;
1644
+ }
1645
+ function ne(e, t) {
1646
+ Object.defineProperty(e, "toString", { value: t });
1647
+ }
1648
+ var oe = "production" !== process.env.NODE_ENV ? { 1: "Cannot create styled-component for component: %s.\n\n", 2: "Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\n\n- Are you trying to reuse it across renders?\n- Are you accidentally calling collectStyles twice?\n\n", 3: "Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\n\n", 4: "The `StyleSheetManager` expects a valid target or sheet prop!\n\n- Does this error occur on the client and is your target falsy?\n- Does this error occur on the server and is the sheet falsy?\n\n", 5: "The clone method cannot be used on the client!\n\n- Are you running in a client-like environment on the server?\n- Are you trying to run SSR on the client?\n\n", 6: "Trying to insert a new style tag, but the given Node is unmounted!\n\n- Are you using a custom target that isn't mounted?\n- Does your document not have a valid head element?\n- Have you accidentally removed a style tag manually?\n\n", 7: 'ThemeProvider: Please return an object from your "theme" prop function, e.g.\n\n```js\ntheme={() => ({})}\n```\n\n', 8: 'ThemeProvider: Please make your "theme" prop an object.\n\n', 9: "Missing document `<head>`\n\n", 10: "Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\n\n", 11: "_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\n\n", 12: "It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\`\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\n\n", 13: "%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\n\n", 14: 'ThemeProvider: "theme" prop is required.\n\n', 15: "A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\n\n```js\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\n```\n\n", 16: "Reached the limit of how many styled components may be created at group %s.\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\nas for instance in your render method then you may be running into this limitation.\n\n", 17: "CSSStyleSheet could not be found on HTMLStyleElement.\nHas styled-components' style tag been unmounted or altered by another script?\n", 18: "ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`" } : {};
1649
+ function re() {
1650
+ for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
1651
+ for (var n = e[0], o2 = [], r2 = 1, s = e.length; r2 < s; r2 += 1) o2.push(e[r2]);
1652
+ return o2.forEach(function(e2) {
1653
+ n = n.replace(/%[a-z]/, e2);
1654
+ }), n;
1655
+ }
1656
+ function se(t) {
1657
+ for (var n = [], o2 = 1; o2 < arguments.length; o2++) n[o2 - 1] = arguments[o2];
1658
+ return "production" === process.env.NODE_ENV ? new Error("An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#".concat(t, " for more information.").concat(n.length > 0 ? " Args: ".concat(n.join(", ")) : "")) : new Error(re.apply(void 0, __spreadArray([oe[t]], n, false)).trim());
1659
+ }
1660
+ var ie = function() {
1661
+ function e(e2) {
1662
+ this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e2;
1663
+ }
1664
+ return e.prototype.indexOfGroup = function(e2) {
1665
+ for (var t = 0, n = 0; n < e2; n++) t += this.groupSizes[n];
1666
+ return t;
1667
+ }, e.prototype.insertRules = function(e2, t) {
1668
+ if (e2 >= this.groupSizes.length) {
1669
+ for (var n = this.groupSizes, o2 = n.length, r2 = o2; e2 >= r2; ) if ((r2 <<= 1) < 0) throw se(16, "".concat(e2));
1670
+ this.groupSizes = new Uint32Array(r2), this.groupSizes.set(n), this.length = r2;
1671
+ for (var s = o2; s < r2; s++) this.groupSizes[s] = 0;
1672
+ }
1673
+ for (var i = this.indexOfGroup(e2 + 1), a2 = (s = 0, t.length); s < a2; s++) this.tag.insertRule(i, t[s]) && (this.groupSizes[e2]++, i++);
1674
+ }, e.prototype.clearGroup = function(e2) {
1675
+ if (e2 < this.length) {
1676
+ var t = this.groupSizes[e2], n = this.indexOfGroup(e2), o2 = n + t;
1677
+ this.groupSizes[e2] = 0;
1678
+ for (var r2 = n; r2 < o2; r2++) this.tag.deleteRule(n);
1679
+ }
1680
+ }, e.prototype.getGroup = function(e2) {
1681
+ var t = "";
1682
+ if (e2 >= this.length || 0 === this.groupSizes[e2]) return t;
1683
+ for (var n = this.groupSizes[e2], o2 = this.indexOfGroup(e2), r2 = o2 + n, s = o2; s < r2; s++) t += "".concat(this.tag.getRule(s)).concat(p);
1684
+ return t;
1685
+ }, e;
1686
+ }();
1687
+ var ae = 1 << 30;
1688
+ var ce = /* @__PURE__ */ new Map();
1689
+ var ue = /* @__PURE__ */ new Map();
1690
+ var le = 1;
1691
+ var pe = function(e) {
1692
+ if (ce.has(e)) return ce.get(e);
1693
+ for (; ue.has(le); ) le++;
1694
+ var t = le++;
1695
+ if ("production" !== process.env.NODE_ENV && ((0 | t) < 0 || t > ae)) throw se(16, "".concat(t));
1696
+ return ce.set(e, t), ue.set(t, e), t;
1697
+ };
1698
+ var de = function(e, t) {
1699
+ le = t + 1, ce.set(e, t), ue.set(t, e);
1700
+ };
1701
+ var he = "style[".concat(a, "][").concat(u, '="').concat(l, '"]');
1702
+ var fe = new RegExp("^".concat(a, '\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'));
1703
+ var me = function(e, t, n) {
1704
+ for (var o2, r2 = n.split(","), s = 0, i = r2.length; s < i; s++) (o2 = r2[s]) && e.registerName(t, o2);
1705
+ };
1706
+ var ye = function(e, t) {
1707
+ for (var n, o2 = (null !== (n = t.textContent) && void 0 !== n ? n : "").split(p), r2 = [], s = 0, i = o2.length; s < i; s++) {
1708
+ var a2 = o2[s].trim();
1709
+ if (a2) {
1710
+ var c2 = a2.match(fe);
1711
+ if (c2) {
1712
+ var u2 = 0 | parseInt(c2[1], 10), l2 = c2[2];
1713
+ 0 !== u2 && (de(l2, u2), me(e, l2, c2[3]), e.getTag().insertRules(u2, r2)), r2.length = 0;
1714
+ } else r2.push(a2);
1715
+ }
1716
+ }
1717
+ };
1718
+ var ve = function(e) {
1719
+ for (var t = document.querySelectorAll(he), n = 0, o2 = t.length; n < o2; n++) {
1720
+ var r2 = t[n];
1721
+ r2 && r2.getAttribute(a) !== c && (ye(e, r2), r2.parentNode && r2.parentNode.removeChild(r2));
1722
+ }
1723
+ };
1724
+ function ge() {
1725
+ return "undefined" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;
1726
+ }
1727
+ var Se = function(e) {
1728
+ var t = document.head, n = e || t, o2 = document.createElement("style"), r2 = function(e2) {
1729
+ var t2 = Array.from(e2.querySelectorAll("style[".concat(a, "]")));
1730
+ return t2[t2.length - 1];
1731
+ }(n), s = void 0 !== r2 ? r2.nextSibling : null;
1732
+ o2.setAttribute(a, c), o2.setAttribute(u, l);
1733
+ var i = ge();
1734
+ return i && o2.setAttribute("nonce", i), n.insertBefore(o2, s), o2;
1735
+ };
1736
+ var we = function() {
1737
+ function e(e2) {
1738
+ this.element = Se(e2), this.element.appendChild(document.createTextNode("")), this.sheet = function(e3) {
1739
+ if (e3.sheet) return e3.sheet;
1740
+ for (var t = document.styleSheets, n = 0, o2 = t.length; n < o2; n++) {
1741
+ var r2 = t[n];
1742
+ if (r2.ownerNode === e3) return r2;
1743
+ }
1744
+ throw se(17);
1745
+ }(this.element), this.length = 0;
1746
+ }
1747
+ return e.prototype.insertRule = function(e2, t) {
1748
+ try {
1749
+ return this.sheet.insertRule(t, e2), this.length++, true;
1750
+ } catch (e3) {
1751
+ return false;
1752
+ }
1753
+ }, e.prototype.deleteRule = function(e2) {
1754
+ this.sheet.deleteRule(e2), this.length--;
1755
+ }, e.prototype.getRule = function(e2) {
1756
+ var t = this.sheet.cssRules[e2];
1757
+ return t && t.cssText ? t.cssText : "";
1758
+ }, e;
1759
+ }();
1760
+ var be = function() {
1761
+ function e(e2) {
1762
+ this.element = Se(e2), this.nodes = this.element.childNodes, this.length = 0;
1763
+ }
1764
+ return e.prototype.insertRule = function(e2, t) {
1765
+ if (e2 <= this.length && e2 >= 0) {
1766
+ var n = document.createTextNode(t);
1767
+ return this.element.insertBefore(n, this.nodes[e2] || null), this.length++, true;
1768
+ }
1769
+ return false;
1770
+ }, e.prototype.deleteRule = function(e2) {
1771
+ this.element.removeChild(this.nodes[e2]), this.length--;
1772
+ }, e.prototype.getRule = function(e2) {
1773
+ return e2 < this.length ? this.nodes[e2].textContent : "";
1774
+ }, e;
1775
+ }();
1776
+ var Ce = function() {
1777
+ function e(e2) {
1778
+ this.rules = [], this.length = 0;
1779
+ }
1780
+ return e.prototype.insertRule = function(e2, t) {
1781
+ return e2 <= this.length && (this.rules.splice(e2, 0, t), this.length++, true);
1782
+ }, e.prototype.deleteRule = function(e2) {
1783
+ this.rules.splice(e2, 1), this.length--;
1784
+ }, e.prototype.getRule = function(e2) {
1785
+ return e2 < this.length ? this.rules[e2] : "";
1786
+ }, e;
1787
+ }();
1788
+ var Ee = d;
1789
+ var Ne = { isServer: !d, useCSSOMInjection: !f };
1790
+ var Ae = function() {
1791
+ function e(e2, n, o2) {
1792
+ void 0 === e2 && (e2 = w), void 0 === n && (n = {});
1793
+ var r2 = this;
1794
+ this.options = __assign(__assign({}, Ne), e2), this.gs = n, this.names = new Map(o2), this.server = !!e2.isServer, !this.server && d && Ee && (Ee = false, ve(this)), ne(this, function() {
1795
+ return function(e3) {
1796
+ for (var t = e3.getTag(), n2 = t.length, o3 = "", r3 = function(n3) {
1797
+ var r4 = function(e4) {
1798
+ return ue.get(e4);
1799
+ }(n3);
1800
+ if (void 0 === r4) return "continue";
1801
+ var s2 = e3.names.get(r4), i = t.getGroup(n3);
1802
+ if (void 0 === s2 || !s2.size || 0 === i.length) return "continue";
1803
+ var c2 = "".concat(a, ".g").concat(n3, '[id="').concat(r4, '"]'), u2 = "";
1804
+ void 0 !== s2 && s2.forEach(function(e4) {
1805
+ e4.length > 0 && (u2 += "".concat(e4, ","));
1806
+ }), o3 += "".concat(i).concat(c2, '{content:"').concat(u2, '"}').concat(p);
1807
+ }, s = 0; s < n2; s++) r3(s);
1808
+ return o3;
1809
+ }(r2);
1810
+ });
1811
+ }
1812
+ return e.registerId = function(e2) {
1813
+ return pe(e2);
1814
+ }, e.prototype.rehydrate = function() {
1815
+ !this.server && d && ve(this);
1816
+ }, e.prototype.reconstructWithOptions = function(n, o2) {
1817
+ return void 0 === o2 && (o2 = true), new e(__assign(__assign({}, this.options), n), this.gs, o2 && this.names || void 0);
1818
+ }, e.prototype.allocateGSInstance = function(e2) {
1819
+ return this.gs[e2] = (this.gs[e2] || 0) + 1;
1820
+ }, e.prototype.getTag = function() {
1821
+ return this.tag || (this.tag = (e2 = function(e3) {
1822
+ var t = e3.useCSSOMInjection, n = e3.target;
1823
+ return e3.isServer ? new Ce(n) : t ? new we(n) : new be(n);
1824
+ }(this.options), new ie(e2)));
1825
+ var e2;
1826
+ }, e.prototype.hasNameForId = function(e2, t) {
1827
+ return this.names.has(e2) && this.names.get(e2).has(t);
1828
+ }, e.prototype.registerName = function(e2, t) {
1829
+ if (pe(e2), this.names.has(e2)) this.names.get(e2).add(t);
1830
+ else {
1831
+ var n = /* @__PURE__ */ new Set();
1832
+ n.add(t), this.names.set(e2, n);
1833
+ }
1834
+ }, e.prototype.insertRules = function(e2, t, n) {
1835
+ this.registerName(e2, t), this.getTag().insertRules(pe(e2), n);
1836
+ }, e.prototype.clearNames = function(e2) {
1837
+ this.names.has(e2) && this.names.get(e2).clear();
1838
+ }, e.prototype.clearRules = function(e2) {
1839
+ this.getTag().clearGroup(pe(e2)), this.clearNames(e2);
1840
+ }, e.prototype.clearTag = function() {
1841
+ this.tag = void 0;
1842
+ }, e;
1843
+ }();
1844
+ var Pe = /&/g;
1845
+ var _e = 47;
1846
+ function Ie(e) {
1847
+ if (-1 === e.indexOf("}")) return false;
1848
+ for (var t = e.length, n = 0, o2 = 0, r2 = false, s = 0; s < t; s++) {
1849
+ var i = e.charCodeAt(s);
1850
+ if (0 !== o2 || r2 || i !== _e || 42 !== e.charCodeAt(s + 1)) if (r2) 42 === i && e.charCodeAt(s + 1) === _e && (r2 = false, s++);
1851
+ else if (34 !== i && 39 !== i || 0 !== s && 92 === e.charCodeAt(s - 1)) {
1852
+ if (0 === o2) {
1853
+ if (123 === i) n++;
1854
+ else if (125 === i && --n < 0) return true;
1855
+ }
1856
+ } else 0 === o2 ? o2 = i : o2 === i && (o2 = 0);
1857
+ else r2 = true, s++;
1858
+ }
1859
+ return 0 !== n || 0 !== o2;
1860
+ }
1861
+ function Oe(e, t) {
1862
+ return e.map(function(e2) {
1863
+ return "rule" === e2.type && (e2.value = "".concat(t, " ").concat(e2.value), e2.value = e2.value.replaceAll(",", ",".concat(t, " ")), e2.props = e2.props.map(function(e3) {
1864
+ return "".concat(t, " ").concat(e3);
1865
+ })), Array.isArray(e2.children) && "@keyframes" !== e2.type && (e2.children = Oe(e2.children, t)), e2;
1866
+ });
1867
+ }
1868
+ function De(e) {
1869
+ var t, n, o2, r2 = w , i = r2.options, a2 = void 0 === i ? w : i, c2 = r2.plugins, u2 = void 0 === c2 ? S : c2, l2 = function(e2, o3, r3) {
1870
+ return r3.startsWith(n) && r3.endsWith(n) && r3.replaceAll(n, "").length > 0 ? ".".concat(t) : e2;
1871
+ }, p2 = u2.slice();
1872
+ p2.push(function(e2) {
1873
+ e2.type === RULESET && e2.value.includes("&") && (e2.props[0] = e2.props[0].replace(Pe, n).replace(o2, l2));
1874
+ }), a2.prefix && p2.push(prefixer), p2.push(stringify);
1875
+ var d2 = function(e2, r3, i2, c3) {
1876
+ void 0 === r3 && (r3 = ""), void 0 === i2 && (i2 = ""), void 0 === c3 && (c3 = "&"), t = c3, n = r3, o2 = new RegExp("\\".concat(n, "\\b"), "g");
1877
+ var u3 = function(e3) {
1878
+ if (!Ie(e3)) return e3;
1879
+ for (var t2 = e3.length, n2 = "", o3 = 0, r4 = 0, s = 0, i3 = false, a3 = 0; a3 < t2; a3++) {
1880
+ var c4 = e3.charCodeAt(a3);
1881
+ if (0 !== s || i3 || c4 !== _e || 42 !== e3.charCodeAt(a3 + 1)) if (i3) 42 === c4 && e3.charCodeAt(a3 + 1) === _e && (i3 = false, a3++);
1882
+ else if (34 !== c4 && 39 !== c4 || 0 !== a3 && 92 === e3.charCodeAt(a3 - 1)) {
1883
+ if (0 === s) if (123 === c4) r4++;
1884
+ else if (125 === c4) {
1885
+ if (--r4 < 0) {
1886
+ for (var u4 = a3 + 1; u4 < t2; ) {
1887
+ var l4 = e3.charCodeAt(u4);
1888
+ if (59 === l4 || 10 === l4) break;
1889
+ u4++;
1890
+ }
1891
+ u4 < t2 && 59 === e3.charCodeAt(u4) && u4++, r4 = 0, a3 = u4 - 1, o3 = u4;
1892
+ continue;
1893
+ }
1894
+ 0 === r4 && (n2 += e3.substring(o3, a3 + 1), o3 = a3 + 1);
1895
+ } else 59 === c4 && 0 === r4 && (n2 += e3.substring(o3, a3 + 1), o3 = a3 + 1);
1896
+ } else 0 === s ? s = c4 : s === c4 && (s = 0);
1897
+ else i3 = true, a3++;
1898
+ }
1899
+ if (o3 < t2) {
1900
+ var p3 = e3.substring(o3);
1901
+ Ie(p3) || (n2 += p3);
1902
+ }
1903
+ return n2;
1904
+ }(function(e3) {
1905
+ if (-1 === e3.indexOf("//")) return e3;
1906
+ for (var t2 = e3.length, n2 = [], o3 = 0, r4 = 0, s = 0, i3 = 0; r4 < t2; ) {
1907
+ var a3 = e3.charCodeAt(r4);
1908
+ if (34 !== a3 && 39 !== a3 || 0 !== r4 && 92 === e3.charCodeAt(r4 - 1)) if (0 === s) if (40 === a3 && r4 >= 3 && 108 == (32 | e3.charCodeAt(r4 - 1)) && 114 == (32 | e3.charCodeAt(r4 - 2)) && 117 == (32 | e3.charCodeAt(r4 - 3))) i3 = 1, r4++;
1909
+ else if (i3 > 0) 41 === a3 ? i3-- : 40 === a3 && i3++, r4++;
1910
+ else if (a3 === _e && r4 + 1 < t2 && e3.charCodeAt(r4 + 1) === _e) {
1911
+ for (r4 > o3 && n2.push(e3.substring(o3, r4)); r4 < t2 && 10 !== e3.charCodeAt(r4); ) r4++;
1912
+ o3 = r4;
1913
+ } else r4++;
1914
+ else r4++;
1915
+ else 0 === s ? s = a3 : s === a3 && (s = 0), r4++;
1916
+ }
1917
+ return 0 === o3 ? e3 : (o3 < t2 && n2.push(e3.substring(o3)), n2.join(""));
1918
+ }(e2)), l3 = compile(i2 || r3 ? "".concat(i2, " ").concat(r3, " { ").concat(u3, " }") : u3);
1919
+ a2.namespace && (l3 = Oe(l3, a2.namespace));
1920
+ var d3 = [];
1921
+ return serialize(l3, middleware(p2.concat(rulesheet(function(e3) {
1922
+ return d3.push(e3);
1923
+ })))), d3;
1924
+ };
1925
+ return d2.hash = u2.length ? u2.reduce(function(e2, t2) {
1926
+ return t2.name || se(15), D(e2, t2.name);
1927
+ }, 5381).toString() : "", d2;
1928
+ }
1929
+ var Te = new Ae();
1930
+ var xe = De();
1931
+ var Re = { shouldForwardProp: void 0, styleSheet: Te, stylis: xe };
1932
+ var je = h ? { Provider: function(e) {
1933
+ return e.children;
1934
+ }, Consumer: function(e) {
1935
+ return (0, e.children)(Re);
1936
+ } } : o__namespace.default.createContext(Re);
1937
+ je.Consumer;
1938
+ h ? { } : o__namespace.default.createContext(void 0);
1939
+ function Ve() {
1940
+ return !h && o__namespace.default.useContext ? o__namespace.default.useContext(je) : Re;
1941
+ }
1942
+ var Be = function() {
1943
+ function e(e2, t) {
1944
+ var n = this;
1945
+ this.inject = function(e3, t2) {
1946
+ void 0 === t2 && (t2 = xe);
1947
+ var o2 = n.name + t2.hash;
1948
+ e3.hasNameForId(n.id, o2) || e3.insertRules(n.id, o2, t2(n.rules, o2, "@keyframes"));
1949
+ }, this.name = e2, this.id = "sc-keyframes-".concat(e2), this.rules = t, ne(this, function() {
1950
+ throw se(12, String(n.name));
1951
+ });
1952
+ }
1953
+ return e.prototype.getName = function(e2) {
1954
+ return void 0 === e2 && (e2 = xe), this.name + e2.hash;
1955
+ }, e;
1956
+ }();
1957
+ function Le(e, t) {
1958
+ return null == t || "boolean" == typeof t || "" === t ? "" : "number" != typeof t || 0 === t || e in unitlessKeys || e.startsWith("--") ? String(t).trim() : "".concat(t, "px");
1959
+ }
1960
+ var ze = function(e) {
1961
+ return e >= "A" && e <= "Z";
1962
+ };
1963
+ function Ge(e) {
1964
+ for (var t = "", n = 0; n < e.length; n++) {
1965
+ var o2 = e[n];
1966
+ if (1 === n && "-" === o2 && "-" === e[0]) return e;
1967
+ ze(o2) ? t += "-" + o2.toLowerCase() : t += o2;
1968
+ }
1969
+ return t.startsWith("ms-") ? "-" + t : t;
1970
+ }
1971
+ var $e = function(e) {
1972
+ return null == e || false === e || "" === e;
1973
+ };
1974
+ var Ye = function(t) {
1975
+ var n = [];
1976
+ for (var o2 in t) {
1977
+ var r2 = t[o2];
1978
+ t.hasOwnProperty(o2) && !$e(r2) && (Array.isArray(r2) && r2.isCss || X(r2) ? n.push("".concat(Ge(o2), ":"), r2, ";") : ee(r2) ? n.push.apply(n, __spreadArray(__spreadArray(["".concat(o2, " {")], Ye(r2), false), ["}"], false)) : n.push("".concat(Ge(o2), ": ").concat(Le(o2, r2), ";")));
1979
+ }
1980
+ return n;
1981
+ };
1982
+ function We(e, t, n, o2) {
1983
+ if ($e(e)) return [];
1984
+ if (Z(e)) return [".".concat(e.styledComponentId)];
1985
+ if (X(e)) {
1986
+ if (!X(s = e) || s.prototype && s.prototype.isReactComponent || !t) return [e];
1987
+ var r2 = e(t);
1988
+ return "production" === process.env.NODE_ENV || "object" != typeof r2 || Array.isArray(r2) || r2 instanceof Be || ee(r2) || null === r2 || console.error("".concat(R(e), " is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.")), We(r2, t, n, o2);
1989
+ }
1990
+ var s;
1991
+ return e instanceof Be ? n ? (e.inject(n, o2), [e.getName(o2)]) : [e] : ee(e) ? Ye(e) : Array.isArray(e) ? Array.prototype.concat.apply(S, e.map(function(e2) {
1992
+ return We(e2, t, n, o2);
1993
+ })) : [e.toString()];
1994
+ }
1995
+ function qe(e) {
1996
+ for (var t = 0; t < e.length; t += 1) {
1997
+ var n = e[t];
1998
+ if (X(n) && !Z(n)) return false;
1999
+ }
2000
+ return true;
2001
+ }
2002
+ var He = T(l);
2003
+ var Ue = function() {
2004
+ function e(e2, t, n) {
2005
+ this.rules = e2, this.staticRulesId = "", this.isStatic = "production" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && qe(e2), this.componentId = t, this.baseHash = D(He, t), this.baseStyle = n, Ae.registerId(t);
2006
+ }
2007
+ return e.prototype.generateAndInjectStyles = function(e2, t, n) {
2008
+ var o2 = this.baseStyle ? this.baseStyle.generateAndInjectStyles(e2, t, n).className : "";
2009
+ if (this.isStatic && !n.hash) if (this.staticRulesId && t.hasNameForId(this.componentId, this.staticRulesId)) o2 = K(o2, this.staticRulesId);
2010
+ else {
2011
+ var r2 = Q(We(this.rules, e2, t, n)), s = I(D(this.baseHash, r2) >>> 0);
2012
+ if (!t.hasNameForId(this.componentId, s)) {
2013
+ var i = n(r2, ".".concat(s), void 0, this.componentId);
2014
+ t.insertRules(this.componentId, s, i);
2015
+ }
2016
+ o2 = K(o2, s), this.staticRulesId = s;
2017
+ }
2018
+ else {
2019
+ for (var a2 = D(this.baseHash, n.hash), c2 = "", u2 = 0; u2 < this.rules.length; u2++) {
2020
+ var l2 = this.rules[u2];
2021
+ if ("string" == typeof l2) c2 += l2, "production" !== process.env.NODE_ENV && (a2 = D(a2, l2));
2022
+ else if (l2) {
2023
+ var p2 = Q(We(l2, e2, t, n));
2024
+ a2 = D(a2, p2 + u2), c2 += p2;
2025
+ }
2026
+ }
2027
+ if (c2) {
2028
+ var d2 = I(a2 >>> 0);
2029
+ if (!t.hasNameForId(this.componentId, d2)) {
2030
+ var h2 = n(c2, ".".concat(d2), void 0, this.componentId);
2031
+ t.insertRules(this.componentId, d2, h2);
2032
+ }
2033
+ o2 = K(o2, d2);
2034
+ }
2035
+ }
2036
+ return { className: o2, css: "undefined" == typeof window ? t.getTag().getGroup(pe(this.componentId)) : "" };
2037
+ }, e;
2038
+ }();
2039
+ var Je = h ? { Provider: function(e) {
2040
+ return e.children;
2041
+ }, Consumer: function(e) {
2042
+ return (0, e.children)(void 0);
2043
+ } } : o__namespace.default.createContext(void 0);
2044
+ Je.Consumer;
2045
+ var Qe = {};
2046
+ var et = /* @__PURE__ */ new Set();
2047
+ function tt(e, s, i) {
2048
+ var a2 = Z(e), c2 = e, u2 = !j(e), p2 = s.attrs, d2 = void 0 === p2 ? S : p2, f2 = s.componentId, m = void 0 === f2 ? function(e2, t) {
2049
+ var n = "string" != typeof e2 ? "sc" : A(e2);
2050
+ Qe[n] = (Qe[n] || 0) + 1;
2051
+ var o2 = "".concat(n, "-").concat(x(l + n + Qe[n]));
2052
+ return t ? "".concat(t, "-").concat(o2) : o2;
2053
+ }(s.displayName, s.parentComponentId) : f2, y2 = s.displayName, v2 = void 0 === y2 ? function(e2) {
2054
+ return j(e2) ? "styled.".concat(e2) : "Styled(".concat(R(e2), ")");
2055
+ }(e) : y2, E2 = s.displayName && s.componentId ? "".concat(A(s.displayName), "-").concat(s.componentId) : s.componentId || m, N2 = a2 && c2.attrs ? c2.attrs.concat(d2).filter(Boolean) : d2, P2 = s.shouldForwardProp;
2056
+ if (a2 && c2.shouldForwardProp) {
2057
+ var _2 = c2.shouldForwardProp;
2058
+ if (s.shouldForwardProp) {
2059
+ var I2 = s.shouldForwardProp;
2060
+ P2 = function(e2, t) {
2061
+ return _2(e2, t) && I2(e2, t);
2062
+ };
2063
+ } else P2 = _2;
2064
+ }
2065
+ var O2 = new Ue(i, E2, a2 ? c2.componentStyle : void 0);
2066
+ function D2(e2, s2) {
2067
+ return function(e3, s3, i2) {
2068
+ var a3 = e3.attrs, c3 = e3.componentStyle, u3 = e3.defaultProps, l2 = e3.foldedComponentIds, p3 = e3.styledComponentId, d3 = e3.target, f3 = o__namespace.default.useContext ? o__namespace.default.useContext(Je) : void 0, m2 = Ve(), y3 = e3.shouldForwardProp || m2.shouldForwardProp;
2069
+ "production" !== process.env.NODE_ENV && o__namespace.default.useDebugValue && o__namespace.default.useDebugValue(p3);
2070
+ var v3 = b(s3, f3, u3) || w, g2 = function(e4, n, o2) {
2071
+ for (var r2, s4 = __assign(__assign({}, n), { className: void 0, theme: o2 }), i3 = 0; i3 < e4.length; i3 += 1) {
2072
+ var a4 = X(r2 = e4[i3]) ? r2(s4) : r2;
2073
+ for (var c4 in a4) "className" === c4 ? s4.className = K(s4.className, a4[c4]) : "style" === c4 ? s4.style = __assign(__assign({}, s4.style), a4[c4]) : s4[c4] = a4[c4];
2074
+ }
2075
+ return "className" in n && "string" == typeof n.className && (s4.className = K(s4.className, n.className)), s4;
2076
+ }(a3, s3, v3), S2 = g2.as || d3, E3 = {};
2077
+ for (var N3 in g2) void 0 === g2[N3] || "$" === N3[0] || "as" === N3 || "theme" === N3 && g2.theme === v3 || ("forwardedAs" === N3 ? E3.as = g2.forwardedAs : y3 && !y3(N3, S2) || (E3[N3] = g2[N3], y3 || "development" !== process.env.NODE_ENV || isPropValid(N3) || et.has(N3) || !C.has(S2) || (et.add(N3), console.warn('styled-components: it looks like an unknown prop "'.concat(N3, '" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));
2078
+ var A2 = function(e4, t) {
2079
+ var n = Ve(), r2 = e4.generateAndInjectStyles(t, n.styleSheet, n.stylis);
2080
+ return "production" !== process.env.NODE_ENV && o__namespace.default.useDebugValue && o__namespace.default.useDebugValue(r2.className), r2;
2081
+ }(c3, g2), P3 = A2.className, _3 = A2.css;
2082
+ "production" !== process.env.NODE_ENV && e3.warnTooManyClasses && e3.warnTooManyClasses(P3);
2083
+ var I3 = K(l2, p3);
2084
+ P3 && (I3 += " " + P3), g2.className && (I3 += " " + g2.className), E3[j(S2) && !C.has(S2) ? "class" : "className"] = I3, i2 && (E3.ref = i2);
2085
+ var O3 = o.createElement(S2, E3);
2086
+ return h && _3 ? o__namespace.default.createElement(o__namespace.default.Fragment, null, o__namespace.default.createElement("style", { precedence: "styled-components", href: "sc-".concat(p3, "-").concat(P3), children: _3 }), O3) : O3;
2087
+ }(T2, e2, s2);
2088
+ }
2089
+ D2.displayName = v2;
2090
+ var T2 = o__namespace.default.forwardRef(D2);
2091
+ return T2.attrs = N2, T2.componentStyle = O2, T2.displayName = v2, T2.shouldForwardProp = P2, T2.foldedComponentIds = a2 ? K(c2.foldedComponentIds, c2.styledComponentId) : "", T2.styledComponentId = E2, T2.target = a2 ? c2.target : e, Object.defineProperty(T2, "defaultProps", { get: function() {
2092
+ return this._foldedDefaultProps;
2093
+ }, set: function(e2) {
2094
+ this._foldedDefaultProps = a2 ? function(e3) {
2095
+ for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
2096
+ for (var o2 = 0, r2 = t; o2 < r2.length; o2++) te(e3, r2[o2], true);
2097
+ return e3;
2098
+ }({}, c2.defaultProps, e2) : e2;
2099
+ } }), "production" !== process.env.NODE_ENV && (g(v2, E2), T2.warnTooManyClasses = /* @__PURE__ */ function(e2, t) {
2100
+ var n = {}, o2 = false;
2101
+ return function(r2) {
2102
+ if (!o2 && (n[r2] = true, Object.keys(n).length >= 200)) {
2103
+ var s2 = t ? ' with the id of "'.concat(t, '"') : "";
2104
+ console.warn("Over ".concat(200, " classes were generated for component ").concat(e2).concat(s2, ".\n") + "Consider using the attrs method, together with a style object for frequently changed styles.\nExample:\n const Component = styled.div.attrs(props => ({\n style: {\n background: props.background,\n },\n }))`width: 100%;`\n\n <Component />"), o2 = true, n = {};
2105
+ }
2106
+ };
2107
+ }(v2, E2)), ne(T2, function() {
2108
+ return ".".concat(T2.styledComponentId);
2109
+ }), u2 && J(T2, e, { attrs: true, componentStyle: true, displayName: true, foldedComponentIds: true, shouldForwardProp: true, styledComponentId: true, target: true }), T2;
2110
+ }
2111
+ function nt(e, t) {
2112
+ for (var n = [e[0]], o2 = 0, r2 = t.length; o2 < r2; o2 += 1) n.push(t[o2], e[o2 + 1]);
2113
+ return n;
2114
+ }
2115
+ var ot = function(e) {
2116
+ return Object.assign(e, { isCss: true });
2117
+ };
2118
+ function rt(t) {
2119
+ for (var n = [], o2 = 1; o2 < arguments.length; o2++) n[o2 - 1] = arguments[o2];
2120
+ if (X(t) || ee(t)) return ot(We(nt(S, __spreadArray([t], n, true))));
2121
+ var r2 = t;
2122
+ return 0 === n.length && 1 === r2.length && "string" == typeof r2[0] ? We(r2) : ot(We(nt(r2, n)));
2123
+ }
2124
+ function st(n, o2, r2) {
2125
+ if (void 0 === r2 && (r2 = w), !o2) throw se(1, o2);
2126
+ var s = function(t) {
2127
+ for (var s2 = [], i = 1; i < arguments.length; i++) s2[i - 1] = arguments[i];
2128
+ return n(o2, r2, rt.apply(void 0, __spreadArray([t], s2, false)));
2129
+ };
2130
+ return s.attrs = function(e) {
2131
+ return st(n, o2, __assign(__assign({}, r2), { attrs: Array.prototype.concat(r2.attrs, e).filter(Boolean) }));
2132
+ }, s.withConfig = function(e) {
2133
+ return st(n, o2, __assign(__assign({}, r2), e));
2134
+ }, s;
2135
+ }
2136
+ var it = function(e) {
2137
+ return st(tt, e);
2138
+ };
2139
+ var at = it;
2140
+ C.forEach(function(e) {
2141
+ at[e] = it(e);
2142
+ });
2143
+ function lt(t) {
2144
+ for (var n = [], o2 = 1; o2 < arguments.length; o2++) n[o2 - 1] = arguments[o2];
2145
+ "production" !== process.env.NODE_ENV && "undefined" != typeof navigator && "ReactNative" === navigator.product && console.warn("`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.");
2146
+ var r2 = Q(rt.apply(void 0, __spreadArray([t], n, false))), s = x(r2);
2147
+ return new Be(s, r2);
2148
+ }
2149
+ "production" !== process.env.NODE_ENV && "undefined" != typeof navigator && "ReactNative" === navigator.product && console.warn("It looks like you've imported 'styled-components' on React Native.\nPerhaps you're looking to import 'styled-components/native'?\nRead more about this at https://www.styled-components.com/docs/basics#react-native");
2150
+ var mt = "__sc-".concat(a, "__");
2151
+ "production" !== process.env.NODE_ENV && "test" !== process.env.NODE_ENV && "undefined" != typeof window && (window[mt] || (window[mt] = 0), 1 === window[mt] && console.warn("It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\n\nSee https://styled-components.com/docs/faqs#why-am-i-getting-a-warning-about-several-instances-of-module-on-the-page for more info."), window[mt] += 1);
2152
+ var pulse = lt`
2153
+ 0%, 100% {
2154
+ opacity: 0.45;
2155
+ transform: scale(1);
2156
+ }
2157
+ 50% {
2158
+ opacity: 0.7;
2159
+ transform: scale(1.08);
2160
+ }
2161
+ `;
2162
+ var shimmer = lt`
2163
+ 0% {
2164
+ background-position: -100% 0;
2165
+ }
2166
+ 100% {
2167
+ background-position: 200% 0;
2168
+ }
2169
+ `;
2170
+ var LogoContainer = at.span`
2171
+ display: inline-flex;
2172
+ align-items: center;
2173
+ gap: 0.35rem;
2174
+ padding: 0.35rem 0.6rem;
2175
+ background: linear-gradient(
2176
+ 135deg,
2177
+ rgba(240, 185, 11, 0.05) 0%,
2178
+ rgba(240, 185, 11, 0.1) 50%,
2179
+ rgba(240, 185, 11, 0.05) 100%
2180
+ );
2181
+ border: 1px solid rgba(240, 185, 11, 0.3);
2182
+ border-radius: 5px;
2183
+ position: relative;
2184
+ overflow: visible;
2185
+ cursor: pointer;
2186
+ transition: all 0.3s ease;
2187
+ line-height: 1.4;
2188
+
2189
+ ${({ $isGlowing }) => $isGlowing ? rt`
2190
+ border-color: rgba(240, 185, 11, 1);
2191
+ box-shadow:
2192
+ 0 0 25px rgba(240, 185, 11, 0.8),
2193
+ 0 0 40px rgba(240, 185, 11, 0.5),
2194
+ inset 0 0 20px rgba(240, 185, 11, 0.3);
2195
+ background: linear-gradient(
2196
+ 135deg,
2197
+ rgba(240, 185, 11, 0.2) 0%,
2198
+ rgba(240, 185, 11, 0.3) 50%,
2199
+ rgba(240, 185, 11, 0.2) 100%
2200
+ );
2201
+ animation: quickPulse 0.35s ease-out;
2202
+
2203
+ @keyframes quickPulse {
2204
+ 0% {
2205
+ transform: scale(1);
2206
+ }
2207
+ 50% {
2208
+ transform: scale(1.05);
2209
+ }
2210
+ 100% {
2211
+ transform: scale(1);
2212
+ }
2213
+ }
2214
+ ` : null}
2215
+
2216
+ @media (max-width: 768px) {
2217
+ padding: 0.3rem 0.4rem 0.3rem 0.25rem;
2218
+ gap: 0.25rem;
2219
+ border-radius: 4px;
2220
+ transition: none;
2221
+ }
2222
+
2223
+ @media (max-width: 480px) {
2224
+ padding: 0.2rem 0.3rem 0.2rem 0.2rem;
2225
+ gap: 0.2rem;
2226
+ }
2227
+
2228
+ @media (hover: hover) and (pointer: fine) {
2229
+ &:hover {
2230
+ border-color: rgba(240, 185, 11, 0.6);
2231
+ background: linear-gradient(
2232
+ 135deg,
2233
+ rgba(240, 185, 11, 0.1) 0%,
2234
+ rgba(240, 185, 11, 0.15) 50%,
2235
+ rgba(240, 185, 11, 0.1) 100%
2236
+ );
2237
+ transform: translateY(-1px);
2238
+ box-shadow: 0 4px 12px rgba(240, 185, 11, 0.2);
2239
+ }
2240
+ }
2241
+
2242
+ &::before {
2243
+ content: "";
2244
+ position: absolute;
2245
+ top: 0;
2246
+ left: 0;
2247
+ right: 0;
2248
+ bottom: 0;
2249
+ background: linear-gradient(90deg, transparent, rgba(240, 185, 11, 0.1), transparent);
2250
+ background-size: 200% 100%;
2251
+ animation: ${shimmer} 3s infinite;
2252
+ pointer-events: none;
2253
+ }
2254
+ `;
2255
+ var IconWrapper = at.span`
2256
+ display: flex;
2257
+ align-items: center;
2258
+ justify-content: center;
2259
+ position: relative;
2260
+ width: 16px;
2261
+ height: 16px;
2262
+
2263
+ @media (max-width: 480px) {
2264
+ width: 14px;
2265
+ height: 14px;
2266
+ }
2267
+ `;
2268
+ var IconCircle = at.span`
2269
+ position: absolute;
2270
+ width: ${({ size }) => size}px;
2271
+ height: ${({ size }) => size}px;
2272
+ border: 2px solid ${({ color }) => color};
2273
+ border-radius: 50%;
2274
+ animation: ${pulse} ${({ duration }) => duration}s infinite cubic-bezier(0.4, 0, 0.6, 1);
2275
+ animation-delay: ${({ delay }) => delay}s;
2276
+ transform-origin: center;
2277
+ will-change: transform, opacity;
2278
+ `;
2279
+ var IconCore = at.span`
2280
+ width: 5px;
2281
+ height: 5px;
2282
+ background: linear-gradient(135deg, #0ecb81 0%, #2ecc71 100%);
2283
+ border-radius: 50%;
2284
+ box-shadow: 0 0 6px rgba(14, 203, 129, 0.6);
2285
+ position: relative;
2286
+ z-index: 1;
2287
+ `;
2288
+ var LogoText = at.span`
2289
+ display: inline-flex;
2290
+ align-items: center;
2291
+ gap: 0.2rem;
2292
+ position: relative;
2293
+ z-index: 1;
2294
+ `;
2295
+ var LoafLogoImage = at.img`
2296
+ height: 20px;
2297
+ position: relative;
2298
+ z-index: 1;
2299
+
2300
+ @media (max-width: 480px) {
2301
+ height: 18px;
2302
+ }
2303
+ `;
2304
+ var LiquidityText = at.span`
2305
+ font-size: 0.65rem;
2306
+ font-weight: 400;
2307
+ background: linear-gradient(135deg, #f0b90b 0%, #ffd700 50%, #f0b90b 100%);
2308
+ background-size: 200% auto;
2309
+ -webkit-background-clip: text;
2310
+ -webkit-text-fill-color: transparent;
2311
+ background-clip: text;
2312
+ letter-spacing: 0.3px;
2313
+ opacity: 0.75;
2314
+ line-height: 1;
2315
+
2316
+ @media (max-width: 480px) {
2317
+ font-size: 0.55rem;
2318
+ letter-spacing: 0.1px;
2319
+ }
2320
+ `;
2321
+ var LoafLiquidityBadge = o__namespace.forwardRef(
2322
+ ({ className, isGlowing, onClick, children, ...props }, ref) => {
2323
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2324
+ LogoContainer,
2325
+ {
2326
+ ref,
2327
+ onClick,
2328
+ $isGlowing: isGlowing,
2329
+ className,
2330
+ role: onClick ? "button" : void 0,
2331
+ ...props,
2332
+ children: [
2333
+ /* @__PURE__ */ jsxRuntime.jsxs(LogoText, { children: [
2334
+ /* @__PURE__ */ jsxRuntime.jsx(LoafLogoImage, { src: "/Loaf-logo-Banner.png", alt: "Loaf" }),
2335
+ /* @__PURE__ */ jsxRuntime.jsx(LiquidityText, { children: children ?? "Liquidity" })
2336
+ ] }),
2337
+ /* @__PURE__ */ jsxRuntime.jsxs(IconWrapper, { children: [
2338
+ /* @__PURE__ */ jsxRuntime.jsx(IconCore, {}),
2339
+ /* @__PURE__ */ jsxRuntime.jsx(IconCircle, { size: 10, color: "rgba(14, 203, 129, 0.5)", duration: 4, delay: 0 }),
2340
+ /* @__PURE__ */ jsxRuntime.jsx(IconCircle, { size: 13, color: "rgba(14, 203, 129, 0.35)", duration: 5.2, delay: 0.7 }),
2341
+ /* @__PURE__ */ jsxRuntime.jsx(IconCircle, { size: 16, color: "rgba(14, 203, 129, 0.25)", duration: 6.3, delay: 1.3 })
2342
+ ] })
2343
+ ]
2344
+ }
2345
+ );
2346
+ }
2347
+ );
2348
+ LoafLiquidityBadge.displayName = "LoafLiquidityBadge";
809
2349
  var formatNumber = (value, precision) => value.toFixed(precision);
810
2350
  function DepthRow({
811
2351
  side,
@@ -844,7 +2384,7 @@ var clamp2 = (value, min, max) => Math.min(max, Math.max(min, value));
844
2384
  var LEVEL_ROWS_VISIBLE = 6;
845
2385
  var DEPTH_ROW_HEIGHT_PX = 34;
846
2386
  var SECTION_HEIGHT = LEVEL_ROWS_VISIBLE * DEPTH_ROW_HEIGHT_PX;
847
- var Orderbook = React5__namespace.forwardRef(
2387
+ var Orderbook = o__namespace.forwardRef(
848
2388
  ({
849
2389
  asks,
850
2390
  bids,
@@ -857,21 +2397,21 @@ var Orderbook = React5__namespace.forwardRef(
857
2397
  amountPrecision = 2,
858
2398
  defaultTab = "orderbook",
859
2399
  onTabChange,
860
- rightHeader,
2400
+ rightHeader = /* @__PURE__ */ jsxRuntime.jsx(LoafLiquidityBadge, { className: "text-[0.6rem]" }),
861
2401
  className,
862
2402
  ...props
863
2403
  }, ref) => {
864
- const [tab, setTab] = React5__namespace.useState(defaultTab);
865
- const [tradeFilter, setTradeFilter] = React5__namespace.useState("all");
866
- React5__namespace.useEffect(() => {
2404
+ const [tab, setTab] = o__namespace.useState(defaultTab);
2405
+ const [tradeFilter, setTradeFilter] = o__namespace.useState("all");
2406
+ o__namespace.useEffect(() => {
867
2407
  setTab(defaultTab);
868
2408
  }, [defaultTab]);
869
- const handleTab = (next) => {
870
- setTab(next);
871
- onTabChange?.(next);
2409
+ const handleTab = (next2) => {
2410
+ setTab(next2);
2411
+ onTabChange?.(next2);
872
2412
  };
873
- const maxAskDepth = Math.max(1, ...asks.map((l) => l.depth ?? l.amount));
874
- const maxBidDepth = Math.max(1, ...bids.map((l) => l.depth ?? l.amount));
2413
+ const maxAskDepth = Math.max(1, ...asks.map((l2) => l2.depth ?? l2.amount));
2414
+ const maxBidDepth = Math.max(1, ...bids.map((l2) => l2.depth ?? l2.amount));
875
2415
  const midClass = midChangePercent == null ? "text-white" : midChangePercent >= 0 ? "text-[#0ecb81]" : "text-[#f6465d]";
876
2416
  const tradeFiltered = trades.filter((t) => tradeFilter === "all" || t.type === tradeFilter);
877
2417
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -879,7 +2419,7 @@ var Orderbook = React5__namespace.forwardRef(
879
2419
  {
880
2420
  ref,
881
2421
  className: cn(
882
- "w-full max-w-[520px] overflow-hidden rounded-[12px] border border-white/10 bg-black/30 text-white shadow-md",
2422
+ "w-full max-w-[520px] overflow-hidden rounded-[12px] border border-white/10 bg-[#111111] text-white shadow-md",
883
2423
  className
884
2424
  ),
885
2425
  ...props,
@@ -989,17 +2529,17 @@ var Orderbook = React5__namespace.forwardRef(
989
2529
  {
990
2530
  className: "divide-y divide-white/5 overflow-y-auto",
991
2531
  style: { height: `${SECTION_HEIGHT}px`, scrollbarGutter: "stable" },
992
- children: asks.map((l, idx) => /* @__PURE__ */ jsxRuntime.jsx(
2532
+ children: asks.map((l2, idx) => /* @__PURE__ */ jsxRuntime.jsx(
993
2533
  DepthRow,
994
2534
  {
995
2535
  side: "ask",
996
- price: l.price,
997
- amount: l.amount,
998
- depthPct: (l.depth ?? l.amount) / maxAskDepth * 100,
2536
+ price: l2.price,
2537
+ amount: l2.amount,
2538
+ depthPct: (l2.depth ?? l2.amount) / maxAskDepth * 100,
999
2539
  precision,
1000
2540
  amountPrecision
1001
2541
  },
1002
- `ask-${idx}-${l.price}-${l.amount}`
2542
+ `ask-${idx}-${l2.price}-${l2.amount}`
1003
2543
  ))
1004
2544
  }
1005
2545
  ),
@@ -1020,17 +2560,17 @@ var Orderbook = React5__namespace.forwardRef(
1020
2560
  {
1021
2561
  className: "divide-y divide-white/5 overflow-y-auto",
1022
2562
  style: { height: `${SECTION_HEIGHT}px`, scrollbarGutter: "stable" },
1023
- children: bids.map((l, idx) => /* @__PURE__ */ jsxRuntime.jsx(
2563
+ children: bids.map((l2, idx) => /* @__PURE__ */ jsxRuntime.jsx(
1024
2564
  DepthRow,
1025
2565
  {
1026
2566
  side: "bid",
1027
- price: l.price,
1028
- amount: l.amount,
1029
- depthPct: (l.depth ?? l.amount) / maxBidDepth * 100,
2567
+ price: l2.price,
2568
+ amount: l2.amount,
2569
+ depthPct: (l2.depth ?? l2.amount) / maxBidDepth * 100,
1030
2570
  precision,
1031
2571
  amountPrecision
1032
2572
  },
1033
- `bid-${idx}-${l.price}-${l.amount}`
2573
+ `bid-${idx}-${l2.price}-${l2.amount}`
1034
2574
  ))
1035
2575
  }
1036
2576
  )
@@ -1042,7 +2582,7 @@ var Orderbook = React5__namespace.forwardRef(
1042
2582
  }
1043
2583
  );
1044
2584
  Orderbook.displayName = "Orderbook";
1045
- var PropertyTour = React5__namespace.forwardRef(
2585
+ var PropertyTour = o__namespace.forwardRef(
1046
2586
  ({
1047
2587
  className,
1048
2588
  title,
@@ -1055,13 +2595,13 @@ var PropertyTour = React5__namespace.forwardRef(
1055
2595
  playsInline = true,
1056
2596
  ...props
1057
2597
  }, ref) => {
1058
- const videoRef = React5__namespace.useRef(null);
1059
- React5__namespace.useEffect(() => {
2598
+ const videoRef = o__namespace.useRef(null);
2599
+ o__namespace.useEffect(() => {
1060
2600
  const video = videoRef.current;
1061
2601
  if (!video) return;
1062
2602
  const handleFullscreenChange = () => {
1063
- const d = document;
1064
- const isFullscreen = !!(d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement || d.msFullscreenElement);
2603
+ const d2 = document;
2604
+ const isFullscreen = !!(d2.fullscreenElement || d2.webkitFullscreenElement || d2.mozFullScreenElement || d2.msFullscreenElement);
1065
2605
  if (isFullscreen) {
1066
2606
  video.style.objectFit = "contain";
1067
2607
  video.style.width = "100vw";
@@ -1106,7 +2646,7 @@ var PropertyTour = React5__namespace.forwardRef(
1106
2646
  {
1107
2647
  ref,
1108
2648
  className: cn(
1109
- "w-full max-w-[820px] rounded-[12px] border border-white/10 bg-black/30 text-white backdrop-blur-md",
2649
+ "w-full max-w-[820px] rounded-[12px] border border-white/10 bg-[#111111] text-white backdrop-blur-md",
1110
2650
  className
1111
2651
  ),
1112
2652
  ...props,
@@ -1179,7 +2719,7 @@ var formatDate = (value) => {
1179
2719
  year: "numeric"
1180
2720
  });
1181
2721
  };
1182
- var PropertyNewsUpdates = React5__namespace.forwardRef(
2722
+ var PropertyNewsUpdates = o__namespace.forwardRef(
1183
2723
  ({
1184
2724
  className,
1185
2725
  heading = "Property News & Headlines",
@@ -1189,14 +2729,14 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
1189
2729
  highlightFirst = true,
1190
2730
  ...props
1191
2731
  }, ref) => {
1192
- const [page, setPage] = React5__namespace.useState(0);
1193
- React5__namespace.useEffect(() => {
2732
+ const [page, setPage] = o__namespace.useState(0);
2733
+ o__namespace.useEffect(() => {
1194
2734
  ensureAnimationsInjected();
1195
2735
  }, []);
1196
2736
  const hasItems = Array.isArray(items) && items.length > 0;
1197
- const totalPages = React5__namespace.useMemo(() => hasItems ? Math.max(1, Math.ceil(items.length / ITEMS_PER_PAGE)) : 1, [hasItems, items.length]);
1198
- React5__namespace.useEffect(() => {
1199
- setPage((prev) => Math.min(prev, totalPages - 1));
2737
+ const totalPages = o__namespace.useMemo(() => hasItems ? Math.max(1, Math.ceil(items.length / ITEMS_PER_PAGE)) : 1, [hasItems, items.length]);
2738
+ o__namespace.useEffect(() => {
2739
+ setPage((prev2) => Math.min(prev2, totalPages - 1));
1200
2740
  }, [totalPages]);
1201
2741
  const paginatedItems = hasItems ? items.slice(page * ITEMS_PER_PAGE, page * ITEMS_PER_PAGE + ITEMS_PER_PAGE) : [];
1202
2742
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1308,7 +2848,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
1308
2848
  "button",
1309
2849
  {
1310
2850
  type: "button",
1311
- onClick: () => setPage((prev) => Math.max(0, prev - 1)),
2851
+ onClick: () => setPage((prev2) => Math.max(0, prev2 - 1)),
1312
2852
  disabled: page === 0,
1313
2853
  className: cn(
1314
2854
  "rounded-full border border-white/15 px-3 py-1 uppercase tracking-[0.2em]",
@@ -1327,7 +2867,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
1327
2867
  "button",
1328
2868
  {
1329
2869
  type: "button",
1330
- onClick: () => setPage((prev) => Math.min(totalPages - 1, prev + 1)),
2870
+ onClick: () => setPage((prev2) => Math.min(totalPages - 1, prev2 + 1)),
1331
2871
  disabled: page >= totalPages - 1,
1332
2872
  className: cn(
1333
2873
  "rounded-full border border-white/15 px-3 py-1 uppercase tracking-[0.2em]",
@@ -1343,18 +2883,17 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
1343
2883
  }
1344
2884
  );
1345
2885
  PropertyNewsUpdates.displayName = "PropertyNewsUpdates";
1346
- var PropertyCompareBar = React5__namespace.forwardRef(
2886
+ var PropertyCompareBar = o__namespace.forwardRef(
1347
2887
  ({
1348
2888
  className,
1349
2889
  addresses,
1350
2890
  selectedAddressId,
1351
2891
  onSelectAddress,
1352
- compareLabel = "Compare",
1353
- onCompareClick,
1354
- compareIcon,
2892
+ propertyValue,
2893
+ propertyValueVariant = "classic",
1355
2894
  ...props
1356
2895
  }, ref) => {
1357
- const normalizedAddresses = React5__namespace.useMemo(() => {
2896
+ const normalizedAddresses = o__namespace.useMemo(() => {
1358
2897
  return addresses.map(
1359
2898
  (option) => typeof option === "string" ? { id: option, label: option } : option
1360
2899
  );
@@ -1362,11 +2901,11 @@ var PropertyCompareBar = React5__namespace.forwardRef(
1362
2901
  const hasAddresses = normalizedAddresses.length > 0;
1363
2902
  const firstAddressId = normalizedAddresses[0]?.id;
1364
2903
  const isControlled = selectedAddressId !== void 0;
1365
- const [internalSelectedId, setInternalSelectedId] = React5__namespace.useState(
2904
+ const [internalSelectedId, setInternalSelectedId] = o__namespace.useState(
1366
2905
  () => isControlled ? void 0 : firstAddressId
1367
2906
  );
1368
2907
  const resolvedSelectedId = isControlled ? selectedAddressId : internalSelectedId;
1369
- React5__namespace.useEffect(() => {
2908
+ o__namespace.useEffect(() => {
1370
2909
  if (!isControlled) {
1371
2910
  setInternalSelectedId((current) => {
1372
2911
  if (current != null && normalizedAddresses.some((option) => option.id === current)) {
@@ -1377,9 +2916,9 @@ var PropertyCompareBar = React5__namespace.forwardRef(
1377
2916
  }
1378
2917
  }, [firstAddressId, isControlled, normalizedAddresses]);
1379
2918
  const selectedOption = normalizedAddresses.find((option) => option.id === resolvedSelectedId) ?? normalizedAddresses[0];
1380
- const [isDropdownOpen, setIsDropdownOpen] = React5__namespace.useState(false);
1381
- const dropdownRef = React5__namespace.useRef(null);
1382
- React5__namespace.useEffect(() => {
2919
+ const [isDropdownOpen, setIsDropdownOpen] = o__namespace.useState(false);
2920
+ const dropdownRef = o__namespace.useRef(null);
2921
+ o__namespace.useEffect(() => {
1383
2922
  if (!isDropdownOpen) return;
1384
2923
  const handleClick = (event) => {
1385
2924
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
@@ -1398,7 +2937,6 @@ var PropertyCompareBar = React5__namespace.forwardRef(
1398
2937
  document.removeEventListener("keydown", handleKey);
1399
2938
  };
1400
2939
  }, [isDropdownOpen]);
1401
- const defaultCompareIcon = /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 4h7v7H4V4zm0 9h7v7H4v-7zm9-9h7v7h-7V4zm0 9h7v7h-7v-7z" }) });
1402
2940
  const handleAddressSelect = (addressId) => {
1403
2941
  if (!isControlled) {
1404
2942
  setInternalSelectedId(addressId);
@@ -1406,81 +2944,206 @@ var PropertyCompareBar = React5__namespace.forwardRef(
1406
2944
  onSelectAddress?.(addressId);
1407
2945
  setIsDropdownOpen(false);
1408
2946
  };
1409
- return /* @__PURE__ */ jsxRuntime.jsxs(
1410
- "div",
1411
- {
1412
- ref,
1413
- className: cn(
1414
- "flex w-full flex-col gap-3 border border-white/10 px-4 py-3 text-white shadow-[0_18px_40px_rgba(0,0,0,0.55)] md:flex-row md:items-center md:justify-between md:gap-4",
1415
- className
1416
- ),
1417
- style: { borderRadius: "16px" },
1418
- ...props,
1419
- children: [
1420
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-auto", ref: dropdownRef, children: [
1421
- /* @__PURE__ */ jsxRuntime.jsxs(
1422
- "button",
1423
- {
1424
- type: "button",
1425
- disabled: !hasAddresses,
1426
- onClick: () => setIsDropdownOpen((prev) => !prev),
1427
- className: cn(
1428
- "flex h-[42px] w-auto items-center gap-2 rounded-[12px] border border-transparent bg-transparent px-0 text-left text-[15px] font-semibold text-white transition hover:text-white/80 focus-visible:outline-none",
1429
- !hasAddresses && "text-white/40"
1430
- ),
1431
- children: [
1432
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: selectedOption ? selectedOption.label : hasAddresses ? "Select address" : "No addresses available" }),
1433
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-3 flex items-center text-white/60 transition-transform", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(
1434
- "svg",
1435
- {
1436
- width: "16",
1437
- height: "16",
1438
- viewBox: "0 0 24 24",
1439
- fill: "currentColor",
1440
- className: cn("transition-transform", isDropdownOpen && "rotate-180"),
1441
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5H7z" })
1442
- }
1443
- ) })
1444
- ]
1445
- }
1446
- ),
1447
- isDropdownOpen && hasAddresses ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 top-[calc(100%+8px)] z-20 w-full rounded-[12px] border border-white/10 py-1 shadow-[0_25px_55px_rgba(0,0,0,0.6)] bg-black", children: normalizedAddresses.map((option) => {
1448
- const active = option.id === resolvedSelectedId;
1449
- return /* @__PURE__ */ jsxRuntime.jsx(
1450
- "button",
1451
- {
1452
- type: "button",
1453
- className: cn(
1454
- "flex w-full items-center px-4 py-2 text-left text-[14px] text-white/80 transition hover:bg-white/5 hover:text-white",
1455
- active && "text-white"
1456
- ),
1457
- onClick: () => handleAddressSelect(option.id),
1458
- children: option.label
1459
- },
1460
- option.id
1461
- );
1462
- }) }) : null
1463
- ] }),
1464
- /* @__PURE__ */ jsxRuntime.jsxs(
1465
- Button,
2947
+ const propertyValueLabel = propertyValue?.label ?? "Property Value";
2948
+ const propertyValueCurrency = propertyValue?.currencySymbol ?? "$";
2949
+ const propertyValueFormat = propertyValue?.formatOptions ?? {
2950
+ minimumFractionDigits: 2,
2951
+ maximumFractionDigits: 2
2952
+ };
2953
+ const formattedPropertyValue = propertyValue == null ? null : `${propertyValueCurrency}${propertyValue.value.toLocaleString(
2954
+ void 0,
2955
+ propertyValueFormat
2956
+ )}`;
2957
+ const formattedPropertyChange = propertyValue?.change == null ? null : `${propertyValue.change >= 0 ? "+" : "-"}${propertyValueCurrency}${Math.abs(
2958
+ propertyValue.change
2959
+ ).toLocaleString(void 0, propertyValueFormat)}`;
2960
+ propertyValue?.change == null ? void 0 : propertyValue.change >= 0 ? "text-[#0ecb81]" : "text-[#f6465d]";
2961
+ return /* @__PURE__ */ jsxRuntime.jsxs(PropertySelectorContainer, { ref, className, $variant: propertyValueVariant, ...props, children: [
2962
+ /* @__PURE__ */ jsxRuntime.jsxs(PropertySelector, { ref: dropdownRef, onClick: () => hasAddresses && setIsDropdownOpen((prev2) => !prev2), children: [
2963
+ /* @__PURE__ */ jsxRuntime.jsxs(PropertyAddress, { children: [
2964
+ selectedOption ? selectedOption.label : hasAddresses ? "Select address" : "No addresses available",
2965
+ /* @__PURE__ */ jsxRuntime.jsx(
2966
+ "svg",
1466
2967
  {
1467
- variant: "accentOutline",
1468
- size: "sm",
1469
- className: "flex items-center justify-center gap-2 rounded-[10px] border-[var(--color-accent,#e6c87e)] bg-transparent px-4 py-2 text-[14px] font-semibold text-[var(--color-accent,#e6c87e)] transition hover:bg-[rgba(230,200,126,0.08)] md:ml-auto",
1470
- onClick: onCompareClick,
1471
- disabled: !hasAddresses,
1472
- children: [
1473
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base", children: compareIcon ?? defaultCompareIcon }),
1474
- compareLabel
1475
- ]
2968
+ className: "dropdown-icon",
2969
+ xmlns: "http://www.w3.org/2000/svg",
2970
+ width: "20",
2971
+ height: "20",
2972
+ viewBox: "0 0 24 24",
2973
+ fill: "currentColor",
2974
+ style: { transform: isDropdownOpen ? "rotate(180deg)" : void 0 },
2975
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5H7z" })
1476
2976
  }
1477
2977
  )
1478
- ]
1479
- }
1480
- );
2978
+ ] }),
2979
+ /* @__PURE__ */ jsxRuntime.jsx(PropertySelectorDropdown, { $isOpen: isDropdownOpen && hasAddresses, children: normalizedAddresses.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
2980
+ PropertySelectorOption,
2981
+ {
2982
+ onClick: (event) => {
2983
+ event.stopPropagation();
2984
+ handleAddressSelect(option.id);
2985
+ },
2986
+ children: /* @__PURE__ */ jsxRuntime.jsx(PropertySelectorName, { children: option.label })
2987
+ },
2988
+ option.id
2989
+ )) })
2990
+ ] }),
2991
+ formattedPropertyValue ? /* @__PURE__ */ jsxRuntime.jsxs(PropertyValueBlock, { $variant: propertyValueVariant, children: [
2992
+ /* @__PURE__ */ jsxRuntime.jsx(PropertyValueLabel, { children: propertyValueLabel }),
2993
+ /* @__PURE__ */ jsxRuntime.jsx(PropertyValueAmount, { children: formattedPropertyValue }),
2994
+ formattedPropertyChange ? /* @__PURE__ */ jsxRuntime.jsx(PropertyValueChange, { $isPositive: propertyValue?.change != null ? propertyValue.change >= 0 : void 0, children: formattedPropertyChange }) : null
2995
+ ] }) : null
2996
+ ] });
1481
2997
  }
1482
2998
  );
1483
2999
  PropertyCompareBar.displayName = "PropertyCompareBar";
3000
+ var PropertySelectorContainer = at.div`
3001
+ display: flex;
3002
+ align-items: center;
3003
+ justify-content: space-between;
3004
+ padding: 1rem 1.5rem;
3005
+ background-color: ${({ $variant }) => $variant === "pill" ? "#0f0f0f" : "rgba(30, 32, 38, 0.95)"};
3006
+ border: ${({ $variant }) => $variant === "pill" ? "1px solid rgba(255, 255, 255, 0.15)" : "none"};
3007
+ border-radius: 8px;
3008
+ margin-bottom: 1.5rem;
3009
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
3010
+ color: var(--color-text, #f8f9fa);
3011
+ font-family: var(--font-family, "Inter", sans-serif);
3012
+
3013
+ @media (max-width: 1024px) {
3014
+ padding: 0.75rem 1rem;
3015
+ margin-bottom: 0.75rem;
3016
+ }
3017
+
3018
+ @media (max-width: 768px) {
3019
+ border-radius: 0;
3020
+ margin-top: 0;
3021
+ padding-top: 0.5rem;
3022
+ flex-direction: column;
3023
+ align-items: flex-start;
3024
+ gap: 0.75rem;
3025
+ }
3026
+
3027
+ @media (max-width: 600px) {
3028
+ flex-direction: column;
3029
+ gap: 0.5rem;
3030
+ }
3031
+ `;
3032
+ var PropertySelector = at.div`
3033
+ position: relative;
3034
+ display: flex;
3035
+ align-items: center;
3036
+ cursor: pointer;
3037
+ padding: 0.5rem 0;
3038
+ flex: 1;
3039
+
3040
+ &:hover {
3041
+ .dropdown-icon {
3042
+ transform: translateY(2px);
3043
+ }
3044
+ }
3045
+ `;
3046
+ var PropertyAddress = at.div`
3047
+ font-size: 1.25rem;
3048
+ font-weight: 600;
3049
+ display: flex;
3050
+ align-items: center;
3051
+ gap: 0.5rem;
3052
+ color: inherit;
3053
+
3054
+ svg {
3055
+ transition: transform 0.2s;
3056
+ }
3057
+ `;
3058
+ var PropertySelectorDropdown = at.div`
3059
+ position: absolute;
3060
+ top: 100%;
3061
+ left: 0;
3062
+ width: 100%;
3063
+ max-width: 400px;
3064
+ background-color: var(--color-card, #1f232b);
3065
+ border-radius: 8px;
3066
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
3067
+ z-index: 100;
3068
+ overflow: hidden;
3069
+ display: ${(props) => props.$isOpen ? "block" : "none"};
3070
+ `;
3071
+ var PropertySelectorOption = at.div`
3072
+ padding: 0.75rem 1rem;
3073
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
3074
+ cursor: pointer;
3075
+ transition: background-color 0.2s;
3076
+
3077
+ &:hover {
3078
+ background-color: rgba(255, 255, 255, 0.05);
3079
+ }
3080
+
3081
+ &:last-child {
3082
+ border-bottom: none;
3083
+ }
3084
+ `;
3085
+ var PropertySelectorName = at.div`
3086
+ font-weight: 600;
3087
+ `;
3088
+ var PropertyValueBlock = at.div`
3089
+ display: flex;
3090
+ align-items: center;
3091
+ gap: 0.5rem;
3092
+ margin-left: 1rem;
3093
+ white-space: nowrap;
3094
+
3095
+ ${({ $variant }) => $variant === "card" && rt`
3096
+ margin-left: auto;
3097
+ flex-direction: row;
3098
+ align-items: center;
3099
+ min-width: 220px;
3100
+ border: none;
3101
+ background: rgba(30, 32, 38, 0.95);
3102
+ border-radius: 14px;
3103
+ padding: 0.9rem 1.25rem;
3104
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
3105
+ gap: 0.85rem;
3106
+ justify-content: flex-end;
3107
+ `}
3108
+
3109
+ ${({ $variant }) => $variant === "pill" && rt`
3110
+ margin-left: auto;
3111
+ margin-right: 1rem;
3112
+ background: #191919;
3113
+ border-radius: 8px;
3114
+ border: 1px solid rgba(255, 255, 255, 0.05);
3115
+ padding: 0.5rem 1rem;
3116
+ gap: 1rem;
3117
+ align-items: center;
3118
+ `}
3119
+
3120
+ @media (max-width: 768px) {
3121
+ margin-left: 0;
3122
+ }
3123
+
3124
+ @media (max-width: 600px) {
3125
+ margin: 0;
3126
+ flex-direction: column;
3127
+ align-items: flex-start;
3128
+ gap: 0.125rem;
3129
+ }
3130
+ `;
3131
+ var PropertyValueLabel = at.span`
3132
+ font-size: 0.7rem;
3133
+ color: var(--color-text-secondary, rgba(255, 255, 255, 0.6));
3134
+ text-transform: uppercase;
3135
+ letter-spacing: 0.5px;
3136
+ `;
3137
+ var PropertyValueAmount = at.span`
3138
+ font-size: 1.1rem;
3139
+ font-weight: 600;
3140
+ color: #fff;
3141
+ `;
3142
+ var PropertyValueChange = at.span`
3143
+ font-size: 0.75rem;
3144
+ font-weight: 500;
3145
+ color: ${(props) => props.$isPositive == null ? "var(--color-text-secondary, rgba(255, 255, 255, 0.6))" : props.$isPositive ? "var(--color-positive, #0ecb81)" : "var(--color-negative, #f6465d)"};
3146
+ `;
1484
3147
  var TABS = [
1485
3148
  { id: "portfolio", label: "Portfolio" },
1486
3149
  { id: "openOrders", label: "Open Orders" },
@@ -1575,9 +3238,9 @@ var formatPercent = (value, fractionDigits = 2) => {
1575
3238
  if (value == null || Number.isNaN(value)) return "\u2014";
1576
3239
  return `${value.toFixed(fractionDigits)}%`;
1577
3240
  };
1578
- var YourOrders = React5__namespace.forwardRef(
3241
+ var YourOrders = o__namespace.forwardRef(
1579
3242
  ({ className, title = "Portfolio Holdings (Demo)", orders, renderOrderActions, ...props }, ref) => {
1580
- const [activeTab, setActiveTab] = React5__namespace.useState("portfolio");
3243
+ const [activeTab, setActiveTab] = o__namespace.useState("portfolio");
1581
3244
  const hasOrders = Array.isArray(orders) && orders.length > 0;
1582
3245
  const renderPortfolio = () => {
1583
3246
  if (!hasOrders) {
@@ -1749,7 +3412,7 @@ var formatPrice = (value, currencySymbol) => {
1749
3412
  maximumFractionDigits: 2
1750
3413
  })}`;
1751
3414
  };
1752
- var PriceChart = React5__namespace.forwardRef(
3415
+ var PriceChart = o__namespace.forwardRef(
1753
3416
  ({
1754
3417
  className,
1755
3418
  title = "Price Chart",
@@ -1763,24 +3426,24 @@ var PriceChart = React5__namespace.forwardRef(
1763
3426
  height = 301.52,
1764
3427
  ...props
1765
3428
  }, ref) => {
1766
- const containerRef = React5__namespace.useRef(null);
1767
- const chartRef = React5__namespace.useRef(null);
1768
- const seriesRef = React5__namespace.useRef(null);
1769
- const priceLineRef = React5__namespace.useRef(null);
1770
- const [hoveredRange, setHoveredRange] = React5__namespace.useState(null);
1771
- const resolvedPrice = React5__namespace.useMemo(() => {
3429
+ const containerRef = o__namespace.useRef(null);
3430
+ const chartRef = o__namespace.useRef(null);
3431
+ const seriesRef = o__namespace.useRef(null);
3432
+ const priceLineRef = o__namespace.useRef(null);
3433
+ const [hoveredRange, setHoveredRange] = o__namespace.useState(null);
3434
+ const resolvedPrice = o__namespace.useMemo(() => {
1772
3435
  if (price != null) return price;
1773
3436
  const last = data.at(-1);
1774
3437
  return last?.close;
1775
3438
  }, [data, price]);
1776
- const inferredChangePercent = React5__namespace.useMemo(() => {
3439
+ const inferredChangePercent = o__namespace.useMemo(() => {
1777
3440
  if (changePercent != null) return changePercent;
1778
3441
  const first = data[0]?.open;
1779
3442
  const last = data.at(-1)?.close;
1780
3443
  if (first == null || last == null || first === 0) return void 0;
1781
3444
  return (last - first) / first * 100;
1782
3445
  }, [changePercent, data]);
1783
- React5__namespace.useEffect(() => {
3446
+ o__namespace.useEffect(() => {
1784
3447
  const el = containerRef.current;
1785
3448
  if (!el) return;
1786
3449
  const chart = lightweightCharts.createChart(el, {
@@ -1823,7 +3486,7 @@ var PriceChart = React5__namespace.forwardRef(
1823
3486
  chart.remove();
1824
3487
  };
1825
3488
  }, []);
1826
- React5__namespace.useEffect(() => {
3489
+ o__namespace.useEffect(() => {
1827
3490
  const chart = chartRef.current;
1828
3491
  const series = seriesRef.current;
1829
3492
  if (!chart || !series) return;
@@ -1875,9 +3538,9 @@ var PriceChart = React5__namespace.forwardRef(
1875
3538
  /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "flex flex-row items-start justify-between gap-4 px-6 pb-2 pt-6", children: [
1876
3539
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1877
3540
  /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "m-0 text-[1.1rem] font-semibold text-white", children: title }),
1878
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex items-center gap-2", children: ranges.map((r) => {
1879
- const active = r === selectedRange;
1880
- const hovered = hoveredRange === r;
3541
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex items-center gap-2", children: ranges.map((r2) => {
3542
+ const active = r2 === selectedRange;
3543
+ const hovered = hoveredRange === r2;
1881
3544
  const style = {
1882
3545
  ...btnBaseStyle,
1883
3546
  ...hovered ? btnHoverStyle : null,
@@ -1887,16 +3550,16 @@ var PriceChart = React5__namespace.forwardRef(
1887
3550
  "button",
1888
3551
  {
1889
3552
  type: "button",
1890
- onClick: () => onRangeChange?.(r),
1891
- onMouseEnter: () => setHoveredRange(r),
1892
- onMouseLeave: () => setHoveredRange((prev) => prev === r ? null : prev),
3553
+ onClick: () => onRangeChange?.(r2),
3554
+ onMouseEnter: () => setHoveredRange(r2),
3555
+ onMouseLeave: () => setHoveredRange((prev2) => prev2 === r2 ? null : prev2),
1893
3556
  style,
1894
3557
  className: cn(
1895
3558
  "rounded border px-3 py-1 text-[0.85rem] font-medium transition-all duration-200"
1896
3559
  ),
1897
- children: r
3560
+ children: r2
1898
3561
  },
1899
- r
3562
+ r2
1900
3563
  );
1901
3564
  }) })
1902
3565
  ] }),
@@ -1929,7 +3592,7 @@ var formatPrice2 = (value, currencySymbol) => {
1929
3592
  maximumFractionDigits: 3
1930
3593
  })}`;
1931
3594
  };
1932
- var PropertyHeroHeader = React5__namespace.forwardRef(
3595
+ var PropertyHeroHeader = o__namespace.forwardRef(
1933
3596
  ({
1934
3597
  className,
1935
3598
  imageUrl,
@@ -1950,14 +3613,39 @@ var PropertyHeroHeader = React5__namespace.forwardRef(
1950
3613
  const isPositive = changePercent == null ? void 0 : changePercent >= 0;
1951
3614
  const accentColor = "#e6c87e";
1952
3615
  const tradeHoverColor = "#f5dd9a";
1953
- const [isTradeInteracting, setIsTradeInteracting] = React5__namespace.useState(false);
1954
- const [isOfferInteracting, setIsOfferInteracting] = React5__namespace.useState(false);
3616
+ const [isTradeInteracting, setIsTradeInteracting] = o__namespace.useState(false);
3617
+ const [isOfferInteracting, setIsOfferInteracting] = o__namespace.useState(false);
3618
+ const headingStyle = {
3619
+ fontSize: "2.5rem",
3620
+ marginBottom: "0.5rem",
3621
+ color: "#ffffff",
3622
+ textShadow: "0 2px 4px rgba(0, 0, 0, 0.3)",
3623
+ fontWeight: 600,
3624
+ lineHeight: 1.2
3625
+ };
3626
+ const priceBlockStyle = {
3627
+ fontSize: "1.25rem",
3628
+ fontWeight: 600,
3629
+ color: "var(--color-accent, #f0b90b)",
3630
+ marginLeft: "1rem",
3631
+ paddingLeft: "1rem",
3632
+ borderLeft: "1px solid rgba(255, 255, 255, 0.3)",
3633
+ display: "flex",
3634
+ alignItems: "center"
3635
+ };
3636
+ const locationStyle = {
3637
+ fontSize: "1.25rem",
3638
+ color: "rgba(255, 255, 255, 0.9)",
3639
+ marginBottom: "0.75rem",
3640
+ display: "flex",
3641
+ alignItems: "center"
3642
+ };
1955
3643
  return /* @__PURE__ */ jsxRuntime.jsxs(
1956
3644
  "div",
1957
3645
  {
1958
3646
  ref,
1959
3647
  className: cn(
1960
- "relative w-full overflow-hidden bg-black h-[500px] rounded-[12px] max-[768px]:h-[400px] max-[768px]:rounded-lg max-[480px]:h-[350px] max-[480px]:rounded-md",
3648
+ "relative w-[1200px] h-[500px] overflow-hidden bg-black rounded-[12px]",
1961
3649
  className
1962
3650
  ),
1963
3651
  ...props,
@@ -1967,50 +3655,45 @@ var PropertyHeroHeader = React5__namespace.forwardRef(
1967
3655
  {
1968
3656
  src: imageUrl,
1969
3657
  alt: imageAlt ?? name,
1970
- className: "h-full w-full object-cover object-center block max-w-none min-w-[120%] min-h-[120%]",
1971
- style: { transform: "scale(1.0)", transformOrigin: "center" }
3658
+ className: "absolute inset-0 block h-full w-full object-cover object-center",
3659
+ style: { transform: "scale(1.20)", transformOrigin: "center" }
1972
3660
  }
1973
3661
  ),
1974
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 flex w-full items-end justify-between p-8 max-[768px]:flex-col max-[768px]:items-start max-[768px]:gap-4 max-[768px]:p-6 max-[480px]:p-4", children: [
1975
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-block w-auto max-w-[70%] rounded-lg bg-black/15 px-4 py-3 text-white shadow-[0px_1px_1px_rgba(0,0,0,0.3)] backdrop-blur-[3px] max-[768px]:w-full max-[768px]:max-w-full max-[768px]:px-3 max-[768px]:py-3 max-[480px]:px-3 max-[480px]:py-2", children: [
1976
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mb-2 text-[2.5rem] leading-tight text-white [text-shadow:0_2px_4px_rgba(0,0,0,0.3)] max-[768px]:mb-[0.4rem] max-[768px]:text-[2rem] max-[480px]:mb-[0.3rem] max-[480px]:text-[1.75rem]", children: name }),
1977
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex flex-wrap items-center text-[1.25rem] text-white/90 max-[768px]:mb-[0.6rem] max-[768px]:text-[1.1rem] max-[480px]:mb-[0.5rem] max-[480px]:text-[1rem]", children: [
1978
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: location }),
1979
- price == null ? null : /* @__PURE__ */ jsxRuntime.jsxs(
1980
- "span",
1981
- {
1982
- className: "ml-4 flex items-center border-l border-white/30 pl-4 font-semibold",
1983
- style: { color: "var(--color-accent, #e6c87e)" },
1984
- children: [
1985
- formatPrice2(price, currencySymbol),
1986
- changePercent == null ? null : /* @__PURE__ */ jsxRuntime.jsxs(
1987
- "span",
1988
- {
1989
- className: cn(
1990
- "ml-2 flex items-center text-[0.875rem] font-medium",
1991
- isPositive ? "text-[#0ecb81]" : "text-[#f6465d]"
3662
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 z-10 flex w-full items-end justify-between gap-4 p-8 max-[768px]:flex-col max-[768px]:items-start max-[768px]:gap-4 max-[768px]:p-6 max-[480px]:p-4", children: [
3663
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-block w-full rounded-lg bg-black/15 px-4 py-3 text-white shadow-[0px_1px_1px_rgba(0,0,0,0.3)] backdrop-blur-[3px] max-[768px]:w-full max-[768px]:px-3 max-[768px]:py-3 max-[480px]:px-3 max-[480px]:py-2 min-[769px]:flex-1 min-[769px]:min-w-0", children: [
3664
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-2", children: [
3665
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { style: headingStyle, className: "break-words", children: name }),
3666
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex flex-wrap items-center max-[768px]:mb-[0.6rem] max-[768px]:text-[1.1rem] max-[480px]:mb-[0.5rem] max-[480px]:text-[1rem]", children: [
3667
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: locationStyle, children: location }),
3668
+ price == null ? null : /* @__PURE__ */ jsxRuntime.jsxs("span", { style: priceBlockStyle, children: [
3669
+ formatPrice2(price, currencySymbol),
3670
+ changePercent == null ? null : /* @__PURE__ */ jsxRuntime.jsxs(
3671
+ "span",
3672
+ {
3673
+ className: cn(
3674
+ "ml-2 flex items-center text-[0.875rem] font-medium",
3675
+ isPositive ? "text-[#0ecb81]" : "text-[#f6465d]"
3676
+ ),
3677
+ children: [
3678
+ /* @__PURE__ */ jsxRuntime.jsx(
3679
+ "svg",
3680
+ {
3681
+ xmlns: "http://www.w3.org/2000/svg",
3682
+ width: "12",
3683
+ height: "12",
3684
+ viewBox: "0 0 24 24",
3685
+ fill: "currentColor",
3686
+ className: "mr-[0.15rem]",
3687
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: isPositive ? "M7 14l5-5 5 5H7z" : "M7 10l5 5 5-5H7z" })
3688
+ }
1992
3689
  ),
1993
- children: [
1994
- /* @__PURE__ */ jsxRuntime.jsx(
1995
- "svg",
1996
- {
1997
- xmlns: "http://www.w3.org/2000/svg",
1998
- width: "12",
1999
- height: "12",
2000
- viewBox: "0 0 24 24",
2001
- fill: "currentColor",
2002
- className: "mr-[0.15rem]",
2003
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: isPositive ? "M7 14l5-5 5 5H7z" : "M7 10l5 5 5-5H7z" })
2004
- }
2005
- ),
2006
- Math.abs(changePercent).toFixed(2),
2007
- "%"
2008
- ]
2009
- }
2010
- )
2011
- ]
2012
- }
2013
- )
3690
+ Math.abs(changePercent).toFixed(2),
3691
+ "%"
3692
+ ]
3693
+ }
3694
+ )
3695
+ ] })
3696
+ ] })
2014
3697
  ] }),
2015
3698
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6 text-[0.95rem] text-white/90 max-[768px]:hidden", children: [
2016
3699
  beds == null ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
@@ -2037,7 +3720,7 @@ var PropertyHeroHeader = React5__namespace.forwardRef(
2037
3720
  propertyTypeLabel == null ? null : /* @__PURE__ */ jsxRuntime.jsx("div", { children: propertyTypeLabel })
2038
3721
  ] })
2039
3722
  ] }),
2040
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3 max-[768px]:w-full max-[768px]:justify-between max-[768px]:gap-2 max-[480px]:gap-2", children: [
3723
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-wrap items-center gap-3 max-[768px]:w-full max-[768px]:justify-between max-[768px]:gap-2 max-[480px]:gap-2", children: [
2041
3724
  /* @__PURE__ */ jsxRuntime.jsx(
2042
3725
  "button",
2043
3726
  {
@@ -2098,18 +3781,13 @@ var PropertyHeroHeader = React5__namespace.forwardRef(
2098
3781
  }
2099
3782
  );
2100
3783
  PropertyHeroHeader.displayName = "PropertyHeroHeader";
2101
- var PropertySubheader = React5__namespace.forwardRef(
3784
+ var PropertySubheader = o__namespace.forwardRef(
2102
3785
  ({ className, tabs, activeTabId, onTabChange, actions, ...props }, ref) => {
2103
3786
  return /* @__PURE__ */ jsxRuntime.jsxs(
2104
3787
  "div",
2105
3788
  {
2106
3789
  ref,
2107
- className: cn(
2108
- "w-full font-normal",
2109
- "flex flex-col gap-3",
2110
- "md:flex-row md:items-center md:justify-between",
2111
- className
2112
- ),
3790
+ className: cn("w-full font-normal flex flex-col gap-3 md:flex-row md:items-center md:justify-between", className),
2113
3791
  ...props,
2114
3792
  children: [
2115
3793
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2125,7 +3803,7 @@ var PropertySubheader = React5__namespace.forwardRef(
2125
3803
  "md:border-b-0"
2126
3804
  ),
2127
3805
  style: { WebkitTapHighlightColor: "transparent" },
2128
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-max", children: tabs.map((tab) => {
3806
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-max gap-2 lg:gap-4", children: tabs.map((tab) => {
2129
3807
  const active = tab.id === activeTabId;
2130
3808
  return /* @__PURE__ */ jsxRuntime.jsxs(
2131
3809
  "button",
@@ -2134,12 +3812,13 @@ var PropertySubheader = React5__namespace.forwardRef(
2134
3812
  onClick: () => onTabChange?.(tab.id),
2135
3813
  className: cn(
2136
3814
  "relative whitespace-nowrap",
2137
- "px-6 py-4",
2138
- "font-normal",
3815
+ "px-5 py-4 lg:px-6",
3816
+ "text-[16px]",
3817
+ "font-medium",
2139
3818
  "transition-colors",
2140
3819
  "max-[768px]:px-[1.2rem] max-[768px]:py-[0.8rem]",
2141
- "max-[480px]:px-4 max-[480px]:py-[0.7rem] max-[480px]:text-[0.9rem]",
2142
- active ? "font-semibold text-[var(--color-accent,#e6c87e)]" : "text-white/60 hover:text-white"
3820
+ "max-[480px]:px-4 max-[480px]:py-[0.7rem]",
3821
+ active ? "font-semibold text-[var(--color-accent,#e6c87e)] hover:text-[var(--color-accent,#f1d27a)]" : "text-white/65 hover:text-white"
2143
3822
  ),
2144
3823
  style: {
2145
3824
  borderBottom: active ? "2px solid var(--color-accent, #e6c87e)" : "2px solid transparent",
@@ -2182,10 +3861,10 @@ var PropertySubheader = React5__namespace.forwardRef(
2182
3861
  onClick: action.onClick,
2183
3862
  className: cn(
2184
3863
  "flex shrink-0 items-center gap-[5px] whitespace-nowrap",
2185
- "rounded",
2186
- "border border-white/10",
3864
+ "rounded-[6px]",
3865
+ "border border-white/15",
2187
3866
  "bg-transparent",
2188
- "px-3 py-1.5 text-[14px] font-normal",
3867
+ "px-3.5 py-1.5 text-[14px] font-medium",
2189
3868
  "transition-all",
2190
3869
  "max-[768px]:px-2.5 max-[768px]:py-[5px] max-[768px]:text-[13px]",
2191
3870
  "hover:bg-white/5 hover:border-[var(--color-accent,#e6c87e)] hover:text-[var(--color-accent,#e6c87e)]"
@@ -2215,6 +3894,7 @@ exports.CardFooter = CardFooter;
2215
3894
  exports.CardHeader = CardHeader;
2216
3895
  exports.CardTitle = CardTitle;
2217
3896
  exports.HousePositionSlider = HousePositionSlider;
3897
+ exports.LoafLiquidityBadge = LoafLiquidityBadge;
2218
3898
  exports.Orderbook = Orderbook;
2219
3899
  exports.PortfolioSummary = PortfolioSummary;
2220
3900
  exports.PriceChart = PriceChart;