@loafmarkets/ui 0.1.38 → 0.1.40

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.mjs CHANGED
@@ -7270,7 +7270,7 @@ function GalleryMapSection({
7270
7270
  const [carouselIndex, setCarouselIndex] = useState(0);
7271
7271
  const [showVideo, setShowVideo] = useState(false);
7272
7272
  const [autoPlaying, setAutoPlaying] = useState(autoPlay);
7273
- const resolvedMapUrl = mapUrl ?? (tokenName ? `https://demo.loafmarkets.com/map/${tokenName}?embed=true&zoom=14&hideOthers=true` : "about:blank");
7273
+ const resolvedMapUrl = mapUrl ?? (tokenName ? `/map/${tokenName}?embed=true&zoom=14&hideOthers=true` : "about:blank");
7274
7274
  useEffect(() => {
7275
7275
  if (!autoPlaying || images.length <= 1) return;
7276
7276
  const interval = setInterval(() => {
@@ -8945,6 +8945,16 @@ var IPOAssetSelector = styled24.div`
8945
8945
  z-index: 10;
8946
8946
  transition: all 0.3s ease;
8947
8947
  &:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.4); border-color: rgba(255,255,255,0.15); }
8948
+
8949
+ @media (max-width: 768px) {
8950
+ flex-wrap: wrap;
8951
+ padding: 0.75rem 1rem;
8952
+ gap: 0.5rem;
8953
+ }
8954
+
8955
+ @media (max-width: 480px) {
8956
+ padding: 0.6rem 0.75rem;
8957
+ }
8948
8958
  `;
8949
8959
  var AssetSelectorDropdown = styled24.div`
8950
8960
  display: flex;
@@ -8964,6 +8974,15 @@ var AssetName = styled24.div`
8964
8974
  letter-spacing: -0.02em;
8965
8975
  svg { margin-left: 0.75rem; transition: transform 0.3s cubic-bezier(0.4,0,0.2,1); opacity: 0.7; }
8966
8976
  &:hover svg { opacity: 1; }
8977
+
8978
+ @media (max-width: 768px) {
8979
+ font-size: 1rem;
8980
+ }
8981
+
8982
+ @media (max-width: 480px) {
8983
+ font-size: 0.9rem;
8984
+ svg { margin-left: 0.4rem; width: 16px; height: 16px; }
8985
+ }
8967
8986
  `;
8968
8987
  var SelectorMetrics = styled24.div`
8969
8988
  display: flex;
@@ -8975,6 +8994,20 @@ var SelectorMetrics = styled24.div`
8975
8994
  background: rgba(255,255,255,0.03);
8976
8995
  border-radius: 8px;
8977
8996
  border: 1px solid rgba(255,255,255,0.05);
8997
+
8998
+ @media (max-width: 768px) {
8999
+ gap: 0.6rem;
9000
+ padding: 0.4rem 0.75rem;
9001
+ margin-right: 0;
9002
+ }
9003
+
9004
+ @media (max-width: 480px) {
9005
+ width: 100%;
9006
+ justify-content: center;
9007
+ margin-left: 0;
9008
+ padding: 0.35rem 0.5rem;
9009
+ gap: 0.5rem;
9010
+ }
8978
9011
  `;
8979
9012
  var MetricLabel2 = styled24.span`
8980
9013
  font-size: 0.75rem;
@@ -8983,11 +9016,24 @@ var MetricLabel2 = styled24.span`
8983
9016
  letter-spacing: 0.05em;
8984
9017
  font-weight: 500;
8985
9018
  margin-right: 0.5rem;
9019
+
9020
+ @media (max-width: 768px) {
9021
+ font-size: 0.65rem;
9022
+ margin-right: 0.35rem;
9023
+ }
8986
9024
  `;
8987
9025
  var MetricValue = styled24.span`
8988
9026
  font-size: 1.25rem;
8989
9027
  font-weight: 700;
8990
9028
  color: ${(p) => p.$accent ? "#D4AF37" : "#fff"};
9029
+
9030
+ @media (max-width: 768px) {
9031
+ font-size: 1.05rem;
9032
+ }
9033
+
9034
+ @media (max-width: 480px) {
9035
+ font-size: 0.95rem;
9036
+ }
8991
9037
  `;
8992
9038
  var MetricChange = styled24.span`
8993
9039
  font-size: 0.85rem;
@@ -8996,6 +9042,10 @@ var MetricChange = styled24.span`
8996
9042
  display: flex;
8997
9043
  align-items: center;
8998
9044
  gap: 0.25rem;
9045
+
9046
+ @media (max-width: 768px) {
9047
+ font-size: 0.75rem;
9048
+ }
8999
9049
  `;
9000
9050
  var Separator = styled24.span`
9001
9051
  font-size: 1rem;
@@ -9014,6 +9064,11 @@ var IPODropdown = styled24.div`
9014
9064
  max-height: 360px;
9015
9065
  overflow-y: auto;
9016
9066
  border: 1px solid rgba(255,255,255,0.08);
9067
+
9068
+ @media (max-width: 480px) {
9069
+ max-height: 280px;
9070
+ border-radius: 12px;
9071
+ }
9017
9072
  animation: slideDown 0.3s cubic-bezier(0.4,0,0.2,1);
9018
9073
  @keyframes slideDown {
9019
9074
  from { opacity: 0; transform: translateY(-10px); }
@@ -9808,7 +9863,7 @@ function OrderPanel({
9808
9863
  "input",
9809
9864
  {
9810
9865
  type: "text",
9811
- inputMode: "numeric",
9866
+ inputMode: "decimal",
9812
9867
  value: isPayInputFocused ? payInputValue : orderTotal.toLocaleString(),
9813
9868
  onFocus: (e) => {
9814
9869
  setIsPayInputFocused(true);
@@ -9816,7 +9871,12 @@ function OrderPanel({
9816
9871
  e.target.select();
9817
9872
  },
9818
9873
  onBlur: handlePayBlur,
9819
- onChange: (e) => setPayInputValue(e.target.value),
9874
+ onChange: (e) => {
9875
+ const v = e.target.value;
9876
+ if (v === "" || /^\d*\.?\d{0,2}$/.test(v)) {
9877
+ setPayInputValue(v);
9878
+ }
9879
+ },
9820
9880
  onKeyDown: (e) => {
9821
9881
  if (e.key === "Enter") {
9822
9882
  e.target.blur();
@@ -9882,7 +9942,12 @@ function OrderPanel({
9882
9942
  e.target.select();
9883
9943
  },
9884
9944
  onBlur: handleReceiveBlur,
9885
- onChange: (e) => setReceiveInputValue(e.target.value),
9945
+ onChange: (e) => {
9946
+ const v = e.target.value;
9947
+ if (v === "" || /^\d+$/.test(v)) {
9948
+ setReceiveInputValue(v);
9949
+ }
9950
+ },
9886
9951
  onKeyDown: (e) => {
9887
9952
  if (e.key === "Enter") {
9888
9953
  e.target.blur();
@@ -10013,9 +10078,10 @@ var Panel2 = styled24.div`
10013
10078
  }
10014
10079
  @media (max-width: 768px) {
10015
10080
  padding: 1rem;
10016
- input[style*="font-size: 1.75rem"] {
10017
- font-size: 1.25rem !important;
10018
- }
10081
+ }
10082
+ @media (max-width: 480px) {
10083
+ padding: 0.75rem;
10084
+ border-radius: 6px;
10019
10085
  }
10020
10086
  `;
10021
10087
  var PanelHeader2 = styled24.div`
@@ -10049,6 +10115,11 @@ var Card2 = styled24.div`
10049
10115
  border: 1px solid rgba(255,255,255,0.15);
10050
10116
  border-radius: 12px;
10051
10117
  padding: 1rem 1.25rem;
10118
+
10119
+ @media (max-width: 480px) {
10120
+ padding: 0.75rem 1rem;
10121
+ border-radius: 10px;
10122
+ }
10052
10123
  `;
10053
10124
  var CardLabel = styled24.div`
10054
10125
  font-size: 0.75rem;
@@ -10067,6 +10138,10 @@ var CardInputRow = styled24.div`
10067
10138
  font-weight: 600;
10068
10139
  color: #fff;
10069
10140
  width: 100%;
10141
+
10142
+ @media (max-width: 480px) {
10143
+ font-size: 1.35rem;
10144
+ }
10070
10145
  }
10071
10146
  span {
10072
10147
  font-size: 1rem;
@@ -10080,8 +10155,10 @@ var QuickSelectRow = styled24.div`
10080
10155
  display: flex;
10081
10156
  gap: 0.5rem;
10082
10157
  margin-top: 0.75rem;
10158
+ flex-wrap: wrap;
10083
10159
  button {
10084
10160
  flex: 1;
10161
+ min-width: 50px;
10085
10162
  padding: 0.4rem 0;
10086
10163
  font-size: 0.75rem;
10087
10164
  font-weight: 500;
@@ -10097,6 +10174,11 @@ var QuickSelectRow = styled24.div`
10097
10174
  border-color: rgba(212,175,55,0.5);
10098
10175
  color: #D4AF37;
10099
10176
  }
10177
+
10178
+ @media (max-width: 480px) {
10179
+ gap: 0.35rem;
10180
+ button { font-size: 0.7rem; padding: 0.35rem 0; }
10181
+ }
10100
10182
  `;
10101
10183
  var FundsRow = styled24.div`
10102
10184
  display: flex;
@@ -10220,6 +10302,10 @@ var BalanceValue = styled24.div`
10220
10302
  color: #0ecb81;
10221
10303
  font-weight: 600;
10222
10304
  }
10305
+
10306
+ @media (max-width: 480px) {
10307
+ font-size: 1.2rem;
10308
+ }
10223
10309
  `;
10224
10310
  var BalanceAction = styled24.div`
10225
10311
  font-size: 0.75rem;
@@ -10678,6 +10764,10 @@ var TabContainer = styled24.div`
10678
10764
  gap: 0;
10679
10765
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
10680
10766
  margin-bottom: 0.75rem;
10767
+ overflow-x: auto;
10768
+ -webkit-overflow-scrolling: touch;
10769
+ scrollbar-width: none;
10770
+ &::-webkit-scrollbar { display: none; }
10681
10771
  `;
10682
10772
  var Tab = styled24.button`
10683
10773
  background: transparent;
@@ -10685,6 +10775,8 @@ var Tab = styled24.button`
10685
10775
  padding: 0.6rem 1rem;
10686
10776
  font-size: 0.75rem;
10687
10777
  font-weight: 500;
10778
+ white-space: nowrap;
10779
+ flex-shrink: 0;
10688
10780
  color: ${({ $active }) => $active ? "#f0b90b" : "rgba(255, 255, 255, 0.4)"};
10689
10781
  cursor: pointer;
10690
10782
  transition: color 0.15s;
@@ -10955,8 +11047,14 @@ var Row2 = styled24.div`
10955
11047
  max-width: 1800px;
10956
11048
  margin-left: auto;
10957
11049
  margin-right: auto;
10958
- @media (max-width: 1024px) {
11050
+ overflow: hidden;
11051
+ @media (max-width: 768px) {
10959
11052
  grid-template-columns: 1fr;
11053
+ gap: 1rem;
11054
+ }
11055
+ & > * {
11056
+ min-width: 0;
11057
+ overflow: hidden;
10960
11058
  }
10961
11059
  `;
10962
11060
  var TradeNewsPanel = styled24.div`
@@ -10968,8 +11066,8 @@ var TradeNewsPanel = styled24.div`
10968
11066
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
10969
11067
  border: 1px solid var(--color-border);
10970
11068
  min-height: 280px;
10971
- overflow: visible !important;
10972
- @media (max-width: 1024px) {
11069
+ overflow: hidden;
11070
+ @media (max-width: 768px) {
10973
11071
  max-width: 100%;
10974
11072
  flex: 0 0 100%;
10975
11073
  }
@@ -11620,29 +11718,42 @@ var HeroGrid = styled24.div`
11620
11718
  }
11621
11719
 
11622
11720
  @media (max-width: 1024px) {
11623
- grid-template-columns: 1fr;
11624
- grid-template-rows: auto;
11721
+ display: flex;
11722
+ flex-direction: column;
11625
11723
  gap: 1rem;
11724
+ overflow: hidden;
11626
11725
 
11627
11726
  & > div:nth-child(1) {
11628
11727
  display: none;
11629
11728
  }
11630
11729
 
11631
11730
  & > div:nth-child(2) {
11632
- grid-column: 1 / -1;
11633
11731
  order: 1;
11732
+ min-width: 0;
11733
+ width: 100%;
11634
11734
  }
11635
11735
 
11636
11736
  & > div:nth-child(4) {
11637
- grid-column: 1 / -1;
11638
11737
  order: 2;
11738
+ min-width: 0;
11739
+ width: 100%;
11740
+ height: auto;
11639
11741
  }
11640
11742
 
11641
11743
  & > div:nth-child(3) {
11642
- grid-column: 1 / -1;
11643
11744
  order: 3;
11745
+ min-width: 0;
11746
+ width: 100%;
11644
11747
  }
11645
11748
  }
11749
+
11750
+ @media (max-width: 768px) {
11751
+ gap: 0.75rem;
11752
+ }
11753
+
11754
+ @media (max-width: 480px) {
11755
+ gap: 0.5rem;
11756
+ }
11646
11757
  `;
11647
11758
  var PaymentOption = styled24.div`
11648
11759
  display: flex;