@heymantle/litho 0.0.10 → 0.0.12
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/cjs/components/Banner.js +6 -1
- package/dist/cjs/components/Button.js +33 -4
- package/dist/cjs/components/ButtonGroup.js +19 -4
- package/dist/cjs/components/Card.js +39 -3
- package/dist/cjs/components/ChoiceList.js +3 -2
- package/dist/cjs/components/Code.js +227 -0
- package/dist/cjs/components/Filters.js +1 -1
- package/dist/cjs/components/Frame.js +2 -2
- package/dist/cjs/components/Layout.js +16 -4
- package/dist/cjs/components/Link.js +35 -4
- package/dist/cjs/components/Modal.js +4 -0
- package/dist/cjs/components/Page.js +5 -2
- package/dist/cjs/components/Pane.js +669 -84
- package/dist/cjs/components/ResourceList.js +2 -2
- package/dist/cjs/components/TabNavigation.js +300 -0
- package/dist/cjs/components/TextField.js +3 -0
- package/dist/cjs/components/Tip.js +3 -0
- package/dist/cjs/components/Tooltip.js +12 -13
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/stories/Pane.stories.js +352 -3
- package/dist/cjs/utilities/useBodyScrollLock.js +63 -0
- package/dist/cjs/utilities/useKeyboardAction.js +19 -0
- package/dist/cjs/utilities/useLocalStorage.js +126 -0
- package/dist/cjs/utilities/useMobile.js +92 -0
- package/dist/cjs/utilities/usePaneState.js +340 -0
- package/dist/cjs/utilities/useTabStorage.js +325 -0
- package/dist/esm/components/Banner.js +7 -2
- package/dist/esm/components/Button.js +33 -4
- package/dist/esm/components/ButtonGroup.js +19 -4
- package/dist/esm/components/Card.js +39 -3
- package/dist/esm/components/ChoiceList.js +3 -2
- package/dist/esm/components/Code.js +212 -0
- package/dist/esm/components/Filters.js +2 -2
- package/dist/esm/components/Frame.js +2 -2
- package/dist/esm/components/Layout.js +16 -4
- package/dist/esm/components/Link.js +31 -5
- package/dist/esm/components/Modal.js +4 -0
- package/dist/esm/components/Page.js +5 -2
- package/dist/esm/components/Pane.js +619 -83
- package/dist/esm/components/ResourceList.js +2 -2
- package/dist/esm/components/TabNavigation.js +285 -0
- package/dist/esm/components/TextField.js +4 -1
- package/dist/esm/components/Tip.js +4 -1
- package/dist/esm/components/Tooltip.js +12 -13
- package/dist/esm/index.js +1 -0
- package/dist/esm/stories/Pane.stories.js +346 -3
- package/dist/esm/utilities/useBodyScrollLock.js +53 -0
- package/dist/esm/utilities/useKeyboardAction.js +25 -0
- package/dist/esm/utilities/useLocalStorage.js +115 -0
- package/dist/esm/utilities/useMobile.js +79 -0
- package/dist/esm/utilities/usePaneState.js +334 -0
- package/dist/esm/utilities/useTabStorage.js +311 -0
- package/dist/types/components/Banner.d.ts.map +1 -1
- package/dist/types/components/Button.d.ts +2 -2
- package/dist/types/components/Button.d.ts.map +1 -1
- package/dist/types/components/ButtonGroup.d.ts.map +1 -1
- package/dist/types/components/Card.d.ts +34 -1
- package/dist/types/components/Card.d.ts.map +1 -1
- package/dist/types/components/Code.d.ts +28 -0
- package/dist/types/components/Code.d.ts.map +1 -0
- package/dist/types/components/Filters.d.ts.map +1 -1
- package/dist/types/components/Layout.d.ts +2 -0
- package/dist/types/components/Layout.d.ts.map +1 -1
- package/dist/types/components/Link.d.ts +4 -0
- package/dist/types/components/Link.d.ts.map +1 -1
- package/dist/types/components/Modal.d.ts +2 -0
- package/dist/types/components/Modal.d.ts.map +1 -1
- package/dist/types/components/Page.d.ts.map +1 -1
- package/dist/types/components/Pane.d.ts +2 -0
- package/dist/types/components/Pane.d.ts.map +1 -1
- package/dist/types/components/TabNavigation.d.ts +3 -0
- package/dist/types/components/TabNavigation.d.ts.map +1 -0
- package/dist/types/components/TextField.d.ts.map +1 -1
- package/dist/types/components/Tip.d.ts.map +1 -1
- package/dist/types/components/Tooltip.d.ts +2 -0
- package/dist/types/components/Tooltip.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utilities/useBodyScrollLock.d.ts +12 -0
- package/dist/types/utilities/useBodyScrollLock.d.ts.map +1 -0
- package/dist/types/utilities/useKeyboardAction.d.ts +2 -0
- package/dist/types/utilities/useKeyboardAction.d.ts.map +1 -0
- package/dist/types/utilities/useLocalStorage.d.ts +13 -0
- package/dist/types/utilities/useLocalStorage.d.ts.map +1 -0
- package/dist/types/utilities/useMobile.d.ts +9 -0
- package/dist/types/utilities/useMobile.d.ts.map +1 -0
- package/dist/types/utilities/usePaneState.d.ts +2 -0
- package/dist/types/utilities/usePaneState.d.ts.map +1 -0
- package/dist/types/utilities/useTabStorage.d.ts +8 -0
- package/dist/types/utilities/useTabStorage.d.ts.map +1 -0
- package/index.css +77 -6
- package/package.json +1 -1
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
function _export(target, all) {
|
|
7
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
get default () {
|
|
14
|
+
return _default;
|
|
15
|
+
},
|
|
16
|
+
get useTabStorage () {
|
|
17
|
+
return useTabStorage;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var _react = require("react");
|
|
21
|
+
var _usePaneState = require("./usePaneState");
|
|
22
|
+
function _array_like_to_array(arr, len) {
|
|
23
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
24
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
25
|
+
return arr2;
|
|
26
|
+
}
|
|
27
|
+
function _array_without_holes(arr) {
|
|
28
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
29
|
+
}
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
function _iterable_to_array(iter) {
|
|
44
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
45
|
+
}
|
|
46
|
+
function _non_iterable_spread() {
|
|
47
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
48
|
+
}
|
|
49
|
+
function _object_spread(target) {
|
|
50
|
+
for(var i = 1; i < arguments.length; i++){
|
|
51
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
52
|
+
var ownKeys = Object.keys(source);
|
|
53
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
54
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
55
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
ownKeys.forEach(function(key) {
|
|
59
|
+
_define_property(target, key, source[key]);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return target;
|
|
63
|
+
}
|
|
64
|
+
function _to_consumable_array(arr) {
|
|
65
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
66
|
+
}
|
|
67
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
68
|
+
if (!o) return;
|
|
69
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
70
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
71
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
72
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
73
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
74
|
+
}
|
|
75
|
+
function useTabStorage() {
|
|
76
|
+
var orgId = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
|
|
77
|
+
// Use a default orgId if none is provided to ensure functionality works
|
|
78
|
+
var currentOrgId = orgId || 'default';
|
|
79
|
+
var _usePaneState1 = (0, _usePaneState.usePaneState)(currentOrgId), paneState = _usePaneState1.state, setPaneTabs = _usePaneState1.setTabs, setPaneActiveTabId = _usePaneState1.setActiveTabId, setPaneCollapsed = _usePaneState1.setCollapsed;
|
|
80
|
+
// Use paneState directly - no need for local state or sync logic
|
|
81
|
+
var tabs = Array.isArray(paneState.tabs) ? paneState.tabs : [];
|
|
82
|
+
var activeTabId = paneState.activeTabId || null;
|
|
83
|
+
// Helper to dispatch change event (for backward compatibility)
|
|
84
|
+
var notifyTabChange = (0, _react.useCallback)(function() {
|
|
85
|
+
window.dispatchEvent(new CustomEvent('litho-pane-tabs-changed'));
|
|
86
|
+
}, []);
|
|
87
|
+
// Add a new tab
|
|
88
|
+
var addTab = (0, _react.useCallback)(function(tabData) {
|
|
89
|
+
if (!setPaneTabs || !setPaneActiveTabId) {
|
|
90
|
+
console.warn('Cannot add tab: orgId is required');
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
var resultTabId = null;
|
|
94
|
+
// Use functional updater to check for duplicates and add tab atomically
|
|
95
|
+
setPaneTabs(function(prevTabs) {
|
|
96
|
+
var currentTabs = prevTabs || [];
|
|
97
|
+
// If an explicit ID is provided, check if a tab with that ID already exists
|
|
98
|
+
if (tabData.id) {
|
|
99
|
+
var existingTabById = currentTabs.find(function(tab) {
|
|
100
|
+
return tab.id === tabData.id;
|
|
101
|
+
});
|
|
102
|
+
if (existingTabById) {
|
|
103
|
+
resultTabId = existingTabById.id;
|
|
104
|
+
return currentTabs; // Return unchanged - tab already exists
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Create new tab
|
|
108
|
+
var newTab = _object_spread({
|
|
109
|
+
id: tabData.id || "tab-".concat(Date.now(), "-").concat(Math.random().toString(36).substring(2, 11)),
|
|
110
|
+
title: tabData.title,
|
|
111
|
+
subtitle: tabData.subtitle,
|
|
112
|
+
content: tabData.content,
|
|
113
|
+
header: tabData.header,
|
|
114
|
+
footer: tabData.footer,
|
|
115
|
+
actions: tabData.actions || [],
|
|
116
|
+
createdAt: Date.now()
|
|
117
|
+
}, tabData);
|
|
118
|
+
resultTabId = newTab.id;
|
|
119
|
+
return _to_consumable_array(currentTabs).concat([
|
|
120
|
+
newTab
|
|
121
|
+
]);
|
|
122
|
+
});
|
|
123
|
+
// Set active tab ID if a new tab was created
|
|
124
|
+
if (resultTabId) {
|
|
125
|
+
setPaneActiveTabId(resultTabId);
|
|
126
|
+
notifyTabChange();
|
|
127
|
+
}
|
|
128
|
+
return resultTabId;
|
|
129
|
+
}, [
|
|
130
|
+
setPaneTabs,
|
|
131
|
+
setPaneActiveTabId,
|
|
132
|
+
notifyTabChange
|
|
133
|
+
]);
|
|
134
|
+
// Remove a tab
|
|
135
|
+
var removeTab = (0, _react.useCallback)(function(tabId) {
|
|
136
|
+
if (!setPaneTabs || !setPaneActiveTabId) {
|
|
137
|
+
console.warn('Cannot remove tab: orgId is required');
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
var removedTabIndex = tabs.findIndex(function(tab) {
|
|
141
|
+
return tab.id === tabId;
|
|
142
|
+
});
|
|
143
|
+
var tabsAfterRemoval = tabs.filter(function(tab) {
|
|
144
|
+
return tab.id !== tabId;
|
|
145
|
+
});
|
|
146
|
+
setPaneTabs(tabsAfterRemoval);
|
|
147
|
+
// Handle tab switching if the removed tab was the active tab
|
|
148
|
+
if (activeTabId === tabId && removedTabIndex >= 0) {
|
|
149
|
+
var newActiveIndex = removedTabIndex > 0 ? removedTabIndex - 1 : 0;
|
|
150
|
+
var newActiveTab = tabsAfterRemoval[newActiveIndex];
|
|
151
|
+
setPaneActiveTabId(newActiveTab ? newActiveTab.id : null);
|
|
152
|
+
}
|
|
153
|
+
notifyTabChange();
|
|
154
|
+
}, [
|
|
155
|
+
tabs,
|
|
156
|
+
activeTabId,
|
|
157
|
+
setPaneTabs,
|
|
158
|
+
setPaneActiveTabId,
|
|
159
|
+
notifyTabChange
|
|
160
|
+
]);
|
|
161
|
+
// Set active tab
|
|
162
|
+
var setActiveTab = (0, _react.useCallback)(function(tabId) {
|
|
163
|
+
if (!setPaneActiveTabId) {
|
|
164
|
+
console.warn('Cannot set active tab: orgId is required');
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
setPaneActiveTabId(tabId);
|
|
168
|
+
notifyTabChange();
|
|
169
|
+
}, [
|
|
170
|
+
setPaneActiveTabId,
|
|
171
|
+
notifyTabChange
|
|
172
|
+
]);
|
|
173
|
+
// Update a tab's properties
|
|
174
|
+
var updateTab = (0, _react.useCallback)(function(tabId, updates) {
|
|
175
|
+
if (!setPaneTabs) {
|
|
176
|
+
console.warn('Cannot update tab: orgId is required');
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
setPaneTabs(function(prevTabs) {
|
|
180
|
+
return prevTabs.map(function(tab) {
|
|
181
|
+
return tab.id === tabId ? _object_spread({}, tab, updates) : tab;
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
notifyTabChange();
|
|
185
|
+
}, [
|
|
186
|
+
setPaneTabs,
|
|
187
|
+
notifyTabChange
|
|
188
|
+
]);
|
|
189
|
+
// Clear all tabs (useful for scope switching if needed)
|
|
190
|
+
var clearAllTabs = (0, _react.useCallback)(function() {
|
|
191
|
+
if (!setPaneTabs || !setPaneActiveTabId) {
|
|
192
|
+
console.warn('Cannot clear tabs: orgId is required');
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
setPaneTabs([]);
|
|
196
|
+
setPaneActiveTabId(null);
|
|
197
|
+
notifyTabChange();
|
|
198
|
+
}, [
|
|
199
|
+
setPaneTabs,
|
|
200
|
+
setPaneActiveTabId,
|
|
201
|
+
notifyTabChange
|
|
202
|
+
]);
|
|
203
|
+
/**
|
|
204
|
+
* Attempts to expand the pane using multiple strategies to ensure it works
|
|
205
|
+
* regardless of timing issues with React state updates
|
|
206
|
+
* @param {Object} tabStorageInstance - The tabStorage instance (for accessing expandPaneRef)
|
|
207
|
+
*/ var attemptExpandPane = (0, _react.useCallback)(function(tabStorageInstance) {
|
|
208
|
+
if (!tabStorageInstance) return;
|
|
209
|
+
var expandPane = function() {
|
|
210
|
+
var _tabStorageInstance_expandPaneRef_current, _tabStorageInstance_expandPaneRef;
|
|
211
|
+
(_tabStorageInstance_expandPaneRef = tabStorageInstance.expandPaneRef) === null || _tabStorageInstance_expandPaneRef === void 0 ? void 0 : (_tabStorageInstance_expandPaneRef_current = _tabStorageInstance_expandPaneRef.current) === null || _tabStorageInstance_expandPaneRef_current === void 0 ? void 0 : _tabStorageInstance_expandPaneRef_current.call(_tabStorageInstance_expandPaneRef);
|
|
212
|
+
};
|
|
213
|
+
// Try immediate expansion first (in case ref is ready)
|
|
214
|
+
expandPane();
|
|
215
|
+
// Then try after next frame (ensures React has updated)
|
|
216
|
+
if (typeof window !== 'undefined' && window.requestAnimationFrame) {
|
|
217
|
+
requestAnimationFrame(function() {
|
|
218
|
+
expandPane();
|
|
219
|
+
// Also try after another frame as backup
|
|
220
|
+
requestAnimationFrame(expandPane);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
// Also try with setTimeout as additional fallback
|
|
224
|
+
setTimeout(expandPane, 0);
|
|
225
|
+
}, []);
|
|
226
|
+
/**
|
|
227
|
+
* Generic helper: find existing tab by predicate, or create new one
|
|
228
|
+
* @param {function} predicate - Function to find existing tab
|
|
229
|
+
* @param {Object} tabData - Data for new tab if not found
|
|
230
|
+
* @param {Object} tabStorageInstance - The tabStorage instance (for accessing expandPaneRef)
|
|
231
|
+
* @returns {string|null} Tab ID (existing or newly created), or null if tabStorage is not available
|
|
232
|
+
*/ var findOrCreateTab = (0, _react.useCallback)(function(predicate, tabData, tabStorageInstance) {
|
|
233
|
+
// Return null if tabStorage is not available
|
|
234
|
+
if (!setPaneTabs || !setPaneActiveTabId) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
var existing = tabs.find(predicate);
|
|
238
|
+
if (existing) {
|
|
239
|
+
setActiveTab(existing.id);
|
|
240
|
+
// Attempt to expand pane (expandPaneRef will be set by Pane component on tabStorage)
|
|
241
|
+
if (tabStorageInstance) {
|
|
242
|
+
attemptExpandPane(tabStorageInstance);
|
|
243
|
+
}
|
|
244
|
+
return existing.id;
|
|
245
|
+
}
|
|
246
|
+
// Create new tab
|
|
247
|
+
var newTabId = addTab(tabData);
|
|
248
|
+
// Attempt to expand pane after creating new tab
|
|
249
|
+
if (newTabId && tabStorageInstance) {
|
|
250
|
+
attemptExpandPane(tabStorageInstance);
|
|
251
|
+
}
|
|
252
|
+
return newTabId;
|
|
253
|
+
}, [
|
|
254
|
+
tabs,
|
|
255
|
+
addTab,
|
|
256
|
+
setActiveTab,
|
|
257
|
+
attemptExpandPane
|
|
258
|
+
]);
|
|
259
|
+
/**
|
|
260
|
+
* Expands the pane if it's collapsed
|
|
261
|
+
* @param {Object} tabStorageInstance - The tabStorage instance (for accessing expandPaneRef)
|
|
262
|
+
* @returns {boolean} Whether the pane was expanded (true) or not (false)
|
|
263
|
+
*/ var expandIfCollapsed = (0, _react.useCallback)(function(tabStorageInstance) {
|
|
264
|
+
var _tabStorageInstance_isCollapsed;
|
|
265
|
+
// Check isCollapsed from Pane component (source of truth)
|
|
266
|
+
var wasCollapsed = (_tabStorageInstance_isCollapsed = tabStorageInstance === null || tabStorageInstance === void 0 ? void 0 : tabStorageInstance.isCollapsed) !== null && _tabStorageInstance_isCollapsed !== void 0 ? _tabStorageInstance_isCollapsed : paneState.collapsed;
|
|
267
|
+
if (wasCollapsed) {
|
|
268
|
+
var _tabStorageInstance_expandPaneRef;
|
|
269
|
+
// Update state to match
|
|
270
|
+
setPaneCollapsed(false);
|
|
271
|
+
// Expand via ref if available
|
|
272
|
+
if (tabStorageInstance === null || tabStorageInstance === void 0 ? void 0 : (_tabStorageInstance_expandPaneRef = tabStorageInstance.expandPaneRef) === null || _tabStorageInstance_expandPaneRef === void 0 ? void 0 : _tabStorageInstance_expandPaneRef.current) {
|
|
273
|
+
tabStorageInstance.expandPaneRef.current();
|
|
274
|
+
}
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
return false;
|
|
278
|
+
}, [
|
|
279
|
+
paneState.collapsed,
|
|
280
|
+
setPaneCollapsed
|
|
281
|
+
]);
|
|
282
|
+
// Create tabStorage instance with self-referencing methods
|
|
283
|
+
var tabStorageInstanceRef = (0, _react.useRef)(null);
|
|
284
|
+
var tabStorageInstance = (0, _react.useMemo)(function() {
|
|
285
|
+
var instance = {
|
|
286
|
+
tabs: tabs,
|
|
287
|
+
activeTabId: activeTabId,
|
|
288
|
+
addTab: addTab,
|
|
289
|
+
removeTab: removeTab,
|
|
290
|
+
setActiveTab: setActiveTab,
|
|
291
|
+
updateTab: updateTab,
|
|
292
|
+
clearAllTabs: clearAllTabs,
|
|
293
|
+
findOrCreateTab: function(predicate, tabData) {
|
|
294
|
+
// Use the ref to avoid circular dependency
|
|
295
|
+
var currentInstance = tabStorageInstanceRef.current || instance;
|
|
296
|
+
return findOrCreateTab(predicate, tabData, currentInstance);
|
|
297
|
+
},
|
|
298
|
+
attemptExpandPane: function() {
|
|
299
|
+
var currentInstance = tabStorageInstanceRef.current || instance;
|
|
300
|
+
attemptExpandPane(currentInstance);
|
|
301
|
+
},
|
|
302
|
+
expandIfCollapsed: function() {
|
|
303
|
+
var currentInstance = tabStorageInstanceRef.current || instance;
|
|
304
|
+
return expandIfCollapsed(currentInstance);
|
|
305
|
+
},
|
|
306
|
+
orgId: currentOrgId
|
|
307
|
+
};
|
|
308
|
+
tabStorageInstanceRef.current = instance;
|
|
309
|
+
return instance;
|
|
310
|
+
}, [
|
|
311
|
+
tabs,
|
|
312
|
+
activeTabId,
|
|
313
|
+
addTab,
|
|
314
|
+
removeTab,
|
|
315
|
+
setActiveTab,
|
|
316
|
+
updateTab,
|
|
317
|
+
clearAllTabs,
|
|
318
|
+
findOrCreateTab,
|
|
319
|
+
attemptExpandPane,
|
|
320
|
+
expandIfCollapsed,
|
|
321
|
+
currentOrgId
|
|
322
|
+
]);
|
|
323
|
+
return tabStorageInstance;
|
|
324
|
+
}
|
|
325
|
+
var _default = useTabStorage;
|
|
@@ -5,7 +5,7 @@ import Spinner from "./Spinner.js";
|
|
|
5
5
|
import Text from "./Text.js";
|
|
6
6
|
import Button from "./Button.js";
|
|
7
7
|
import Link from "./Link.js";
|
|
8
|
-
import { CancelMinor, CircleAlertMajor, CircleInformationMajor, TickMinor } from "@shopify/polaris-icons";
|
|
8
|
+
import { CancelMinor, CircleAlertMajor, CircleInformationMajor, MagicMajor, TickMinor } from "@shopify/polaris-icons";
|
|
9
9
|
var styles = tv({
|
|
10
10
|
base: "Litho-Banner relative rounded-md shadow-card bg-surface-highest outline outline-tint-3"
|
|
11
11
|
});
|
|
@@ -153,10 +153,15 @@ var STATUS_STYLES = {
|
|
|
153
153
|
}),
|
|
154
154
|
!icon && !spinner && /*#__PURE__*/ _jsxs(_Fragment, {
|
|
155
155
|
children: [
|
|
156
|
+
status === "insight" && /*#__PURE__*/ _jsx(Icon, {
|
|
157
|
+
source: MagicMajor,
|
|
158
|
+
color: statusColors.icon
|
|
159
|
+
}),
|
|
156
160
|
![
|
|
157
161
|
"warning",
|
|
158
162
|
"attention",
|
|
159
|
-
"success"
|
|
163
|
+
"success",
|
|
164
|
+
"insight"
|
|
160
165
|
].includes(status) && /*#__PURE__*/ _jsx(Icon, {
|
|
161
166
|
source: CircleInformationMajor,
|
|
162
167
|
color: statusColors.icon
|
|
@@ -432,6 +432,23 @@ var styles = tv({
|
|
|
432
432
|
highlight: true,
|
|
433
433
|
loading: true,
|
|
434
434
|
class: "bg-btn-highlight-disabled text-btn-highlight-disabled-fg"
|
|
435
|
+
},
|
|
436
|
+
// Insight buttons
|
|
437
|
+
{
|
|
438
|
+
insight: true,
|
|
439
|
+
disabled: false,
|
|
440
|
+
loading: false,
|
|
441
|
+
class: "bg-btn-insight hover:bg-btn-insight-low active:bg-btn-insight-lower text-btn-insight-fg hover:text-btn-insight-fg-alt border-btn-insight-border hover:border-btn-insight-border-low active:border-btn-insight-border-low\n dark:outline-hidden dark:border-transparent dark:shadow-btn-dark dark:border-t-tint-alt-6 dark:hover:border-t-tint-alt-7 dark:active:border-t-tint-alt-8"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
primary: true,
|
|
445
|
+
disabled: true,
|
|
446
|
+
class: "bg-btn-primary-disabled text-btn-primary-disabled-fg"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
primary: true,
|
|
450
|
+
loading: true,
|
|
451
|
+
class: "bg-btn-primary-disabled text-btn-primary-disabled-fg"
|
|
435
452
|
}
|
|
436
453
|
],
|
|
437
454
|
defaultVariants: {
|
|
@@ -440,7 +457,8 @@ var styles = tv({
|
|
|
440
457
|
insideButtonGroup: false,
|
|
441
458
|
shadow: false,
|
|
442
459
|
darkMode: false,
|
|
443
|
-
bordered: false
|
|
460
|
+
bordered: false,
|
|
461
|
+
insight: false
|
|
444
462
|
}
|
|
445
463
|
});
|
|
446
464
|
var contentStyles = tv({
|
|
@@ -577,6 +595,10 @@ var textStyles = tv({
|
|
|
577
595
|
true: "",
|
|
578
596
|
false: ""
|
|
579
597
|
},
|
|
598
|
+
insight: {
|
|
599
|
+
true: "",
|
|
600
|
+
false: ""
|
|
601
|
+
},
|
|
580
602
|
naked: {
|
|
581
603
|
true: "",
|
|
582
604
|
false: ""
|
|
@@ -607,6 +629,7 @@ var textStyles = tv({
|
|
|
607
629
|
plain: false,
|
|
608
630
|
link: false,
|
|
609
631
|
naked: false,
|
|
632
|
+
insight: false,
|
|
610
633
|
class: "text-btn-secondary-fg"
|
|
611
634
|
},
|
|
612
635
|
{
|
|
@@ -745,7 +768,7 @@ var connectedDisclosureStyles = tv({
|
|
|
745
768
|
* @param {boolean} [props.disclosureRight=false] - Whether to show the disclosure on the right.
|
|
746
769
|
* @param {boolean} [props.plain=false] - Whether to show plain styling without background.
|
|
747
770
|
* @param {boolean} [props.naked=false] - Whether to show the naked styling.
|
|
748
|
-
* @param {"small" | "medium" | "large" | "stepper"} [props.size='medium'] - Size of the button ('small', 'medium', 'large', 'stepper').
|
|
771
|
+
* @param {"mini" | "small" | "medium" | "large" | "stepper"} [props.size='medium'] - Size of the button ('mini', 'small', 'medium', 'large', 'stepper').
|
|
749
772
|
* @param {boolean} [props.fullWidth] - Whether the button should take full width.
|
|
750
773
|
* @param {"left" | "center" | "right"} [props.align='center'] - Alignment of the button content ('left', 'center', 'right').
|
|
751
774
|
* @param {string} [props.tooltip] - Tooltip to show when hovering over the button.
|
|
@@ -801,7 +824,7 @@ var connectedDisclosureStyles = tv({
|
|
|
801
824
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
802
825
|
var darkMode = useDarkMode().darkMode;
|
|
803
826
|
var _useState = _sliced_to_array(useState(false), 2), showConnectedDisclosurePopover = _useState[0], setShowConnectedDisclosurePopover = _useState[1];
|
|
804
|
-
var id = props.id, children = props.children, url = props.url, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, external = props.external, target = props.target, submit = props.submit, _props_loading = props.loading, loading = _props_loading === void 0 ? false : _props_loading, _props_pressed = props.pressed, pressed = _props_pressed === void 0 ? false : _props_pressed, accessibilityLabel = props.accessibilityLabel, role = props.role, ariaControls = props.ariaControls, ariaExpanded = props.ariaExpanded, ariaDescribedBy = props.ariaDescribedBy, ariaChecked = props.ariaChecked, icon = props.icon, _iconColor = props.iconColor, _props_iconSize = props.iconSize, iconSize = _props_iconSize === void 0 ? "default" : _props_iconSize, _props_bordered = props.bordered, bordered = _props_bordered === void 0 ? false : _props_bordered, _props_primary = props.primary, primary = _props_primary === void 0 ? false : _props_primary, _props_highlight = props.highlight, highlight = _props_highlight === void 0 ? false : _props_highlight, _props_link = props.link, link = _props_link === void 0 ? false : _props_link, _props_destructive = props.destructive, destructive = _props_destructive === void 0 ? false : _props_destructive, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_disclosureRight = props.disclosureRight, disclosureRight = _props_disclosureRight === void 0 ? false : _props_disclosureRight, _props_plain = props.plain, plain = _props_plain === void 0 ? false : _props_plain, _props_naked = props.naked, naked = _props_naked === void 0 ? false : _props_naked, _props_size = props.size, size = _props_size === void 0 ? "medium" : _props_size, fullWidth = props.fullWidth, _props_align = props.align, align = _props_align === void 0 ? "center" : _props_align, connectedDisclosure = props.connectedDisclosure, className = props.className, contentClassName = props.contentClassName, rounded = props.rounded, onClick = props.onClick, onMouseDown = props.onMouseDown, tooltip = props.tooltip, _props_tooltipAlignment = props.tooltipAlignment, tooltipAlignment = _props_tooltipAlignment === void 0 ? "right" : _props_tooltipAlignment, _props_tooltipPosition = props.tooltipPosition, tooltipPosition = _props_tooltipPosition === void 0 ? "above" : _props_tooltipPosition, _props_tooltipDisplay = props.tooltipDisplay, tooltipDisplay = _props_tooltipDisplay === void 0 ? "inline-block" : _props_tooltipDisplay, shadow = props.shadow, restProps = _object_without_properties(props, [
|
|
827
|
+
var id = props.id, children = props.children, url = props.url, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, external = props.external, target = props.target, submit = props.submit, _props_loading = props.loading, loading = _props_loading === void 0 ? false : _props_loading, _props_pressed = props.pressed, pressed = _props_pressed === void 0 ? false : _props_pressed, accessibilityLabel = props.accessibilityLabel, role = props.role, ariaControls = props.ariaControls, ariaExpanded = props.ariaExpanded, ariaDescribedBy = props.ariaDescribedBy, ariaChecked = props.ariaChecked, icon = props.icon, _iconColor = props.iconColor, _props_iconSize = props.iconSize, iconSize = _props_iconSize === void 0 ? "default" : _props_iconSize, _props_bordered = props.bordered, bordered = _props_bordered === void 0 ? false : _props_bordered, _props_primary = props.primary, primary = _props_primary === void 0 ? false : _props_primary, _props_highlight = props.highlight, highlight = _props_highlight === void 0 ? false : _props_highlight, _props_link = props.link, link = _props_link === void 0 ? false : _props_link, _props_destructive = props.destructive, destructive = _props_destructive === void 0 ? false : _props_destructive, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_disclosureRight = props.disclosureRight, disclosureRight = _props_disclosureRight === void 0 ? false : _props_disclosureRight, _props_insight = props.insight, insight = _props_insight === void 0 ? false : _props_insight, _props_plain = props.plain, plain = _props_plain === void 0 ? false : _props_plain, _props_naked = props.naked, naked = _props_naked === void 0 ? false : _props_naked, _props_size = props.size, size = _props_size === void 0 ? "medium" : _props_size, fullWidth = props.fullWidth, _props_align = props.align, align = _props_align === void 0 ? "center" : _props_align, connectedDisclosure = props.connectedDisclosure, className = props.className, contentClassName = props.contentClassName, rounded = props.rounded, onClick = props.onClick, onMouseDown = props.onMouseDown, tooltip = props.tooltip, _props_tooltipAlignment = props.tooltipAlignment, tooltipAlignment = _props_tooltipAlignment === void 0 ? "right" : _props_tooltipAlignment, _props_tooltipPosition = props.tooltipPosition, tooltipPosition = _props_tooltipPosition === void 0 ? "above" : _props_tooltipPosition, _props_tooltipDisplay = props.tooltipDisplay, tooltipDisplay = _props_tooltipDisplay === void 0 ? "inline-block" : _props_tooltipDisplay, shadow = props.shadow, restProps = _object_without_properties(props, [
|
|
805
828
|
"id",
|
|
806
829
|
"children",
|
|
807
830
|
"url",
|
|
@@ -827,6 +850,7 @@ var connectedDisclosureStyles = tv({
|
|
|
827
850
|
"destructive",
|
|
828
851
|
"disclosure",
|
|
829
852
|
"disclosureRight",
|
|
853
|
+
"insight",
|
|
830
854
|
"plain",
|
|
831
855
|
"naked",
|
|
832
856
|
"size",
|
|
@@ -855,9 +879,10 @@ var connectedDisclosureStyles = tv({
|
|
|
855
879
|
link: "btn-link".concat(base),
|
|
856
880
|
destructive: "btn-destructive".concat(base),
|
|
857
881
|
highlight: "btn-highlight".concat(base),
|
|
882
|
+
insight: "btn-insight".concat(base),
|
|
858
883
|
default: "btn-secondary".concat(base)
|
|
859
884
|
};
|
|
860
|
-
var iconColor = iconColorMap[primary ? "primary" : plain ? "plain" : link ? "link" : destructive ? "destructive" : highlight ? "highlight" : "default"];
|
|
885
|
+
var iconColor = iconColorMap[primary ? "primary" : plain ? "plain" : link ? "link" : destructive ? "destructive" : highlight ? "highlight" : insight ? "insight" : "default"];
|
|
861
886
|
var iconOnly = hasIcon && !hasChildren;
|
|
862
887
|
var connectedDisclosureActions = (connectedDisclosure === null || connectedDisclosure === void 0 ? void 0 : connectedDisclosure.actions) || [];
|
|
863
888
|
var showConnectedDisclosure = connectedDisclosure && connectedDisclosureActions.length > 0;
|
|
@@ -867,6 +892,7 @@ var connectedDisclosureStyles = tv({
|
|
|
867
892
|
link: link,
|
|
868
893
|
destructive: destructive,
|
|
869
894
|
highlight: highlight,
|
|
895
|
+
insight: insight,
|
|
870
896
|
insideButtonGroup: insideButtonGroup,
|
|
871
897
|
loading: loading,
|
|
872
898
|
disabled: disabled,
|
|
@@ -897,6 +923,7 @@ var connectedDisclosureStyles = tv({
|
|
|
897
923
|
link: link,
|
|
898
924
|
destructive: destructive,
|
|
899
925
|
highlight: highlight,
|
|
926
|
+
insight: insight,
|
|
900
927
|
pressed: pressed,
|
|
901
928
|
loading: loading,
|
|
902
929
|
disabled: disabled,
|
|
@@ -908,6 +935,7 @@ var connectedDisclosureStyles = tv({
|
|
|
908
935
|
link: link,
|
|
909
936
|
destructive: destructive,
|
|
910
937
|
highlight: highlight,
|
|
938
|
+
insight: insight,
|
|
911
939
|
loading: loading,
|
|
912
940
|
disabled: disabled
|
|
913
941
|
});
|
|
@@ -991,6 +1019,7 @@ var connectedDisclosureStyles = tv({
|
|
|
991
1019
|
link: link,
|
|
992
1020
|
destructive: destructive,
|
|
993
1021
|
highlight: highlight,
|
|
1022
|
+
insight: insight,
|
|
994
1023
|
icon: CaretDownMinor,
|
|
995
1024
|
disclosureRight: true,
|
|
996
1025
|
iconColor: _iconColor,
|
|
@@ -86,14 +86,26 @@ var styles = tv({
|
|
|
86
86
|
variants: {
|
|
87
87
|
segmented: {
|
|
88
88
|
true: "Litho-ButtonGroup--Segmented",
|
|
89
|
-
false: "
|
|
89
|
+
false: ""
|
|
90
90
|
},
|
|
91
91
|
noWrap: {
|
|
92
92
|
true: "flex-nowrap"
|
|
93
93
|
},
|
|
94
94
|
fullWidth: {
|
|
95
95
|
true: "Litho-ButtonGroup--FullWidth"
|
|
96
|
+
},
|
|
97
|
+
gap: {
|
|
98
|
+
"0": "gap-0",
|
|
99
|
+
"1": "gap-1",
|
|
100
|
+
"2": "gap-2",
|
|
101
|
+
"3": "gap-3",
|
|
102
|
+
"4": "gap-4",
|
|
103
|
+
"5": "gap-5",
|
|
104
|
+
"6": "gap-6"
|
|
96
105
|
}
|
|
106
|
+
},
|
|
107
|
+
defaultVariants: {
|
|
108
|
+
gap: "2"
|
|
97
109
|
}
|
|
98
110
|
});
|
|
99
111
|
export var ButtonGroupContext = /*#__PURE__*/ createContext(false);
|
|
@@ -111,18 +123,21 @@ export var ButtonGroupContext = /*#__PURE__*/ createContext(false);
|
|
|
111
123
|
* @returns {JSX.Element} The rendered ButtonGroup component.
|
|
112
124
|
*/ function ButtonGroup() {
|
|
113
125
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
114
|
-
var children = props.children, _props_segmented = props.segmented, segmented = _props_segmented === void 0 ? false : _props_segmented, id = props.id, className = props.className, _props_fullWidth = props.fullWidth, fullWidth = _props_fullWidth === void 0 ? false : _props_fullWidth, _props_noWrap = props.noWrap, noWrap = _props_noWrap === void 0 ? false : _props_noWrap, restProps = _object_without_properties(props, [
|
|
126
|
+
var children = props.children, _props_segmented = props.segmented, segmented = _props_segmented === void 0 ? false : _props_segmented, id = props.id, className = props.className, _props_fullWidth = props.fullWidth, fullWidth = _props_fullWidth === void 0 ? false : _props_fullWidth, _props_noWrap = props.noWrap, noWrap = _props_noWrap === void 0 ? false : _props_noWrap, tmp = props.gap, _gap = tmp === void 0 ? "2" : tmp, restProps = _object_without_properties(props, [
|
|
115
127
|
"children",
|
|
116
128
|
"segmented",
|
|
117
129
|
"id",
|
|
118
130
|
"className",
|
|
119
131
|
"fullWidth",
|
|
120
|
-
"noWrap"
|
|
132
|
+
"noWrap",
|
|
133
|
+
"gap"
|
|
121
134
|
]);
|
|
135
|
+
var gap = segmented ? "0" : _gap;
|
|
122
136
|
var classes = styles({
|
|
123
137
|
segmented: segmented,
|
|
124
138
|
noWrap: noWrap,
|
|
125
|
-
fullWidth: fullWidth
|
|
139
|
+
fullWidth: fullWidth,
|
|
140
|
+
gap: gap
|
|
126
141
|
});
|
|
127
142
|
return /*#__PURE__*/ _jsx(ButtonGroupContext.Provider, {
|
|
128
143
|
value: segmented,
|
|
@@ -414,7 +414,7 @@ var sectionBodyStyles = tv({
|
|
|
414
414
|
*
|
|
415
415
|
* @returns {React.ReactElement} The rendered Section component.
|
|
416
416
|
*/ Card.Section = function(param) {
|
|
417
|
-
var title = param.title, _param_titleVariant = param.titleVariant, titleVariant = _param_titleVariant === void 0 ? "headingSm" : _param_titleVariant, action = param.action, children = param.children, _param_padded = param.padded, padded = _param_padded === void 0 ? true : _param_padded, _param_paddedHalf = param.paddedHalf, paddedHalf = _param_paddedHalf === void 0 ? false : _param_paddedHalf, _param_isFirst = param.isFirst, isFirst = _param_isFirst === void 0 ? false : _param_isFirst, _param_cardHasHeader = param.cardHasHeader, cardHasHeader = _param_cardHasHeader === void 0 ? false : _param_cardHasHeader, _param_borderBottom = param.borderBottom, borderBottom = _param_borderBottom === void 0 ? true : _param_borderBottom, _param_borderTop = param.borderTop, borderTop = _param_borderTop === void 0 ? false : _param_borderTop, _param_subdued = param.subdued, subdued = _param_subdued === void 0 ? false : _param_subdued, _param_headerGap = param.headerGap, headerGap = _param_headerGap === void 0 ? "0" : _param_headerGap, _param_gap = param.gap, gap = _param_gap === void 0 ? "0" : _param_gap, icon = param.icon, tooltip = param.tooltip, description = param.description, accessory = param.accessory, _param_emptyState = param.emptyState, emptyState = _param_emptyState === void 0 ? {} : _param_emptyState, className = param.className;
|
|
417
|
+
var title = param.title, _param_titleVariant = param.titleVariant, titleVariant = _param_titleVariant === void 0 ? "headingSm" : _param_titleVariant, action = param.action, children = param.children, _param_padded = param.padded, padded = _param_padded === void 0 ? true : _param_padded, _param_paddedHalf = param.paddedHalf, paddedHalf = _param_paddedHalf === void 0 ? false : _param_paddedHalf, _param_isFirst = param.isFirst, isFirst = _param_isFirst === void 0 ? false : _param_isFirst, _param_cardHasHeader = param.cardHasHeader, cardHasHeader = _param_cardHasHeader === void 0 ? false : _param_cardHasHeader, _param_borderBottom = param.borderBottom, borderBottom = _param_borderBottom === void 0 ? true : _param_borderBottom, _param_borderTop = param.borderTop, borderTop = _param_borderTop === void 0 ? false : _param_borderTop, _param_subdued = param.subdued, subdued = _param_subdued === void 0 ? false : _param_subdued, _param_headerGap = param.headerGap, headerGap = _param_headerGap === void 0 ? "0" : _param_headerGap, _param_gap = param.gap, gap = _param_gap === void 0 ? "0" : _param_gap, icon = param.icon, tooltip = param.tooltip, description = param.description, accessory = param.accessory, _param_emptyState = param.emptyState, emptyState = _param_emptyState === void 0 ? {} : _param_emptyState, className = param.className, sectionBodyClassName = param.sectionBodyClassName;
|
|
418
418
|
var showHeader = !!(title || action);
|
|
419
419
|
var sectionClasses = sectionStyles({
|
|
420
420
|
borderBottom: borderBottom,
|
|
@@ -484,7 +484,7 @@ var sectionBodyStyles = tv({
|
|
|
484
484
|
]
|
|
485
485
|
}),
|
|
486
486
|
/*#__PURE__*/ _jsxs("div", {
|
|
487
|
-
className: sectionBodyClasses,
|
|
487
|
+
className: "".concat(sectionBodyClasses).concat(sectionBodyClassName ? " ".concat(sectionBodyClassName) : ""),
|
|
488
488
|
children: [
|
|
489
489
|
emptyState.showIf && /*#__PURE__*/ _jsx("div", {
|
|
490
490
|
className: paddedHalf ? "px-2 @md:px-2.5 pb-2" : !padded ? "px-4 @md:px-5 pb-4" : "",
|
|
@@ -501,7 +501,7 @@ var sectionBodyStyles = tv({
|
|
|
501
501
|
};
|
|
502
502
|
Card.Section.displayName = "Card.Section";
|
|
503
503
|
var clickableRowStyles = tv({
|
|
504
|
-
base: "Litho-
|
|
504
|
+
base: "Litho-Card__Row py-1.5 px-2.5 cursor-pointer rounded-md hover:bg-tint-2 active:bg-tint-3",
|
|
505
505
|
variants: {
|
|
506
506
|
disabled: {
|
|
507
507
|
true: "opacity-50 cursor-not-allowed pointer-events-none"
|
|
@@ -536,4 +536,40 @@ var clickableRowStyles = tv({
|
|
|
536
536
|
});
|
|
537
537
|
};
|
|
538
538
|
Card.ClickableRow.displayName = "Card.ClickableRow";
|
|
539
|
+
Card.Rows = function(param) {
|
|
540
|
+
var children = param.children;
|
|
541
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
542
|
+
className: "px-1.5 pb-1.5 @md:pb-2 @md:px-2",
|
|
543
|
+
children: children
|
|
544
|
+
});
|
|
545
|
+
};
|
|
546
|
+
Card.Rows.displayName = "Card.Rows";
|
|
547
|
+
/**
|
|
548
|
+
* Row component for creating clickable rows inside the Card.
|
|
549
|
+
*
|
|
550
|
+
* @component
|
|
551
|
+
* @param {Object} props - Props for the Row component.
|
|
552
|
+
* @param {React.ReactNode} [props.children] - Child elements to render inside the row.
|
|
553
|
+
* @param {Function} [props.onClick] - Click handler for the row.
|
|
554
|
+
* @param {string} [props.id] - ID to apply to the row element.
|
|
555
|
+
* @param {string} [props.url] - URL to open when the row is clicked.
|
|
556
|
+
* @param {string} [props.className] - Additional classes to apply to the row.
|
|
557
|
+
* @param {boolean} [props.disabled=false] - Disables interaction with the row.
|
|
558
|
+
*
|
|
559
|
+
* @returns {React.ReactElement} The rendered Row component.
|
|
560
|
+
*/ Card.Row = function(param) {
|
|
561
|
+
var children = param.children, onClick = param.onClick, id = param.id, url = param.url, _param_disabled = param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, className = param.className;
|
|
562
|
+
var classes = clickableRowStyles({
|
|
563
|
+
disabled: disabled
|
|
564
|
+
});
|
|
565
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
566
|
+
id: id,
|
|
567
|
+
onClick: url ? function() {
|
|
568
|
+
return window.open(url, "_blank");
|
|
569
|
+
} : onClick,
|
|
570
|
+
className: "".concat(classes).concat(className ? " ".concat(className) : ""),
|
|
571
|
+
children: children
|
|
572
|
+
});
|
|
573
|
+
};
|
|
574
|
+
Card.Row.displayName = "Card.Row";
|
|
539
575
|
export default Card;
|
|
@@ -30,7 +30,7 @@ import Icon from "./Icon.js";
|
|
|
30
30
|
import Label from "./Label.js";
|
|
31
31
|
import RadioButton from "./RadioButton.js";
|
|
32
32
|
import Text from "./Text.js";
|
|
33
|
-
import
|
|
33
|
+
import Stack from "./Stack.js";
|
|
34
34
|
import { CircleAlertMajor } from "@shopify/polaris-icons";
|
|
35
35
|
var styles = tv({
|
|
36
36
|
base: "Litho-ChoiceList flex flex-col gap-1"
|
|
@@ -84,7 +84,8 @@ var styles = tv({
|
|
|
84
84
|
tooltip: tooltip,
|
|
85
85
|
children: title
|
|
86
86
|
}),
|
|
87
|
-
/*#__PURE__*/ _jsx(
|
|
87
|
+
/*#__PURE__*/ _jsx(Stack, {
|
|
88
|
+
gap: "none",
|
|
88
89
|
children: choices.map(function(choice, index) {
|
|
89
90
|
return /*#__PURE__*/ _jsxs("div", {
|
|
90
91
|
children: [
|