@kodiak-finance/orderly-trading 2.9.4 → 2.9.5

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
@@ -13,6 +13,19 @@ import * as _kodiak_finance_orderly_hooks from '@kodiak-finance/orderly-hooks';
13
13
  import { SliderMarks } from '@kodiak-finance/orderly-ui';
14
14
  import * as react_jsx_runtime from 'react/jsx-runtime';
15
15
 
16
+ /** Interceptor target for the desktop data-list tabs; plugins append custom tabs after the built-in ones. */
17
+ declare const DataListDesktopTabsTarget = "Trading.DataList.Desktop.Tabs";
18
+ interface DataListDesktopTabItem {
19
+ /** Unique tab id (also its `value` in the Tabs context). */
20
+ id: string;
21
+ title: React__default.ReactNode;
22
+ content: React__default.ReactNode;
23
+ }
24
+ interface DataListDesktopTabsProps {
25
+ items: DataListDesktopTabItem[];
26
+ }
27
+ declare const InjectableDataListDesktopTabs: React__default.ComponentType<DataListDesktopTabsProps>;
28
+
16
29
  type layoutInfo = {
17
30
  width?: number;
18
31
  height?: number;
@@ -183,6 +196,16 @@ declare const useAccountScript: () => {
183
196
  };
184
197
  type AccountState = ReturnType<typeof useAccountScript>;
185
198
 
199
+ interface DataListMobileTabItem {
200
+ /** Unique tab id (also its `value` in the Tabs context). */
201
+ id: string;
202
+ title: React__default.ReactNode;
203
+ content: React__default.ReactNode;
204
+ }
205
+ interface DataListMobileTabsProps {
206
+ items: DataListMobileTabItem[];
207
+ }
208
+
186
209
  type LayoutPosition = "left" | "right";
187
210
 
188
211
  type TradingState = ReturnType<typeof useTradingScript>;
@@ -253,6 +276,8 @@ type DesktopLayoutProps = TradingState & {
253
276
  className?: string;
254
277
  };
255
278
 
279
+ type MobileLayoutProps = TradingState;
280
+
256
281
  /**
257
282
  * Module augmentation: maps interceptor target paths to their component props types.
258
283
  * Import from @orderly.network/trading to enable typed props in
@@ -264,7 +289,10 @@ declare module "@kodiak-finance/orderly-plugin-core" {
264
289
  "Account.MobileAccountMenu": AccountState;
265
290
  "OrderBook.Desktop.Asks": Props$1;
266
291
  "OrderBook.Desktop.Bids": Props;
292
+ "Trading.DataList.Desktop.Tabs": DataListDesktopTabsProps;
293
+ "Trading.DataList.Mobile.Tabs": DataListMobileTabsProps;
267
294
  "Trading.Layout.Desktop": DesktopLayoutProps;
295
+ "Trading.Layout.Mobile": MobileLayoutProps;
268
296
  "Trading.SymbolInfoBar.Desktop": SymbolInfoBarFullProps;
269
297
  }
270
298
  }
@@ -635,4 +663,4 @@ declare const usePendingOrderCount: (symbol?: string) => {
635
663
  tpSlOrderCount: number;
636
664
  };
637
665
 
638
- export { type AccountState, AssetView, AssetViewWidget, BottomNavBar, BottomNavBarWidget, type BuySellRatio, BuySellRatioBar, DataList, DataListWidget, type DesktopLayoutProps, FundingRate, FundingRateDialogId, FundingRateModal, type FundingRateModalState, FundingRateModalWidget, FundingRateSheetId, FundingRateWidget, LastTrades, LastTradesWidget, OrderBook, OrderBookAndTrades, OrderBookAndTradesWidget, type Props$1 as OrderBookDesktopAsksProps, type Props as OrderBookDesktopBidsProps, OrderBookProvider, OrderBookWidget, PortfolioSheet, PortfolioSheetWidget, type ReferralProps, RiskRate, RiskRateWidget, type ShareOptions, SplitLayout, Trading, TradingPage, TradingPageContext, type TradingPageProps, TradingPageProvider, type TradingRewardsProps, TradingWidget, useBottomNavBarScript, useFundingRateModalScript, useFundingRateScript, useOrderBookAndTradesScript, useOrderBookContext, useOrderBookScript, usePendingOrderCount, usePortfolioSheetScript, usePositionsCount, useTradingLocalStorage, useTradingPageContext, useTradingScript };
666
+ export { type AccountState, AssetView, AssetViewWidget, BottomNavBar, BottomNavBarWidget, type BuySellRatio, BuySellRatioBar, DataList, type DataListDesktopTabItem, type DataListDesktopTabsProps, DataListDesktopTabsTarget, DataListWidget, type DesktopLayoutProps, FundingRate, FundingRateDialogId, FundingRateModal, type FundingRateModalState, FundingRateModalWidget, FundingRateSheetId, FundingRateWidget, InjectableDataListDesktopTabs, LastTrades, LastTradesWidget, OrderBook, OrderBookAndTrades, OrderBookAndTradesWidget, type Props$1 as OrderBookDesktopAsksProps, type Props as OrderBookDesktopBidsProps, OrderBookProvider, OrderBookWidget, PortfolioSheet, PortfolioSheetWidget, type ReferralProps, RiskRate, RiskRateWidget, type ShareOptions, SplitLayout, Trading, TradingPage, TradingPageContext, type TradingPageProps, TradingPageProvider, type TradingRewardsProps, TradingWidget, useBottomNavBarScript, useFundingRateModalScript, useFundingRateScript, useOrderBookAndTradesScript, useOrderBookContext, useOrderBookScript, usePendingOrderCount, usePortfolioSheetScript, usePositionsCount, useTradingLocalStorage, useTradingPageContext, useTradingScript };
package/dist/index.d.ts CHANGED
@@ -13,6 +13,19 @@ import * as _kodiak_finance_orderly_hooks from '@kodiak-finance/orderly-hooks';
13
13
  import { SliderMarks } from '@kodiak-finance/orderly-ui';
14
14
  import * as react_jsx_runtime from 'react/jsx-runtime';
15
15
 
16
+ /** Interceptor target for the desktop data-list tabs; plugins append custom tabs after the built-in ones. */
17
+ declare const DataListDesktopTabsTarget = "Trading.DataList.Desktop.Tabs";
18
+ interface DataListDesktopTabItem {
19
+ /** Unique tab id (also its `value` in the Tabs context). */
20
+ id: string;
21
+ title: React__default.ReactNode;
22
+ content: React__default.ReactNode;
23
+ }
24
+ interface DataListDesktopTabsProps {
25
+ items: DataListDesktopTabItem[];
26
+ }
27
+ declare const InjectableDataListDesktopTabs: React__default.ComponentType<DataListDesktopTabsProps>;
28
+
16
29
  type layoutInfo = {
17
30
  width?: number;
18
31
  height?: number;
@@ -183,6 +196,16 @@ declare const useAccountScript: () => {
183
196
  };
184
197
  type AccountState = ReturnType<typeof useAccountScript>;
185
198
 
199
+ interface DataListMobileTabItem {
200
+ /** Unique tab id (also its `value` in the Tabs context). */
201
+ id: string;
202
+ title: React__default.ReactNode;
203
+ content: React__default.ReactNode;
204
+ }
205
+ interface DataListMobileTabsProps {
206
+ items: DataListMobileTabItem[];
207
+ }
208
+
186
209
  type LayoutPosition = "left" | "right";
187
210
 
188
211
  type TradingState = ReturnType<typeof useTradingScript>;
@@ -253,6 +276,8 @@ type DesktopLayoutProps = TradingState & {
253
276
  className?: string;
254
277
  };
255
278
 
279
+ type MobileLayoutProps = TradingState;
280
+
256
281
  /**
257
282
  * Module augmentation: maps interceptor target paths to their component props types.
258
283
  * Import from @orderly.network/trading to enable typed props in
@@ -264,7 +289,10 @@ declare module "@kodiak-finance/orderly-plugin-core" {
264
289
  "Account.MobileAccountMenu": AccountState;
265
290
  "OrderBook.Desktop.Asks": Props$1;
266
291
  "OrderBook.Desktop.Bids": Props;
292
+ "Trading.DataList.Desktop.Tabs": DataListDesktopTabsProps;
293
+ "Trading.DataList.Mobile.Tabs": DataListMobileTabsProps;
267
294
  "Trading.Layout.Desktop": DesktopLayoutProps;
295
+ "Trading.Layout.Mobile": MobileLayoutProps;
268
296
  "Trading.SymbolInfoBar.Desktop": SymbolInfoBarFullProps;
269
297
  }
270
298
  }
@@ -635,4 +663,4 @@ declare const usePendingOrderCount: (symbol?: string) => {
635
663
  tpSlOrderCount: number;
636
664
  };
637
665
 
638
- export { type AccountState, AssetView, AssetViewWidget, BottomNavBar, BottomNavBarWidget, type BuySellRatio, BuySellRatioBar, DataList, DataListWidget, type DesktopLayoutProps, FundingRate, FundingRateDialogId, FundingRateModal, type FundingRateModalState, FundingRateModalWidget, FundingRateSheetId, FundingRateWidget, LastTrades, LastTradesWidget, OrderBook, OrderBookAndTrades, OrderBookAndTradesWidget, type Props$1 as OrderBookDesktopAsksProps, type Props as OrderBookDesktopBidsProps, OrderBookProvider, OrderBookWidget, PortfolioSheet, PortfolioSheetWidget, type ReferralProps, RiskRate, RiskRateWidget, type ShareOptions, SplitLayout, Trading, TradingPage, TradingPageContext, type TradingPageProps, TradingPageProvider, type TradingRewardsProps, TradingWidget, useBottomNavBarScript, useFundingRateModalScript, useFundingRateScript, useOrderBookAndTradesScript, useOrderBookContext, useOrderBookScript, usePendingOrderCount, usePortfolioSheetScript, usePositionsCount, useTradingLocalStorage, useTradingPageContext, useTradingScript };
666
+ export { type AccountState, AssetView, AssetViewWidget, BottomNavBar, BottomNavBarWidget, type BuySellRatio, BuySellRatioBar, DataList, type DataListDesktopTabItem, type DataListDesktopTabsProps, DataListDesktopTabsTarget, DataListWidget, type DesktopLayoutProps, FundingRate, FundingRateDialogId, FundingRateModal, type FundingRateModalState, FundingRateModalWidget, FundingRateSheetId, FundingRateWidget, InjectableDataListDesktopTabs, LastTrades, LastTradesWidget, OrderBook, OrderBookAndTrades, OrderBookAndTradesWidget, type Props$1 as OrderBookDesktopAsksProps, type Props as OrderBookDesktopBidsProps, OrderBookProvider, OrderBookWidget, PortfolioSheet, PortfolioSheetWidget, type ReferralProps, RiskRate, RiskRateWidget, type ShareOptions, SplitLayout, Trading, TradingPage, TradingPageContext, type TradingPageProps, TradingPageProvider, type TradingRewardsProps, TradingWidget, useBottomNavBarScript, useFundingRateModalScript, useFundingRateScript, useOrderBookAndTradesScript, useOrderBookContext, useOrderBookScript, usePendingOrderCount, usePortfolioSheetScript, usePositionsCount, useTradingLocalStorage, useTradingPageContext, useTradingScript };
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var orderlyUtils = require('@kodiak-finance/orderly-utils');
4
+ var orderlyUi = require('@kodiak-finance/orderly-ui');
5
+ var jsxRuntime = require('react/jsx-runtime');
4
6
  var orderlyHooks = require('@kodiak-finance/orderly-hooks');
5
7
  var React12 = require('react');
6
8
  var orderlyReactApp = require('@kodiak-finance/orderly-react-app');
7
9
  var orderlyTypes = require('@kodiak-finance/orderly-types');
8
10
  var orderlyI18n = require('@kodiak-finance/orderly-i18n');
9
- var orderlyUi = require('@kodiak-finance/orderly-ui');
10
- var jsxRuntime = require('react/jsx-runtime');
11
11
  var orderlyUiPositions = require('@kodiak-finance/orderly-ui-positions');
12
12
  var orderlyUiOrders = require('@kodiak-finance/orderly-ui-orders');
13
13
  var orderlyUiConnector = require('@kodiak-finance/orderly-ui-connector');
@@ -42,6 +42,17 @@ var init_csvExportService = __esm({
42
42
  "src/utils/csvExportService.ts"() {
43
43
  }
44
44
  });
45
+ exports.DataListDesktopTabsTarget = void 0; var DataListDesktopTabs; exports.InjectableDataListDesktopTabs = void 0;
46
+ var init_dataList_injectable = __esm({
47
+ "src/components/desktop/dataList/dataList.injectable.tsx"() {
48
+ exports.DataListDesktopTabsTarget = "Trading.DataList.Desktop.Tabs";
49
+ DataListDesktopTabs = ({ items }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: items.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.TabPanel, { value: tab.id, title: tab.title, children: tab.content }, tab.id)) });
50
+ exports.InjectableDataListDesktopTabs = orderlyUi.injectable(
51
+ DataListDesktopTabs,
52
+ exports.DataListDesktopTabsTarget
53
+ );
54
+ }
55
+ });
45
56
  exports.useTradingLocalStorage = void 0;
46
57
  var init_useTradingLocalStorage = __esm({
47
58
  "src/hooks/useTradingLocalStorage.ts"() {
@@ -707,6 +718,7 @@ var LazySettingWidget, LazyPositionHeaderWidget, PositionsView, LiquidationTab;
707
718
  var init_dataList_ui = __esm({
708
719
  "src/components/desktop/dataList/dataList.ui.tsx"() {
709
720
  init_csvExportService();
721
+ init_dataList_injectable();
710
722
  init_dataList_script();
711
723
  LazySettingWidget = React12__default.default.lazy(
712
724
  () => Promise.resolve().then(() => (init_setting(), setting_exports)).then((mod) => {
@@ -1018,7 +1030,7 @@ var init_dataList_ui = __esm({
1018
1030
  // ),
1019
1031
  // },
1020
1032
  ];
1021
- return /* @__PURE__ */ jsxRuntime.jsx(
1033
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1022
1034
  orderlyUi.Tabs,
1023
1035
  {
1024
1036
  defaultValue: current || "Positions" /* positions */,
@@ -1054,10 +1066,13 @@ var init_dataList_ui = __esm({
1054
1066
  trigger: "oui-group",
1055
1067
  tabsContent: "oui-h-[calc(100%_-_32px)]"
1056
1068
  },
1057
- children: tabPanelItems.map((item) => {
1058
- const { content, ...rest } = item;
1059
- return /* @__PURE__ */ React12.createElement(orderlyUi.TabPanel, { ...rest, key: `item-${rest.value}` }, content);
1060
- })
1069
+ children: [
1070
+ tabPanelItems.map((item) => {
1071
+ const { content, ...rest } = item;
1072
+ return /* @__PURE__ */ React12.createElement(orderlyUi.TabPanel, { ...rest, key: `item-${rest.value}` }, content);
1073
+ }),
1074
+ /* @__PURE__ */ jsxRuntime.jsx(exports.InjectableDataListDesktopTabs, { items: [] })
1075
+ ]
1061
1076
  }
1062
1077
  );
1063
1078
  };
@@ -1079,12 +1094,15 @@ var init_dataList_widget = __esm({
1079
1094
  var dataList_exports = {};
1080
1095
  __export(dataList_exports, {
1081
1096
  DataList: () => exports.DataList,
1082
- DataListWidget: () => exports.DataListWidget
1097
+ DataListDesktopTabsTarget: () => exports.DataListDesktopTabsTarget,
1098
+ DataListWidget: () => exports.DataListWidget,
1099
+ InjectableDataListDesktopTabs: () => exports.InjectableDataListDesktopTabs
1083
1100
  });
1084
1101
  var init_dataList = __esm({
1085
1102
  "src/components/desktop/dataList/index.ts"() {
1086
1103
  init_dataList_ui();
1087
1104
  init_dataList_widget();
1105
+ init_dataList_injectable();
1088
1106
  }
1089
1107
  });
1090
1108
  exports.LastTrades = void 0; var Row, Header, List;
@@ -6024,6 +6042,17 @@ var init_orderBookAndEntry = __esm({
6024
6042
  init_orderBookAndEntry_script();
6025
6043
  }
6026
6044
  });
6045
+ var DataListMobileTabsTarget, DataListMobileTabs, InjectableDataListMobileTabs;
6046
+ var init_dataList_injectable2 = __esm({
6047
+ "src/components/mobile/dataList/dataList.injectable.tsx"() {
6048
+ DataListMobileTabsTarget = "Trading.DataList.Mobile.Tabs";
6049
+ DataListMobileTabs = ({ items }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: items.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.TabPanel, { value: tab.id, title: tab.title, children: tab.content }, tab.id)) });
6050
+ InjectableDataListMobileTabs = orderlyUi.injectable(
6051
+ DataListMobileTabs,
6052
+ DataListMobileTabsTarget
6053
+ );
6054
+ }
6055
+ });
6027
6056
  var useDataListScript2, getDialogInfo;
6028
6057
  var init_dataList_script2 = __esm({
6029
6058
  "src/components/mobile/dataList/dataList.script.tsx"() {
@@ -6135,6 +6164,7 @@ var init_dataList_script2 = __esm({
6135
6164
  var LazyPositionHeaderWidget2, SymbolControlHeader, OrdersView, PositionsView2, HistoryTab, DataList2;
6136
6165
  var init_dataList_ui2 = __esm({
6137
6166
  "src/components/mobile/dataList/dataList.ui.tsx"() {
6167
+ init_dataList_injectable2();
6138
6168
  init_dataList_script2();
6139
6169
  LazyPositionHeaderWidget2 = React12__default.default.lazy(
6140
6170
  () => Promise.resolve().then(() => (init_positionHeader(), positionHeader_exports)).then((mod) => {
@@ -6377,7 +6407,7 @@ var init_dataList_ui2 = __esm({
6377
6407
  content: /* @__PURE__ */ jsxRuntime.jsx(orderlyPortfolio.AssetsModule.AssetsWidget, {})
6378
6408
  }
6379
6409
  ];
6380
- return /* @__PURE__ */ jsxRuntime.jsx(
6410
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6381
6411
  orderlyUi.Tabs,
6382
6412
  {
6383
6413
  value: tab,
@@ -6388,10 +6418,13 @@ var init_dataList_ui2 = __esm({
6388
6418
  classNames: {
6389
6419
  tabsList: "oui-bg-base-9 oui-rounded-t-xl oui-p-2 oui-overflow-x-scroll oui-hide-scrollbar"
6390
6420
  },
6391
- children: tabPanelItems.map((item) => {
6392
- const { content, ...rest } = item;
6393
- return /* @__PURE__ */ React12.createElement(orderlyUi.TabPanel, { ...rest, key: `item-${rest.value}` }, content);
6394
- })
6421
+ children: [
6422
+ tabPanelItems.map((item) => {
6423
+ const { content, ...rest } = item;
6424
+ return /* @__PURE__ */ React12.createElement(orderlyUi.TabPanel, { ...rest, key: `item-${rest.value}` }, content);
6425
+ }),
6426
+ /* @__PURE__ */ jsxRuntime.jsx(InjectableDataListMobileTabs, { items: [] })
6427
+ ]
6395
6428
  }
6396
6429
  );
6397
6430
  };
@@ -6413,7 +6446,9 @@ var init_dataList_widget2 = __esm({
6413
6446
  var dataList_exports2 = {};
6414
6447
  __export(dataList_exports2, {
6415
6448
  DataList: () => DataList2,
6449
+ DataListMobileTabsTarget: () => DataListMobileTabsTarget,
6416
6450
  DataListWidget: () => DataListWidget2,
6451
+ InjectableDataListMobileTabs: () => InjectableDataListMobileTabs,
6417
6452
  useDataListScript: () => useDataListScript2
6418
6453
  });
6419
6454
  var init_dataList2 = __esm({
@@ -6421,6 +6456,7 @@ var init_dataList2 = __esm({
6421
6456
  init_dataList_ui2();
6422
6457
  init_dataList_widget2();
6423
6458
  init_dataList_script2();
6459
+ init_dataList_injectable2();
6424
6460
  }
6425
6461
  });
6426
6462
 
@@ -9306,12 +9342,6 @@ var DesktopLayout4 = (props) => {
9306
9342
  }
9307
9343
  );
9308
9344
  };
9309
-
9310
- // src/pages/trading/trading.injectable.tsx
9311
- var InjectableDesktopLayout = orderlyUi.injectable(
9312
- DesktopLayout4,
9313
- "Trading.Layout.Desktop"
9314
- );
9315
9345
  var Countdown = ({
9316
9346
  timeInterval
9317
9347
  }) => {
@@ -9418,12 +9448,12 @@ var MaybeEqual = () => {
9418
9448
  var MobileLayout4 = (props) => {
9419
9449
  const { t } = orderlyI18n.useTranslation();
9420
9450
  const { isRwa, open, closeTimeInterval } = orderlyHooks.useGetRwaSymbolInfo(props.symbol);
9421
- const { brokerId, brokerName, brokerNameRaw, displayName } = orderlyHooks.useBadgeBySymbol(
9422
- props.symbol
9423
- );
9451
+ const symbolsInfo = orderlyHooks.useSymbolsInfo();
9452
+ Boolean(symbolsInfo[props.symbol]?.("is_pretge"));
9453
+ const { brokerId, brokerName, brokerNameRaw, displaySymbolName } = orderlyHooks.useBadgeBySymbol(props.symbol);
9424
9454
  const isCommunityListed = Boolean(brokerId ?? brokerName);
9425
9455
  const baseFromSymbol = props.symbol?.split("_")[1] ?? props.symbol ?? "";
9426
- const symbolWithBroker = brokerName != null ? `${baseFromSymbol}-${brokerNameRaw}` : displayName ?? props.symbol ?? "";
9456
+ const symbolWithBroker = brokerName != null ? `${baseFromSymbol}-${brokerNameRaw}` : displaySymbolName ?? props.symbol ?? "";
9427
9457
  React12.useEffect(() => {
9428
9458
  if (isRwa && !open) {
9429
9459
  showRwaOutsideMarketHoursNotify();
@@ -9568,11 +9598,21 @@ var MobileLayout4 = (props) => {
9568
9598
  ) })
9569
9599
  ] }) });
9570
9600
  };
9601
+
9602
+ // src/pages/trading/trading.injectable.tsx
9603
+ var InjectableDesktopLayout = orderlyUi.injectable(
9604
+ DesktopLayout4,
9605
+ "Trading.Layout.Desktop"
9606
+ );
9607
+ var InjectableMobileLayout = orderlyUi.injectable(
9608
+ MobileLayout4,
9609
+ "Trading.Layout.Mobile"
9610
+ );
9571
9611
  var Trading = (props) => {
9572
9612
  const { isMobile } = orderlyUi.useScreen();
9573
9613
  const { t } = orderlyI18n.useTranslation();
9574
9614
  if (isMobile) {
9575
- return /* @__PURE__ */ jsxRuntime.jsx(MobileLayout4, { ...props });
9615
+ return /* @__PURE__ */ jsxRuntime.jsx(InjectableMobileLayout, { ...props });
9576
9616
  }
9577
9617
  return /* @__PURE__ */ jsxRuntime.jsx(
9578
9618
  InjectableDesktopLayout,