@burdenoff/fe-libs 2026.1021.6 → 2026.1021.8
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/chrome/AccountSwitcher.js +7 -7
- package/dist/chrome/AutoBreadcrumbs.js +3 -3
- package/dist/chrome/Breadcrumbs.js +24 -24
- package/dist/chrome/ContextSwitcher.js +7 -7
- package/dist/chrome/DynamicFooter.js +3 -3
- package/dist/chrome/HeaderThemeSwitcher.js +14 -14
- package/dist/chrome/LanguagePickerSheet.js +7 -7
- package/dist/chrome/NativeTopBar.js +4 -4
- package/dist/chrome/NavCustomizeDialog.js +12 -12
- package/dist/chrome/ProductPickerSheet.js +7 -7
- package/dist/chrome/SideNavigation.js +17 -17
- package/dist/chrome/Sidebar.js +34 -34
- package/dist/chrome/Tabs.js +20 -20
- package/dist/chrome/ThemePreferences.js +188 -188
- package/dist/shared/assistant/ui/AssistantChatArea.js +4 -4
- package/dist/shared/components/ContextConversationWidget.js +7 -7
- package/dist/shared/components/QuotaUpgradeBridge.js +13 -13
- package/dist/shared/pages/AiPage.js +6 -6
- package/dist/shared/providers/AppShellProvider.d.ts +13 -0
- package/dist/shared/providers/AppShellProvider.js +196 -193
- package/dist/shared/providers/shell/ProfileI18nBridge.js +11 -11
- package/dist/shared/tours/catalogs.d.ts +21 -0
- package/dist/shared/tours/catalogs.js +981 -0
- package/dist/shared/tours/index.d.ts +3 -1
- package/dist/shared/tours/routeCatalog.d.ts +28 -0
- package/dist/shared/tours/routeCatalog.js +103 -918
- package/dist/shared/tours/useTourRouteCatalog.d.ts +14 -0
- package/dist/shared/tours/useTourRouteCatalog.js +13 -0
- package/dist/shared-hooks-shell.js +7 -7
- package/dist/shared-providers-shell.js +6 -6
- package/dist/shared-tours.js +7 -5
- package/dist/shared.js +12 -10
- package/dist/ui/branded-splash.d.ts +25 -2
- package/dist/ui/branded-splash.js +48 -31
- package/dist/ui/cta-overflow-menu.js +17 -17
- package/dist/ui/guidance.js +19 -19
- package/dist/ui/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { Button as t } from "../ui/button.js";
|
|
3
|
+
import { Select as n, SelectContent as r, SelectItem as i, SelectTrigger as a, SelectValue as o } from "../ui/select.js";
|
|
4
|
+
import { Badge as s } from "../ui/badge.js";
|
|
5
|
+
import { Card as c, CardContent as l, CardDescription as u, CardHeader as d, CardTitle as f } from "../ui/card.js";
|
|
5
6
|
import { Input as ee } from "../ui/input.js";
|
|
6
|
-
import { Label as
|
|
7
|
-
import { THEME_OPTIONS as
|
|
7
|
+
import { Label as p } from "../ui/label.js";
|
|
8
|
+
import { THEME_OPTIONS as m, useTheme as te } from "../shared/providers/shell/ThemeProvider.js";
|
|
8
9
|
import { Switch as h } from "../ui/switch.js";
|
|
9
|
-
import { useShellLabel as te } from "../shared/providers/shell/useShellLabel.js";
|
|
10
10
|
import { useThemeOptionLabels as ne } from "./useThemeOptionLabels.js";
|
|
11
11
|
import { cn as g } from "../utils/cn.js";
|
|
12
12
|
import "../utils/index.js";
|
|
13
13
|
import { useCallback as _, useId as v, useMemo as y, useState as b } from "react";
|
|
14
|
-
import { Check as x, Palette as S, Pencil as
|
|
15
|
-
import { jsx as
|
|
14
|
+
import { Check as x, Palette as S, Pencil as C, Plus as re, Trash2 as w, X as T } from "lucide-react";
|
|
15
|
+
import { jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
16
16
|
//#region src/chrome/ThemePreferences.tsx
|
|
17
|
-
var
|
|
17
|
+
var O = [
|
|
18
18
|
{
|
|
19
19
|
name: "Blue",
|
|
20
20
|
varName: "--color-accent-blue"
|
|
@@ -31,7 +31,7 @@ var D = [
|
|
|
31
31
|
name: "Indigo",
|
|
32
32
|
varName: "--color-accent-indigo"
|
|
33
33
|
}
|
|
34
|
-
],
|
|
34
|
+
], k = [
|
|
35
35
|
{
|
|
36
36
|
value: "compact",
|
|
37
37
|
label: "Compact"
|
|
@@ -44,7 +44,7 @@ var D = [
|
|
|
44
44
|
value: "spacious",
|
|
45
45
|
label: "Spacious"
|
|
46
46
|
}
|
|
47
|
-
],
|
|
47
|
+
], ie = [
|
|
48
48
|
{
|
|
49
49
|
value: "small",
|
|
50
50
|
label: "Small"
|
|
@@ -71,10 +71,10 @@ var D = [
|
|
|
71
71
|
label: "Full"
|
|
72
72
|
}
|
|
73
73
|
], A = (e) => e === "dark" ? "bg-bg-sunken" : "bg-bg-surface";
|
|
74
|
-
function j({ className:
|
|
75
|
-
let
|
|
74
|
+
function j({ className: n, showCustomThemes: r = !0 }) {
|
|
75
|
+
let i = e(), a = ne(), { mode: o, density: v, typography: T, glass: j, reduceMotion: F, resolvedThemeName: oe, setMode: se, setDensity: ce, setTypography: le, setGlass: ue, setReduceMotion: de, customThemes: I, activeCustomId: L, createCustomTheme: R, updateCustomTheme: z, deleteCustomTheme: fe, applyCustomTheme: B } = te(), [V, H] = b(!1), [U, pe] = b(() => i("themeSwitcher.myTheme", "My theme")), [W, me] = b("light"), [G, he] = b("#6366F1"), [K, ge] = b("comfortable"), [q, _e] = b("default"), [J, ve] = b("full"), [Y, ye] = b(!1), [X, Z] = b(null), [Q, be] = b(""), xe = _(() => H(!0), []), Se = _(() => {
|
|
76
76
|
B(R({
|
|
77
|
-
name: U.trim() ||
|
|
77
|
+
name: U.trim() || i("themeSwitcher.untitled", "Untitled theme"),
|
|
78
78
|
base: W,
|
|
79
79
|
accent: G,
|
|
80
80
|
density: K,
|
|
@@ -92,16 +92,16 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
92
92
|
Y,
|
|
93
93
|
R,
|
|
94
94
|
B,
|
|
95
|
-
|
|
95
|
+
i
|
|
96
96
|
]), Ce = _((e) => {
|
|
97
97
|
Z(e.id), be(e.name);
|
|
98
98
|
}, []), we = _(() => {
|
|
99
|
-
X && z(X, { name: Q.trim() ||
|
|
99
|
+
X && z(X, { name: Q.trim() || i("themeSwitcher.untitled", "Untitled theme") }), Z(null);
|
|
100
100
|
}, [
|
|
101
101
|
X,
|
|
102
102
|
Q,
|
|
103
103
|
z,
|
|
104
|
-
|
|
104
|
+
i
|
|
105
105
|
]), $ = y(() => V ? {
|
|
106
106
|
theme: W,
|
|
107
107
|
density: K,
|
|
@@ -110,7 +110,7 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
110
110
|
} : {
|
|
111
111
|
theme: oe,
|
|
112
112
|
density: v,
|
|
113
|
-
typography:
|
|
113
|
+
typography: T,
|
|
114
114
|
glass: j
|
|
115
115
|
}, [
|
|
116
116
|
V,
|
|
@@ -120,124 +120,124 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
120
120
|
J,
|
|
121
121
|
oe,
|
|
122
122
|
v,
|
|
123
|
-
|
|
123
|
+
T,
|
|
124
124
|
j
|
|
125
125
|
]);
|
|
126
|
-
return /* @__PURE__ */
|
|
127
|
-
className: g("flex flex-col gap-6",
|
|
126
|
+
return /* @__PURE__ */ D("div", {
|
|
127
|
+
className: g("flex flex-col gap-6", n),
|
|
128
128
|
children: [
|
|
129
|
-
|
|
129
|
+
r && /* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ D(f, {
|
|
130
130
|
className: "flex items-center gap-2",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
131
|
+
children: [/* @__PURE__ */ E(S, {
|
|
132
132
|
className: "size-4 text-text-secondary",
|
|
133
133
|
"aria-hidden": "true"
|
|
134
|
-
}),
|
|
135
|
-
}), /* @__PURE__ */
|
|
134
|
+
}), i("themeSwitcher.label", "Theme")]
|
|
135
|
+
}), /* @__PURE__ */ E(u, { children: i("themeSwitcher.description", "Pick a built-in theme or one of your saved custom themes.") })] }), /* @__PURE__ */ E(l, { children: /* @__PURE__ */ D("div", {
|
|
136
136
|
role: "radiogroup",
|
|
137
|
-
"aria-label":
|
|
137
|
+
"aria-label": i("themeSwitcher.label", "Theme"),
|
|
138
138
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",
|
|
139
139
|
children: [
|
|
140
|
-
|
|
141
|
-
label:
|
|
140
|
+
m.map((e) => /* @__PURE__ */ E(M, {
|
|
141
|
+
label: a.themes[e.value],
|
|
142
142
|
family: e.family,
|
|
143
|
-
active:
|
|
143
|
+
active: o === e.value,
|
|
144
144
|
onSelect: () => se(e.value)
|
|
145
145
|
}, e.value)),
|
|
146
|
-
I.map((e) => /* @__PURE__ */
|
|
146
|
+
I.map((e) => /* @__PURE__ */ E(M, {
|
|
147
147
|
label: e.name,
|
|
148
148
|
family: e.base,
|
|
149
149
|
accent: e.accent,
|
|
150
|
-
active:
|
|
150
|
+
active: o === "custom" && L === e.id,
|
|
151
151
|
onSelect: () => B(e.id)
|
|
152
152
|
}, e.id)),
|
|
153
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ D("button", {
|
|
154
154
|
type: "button",
|
|
155
155
|
onClick: xe,
|
|
156
156
|
className: "flex min-h-[5.5rem] flex-col items-center justify-center gap-1 rounded-card border border-dashed border-border-default bg-bg-surface text-text-secondary transition-colors hover:border-border-strong hover:bg-bg-sunken hover:text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
|
|
157
|
-
children: [/* @__PURE__ */
|
|
157
|
+
children: [/* @__PURE__ */ E(re, {
|
|
158
158
|
className: "size-5",
|
|
159
159
|
"aria-hidden": "true"
|
|
160
|
-
}), /* @__PURE__ */
|
|
160
|
+
}), /* @__PURE__ */ E("span", {
|
|
161
161
|
className: "text-xs font-medium",
|
|
162
|
-
children:
|
|
162
|
+
children: i("themeSwitcher.newTheme", "New theme")
|
|
163
163
|
})]
|
|
164
164
|
})
|
|
165
165
|
]
|
|
166
166
|
}) })] }),
|
|
167
|
-
/* @__PURE__ */
|
|
167
|
+
/* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(f, { children: i("themeSwitcher.accent", "Accent") }), /* @__PURE__ */ E(u, { children: i("themeSwitcher.accentHelp", "Accent color retints buttons, links, and highlights across the app.") })] }), /* @__PURE__ */ E(l, { children: /* @__PURE__ */ D("div", {
|
|
168
168
|
className: "flex flex-wrap items-center gap-3",
|
|
169
|
-
children: [
|
|
169
|
+
children: [O.map((e) => /* @__PURE__ */ D("div", {
|
|
170
170
|
className: "flex flex-col items-center gap-1.5",
|
|
171
|
-
children: [/* @__PURE__ */
|
|
171
|
+
children: [/* @__PURE__ */ E("span", {
|
|
172
172
|
className: "size-9 rounded-full border border-border-seam shadow-elevation-1",
|
|
173
173
|
style: { backgroundColor: `var(${e.varName})` },
|
|
174
174
|
"aria-hidden": "true"
|
|
175
|
-
}), /* @__PURE__ */
|
|
175
|
+
}), /* @__PURE__ */ E("span", {
|
|
176
176
|
className: "text-xs text-text-secondary",
|
|
177
|
-
children:
|
|
177
|
+
children: a.accents[e.name] ?? e.name
|
|
178
178
|
})]
|
|
179
|
-
}, e.name)), /* @__PURE__ */
|
|
179
|
+
}, e.name)), /* @__PURE__ */ D(t, {
|
|
180
180
|
type: "button",
|
|
181
181
|
variant: "outline",
|
|
182
182
|
size: "sm",
|
|
183
183
|
onClick: xe,
|
|
184
184
|
className: "ml-1",
|
|
185
|
-
children: [/* @__PURE__ */
|
|
185
|
+
children: [/* @__PURE__ */ E(S, {
|
|
186
186
|
className: "size-4",
|
|
187
187
|
"aria-hidden": "true"
|
|
188
|
-
}),
|
|
188
|
+
}), i("themeSwitcher.customAccent", "Custom accent")]
|
|
189
189
|
})]
|
|
190
190
|
}) })] }),
|
|
191
|
-
/* @__PURE__ */
|
|
192
|
-
title:
|
|
193
|
-
description:
|
|
191
|
+
/* @__PURE__ */ E(N, {
|
|
192
|
+
title: i("themeSwitcher.density", "Density"),
|
|
193
|
+
description: i("themeSwitcher.densityHelp", "Spacing and control sizing throughout the interface."),
|
|
194
194
|
value: v,
|
|
195
|
-
options:
|
|
195
|
+
options: k.map((e) => ({
|
|
196
196
|
...e,
|
|
197
|
-
label:
|
|
197
|
+
label: a.density[e.value]
|
|
198
198
|
})),
|
|
199
199
|
onChange: ce
|
|
200
200
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
202
|
-
title:
|
|
203
|
-
description:
|
|
204
|
-
value:
|
|
205
|
-
options:
|
|
201
|
+
/* @__PURE__ */ E(N, {
|
|
202
|
+
title: i("themeSwitcher.typography", "Typography"),
|
|
203
|
+
description: i("themeSwitcher.typographyHelp", "Base font scale for text across the app."),
|
|
204
|
+
value: T,
|
|
205
|
+
options: ie.map((e) => ({
|
|
206
206
|
...e,
|
|
207
|
-
label:
|
|
207
|
+
label: a.typography[e.value]
|
|
208
208
|
})),
|
|
209
209
|
onChange: le
|
|
210
210
|
}),
|
|
211
|
-
/* @__PURE__ */
|
|
212
|
-
title:
|
|
213
|
-
description:
|
|
211
|
+
/* @__PURE__ */ E(N, {
|
|
212
|
+
title: i("themeSwitcher.glassIntensity", "Glass intensity"),
|
|
213
|
+
description: i("themeSwitcher.glassHelp", "Strength of the frosted-glass blur on elevated surfaces."),
|
|
214
214
|
value: j,
|
|
215
215
|
options: ae.map((e) => ({
|
|
216
216
|
...e,
|
|
217
|
-
label:
|
|
217
|
+
label: a.glass[e.value]
|
|
218
218
|
})),
|
|
219
219
|
onChange: ue
|
|
220
220
|
}),
|
|
221
|
-
/* @__PURE__ */
|
|
221
|
+
/* @__PURE__ */ E(c, { children: /* @__PURE__ */ D(l, {
|
|
222
222
|
className: "flex items-center justify-between gap-4 pt-6",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ D("div", {
|
|
224
224
|
className: "flex flex-col",
|
|
225
|
-
children: [/* @__PURE__ */
|
|
225
|
+
children: [/* @__PURE__ */ E(p, {
|
|
226
226
|
htmlFor: "theme-reduce-motion",
|
|
227
227
|
className: "text-sm font-medium text-text-primary",
|
|
228
|
-
children:
|
|
229
|
-
}), /* @__PURE__ */
|
|
228
|
+
children: i("themeSwitcher.reduceMotion", "Reduce motion")
|
|
229
|
+
}), /* @__PURE__ */ E("span", {
|
|
230
230
|
className: "text-xs text-text-secondary",
|
|
231
|
-
children:
|
|
231
|
+
children: i("themeSwitcher.motionHelp", "Minimize animations and transitions across the app.")
|
|
232
232
|
})]
|
|
233
|
-
}), /* @__PURE__ */
|
|
233
|
+
}), /* @__PURE__ */ E(h, {
|
|
234
234
|
id: "theme-reduce-motion",
|
|
235
235
|
checked: F,
|
|
236
236
|
onCheckedChange: de,
|
|
237
|
-
"aria-label":
|
|
237
|
+
"aria-label": i("themeSwitcher.reduceMotion", "Reduce motion")
|
|
238
238
|
})]
|
|
239
239
|
}) }),
|
|
240
|
-
|
|
240
|
+
r && V && /* @__PURE__ */ E(P, {
|
|
241
241
|
name: U,
|
|
242
242
|
base: W,
|
|
243
243
|
accent: G,
|
|
@@ -255,68 +255,68 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
255
255
|
onSave: Se,
|
|
256
256
|
onCancel: () => H(!1)
|
|
257
257
|
}),
|
|
258
|
-
|
|
258
|
+
r && I.length > 0 && /* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(f, { children: i("themeSwitcher.savedThemes", "Saved themes") }), /* @__PURE__ */ E(u, { children: i("themeSwitcher.savedThemesHelp", "Apply, rename, or remove your custom themes.") })] }), /* @__PURE__ */ E(l, { children: /* @__PURE__ */ E("ul", {
|
|
259
259
|
className: "flex flex-col divide-y divide-border-subtle",
|
|
260
|
-
children: I.map((
|
|
261
|
-
let n =
|
|
262
|
-
return /* @__PURE__ */
|
|
260
|
+
children: I.map((e) => {
|
|
261
|
+
let n = o === "custom" && L === e.id;
|
|
262
|
+
return /* @__PURE__ */ D("li", {
|
|
263
263
|
className: "flex flex-wrap items-center gap-3 py-3 first:pt-0 last:pb-0",
|
|
264
264
|
children: [
|
|
265
|
-
/* @__PURE__ */
|
|
265
|
+
/* @__PURE__ */ E("span", {
|
|
266
266
|
className: "size-6 rounded-full border border-border-seam",
|
|
267
|
-
style: { backgroundColor:
|
|
267
|
+
style: { backgroundColor: e.accent },
|
|
268
268
|
"aria-hidden": "true"
|
|
269
269
|
}),
|
|
270
|
-
X ===
|
|
270
|
+
X === e.id ? /* @__PURE__ */ E(ee, {
|
|
271
271
|
autoFocus: !0,
|
|
272
272
|
value: Q,
|
|
273
|
-
"aria-label":
|
|
273
|
+
"aria-label": i("themeSwitcher.themeName", "Theme name"),
|
|
274
274
|
onChange: (e) => be(e.target.value),
|
|
275
275
|
onBlur: we,
|
|
276
276
|
onKeyDown: (e) => {
|
|
277
277
|
e.key === "Enter" && we(), e.key === "Escape" && Z(null);
|
|
278
278
|
},
|
|
279
279
|
className: "h-8 w-44"
|
|
280
|
-
}) : /* @__PURE__ */
|
|
280
|
+
}) : /* @__PURE__ */ D("span", {
|
|
281
281
|
className: "flex flex-1 items-center gap-2 text-sm text-text-primary",
|
|
282
|
-
children: [
|
|
282
|
+
children: [e.name, n && /* @__PURE__ */ D(s, {
|
|
283
283
|
variant: "success",
|
|
284
284
|
className: "gap-1",
|
|
285
|
-
children: [/* @__PURE__ */
|
|
285
|
+
children: [/* @__PURE__ */ E(x, {
|
|
286
286
|
className: "size-3",
|
|
287
287
|
"aria-hidden": "true"
|
|
288
|
-
}),
|
|
288
|
+
}), i("common.status.active", "Active")]
|
|
289
289
|
})]
|
|
290
290
|
}),
|
|
291
|
-
/* @__PURE__ */
|
|
291
|
+
/* @__PURE__ */ D("div", {
|
|
292
292
|
className: "ml-auto flex items-center gap-1",
|
|
293
293
|
children: [
|
|
294
|
-
/* @__PURE__ */
|
|
294
|
+
/* @__PURE__ */ E(t, {
|
|
295
295
|
type: "button",
|
|
296
296
|
variant: "outline",
|
|
297
297
|
size: "sm",
|
|
298
298
|
disabled: n,
|
|
299
|
-
onClick: () => B(
|
|
300
|
-
children:
|
|
299
|
+
onClick: () => B(e.id),
|
|
300
|
+
children: i("themeSwitcher.apply", "Apply")
|
|
301
301
|
}),
|
|
302
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ E(t, {
|
|
303
303
|
type: "button",
|
|
304
304
|
variant: "ghost",
|
|
305
305
|
size: "icon-sm",
|
|
306
|
-
"aria-label":
|
|
307
|
-
onClick: () => Ce(
|
|
308
|
-
children: /* @__PURE__ */
|
|
306
|
+
"aria-label": i("themeSwitcher.renameNamed", "Rename {{name}}", { name: e.name }),
|
|
307
|
+
onClick: () => Ce(e),
|
|
308
|
+
children: /* @__PURE__ */ E(C, {
|
|
309
309
|
className: "size-4",
|
|
310
310
|
"aria-hidden": "true"
|
|
311
311
|
})
|
|
312
312
|
}),
|
|
313
|
-
/* @__PURE__ */
|
|
313
|
+
/* @__PURE__ */ E(t, {
|
|
314
314
|
type: "button",
|
|
315
315
|
variant: "ghost",
|
|
316
316
|
size: "icon-sm",
|
|
317
|
-
"aria-label":
|
|
318
|
-
onClick: () => fe(
|
|
319
|
-
children: /* @__PURE__ */
|
|
317
|
+
"aria-label": i("themeSwitcher.deleteNamed", "Delete {{name}}", { name: e.name }),
|
|
318
|
+
onClick: () => fe(e.id),
|
|
319
|
+
children: /* @__PURE__ */ E(w, {
|
|
320
320
|
className: "size-4 text-action-danger-bg",
|
|
321
321
|
"aria-hidden": "true"
|
|
322
322
|
})
|
|
@@ -324,92 +324,92 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
324
324
|
]
|
|
325
325
|
})
|
|
326
326
|
]
|
|
327
|
-
},
|
|
327
|
+
}, e.id);
|
|
328
328
|
})
|
|
329
329
|
}) })] }),
|
|
330
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(f, { children: i("common.markdownEditor.preview", "Preview") }), /* @__PURE__ */ E(u, { children: i("themeSwitcher.previewHelp", "A scoped preview of the candidate theme — applies only here until you select it.") })] }), /* @__PURE__ */ E(l, { children: /* @__PURE__ */ D("div", {
|
|
331
331
|
"data-theme": $.theme,
|
|
332
332
|
"data-density": $.density,
|
|
333
333
|
"data-typography": $.typography,
|
|
334
334
|
"data-glass": $.glass,
|
|
335
|
-
className: g("flex flex-col gap-4 rounded-card border border-border-seam p-4", A(
|
|
335
|
+
className: g("flex flex-col gap-4 rounded-card border border-border-seam p-4", A(m.find((e) => e.value === $.theme)?.family ?? "light")),
|
|
336
336
|
children: [
|
|
337
|
-
/* @__PURE__ */
|
|
337
|
+
/* @__PURE__ */ D("div", {
|
|
338
338
|
className: "flex flex-wrap items-center gap-2",
|
|
339
339
|
children: [
|
|
340
|
-
/* @__PURE__ */
|
|
340
|
+
/* @__PURE__ */ E(t, {
|
|
341
341
|
type: "button",
|
|
342
342
|
size: "sm",
|
|
343
|
-
children:
|
|
343
|
+
children: i("notifications.actionStyle.primary", "Primary")
|
|
344
344
|
}),
|
|
345
|
-
/* @__PURE__ */
|
|
345
|
+
/* @__PURE__ */ E(t, {
|
|
346
346
|
type: "button",
|
|
347
347
|
variant: "secondary",
|
|
348
348
|
size: "sm",
|
|
349
|
-
children:
|
|
349
|
+
children: i("notifications.actionStyle.secondary", "Secondary")
|
|
350
350
|
}),
|
|
351
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ E(t, {
|
|
352
352
|
type: "button",
|
|
353
353
|
variant: "outline",
|
|
354
354
|
size: "sm",
|
|
355
|
-
children:
|
|
355
|
+
children: i("themeSwitcher.outline", "Outline")
|
|
356
356
|
}),
|
|
357
|
-
/* @__PURE__ */
|
|
357
|
+
/* @__PURE__ */ E(t, {
|
|
358
358
|
type: "button",
|
|
359
359
|
variant: "ghost",
|
|
360
360
|
size: "sm",
|
|
361
|
-
children:
|
|
361
|
+
children: i("themeSwitcher.ghost", "Ghost")
|
|
362
362
|
})
|
|
363
363
|
]
|
|
364
364
|
}),
|
|
365
|
-
/* @__PURE__ */
|
|
365
|
+
/* @__PURE__ */ D("div", {
|
|
366
366
|
className: "rounded-card border border-border-seam bg-[var(--color-surface-glass)] p-4 shadow-[var(--shadow-pop)] backdrop-blur-[var(--blur-glass)]",
|
|
367
367
|
children: [
|
|
368
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ E("p", {
|
|
369
369
|
className: "text-xs font-medium text-text-secondary",
|
|
370
|
-
children:
|
|
370
|
+
children: i("themeSwitcher.activeSessions", "Active sessions")
|
|
371
371
|
}),
|
|
372
|
-
/* @__PURE__ */
|
|
372
|
+
/* @__PURE__ */ E("p", {
|
|
373
373
|
className: "mt-1 text-2xl font-semibold text-text-primary",
|
|
374
374
|
children: "1,284"
|
|
375
375
|
}),
|
|
376
|
-
/* @__PURE__ */
|
|
376
|
+
/* @__PURE__ */ E("p", {
|
|
377
377
|
className: "mt-1 text-xs text-status-success-text",
|
|
378
|
-
children:
|
|
378
|
+
children: i("themeSwitcher.previewTrend", "+12.4% this week")
|
|
379
379
|
})
|
|
380
380
|
]
|
|
381
381
|
}),
|
|
382
|
-
/* @__PURE__ */
|
|
382
|
+
/* @__PURE__ */ D("div", {
|
|
383
383
|
className: "flex flex-wrap items-center gap-2",
|
|
384
384
|
children: [
|
|
385
|
-
/* @__PURE__ */
|
|
386
|
-
/* @__PURE__ */
|
|
385
|
+
/* @__PURE__ */ E(s, { children: i("themeSwitcher.default", "Default") }),
|
|
386
|
+
/* @__PURE__ */ E(s, {
|
|
387
387
|
variant: "secondary",
|
|
388
|
-
children:
|
|
388
|
+
children: i("notifications.actionStyle.secondary", "Secondary")
|
|
389
389
|
}),
|
|
390
|
-
/* @__PURE__ */
|
|
390
|
+
/* @__PURE__ */ E(s, {
|
|
391
391
|
variant: "success",
|
|
392
|
-
children:
|
|
392
|
+
children: i("common.success", "Success")
|
|
393
393
|
}),
|
|
394
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ E(s, {
|
|
395
395
|
variant: "warning",
|
|
396
|
-
children:
|
|
396
|
+
children: i("themeSwitcher.warning", "Warning")
|
|
397
397
|
}),
|
|
398
|
-
/* @__PURE__ */
|
|
398
|
+
/* @__PURE__ */ E(s, {
|
|
399
399
|
variant: "destructive",
|
|
400
|
-
children:
|
|
400
|
+
children: i("common.errorPage.title", "Error")
|
|
401
401
|
})
|
|
402
402
|
]
|
|
403
403
|
}),
|
|
404
|
-
/* @__PURE__ */
|
|
404
|
+
/* @__PURE__ */ E("div", {
|
|
405
405
|
className: "flex flex-wrap items-center gap-4",
|
|
406
|
-
children:
|
|
406
|
+
children: O.map((e) => /* @__PURE__ */ D("span", {
|
|
407
407
|
className: "flex items-center gap-1.5 text-xs text-text-secondary",
|
|
408
|
-
children: [/* @__PURE__ */
|
|
408
|
+
children: [/* @__PURE__ */ E("span", {
|
|
409
409
|
className: "size-3 rounded-full",
|
|
410
410
|
style: { backgroundColor: `var(${e.varName})` },
|
|
411
411
|
"aria-hidden": "true"
|
|
412
|
-
}),
|
|
412
|
+
}), a.accents[e.name] ?? e.name]
|
|
413
413
|
}, e.name))
|
|
414
414
|
})
|
|
415
415
|
]
|
|
@@ -418,26 +418,26 @@ function j({ className: t, showCustomThemes: n = !0 }) {
|
|
|
418
418
|
});
|
|
419
419
|
}
|
|
420
420
|
function M({ label: e, family: t, accent: n, active: r, onSelect: i }) {
|
|
421
|
-
return /* @__PURE__ */
|
|
421
|
+
return /* @__PURE__ */ D("button", {
|
|
422
422
|
type: "button",
|
|
423
423
|
role: "radio",
|
|
424
424
|
"aria-checked": r,
|
|
425
425
|
onClick: i,
|
|
426
426
|
className: g("group relative flex flex-col gap-2 rounded-card border p-2 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", r ? "border-border-focus bg-[var(--color-accent-soft)]" : "border-border-default bg-bg-surface hover:border-border-strong hover:bg-bg-sunken"),
|
|
427
|
-
children: [/* @__PURE__ */
|
|
427
|
+
children: [/* @__PURE__ */ E("span", {
|
|
428
428
|
className: g("relative flex h-12 w-full items-end overflow-hidden rounded-button border border-border-seam", A(t)),
|
|
429
429
|
"aria-hidden": "true",
|
|
430
|
-
children: /* @__PURE__ */
|
|
430
|
+
children: /* @__PURE__ */ E("span", {
|
|
431
431
|
className: "m-1.5 size-3 rounded-full shadow-elevation-1",
|
|
432
432
|
style: n ? { backgroundColor: n } : void 0,
|
|
433
|
-
children: !n && /* @__PURE__ */
|
|
433
|
+
children: !n && /* @__PURE__ */ E("span", { className: "block size-3 rounded-full bg-action-primary-bg" })
|
|
434
434
|
})
|
|
435
|
-
}), /* @__PURE__ */
|
|
435
|
+
}), /* @__PURE__ */ D("span", {
|
|
436
436
|
className: "flex items-center justify-between gap-1",
|
|
437
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ E("span", {
|
|
438
438
|
className: "truncate text-xs font-medium text-text-primary",
|
|
439
439
|
children: e
|
|
440
|
-
}), r && /* @__PURE__ */
|
|
440
|
+
}), r && /* @__PURE__ */ E(x, {
|
|
441
441
|
className: "size-3.5 shrink-0 text-action-primary-bg",
|
|
442
442
|
"aria-hidden": "true"
|
|
443
443
|
})]
|
|
@@ -445,13 +445,13 @@ function M({ label: e, family: t, accent: n, active: r, onSelect: i }) {
|
|
|
445
445
|
});
|
|
446
446
|
}
|
|
447
447
|
function N({ title: e, description: t, value: n, options: r, onChange: i }) {
|
|
448
|
-
return /* @__PURE__ */
|
|
448
|
+
return /* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(f, { children: e }), /* @__PURE__ */ E(u, { children: t })] }), /* @__PURE__ */ E(l, { children: /* @__PURE__ */ E("div", {
|
|
449
449
|
role: "radiogroup",
|
|
450
450
|
"aria-label": e,
|
|
451
451
|
className: "inline-flex w-full flex-col gap-1 rounded-button border border-border-default bg-bg-sunken p-1 sm:w-auto sm:flex-row",
|
|
452
452
|
children: r.map((e) => {
|
|
453
453
|
let t = n === e.value;
|
|
454
|
-
return /* @__PURE__ */
|
|
454
|
+
return /* @__PURE__ */ E("button", {
|
|
455
455
|
type: "button",
|
|
456
456
|
role: "radio",
|
|
457
457
|
"aria-checked": t,
|
|
@@ -462,52 +462,52 @@ function N({ title: e, description: t, value: n, options: r, onChange: i }) {
|
|
|
462
462
|
})
|
|
463
463
|
}) })] });
|
|
464
464
|
}
|
|
465
|
-
function P({ name:
|
|
466
|
-
let A =
|
|
467
|
-
return /* @__PURE__ */
|
|
465
|
+
function P({ name: n, base: r, accent: i, density: a, typography: o, glass: s, reduceMotion: m, onName: te, onBase: _, onAccent: y, onDensity: b, onTypography: S, onGlass: C, onReduceMotion: re, onSave: w, onCancel: O }) {
|
|
466
|
+
let A = e(), j = ne(), M = v(), N = v(), P = v();
|
|
467
|
+
return /* @__PURE__ */ D(c, { children: [/* @__PURE__ */ D(d, {
|
|
468
468
|
className: "flex-row items-start justify-between gap-4 space-y-0",
|
|
469
|
-
children: [/* @__PURE__ */
|
|
469
|
+
children: [/* @__PURE__ */ D("div", {
|
|
470
470
|
className: "flex flex-col gap-1.5",
|
|
471
|
-
children: [/* @__PURE__ */
|
|
472
|
-
}), /* @__PURE__ */
|
|
471
|
+
children: [/* @__PURE__ */ E(f, { children: A("themeSwitcher.customTheme", "Custom theme") }), /* @__PURE__ */ E(u, { children: A("themeSwitcher.editorHelp", "Design a reusable theme and save it to your library.") })]
|
|
472
|
+
}), /* @__PURE__ */ E(t, {
|
|
473
473
|
type: "button",
|
|
474
474
|
variant: "ghost",
|
|
475
475
|
size: "icon-sm",
|
|
476
476
|
"aria-label": A("themeSwitcher.closeEditor", "Close editor"),
|
|
477
|
-
onClick:
|
|
478
|
-
children: /* @__PURE__ */ T
|
|
477
|
+
onClick: O,
|
|
478
|
+
children: /* @__PURE__ */ E(T, {
|
|
479
479
|
className: "size-4",
|
|
480
480
|
"aria-hidden": "true"
|
|
481
481
|
})
|
|
482
482
|
})]
|
|
483
|
-
}), /* @__PURE__ */
|
|
483
|
+
}), /* @__PURE__ */ D(l, {
|
|
484
484
|
className: "flex flex-col gap-4",
|
|
485
485
|
children: [
|
|
486
|
-
/* @__PURE__ */
|
|
486
|
+
/* @__PURE__ */ D("div", {
|
|
487
487
|
className: "flex flex-col gap-1.5",
|
|
488
|
-
children: [/* @__PURE__ */
|
|
488
|
+
children: [/* @__PURE__ */ E(p, {
|
|
489
489
|
htmlFor: M,
|
|
490
490
|
children: A("common.name", "Name")
|
|
491
|
-
}), /* @__PURE__ */
|
|
491
|
+
}), /* @__PURE__ */ E(ee, {
|
|
492
492
|
id: M,
|
|
493
|
-
value:
|
|
494
|
-
onChange: (e) =>
|
|
493
|
+
value: n,
|
|
494
|
+
onChange: (e) => te(e.target.value),
|
|
495
495
|
placeholder: A("themeSwitcher.myTheme", "My theme")
|
|
496
496
|
})]
|
|
497
497
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
498
|
+
/* @__PURE__ */ D("div", {
|
|
499
499
|
className: "flex flex-col gap-1.5",
|
|
500
|
-
children: [/* @__PURE__ */
|
|
500
|
+
children: [/* @__PURE__ */ E("span", {
|
|
501
501
|
className: "text-sm font-medium text-text-primary",
|
|
502
502
|
id: `${M}-base`,
|
|
503
503
|
children: A("themeSwitcher.base", "Base")
|
|
504
|
-
}), /* @__PURE__ */
|
|
504
|
+
}), /* @__PURE__ */ E("div", {
|
|
505
505
|
role: "radiogroup",
|
|
506
506
|
"aria-labelledby": `${M}-base`,
|
|
507
507
|
className: "inline-flex w-full gap-1 rounded-button border border-border-default bg-bg-sunken p-1 sm:w-auto",
|
|
508
508
|
children: ["light", "dark"].map((e) => {
|
|
509
|
-
let t =
|
|
510
|
-
return /* @__PURE__ */
|
|
509
|
+
let t = r === e;
|
|
510
|
+
return /* @__PURE__ */ E("button", {
|
|
511
511
|
type: "button",
|
|
512
512
|
role: "radio",
|
|
513
513
|
"aria-checked": t,
|
|
@@ -518,82 +518,82 @@ function P({ name: t, base: n, accent: r, density: i, typography: a, glass: o, r
|
|
|
518
518
|
})
|
|
519
519
|
})]
|
|
520
520
|
}),
|
|
521
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ D("div", {
|
|
522
522
|
className: "flex flex-col gap-1.5",
|
|
523
|
-
children: [/* @__PURE__ */
|
|
523
|
+
children: [/* @__PURE__ */ E(p, {
|
|
524
524
|
htmlFor: N,
|
|
525
525
|
children: A("themeSwitcher.accent", "Accent")
|
|
526
|
-
}), /* @__PURE__ */
|
|
526
|
+
}), /* @__PURE__ */ D("div", {
|
|
527
527
|
className: "flex items-center gap-3",
|
|
528
|
-
children: [/* @__PURE__ */
|
|
528
|
+
children: [/* @__PURE__ */ E("input", {
|
|
529
529
|
id: N,
|
|
530
530
|
type: "color",
|
|
531
|
-
value:
|
|
531
|
+
value: i,
|
|
532
532
|
onChange: (e) => y(e.target.value),
|
|
533
533
|
"aria-label": A("themeSwitcher.accentColor", "Accent color"),
|
|
534
534
|
className: "size-10 cursor-pointer rounded-input border border-border-default bg-bg-surface p-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]"
|
|
535
|
-
}), /* @__PURE__ */
|
|
535
|
+
}), /* @__PURE__ */ E("span", {
|
|
536
536
|
className: "font-mono text-sm uppercase text-text-secondary",
|
|
537
|
-
children:
|
|
537
|
+
children: i
|
|
538
538
|
})]
|
|
539
539
|
})]
|
|
540
540
|
}),
|
|
541
|
-
/* @__PURE__ */
|
|
541
|
+
/* @__PURE__ */ D("div", {
|
|
542
542
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-3",
|
|
543
543
|
children: [
|
|
544
|
-
/* @__PURE__ */
|
|
544
|
+
/* @__PURE__ */ E(F, {
|
|
545
545
|
label: A("themeSwitcher.density", "Density"),
|
|
546
|
-
value:
|
|
547
|
-
options:
|
|
546
|
+
value: a,
|
|
547
|
+
options: k.map((e) => ({
|
|
548
548
|
...e,
|
|
549
549
|
label: j.density[e.value]
|
|
550
550
|
})),
|
|
551
551
|
onChange: (e) => b(e)
|
|
552
552
|
}),
|
|
553
|
-
/* @__PURE__ */
|
|
553
|
+
/* @__PURE__ */ E(F, {
|
|
554
554
|
label: A("themeSwitcher.typography", "Typography"),
|
|
555
|
-
value:
|
|
556
|
-
options:
|
|
555
|
+
value: o,
|
|
556
|
+
options: ie.map((e) => ({
|
|
557
557
|
...e,
|
|
558
558
|
label: j.typography[e.value]
|
|
559
559
|
})),
|
|
560
560
|
onChange: (e) => S(e)
|
|
561
561
|
}),
|
|
562
|
-
/* @__PURE__ */
|
|
562
|
+
/* @__PURE__ */ E(F, {
|
|
563
563
|
label: A("themeSwitcher.glass", "Glass"),
|
|
564
|
-
value:
|
|
564
|
+
value: s,
|
|
565
565
|
options: ae.map((e) => ({
|
|
566
566
|
...e,
|
|
567
567
|
label: j.glass[e.value]
|
|
568
568
|
})),
|
|
569
|
-
onChange: (e) =>
|
|
569
|
+
onChange: (e) => C(e)
|
|
570
570
|
})
|
|
571
571
|
]
|
|
572
572
|
}),
|
|
573
|
-
/* @__PURE__ */
|
|
573
|
+
/* @__PURE__ */ D("div", {
|
|
574
574
|
className: "flex items-center justify-between gap-4",
|
|
575
|
-
children: [/* @__PURE__ */
|
|
575
|
+
children: [/* @__PURE__ */ E(p, {
|
|
576
576
|
htmlFor: P,
|
|
577
577
|
className: "text-sm font-medium text-text-primary",
|
|
578
578
|
children: A("themeSwitcher.reduceMotion", "Reduce motion")
|
|
579
|
-
}), /* @__PURE__ */
|
|
579
|
+
}), /* @__PURE__ */ E(h, {
|
|
580
580
|
id: P,
|
|
581
|
-
checked:
|
|
582
|
-
onCheckedChange:
|
|
581
|
+
checked: m,
|
|
582
|
+
onCheckedChange: re,
|
|
583
583
|
"aria-label": A("themeSwitcher.reduceMotion", "Reduce motion")
|
|
584
584
|
})]
|
|
585
585
|
}),
|
|
586
|
-
/* @__PURE__ */
|
|
586
|
+
/* @__PURE__ */ D("div", {
|
|
587
587
|
className: "flex items-center justify-end gap-2 pt-2",
|
|
588
|
-
children: [/* @__PURE__ */
|
|
588
|
+
children: [/* @__PURE__ */ E(t, {
|
|
589
589
|
type: "button",
|
|
590
590
|
variant: "ghost",
|
|
591
|
-
onClick:
|
|
591
|
+
onClick: O,
|
|
592
592
|
children: A("common.actions.cancel", "Cancel")
|
|
593
|
-
}), /* @__PURE__ */
|
|
593
|
+
}), /* @__PURE__ */ D(t, {
|
|
594
594
|
type: "button",
|
|
595
|
-
onClick:
|
|
596
|
-
children: [/* @__PURE__ */
|
|
595
|
+
onClick: w,
|
|
596
|
+
children: [/* @__PURE__ */ E(x, {
|
|
597
597
|
className: "size-4",
|
|
598
598
|
"aria-hidden": "true"
|
|
599
599
|
}), A("common.save", "Save")]
|
|
@@ -602,20 +602,20 @@ function P({ name: t, base: n, accent: r, density: i, typography: a, glass: o, r
|
|
|
602
602
|
]
|
|
603
603
|
})] });
|
|
604
604
|
}
|
|
605
|
-
function F({ label: e, value:
|
|
605
|
+
function F({ label: e, value: t, options: s, onChange: c }) {
|
|
606
606
|
let l = v();
|
|
607
|
-
return /* @__PURE__ */
|
|
607
|
+
return /* @__PURE__ */ D("div", {
|
|
608
608
|
className: "flex flex-col gap-1.5",
|
|
609
|
-
children: [/* @__PURE__ */
|
|
609
|
+
children: [/* @__PURE__ */ E(p, {
|
|
610
610
|
htmlFor: l,
|
|
611
611
|
children: e
|
|
612
|
-
}), /* @__PURE__ */
|
|
613
|
-
value:
|
|
612
|
+
}), /* @__PURE__ */ D(n, {
|
|
613
|
+
value: t,
|
|
614
614
|
onValueChange: c,
|
|
615
|
-
children: [/* @__PURE__ */
|
|
615
|
+
children: [/* @__PURE__ */ E(a, {
|
|
616
616
|
id: l,
|
|
617
|
-
children: /* @__PURE__ */
|
|
618
|
-
}), /* @__PURE__ */
|
|
617
|
+
children: /* @__PURE__ */ E(o, {})
|
|
618
|
+
}), /* @__PURE__ */ E(r, { children: s.map((e) => /* @__PURE__ */ E(i, {
|
|
619
619
|
value: e.value,
|
|
620
620
|
children: e.label
|
|
621
621
|
}, e.value)) })]
|