@fayz-ai/ui 0.8.2 → 0.8.4
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/{chunk-XAOGMWLC.cjs → chunk-7ZQQZD4Q.cjs} +354 -80
- package/dist/chunk-7ZQQZD4Q.cjs.map +1 -0
- package/dist/{chunk-IEYCOJTY.cjs → chunk-B3BTZDTA.cjs} +10 -42
- package/dist/chunk-B3BTZDTA.cjs.map +1 -0
- package/dist/{chunk-O5F4LLSL.js → chunk-DYMBFHD7.js} +8 -7
- package/dist/chunk-DYMBFHD7.js.map +1 -0
- package/dist/{chunk-FY7OZNKU.js → chunk-G6OKZ7WL.js} +35 -8
- package/dist/chunk-G6OKZ7WL.js.map +1 -0
- package/dist/{chunk-W5O2X277.js → chunk-M34ACV5E.js} +27 -4
- package/dist/chunk-M34ACV5E.js.map +1 -0
- package/dist/{chunk-NWPMNPGR.cjs → chunk-MUGRP5DD.cjs} +57 -34
- package/dist/chunk-MUGRP5DD.cjs.map +1 -0
- package/dist/{chunk-ODY3GZ3Y.cjs → chunk-NZV47HWO.cjs} +36 -7
- package/dist/chunk-NZV47HWO.cjs.map +1 -0
- package/dist/{chunk-J3IUFUNR.js → chunk-R4LPSXTT.js} +8 -38
- package/dist/chunk-R4LPSXTT.js.map +1 -0
- package/dist/{chunk-TDGSY5W6.cjs → chunk-R4SQ2GVD.cjs} +8 -7
- package/dist/chunk-R4SQ2GVD.cjs.map +1 -0
- package/dist/{chunk-MZZMZYSE.js → chunk-VVQ45ZDZ.js} +357 -83
- package/dist/chunk-VVQ45ZDZ.js.map +1 -0
- package/dist/dashboard/OnboardingWidget.d.ts.map +1 -1
- package/dist/dashboard/index.cjs +26 -26
- package/dist/dashboard/index.js +2 -2
- package/dist/index.cjs +137 -137
- package/dist/index.js +5 -5
- package/dist/layout/AppShell.d.ts +41 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/ModulePage.d.ts +9 -6
- package/dist/layout/ModulePage.d.ts.map +1 -1
- package/dist/layout/Sidebar.d.ts +24 -1
- package/dist/layout/Sidebar.d.ts.map +1 -1
- package/dist/layout/Topbar.d.ts +13 -1
- package/dist/layout/Topbar.d.ts.map +1 -1
- package/dist/layout/index.cjs +19 -19
- package/dist/layout/index.js +1 -1
- package/dist/primitives/data-table.d.ts.map +1 -1
- package/dist/primitives/index.cjs +83 -83
- package/dist/primitives/index.js +2 -2
- package/dist/primitives/search-select.d.ts +3 -1
- package/dist/primitives/search-select.d.ts.map +1 -1
- package/dist/theme/index.cjs +8 -8
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -1
- package/package.json +3 -3
- package/src/dashboard/OnboardingWidget.tsx +41 -1
- package/src/layout/AppShell.tsx +255 -7
- package/src/layout/ModulePage.tsx +32 -3
- package/src/layout/Sidebar.tsx +198 -61
- package/src/layout/Topbar.tsx +51 -4
- package/src/primitives/data-table.tsx +10 -1
- package/src/primitives/search-select.tsx +12 -4
- package/src/styles.css +34 -0
- package/src/theme/index.ts +9 -6
- package/dist/chunk-FY7OZNKU.js.map +0 -1
- package/dist/chunk-IEYCOJTY.cjs.map +0 -1
- package/dist/chunk-J3IUFUNR.js.map +0 -1
- package/dist/chunk-MZZMZYSE.js.map +0 -1
- package/dist/chunk-NWPMNPGR.cjs.map +0 -1
- package/dist/chunk-O5F4LLSL.js.map +0 -1
- package/dist/chunk-ODY3GZ3Y.cjs.map +0 -1
- package/dist/chunk-TDGSY5W6.cjs.map +0 -1
- package/dist/chunk-W5O2X277.js.map +0 -1
- package/dist/chunk-XAOGMWLC.cjs.map +0 -1
|
@@ -1,219 +1,211 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkB3BTZDTA_cjs = require('../chunk-B3BTZDTA.cjs');
|
|
4
4
|
var chunkOW73RZOU_cjs = require('../chunk-OW73RZOU.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkNZV47HWO_cjs = require('../chunk-NZV47HWO.cjs');
|
|
6
6
|
var chunkH6OULCHF_cjs = require('../chunk-H6OULCHF.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, "Badge", {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () { return
|
|
12
|
+
get: function () { return chunkB3BTZDTA_cjs.Badge; }
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "Breadcrumb", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunkB3BTZDTA_cjs.Breadcrumb; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "Checkbox", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunkB3BTZDTA_cjs.Checkbox; }
|
|
21
21
|
});
|
|
22
22
|
Object.defineProperty(exports, "ConfirmDialog", {
|
|
23
23
|
enumerable: true,
|
|
24
|
-
get: function () { return
|
|
24
|
+
get: function () { return chunkB3BTZDTA_cjs.ConfirmDialog; }
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "CurrencyInput", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
28
|
+
get: function () { return chunkB3BTZDTA_cjs.CurrencyInput; }
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "DatePicker", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunkB3BTZDTA_cjs.DatePicker; }
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(exports, "Input", {
|
|
35
35
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunkB3BTZDTA_cjs.Input; }
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "ListView", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkB3BTZDTA_cjs.ListView; }
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "Markdown", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkB3BTZDTA_cjs.Markdown; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "MarkdownEditor", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunkB3BTZDTA_cjs.MarkdownEditor; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "Modal", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunkB3BTZDTA_cjs.Modal; }
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "ModalBody", {
|
|
55
55
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalBody; }
|
|
57
57
|
});
|
|
58
58
|
Object.defineProperty(exports, "ModalClose", {
|
|
59
59
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalClose; }
|
|
61
61
|
});
|
|
62
62
|
Object.defineProperty(exports, "ModalContent", {
|
|
63
63
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalContent; }
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "ModalDescription", {
|
|
67
67
|
enumerable: true,
|
|
68
|
-
get: function () { return
|
|
68
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalDescription; }
|
|
69
69
|
});
|
|
70
70
|
Object.defineProperty(exports, "ModalFooter", {
|
|
71
71
|
enumerable: true,
|
|
72
|
-
get: function () { return
|
|
72
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalFooter; }
|
|
73
73
|
});
|
|
74
74
|
Object.defineProperty(exports, "ModalHeader", {
|
|
75
75
|
enumerable: true,
|
|
76
|
-
get: function () { return
|
|
76
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalHeader; }
|
|
77
77
|
});
|
|
78
78
|
Object.defineProperty(exports, "ModalOverlay", {
|
|
79
79
|
enumerable: true,
|
|
80
|
-
get: function () { return
|
|
80
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalOverlay; }
|
|
81
81
|
});
|
|
82
82
|
Object.defineProperty(exports, "ModalPortal", {
|
|
83
83
|
enumerable: true,
|
|
84
|
-
get: function () { return
|
|
84
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalPortal; }
|
|
85
85
|
});
|
|
86
86
|
Object.defineProperty(exports, "ModalTitle", {
|
|
87
87
|
enumerable: true,
|
|
88
|
-
get: function () { return
|
|
88
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalTitle; }
|
|
89
89
|
});
|
|
90
90
|
Object.defineProperty(exports, "ModalTrigger", {
|
|
91
91
|
enumerable: true,
|
|
92
|
-
get: function () { return
|
|
92
|
+
get: function () { return chunkB3BTZDTA_cjs.ModalTrigger; }
|
|
93
93
|
});
|
|
94
94
|
Object.defineProperty(exports, "Popover", {
|
|
95
95
|
enumerable: true,
|
|
96
|
-
get: function () { return
|
|
96
|
+
get: function () { return chunkB3BTZDTA_cjs.Popover; }
|
|
97
97
|
});
|
|
98
98
|
Object.defineProperty(exports, "PopoverContent", {
|
|
99
99
|
enumerable: true,
|
|
100
|
-
get: function () { return
|
|
100
|
+
get: function () { return chunkB3BTZDTA_cjs.PopoverContent; }
|
|
101
101
|
});
|
|
102
102
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
103
103
|
enumerable: true,
|
|
104
|
-
get: function () { return
|
|
104
|
+
get: function () { return chunkB3BTZDTA_cjs.PopoverTrigger; }
|
|
105
105
|
});
|
|
106
106
|
Object.defineProperty(exports, "SearchCombobox", {
|
|
107
107
|
enumerable: true,
|
|
108
|
-
get: function () { return
|
|
108
|
+
get: function () { return chunkB3BTZDTA_cjs.SearchCombobox; }
|
|
109
109
|
});
|
|
110
110
|
Object.defineProperty(exports, "SearchSelect", {
|
|
111
111
|
enumerable: true,
|
|
112
|
-
get: function () { return
|
|
112
|
+
get: function () { return chunkB3BTZDTA_cjs.SearchSelect; }
|
|
113
113
|
});
|
|
114
114
|
Object.defineProperty(exports, "Select", {
|
|
115
115
|
enumerable: true,
|
|
116
|
-
get: function () { return
|
|
116
|
+
get: function () { return chunkB3BTZDTA_cjs.Select; }
|
|
117
117
|
});
|
|
118
118
|
Object.defineProperty(exports, "SelectContent", {
|
|
119
119
|
enumerable: true,
|
|
120
|
-
get: function () { return
|
|
120
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectContent; }
|
|
121
121
|
});
|
|
122
122
|
Object.defineProperty(exports, "SelectGroup", {
|
|
123
123
|
enumerable: true,
|
|
124
|
-
get: function () { return
|
|
124
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectGroup; }
|
|
125
125
|
});
|
|
126
126
|
Object.defineProperty(exports, "SelectItem", {
|
|
127
127
|
enumerable: true,
|
|
128
|
-
get: function () { return
|
|
128
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectItem; }
|
|
129
129
|
});
|
|
130
130
|
Object.defineProperty(exports, "SelectLabel", {
|
|
131
131
|
enumerable: true,
|
|
132
|
-
get: function () { return
|
|
132
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectLabel; }
|
|
133
133
|
});
|
|
134
134
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
135
135
|
enumerable: true,
|
|
136
|
-
get: function () { return
|
|
136
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectScrollDownButton; }
|
|
137
137
|
});
|
|
138
138
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
139
139
|
enumerable: true,
|
|
140
|
-
get: function () { return
|
|
140
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectScrollUpButton; }
|
|
141
141
|
});
|
|
142
142
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
143
143
|
enumerable: true,
|
|
144
|
-
get: function () { return
|
|
144
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectSeparator; }
|
|
145
145
|
});
|
|
146
146
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
147
147
|
enumerable: true,
|
|
148
|
-
get: function () { return
|
|
148
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectTrigger; }
|
|
149
149
|
});
|
|
150
150
|
Object.defineProperty(exports, "SelectValue", {
|
|
151
151
|
enumerable: true,
|
|
152
|
-
get: function () { return
|
|
152
|
+
get: function () { return chunkB3BTZDTA_cjs.SelectValue; }
|
|
153
153
|
});
|
|
154
154
|
Object.defineProperty(exports, "Separator", {
|
|
155
155
|
enumerable: true,
|
|
156
|
-
get: function () { return
|
|
157
|
-
});
|
|
158
|
-
Object.defineProperty(exports, "Skeleton", {
|
|
159
|
-
enumerable: true,
|
|
160
|
-
get: function () { return chunkIEYCOJTY_cjs.Skeleton; }
|
|
161
|
-
});
|
|
162
|
-
Object.defineProperty(exports, "TableSkeleton", {
|
|
163
|
-
enumerable: true,
|
|
164
|
-
get: function () { return chunkIEYCOJTY_cjs.TableSkeleton; }
|
|
156
|
+
get: function () { return chunkB3BTZDTA_cjs.Separator; }
|
|
165
157
|
});
|
|
166
158
|
Object.defineProperty(exports, "Tabs", {
|
|
167
159
|
enumerable: true,
|
|
168
|
-
get: function () { return
|
|
160
|
+
get: function () { return chunkB3BTZDTA_cjs.Tabs; }
|
|
169
161
|
});
|
|
170
162
|
Object.defineProperty(exports, "TabsContent", {
|
|
171
163
|
enumerable: true,
|
|
172
|
-
get: function () { return
|
|
164
|
+
get: function () { return chunkB3BTZDTA_cjs.TabsContent; }
|
|
173
165
|
});
|
|
174
166
|
Object.defineProperty(exports, "TabsList", {
|
|
175
167
|
enumerable: true,
|
|
176
|
-
get: function () { return
|
|
168
|
+
get: function () { return chunkB3BTZDTA_cjs.TabsList; }
|
|
177
169
|
});
|
|
178
170
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
179
171
|
enumerable: true,
|
|
180
|
-
get: function () { return
|
|
172
|
+
get: function () { return chunkB3BTZDTA_cjs.TabsTrigger; }
|
|
181
173
|
});
|
|
182
174
|
Object.defineProperty(exports, "TimePicker", {
|
|
183
175
|
enumerable: true,
|
|
184
|
-
get: function () { return
|
|
176
|
+
get: function () { return chunkB3BTZDTA_cjs.TimePicker; }
|
|
185
177
|
});
|
|
186
178
|
Object.defineProperty(exports, "ToastProvider", {
|
|
187
179
|
enumerable: true,
|
|
188
|
-
get: function () { return
|
|
180
|
+
get: function () { return chunkB3BTZDTA_cjs.ToastProvider; }
|
|
189
181
|
});
|
|
190
182
|
Object.defineProperty(exports, "Tooltip", {
|
|
191
183
|
enumerable: true,
|
|
192
|
-
get: function () { return
|
|
184
|
+
get: function () { return chunkB3BTZDTA_cjs.Tooltip; }
|
|
193
185
|
});
|
|
194
186
|
Object.defineProperty(exports, "TooltipContent", {
|
|
195
187
|
enumerable: true,
|
|
196
|
-
get: function () { return
|
|
188
|
+
get: function () { return chunkB3BTZDTA_cjs.TooltipContent; }
|
|
197
189
|
});
|
|
198
190
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
199
191
|
enumerable: true,
|
|
200
|
-
get: function () { return
|
|
192
|
+
get: function () { return chunkB3BTZDTA_cjs.TooltipProvider; }
|
|
201
193
|
});
|
|
202
194
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
203
195
|
enumerable: true,
|
|
204
|
-
get: function () { return
|
|
196
|
+
get: function () { return chunkB3BTZDTA_cjs.TooltipTrigger; }
|
|
205
197
|
});
|
|
206
198
|
Object.defineProperty(exports, "badgeVariants", {
|
|
207
199
|
enumerable: true,
|
|
208
|
-
get: function () { return
|
|
200
|
+
get: function () { return chunkB3BTZDTA_cjs.badgeVariants; }
|
|
209
201
|
});
|
|
210
202
|
Object.defineProperty(exports, "renderMarkdown", {
|
|
211
203
|
enumerable: true,
|
|
212
|
-
get: function () { return
|
|
204
|
+
get: function () { return chunkB3BTZDTA_cjs.renderMarkdown; }
|
|
213
205
|
});
|
|
214
206
|
Object.defineProperty(exports, "toast", {
|
|
215
207
|
enumerable: true,
|
|
216
|
-
get: function () { return
|
|
208
|
+
get: function () { return chunkB3BTZDTA_cjs.toast; }
|
|
217
209
|
});
|
|
218
210
|
Object.defineProperty(exports, "Sheet", {
|
|
219
211
|
enumerable: true,
|
|
@@ -261,95 +253,103 @@ Object.defineProperty(exports, "SheetTrigger", {
|
|
|
261
253
|
});
|
|
262
254
|
Object.defineProperty(exports, "Card", {
|
|
263
255
|
enumerable: true,
|
|
264
|
-
get: function () { return
|
|
256
|
+
get: function () { return chunkNZV47HWO_cjs.Card; }
|
|
265
257
|
});
|
|
266
258
|
Object.defineProperty(exports, "CardContent", {
|
|
267
259
|
enumerable: true,
|
|
268
|
-
get: function () { return
|
|
260
|
+
get: function () { return chunkNZV47HWO_cjs.CardContent; }
|
|
269
261
|
});
|
|
270
262
|
Object.defineProperty(exports, "CardDescription", {
|
|
271
263
|
enumerable: true,
|
|
272
|
-
get: function () { return
|
|
264
|
+
get: function () { return chunkNZV47HWO_cjs.CardDescription; }
|
|
273
265
|
});
|
|
274
266
|
Object.defineProperty(exports, "CardFooter", {
|
|
275
267
|
enumerable: true,
|
|
276
|
-
get: function () { return
|
|
268
|
+
get: function () { return chunkNZV47HWO_cjs.CardFooter; }
|
|
277
269
|
});
|
|
278
270
|
Object.defineProperty(exports, "CardHeader", {
|
|
279
271
|
enumerable: true,
|
|
280
|
-
get: function () { return
|
|
272
|
+
get: function () { return chunkNZV47HWO_cjs.CardHeader; }
|
|
281
273
|
});
|
|
282
274
|
Object.defineProperty(exports, "CardTitle", {
|
|
283
275
|
enumerable: true,
|
|
284
|
-
get: function () { return
|
|
276
|
+
get: function () { return chunkNZV47HWO_cjs.CardTitle; }
|
|
285
277
|
});
|
|
286
278
|
Object.defineProperty(exports, "DataTable", {
|
|
287
279
|
enumerable: true,
|
|
288
|
-
get: function () { return
|
|
280
|
+
get: function () { return chunkNZV47HWO_cjs.DataTable; }
|
|
289
281
|
});
|
|
290
282
|
Object.defineProperty(exports, "Dropdown", {
|
|
291
283
|
enumerable: true,
|
|
292
|
-
get: function () { return
|
|
284
|
+
get: function () { return chunkNZV47HWO_cjs.Dropdown; }
|
|
293
285
|
});
|
|
294
286
|
Object.defineProperty(exports, "DropdownCheckboxItem", {
|
|
295
287
|
enumerable: true,
|
|
296
|
-
get: function () { return
|
|
288
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownCheckboxItem; }
|
|
297
289
|
});
|
|
298
290
|
Object.defineProperty(exports, "DropdownContent", {
|
|
299
291
|
enumerable: true,
|
|
300
|
-
get: function () { return
|
|
292
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownContent; }
|
|
301
293
|
});
|
|
302
294
|
Object.defineProperty(exports, "DropdownGroup", {
|
|
303
295
|
enumerable: true,
|
|
304
|
-
get: function () { return
|
|
296
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownGroup; }
|
|
305
297
|
});
|
|
306
298
|
Object.defineProperty(exports, "DropdownItem", {
|
|
307
299
|
enumerable: true,
|
|
308
|
-
get: function () { return
|
|
300
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownItem; }
|
|
309
301
|
});
|
|
310
302
|
Object.defineProperty(exports, "DropdownLabel", {
|
|
311
303
|
enumerable: true,
|
|
312
|
-
get: function () { return
|
|
304
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownLabel; }
|
|
313
305
|
});
|
|
314
306
|
Object.defineProperty(exports, "DropdownPortal", {
|
|
315
307
|
enumerable: true,
|
|
316
|
-
get: function () { return
|
|
308
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownPortal; }
|
|
317
309
|
});
|
|
318
310
|
Object.defineProperty(exports, "DropdownRadioGroup", {
|
|
319
311
|
enumerable: true,
|
|
320
|
-
get: function () { return
|
|
312
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownRadioGroup; }
|
|
321
313
|
});
|
|
322
314
|
Object.defineProperty(exports, "DropdownRadioItem", {
|
|
323
315
|
enumerable: true,
|
|
324
|
-
get: function () { return
|
|
316
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownRadioItem; }
|
|
325
317
|
});
|
|
326
318
|
Object.defineProperty(exports, "DropdownSeparator", {
|
|
327
319
|
enumerable: true,
|
|
328
|
-
get: function () { return
|
|
320
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownSeparator; }
|
|
329
321
|
});
|
|
330
322
|
Object.defineProperty(exports, "DropdownShortcut", {
|
|
331
323
|
enumerable: true,
|
|
332
|
-
get: function () { return
|
|
324
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownShortcut; }
|
|
333
325
|
});
|
|
334
326
|
Object.defineProperty(exports, "DropdownSub", {
|
|
335
327
|
enumerable: true,
|
|
336
|
-
get: function () { return
|
|
328
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownSub; }
|
|
337
329
|
});
|
|
338
330
|
Object.defineProperty(exports, "DropdownSubContent", {
|
|
339
331
|
enumerable: true,
|
|
340
|
-
get: function () { return
|
|
332
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownSubContent; }
|
|
341
333
|
});
|
|
342
334
|
Object.defineProperty(exports, "DropdownSubTrigger", {
|
|
343
335
|
enumerable: true,
|
|
344
|
-
get: function () { return
|
|
336
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownSubTrigger; }
|
|
345
337
|
});
|
|
346
338
|
Object.defineProperty(exports, "DropdownTrigger", {
|
|
347
339
|
enumerable: true,
|
|
348
|
-
get: function () { return
|
|
340
|
+
get: function () { return chunkNZV47HWO_cjs.DropdownTrigger; }
|
|
349
341
|
});
|
|
350
342
|
Object.defineProperty(exports, "SegmentedControl", {
|
|
351
343
|
enumerable: true,
|
|
352
|
-
get: function () { return
|
|
344
|
+
get: function () { return chunkNZV47HWO_cjs.SegmentedControl; }
|
|
345
|
+
});
|
|
346
|
+
Object.defineProperty(exports, "Skeleton", {
|
|
347
|
+
enumerable: true,
|
|
348
|
+
get: function () { return chunkNZV47HWO_cjs.Skeleton; }
|
|
349
|
+
});
|
|
350
|
+
Object.defineProperty(exports, "TableSkeleton", {
|
|
351
|
+
enumerable: true,
|
|
352
|
+
get: function () { return chunkNZV47HWO_cjs.TableSkeleton; }
|
|
353
353
|
});
|
|
354
354
|
Object.defineProperty(exports, "Button", {
|
|
355
355
|
enumerable: true,
|
package/dist/primitives/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator,
|
|
1
|
+
export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Tabs, TabsContent, TabsList, TabsTrigger, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, renderMarkdown, toast } from '../chunk-R4LPSXTT.js';
|
|
2
2
|
export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from '../chunk-75EFDLST.js';
|
|
3
|
-
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl } from '../chunk-
|
|
3
|
+
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl, Skeleton, TableSkeleton } from '../chunk-G6OKZ7WL.js';
|
|
4
4
|
export { Button, buttonVariants } from '../chunk-YRVE4FOD.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -35,7 +35,9 @@ export interface SearchSelectProps {
|
|
|
35
35
|
onCreate?: (query: string) => void | Promise<void>;
|
|
36
36
|
/** Custom render for each option */
|
|
37
37
|
renderOption?: (option: SearchSelectOption) => React.ReactNode;
|
|
38
|
-
/** Load initial results when dropdown opens (calls onSearch(''))
|
|
38
|
+
/** Load initial results when dropdown opens (calls onSearch('')). Default
|
|
39
|
+
* true — clicking lists options before any typing; pass false to require
|
|
40
|
+
* a query first (e.g. very large datasets with no cheap top-N). */
|
|
39
41
|
loadOnOpen?: boolean;
|
|
40
42
|
/** Additional className for the container */
|
|
41
43
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-select.d.ts","sourceRoot":"","sources":["../../src/primitives/search-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACjF,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9D
|
|
1
|
+
{"version":3,"file":"search-select.d.ts","sourceRoot":"","sources":["../../src/primitives/search-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACjF,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9D;;wEAEoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAyB,EACzB,KAAK,EACL,QAAQ,EACR,QAAc,EACd,QAAY,EACZ,WAAW,EACX,WAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,UAAiB,EACjB,SAAS,EACT,QAAQ,GACT,EAAE,iBAAiB,qBA6OnB"}
|
package/dist/theme/index.cjs
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkR4SQ2GVD_cjs = require('../chunk-R4SQ2GVD.cjs');
|
|
4
4
|
var chunk2P7T6QQK_cjs = require('../chunk-2P7T6QQK.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "ThemeProvider", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkR4SQ2GVD_cjs.ThemeProvider; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "createFayzTheme", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkR4SQ2GVD_cjs.createFayzTheme; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "createTheme", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkR4SQ2GVD_cjs.createTheme; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "darkTheme", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkR4SQ2GVD_cjs.darkTheme; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "fayzThemePresets", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkR4SQ2GVD_cjs.fayzThemePresets; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "lightTheme", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkR4SQ2GVD_cjs.lightTheme; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "useTheme", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkR4SQ2GVD_cjs.useTheme; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "fayzUiPreset", {
|
|
37
37
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAiB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAMvH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gDAAgD;IAChD,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACrC,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;CAC1C;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,kBAAkB,GAgBjE,KAAK,CAAC,YAAY,CACtC;AAMD,wBAAgB,QAAQ;;;;;;;EAevB;AAMD,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAiB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAMvH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gDAAgD;IAChD,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACrC,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;CAC1C;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,kBAAkB,GAgBjE,KAAK,CAAC,YAAY,CACtC;AAMD,wBAAgB,QAAQ;;;;;;;EAevB;AAMD,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,WAAW,CA2BtE;AAGD,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/theme/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ThemeProvider, createFayzTheme, createTheme, darkTheme, fayzThemePresets, lightTheme, useTheme } from '../chunk-
|
|
1
|
+
export { ThemeProvider, createFayzTheme, createTheme, darkTheme, fayzThemePresets, lightTheme, useTheme } from '../chunk-DYMBFHD7.js';
|
|
2
2
|
export { fayzUiPreset } from '../chunk-IWBXYV4U.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"fayz": {
|
|
4
4
|
"status": "beta"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.8.
|
|
6
|
+
"version": "0.8.4",
|
|
7
7
|
"description": "Fayz SDK UI — Radix + Tailwind component library with CRUD engine and layout shells",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./dist/index.cjs",
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
"sonner": "^1.5.0",
|
|
85
85
|
"tailwind-merge": "^2.4.0",
|
|
86
86
|
"zustand": "^4.5.0",
|
|
87
|
-
"@fayz-ai/
|
|
88
|
-
"@fayz-ai/
|
|
87
|
+
"@fayz-ai/auth": "^0.8.4",
|
|
88
|
+
"@fayz-ai/core": "^0.8.4"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@types/react": "^18.3.0",
|
|
@@ -3,6 +3,7 @@ import { Check, Circle } from 'lucide-react'
|
|
|
3
3
|
import { cn } from '../utils/cn'
|
|
4
4
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '../primitives/card'
|
|
5
5
|
import { Button } from '../primitives/button'
|
|
6
|
+
import { Skeleton } from '../primitives/skeleton'
|
|
6
7
|
import { renderIcon } from './icon'
|
|
7
8
|
import type { IconRef } from './types'
|
|
8
9
|
|
|
@@ -30,6 +31,33 @@ export interface OnboardingWidgetProps {
|
|
|
30
31
|
className?: string
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
/** Placeholder mirroring the widget's layout while the async checks resolve. */
|
|
35
|
+
function OnboardingSkeleton({ rows, className }: { rows: number; className?: string }) {
|
|
36
|
+
return (
|
|
37
|
+
<Card className={className} aria-busy="true">
|
|
38
|
+
<CardHeader>
|
|
39
|
+
<Skeleton className="h-5 w-40" />
|
|
40
|
+
<Skeleton className="mt-1.5 h-3.5 w-64 max-w-full" />
|
|
41
|
+
<div className="mt-2 flex items-center gap-3">
|
|
42
|
+
<Skeleton className="h-1.5 flex-1 rounded-full" />
|
|
43
|
+
<Skeleton className="h-3 w-8" />
|
|
44
|
+
</div>
|
|
45
|
+
</CardHeader>
|
|
46
|
+
<CardContent className="space-y-1 pt-0">
|
|
47
|
+
{Array.from({ length: Math.max(rows, 1) }).map((_, i) => (
|
|
48
|
+
<div key={i} className="flex items-center gap-3 px-2 py-2.5">
|
|
49
|
+
<Skeleton className="h-7 w-7 shrink-0 rounded-full" />
|
|
50
|
+
<div className="min-w-0 flex-1 space-y-1.5">
|
|
51
|
+
<Skeleton className="h-3.5 w-1/2" />
|
|
52
|
+
<Skeleton className="h-3 w-3/4" />
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
))}
|
|
56
|
+
</CardContent>
|
|
57
|
+
</Card>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
33
61
|
/** Getting-started checklist ("first steps to set up") with progress. */
|
|
34
62
|
export function OnboardingWidget({
|
|
35
63
|
title = 'Getting started', subtitle, steps, onNavigate, hideWhenComplete = true, className,
|
|
@@ -37,6 +65,10 @@ export function OnboardingWidget({
|
|
|
37
65
|
const [completed, setCompleted] = React.useState<Record<string, boolean>>(() =>
|
|
38
66
|
Object.fromEntries(steps.map((s) => [s.id, Boolean(s.done)])),
|
|
39
67
|
)
|
|
68
|
+
// Async checks start unresolved: don't paint until they settle, or an
|
|
69
|
+
// already-onboarded tenant flashes the checklist for the query round-trip
|
|
70
|
+
// before allDone hides it (mount → visible 0/N → resolve → null).
|
|
71
|
+
const [resolved, setResolved] = React.useState(() => steps.every((s) => s.done != null || !s.check))
|
|
40
72
|
|
|
41
73
|
React.useEffect(() => {
|
|
42
74
|
let cancelled = false
|
|
@@ -44,12 +76,20 @@ export function OnboardingWidget({
|
|
|
44
76
|
if (s.done != null) return [s.id, s.done] as const
|
|
45
77
|
if (!s.check) return [s.id, false] as const
|
|
46
78
|
try { return [s.id, await s.check()] as const } catch { return [s.id, false] as const }
|
|
47
|
-
})).then((entries) => {
|
|
79
|
+
})).then((entries) => {
|
|
80
|
+
if (cancelled) return
|
|
81
|
+
setCompleted(Object.fromEntries(entries))
|
|
82
|
+
setResolved(true)
|
|
83
|
+
})
|
|
48
84
|
return () => { cancelled = true }
|
|
49
85
|
}, [steps])
|
|
50
86
|
|
|
51
87
|
const doneCount = steps.filter((s) => completed[s.id]).length
|
|
52
88
|
const allDone = doneCount === steps.length
|
|
89
|
+
// Hold the card's real shape while the checks settle. Painting the resolved
|
|
90
|
+
// checklist here would flash 0/N at an already-onboarded tenant, and painting
|
|
91
|
+
// nothing collapsed the row and shifted the dashboard on resolve.
|
|
92
|
+
if (!resolved) return <OnboardingSkeleton rows={steps.length} className={className} />
|
|
53
93
|
if (allDone && hideWhenComplete) return null
|
|
54
94
|
|
|
55
95
|
const runAction = (action: OnboardingStepInput['action']) => {
|