@xenide-io/the-old-ui-theme 0.5.2 → 0.5.3
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/README.md +47 -34
- package/dist/{chunk-RZXHZWUB.mjs → chunk-VFTZXPXM.mjs} +30 -143
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +30 -143
- package/dist/index.mjs +1 -1
- package/dist/suite.d.mts +19 -14
- package/dist/suite.d.ts +19 -14
- package/dist/suite.js +168 -96
- package/dist/suite.mjs +168 -96
- package/dist/ui.js +30 -143
- package/dist/ui.mjs +1 -1
- package/package.json +1 -1
- package/src/app/globals.css +1 -0
- package/src/components/ui/ThemeSwitcher.tsx +12 -3
- package/src/styles/suite-skin.css +71 -1
- package/src/styles/themes.css +445 -1656
- package/src/suite/components/suite-app-layout.tsx +31 -10
- package/src/suite/components/suite-sidebar.tsx +50 -42
- package/src/suite/components/suite-user-menu.tsx +48 -26
- package/src/suite/components/today-page-frame.tsx +1 -1
- package/src/suite/icons/app-accents.ts +38 -43
- package/src/suite/icons/glyph-parts.tsx +16 -9
- package/src/suite/icons/glyphs.ts +130 -99
- package/src/suite/lib/apps.ts +1 -1
- package/src/suite/lib/use-sidebar-width.ts +23 -8
package/dist/suite.mjs
CHANGED
|
@@ -99,10 +99,10 @@ var APP_ACCENTS = {
|
|
|
99
99
|
},
|
|
100
100
|
nakama: {
|
|
101
101
|
label: "Nakama",
|
|
102
|
-
accent: "#
|
|
103
|
-
tile: "#
|
|
104
|
-
onTile: "#
|
|
105
|
-
onTileAccent: "#
|
|
102
|
+
accent: "#b8eb44",
|
|
103
|
+
tile: "#17101f",
|
|
104
|
+
onTile: "#fff2e2",
|
|
105
|
+
onTileAccent: "#f54b87"
|
|
106
106
|
}
|
|
107
107
|
};
|
|
108
108
|
var APP_GLYPHS = {
|
|
@@ -111,7 +111,7 @@ var APP_GLYPHS = {
|
|
|
111
111
|
kraken: "squid-doc",
|
|
112
112
|
shellstack: "stack-hex",
|
|
113
113
|
crew: "crew-bot",
|
|
114
|
-
nakama: "
|
|
114
|
+
nakama: "nakama-fist"
|
|
115
115
|
};
|
|
116
116
|
|
|
117
117
|
// src/suite/icons/glyph-parts.tsx
|
|
@@ -121,7 +121,15 @@ function GlyphElement({ element }) {
|
|
|
121
121
|
const stroke = element.filled ? "none" : void 0;
|
|
122
122
|
switch (element.kind) {
|
|
123
123
|
case "path":
|
|
124
|
-
return /* @__PURE__ */ jsx2(
|
|
124
|
+
return /* @__PURE__ */ jsx2(
|
|
125
|
+
"path",
|
|
126
|
+
{
|
|
127
|
+
d: element.d,
|
|
128
|
+
fill,
|
|
129
|
+
stroke,
|
|
130
|
+
transform: element.transform
|
|
131
|
+
}
|
|
132
|
+
);
|
|
125
133
|
case "circle":
|
|
126
134
|
return /* @__PURE__ */ jsx2(
|
|
127
135
|
"circle",
|
|
@@ -226,6 +234,24 @@ var SUITE_GLYPHS = {
|
|
|
226
234
|
{ kind: "path", d: "M9.6 14.6q2.4 1.7 4.8 0", accent: true }
|
|
227
235
|
]
|
|
228
236
|
},
|
|
237
|
+
"nakama-fist": {
|
|
238
|
+
description: "Nakama \u2014 raised fist with neon crew signal lines",
|
|
239
|
+
elements: [
|
|
240
|
+
{
|
|
241
|
+
kind: "path",
|
|
242
|
+
d: "M192 0c17.7 0 32 14.3 32 32v112h-64V32c0-17.7 14.3-32 32-32zM64 64c0-17.7-32-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32v-64zm-96 88v-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6v8.6c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267v-27c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40h-56c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z",
|
|
243
|
+
filled: true,
|
|
244
|
+
transform: "translate(2.5 1.75) scale(.0425 .0375)"
|
|
245
|
+
},
|
|
246
|
+
{ kind: "path", d: "M7 18h3.5M12.2 18h3M8.5 19.5h6", accent: true },
|
|
247
|
+
{
|
|
248
|
+
kind: "path",
|
|
249
|
+
d: "M4.8 5.8h2.7M4.8 7.4h1.4M18.5 17.1h1.7",
|
|
250
|
+
accent: true
|
|
251
|
+
},
|
|
252
|
+
{ kind: "circle", cx: 18.5, cy: 4.5, r: 0.8, accent: true, filled: true }
|
|
253
|
+
]
|
|
254
|
+
},
|
|
229
255
|
workspace: {
|
|
230
256
|
description: "Workspace container \u2014 panel with header bar and content",
|
|
231
257
|
elements: [
|
|
@@ -239,7 +265,15 @@ var SUITE_GLYPHS = {
|
|
|
239
265
|
organisation: {
|
|
240
266
|
description: "Organisation chart \u2014 root node with two members",
|
|
241
267
|
elements: [
|
|
242
|
-
{
|
|
268
|
+
{
|
|
269
|
+
kind: "rect",
|
|
270
|
+
x: 9.5,
|
|
271
|
+
y: 3.5,
|
|
272
|
+
width: 5,
|
|
273
|
+
height: 5,
|
|
274
|
+
rx: 1.4,
|
|
275
|
+
accent: true
|
|
276
|
+
},
|
|
243
277
|
{ kind: "path", d: "M12 8.5v2.5" },
|
|
244
278
|
{ kind: "path", d: "M6.75 13.5v-2.5h10.5v2.5" },
|
|
245
279
|
{ kind: "rect", x: 4.25, y: 13.5, width: 5, height: 5, rx: 1.4 },
|
|
@@ -283,7 +317,10 @@ var SUITE_GLYPHS = {
|
|
|
283
317
|
"bell-wave": {
|
|
284
318
|
description: "Notifications \u2014 bell with sound waves",
|
|
285
319
|
elements: [
|
|
286
|
-
{
|
|
320
|
+
{
|
|
321
|
+
kind: "path",
|
|
322
|
+
d: "M7 9.2a5 5 0 0 1 10 0c0 5.3 2.4 7.3 2.4 7.3H4.6S7 14.5 7 9.2"
|
|
323
|
+
},
|
|
287
324
|
{ kind: "path", d: "M10.7 19.3a1.5 1.5 0 0 0 2.6 0" },
|
|
288
325
|
{ kind: "path", d: "M17.9 6.4a5.5 5.5 0 0 1 1.4 3.7", accent: true },
|
|
289
326
|
{ kind: "path", d: "M15.7 4a9.4 9.4 0 0 1 2.4 6", accent: true }
|
|
@@ -1806,23 +1843,24 @@ function SuiteUserMenu({
|
|
|
1806
1843
|
settingsHref,
|
|
1807
1844
|
onSignOut,
|
|
1808
1845
|
fallbackInitials,
|
|
1846
|
+
showSignOutAction = false,
|
|
1809
1847
|
dataTest = "suite-user-menu",
|
|
1810
1848
|
className
|
|
1811
1849
|
}) {
|
|
1812
1850
|
const router = useRouter2();
|
|
1813
1851
|
const initials = fallbackInitials != null ? fallbackInitials : computeInitials(name, email);
|
|
1814
|
-
const avatar = /* @__PURE__ */ jsx14("span", { className: "inline-flex h-11 w-11 items-center justify-center rounded-full transition-colors hover:bg-ph-muted", children: image ? /* @__PURE__ */ jsx14(
|
|
1852
|
+
const avatar = /* @__PURE__ */ jsx14("span", { className: "inline-flex h-11 w-11 items-center justify-center rounded-full ring-2 ring-ph-border ring-offset-1 ring-offset-ph-canvas transition-colors hover:bg-ph-muted", children: image ? /* @__PURE__ */ jsx14(
|
|
1815
1853
|
Image2,
|
|
1816
1854
|
{
|
|
1817
1855
|
src: image,
|
|
1818
1856
|
alt: "",
|
|
1819
|
-
width:
|
|
1820
|
-
height:
|
|
1821
|
-
className: "h-
|
|
1857
|
+
width: 40,
|
|
1858
|
+
height: 40,
|
|
1859
|
+
className: "h-10 w-10 rounded-full object-cover",
|
|
1822
1860
|
unoptimized: true
|
|
1823
1861
|
}
|
|
1824
|
-
) : /* @__PURE__ */ jsx14("span", { className: "flex h-
|
|
1825
|
-
|
|
1862
|
+
) : /* @__PURE__ */ jsx14("span", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-ph-muted text-sm font-semibold text-ph-brand", children: initials }) });
|
|
1863
|
+
const accountMenu = /* @__PURE__ */ jsxs12(
|
|
1826
1864
|
DropdownMenu,
|
|
1827
1865
|
{
|
|
1828
1866
|
trigger: avatar,
|
|
@@ -1832,7 +1870,7 @@ function SuiteUserMenu({
|
|
|
1832
1870
|
sideOffset: 6,
|
|
1833
1871
|
collisionPadding: 16,
|
|
1834
1872
|
modal: false,
|
|
1835
|
-
className,
|
|
1873
|
+
className: showSignOutAction ? void 0 : className,
|
|
1836
1874
|
"data-test": dataTest,
|
|
1837
1875
|
children: [
|
|
1838
1876
|
/* @__PURE__ */ jsxs12("div", { className: "px-2 py-1.5", children: [
|
|
@@ -1851,20 +1889,31 @@ function SuiteUserMenu({
|
|
|
1851
1889
|
]
|
|
1852
1890
|
}
|
|
1853
1891
|
),
|
|
1854
|
-
/* @__PURE__ */ jsxs12(
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
onClick: onSignOut,
|
|
1859
|
-
children: [
|
|
1860
|
-
/* @__PURE__ */ jsx14(LogOut, { className: "h-4 w-4 text-ph-mutedtext", "aria-hidden": true }),
|
|
1861
|
-
"Sign out"
|
|
1862
|
-
]
|
|
1863
|
-
}
|
|
1864
|
-
)
|
|
1892
|
+
/* @__PURE__ */ jsxs12(DropdownItem, { "data-test": `${dataTest}-sign-out`, onClick: onSignOut, children: [
|
|
1893
|
+
/* @__PURE__ */ jsx14(LogOut, { className: "h-4 w-4 text-ph-mutedtext", "aria-hidden": true }),
|
|
1894
|
+
"Sign out"
|
|
1895
|
+
] })
|
|
1865
1896
|
]
|
|
1866
1897
|
}
|
|
1867
1898
|
);
|
|
1899
|
+
if (!showSignOutAction) {
|
|
1900
|
+
return accountMenu;
|
|
1901
|
+
}
|
|
1902
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
|
|
1903
|
+
accountMenu,
|
|
1904
|
+
/* @__PURE__ */ jsx14(
|
|
1905
|
+
"button",
|
|
1906
|
+
{
|
|
1907
|
+
type: "button",
|
|
1908
|
+
"data-test": `${dataTest}-visible-sign-out`,
|
|
1909
|
+
title: "Sign out",
|
|
1910
|
+
"aria-label": "Sign out",
|
|
1911
|
+
className: "inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-lg text-ph-mutedtext transition-colors hover:bg-ph-muted hover:text-ph-ink focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ph-focus-ring",
|
|
1912
|
+
onClick: onSignOut,
|
|
1913
|
+
children: /* @__PURE__ */ jsx14(LogOut, { className: "h-4 w-4", "aria-hidden": true })
|
|
1914
|
+
}
|
|
1915
|
+
)
|
|
1916
|
+
] });
|
|
1868
1917
|
}
|
|
1869
1918
|
|
|
1870
1919
|
// src/suite/components/suite-bottom-nav.tsx
|
|
@@ -2544,8 +2593,9 @@ function snapWidth(width) {
|
|
|
2544
2593
|
if (width < SIDEBAR_MIN_EXPANDED_WIDTH) return SIDEBAR_MIN_EXPANDED_WIDTH;
|
|
2545
2594
|
return Math.min(SIDEBAR_MAX_WIDTH, width);
|
|
2546
2595
|
}
|
|
2547
|
-
function useSidebarWidth(storageKey) {
|
|
2548
|
-
const
|
|
2596
|
+
function useSidebarWidth(storageKey, defaultWidth = SIDEBAR_DEFAULT_WIDTH) {
|
|
2597
|
+
const fallbackWidth = snapWidth(clampWidth(defaultWidth));
|
|
2598
|
+
const [width, setWidth] = useState8(fallbackWidth);
|
|
2549
2599
|
const [narrowViewport, setNarrowViewport] = useState8(false);
|
|
2550
2600
|
const collapsed = narrowViewport || width <= SIDEBAR_COLLAPSE_THRESHOLD;
|
|
2551
2601
|
useEffect7(() => {
|
|
@@ -2579,17 +2629,17 @@ function useSidebarWidth(storageKey) {
|
|
|
2579
2629
|
const setCollapsed = useCallback3(
|
|
2580
2630
|
(value) => {
|
|
2581
2631
|
setWidth((current) => {
|
|
2582
|
-
const next = value ? SIDEBAR_RAIL_WIDTH : current <= SIDEBAR_COLLAPSE_THRESHOLD ?
|
|
2632
|
+
const next = value ? SIDEBAR_RAIL_WIDTH : current <= SIDEBAR_COLLAPSE_THRESHOLD ? fallbackWidth : snapWidth(current);
|
|
2583
2633
|
persist(next);
|
|
2584
2634
|
return next;
|
|
2585
2635
|
});
|
|
2586
2636
|
},
|
|
2587
|
-
[persist]
|
|
2637
|
+
[fallbackWidth, persist]
|
|
2588
2638
|
);
|
|
2589
2639
|
const resetWidth = useCallback3(() => {
|
|
2590
|
-
setWidth(
|
|
2591
|
-
persist(
|
|
2592
|
-
}, [persist]);
|
|
2640
|
+
setWidth(fallbackWidth);
|
|
2641
|
+
persist(fallbackWidth);
|
|
2642
|
+
}, [fallbackWidth, persist]);
|
|
2593
2643
|
const startResize = useCallback3(
|
|
2594
2644
|
(event) => {
|
|
2595
2645
|
event.preventDefault();
|
|
@@ -2612,7 +2662,17 @@ function useSidebarWidth(storageKey) {
|
|
|
2612
2662
|
},
|
|
2613
2663
|
[persist, width]
|
|
2614
2664
|
);
|
|
2615
|
-
|
|
2665
|
+
const resizeBy = useCallback3(
|
|
2666
|
+
(delta) => {
|
|
2667
|
+
setWidth((current) => {
|
|
2668
|
+
const next = clampWidth(current + delta);
|
|
2669
|
+
persist(next);
|
|
2670
|
+
return next;
|
|
2671
|
+
});
|
|
2672
|
+
},
|
|
2673
|
+
[persist]
|
|
2674
|
+
);
|
|
2675
|
+
return { width, collapsed, setCollapsed, resetWidth, startResize, resizeBy };
|
|
2616
2676
|
}
|
|
2617
2677
|
|
|
2618
2678
|
// src/suite/lib/motion.tsx
|
|
@@ -2881,67 +2941,60 @@ function SuiteSidebar({
|
|
|
2881
2941
|
collapsed ? "px-1.5 py-2" : "p-2"
|
|
2882
2942
|
),
|
|
2883
2943
|
children: [
|
|
2884
|
-
/* @__PURE__ */ jsxs18(
|
|
2885
|
-
"
|
|
2886
|
-
{
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
"span",
|
|
2909
|
-
{
|
|
2910
|
-
className: cn(
|
|
2911
|
-
"relative flex h-4 w-4 shrink-0 items-center justify-center",
|
|
2912
|
-
item.iconClassName
|
|
2913
|
-
),
|
|
2914
|
-
"aria-hidden": true,
|
|
2915
|
-
children: /* @__PURE__ */ jsx21(
|
|
2916
|
-
Icon,
|
|
2917
|
-
{
|
|
2918
|
-
className: "h-full w-full",
|
|
2919
|
-
strokeWidth: active ? 2 : 1.75
|
|
2920
|
-
}
|
|
2921
|
-
)
|
|
2922
|
-
}
|
|
2944
|
+
/* @__PURE__ */ jsxs18("nav", { "aria-label": "Pages", className: "shrink-0 space-y-0.5", children: [
|
|
2945
|
+
/* @__PURE__ */ jsx21("div", { className: cn("mb-3", collapsed && "flex justify-center"), children: renderNode(contextSwitcher, collapsed) }),
|
|
2946
|
+
/* @__PURE__ */ jsx21("div", { className: "space-y-0.5", children: navItems.map((item) => {
|
|
2947
|
+
const Icon = item.icon;
|
|
2948
|
+
const active = Boolean(item.active);
|
|
2949
|
+
const link = /* @__PURE__ */ jsxs18(
|
|
2950
|
+
Link2,
|
|
2951
|
+
{
|
|
2952
|
+
href: item.href,
|
|
2953
|
+
"data-test": "nav-link",
|
|
2954
|
+
"aria-current": active ? "page" : void 0,
|
|
2955
|
+
onClick: item.onClick,
|
|
2956
|
+
className: cn(
|
|
2957
|
+
"group relative flex items-center gap-2.5 rounded-[var(--ph-radius-app)] text-sm font-medium transition-colors",
|
|
2958
|
+
active ? "bg-ph-muted" : "text-ph-subtle hover:bg-ph-muted hover:text-ph-ink",
|
|
2959
|
+
collapsed ? "mx-auto size-10 shrink-0 justify-center gap-0 px-0 py-0" : "w-full px-2.5 py-2"
|
|
2960
|
+
),
|
|
2961
|
+
children: [
|
|
2962
|
+
/* @__PURE__ */ jsx21(
|
|
2963
|
+
"span",
|
|
2964
|
+
{
|
|
2965
|
+
className: cn(
|
|
2966
|
+
"relative flex h-4 w-4 shrink-0 items-center justify-center",
|
|
2967
|
+
item.iconClassName
|
|
2923
2968
|
),
|
|
2924
|
-
|
|
2925
|
-
|
|
2969
|
+
"aria-hidden": true,
|
|
2970
|
+
children: /* @__PURE__ */ jsx21(
|
|
2971
|
+
Icon,
|
|
2926
2972
|
{
|
|
2927
|
-
className:
|
|
2928
|
-
|
|
2929
|
-
active ? "text-ph-ink" : "text-ph-subtle group-hover:text-ph-ink",
|
|
2930
|
-
collapsed && "sr-only"
|
|
2931
|
-
),
|
|
2932
|
-
children: item.label
|
|
2973
|
+
className: "h-full w-full",
|
|
2974
|
+
strokeWidth: active ? 2 : 1.75
|
|
2933
2975
|
}
|
|
2976
|
+
)
|
|
2977
|
+
}
|
|
2978
|
+
),
|
|
2979
|
+
/* @__PURE__ */ jsx21(
|
|
2980
|
+
"span",
|
|
2981
|
+
{
|
|
2982
|
+
className: cn(
|
|
2983
|
+
"relative truncate",
|
|
2984
|
+
active ? "text-ph-ink" : "text-ph-subtle group-hover:text-ph-ink",
|
|
2985
|
+
collapsed && "sr-only"
|
|
2934
2986
|
),
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
item.
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2987
|
+
children: item.label
|
|
2988
|
+
}
|
|
2989
|
+
),
|
|
2990
|
+
!collapsed && item.badge ? /* @__PURE__ */ jsx21("span", { className: "relative ml-auto shrink-0", children: item.badge }) : null
|
|
2991
|
+
]
|
|
2992
|
+
},
|
|
2993
|
+
item.label
|
|
2994
|
+
);
|
|
2995
|
+
return collapsed ? /* @__PURE__ */ jsx21(Tooltip, { content: item.label, side: "right", children: link }, item.label) : link;
|
|
2996
|
+
}) })
|
|
2997
|
+
] }),
|
|
2945
2998
|
secondaryNav ? /* @__PURE__ */ jsx21(
|
|
2946
2999
|
"div",
|
|
2947
3000
|
{
|
|
@@ -2966,11 +3019,11 @@ function SuiteSidebar({
|
|
|
2966
3019
|
{
|
|
2967
3020
|
className: cn(
|
|
2968
3021
|
"flex items-center gap-2",
|
|
2969
|
-
collapsed
|
|
3022
|
+
collapsed ? "flex-col justify-center" : "min-w-0"
|
|
2970
3023
|
),
|
|
2971
3024
|
children: [
|
|
2972
3025
|
renderNode(userMenu, collapsed),
|
|
2973
|
-
|
|
3026
|
+
footerExtras ? /* @__PURE__ */ jsx21("div", { className: cn("shrink-0", collapsed ? "mt-2" : "ml-auto"), children: renderNode(footerExtras, collapsed) }) : null
|
|
2974
3027
|
]
|
|
2975
3028
|
}
|
|
2976
3029
|
)
|
|
@@ -2992,6 +3045,7 @@ function SuiteAppLayout({
|
|
|
2992
3045
|
collapsed = false,
|
|
2993
3046
|
lockMainScroll = false,
|
|
2994
3047
|
onStartResize,
|
|
3048
|
+
onResizeBy,
|
|
2995
3049
|
onResetWidth,
|
|
2996
3050
|
className
|
|
2997
3051
|
}) {
|
|
@@ -2999,12 +3053,15 @@ function SuiteAppLayout({
|
|
|
2999
3053
|
"div",
|
|
3000
3054
|
{
|
|
3001
3055
|
"data-test": "app-shell",
|
|
3002
|
-
className: cn(
|
|
3056
|
+
className: cn(
|
|
3057
|
+
"suite-app-layout flex min-h-dvh lg:h-screen lg:overflow-hidden",
|
|
3058
|
+
className
|
|
3059
|
+
),
|
|
3003
3060
|
children: [
|
|
3004
3061
|
/* @__PURE__ */ jsxs19(
|
|
3005
3062
|
"aside",
|
|
3006
3063
|
{
|
|
3007
|
-
className: "relative hidden shrink-0 flex-col overflow-
|
|
3064
|
+
className: "relative hidden shrink-0 flex-col overflow-visible border-r border-ph-border ease-out lg:flex",
|
|
3008
3065
|
style: { width: `${sidebarWidth}px` },
|
|
3009
3066
|
"data-collapsed": collapsed ? "true" : "false",
|
|
3010
3067
|
children: [
|
|
@@ -3015,9 +3072,23 @@ function SuiteAppLayout({
|
|
|
3015
3072
|
role: "separator",
|
|
3016
3073
|
"aria-orientation": "vertical",
|
|
3017
3074
|
"aria-label": "Resize sidebar",
|
|
3075
|
+
"data-test": "sidebar-resize-handle",
|
|
3076
|
+
tabIndex: onResizeBy ? 0 : void 0,
|
|
3018
3077
|
onPointerDown: onStartResize,
|
|
3019
3078
|
onDoubleClick: onResetWidth,
|
|
3020
|
-
|
|
3079
|
+
onKeyDown: (event) => {
|
|
3080
|
+
if (event.key === "Home") {
|
|
3081
|
+
event.preventDefault();
|
|
3082
|
+
onResetWidth == null ? void 0 : onResetWidth();
|
|
3083
|
+
} else if (event.key === "ArrowLeft") {
|
|
3084
|
+
event.preventDefault();
|
|
3085
|
+
onResizeBy == null ? void 0 : onResizeBy(-16);
|
|
3086
|
+
} else if (event.key === "ArrowRight") {
|
|
3087
|
+
event.preventDefault();
|
|
3088
|
+
onResizeBy == null ? void 0 : onResizeBy(16);
|
|
3089
|
+
}
|
|
3090
|
+
},
|
|
3091
|
+
className: "absolute inset-y-0 -right-1 z-10 w-2 cursor-col-resize touch-none transition-colors hover:bg-[color-mix(in_oklab,var(--ph-accent)_30%,transparent)]"
|
|
3021
3092
|
}
|
|
3022
3093
|
) : null
|
|
3023
3094
|
]
|
|
@@ -3033,6 +3104,7 @@ function SuiteAppLayout({
|
|
|
3033
3104
|
"data-lock-scroll": lockMainScroll ? "true" : void 0,
|
|
3034
3105
|
className: cn(
|
|
3035
3106
|
"flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden overscroll-contain bg-ph-canvas focus:outline-none",
|
|
3107
|
+
"suite-app-layout__main",
|
|
3036
3108
|
lockMainScroll ? "overflow-hidden" : "overflow-y-auto"
|
|
3037
3109
|
),
|
|
3038
3110
|
children
|
package/dist/ui.js
CHANGED
|
@@ -2388,177 +2388,65 @@ var THEMES = [
|
|
|
2388
2388
|
colorScheme: "dark",
|
|
2389
2389
|
group: "HedgeHog"
|
|
2390
2390
|
},
|
|
2391
|
-
{
|
|
2392
|
-
id: "catppuccin-light",
|
|
2393
|
-
name: "Catppuccin Light",
|
|
2394
|
-
description: "Catppuccin Latte \u2014 soft pastels and mauve accent.",
|
|
2395
|
-
colorScheme: "light",
|
|
2396
|
-
group: "Catppuccin"
|
|
2397
|
-
},
|
|
2398
|
-
{
|
|
2399
|
-
id: "catppuccin-dark",
|
|
2400
|
-
name: "Catppuccin Dark",
|
|
2401
|
-
description: "Catppuccin Mocha \u2014 deep base and lavender peach.",
|
|
2402
|
-
colorScheme: "dark",
|
|
2403
|
-
group: "Catppuccin"
|
|
2404
|
-
},
|
|
2405
|
-
{
|
|
2406
|
-
id: "sheets",
|
|
2407
|
-
name: "Sheets",
|
|
2408
|
-
description: "Spreadsheet green on office neutrals.",
|
|
2409
|
-
colorScheme: "light",
|
|
2410
|
-
group: "Productivity"
|
|
2411
|
-
},
|
|
2412
|
-
{
|
|
2413
|
-
id: "sheets-dark",
|
|
2414
|
-
name: "Sheets Dark",
|
|
2415
|
-
description: "Dark shell with spreadsheet green accent.",
|
|
2416
|
-
colorScheme: "dark",
|
|
2417
|
-
group: "Productivity"
|
|
2418
|
-
},
|
|
2419
2391
|
{
|
|
2420
2392
|
id: "note",
|
|
2421
|
-
name: "Note",
|
|
2393
|
+
name: "Note Light",
|
|
2422
2394
|
description: "Notebook purple on lavender-white chrome.",
|
|
2423
2395
|
colorScheme: "light",
|
|
2424
|
-
group: "
|
|
2396
|
+
group: "Note"
|
|
2425
2397
|
},
|
|
2426
2398
|
{
|
|
2427
2399
|
id: "note-dark",
|
|
2428
2400
|
name: "Note Dark",
|
|
2429
2401
|
description: "Dark notebook purple \u2014 night reading mode.",
|
|
2430
2402
|
colorScheme: "dark",
|
|
2431
|
-
group: "
|
|
2432
|
-
},
|
|
2433
|
-
{
|
|
2434
|
-
id: "presentation",
|
|
2435
|
-
name: "Presentation",
|
|
2436
|
-
description: "Orange-red on office neutrals.",
|
|
2437
|
-
colorScheme: "light",
|
|
2438
|
-
group: "Productivity"
|
|
2439
|
-
},
|
|
2440
|
-
{
|
|
2441
|
-
id: "presentation-dark",
|
|
2442
|
-
name: "Presentation Dark",
|
|
2443
|
-
description: "Dark shell with orange-red accent.",
|
|
2444
|
-
colorScheme: "dark",
|
|
2445
|
-
group: "Productivity"
|
|
2446
|
-
},
|
|
2447
|
-
{
|
|
2448
|
-
id: "socials",
|
|
2449
|
-
name: "Socials",
|
|
2450
|
-
description: "Meta blue accent on familiar social greys.",
|
|
2451
|
-
colorScheme: "light",
|
|
2452
|
-
group: "Social"
|
|
2453
|
-
},
|
|
2454
|
-
{
|
|
2455
|
-
id: "socials-dark",
|
|
2456
|
-
name: "Socials Dark",
|
|
2457
|
-
description: "Social dark mode \u2014 #18191A base and Meta blue.",
|
|
2458
|
-
colorScheme: "dark",
|
|
2459
|
-
group: "Social"
|
|
2460
|
-
},
|
|
2461
|
-
{
|
|
2462
|
-
id: "chats-light",
|
|
2463
|
-
name: "Chats Light",
|
|
2464
|
-
description: "Aubergine brand on clean workspace neutrals.",
|
|
2465
|
-
colorScheme: "light",
|
|
2466
|
-
group: "Chats"
|
|
2467
|
-
},
|
|
2468
|
-
{
|
|
2469
|
-
id: "chats-dark",
|
|
2470
|
-
name: "Chats Dark",
|
|
2471
|
-
description: "Dark sidebar \u2014 #1A1D21 base and green highlights.",
|
|
2472
|
-
colorScheme: "dark",
|
|
2473
|
-
group: "Chats"
|
|
2474
|
-
},
|
|
2475
|
-
{
|
|
2476
|
-
id: "xenide-light",
|
|
2477
|
-
name: "Xenide Light",
|
|
2478
|
-
description: "xenide.io light \u2014 Excel green + purple on neutral greys.",
|
|
2479
|
-
colorScheme: "light",
|
|
2480
|
-
group: "Xenide"
|
|
2481
|
-
},
|
|
2482
|
-
{
|
|
2483
|
-
id: "xenide-dark",
|
|
2484
|
-
name: "Xenide Dark",
|
|
2485
|
-
description: "xenide.io dark \u2014 #0A0A0F base, emerald green + violet.",
|
|
2486
|
-
colorScheme: "dark",
|
|
2487
|
-
group: "Xenide"
|
|
2488
|
-
},
|
|
2489
|
-
{
|
|
2490
|
-
id: "bikini-bottom",
|
|
2491
|
-
name: "Bikini Bottom",
|
|
2492
|
-
description: "SpongeBob palette \u2014 ocean canvas, readable surfaces, character accents.",
|
|
2493
|
-
colorScheme: "light",
|
|
2494
|
-
group: "Fun"
|
|
2495
|
-
},
|
|
2496
|
-
{
|
|
2497
|
-
id: "bikini-bottom-dark",
|
|
2498
|
-
name: "Bikini Bottom Dark",
|
|
2499
|
-
description: "Bikini Bottom at night \u2014 deep ocean with neon character accents.",
|
|
2500
|
-
colorScheme: "dark",
|
|
2501
|
-
group: "Fun"
|
|
2403
|
+
group: "Note"
|
|
2502
2404
|
},
|
|
2503
2405
|
{
|
|
2504
2406
|
id: "turtletime",
|
|
2505
|
-
name: "TurtleTime",
|
|
2407
|
+
name: "TurtleTime Light",
|
|
2506
2408
|
description: "Turtle mascot palette \u2014 shell orange, leaf green, and warm cream.",
|
|
2507
2409
|
colorScheme: "light",
|
|
2508
|
-
group: "
|
|
2410
|
+
group: "TurtleTime"
|
|
2509
2411
|
},
|
|
2510
2412
|
{
|
|
2511
2413
|
id: "turtletime-dark",
|
|
2512
2414
|
name: "TurtleTime Dark",
|
|
2513
2415
|
description: "TurtleTime after dusk \u2014 dark olive shell with bright orange clock accents.",
|
|
2514
2416
|
colorScheme: "dark",
|
|
2515
|
-
group: "
|
|
2516
|
-
},
|
|
2517
|
-
{
|
|
2518
|
-
id: "github-light",
|
|
2519
|
-
name: "GitHub Light",
|
|
2520
|
-
description: "GitHub Primer \u2014 #f6f8fa canvas and emphasis blue accents.",
|
|
2521
|
-
colorScheme: "light",
|
|
2522
|
-
group: "GitHub"
|
|
2523
|
-
},
|
|
2524
|
-
{
|
|
2525
|
-
id: "github-dark",
|
|
2526
|
-
name: "GitHub Dark",
|
|
2527
|
-
description: "GitHub dark dimmed \u2014 #0d1117 base and #4493f8 links.",
|
|
2528
|
-
colorScheme: "dark",
|
|
2529
|
-
group: "GitHub"
|
|
2417
|
+
group: "TurtleTime"
|
|
2530
2418
|
},
|
|
2531
2419
|
{
|
|
2532
2420
|
id: "rosepine-light",
|
|
2533
|
-
name: "Ros\xE9 Pine
|
|
2421
|
+
name: "Ros\xE9 Pine Light",
|
|
2534
2422
|
description: "Ros\xE9 Pine Dawn \u2014 warm paper base with muted iris accents.",
|
|
2535
2423
|
colorScheme: "light",
|
|
2536
2424
|
group: "Ros\xE9 Pine"
|
|
2537
2425
|
},
|
|
2538
2426
|
{
|
|
2539
2427
|
id: "rosepine-dark",
|
|
2540
|
-
name: "Ros\xE9 Pine",
|
|
2428
|
+
name: "Ros\xE9 Pine Dark",
|
|
2541
2429
|
description: "Ros\xE9 Pine Main \u2014 moonlit base with iris and love accents.",
|
|
2542
2430
|
colorScheme: "dark",
|
|
2543
2431
|
group: "Ros\xE9 Pine"
|
|
2544
2432
|
},
|
|
2545
2433
|
{
|
|
2546
|
-
id: "
|
|
2547
|
-
name: "
|
|
2548
|
-
description: "
|
|
2434
|
+
id: "kraken-light",
|
|
2435
|
+
name: "Kraken Light",
|
|
2436
|
+
description: "Medium-inspired warm paper, editorial black actions, and publication yellow.",
|
|
2549
2437
|
colorScheme: "light",
|
|
2550
|
-
group: "
|
|
2438
|
+
group: "Kraken"
|
|
2551
2439
|
},
|
|
2552
2440
|
{
|
|
2553
|
-
id: "
|
|
2554
|
-
name: "
|
|
2555
|
-
description: "
|
|
2441
|
+
id: "kraken-dark",
|
|
2442
|
+
name: "Kraken Dark",
|
|
2443
|
+
description: "Medium-inspired night reading canvas with white actions and publication yellow.",
|
|
2556
2444
|
colorScheme: "dark",
|
|
2557
|
-
group: "
|
|
2445
|
+
group: "Kraken"
|
|
2558
2446
|
},
|
|
2559
2447
|
{
|
|
2560
2448
|
id: "deepsea-light",
|
|
2561
|
-
name: "Tokyo
|
|
2449
|
+
name: "Tokyo Day",
|
|
2562
2450
|
description: "Tokyo Night Day \u2014 soft bluish greys with vivid blue and purple accents.",
|
|
2563
2451
|
colorScheme: "light",
|
|
2564
2452
|
group: "Tokyo Night"
|
|
@@ -2571,21 +2459,23 @@ var THEMES = [
|
|
|
2571
2459
|
group: "Tokyo Night"
|
|
2572
2460
|
},
|
|
2573
2461
|
{
|
|
2574
|
-
id: "
|
|
2575
|
-
name: "
|
|
2576
|
-
description: "
|
|
2462
|
+
id: "malibu-light",
|
|
2463
|
+
name: "Malibu Light",
|
|
2464
|
+
description: "Sun-bleached GTA San Andreas palette with hot pink, sunset orange, and lime signals.",
|
|
2577
2465
|
colorScheme: "light",
|
|
2578
|
-
group: "
|
|
2466
|
+
group: "Malibu"
|
|
2579
2467
|
},
|
|
2580
2468
|
{
|
|
2581
|
-
id: "
|
|
2582
|
-
name: "
|
|
2583
|
-
description: "
|
|
2469
|
+
id: "malibu-dark",
|
|
2470
|
+
name: "Malibu Dark",
|
|
2471
|
+
description: "Deep plum command deck with hot pink, lime, cyan, and sunset signals.",
|
|
2584
2472
|
colorScheme: "dark",
|
|
2585
|
-
group: "
|
|
2473
|
+
group: "Malibu"
|
|
2586
2474
|
}
|
|
2587
2475
|
];
|
|
2588
|
-
var THEME_GROUPS = Array.from(
|
|
2476
|
+
var THEME_GROUPS = Array.from(
|
|
2477
|
+
new Set(THEMES.map((theme) => theme.group))
|
|
2478
|
+
);
|
|
2589
2479
|
function isThemeId(value) {
|
|
2590
2480
|
return THEMES.some((theme) => theme.id === value);
|
|
2591
2481
|
}
|
|
@@ -2593,7 +2483,7 @@ function isThemeId(value) {
|
|
|
2593
2483
|
// src/themes/init-theme.ts
|
|
2594
2484
|
var STORAGE_KEY = "ph-theme";
|
|
2595
2485
|
var VALID_THEMES = THEMES.map((theme) => theme.id);
|
|
2596
|
-
var THEME_INIT_SCRIPT = `(function(){try{var k="${STORAGE_KEY}",d="${DEFAULT_THEME_ID}",v=${JSON.stringify(VALID_THEMES)},t=localStorage.getItem(k);if(
|
|
2486
|
+
var THEME_INIT_SCRIPT = `(function(){try{var k="${STORAGE_KEY}",d="${DEFAULT_THEME_ID}",v=${JSON.stringify(VALID_THEMES)},t=localStorage.getItem(k);if(!t||v.indexOf(t)<0)t=d;document.documentElement.setAttribute("data-theme",t)}catch(e){document.documentElement.setAttribute("data-theme","${DEFAULT_THEME_ID}")}})();`;
|
|
2597
2487
|
function persistTheme(themeId) {
|
|
2598
2488
|
if (typeof window === "undefined") {
|
|
2599
2489
|
return;
|
|
@@ -2609,9 +2499,6 @@ function readStoredTheme() {
|
|
|
2609
2499
|
return DEFAULT_THEME_ID;
|
|
2610
2500
|
}
|
|
2611
2501
|
const stored = localStorage.getItem(STORAGE_KEY);
|
|
2612
|
-
if (stored === "xenide") {
|
|
2613
|
-
return "xenide-light";
|
|
2614
|
-
}
|
|
2615
2502
|
return stored && isThemeId(stored) ? stored : DEFAULT_THEME_ID;
|
|
2616
2503
|
}
|
|
2617
2504
|
|
|
@@ -2637,7 +2524,7 @@ function ThemeManager({ children }) {
|
|
|
2637
2524
|
var import_react15 = require("react");
|
|
2638
2525
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2639
2526
|
function ThemeSwitcher({ className }) {
|
|
2640
|
-
const [themeId, setThemeId] = (0, import_react15.useState)(
|
|
2527
|
+
const [themeId, setThemeId] = (0, import_react15.useState)(DEFAULT_THEME_ID);
|
|
2641
2528
|
(0, import_react15.useEffect)(() => {
|
|
2642
2529
|
const id = readStoredTheme();
|
|
2643
2530
|
persistTheme(id);
|