@streamoid/settings 0.4.2 → 0.4.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/index.d.mts +129 -39
- package/dist/index.d.ts +129 -39
- package/dist/index.js +550 -334
- package/dist/index.mjs +550 -334
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -20,11 +20,13 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
+
APP_KEYS: () => APP_KEYS,
|
|
23
24
|
BillingContent: () => BillingContent,
|
|
24
25
|
BuyCreditsModal: () => BuyCreditsModal,
|
|
25
26
|
ConfirmDeleteModal: () => ConfirmDeleteModal,
|
|
26
27
|
ConfirmLeaveModal: () => ConfirmLeaveModal,
|
|
27
28
|
DEFAULT_PERMISSIONS: () => DEFAULT_PERMISSIONS,
|
|
29
|
+
DEFAULT_USER_LANGUAGE: () => DEFAULT_USER_LANGUAGE,
|
|
28
30
|
ExportDateModal: () => ExportDateModal,
|
|
29
31
|
InviteUpdateModal: () => InviteUpdateModal,
|
|
30
32
|
MemberListFrame: () => MemberListFrame,
|
|
@@ -49,13 +51,15 @@ __export(index_exports, {
|
|
|
49
51
|
TeamsContent: () => TeamsContent,
|
|
50
52
|
TokensContent: () => TokensContent,
|
|
51
53
|
URL_TO_TAB: () => URL_TO_TAB,
|
|
54
|
+
USER_LANGUAGES: () => USER_LANGUAGES,
|
|
52
55
|
WorkspaceGeneralTab: () => WorkspaceGeneralTab,
|
|
53
56
|
WorkspaceListTab: () => WorkspaceListTab,
|
|
54
57
|
WorkspaceModal: () => WorkspaceModal,
|
|
55
58
|
WorkspaceTab: () => WorkspaceTab,
|
|
56
59
|
countLabel: () => countLabel,
|
|
57
60
|
resolveSettingsTabFromPath: () => resolveSettingsTabFromPath,
|
|
58
|
-
useSettingsAdapters: () => useSettingsAdapters
|
|
61
|
+
useSettingsAdapters: () => useSettingsAdapters,
|
|
62
|
+
userLanguageLabel: () => userLanguageLabel
|
|
59
63
|
});
|
|
60
64
|
module.exports = __toCommonJS(index_exports);
|
|
61
65
|
|
|
@@ -90,6 +94,27 @@ var SiconKey = ({ color = "currentColor", strokeWidth = 1.25, size = 24, ...prop
|
|
|
90
94
|
};
|
|
91
95
|
var SiconKey_default = SiconKey;
|
|
92
96
|
|
|
97
|
+
// src/languages.ts
|
|
98
|
+
var USER_LANGUAGES = [
|
|
99
|
+
{ code: "en", label: "English" },
|
|
100
|
+
{ code: "es", label: "Spanish" },
|
|
101
|
+
{ code: "fr", label: "French" },
|
|
102
|
+
{ code: "pt", label: "Portuguese" },
|
|
103
|
+
{ code: "hi", label: "Hindi" },
|
|
104
|
+
{ code: "kn", label: "Kannada" },
|
|
105
|
+
{ code: "te", label: "Telugu" },
|
|
106
|
+
{ code: "ta", label: "Tamil" },
|
|
107
|
+
{ code: "mr", label: "Marathi" },
|
|
108
|
+
{ code: "gu", label: "Gujarati" },
|
|
109
|
+
{ code: "bn", label: "Bengali" },
|
|
110
|
+
{ code: "ar", label: "Arabic" }
|
|
111
|
+
];
|
|
112
|
+
var DEFAULT_USER_LANGUAGE = "en";
|
|
113
|
+
function userLanguageLabel(code) {
|
|
114
|
+
const resolved = (code || "").trim() || DEFAULT_USER_LANGUAGE;
|
|
115
|
+
return USER_LANGUAGES.find((lang) => lang.code === resolved)?.label ?? resolved;
|
|
116
|
+
}
|
|
117
|
+
|
|
93
118
|
// src/workspace-modal.tsx
|
|
94
119
|
var import_react3 = require("react");
|
|
95
120
|
|
|
@@ -2426,6 +2451,24 @@ var svg_rodctpja6f_default = {
|
|
|
2426
2451
|
p83fc200: "M2.25 12.25C2.25 6.72715 6.72715 2.25 12.25 2.25C17.7728 2.25 22.25 6.72715 22.25 12.25C22.25 17.7728 17.7728 22.25 12.25 22.25C6.72715 22.25 2.25 17.7728 2.25 12.25Z"
|
|
2427
2452
|
};
|
|
2428
2453
|
|
|
2454
|
+
// src/team-types.ts
|
|
2455
|
+
var APP_KEYS = [
|
|
2456
|
+
"artifax",
|
|
2457
|
+
"photogenix",
|
|
2458
|
+
"returns",
|
|
2459
|
+
"catalogix"
|
|
2460
|
+
];
|
|
2461
|
+
var DEFAULT_PERMISSIONS = {
|
|
2462
|
+
artifax: true,
|
|
2463
|
+
photogenix: true,
|
|
2464
|
+
catalogix: true,
|
|
2465
|
+
returns: true,
|
|
2466
|
+
canUseCredits: true,
|
|
2467
|
+
canInviteUser: true,
|
|
2468
|
+
role: "admin",
|
|
2469
|
+
catalogixStores: []
|
|
2470
|
+
};
|
|
2471
|
+
|
|
2429
2472
|
// src/invite-update-modal.tsx
|
|
2430
2473
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2431
2474
|
var T6 = {
|
|
@@ -2532,6 +2575,7 @@ function InviteUpdateModal({
|
|
|
2532
2575
|
mode,
|
|
2533
2576
|
userEmail = "email@domain.in",
|
|
2534
2577
|
stores = [],
|
|
2578
|
+
hiddenApps = [],
|
|
2535
2579
|
allowSubmitWithoutChanges = false,
|
|
2536
2580
|
initialPermissions,
|
|
2537
2581
|
onClose,
|
|
@@ -2546,25 +2590,35 @@ function InviteUpdateModal({
|
|
|
2546
2590
|
const [role, setRole] = (0, import_react7.useState)("admin");
|
|
2547
2591
|
const [canUseCredits, setCanUseCredits] = (0, import_react7.useState)(false);
|
|
2548
2592
|
const [canInviteUser, setCanInviteUser] = (0, import_react7.useState)(false);
|
|
2549
|
-
const [artifaxOn, setArtifaxOn] = (0, import_react7.useState)(
|
|
2550
|
-
const [photogenixOn, setPhotogenixOn] = (0, import_react7.useState)(
|
|
2551
|
-
|
|
2552
|
-
|
|
2593
|
+
const [artifaxOn, setArtifaxOn] = (0, import_react7.useState)(!hiddenApps.includes("artifax"));
|
|
2594
|
+
const [photogenixOn, setPhotogenixOn] = (0, import_react7.useState)(
|
|
2595
|
+
!hiddenApps.includes("photogenix")
|
|
2596
|
+
);
|
|
2597
|
+
const [catalogixOn, setCatalogixOn] = (0, import_react7.useState)(
|
|
2598
|
+
!hiddenApps.includes("catalogix")
|
|
2599
|
+
);
|
|
2600
|
+
const [returnsOn, setReturnsOn] = (0, import_react7.useState)(!hiddenApps.includes("returns"));
|
|
2553
2601
|
const [storeSearch, setStoreSearch] = (0, import_react7.useState)("");
|
|
2554
2602
|
const [selectedStores, setSelectedStores] = (0, import_react7.useState)(/* @__PURE__ */ new Set());
|
|
2555
2603
|
const filteredStores = stores.filter(
|
|
2556
2604
|
(s) => (s.name || s._id).toLowerCase().includes(storeSearch.toLowerCase())
|
|
2557
2605
|
);
|
|
2606
|
+
const hiddenKey = [...hiddenApps].sort().join(",");
|
|
2558
2607
|
(0, import_react7.useEffect)(() => {
|
|
2608
|
+
const hidden = new Set(hiddenKey ? hiddenKey.split(",") : []);
|
|
2559
2609
|
if (open && initialPermissions) {
|
|
2560
2610
|
setRole(initialPermissions.role);
|
|
2561
2611
|
setCanUseCredits(initialPermissions.canUseCredits);
|
|
2562
2612
|
setCanInviteUser(initialPermissions.canInviteUser);
|
|
2563
|
-
setArtifaxOn(initialPermissions.artifax);
|
|
2564
|
-
setPhotogenixOn(
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2613
|
+
setArtifaxOn(!hidden.has("artifax") && initialPermissions.artifax);
|
|
2614
|
+
setPhotogenixOn(
|
|
2615
|
+
!hidden.has("photogenix") && initialPermissions.photogenix
|
|
2616
|
+
);
|
|
2617
|
+
setCatalogixOn(!hidden.has("catalogix") && initialPermissions.catalogix);
|
|
2618
|
+
setReturnsOn(!hidden.has("returns") && initialPermissions.returns);
|
|
2619
|
+
setSelectedStores(
|
|
2620
|
+
new Set(hidden.has("catalogix") ? [] : initialPermissions.catalogixStores)
|
|
2621
|
+
);
|
|
2568
2622
|
}
|
|
2569
2623
|
if (!open) {
|
|
2570
2624
|
setEmailValue("");
|
|
@@ -2572,21 +2626,32 @@ function InviteUpdateModal({
|
|
|
2572
2626
|
setRole("admin");
|
|
2573
2627
|
setCanUseCredits(true);
|
|
2574
2628
|
setCanInviteUser(true);
|
|
2575
|
-
setArtifaxOn(
|
|
2576
|
-
setPhotogenixOn(
|
|
2577
|
-
setCatalogixOn(
|
|
2578
|
-
setReturnsOn(
|
|
2629
|
+
setArtifaxOn(!hidden.has("artifax"));
|
|
2630
|
+
setPhotogenixOn(!hidden.has("photogenix"));
|
|
2631
|
+
setCatalogixOn(!hidden.has("catalogix"));
|
|
2632
|
+
setReturnsOn(!hidden.has("returns"));
|
|
2579
2633
|
setStoreSearch("");
|
|
2580
2634
|
setSelectedStores(/* @__PURE__ */ new Set());
|
|
2581
2635
|
}
|
|
2582
|
-
}, [open, initialPermissions]);
|
|
2636
|
+
}, [open, initialPermissions, hiddenKey]);
|
|
2583
2637
|
if (!open) return null;
|
|
2584
2638
|
const isInvite = mode === "invite";
|
|
2585
2639
|
const hasEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailValue.trim());
|
|
2586
|
-
const isSubmitDisabled = isInvite ? !hasEmail : !(allowSubmitWithoutChanges || hasChanges);
|
|
2587
2640
|
function markChanged() {
|
|
2588
2641
|
setHasChanges(true);
|
|
2589
2642
|
}
|
|
2643
|
+
const shownApps = APP_KEYS.filter((key) => !hiddenApps.includes(key));
|
|
2644
|
+
const showsApp = (key) => shownApps.includes(key);
|
|
2645
|
+
const appToggles = {
|
|
2646
|
+
artifax: artifaxOn,
|
|
2647
|
+
photogenix: photogenixOn,
|
|
2648
|
+
returns: returnsOn,
|
|
2649
|
+
catalogix: catalogixOn
|
|
2650
|
+
};
|
|
2651
|
+
const notLastShown = (key) => shownApps[shownApps.length - 1] !== key;
|
|
2652
|
+
const appValue = (key) => role === "admin" || showsApp(key) ? appToggles[key] : false;
|
|
2653
|
+
const grantsNoApp = role === "member" && shownApps.length > 0 && !shownApps.some((key) => appToggles[key]);
|
|
2654
|
+
const isSubmitDisabled = isInvite ? !hasEmail || grantsNoApp : !(allowSubmitWithoutChanges || hasChanges);
|
|
2590
2655
|
function toggleStore(storeId) {
|
|
2591
2656
|
setSelectedStores((prev) => {
|
|
2592
2657
|
const next = new Set(prev);
|
|
@@ -2944,7 +3009,7 @@ function InviteUpdateModal({
|
|
|
2944
3009
|
]
|
|
2945
3010
|
}
|
|
2946
3011
|
),
|
|
2947
|
-
role !== "admin" && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3012
|
+
role !== "admin" && shownApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2948
3013
|
"div",
|
|
2949
3014
|
{
|
|
2950
3015
|
className: "flex flex-col items-start justify-center shrink-0 w-full",
|
|
@@ -2960,8 +3025,8 @@ function InviteUpdateModal({
|
|
|
2960
3025
|
borderRadius: T6.r3xl
|
|
2961
3026
|
},
|
|
2962
3027
|
children: [
|
|
2963
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "shrink-0 w-full relative", children: [
|
|
2964
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3028
|
+
showsApp("artifax") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "shrink-0 w-full relative", children: [
|
|
3029
|
+
notLastShown("artifax") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2965
3030
|
"div",
|
|
2966
3031
|
{
|
|
2967
3032
|
"aria-hidden": true,
|
|
@@ -3054,9 +3119,9 @@ function InviteUpdateModal({
|
|
|
3054
3119
|
]
|
|
3055
3120
|
}
|
|
3056
3121
|
) })
|
|
3057
|
-
] }),
|
|
3058
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "shrink-0 w-full relative", children: [
|
|
3059
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3122
|
+
] }) }),
|
|
3123
|
+
showsApp("photogenix") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "shrink-0 w-full relative", children: [
|
|
3124
|
+
notLastShown("photogenix") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3060
3125
|
"div",
|
|
3061
3126
|
{
|
|
3062
3127
|
"aria-hidden": true,
|
|
@@ -3149,234 +3214,179 @@ function InviteUpdateModal({
|
|
|
3149
3214
|
]
|
|
3150
3215
|
}
|
|
3151
3216
|
) })
|
|
3152
|
-
] }),
|
|
3153
|
-
|
|
3217
|
+
] }) }),
|
|
3218
|
+
showsApp("returns") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3154
3219
|
"div",
|
|
3155
3220
|
{
|
|
3156
|
-
className: "
|
|
3157
|
-
style: {
|
|
3158
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.
|
|
3221
|
+
className: "shrink-0 w-full",
|
|
3222
|
+
style: notLastShown("returns") ? { borderBottom: `1px solid ${T6.borderSubtle}` } : void 0,
|
|
3223
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "flex flex-col justify-center size-full", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3159
3224
|
"div",
|
|
3160
3225
|
{
|
|
3161
|
-
className: "flex items-
|
|
3162
|
-
style: { gap: T6.sp3xl },
|
|
3163
|
-
children:
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
padding: T6.spMd
|
|
3178
|
-
},
|
|
3179
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3180
|
-
import_icons3.SiconArrowLeftRight,
|
|
3226
|
+
className: "flex flex-col items-start justify-center w-full",
|
|
3227
|
+
style: { padding: T6.sp3xl, gap: T6.sp3xl },
|
|
3228
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3229
|
+
"div",
|
|
3230
|
+
{
|
|
3231
|
+
className: "flex items-center shrink-0 w-full",
|
|
3232
|
+
style: { gap: T6.sp3xl },
|
|
3233
|
+
children: [
|
|
3234
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3235
|
+
"div",
|
|
3236
|
+
{
|
|
3237
|
+
className: "flex flex-1 min-w-0 items-center",
|
|
3238
|
+
style: { gap: T6.spXl },
|
|
3239
|
+
children: [
|
|
3240
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3241
|
+
"div",
|
|
3181
3242
|
{
|
|
3182
|
-
className: "
|
|
3183
|
-
|
|
3243
|
+
className: "shrink-0 flex items-center",
|
|
3244
|
+
style: {
|
|
3245
|
+
background: T6.fillHover,
|
|
3246
|
+
borderRadius: T6.rXl,
|
|
3247
|
+
padding: T6.spMd
|
|
3248
|
+
},
|
|
3249
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3250
|
+
import_icons3.SiconArrowLeftRight,
|
|
3251
|
+
{
|
|
3252
|
+
className: "w-6 h-6",
|
|
3253
|
+
color: T6.primary
|
|
3254
|
+
}
|
|
3255
|
+
)
|
|
3256
|
+
}
|
|
3257
|
+
),
|
|
3258
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3259
|
+
"div",
|
|
3260
|
+
{
|
|
3261
|
+
className: "flex flex-1 min-w-0 flex-col items-start overflow-hidden text-ellipsis whitespace-nowrap",
|
|
3262
|
+
style: { opacity: returnsOn ? 1 : 0.5 },
|
|
3263
|
+
children: [
|
|
3264
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3265
|
+
"p",
|
|
3266
|
+
{
|
|
3267
|
+
className: "w-full overflow-hidden shrink-0",
|
|
3268
|
+
style: {
|
|
3269
|
+
fontFamily: T6.font,
|
|
3270
|
+
fontSize: T6.fsSm,
|
|
3271
|
+
fontWeight: 500,
|
|
3272
|
+
lineHeight: T6.lhSm,
|
|
3273
|
+
color: T6.primary
|
|
3274
|
+
},
|
|
3275
|
+
children: "Returns"
|
|
3276
|
+
}
|
|
3277
|
+
),
|
|
3278
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3279
|
+
"p",
|
|
3280
|
+
{
|
|
3281
|
+
className: "w-full overflow-hidden shrink-0",
|
|
3282
|
+
style: {
|
|
3283
|
+
fontFamily: T6.font,
|
|
3284
|
+
fontSize: T6.fsXs,
|
|
3285
|
+
fontWeight: 400,
|
|
3286
|
+
lineHeight: T6.lhXs,
|
|
3287
|
+
color: T6.tertiary
|
|
3288
|
+
},
|
|
3289
|
+
children: "Raise SPF claims for Marketplaces"
|
|
3290
|
+
}
|
|
3291
|
+
)
|
|
3292
|
+
]
|
|
3184
3293
|
}
|
|
3185
3294
|
)
|
|
3295
|
+
]
|
|
3296
|
+
}
|
|
3297
|
+
),
|
|
3298
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3299
|
+
ToggleSwitch,
|
|
3300
|
+
{
|
|
3301
|
+
active: returnsOn,
|
|
3302
|
+
onClick: () => {
|
|
3303
|
+
setReturnsOn(!returnsOn);
|
|
3304
|
+
markChanged();
|
|
3186
3305
|
}
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
style: { opacity: returnsOn ? 1 : 0.5 },
|
|
3193
|
-
children: [
|
|
3194
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3195
|
-
"p",
|
|
3196
|
-
{
|
|
3197
|
-
className: "w-full overflow-hidden shrink-0",
|
|
3198
|
-
style: {
|
|
3199
|
-
fontFamily: T6.font,
|
|
3200
|
-
fontSize: T6.fsSm,
|
|
3201
|
-
fontWeight: 500,
|
|
3202
|
-
lineHeight: T6.lhSm,
|
|
3203
|
-
color: T6.primary
|
|
3204
|
-
},
|
|
3205
|
-
children: "Returns"
|
|
3206
|
-
}
|
|
3207
|
-
),
|
|
3208
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3209
|
-
"p",
|
|
3210
|
-
{
|
|
3211
|
-
className: "w-full overflow-hidden shrink-0",
|
|
3212
|
-
style: {
|
|
3213
|
-
fontFamily: T6.font,
|
|
3214
|
-
fontSize: T6.fsXs,
|
|
3215
|
-
fontWeight: 400,
|
|
3216
|
-
lineHeight: T6.lhXs,
|
|
3217
|
-
color: T6.tertiary
|
|
3218
|
-
},
|
|
3219
|
-
children: "Raise SPF claims for Marketplaces"
|
|
3220
|
-
}
|
|
3221
|
-
)
|
|
3222
|
-
]
|
|
3223
|
-
}
|
|
3224
|
-
)
|
|
3225
|
-
]
|
|
3226
|
-
}
|
|
3227
|
-
),
|
|
3228
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3229
|
-
ToggleSwitch,
|
|
3230
|
-
{
|
|
3231
|
-
active: returnsOn,
|
|
3232
|
-
onClick: () => {
|
|
3233
|
-
setReturnsOn(!returnsOn);
|
|
3234
|
-
markChanged();
|
|
3235
|
-
}
|
|
3236
|
-
}
|
|
3237
|
-
)
|
|
3238
|
-
]
|
|
3306
|
+
}
|
|
3307
|
+
)
|
|
3308
|
+
]
|
|
3309
|
+
}
|
|
3310
|
+
)
|
|
3239
3311
|
}
|
|
3240
|
-
)
|
|
3312
|
+
) })
|
|
3241
3313
|
}
|
|
3242
|
-
) })
|
|
3243
|
-
|
|
3314
|
+
) }),
|
|
3315
|
+
showsApp("catalogix") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3244
3316
|
"div",
|
|
3245
3317
|
{
|
|
3246
|
-
className: "
|
|
3247
|
-
style: {
|
|
3248
|
-
children:
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3256
|
-
"div",
|
|
3257
|
-
{
|
|
3258
|
-
className: "flex flex-1 min-w-0 items-center",
|
|
3259
|
-
style: { gap: T6.spXl },
|
|
3260
|
-
children: [
|
|
3261
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3262
|
-
"div",
|
|
3263
|
-
{
|
|
3264
|
-
className: "shrink-0 flex items-center",
|
|
3265
|
-
style: {
|
|
3266
|
-
background: T6.fillHover,
|
|
3267
|
-
borderRadius: T6.rXl,
|
|
3268
|
-
padding: T6.spMd
|
|
3269
|
-
},
|
|
3270
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3271
|
-
import_icons3.SiconArtifacts,
|
|
3272
|
-
{
|
|
3273
|
-
className: "w-6 h-6",
|
|
3274
|
-
color: T6.primary
|
|
3275
|
-
}
|
|
3276
|
-
)
|
|
3277
|
-
}
|
|
3278
|
-
),
|
|
3279
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3280
|
-
"div",
|
|
3281
|
-
{
|
|
3282
|
-
className: "flex flex-1 min-w-0 flex-col items-start overflow-hidden text-ellipsis whitespace-nowrap",
|
|
3283
|
-
style: { opacity: catalogixOn ? 1 : 0.5 },
|
|
3284
|
-
children: [
|
|
3285
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3286
|
-
"p",
|
|
3287
|
-
{
|
|
3288
|
-
className: "w-full overflow-hidden shrink-0",
|
|
3289
|
-
style: {
|
|
3290
|
-
fontFamily: T6.font,
|
|
3291
|
-
fontSize: T6.fsSm,
|
|
3292
|
-
fontWeight: 500,
|
|
3293
|
-
lineHeight: T6.lhSm,
|
|
3294
|
-
color: T6.primary
|
|
3295
|
-
},
|
|
3296
|
-
children: "Catalogix"
|
|
3297
|
-
}
|
|
3298
|
-
),
|
|
3299
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3300
|
-
"p",
|
|
3301
|
-
{
|
|
3302
|
-
className: "w-full overflow-hidden shrink-0",
|
|
3303
|
-
style: {
|
|
3304
|
-
fontFamily: T6.font,
|
|
3305
|
-
fontSize: T6.fsXs,
|
|
3306
|
-
fontWeight: 400,
|
|
3307
|
-
lineHeight: T6.lhXs,
|
|
3308
|
-
color: T6.tertiary
|
|
3309
|
-
},
|
|
3310
|
-
children: "Centralized product and asset management for every storefront"
|
|
3311
|
-
}
|
|
3312
|
-
)
|
|
3313
|
-
]
|
|
3314
|
-
}
|
|
3315
|
-
)
|
|
3316
|
-
]
|
|
3317
|
-
}
|
|
3318
|
-
),
|
|
3319
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3320
|
-
ToggleSwitch,
|
|
3321
|
-
{
|
|
3322
|
-
active: catalogixOn,
|
|
3323
|
-
onClick: () => {
|
|
3324
|
-
setCatalogixOn(!catalogixOn);
|
|
3325
|
-
markChanged();
|
|
3326
|
-
}
|
|
3327
|
-
}
|
|
3328
|
-
)
|
|
3329
|
-
]
|
|
3330
|
-
}
|
|
3331
|
-
),
|
|
3332
|
-
catalogixOn && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3333
|
-
"div",
|
|
3334
|
-
{
|
|
3335
|
-
className: "shrink-0 w-full",
|
|
3336
|
-
style: {
|
|
3337
|
-
background: T6.canvasBase,
|
|
3338
|
-
borderRadius: T6.r3xl
|
|
3339
|
-
},
|
|
3340
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3318
|
+
className: "shrink-0 w-full",
|
|
3319
|
+
style: notLastShown("catalogix") ? { borderBottom: `1px solid ${T6.borderSubtle}` } : void 0,
|
|
3320
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "flex flex-col justify-center size-full", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3321
|
+
"div",
|
|
3322
|
+
{
|
|
3323
|
+
className: "flex flex-col items-start justify-center w-full",
|
|
3324
|
+
style: { padding: T6.sp3xl, gap: T6.sp3xl },
|
|
3325
|
+
children: [
|
|
3326
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3341
3327
|
"div",
|
|
3342
3328
|
{
|
|
3343
|
-
className: "flex
|
|
3344
|
-
style: {
|
|
3329
|
+
className: "flex items-center shrink-0 w-full",
|
|
3330
|
+
style: { gap: T6.sp3xl },
|
|
3345
3331
|
children: [
|
|
3346
3332
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3347
3333
|
"div",
|
|
3348
3334
|
{
|
|
3349
|
-
className: "flex
|
|
3350
|
-
style: { gap: T6.
|
|
3335
|
+
className: "flex flex-1 min-w-0 items-center",
|
|
3336
|
+
style: { gap: T6.spXl },
|
|
3351
3337
|
children: [
|
|
3352
3338
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3353
|
-
"
|
|
3339
|
+
"div",
|
|
3354
3340
|
{
|
|
3355
|
-
className: "
|
|
3341
|
+
className: "shrink-0 flex items-center",
|
|
3356
3342
|
style: {
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
lineHeight: T6.lhSm,
|
|
3361
|
-
color: T6.primary
|
|
3343
|
+
background: T6.fillHover,
|
|
3344
|
+
borderRadius: T6.rXl,
|
|
3345
|
+
padding: T6.spMd
|
|
3362
3346
|
},
|
|
3363
|
-
children:
|
|
3347
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3348
|
+
import_icons3.SiconArtifacts,
|
|
3349
|
+
{
|
|
3350
|
+
className: "w-6 h-6",
|
|
3351
|
+
color: T6.primary
|
|
3352
|
+
}
|
|
3353
|
+
)
|
|
3364
3354
|
}
|
|
3365
3355
|
),
|
|
3366
3356
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3367
|
-
"
|
|
3357
|
+
"div",
|
|
3368
3358
|
{
|
|
3369
|
-
className: "
|
|
3370
|
-
style: {
|
|
3371
|
-
fontFamily: T6.font,
|
|
3372
|
-
fontSize: T6.fsXs,
|
|
3373
|
-
fontWeight: 400,
|
|
3374
|
-
lineHeight: T6.lhXs,
|
|
3375
|
-
color: T6.muted
|
|
3376
|
-
},
|
|
3359
|
+
className: "flex flex-1 min-w-0 flex-col items-start overflow-hidden text-ellipsis whitespace-nowrap",
|
|
3360
|
+
style: { opacity: catalogixOn ? 1 : 0.5 },
|
|
3377
3361
|
children: [
|
|
3378
|
-
|
|
3379
|
-
|
|
3362
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3363
|
+
"p",
|
|
3364
|
+
{
|
|
3365
|
+
className: "w-full overflow-hidden shrink-0",
|
|
3366
|
+
style: {
|
|
3367
|
+
fontFamily: T6.font,
|
|
3368
|
+
fontSize: T6.fsSm,
|
|
3369
|
+
fontWeight: 500,
|
|
3370
|
+
lineHeight: T6.lhSm,
|
|
3371
|
+
color: T6.primary
|
|
3372
|
+
},
|
|
3373
|
+
children: "Catalogix"
|
|
3374
|
+
}
|
|
3375
|
+
),
|
|
3376
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3377
|
+
"p",
|
|
3378
|
+
{
|
|
3379
|
+
className: "w-full overflow-hidden shrink-0",
|
|
3380
|
+
style: {
|
|
3381
|
+
fontFamily: T6.font,
|
|
3382
|
+
fontSize: T6.fsXs,
|
|
3383
|
+
fontWeight: 400,
|
|
3384
|
+
lineHeight: T6.lhXs,
|
|
3385
|
+
color: T6.tertiary
|
|
3386
|
+
},
|
|
3387
|
+
children: "Centralized product and asset management for every storefront"
|
|
3388
|
+
}
|
|
3389
|
+
)
|
|
3380
3390
|
]
|
|
3381
3391
|
}
|
|
3382
3392
|
)
|
|
@@ -3384,27 +3394,42 @@ function InviteUpdateModal({
|
|
|
3384
3394
|
}
|
|
3385
3395
|
),
|
|
3386
3396
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3387
|
-
|
|
3397
|
+
ToggleSwitch,
|
|
3388
3398
|
{
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3399
|
+
active: catalogixOn,
|
|
3400
|
+
onClick: () => {
|
|
3401
|
+
setCatalogixOn(!catalogixOn);
|
|
3402
|
+
markChanged();
|
|
3403
|
+
}
|
|
3404
|
+
}
|
|
3405
|
+
)
|
|
3406
|
+
]
|
|
3407
|
+
}
|
|
3408
|
+
),
|
|
3409
|
+
catalogixOn && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3410
|
+
"div",
|
|
3411
|
+
{
|
|
3412
|
+
className: "shrink-0 w-full",
|
|
3413
|
+
style: {
|
|
3414
|
+
background: T6.canvasBase,
|
|
3415
|
+
borderRadius: T6.r3xl
|
|
3416
|
+
},
|
|
3417
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3418
|
+
"div",
|
|
3419
|
+
{
|
|
3420
|
+
className: "flex flex-col items-start w-full",
|
|
3421
|
+
style: { padding: T6.sp3xl, gap: T6.spMd },
|
|
3422
|
+
children: [
|
|
3423
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3396
3424
|
"div",
|
|
3397
3425
|
{
|
|
3398
|
-
className: "flex items-center
|
|
3399
|
-
style: {
|
|
3400
|
-
padding: T6.spXl,
|
|
3401
|
-
gap: T6.sp3xl
|
|
3402
|
-
},
|
|
3426
|
+
className: "flex items-center justify-center shrink-0 w-full",
|
|
3427
|
+
style: { gap: T6.spMd },
|
|
3403
3428
|
children: [
|
|
3404
3429
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3405
|
-
"
|
|
3430
|
+
"p",
|
|
3406
3431
|
{
|
|
3407
|
-
className: "flex-1 min-w-0
|
|
3432
|
+
className: "flex-1 min-w-0 overflow-hidden whitespace-nowrap",
|
|
3408
3433
|
style: {
|
|
3409
3434
|
fontFamily: T6.font,
|
|
3410
3435
|
fontSize: T6.fsSm,
|
|
@@ -3412,97 +3437,153 @@ function InviteUpdateModal({
|
|
|
3412
3437
|
lineHeight: T6.lhSm,
|
|
3413
3438
|
color: T6.primary
|
|
3414
3439
|
},
|
|
3415
|
-
|
|
3416
|
-
value: storeSearch,
|
|
3417
|
-
onChange: (e) => setStoreSearch(e.target.value)
|
|
3440
|
+
children: "Store access"
|
|
3418
3441
|
}
|
|
3419
3442
|
),
|
|
3420
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.
|
|
3421
|
-
import_icons3.SiconSearch,
|
|
3422
|
-
{
|
|
3423
|
-
className: "w-6 h-6",
|
|
3424
|
-
color: T6.primary
|
|
3425
|
-
}
|
|
3426
|
-
)
|
|
3427
|
-
]
|
|
3428
|
-
}
|
|
3429
|
-
) })
|
|
3430
|
-
}
|
|
3431
|
-
),
|
|
3432
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3433
|
-
"div",
|
|
3434
|
-
{
|
|
3435
|
-
className: "shrink-0 w-full",
|
|
3436
|
-
style: {
|
|
3437
|
-
background: T6.fillPlus,
|
|
3438
|
-
borderRadius: T6.r3xl
|
|
3439
|
-
},
|
|
3440
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3441
|
-
"div",
|
|
3442
|
-
{
|
|
3443
|
-
className: "flex flex-col items-start w-full",
|
|
3444
|
-
style: {
|
|
3445
|
-
padding: T6.sp3xl,
|
|
3446
|
-
gap: T6.spXl
|
|
3447
|
-
},
|
|
3448
|
-
children: [
|
|
3449
|
-
filteredStores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3450
|
-
"div",
|
|
3451
|
-
{
|
|
3452
|
-
className: "flex items-center shrink-0 w-full cursor-pointer",
|
|
3453
|
-
style: { gap: T6.spMd },
|
|
3454
|
-
onClick: () => toggleStore(store._id),
|
|
3455
|
-
children: [
|
|
3456
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3457
|
-
"p",
|
|
3458
|
-
{
|
|
3459
|
-
className: "flex-1 min-w-0",
|
|
3460
|
-
style: {
|
|
3461
|
-
fontFamily: T6.font,
|
|
3462
|
-
fontSize: T6.fsSm,
|
|
3463
|
-
fontWeight: 400,
|
|
3464
|
-
lineHeight: T6.lhSm,
|
|
3465
|
-
color: T6.primary
|
|
3466
|
-
},
|
|
3467
|
-
children: store.name || store._id
|
|
3468
|
-
}
|
|
3469
|
-
),
|
|
3470
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3471
|
-
CheckboxSvg,
|
|
3472
|
-
{
|
|
3473
|
-
checked: selectedStores.has(store._id)
|
|
3474
|
-
}
|
|
3475
|
-
)
|
|
3476
|
-
]
|
|
3477
|
-
},
|
|
3478
|
-
store._id
|
|
3479
|
-
)),
|
|
3480
|
-
filteredStores.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3443
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3481
3444
|
"p",
|
|
3482
3445
|
{
|
|
3446
|
+
className: "shrink-0 overflow-hidden text-right",
|
|
3483
3447
|
style: {
|
|
3484
3448
|
fontFamily: T6.font,
|
|
3485
|
-
fontSize: T6.
|
|
3449
|
+
fontSize: T6.fsXs,
|
|
3486
3450
|
fontWeight: 400,
|
|
3487
|
-
lineHeight: T6.
|
|
3451
|
+
lineHeight: T6.lhXs,
|
|
3488
3452
|
color: T6.muted
|
|
3489
3453
|
},
|
|
3490
|
-
children:
|
|
3454
|
+
children: [
|
|
3455
|
+
selectedStores.size,
|
|
3456
|
+
" Selected"
|
|
3457
|
+
]
|
|
3491
3458
|
}
|
|
3492
3459
|
)
|
|
3493
3460
|
]
|
|
3494
3461
|
}
|
|
3462
|
+
),
|
|
3463
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3464
|
+
"div",
|
|
3465
|
+
{
|
|
3466
|
+
className: "shrink-0 w-full",
|
|
3467
|
+
style: {
|
|
3468
|
+
background: T6.fillPlus,
|
|
3469
|
+
height: 48,
|
|
3470
|
+
borderRadius: T6.r3xl
|
|
3471
|
+
},
|
|
3472
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "flex flex-row items-center size-full", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3473
|
+
"div",
|
|
3474
|
+
{
|
|
3475
|
+
className: "flex items-center relative size-full",
|
|
3476
|
+
style: {
|
|
3477
|
+
padding: T6.spXl,
|
|
3478
|
+
gap: T6.sp3xl
|
|
3479
|
+
},
|
|
3480
|
+
children: [
|
|
3481
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3482
|
+
"input",
|
|
3483
|
+
{
|
|
3484
|
+
className: "flex-1 min-w-0 bg-transparent border-none outline-none",
|
|
3485
|
+
style: {
|
|
3486
|
+
fontFamily: T6.font,
|
|
3487
|
+
fontSize: T6.fsSm,
|
|
3488
|
+
fontWeight: 400,
|
|
3489
|
+
lineHeight: T6.lhSm,
|
|
3490
|
+
color: T6.primary
|
|
3491
|
+
},
|
|
3492
|
+
placeholder: "Search stores...",
|
|
3493
|
+
value: storeSearch,
|
|
3494
|
+
onChange: (e) => setStoreSearch(e.target.value)
|
|
3495
|
+
}
|
|
3496
|
+
),
|
|
3497
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3498
|
+
import_icons3.SiconSearch,
|
|
3499
|
+
{
|
|
3500
|
+
className: "w-6 h-6",
|
|
3501
|
+
color: T6.primary
|
|
3502
|
+
}
|
|
3503
|
+
)
|
|
3504
|
+
]
|
|
3505
|
+
}
|
|
3506
|
+
) })
|
|
3507
|
+
}
|
|
3508
|
+
),
|
|
3509
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3510
|
+
"div",
|
|
3511
|
+
{
|
|
3512
|
+
className: "shrink-0 w-full",
|
|
3513
|
+
style: {
|
|
3514
|
+
background: T6.fillPlus,
|
|
3515
|
+
borderRadius: T6.r3xl
|
|
3516
|
+
},
|
|
3517
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3518
|
+
"div",
|
|
3519
|
+
{
|
|
3520
|
+
className: "flex flex-col items-start w-full",
|
|
3521
|
+
style: {
|
|
3522
|
+
padding: T6.sp3xl,
|
|
3523
|
+
gap: T6.spXl
|
|
3524
|
+
},
|
|
3525
|
+
children: [
|
|
3526
|
+
filteredStores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
3527
|
+
"div",
|
|
3528
|
+
{
|
|
3529
|
+
className: "flex items-center shrink-0 w-full cursor-pointer",
|
|
3530
|
+
style: { gap: T6.spMd },
|
|
3531
|
+
onClick: () => toggleStore(store._id),
|
|
3532
|
+
children: [
|
|
3533
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3534
|
+
"p",
|
|
3535
|
+
{
|
|
3536
|
+
className: "flex-1 min-w-0",
|
|
3537
|
+
style: {
|
|
3538
|
+
fontFamily: T6.font,
|
|
3539
|
+
fontSize: T6.fsSm,
|
|
3540
|
+
fontWeight: 400,
|
|
3541
|
+
lineHeight: T6.lhSm,
|
|
3542
|
+
color: T6.primary
|
|
3543
|
+
},
|
|
3544
|
+
children: store.name || store._id
|
|
3545
|
+
}
|
|
3546
|
+
),
|
|
3547
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3548
|
+
CheckboxSvg,
|
|
3549
|
+
{
|
|
3550
|
+
checked: selectedStores.has(
|
|
3551
|
+
store._id
|
|
3552
|
+
)
|
|
3553
|
+
}
|
|
3554
|
+
)
|
|
3555
|
+
]
|
|
3556
|
+
},
|
|
3557
|
+
store._id
|
|
3558
|
+
)),
|
|
3559
|
+
filteredStores.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3560
|
+
"p",
|
|
3561
|
+
{
|
|
3562
|
+
style: {
|
|
3563
|
+
fontFamily: T6.font,
|
|
3564
|
+
fontSize: T6.fsSm,
|
|
3565
|
+
fontWeight: 400,
|
|
3566
|
+
lineHeight: T6.lhSm,
|
|
3567
|
+
color: T6.muted
|
|
3568
|
+
},
|
|
3569
|
+
children: "No stores found"
|
|
3570
|
+
}
|
|
3571
|
+
)
|
|
3572
|
+
]
|
|
3573
|
+
}
|
|
3574
|
+
)
|
|
3575
|
+
}
|
|
3495
3576
|
)
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3577
|
+
]
|
|
3578
|
+
}
|
|
3579
|
+
)
|
|
3499
3580
|
}
|
|
3500
3581
|
)
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3582
|
+
]
|
|
3583
|
+
}
|
|
3584
|
+
) })
|
|
3504
3585
|
}
|
|
3505
|
-
) })
|
|
3586
|
+
) })
|
|
3506
3587
|
]
|
|
3507
3588
|
}
|
|
3508
3589
|
)
|
|
@@ -3549,11 +3630,15 @@ function InviteUpdateModal({
|
|
|
3549
3630
|
role,
|
|
3550
3631
|
canUseCredits,
|
|
3551
3632
|
canInviteUser,
|
|
3552
|
-
artifax:
|
|
3553
|
-
photogenix:
|
|
3554
|
-
catalogix:
|
|
3555
|
-
returns:
|
|
3556
|
-
|
|
3633
|
+
artifax: appValue("artifax"),
|
|
3634
|
+
photogenix: appValue("photogenix"),
|
|
3635
|
+
catalogix: appValue("catalogix"),
|
|
3636
|
+
returns: appValue("returns"),
|
|
3637
|
+
// Stores ride on Catalogix, so they follow it: a
|
|
3638
|
+
// hidden Catalogix grants no app and therefore no
|
|
3639
|
+
// storefronts. Keeping them would leave a member
|
|
3640
|
+
// scoped to stores in a product they cannot open.
|
|
3641
|
+
catalogixStores: role === "admin" || showsApp("catalogix") ? Array.from(selectedStores) : []
|
|
3557
3642
|
};
|
|
3558
3643
|
if (isInvite && onInvite) {
|
|
3559
3644
|
onInvite(perms, emailValue.trim());
|
|
@@ -4306,7 +4391,8 @@ function TeamsContent({
|
|
|
4306
4391
|
onInviteOpenChange,
|
|
4307
4392
|
workspaceName,
|
|
4308
4393
|
workspaceImageUrl,
|
|
4309
|
-
organizationName
|
|
4394
|
+
organizationName,
|
|
4395
|
+
hiddenApps
|
|
4310
4396
|
} = {}) {
|
|
4311
4397
|
const { auth, api, organization, workspace, toast } = useSettingsAdapters();
|
|
4312
4398
|
const user = auth.user;
|
|
@@ -4778,6 +4864,7 @@ function TeamsContent({
|
|
|
4778
4864
|
mode: modal.mode,
|
|
4779
4865
|
userEmail: modal.target?.userEmail,
|
|
4780
4866
|
stores: allStores,
|
|
4867
|
+
hiddenApps,
|
|
4781
4868
|
allowSubmitWithoutChanges: modal.target?.kind === "invite",
|
|
4782
4869
|
initialPermissions: currentMemberPermissions,
|
|
4783
4870
|
onClose: closeModal,
|
|
@@ -10556,13 +10643,134 @@ function SpecializationDropdown({
|
|
|
10556
10643
|
}
|
|
10557
10644
|
);
|
|
10558
10645
|
}
|
|
10646
|
+
function LanguageDropdown({
|
|
10647
|
+
value,
|
|
10648
|
+
onChange,
|
|
10649
|
+
disabled
|
|
10650
|
+
}) {
|
|
10651
|
+
const [open, setOpen] = (0, import_react16.useState)(false);
|
|
10652
|
+
const containerRef = (0, import_react16.useRef)(null);
|
|
10653
|
+
(0, import_react16.useEffect)(() => {
|
|
10654
|
+
if (!open) return;
|
|
10655
|
+
function handleMouseDown(e) {
|
|
10656
|
+
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
10657
|
+
setOpen(false);
|
|
10658
|
+
}
|
|
10659
|
+
}
|
|
10660
|
+
function handleKeyDown(e) {
|
|
10661
|
+
if (e.key === "Escape") setOpen(false);
|
|
10662
|
+
}
|
|
10663
|
+
document.addEventListener("mousedown", handleMouseDown);
|
|
10664
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
10665
|
+
return () => {
|
|
10666
|
+
document.removeEventListener("mousedown", handleMouseDown);
|
|
10667
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
10668
|
+
};
|
|
10669
|
+
}, [open]);
|
|
10670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
10671
|
+
"div",
|
|
10672
|
+
{
|
|
10673
|
+
ref: containerRef,
|
|
10674
|
+
className: "w-full",
|
|
10675
|
+
style: { position: "relative" },
|
|
10676
|
+
children: [
|
|
10677
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("style", { children: DROPDOWN_TRIGGER_STYLES }),
|
|
10678
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10679
|
+
"div",
|
|
10680
|
+
{
|
|
10681
|
+
className: "spec-dropdown-trigger",
|
|
10682
|
+
"data-disabled": disabled ? "true" : "false",
|
|
10683
|
+
onClick: () => !disabled && setOpen((v) => !v),
|
|
10684
|
+
"aria-haspopup": "listbox",
|
|
10685
|
+
"aria-expanded": open,
|
|
10686
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10687
|
+
import_ui12.ScTextField,
|
|
10688
|
+
{
|
|
10689
|
+
label: "Language",
|
|
10690
|
+
labelGroup: "label",
|
|
10691
|
+
value: userLanguageLabel(value),
|
|
10692
|
+
placeholderFilled: "Select language",
|
|
10693
|
+
tfGroup: "icon-right",
|
|
10694
|
+
tfRightIcon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10695
|
+
"span",
|
|
10696
|
+
{
|
|
10697
|
+
style: {
|
|
10698
|
+
display: "flex",
|
|
10699
|
+
alignItems: "center",
|
|
10700
|
+
justifyContent: "center",
|
|
10701
|
+
transform: open ? "rotate(180deg)" : "none",
|
|
10702
|
+
transition: "transform 120ms ease-out"
|
|
10703
|
+
},
|
|
10704
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons12.SiconDown, {})
|
|
10705
|
+
}
|
|
10706
|
+
),
|
|
10707
|
+
className: "sc-text-field-full-width",
|
|
10708
|
+
style: { width: "100%" },
|
|
10709
|
+
readOnly: true,
|
|
10710
|
+
disabled
|
|
10711
|
+
}
|
|
10712
|
+
)
|
|
10713
|
+
}
|
|
10714
|
+
),
|
|
10715
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10716
|
+
"div",
|
|
10717
|
+
{
|
|
10718
|
+
role: "listbox",
|
|
10719
|
+
style: {
|
|
10720
|
+
position: "absolute",
|
|
10721
|
+
top: "calc(100% + 4px)",
|
|
10722
|
+
left: 0,
|
|
10723
|
+
right: 0,
|
|
10724
|
+
zIndex: 50,
|
|
10725
|
+
// The list is longer than the specialization one, so it scrolls
|
|
10726
|
+
// rather than running off the bottom of the panel.
|
|
10727
|
+
maxHeight: 280,
|
|
10728
|
+
overflowY: "auto",
|
|
10729
|
+
background: "var(--alias-surface-subtle, #1a1a1a)",
|
|
10730
|
+
border: "0.5px solid var(--alias-border-subtle, #242424)",
|
|
10731
|
+
borderRadius: "var(--radius-4xl, 18px)",
|
|
10732
|
+
padding: "var(--spacing-md, 8px)",
|
|
10733
|
+
display: "flex",
|
|
10734
|
+
flexDirection: "column",
|
|
10735
|
+
gap: 8,
|
|
10736
|
+
boxShadow: "0 8px 24px rgba(0,0,0,0.4)",
|
|
10737
|
+
backdropFilter: "blur(42px)"
|
|
10738
|
+
},
|
|
10739
|
+
children: USER_LANGUAGES.map((lang) => {
|
|
10740
|
+
const isActive = lang.code === value;
|
|
10741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10742
|
+
import_ui11.ScMenuOptions,
|
|
10743
|
+
{
|
|
10744
|
+
text: lang.label,
|
|
10745
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, {}),
|
|
10746
|
+
hover: isActive ? "true" : "false",
|
|
10747
|
+
variant: "default",
|
|
10748
|
+
role: "option",
|
|
10749
|
+
"aria-selected": isActive,
|
|
10750
|
+
onClick: () => {
|
|
10751
|
+
onChange(lang.code);
|
|
10752
|
+
setOpen(false);
|
|
10753
|
+
},
|
|
10754
|
+
style: { width: "100%", cursor: "pointer" }
|
|
10755
|
+
},
|
|
10756
|
+
lang.code
|
|
10757
|
+
);
|
|
10758
|
+
})
|
|
10759
|
+
}
|
|
10760
|
+
)
|
|
10761
|
+
]
|
|
10762
|
+
}
|
|
10763
|
+
);
|
|
10764
|
+
}
|
|
10559
10765
|
function ProfileTab() {
|
|
10560
10766
|
const { auth, imageUpload, toast } = useSettingsAdapters();
|
|
10561
10767
|
const user = auth.user;
|
|
10562
10768
|
const derivedName = user?.name ?? "";
|
|
10563
10769
|
const derivedSpec = user?.userSpecialization ?? "";
|
|
10770
|
+
const derivedLanguage = user?.language?.trim() || DEFAULT_USER_LANGUAGE;
|
|
10564
10771
|
const [fullName, setFullName] = (0, import_react16.useState)(derivedName);
|
|
10565
10772
|
const [selectedSpec, setSelectedSpec] = (0, import_react16.useState)(derivedSpec);
|
|
10773
|
+
const [selectedLanguage, setSelectedLanguage] = (0, import_react16.useState)(derivedLanguage);
|
|
10566
10774
|
const [saving, setSaving] = (0, import_react16.useState)(false);
|
|
10567
10775
|
const [imageSaving, setImageSaving] = (0, import_react16.useState)(false);
|
|
10568
10776
|
const [imagePreview, setImagePreview] = (0, import_react16.useState)(
|
|
@@ -10573,7 +10781,7 @@ function ProfileTab() {
|
|
|
10573
10781
|
const profileImage = imagePreview ?? getUserProfileImage(user);
|
|
10574
10782
|
const profileInitial = profileDisplayName.charAt(0).toUpperCase();
|
|
10575
10783
|
const disableAllActions = saving || imageSaving;
|
|
10576
|
-
const dirty = fullName.trim() !== derivedName || selectedSpec !== derivedSpec;
|
|
10784
|
+
const dirty = fullName.trim() !== derivedName || selectedSpec !== derivedSpec || selectedLanguage !== derivedLanguage;
|
|
10577
10785
|
(0, import_react16.useEffect)(() => {
|
|
10578
10786
|
setFullName(derivedName);
|
|
10579
10787
|
setImagePreview(void 0);
|
|
@@ -10581,6 +10789,9 @@ function ProfileTab() {
|
|
|
10581
10789
|
(0, import_react16.useEffect)(() => {
|
|
10582
10790
|
setSelectedSpec(derivedSpec);
|
|
10583
10791
|
}, [derivedSpec]);
|
|
10792
|
+
(0, import_react16.useEffect)(() => {
|
|
10793
|
+
setSelectedLanguage(derivedLanguage);
|
|
10794
|
+
}, [derivedLanguage]);
|
|
10584
10795
|
const handleSave = async () => {
|
|
10585
10796
|
if (disableAllActions || !dirty) return;
|
|
10586
10797
|
setSaving(true);
|
|
@@ -10588,6 +10799,8 @@ function ProfileTab() {
|
|
|
10588
10799
|
const patch = {};
|
|
10589
10800
|
if (fullName.trim() !== derivedName) patch.name = fullName.trim();
|
|
10590
10801
|
if (selectedSpec !== derivedSpec) patch.userSpecialization = selectedSpec;
|
|
10802
|
+
if (selectedLanguage !== derivedLanguage)
|
|
10803
|
+
patch.language = selectedLanguage;
|
|
10591
10804
|
await auth.updateProfile(patch);
|
|
10592
10805
|
await auth.refreshProfile();
|
|
10593
10806
|
toast.success("Profile updated");
|
|
@@ -10807,6 +11020,17 @@ function ProfileTab() {
|
|
|
10807
11020
|
}
|
|
10808
11021
|
) })
|
|
10809
11022
|
] }),
|
|
11023
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-start w-full", style: { gap: "var(--spacing-3xl)" }, children: [
|
|
11024
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
11025
|
+
LanguageDropdown,
|
|
11026
|
+
{
|
|
11027
|
+
value: selectedLanguage,
|
|
11028
|
+
onChange: setSelectedLanguage,
|
|
11029
|
+
disabled: disableAllActions
|
|
11030
|
+
}
|
|
11031
|
+
) }),
|
|
11032
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex-1 min-w-0" })
|
|
11033
|
+
] }),
|
|
10810
11034
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "w-full", style: { overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10811
11035
|
import_ui12.ScTextField,
|
|
10812
11036
|
{
|
|
@@ -11079,19 +11303,22 @@ function ReferralTab() {
|
|
|
11079
11303
|
function SettingsContent({
|
|
11080
11304
|
adapters,
|
|
11081
11305
|
activeTab = "profile",
|
|
11082
|
-
onClose
|
|
11306
|
+
onClose,
|
|
11307
|
+
hiddenApps
|
|
11083
11308
|
}) {
|
|
11084
11309
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SettingsAdaptersProvider, { adapters, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
11085
11310
|
SettingsContentInner,
|
|
11086
11311
|
{
|
|
11087
11312
|
activeTab,
|
|
11088
|
-
onClose: onClose ?? adapters.navigation.close
|
|
11313
|
+
onClose: onClose ?? adapters.navigation.close,
|
|
11314
|
+
hiddenApps
|
|
11089
11315
|
}
|
|
11090
11316
|
) });
|
|
11091
11317
|
}
|
|
11092
11318
|
function SettingsContentInner({
|
|
11093
11319
|
activeTab,
|
|
11094
|
-
onClose
|
|
11320
|
+
onClose,
|
|
11321
|
+
hiddenApps
|
|
11095
11322
|
}) {
|
|
11096
11323
|
const {
|
|
11097
11324
|
auth: _auth,
|
|
@@ -11759,7 +11986,8 @@ function SettingsContentInner({
|
|
|
11759
11986
|
onInviteOpenChange: setTeamInviteOpen,
|
|
11760
11987
|
workspaceName: workspaceScopeName,
|
|
11761
11988
|
workspaceImageUrl: currentWorkspaceData?.imageUrl,
|
|
11762
|
-
organizationName: organizationScopeName
|
|
11989
|
+
organizationName: organizationScopeName,
|
|
11990
|
+
hiddenApps
|
|
11763
11991
|
}
|
|
11764
11992
|
) }),
|
|
11765
11993
|
activeTab === "workspaceList" && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
@@ -11898,15 +12126,3 @@ function SettingsContentInner({
|
|
|
11898
12126
|
}
|
|
11899
12127
|
);
|
|
11900
12128
|
}
|
|
11901
|
-
|
|
11902
|
-
// src/team-types.ts
|
|
11903
|
-
var DEFAULT_PERMISSIONS = {
|
|
11904
|
-
artifax: true,
|
|
11905
|
-
photogenix: true,
|
|
11906
|
-
catalogix: true,
|
|
11907
|
-
returns: true,
|
|
11908
|
-
canUseCredits: true,
|
|
11909
|
-
canInviteUser: true,
|
|
11910
|
-
role: "admin",
|
|
11911
|
-
catalogixStores: []
|
|
11912
|
-
};
|