@loafmarkets/ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -255,14 +255,28 @@ type YourOrder = {
255
255
  priceChangePercent?: number;
256
256
  priceChangePositive?: boolean;
257
257
  };
258
- type YourOrdersProps = React.HTMLAttributes<HTMLDivElement> & {
258
+ type YourOrdersTab = {
259
+ id: string;
260
+ label: string;
259
261
  title?: string;
260
262
  orders: YourOrder[];
263
+ emptyState?: string;
264
+ enableCancel?: boolean;
265
+ };
266
+ type YourOrdersProps = React.HTMLAttributes<HTMLDivElement> & {
267
+ title?: string;
268
+ orders?: YourOrder[];
269
+ tabs?: YourOrdersTab[];
270
+ activeTabId?: string;
271
+ onTabChange?: (tabId: string) => void;
261
272
  renderOrderActions?: (order: YourOrder) => React.ReactNode;
262
273
  };
263
274
  declare const YourOrders: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
264
275
  title?: string;
265
- orders: YourOrder[];
276
+ orders?: YourOrder[];
277
+ tabs?: YourOrdersTab[];
278
+ activeTabId?: string;
279
+ onTabChange?: (tabId: string) => void;
266
280
  renderOrderActions?: (order: YourOrder) => React.ReactNode;
267
281
  } & React.RefAttributes<HTMLDivElement>>;
268
282
 
package/dist/index.d.ts CHANGED
@@ -255,14 +255,28 @@ type YourOrder = {
255
255
  priceChangePercent?: number;
256
256
  priceChangePositive?: boolean;
257
257
  };
258
- type YourOrdersProps = React.HTMLAttributes<HTMLDivElement> & {
258
+ type YourOrdersTab = {
259
+ id: string;
260
+ label: string;
259
261
  title?: string;
260
262
  orders: YourOrder[];
263
+ emptyState?: string;
264
+ enableCancel?: boolean;
265
+ };
266
+ type YourOrdersProps = React.HTMLAttributes<HTMLDivElement> & {
267
+ title?: string;
268
+ orders?: YourOrder[];
269
+ tabs?: YourOrdersTab[];
270
+ activeTabId?: string;
271
+ onTabChange?: (tabId: string) => void;
261
272
  renderOrderActions?: (order: YourOrder) => React.ReactNode;
262
273
  };
263
274
  declare const YourOrders: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
264
275
  title?: string;
265
- orders: YourOrder[];
276
+ orders?: YourOrder[];
277
+ tabs?: YourOrdersTab[];
278
+ activeTabId?: string;
279
+ onTabChange?: (tabId: string) => void;
266
280
  renderOrderActions?: (order: YourOrder) => React.ReactNode;
267
281
  } & React.RefAttributes<HTMLDivElement>>;
268
282
 
package/dist/index.js CHANGED
@@ -4297,7 +4297,7 @@ var PriceChange = at.span`
4297
4297
  gap: 0.35rem;
4298
4298
  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)"};
4299
4299
  `;
4300
- var TABS = [
4300
+ var DEFAULT_TABS = [
4301
4301
  { id: "portfolio", label: "Portfolio" },
4302
4302
  { id: "openOrders", label: "Open Orders" },
4303
4303
  { id: "tradeHistory", label: "Trade History" },
@@ -4392,12 +4392,29 @@ var formatPercent = (value, fractionDigits = 2) => {
4392
4392
  return `${value.toFixed(fractionDigits)}%`;
4393
4393
  };
4394
4394
  var YourOrders = o__namespace.forwardRef(
4395
- ({ className, title = "Portfolio Holdings (Demo)", orders, renderOrderActions, ...props }, ref) => {
4396
- const [activeTab, setActiveTab] = o__namespace.useState("portfolio");
4397
- const hasOrders = Array.isArray(orders) && orders.length > 0;
4398
- const renderPortfolio = () => {
4395
+ ({ className, title, orders, tabs, activeTabId, onTabChange, renderOrderActions, ...props }, ref) => {
4396
+ const [internalActiveTab, setInternalActiveTab] = o__namespace.useState(tabs?.[0]?.id ?? "portfolio");
4397
+ const effectiveActiveTabId = activeTabId ?? internalActiveTab;
4398
+ const handleTabChange = (tabId) => {
4399
+ if (onTabChange) {
4400
+ onTabChange(tabId);
4401
+ } else {
4402
+ setInternalActiveTab(tabId);
4403
+ }
4404
+ };
4405
+ const resolvedTabs = tabs ?? DEFAULT_TABS.map((t) => ({ ...t, orders: orders ?? [], emptyState: `No ${t.label.toLowerCase()} data available.` }));
4406
+ const activeTab = resolvedTabs.find((t) => t.id === effectiveActiveTabId) ?? resolvedTabs[0];
4407
+ const activeOrders = activeTab?.orders ?? orders ?? [];
4408
+ const displayTitle = title ?? activeTab?.title ?? activeTab?.label ?? "Portfolio Holdings";
4409
+ console.log("[YourOrders] tabs:", tabs?.map((t) => ({ id: t.id, ordersCount: t.orders?.length })));
4410
+ console.log("[YourOrders] activeTabId prop:", activeTabId);
4411
+ console.log("[YourOrders] effectiveActiveTabId:", effectiveActiveTabId);
4412
+ console.log("[YourOrders] activeTab:", activeTab?.id, "orders count:", activeOrders?.length);
4413
+ const hasOrders = Array.isArray(activeOrders) && activeOrders.length > 0;
4414
+ const emptyMessage = activeTab?.emptyState ?? "No holdings yet. Start trading to build your portfolio.";
4415
+ const renderOrders = () => {
4399
4416
  if (!hasOrders) {
4400
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: emptyStateStyle, children: "No holdings yet. Start trading to build your portfolio." });
4417
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: emptyStateStyle, children: emptyMessage });
4401
4418
  }
4402
4419
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4403
4420
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: tableHeaderStyle, children: [
@@ -4408,7 +4425,7 @@ var YourOrders = o__namespace.forwardRef(
4408
4425
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: tableHeaderCell, children: "Avg Price" }),
4409
4426
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: tableHeaderCell, children: "P&L" })
4410
4427
  ] }),
4411
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "0.65rem" }, children: orders.map((order) => {
4428
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "0.65rem" }, children: activeOrders.map((order) => {
4412
4429
  const propertyName = order.asset;
4413
4430
  const holding = order.holdingLabel ?? `${order.amount.toLocaleString(void 0, {
4414
4431
  minimumFractionDigits: 0,
@@ -4501,24 +4518,7 @@ var YourOrders = o__namespace.forwardRef(
4501
4518
  }) })
4502
4519
  ] });
4503
4520
  };
4504
- const renderOtherTab = (label) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: emptyStateStyle, children: `No ${label.toLowerCase()} data available.` });
4505
- let tabContent = null;
4506
- switch (activeTab) {
4507
- case "portfolio":
4508
- tabContent = renderPortfolio();
4509
- break;
4510
- case "openOrders":
4511
- tabContent = renderOtherTab("Open Orders");
4512
- break;
4513
- case "tradeHistory":
4514
- tabContent = renderOtherTab("Trade History");
4515
- break;
4516
- case "orderHistory":
4517
- tabContent = renderOtherTab("Order History");
4518
- break;
4519
- default:
4520
- tabContent = null;
4521
- }
4521
+ const tabContent = renderOrders();
4522
4522
  return /* @__PURE__ */ jsxRuntime.jsxs(
4523
4523
  "div",
4524
4524
  {
@@ -4527,14 +4527,14 @@ var YourOrders = o__namespace.forwardRef(
4527
4527
  className,
4528
4528
  ...props,
4529
4529
  children: [
4530
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: headerStyle, children: /* @__PURE__ */ jsxRuntime.jsx("h3", { style: titleStyle, children: title }) }),
4531
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: tabsRowStyle, children: TABS.map((tab) => {
4532
- const isActive = activeTab === tab.id;
4530
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: headerStyle, children: /* @__PURE__ */ jsxRuntime.jsx("h3", { style: titleStyle, children: displayTitle }) }),
4531
+ resolvedTabs.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: tabsRowStyle, children: resolvedTabs.map((tab) => {
4532
+ const isActive = effectiveActiveTabId === tab.id;
4533
4533
  return /* @__PURE__ */ jsxRuntime.jsxs(
4534
4534
  "button",
4535
4535
  {
4536
4536
  type: "button",
4537
- onClick: () => setActiveTab(tab.id),
4537
+ onClick: () => handleTabChange(tab.id),
4538
4538
  style: {
4539
4539
  ...tabButtonBase,
4540
4540
  color: isActive ? "#ffffff" : "rgba(255,255,255,0.55)",
@@ -5140,243 +5140,99 @@ var PriceBlock2 = at.span`
5140
5140
  `;
5141
5141
  var PropertySubheader = o__namespace.forwardRef(
5142
5142
  ({ className, tabs, activeTabId, onTabChange, actions, ...props }, ref) => {
5143
- const tabRefs = o__namespace.useRef([]);
5144
- const tabsWrapperRef = o__namespace.useRef(null);
5145
- const scrollContainerRef = o__namespace.useRef(null);
5146
- const indicatorRef = o__namespace.useRef(null);
5147
- const [isMobile, setIsMobile] = o__namespace.useState(false);
5148
- const [tabScrollThumb, setTabScrollThumb] = o__namespace.useState({
5149
- widthPercent: 100,
5150
- leftPercent: 0,
5151
- scrollable: false
5152
- });
5153
- const actionContainerStyle = o__namespace.useMemo(() => {
5154
- if (isMobile) {
5155
- return {
5156
- order: -1,
5157
- justifyContent: "center",
5158
- gap: "0.45rem",
5159
- flexWrap: "wrap"
5160
- };
5161
- }
5162
- return { order: 0 };
5163
- }, [isMobile]);
5164
- const actionButtonStyle = o__namespace.useMemo(() => {
5165
- if (isMobile) {
5166
- return { padding: "0.35rem 0.6rem", fontSize: "11px" };
5167
- }
5168
- return void 0;
5169
- }, [isMobile]);
5170
- const updateTabScrollThumb = o__namespace.useCallback(() => {
5171
- const container = scrollContainerRef.current;
5172
- if (!container) return;
5173
- const visibleWidth = container.clientWidth;
5174
- const totalWidth = container.scrollWidth;
5175
- if (totalWidth <= visibleWidth || visibleWidth === 0) {
5176
- setTabScrollThumb(
5177
- (prev2) => prev2.scrollable ? { widthPercent: 100, leftPercent: 0, scrollable: false } : prev2
5178
- );
5179
- return;
5180
- }
5181
- const widthPercent = visibleWidth / totalWidth * 100;
5182
- const maxScroll = Math.max(totalWidth - visibleWidth, 0);
5183
- const scrollRatio = maxScroll === 0 ? 0 : container.scrollLeft / maxScroll;
5184
- const usableTrack = Math.max(100 - widthPercent, 0);
5185
- const leftPercent = scrollRatio * usableTrack;
5186
- setTabScrollThumb({
5187
- widthPercent,
5188
- leftPercent,
5189
- scrollable: true
5190
- });
5191
- }, []);
5192
- const updateMobileIndicator = o__namespace.useCallback(() => {
5193
- if (typeof window === "undefined") return;
5194
- if (!indicatorRef.current || !tabsWrapperRef.current) return;
5195
- const isMobile2 = window.matchMedia("(max-width: 768px)").matches;
5196
- if (!isMobile2) {
5197
- indicatorRef.current.style.width = "0px";
5198
- indicatorRef.current.style.transform = "translateX(0)";
5199
- setTabScrollThumb(
5200
- (prev2) => prev2.scrollable ? { widthPercent: 100, leftPercent: 0, scrollable: false } : prev2
5201
- );
5202
- return;
5203
- }
5204
- const activeIndex = tabs.findIndex((tab) => tab.id === activeTabId);
5205
- if (activeIndex === -1) return;
5206
- const activeButton = tabRefs.current[activeIndex];
5207
- if (!activeButton) return;
5208
- const wrapperRect = tabsWrapperRef.current.getBoundingClientRect();
5209
- const buttonRect = activeButton.getBoundingClientRect();
5210
- const width = buttonRect.width;
5211
- const left = buttonRect.left - wrapperRect.left;
5212
- indicatorRef.current.style.width = `${width}px`;
5213
- indicatorRef.current.style.transform = `translateX(${left}px)`;
5214
- updateTabScrollThumb();
5215
- }, [activeTabId, tabs, updateTabScrollThumb]);
5216
- o__namespace.useEffect(() => {
5217
- updateMobileIndicator();
5218
- }, [updateMobileIndicator]);
5143
+ const tabsContainerRef = o__namespace.useRef(null);
5219
5144
  o__namespace.useEffect(() => {
5220
- if (typeof window === "undefined") return;
5221
- const handleResize = () => updateMobileIndicator();
5222
- window.addEventListener("resize", handleResize);
5223
- return () => window.removeEventListener("resize", handleResize);
5224
- }, [updateMobileIndicator]);
5225
- o__namespace.useEffect(() => {
5226
- const scrollEl = scrollContainerRef.current;
5227
- if (!scrollEl) return;
5228
- const handleScroll = () => {
5229
- updateMobileIndicator();
5230
- updateTabScrollThumb();
5145
+ const container = tabsContainerRef.current;
5146
+ if (!container) return;
5147
+ const isMobile = window.innerWidth <= 768;
5148
+ if (!isMobile) return;
5149
+ const forceScrollbar = () => {
5150
+ if (container.scrollWidth > container.clientWidth) {
5151
+ container.scrollTop = 1;
5152
+ container.scrollTop = 0;
5153
+ container.scrollLeft = 1;
5154
+ container.scrollLeft = 0;
5155
+ }
5231
5156
  };
5232
- scrollEl.addEventListener("scroll", handleScroll, { passive: true });
5233
- return () => scrollEl.removeEventListener("scroll", handleScroll);
5234
- }, [updateMobileIndicator, updateTabScrollThumb]);
5235
- o__namespace.useEffect(() => {
5236
- if (isMobile) {
5237
- updateTabScrollThumb();
5238
- }
5239
- }, [isMobile, updateTabScrollThumb, tabs.length]);
5240
- o__namespace.useEffect(() => {
5241
- if (typeof window === "undefined") return;
5242
- const media = window.matchMedia("(max-width: 768px)");
5243
- const setMatch = () => setIsMobile(media.matches);
5244
- setMatch();
5245
- media.addEventListener("change", setMatch);
5246
- return () => media.removeEventListener("change", setMatch);
5247
- }, []);
5157
+ setTimeout(forceScrollbar, 100);
5158
+ window.addEventListener("resize", forceScrollbar);
5159
+ return () => window.removeEventListener("resize", forceScrollbar);
5160
+ }, [tabs]);
5248
5161
  return /* @__PURE__ */ jsxRuntime.jsxs(
5249
5162
  "div",
5250
5163
  {
5251
5164
  ref,
5252
- className: cn("w-full font-normal flex flex-col gap-3 md:flex-row md:items-center md:justify-between", className),
5165
+ className: cn(
5166
+ "w-full font-normal",
5167
+ "flex flex-col-reverse gap-3",
5168
+ "md:flex-row md:items-center md:justify-between",
5169
+ className
5170
+ ),
5253
5171
  ...props,
5254
5172
  children: [
5255
- /* @__PURE__ */ jsxRuntime.jsxs(
5173
+ /* @__PURE__ */ jsxRuntime.jsx(
5256
5174
  "div",
5257
5175
  {
5258
- ref: tabsWrapperRef,
5176
+ ref: tabsContainerRef,
5259
5177
  className: cn(
5260
- "relative flex w-full min-w-0 flex-col",
5261
- "max-[768px]:gap-0",
5262
- "max-[768px]:order-0",
5263
- "md:flex-row md:items-center md:justify-between"
5178
+ "flex items-center border-b border-white/10",
5179
+ "overflow-x-auto md:overflow-visible",
5180
+ "[-webkit-overflow-scrolling:touch]",
5181
+ "[scroll-behavior:smooth]",
5182
+ "[touch-action:pan-x]",
5183
+ "md:border-b-0"
5264
5184
  ),
5265
- style: isMobile ? { gap: 0 } : void 0,
5266
- children: [
5267
- /* @__PURE__ */ jsxRuntime.jsx(
5268
- "div",
5185
+ style: { WebkitTapHighlightColor: "transparent" },
5186
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-max", children: tabs.map((tab) => {
5187
+ const active = tab.id === activeTabId;
5188
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5189
+ "button",
5269
5190
  {
5270
- ref: scrollContainerRef,
5191
+ type: "button",
5192
+ onClick: () => onTabChange?.(tab.id),
5271
5193
  className: cn(
5272
- "flex w-full min-w-0 items-center",
5273
- "overflow-x-auto md:overflow-visible",
5274
- "[-webkit-overflow-scrolling:touch]",
5275
- "[scrollbar-width:none]",
5276
- "[scroll-behavior:smooth]",
5277
- "[touch-action:pan-x]",
5278
- "md:border-b md:border-white/10"
5194
+ "relative whitespace-nowrap",
5195
+ "px-6 py-4",
5196
+ "font-normal",
5197
+ "transition-colors",
5198
+ "max-[768px]:px-[1.2rem] max-[768px]:py-[0.8rem]",
5199
+ "max-[480px]:px-4 max-[480px]:py-[0.7rem] max-[480px]:text-[0.9rem]",
5200
+ active ? "font-semibold text-[var(--color-accent,#e6c87e)]" : "text-white/60 hover:text-white"
5279
5201
  ),
5280
- style: { WebkitTapHighlightColor: "transparent" },
5281
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-max gap-2 lg:gap-4", children: tabs.map((tab, index) => {
5282
- const active = tab.id === activeTabId;
5283
- return /* @__PURE__ */ jsxRuntime.jsxs(
5284
- "button",
5285
- {
5286
- ref: (node2) => {
5287
- tabRefs.current[index] = node2;
5288
- },
5289
- type: "button",
5290
- onClick: () => onTabChange?.(tab.id),
5291
- className: cn(
5292
- "relative whitespace-nowrap",
5293
- "px-5 py-4 lg:px-6",
5294
- "text-[16px]",
5295
- "font-medium",
5296
- "transition-colors",
5297
- "max-[768px]:rounded-full max-[768px]:px-5 max-[768px]:py-3",
5298
- "max-[768px]:text-[15px]",
5299
- "max-[480px]:px-4 max-[480px]:py-[0.75rem] max-[480px]:text-sm",
5300
- active ? "font-semibold text-[var(--color-accent,#e6c87e)] hover:text-[var(--color-accent,#f1d27a)]" : "text-white/65 hover:text-white"
5301
- ),
5302
- style: {
5303
- borderBottom: active ? "2px solid var(--color-accent, #e6c87e)" : "2px solid transparent",
5304
- minWidth: "80px",
5305
- touchAction: "manipulation"
5306
- },
5307
- children: [
5308
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
5309
- tab.id === "trade" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden h-4 w-4 items-center justify-center rounded-full bg-white/10 text-[11px] text-[var(--color-accent,#e6c87e)] max-[768px]:inline-flex", children: "\u21C5" }) : null,
5310
- tab.label
5311
- ] }),
5312
- tab.hasNotification ? /* @__PURE__ */ jsxRuntime.jsx(
5313
- "span",
5314
- {
5315
- className: "absolute right-[10px] top-[10px] h-2 w-2 rounded-full animate-pulse",
5316
- style: {
5317
- backgroundColor: tab.notificationColor ?? "#f6465d",
5318
- boxShadow: "0 0 0 0 rgba(246, 70, 93, 0.7)"
5319
- }
5320
- }
5321
- ) : null
5322
- ]
5323
- },
5324
- tab.id
5325
- );
5326
- }) })
5327
- }
5328
- ),
5329
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none relative hidden h-[3px] w-full min-w-0 overflow-hidden rounded-full bg-white/10 max-[768px]:block", style: { marginBottom: "1px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
5330
- "span",
5331
- {
5332
- ref: indicatorRef,
5333
- className: "absolute left-0 top-0 block h-full rounded-full bg-[var(--color-accent,#e6c87e)] transition-all duration-300 ease-out"
5334
- }
5335
- ) }),
5336
- /* @__PURE__ */ jsxRuntime.jsx(
5337
- "div",
5338
- {
5339
5202
  style: {
5340
- display: isMobile ? "block" : "none",
5341
- height: "8px",
5342
- width: "100%",
5343
- borderRadius: "999px",
5344
- background: "rgba(18,19,22,0.85)",
5345
- marginTop: "0",
5346
- position: "relative"
5203
+ borderBottom: active ? "2px solid var(--color-accent, #e6c87e)" : "2px solid transparent",
5204
+ minWidth: "80px",
5205
+ touchAction: "manipulation"
5347
5206
  },
5348
- children: /* @__PURE__ */ jsxRuntime.jsx(
5349
- "div",
5350
- {
5351
- style: {
5352
- position: "absolute",
5353
- top: 0,
5354
- left: `${tabScrollThumb.leftPercent}%`,
5355
- height: "100%",
5356
- borderRadius: "999px",
5357
- background: "rgba(92,94,102,0.85)",
5358
- width: `${tabScrollThumb.widthPercent}%`,
5359
- transition: "left 0.2s ease-out, width 0.2s ease-out, opacity 0.2s ease-out",
5360
- opacity: tabScrollThumb.scrollable ? 1 : 0.25
5207
+ children: [
5208
+ tab.label,
5209
+ tab.hasNotification ? /* @__PURE__ */ jsxRuntime.jsx(
5210
+ "span",
5211
+ {
5212
+ className: "absolute right-[10px] top-[10px] h-2 w-2 rounded-full animate-pulse",
5213
+ style: {
5214
+ backgroundColor: tab.notificationColor ?? "#f6465d",
5215
+ boxShadow: "0 0 0 0 rgba(246, 70, 93, 0.7)"
5216
+ }
5361
5217
  }
5362
- }
5363
- )
5364
- }
5365
- )
5366
- ]
5218
+ ) : null
5219
+ ]
5220
+ },
5221
+ tab.id
5222
+ );
5223
+ }) })
5367
5224
  }
5368
5225
  ),
5369
5226
  actions != null && actions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
5370
5227
  "div",
5371
5228
  {
5372
5229
  className: cn(
5373
- "flex items-center gap-[4px] md:gap-[10px]",
5374
- "justify-center md:justify-end",
5230
+ "flex items-center gap-[10px]",
5375
5231
  "overflow-x-auto md:overflow-visible",
5376
5232
  "[scrollbar-width:none]",
5377
- "max-[768px]:w-full max-[768px]:pb-2 max-[768px]:mb-2"
5233
+ "md:justify-end",
5234
+ "max-[768px]:w-full max-[768px]:justify-center max-[768px]:pb-2 max-[768px]:mb-4"
5378
5235
  ),
5379
- style: actionContainerStyle,
5380
5236
  children: actions.map((action) => /* @__PURE__ */ jsxRuntime.jsxs(
5381
5237
  "button",
5382
5238
  {
@@ -5384,14 +5240,14 @@ var PropertySubheader = o__namespace.forwardRef(
5384
5240
  onClick: action.onClick,
5385
5241
  className: cn(
5386
5242
  "flex shrink-0 items-center gap-[5px] whitespace-nowrap",
5387
- "rounded-[6px]",
5388
- "border border-white/15",
5243
+ "rounded",
5244
+ "border border-white/10",
5389
5245
  "bg-transparent",
5390
- "px-3.5 py-1.5 text-[14px] font-medium",
5246
+ "px-3 py-1.5 text-[14px] font-normal",
5391
5247
  "transition-all",
5248
+ "max-[768px]:px-2.5 max-[768px]:py-[5px] max-[768px]:text-[13px]",
5392
5249
  "hover:bg-white/5 hover:border-[var(--color-accent,#e6c87e)] hover:text-[var(--color-accent,#e6c87e)]"
5393
5250
  ),
5394
- style: actionButtonStyle,
5395
5251
  children: [
5396
5252
  action.icon,
5397
5253
  action.label