mirror of
https://github.com/0xWheatyz/handler.git
synced 2026-08-30 05:26:23 +00:00
2760 lines
80 KiB
JavaScript
2760 lines
80 KiB
JavaScript
/* @ds-bundle: {"format":4,"namespace":"LeeworksDesignSystem_b3e560","components":[{"name":"Badge","sourcePath":"components/display/Badge.jsx"},{"name":"Card","sourcePath":"components/display/Card.jsx"},{"name":"Icon","sourcePath":"components/display/Icon.jsx"},{"name":"Tag","sourcePath":"components/display/Tag.jsx"},{"name":"Dialog","sourcePath":"components/feedback/Dialog.jsx"},{"name":"Toast","sourcePath":"components/feedback/Toast.jsx"},{"name":"Tooltip","sourcePath":"components/feedback/Tooltip.jsx"},{"name":"Button","sourcePath":"components/forms/Button.jsx"},{"name":"Checkbox","sourcePath":"components/forms/Checkbox.jsx"},{"name":"IconButton","sourcePath":"components/forms/IconButton.jsx"},{"name":"Input","sourcePath":"components/forms/Input.jsx"},{"name":"Radio","sourcePath":"components/forms/Radio.jsx"},{"name":"Select","sourcePath":"components/forms/Select.jsx"},{"name":"Switch","sourcePath":"components/forms/Switch.jsx"},{"name":"Tabs","sourcePath":"components/navigation/Tabs.jsx"}],"sourceHashes":{"components/display/Badge.jsx":"8997328a4111","components/display/Card.jsx":"ab40881f63ba","components/display/Icon.jsx":"81142bbf0632","components/display/Tag.jsx":"0246746ae4e7","components/feedback/Dialog.jsx":"46659251cb35","components/feedback/Toast.jsx":"de88ee2df7f1","components/feedback/Tooltip.jsx":"5aa98d55e4d0","components/forms/Button.jsx":"93685df3a1e6","components/forms/Checkbox.jsx":"5ee3266eec63","components/forms/IconButton.jsx":"3ac35be6b500","components/forms/Input.jsx":"e4c070c9f68d","components/forms/Radio.jsx":"e89340749f32","components/forms/Select.jsx":"2a886e5c15d0","components/forms/Switch.jsx":"27342bd5bd50","components/navigation/Tabs.jsx":"4f25ba202346","ui_kits/dashboard/Overview.jsx":"0099fff42ce5","ui_kits/dashboard/Reports.jsx":"5c8b3c989412","ui_kits/dashboard/SettingsScreen.jsx":"33bba4658f06","ui_kits/dashboard/Shell.jsx":"ec2cfc201f23","ui_kits/mobile/MHome.jsx":"2be7b70c7365","ui_kits/mobile/MInbox.jsx":"4b6c4c0a1840","ui_kits/mobile/MProfile.jsx":"caa0d4bc691e","ui_kits/mobile/MobileShell.jsx":"7fe720ae45f4","ui_kits/website/Features.jsx":"7a70ffe310b0","ui_kits/website/Hero.jsx":"beac30775690","ui_kits/website/SiteFooter.jsx":"61be12284b8e","ui_kits/website/SiteNav.jsx":"122448ae9f26"},"inlinedExternals":[],"unexposedExports":[]} */
|
|
|
|
(() => {
|
|
|
|
const __ds_ns = (window.LeeworksDesignSystem_b3e560 = window.LeeworksDesignSystem_b3e560 || {});
|
|
|
|
const __ds_scope = {};
|
|
|
|
(__ds_ns.__errors = __ds_ns.__errors || []);
|
|
|
|
// components/display/Badge.jsx
|
|
try { (() => {
|
|
function Badge({
|
|
tone = "neutral",
|
|
children,
|
|
style
|
|
}) {
|
|
const tones = {
|
|
neutral: {
|
|
background: "var(--ink-1)",
|
|
color: "var(--ink-7)"
|
|
},
|
|
positive: {
|
|
background: "var(--positive-tint)",
|
|
color: "var(--positive)"
|
|
},
|
|
warning: {
|
|
background: "var(--warning-tint)",
|
|
color: "var(--warning)"
|
|
},
|
|
danger: {
|
|
background: "var(--danger-tint)",
|
|
color: "var(--danger)"
|
|
},
|
|
inverse: {
|
|
background: "var(--surface-inverse)",
|
|
color: "var(--text-inverse)"
|
|
}
|
|
};
|
|
return /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
gap: "6px",
|
|
padding: "3px 10px",
|
|
borderRadius: "var(--radius-pill)",
|
|
font: "var(--type-caption)",
|
|
fontWeight: 600,
|
|
whiteSpace: "nowrap",
|
|
...tones[tone],
|
|
...style
|
|
}
|
|
}, children);
|
|
}
|
|
Object.assign(__ds_scope, { Badge });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/display/Badge.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/display/Card.jsx
|
|
try { (() => {
|
|
function Card({
|
|
title,
|
|
subtitle,
|
|
actions = null,
|
|
footer = null,
|
|
variant = "default",
|
|
padding = "var(--space-6)",
|
|
children,
|
|
style
|
|
}) {
|
|
const variants = {
|
|
default: {
|
|
background: "var(--surface-card)",
|
|
border: "1px solid var(--border-subtle)",
|
|
boxShadow: "var(--shadow-card)"
|
|
},
|
|
sunken: {
|
|
background: "var(--surface-sunken)",
|
|
border: "none",
|
|
boxShadow: "none"
|
|
},
|
|
outline: {
|
|
background: "var(--surface-card)",
|
|
border: "1px solid var(--border-default)",
|
|
boxShadow: "none"
|
|
}
|
|
};
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
borderRadius: "var(--radius-lg)",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
...variants[variant],
|
|
...style
|
|
}
|
|
}, (title || actions) && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: "12px",
|
|
padding: `${padding} ${padding} 0`
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
minWidth: 0
|
|
}
|
|
}, title && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h4)",
|
|
color: "var(--text-heading)",
|
|
fontFamily: "var(--font-display)"
|
|
}
|
|
}, title), subtitle && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)",
|
|
marginTop: "2px"
|
|
}
|
|
}, subtitle)), actions), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
padding,
|
|
flex: 1
|
|
}
|
|
}, children), footer && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
borderTop: "1px solid var(--border-subtle)",
|
|
padding: `var(--space-3) ${padding}`,
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, footer));
|
|
}
|
|
Object.assign(__ds_scope, { Card });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/display/Card.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/display/Icon.jsx
|
|
try { (() => {
|
|
// Lucide icon paths (lucide.dev, ISC) inlined for React use — 1.75 stroke, currentColor.
|
|
const P = {
|
|
dashboard: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("rect", {
|
|
x: "3",
|
|
y: "3",
|
|
width: "7",
|
|
height: "9",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "14",
|
|
y: "3",
|
|
width: "7",
|
|
height: "5",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "14",
|
|
y: "12",
|
|
width: "7",
|
|
height: "9",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "3",
|
|
y: "16",
|
|
width: "7",
|
|
height: "5",
|
|
rx: "1"
|
|
})),
|
|
file: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M14 2v4a2 2 0 0 0 2 2h4"
|
|
})),
|
|
users: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"
|
|
}), /*#__PURE__*/React.createElement("circle", {
|
|
cx: "9",
|
|
cy: "7",
|
|
r: "4"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M22 21v-2a4 4 0 0 0-3-3.87"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M16 3.13a4 4 0 0 1 0 7.75"
|
|
})),
|
|
settings: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"
|
|
}), /*#__PURE__*/React.createElement("circle", {
|
|
cx: "12",
|
|
cy: "12",
|
|
r: "3"
|
|
})),
|
|
search: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("circle", {
|
|
cx: "11",
|
|
cy: "11",
|
|
r: "8"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "m21 21-4.3-4.3"
|
|
})),
|
|
bell: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M10.3 21a1.94 1.94 0 0 0 3.4 0"
|
|
})),
|
|
plus: /*#__PURE__*/React.createElement("path", {
|
|
d: "M5 12h14M12 5v14"
|
|
}),
|
|
check: /*#__PURE__*/React.createElement("path", {
|
|
d: "M20 6 9 17l-5-5"
|
|
}),
|
|
chart: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M3 3v16a2 2 0 0 0 2 2h16"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "m19 9-5 5-4-4-3 3"
|
|
})),
|
|
folder: /*#__PURE__*/React.createElement("path", {
|
|
d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
|
|
}),
|
|
chevronDown: /*#__PURE__*/React.createElement("path", {
|
|
d: "m6 9 6 6 6-6"
|
|
}),
|
|
chevronRight: /*#__PURE__*/React.createElement("path", {
|
|
d: "m9 18 6-6-6-6"
|
|
}),
|
|
more: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("circle", {
|
|
cx: "12",
|
|
cy: "12",
|
|
r: "1"
|
|
}), /*#__PURE__*/React.createElement("circle", {
|
|
cx: "19",
|
|
cy: "12",
|
|
r: "1"
|
|
}), /*#__PURE__*/React.createElement("circle", {
|
|
cx: "5",
|
|
cy: "12",
|
|
r: "1"
|
|
})),
|
|
arrowUpRight: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M7 7h10v10"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M7 17 17 7"
|
|
})),
|
|
x: /*#__PURE__*/React.createElement("path", {
|
|
d: "M18 6 6 18M6 6l12 12"
|
|
}),
|
|
menu: /*#__PURE__*/React.createElement("path", {
|
|
d: "M4 6h16M4 12h16M4 18h16"
|
|
}),
|
|
home: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M9 22V12h6v10"
|
|
})),
|
|
inbox: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("polyline", {
|
|
points: "22 12 16 12 14 15 10 15 8 12 2 12"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
|
|
})),
|
|
user: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"
|
|
}), /*#__PURE__*/React.createElement("circle", {
|
|
cx: "12",
|
|
cy: "7",
|
|
r: "4"
|
|
}))
|
|
};
|
|
function Icon({
|
|
name,
|
|
size = 18,
|
|
strokeWidth = 1.75,
|
|
style
|
|
}) {
|
|
return /*#__PURE__*/React.createElement("svg", {
|
|
width: size,
|
|
height: size,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: strokeWidth,
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round",
|
|
style: {
|
|
flexShrink: 0,
|
|
...style
|
|
}
|
|
}, P[name] || null);
|
|
}
|
|
Object.assign(__ds_scope, { Icon });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/display/Icon.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/display/Tag.jsx
|
|
try { (() => {
|
|
function Tag({
|
|
onRemove,
|
|
children,
|
|
style
|
|
}) {
|
|
const [hover, setHover] = React.useState(false);
|
|
return /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
gap: "6px",
|
|
padding: "4px 10px",
|
|
borderRadius: "var(--radius-pill)",
|
|
border: "1px solid var(--border-default)",
|
|
background: "var(--surface-card)",
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-body)",
|
|
whiteSpace: "nowrap",
|
|
...style
|
|
}
|
|
}, children, onRemove && /*#__PURE__*/React.createElement("button", {
|
|
onClick: onRemove,
|
|
onMouseEnter: () => setHover(true),
|
|
onMouseLeave: () => setHover(false),
|
|
style: {
|
|
border: "none",
|
|
background: "none",
|
|
padding: 0,
|
|
cursor: "pointer",
|
|
display: "inline-flex",
|
|
color: hover ? "var(--text-heading)" : "var(--text-muted)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
width: "12",
|
|
height: "12",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: "2.5",
|
|
strokeLinecap: "round"
|
|
}, /*#__PURE__*/React.createElement("path", {
|
|
d: "M18 6 6 18M6 6l12 12"
|
|
}))));
|
|
}
|
|
Object.assign(__ds_scope, { Tag });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/display/Tag.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/feedback/Dialog.jsx
|
|
try { (() => {
|
|
function Dialog({
|
|
open = true,
|
|
title,
|
|
description,
|
|
actions = null,
|
|
onClose,
|
|
width = 440,
|
|
children,
|
|
style
|
|
}) {
|
|
if (!open) return null;
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
onClick: onClose,
|
|
style: {
|
|
position: "fixed",
|
|
inset: 0,
|
|
background: "rgba(20,20,19,.4)",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
zIndex: 100
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
onClick: e => e.stopPropagation(),
|
|
style: {
|
|
width,
|
|
maxWidth: "calc(100vw - 48px)",
|
|
background: "var(--surface-raised)",
|
|
borderRadius: "var(--radius-xl)",
|
|
boxShadow: "var(--shadow-overlay)",
|
|
padding: "var(--space-6)",
|
|
animation: "lwDialogIn var(--dur-base) var(--ease-out)",
|
|
...style
|
|
}
|
|
}, /*#__PURE__*/React.createElement("style", null, "@keyframes lwDialogIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}"), title && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h3)",
|
|
fontFamily: "var(--font-display)",
|
|
color: "var(--text-heading)"
|
|
}
|
|
}, title), description && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body)",
|
|
color: "var(--text-body)",
|
|
marginTop: "8px"
|
|
}
|
|
}, description), children && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
marginTop: "16px"
|
|
}
|
|
}, children), actions && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
justifyContent: "flex-end",
|
|
gap: "10px",
|
|
marginTop: "24px"
|
|
}
|
|
}, actions)));
|
|
}
|
|
Object.assign(__ds_scope, { Dialog });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/Dialog.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/feedback/Toast.jsx
|
|
try { (() => {
|
|
function Toast({
|
|
tone = "neutral",
|
|
title,
|
|
description,
|
|
onDismiss,
|
|
style
|
|
}) {
|
|
const icons = {
|
|
neutral: null,
|
|
positive: /*#__PURE__*/React.createElement("svg", {
|
|
width: "16",
|
|
height: "16",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "var(--positive)",
|
|
strokeWidth: "2",
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round"
|
|
}, /*#__PURE__*/React.createElement("path", {
|
|
d: "m5 13 4 4L19 7"
|
|
})),
|
|
danger: /*#__PURE__*/React.createElement("svg", {
|
|
width: "16",
|
|
height: "16",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "var(--danger)",
|
|
strokeWidth: "2",
|
|
strokeLinecap: "round"
|
|
}, /*#__PURE__*/React.createElement("circle", {
|
|
cx: "12",
|
|
cy: "12",
|
|
r: "9"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M12 8v4M12 16h.01"
|
|
}))
|
|
};
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "flex-start",
|
|
gap: "10px",
|
|
width: "320px",
|
|
background: "var(--surface-inverse)",
|
|
color: "var(--text-inverse)",
|
|
borderRadius: "var(--radius-lg)",
|
|
boxShadow: "var(--shadow-raised)",
|
|
padding: "12px 14px",
|
|
animation: "lwToastIn var(--dur-base) var(--ease-out)",
|
|
...style
|
|
}
|
|
}, /*#__PURE__*/React.createElement("style", null, "@keyframes lwToastIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}"), icons[tone] && /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
marginTop: "2px"
|
|
}
|
|
}, icons[tone]), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-label)"
|
|
}
|
|
}, title), description && /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--ink-4)",
|
|
marginTop: "2px"
|
|
}
|
|
}, description)), onDismiss && /*#__PURE__*/React.createElement("button", {
|
|
onClick: onDismiss,
|
|
style: {
|
|
border: "none",
|
|
background: "none",
|
|
padding: 0,
|
|
cursor: "pointer",
|
|
color: "var(--ink-5)",
|
|
display: "inline-flex"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
width: "14",
|
|
height: "14",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: "2",
|
|
strokeLinecap: "round"
|
|
}, /*#__PURE__*/React.createElement("path", {
|
|
d: "M18 6 6 18M6 6l12 12"
|
|
}))));
|
|
}
|
|
Object.assign(__ds_scope, { Toast });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/Toast.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/feedback/Tooltip.jsx
|
|
try { (() => {
|
|
function Tooltip({
|
|
label,
|
|
side = "top",
|
|
children,
|
|
style
|
|
}) {
|
|
const [show, setShow] = React.useState(false);
|
|
const pos = {
|
|
top: {
|
|
bottom: "calc(100% + 6px)",
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
},
|
|
bottom: {
|
|
top: "calc(100% + 6px)",
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
},
|
|
left: {
|
|
right: "calc(100% + 6px)",
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
},
|
|
right: {
|
|
left: "calc(100% + 6px)",
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
}
|
|
};
|
|
return /*#__PURE__*/React.createElement("span", {
|
|
onMouseEnter: () => setShow(true),
|
|
onMouseLeave: () => setShow(false),
|
|
style: {
|
|
position: "relative",
|
|
display: "inline-flex",
|
|
...style
|
|
}
|
|
}, children, show && /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
position: "absolute",
|
|
...pos[side],
|
|
background: "var(--surface-inverse)",
|
|
color: "var(--text-inverse)",
|
|
font: "var(--type-caption)",
|
|
padding: "5px 10px",
|
|
borderRadius: "var(--radius-sm)",
|
|
whiteSpace: "nowrap",
|
|
zIndex: 50,
|
|
pointerEvents: "none"
|
|
}
|
|
}, label));
|
|
}
|
|
Object.assign(__ds_scope, { Tooltip });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/Tooltip.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Button.jsx
|
|
try { (() => {
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function Button({
|
|
variant = "primary",
|
|
size = "md",
|
|
disabled = false,
|
|
icon = null,
|
|
children,
|
|
onClick,
|
|
style,
|
|
...rest
|
|
}) {
|
|
const [hover, setHover] = React.useState(false);
|
|
const [press, setPress] = React.useState(false);
|
|
const h = {
|
|
sm: "var(--control-h-sm)",
|
|
md: "var(--control-h-md)",
|
|
lg: "var(--control-h-lg)"
|
|
}[size];
|
|
const px = {
|
|
sm: "var(--control-pad-x-sm)",
|
|
md: "var(--control-pad-x-md)",
|
|
lg: "var(--control-pad-x-lg)"
|
|
}[size];
|
|
const fs = {
|
|
sm: "13px",
|
|
md: "14px",
|
|
lg: "15px"
|
|
}[size];
|
|
const variants = {
|
|
primary: {
|
|
background: press ? "var(--interactive-press)" : hover ? "var(--interactive-hover)" : "var(--interactive)",
|
|
color: "var(--text-inverse)",
|
|
border: "none"
|
|
},
|
|
secondary: {
|
|
background: press ? "rgba(20,20,19,.05)" : hover ? "rgba(20,20,19,.025)" : "var(--surface-card)",
|
|
color: "var(--text-heading)",
|
|
border: "1px solid var(--border-default)"
|
|
},
|
|
ghost: {
|
|
background: press ? "rgba(20,20,19,.05)" : hover ? "rgba(20,20,19,.025)" : "transparent",
|
|
color: "var(--ink-9)",
|
|
border: "none"
|
|
},
|
|
danger: {
|
|
background: press ? "#8c2f25" : hover ? "#b04a3f" : "var(--danger)",
|
|
color: "#fff",
|
|
border: "none"
|
|
}
|
|
};
|
|
const disabledStyle = {
|
|
background: "var(--ink-1)",
|
|
color: "var(--ink-5)",
|
|
border: "1px solid var(--border-subtle)"
|
|
};
|
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
disabled: disabled,
|
|
onClick: onClick,
|
|
onMouseEnter: () => setHover(true),
|
|
onMouseLeave: () => {
|
|
setHover(false);
|
|
setPress(false);
|
|
},
|
|
onMouseDown: () => setPress(true),
|
|
onMouseUp: () => setPress(false),
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
gap: "8px",
|
|
height: h,
|
|
padding: `0 ${px}`,
|
|
borderRadius: "var(--radius-md)",
|
|
font: `600 ${fs}/1 var(--font-body)`,
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
transition: "background var(--dur-fast) var(--ease-out)",
|
|
whiteSpace: "nowrap",
|
|
...(disabled ? disabledStyle : variants[variant]),
|
|
...style
|
|
}
|
|
}, rest), icon, children);
|
|
}
|
|
Object.assign(__ds_scope, { Button });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Button.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Checkbox.jsx
|
|
try { (() => {
|
|
function Checkbox({
|
|
label,
|
|
checked,
|
|
defaultChecked = false,
|
|
onChange,
|
|
disabled = false,
|
|
style
|
|
}) {
|
|
const [internal, setInternal] = React.useState(defaultChecked);
|
|
const isOn = checked !== undefined ? checked : internal;
|
|
const toggle = () => {
|
|
if (disabled) return;
|
|
const v = !isOn;
|
|
if (checked === undefined) setInternal(v);
|
|
onChange && onChange(v);
|
|
};
|
|
return /*#__PURE__*/React.createElement("label", {
|
|
onClick: toggle,
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
gap: "10px",
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
opacity: disabled ? 0.45 : 1,
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-heading)",
|
|
userSelect: "none",
|
|
...style
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: "18px",
|
|
height: "18px",
|
|
borderRadius: "5px",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
background: isOn ? "var(--interactive)" : "var(--surface-card)",
|
|
border: isOn ? "1px solid var(--interactive)" : "1px solid var(--border-default)",
|
|
transition: "background var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, isOn && /*#__PURE__*/React.createElement("svg", {
|
|
width: "12",
|
|
height: "12",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "var(--text-inverse)",
|
|
strokeWidth: "3",
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round"
|
|
}, /*#__PURE__*/React.createElement("path", {
|
|
d: "m5 13 4 4L19 7"
|
|
}))), label);
|
|
}
|
|
Object.assign(__ds_scope, { Checkbox });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Checkbox.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/IconButton.jsx
|
|
try { (() => {
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function IconButton({
|
|
size = "md",
|
|
variant = "ghost",
|
|
disabled = false,
|
|
label,
|
|
children,
|
|
onClick,
|
|
style,
|
|
...rest
|
|
}) {
|
|
const [hover, setHover] = React.useState(false);
|
|
const d = {
|
|
sm: "32px",
|
|
md: "40px",
|
|
lg: "48px"
|
|
}[size];
|
|
const variants = {
|
|
ghost: {
|
|
background: hover ? "var(--ink-1)" : "transparent",
|
|
color: "var(--text-heading)",
|
|
border: "none"
|
|
},
|
|
outline: {
|
|
background: hover ? "var(--ink-1)" : "var(--surface-card)",
|
|
color: "var(--text-heading)",
|
|
border: "1px solid var(--border-default)"
|
|
},
|
|
primary: {
|
|
background: hover ? "var(--interactive-hover)" : "var(--interactive)",
|
|
color: "var(--text-inverse)",
|
|
border: "none"
|
|
}
|
|
};
|
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
"aria-label": label,
|
|
title: label,
|
|
disabled: disabled,
|
|
onClick: onClick,
|
|
onMouseEnter: () => setHover(true),
|
|
onMouseLeave: () => setHover(false),
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
width: d,
|
|
height: d,
|
|
borderRadius: "var(--radius-md)",
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
opacity: disabled ? 0.45 : 1,
|
|
transition: "background var(--dur-fast) var(--ease-out)",
|
|
...variants[variant],
|
|
...style
|
|
}
|
|
}, rest), children);
|
|
}
|
|
Object.assign(__ds_scope, { IconButton });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/IconButton.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Input.jsx
|
|
try { (() => {
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function Input({
|
|
label,
|
|
hint,
|
|
error,
|
|
size = "md",
|
|
prefix = null,
|
|
suffix = null,
|
|
style,
|
|
inputStyle,
|
|
...rest
|
|
}) {
|
|
const [focus, setFocus] = React.useState(false);
|
|
const h = {
|
|
sm: "var(--control-h-sm)",
|
|
md: "var(--control-h-md)",
|
|
lg: "var(--control-h-lg)"
|
|
}[size];
|
|
return /*#__PURE__*/React.createElement("label", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: "6px",
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
...style
|
|
}
|
|
}, label, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: "8px",
|
|
height: h,
|
|
padding: "0 12px",
|
|
background: "var(--surface-card)",
|
|
border: `1px solid ${error ? "var(--danger)" : focus ? "var(--border-strong)" : "var(--border-default)"}`,
|
|
borderRadius: "var(--radius-md)",
|
|
boxShadow: focus ? "var(--shadow-focus)" : "none",
|
|
transition: "box-shadow var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, prefix, /*#__PURE__*/React.createElement("input", _extends({
|
|
onFocus: () => setFocus(true),
|
|
onBlur: () => setFocus(false),
|
|
style: {
|
|
flex: 1,
|
|
border: "none",
|
|
outline: "none",
|
|
background: "transparent",
|
|
font: "var(--type-body)",
|
|
color: "var(--text-heading)",
|
|
minWidth: 0,
|
|
...inputStyle
|
|
}
|
|
}, rest)), suffix), error ? /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--danger)",
|
|
fontWeight: 400
|
|
}
|
|
}, error) : hint ? /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
fontWeight: 400
|
|
}
|
|
}, hint) : null);
|
|
}
|
|
Object.assign(__ds_scope, { Input });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Input.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Radio.jsx
|
|
try { (() => {
|
|
function Radio({
|
|
options = [],
|
|
value,
|
|
defaultValue,
|
|
onChange,
|
|
name,
|
|
disabled = false,
|
|
style
|
|
}) {
|
|
const [internal, setInternal] = React.useState(defaultValue);
|
|
const sel = value !== undefined ? value : internal;
|
|
const pick = v => {
|
|
if (disabled) return;
|
|
if (value === undefined) setInternal(v);
|
|
onChange && onChange(v);
|
|
};
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
role: "radiogroup",
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: "10px",
|
|
...style
|
|
}
|
|
}, options.map(o => {
|
|
const opt = typeof o === "string" ? {
|
|
value: o,
|
|
label: o
|
|
} : o;
|
|
const on = sel === opt.value;
|
|
return /*#__PURE__*/React.createElement("label", {
|
|
key: opt.value,
|
|
onClick: () => pick(opt.value),
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
gap: "10px",
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
opacity: disabled ? 0.45 : 1,
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-heading)",
|
|
userSelect: "none"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: "18px",
|
|
height: "18px",
|
|
borderRadius: "50%",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
border: on ? "1px solid var(--interactive)" : "1px solid var(--border-default)",
|
|
background: "var(--surface-card)",
|
|
transition: "border-color var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, on && /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: "10px",
|
|
height: "10px",
|
|
borderRadius: "50%",
|
|
background: "var(--interactive)"
|
|
}
|
|
})), opt.label);
|
|
}));
|
|
}
|
|
Object.assign(__ds_scope, { Radio });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Radio.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Select.jsx
|
|
try { (() => {
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function Select({
|
|
label,
|
|
hint,
|
|
options = [],
|
|
size = "md",
|
|
style,
|
|
...rest
|
|
}) {
|
|
const [focus, setFocus] = React.useState(false);
|
|
const h = {
|
|
sm: "var(--control-h-sm)",
|
|
md: "var(--control-h-md)",
|
|
lg: "var(--control-h-lg)"
|
|
}[size];
|
|
return /*#__PURE__*/React.createElement("label", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: "6px",
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
...style
|
|
}
|
|
}, label, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
position: "relative",
|
|
display: "flex",
|
|
height: h
|
|
}
|
|
}, /*#__PURE__*/React.createElement("select", _extends({
|
|
onFocus: () => setFocus(true),
|
|
onBlur: () => setFocus(false),
|
|
style: {
|
|
flex: 1,
|
|
appearance: "none",
|
|
WebkitAppearance: "none",
|
|
padding: "0 36px 0 12px",
|
|
background: "var(--surface-card)",
|
|
border: `1px solid ${focus ? "var(--border-strong)" : "var(--border-default)"}`,
|
|
borderRadius: "var(--radius-md)",
|
|
boxShadow: focus ? "var(--shadow-focus)" : "none",
|
|
font: "var(--type-body)",
|
|
color: "var(--text-heading)",
|
|
cursor: "pointer",
|
|
outline: "none"
|
|
}
|
|
}, rest), options.map(o => typeof o === "string" ? /*#__PURE__*/React.createElement("option", {
|
|
key: o,
|
|
value: o
|
|
}, o) : /*#__PURE__*/React.createElement("option", {
|
|
key: o.value,
|
|
value: o.value
|
|
}, o.label))), /*#__PURE__*/React.createElement("svg", {
|
|
width: "16",
|
|
height: "16",
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: "1.75",
|
|
style: {
|
|
position: "absolute",
|
|
right: "12px",
|
|
top: "50%",
|
|
transform: "translateY(-50%)",
|
|
pointerEvents: "none",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("path", {
|
|
d: "m6 9 6 6 6-6"
|
|
}))), hint && /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
fontWeight: 400
|
|
}
|
|
}, hint));
|
|
}
|
|
Object.assign(__ds_scope, { Select });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Select.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/forms/Switch.jsx
|
|
try { (() => {
|
|
function Switch({
|
|
label,
|
|
checked,
|
|
defaultChecked = false,
|
|
onChange,
|
|
disabled = false,
|
|
style
|
|
}) {
|
|
const [internal, setInternal] = React.useState(defaultChecked);
|
|
const isOn = checked !== undefined ? checked : internal;
|
|
const toggle = () => {
|
|
if (disabled) return;
|
|
const v = !isOn;
|
|
if (checked === undefined) setInternal(v);
|
|
onChange && onChange(v);
|
|
};
|
|
return /*#__PURE__*/React.createElement("label", {
|
|
onClick: toggle,
|
|
style: {
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
gap: "10px",
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
opacity: disabled ? 0.45 : 1,
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-heading)",
|
|
userSelect: "none",
|
|
...style
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: "36px",
|
|
height: "22px",
|
|
borderRadius: "var(--radius-pill)",
|
|
padding: "2px",
|
|
boxSizing: "border-box",
|
|
background: isOn ? "var(--interactive)" : "var(--ink-3)",
|
|
transition: "background var(--dur-base) var(--ease-out)",
|
|
display: "inline-flex"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: "18px",
|
|
height: "18px",
|
|
borderRadius: "50%",
|
|
background: "#fff",
|
|
transform: isOn ? "translateX(14px)" : "translateX(0)",
|
|
transition: "transform var(--dur-base) var(--ease-out)",
|
|
boxShadow: "0 1px 2px rgba(20,20,19,.2)"
|
|
}
|
|
})), label);
|
|
}
|
|
Object.assign(__ds_scope, { Switch });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Switch.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// components/navigation/Tabs.jsx
|
|
try { (() => {
|
|
function Tabs({
|
|
tabs = [],
|
|
value,
|
|
defaultValue,
|
|
onChange,
|
|
variant = "underline",
|
|
style
|
|
}) {
|
|
const [internal, setInternal] = React.useState(defaultValue ?? (typeof tabs[0] === "string" ? tabs[0] : tabs[0]?.value));
|
|
const sel = value !== undefined ? value : internal;
|
|
const pick = v => {
|
|
if (value === undefined) setInternal(v);
|
|
onChange && onChange(v);
|
|
};
|
|
const norm = tabs.map(t => typeof t === "string" ? {
|
|
value: t,
|
|
label: t
|
|
} : t);
|
|
if (variant === "segmented") {
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "inline-flex",
|
|
gap: "2px",
|
|
padding: "5px",
|
|
background: "var(--ink-1)",
|
|
borderRadius: "var(--radius-md)",
|
|
...style
|
|
}
|
|
}, norm.map(t => /*#__PURE__*/React.createElement("button", {
|
|
key: t.value,
|
|
onClick: () => pick(t.value),
|
|
style: {
|
|
border: "none",
|
|
cursor: "pointer",
|
|
padding: "6px 14px",
|
|
borderRadius: "var(--radius-sm)",
|
|
font: "var(--type-label)",
|
|
color: sel === t.value ? "var(--text-heading)" : "var(--text-muted)",
|
|
background: sel === t.value ? "var(--surface-card)" : "transparent",
|
|
boxShadow: sel === t.value ? "var(--shadow-card)" : "none",
|
|
transition: "all var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, t.label)));
|
|
}
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: "4px",
|
|
borderBottom: "1px solid var(--border-subtle)",
|
|
...style
|
|
}
|
|
}, norm.map(t => /*#__PURE__*/React.createElement("button", {
|
|
key: t.value,
|
|
onClick: () => pick(t.value),
|
|
style: {
|
|
border: "none",
|
|
background: "none",
|
|
cursor: "pointer",
|
|
padding: "10px 14px",
|
|
font: "var(--type-label)",
|
|
color: sel === t.value ? "var(--text-heading)" : "var(--text-muted)",
|
|
boxShadow: sel === t.value ? "inset 0 -2px 0 var(--border-strong)" : "none",
|
|
marginBottom: "-1px",
|
|
transition: "color var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, t.label)));
|
|
}
|
|
Object.assign(__ds_scope, { Tabs });
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/navigation/Tabs.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/dashboard/Overview.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Badge,
|
|
Tabs,
|
|
Button,
|
|
Icon
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function Stat({
|
|
label,
|
|
value,
|
|
delta,
|
|
tone
|
|
}) {
|
|
return /*#__PURE__*/React.createElement(Card, {
|
|
padding: "var(--space-5)",
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, label), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
fontFamily: "var(--font-mono)",
|
|
fontSize: 28,
|
|
fontWeight: 600,
|
|
color: "var(--text-heading)",
|
|
marginTop: 6
|
|
}
|
|
}, value), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: tone === "up" ? "var(--positive)" : tone === "down" ? "var(--danger)" : "var(--text-muted)",
|
|
marginTop: 4
|
|
}
|
|
}, delta));
|
|
}
|
|
function Bars() {
|
|
const vals = [38, 52, 44, 61, 58, 70, 66, 79, 74, 88, 82, 95];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "flex-end",
|
|
gap: 10,
|
|
height: 160,
|
|
padding: "8px 0"
|
|
}
|
|
}, vals.map((v, i) => /*#__PURE__*/React.createElement("div", {
|
|
key: i,
|
|
style: {
|
|
flex: 1,
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 6,
|
|
alignItems: "center"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
width: "100%",
|
|
height: `${v}%`,
|
|
background: i === 11 ? "var(--ink-9)" : "var(--ink-2)",
|
|
borderRadius: "4px 4px 0 0",
|
|
transition: "height var(--dur-slow) var(--ease-out)"
|
|
}
|
|
}))));
|
|
}
|
|
function Overview({
|
|
onNew
|
|
}) {
|
|
const activity = [["SR", "Sam Rivera", "published", "Q3 launch readiness", "2m ago"], ["JK", "Jae Kim", "commented on", "Mobile refresh scope", "18m ago"], ["AP", "Ana Petrova", "created", "Docs rewrite plan", "1h ago"], ["SR", "Sam Rivera", "invited", "2 people to Q3 launch", "3h ago"]];
|
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
marginBottom: 24
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
style: {
|
|
font: "var(--type-h2)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: 0
|
|
}
|
|
}, "Good morning, Sam"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)",
|
|
marginTop: 4
|
|
}
|
|
}, "Everything your team shipped this week, in one place.")), /*#__PURE__*/React.createElement(Button, {
|
|
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
name: "plus",
|
|
size: 16
|
|
}),
|
|
onClick: onNew
|
|
}, "New report")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: 16,
|
|
marginBottom: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Stat, {
|
|
label: "Active users",
|
|
value: "12,438",
|
|
delta: "+4.2% this week",
|
|
tone: "up"
|
|
}), /*#__PURE__*/React.createElement(Stat, {
|
|
label: "Reports shipped",
|
|
value: "86",
|
|
delta: "+12 this week",
|
|
tone: "up"
|
|
}), /*#__PURE__*/React.createElement(Stat, {
|
|
label: "Open reviews",
|
|
value: "14",
|
|
delta: "\u22123 since Monday",
|
|
tone: "up"
|
|
}), /*#__PURE__*/React.createElement(Stat, {
|
|
label: "Sync errors",
|
|
value: "2",
|
|
delta: "+1 today",
|
|
tone: "down"
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "grid",
|
|
gridTemplateColumns: "2fr 1fr",
|
|
gap: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
title: "Weekly activity",
|
|
subtitle: "Reports shipped per week",
|
|
actions: /*#__PURE__*/React.createElement(Tabs, {
|
|
variant: "segmented",
|
|
tabs: ["12w", "6m", "1y"],
|
|
defaultValue: "12w"
|
|
})
|
|
}, /*#__PURE__*/React.createElement(Bars, null)), /*#__PURE__*/React.createElement(Card, {
|
|
title: "Recent activity",
|
|
padding: "var(--space-5)"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 14
|
|
}
|
|
}, activity.map(([init, name, verb, obj, when], i) => /*#__PURE__*/React.createElement("div", {
|
|
key: i,
|
|
style: {
|
|
display: "flex",
|
|
gap: 10,
|
|
alignItems: "flex-start"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 26,
|
|
height: 26,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-1)",
|
|
color: "var(--ink-7)",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
font: "600 10px/1 var(--font-display)",
|
|
flexShrink: 0
|
|
}
|
|
}, init), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
color: "var(--text-heading)",
|
|
fontWeight: 600
|
|
}
|
|
}, name), " ", verb, " ", /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
color: "var(--text-heading)"
|
|
}
|
|
}, obj), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
marginTop: 2
|
|
}
|
|
}, when))))))));
|
|
}
|
|
window.LwOverview = Overview;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/dashboard/Overview.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/dashboard/Reports.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Badge,
|
|
Tag,
|
|
Button,
|
|
Icon,
|
|
IconButton,
|
|
Tabs,
|
|
Input
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function Reports({
|
|
onNew
|
|
}) {
|
|
const rows = [["Q3 launch readiness", "Q3 launch", ["launch", "priority"], "positive", "Active", "Sam Rivera", "2m ago"], ["Mobile refresh scope", "Mobile refresh", ["mobile"], "warning", "Pending", "Jae Kim", "18m ago"], ["Docs rewrite plan", "Docs rewrite", ["docs"], "positive", "Active", "Ana Petrova", "1h ago"], ["Churn analysis — June", "Q3 launch", ["data"], "neutral", "Draft", "Sam Rivera", "2d ago"], ["Onboarding funnel v2", "Mobile refresh", ["mobile", "data"], "danger", "Failed", "Jae Kim", "3d ago"]];
|
|
const th = {
|
|
textAlign: "left",
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
fontWeight: 600,
|
|
padding: "10px 16px",
|
|
borderBottom: "1px solid var(--border-subtle)",
|
|
whiteSpace: "nowrap"
|
|
};
|
|
const td = {
|
|
padding: "12px 16px",
|
|
borderBottom: "1px solid var(--border-subtle)",
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-body)",
|
|
verticalAlign: "middle"
|
|
};
|
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
marginBottom: 20
|
|
}
|
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
style: {
|
|
font: "var(--type-h2)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: 0,
|
|
flex: 1
|
|
}
|
|
}, "Reports"), /*#__PURE__*/React.createElement(Button, {
|
|
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
name: "plus",
|
|
size: 16
|
|
}),
|
|
onClick: onNew
|
|
}, "New report")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
marginBottom: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Tabs, {
|
|
tabs: ["All", "Active", "Drafts", "Archived"],
|
|
defaultValue: "All",
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}), /*#__PURE__*/React.createElement(Input, {
|
|
placeholder: "Filter reports\u2026",
|
|
size: "sm",
|
|
style: {
|
|
width: 220
|
|
}
|
|
})), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "0"
|
|
}, /*#__PURE__*/React.createElement("table", {
|
|
style: {
|
|
width: "100%",
|
|
borderCollapse: "collapse"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Report"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Project"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Tags"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Status"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Owner"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}, "Updated"), /*#__PURE__*/React.createElement("th", {
|
|
style: th
|
|
}))), /*#__PURE__*/React.createElement("tbody", null, rows.map(([name, proj, tags, tone, status, owner, when], i) => /*#__PURE__*/React.createElement("tr", {
|
|
key: i
|
|
}, /*#__PURE__*/React.createElement("td", {
|
|
style: {
|
|
...td,
|
|
color: "var(--text-heading)",
|
|
fontWeight: 600
|
|
}
|
|
}, name), /*#__PURE__*/React.createElement("td", {
|
|
style: td
|
|
}, proj), /*#__PURE__*/React.createElement("td", {
|
|
style: td
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "inline-flex",
|
|
gap: 6
|
|
}
|
|
}, tags.map(t => /*#__PURE__*/React.createElement(Tag, {
|
|
key: t
|
|
}, t)))), /*#__PURE__*/React.createElement("td", {
|
|
style: td
|
|
}, /*#__PURE__*/React.createElement(Badge, {
|
|
tone: tone
|
|
}, status)), /*#__PURE__*/React.createElement("td", {
|
|
style: td
|
|
}, owner), /*#__PURE__*/React.createElement("td", {
|
|
style: {
|
|
...td,
|
|
fontFamily: "var(--font-mono)",
|
|
fontSize: 12,
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, when), /*#__PURE__*/React.createElement("td", {
|
|
style: {
|
|
...td,
|
|
textAlign: "right"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
label: "More",
|
|
size: "sm"
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: "more",
|
|
size: 16
|
|
}))))))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
padding: "10px 16px",
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "5 of 86 reports")));
|
|
}
|
|
window.LwReports = Reports;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/dashboard/Reports.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/dashboard/SettingsScreen.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Button,
|
|
Input,
|
|
Select,
|
|
Checkbox,
|
|
Radio,
|
|
Switch
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function SettingsScreen({
|
|
onSave
|
|
}) {
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--content-max)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
style: {
|
|
font: "var(--type-h2)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: "0 0 20px"
|
|
}
|
|
}, "Workspace settings"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
title: "General",
|
|
padding: "var(--space-6)"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Input, {
|
|
label: "Workspace name",
|
|
defaultValue: "Acme Inc",
|
|
hint: "Shown in the sidebar and on invites."
|
|
}), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Select, {
|
|
label: "Default role for invites",
|
|
options: ["Editor", "Admin", "Viewer"],
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}), /*#__PURE__*/React.createElement(Select, {
|
|
label: "Week starts on",
|
|
options: ["Monday", "Sunday"],
|
|
style: {
|
|
flex: 1
|
|
}
|
|
})), /*#__PURE__*/React.createElement(Switch, {
|
|
label: "Public workspace"
|
|
}))), /*#__PURE__*/React.createElement(Card, {
|
|
title: "Notifications",
|
|
subtitle: "What we email you about",
|
|
padding: "var(--space-6)"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: 40
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 12
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
label: "Weekly summaries",
|
|
defaultChecked: true
|
|
}), /*#__PURE__*/React.createElement(Checkbox, {
|
|
label: "Mentions",
|
|
defaultChecked: true
|
|
}), /*#__PURE__*/React.createElement(Checkbox, {
|
|
label: "Report status changes"
|
|
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
marginBottom: 10
|
|
}
|
|
}, "Digest frequency"), /*#__PURE__*/React.createElement(Radio, {
|
|
options: ["Every day", "Weekly", "Never"],
|
|
defaultValue: "Weekly"
|
|
})))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
justifyContent: "flex-end",
|
|
gap: 10
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
variant: "secondary"
|
|
}, "Cancel"), /*#__PURE__*/React.createElement(Button, {
|
|
onClick: onSave
|
|
}, "Save changes"))));
|
|
}
|
|
window.LwSettingsScreen = SettingsScreen;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/dashboard/SettingsScreen.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/dashboard/Shell.jsx
|
|
try { (() => {
|
|
const {
|
|
Icon,
|
|
Tooltip,
|
|
IconButton
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function SideItem({
|
|
icon,
|
|
label,
|
|
active,
|
|
onClick
|
|
}) {
|
|
const [hover, setHover] = React.useState(false);
|
|
return /*#__PURE__*/React.createElement("button", {
|
|
onClick: onClick,
|
|
onMouseEnter: () => setHover(true),
|
|
onMouseLeave: () => setHover(false),
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 10,
|
|
width: "100%",
|
|
height: 36,
|
|
padding: "0 10px",
|
|
border: "none",
|
|
cursor: "pointer",
|
|
borderRadius: "var(--radius-md)",
|
|
font: "var(--type-label)",
|
|
textAlign: "left",
|
|
color: active ? "var(--text-heading)" : "var(--text-muted)",
|
|
background: active ? "var(--ink-2)" : hover ? "var(--ink-1)" : "transparent",
|
|
transition: "background var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: icon,
|
|
size: 17
|
|
}), label);
|
|
}
|
|
function Shell({
|
|
screen,
|
|
setScreen,
|
|
children,
|
|
onNotify
|
|
}) {
|
|
const nav = [["overview", "dashboard", "Overview"], ["reports", "file", "Reports"], ["members", "users", "Members"], ["settings", "settings", "Settings"]];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
height: "100vh",
|
|
background: "var(--surface-page)",
|
|
font: "var(--type-body)",
|
|
color: "var(--text-body)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("aside", {
|
|
style: {
|
|
width: 240,
|
|
flexShrink: 0,
|
|
background: "var(--surface-sunken)",
|
|
borderRight: "1px solid var(--border-subtle)",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
padding: 16
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 8,
|
|
padding: "4px 10px 20px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "800 20px/1 var(--font-display)",
|
|
letterSpacing: "-0.03em",
|
|
color: "var(--ink-9)"
|
|
}
|
|
}, "Leeworks")), /*#__PURE__*/React.createElement("nav", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 2
|
|
}
|
|
}, nav.map(([id, icon, label]) => /*#__PURE__*/React.createElement(SideItem, {
|
|
key: id,
|
|
icon: icon,
|
|
label: label,
|
|
active: screen === id,
|
|
onClick: () => setScreen(id)
|
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
marginTop: 24,
|
|
padding: "0 10px",
|
|
font: "var(--type-overline)",
|
|
letterSpacing: "var(--tracking-wide)",
|
|
textTransform: "uppercase",
|
|
color: "var(--ink-4)",
|
|
fontSize: 11
|
|
}
|
|
}, "Projects"), /*#__PURE__*/React.createElement("nav", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 2,
|
|
marginTop: 8
|
|
}
|
|
}, /*#__PURE__*/React.createElement(SideItem, {
|
|
icon: "folder",
|
|
label: "Q3 launch",
|
|
onClick: () => setScreen("reports")
|
|
}), /*#__PURE__*/React.createElement(SideItem, {
|
|
icon: "folder",
|
|
label: "Mobile refresh",
|
|
onClick: () => setScreen("reports")
|
|
}), /*#__PURE__*/React.createElement(SideItem, {
|
|
icon: "folder",
|
|
label: "Docs rewrite",
|
|
onClick: () => setScreen("reports")
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
marginTop: "auto",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 10,
|
|
padding: 10,
|
|
borderRadius: "var(--radius-md)",
|
|
background: "var(--surface-card)",
|
|
border: "1px solid var(--border-subtle)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 28,
|
|
height: 28,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-9)",
|
|
color: "#fff",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
font: "600 12px/1 var(--font-display)"
|
|
}
|
|
}, "SR"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
whiteSpace: "nowrap"
|
|
}
|
|
}, "Sam Rivera"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Acme Inc")))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("header", {
|
|
style: {
|
|
height: 56,
|
|
flexShrink: 0,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 8,
|
|
padding: "0 24px",
|
|
borderBottom: "1px solid var(--border-subtle)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 8,
|
|
flex: 1,
|
|
maxWidth: 360,
|
|
height: 36,
|
|
padding: "0 12px",
|
|
border: "1px solid var(--border-default)",
|
|
borderRadius: "var(--radius-md)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: "search",
|
|
size: 16
|
|
}), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-body-sm)"
|
|
}
|
|
}, "Search projects, reports, people\u2026"), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
marginLeft: "auto",
|
|
font: "var(--type-caption)",
|
|
fontFamily: "var(--font-mono)",
|
|
background: "var(--ink-1)",
|
|
borderRadius: 4,
|
|
padding: "2px 6px"
|
|
}
|
|
}, "\u2318K")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
marginLeft: "auto",
|
|
display: "flex",
|
|
gap: 4
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
label: "Notifications",
|
|
side: "bottom"
|
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
label: "Notifications",
|
|
onClick: onNotify
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: "bell",
|
|
size: 18
|
|
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
label: "Inbox",
|
|
side: "bottom"
|
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
label: "Inbox"
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: "inbox",
|
|
size: 18
|
|
}))))), /*#__PURE__*/React.createElement("main", {
|
|
style: {
|
|
flex: 1,
|
|
overflow: "auto",
|
|
padding: "28px 24px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "0 auto"
|
|
}
|
|
}, children))));
|
|
}
|
|
window.LwShell = Shell;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/dashboard/Shell.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/mobile/MHome.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Badge,
|
|
Icon,
|
|
Button
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function MHome({
|
|
onNew
|
|
}) {
|
|
const items = [["Q3 launch readiness", "positive", "Active", "2m ago"], ["Mobile refresh scope", "warning", "Pending", "18m ago"], ["Docs rewrite plan", "positive", "Active", "1h ago"], ["Churn analysis — June", "neutral", "Draft", "2d ago"]];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
padding: "8px 20px 20px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
margin: "12px 0 20px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h3)",
|
|
fontFamily: "var(--font-display)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)"
|
|
}
|
|
}, "Good morning, Sam"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)",
|
|
marginTop: 2
|
|
}
|
|
}, "4 reports need your eyes")), /*#__PURE__*/React.createElement(Button, {
|
|
size: "sm",
|
|
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
name: "plus",
|
|
size: 15
|
|
}),
|
|
onClick: onNew
|
|
}, "New")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: 12,
|
|
marginBottom: 20
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
padding: "var(--space-4)",
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Shipped"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
fontFamily: "var(--font-mono)",
|
|
fontSize: 24,
|
|
fontWeight: 600,
|
|
color: "var(--text-heading)",
|
|
marginTop: 4
|
|
}
|
|
}, "86")), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "var(--space-4)",
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Reviews"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
fontFamily: "var(--font-mono)",
|
|
fontSize: 24,
|
|
fontWeight: 600,
|
|
color: "var(--text-heading)",
|
|
marginTop: 4
|
|
}
|
|
}, "14")), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "var(--space-4)",
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Errors"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
fontFamily: "var(--font-mono)",
|
|
fontSize: 24,
|
|
fontWeight: 600,
|
|
color: "var(--danger)",
|
|
marginTop: 4
|
|
}
|
|
}, "2"))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-overline)",
|
|
letterSpacing: "var(--tracking-wide)",
|
|
textTransform: "uppercase",
|
|
color: "var(--text-muted)",
|
|
fontSize: 11,
|
|
marginBottom: 10
|
|
}
|
|
}, "Recent reports"), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "0"
|
|
}, items.map(([name, tone, status, when], i) => /*#__PURE__*/React.createElement("div", {
|
|
key: i,
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
padding: "14px 16px",
|
|
minHeight: 44,
|
|
borderBottom: i < items.length - 1 ? "1px solid var(--border-subtle)" : "none"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
whiteSpace: "nowrap",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis"
|
|
}
|
|
}, name), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
marginTop: 2
|
|
}
|
|
}, when)), /*#__PURE__*/React.createElement(Badge, {
|
|
tone: tone
|
|
}, status), /*#__PURE__*/React.createElement(Icon, {
|
|
name: "chevronRight",
|
|
size: 16,
|
|
style: {
|
|
color: "var(--ink-4)"
|
|
}
|
|
})))));
|
|
}
|
|
window.LwMHome = MHome;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/mobile/MHome.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/mobile/MInbox.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Icon,
|
|
Tabs
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function MInbox() {
|
|
const items = [["JK", "Jae Kim mentioned you", "\u201cCan you sanity-check the funnel numbers before Friday?\u201d", "18m", true], ["AP", "Ana requested review", "Docs rewrite plan · 6 pages", "1h", true], ["SR", "Sync completed", "Q3 launch · 3 sources updated", "3h", false], ["JK", "Jae approved your report", "Mobile refresh scope", "1d", false]];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
padding: "8px 20px 20px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h3)",
|
|
fontFamily: "var(--font-display)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: "12px 0 16px"
|
|
}
|
|
}, "Inbox"), /*#__PURE__*/React.createElement(Tabs, {
|
|
variant: "segmented",
|
|
tabs: ["All", "Mentions", "Reviews"],
|
|
defaultValue: "All",
|
|
style: {
|
|
marginBottom: 16
|
|
}
|
|
}), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "0"
|
|
}, items.map(([init, title, body, when, unread], i) => /*#__PURE__*/React.createElement("div", {
|
|
key: i,
|
|
style: {
|
|
display: "flex",
|
|
gap: 12,
|
|
padding: "14px 16px",
|
|
borderBottom: i < items.length - 1 ? "1px solid var(--border-subtle)" : "none",
|
|
background: unread ? "var(--surface-card)" : "var(--surface-page)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 32,
|
|
height: 32,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-1)",
|
|
color: "var(--ink-7)",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
font: "600 11px/1 var(--font-display)",
|
|
flexShrink: 0
|
|
}
|
|
}, init), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
minWidth: 0
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "baseline",
|
|
gap: 8
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)",
|
|
flex: 1,
|
|
whiteSpace: "nowrap",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis"
|
|
}
|
|
}, title), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
fontFamily: "var(--font-mono)"
|
|
}
|
|
}, when)), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-body)",
|
|
marginTop: 2,
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis",
|
|
whiteSpace: "nowrap"
|
|
}
|
|
}, body)), unread && /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 8,
|
|
height: 8,
|
|
borderRadius: "50%",
|
|
background: "var(--signal)",
|
|
marginTop: 6,
|
|
flexShrink: 0
|
|
}
|
|
})))));
|
|
}
|
|
window.LwMInbox = MInbox;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/mobile/MInbox.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/mobile/MProfile.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Switch,
|
|
Icon,
|
|
Button
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function MProfile() {
|
|
const rows = [["user", "Account"], ["bell", "Notifications"], ["users", "Workspace members"], ["settings", "Preferences"]];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
padding: "8px 20px 20px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
textAlign: "center",
|
|
margin: "20px 0 24px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 72,
|
|
height: 72,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-9)",
|
|
color: "#fff",
|
|
display: "inline-flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
font: "600 24px/1 var(--font-display)"
|
|
}
|
|
}, "SR"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h4)",
|
|
fontFamily: "var(--font-display)",
|
|
color: "var(--text-heading)",
|
|
marginTop: 12
|
|
}
|
|
}, "Sam Rivera"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "sam@acme.co \xB7 Acme Inc")), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "0",
|
|
style: {
|
|
marginBottom: 16
|
|
}
|
|
}, rows.map(([icon, label], i) => /*#__PURE__*/React.createElement("div", {
|
|
key: label,
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 12,
|
|
padding: "14px 16px",
|
|
minHeight: 44,
|
|
borderBottom: i < rows.length - 1 ? "1px solid var(--border-subtle)" : "none",
|
|
cursor: "pointer"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: icon,
|
|
size: 18,
|
|
style: {
|
|
color: "var(--ink-6)"
|
|
}
|
|
}), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
flex: 1,
|
|
font: "var(--type-label)",
|
|
color: "var(--text-heading)"
|
|
}
|
|
}, label), /*#__PURE__*/React.createElement(Icon, {
|
|
name: "chevronRight",
|
|
size: 16,
|
|
style: {
|
|
color: "var(--ink-4)"
|
|
}
|
|
})))), /*#__PURE__*/React.createElement(Card, {
|
|
padding: "var(--space-4)",
|
|
style: {
|
|
marginBottom: 24
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 14
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Switch, {
|
|
label: "Push notifications",
|
|
defaultChecked: true
|
|
}), /*#__PURE__*/React.createElement(Switch, {
|
|
label: "Weekly summary email",
|
|
defaultChecked: true
|
|
}), /*#__PURE__*/React.createElement(Switch, {
|
|
label: "Dark mode"
|
|
}))), /*#__PURE__*/React.createElement(Button, {
|
|
variant: "secondary",
|
|
style: {
|
|
width: "100%"
|
|
}
|
|
}, "Sign out"));
|
|
}
|
|
window.LwMProfile = MProfile;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/mobile/MProfile.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/mobile/MobileShell.jsx
|
|
try { (() => {
|
|
const {
|
|
Icon
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function MobileShell({
|
|
tab,
|
|
setTab,
|
|
children
|
|
}) {
|
|
const tabs = [["home", "home", "Home"], ["inbox", "inbox", "Inbox"], ["profile", "user", "Profile"]];
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
width: 390,
|
|
height: 844,
|
|
background: "var(--surface-page)",
|
|
borderRadius: 48,
|
|
border: "1px solid var(--border-default)",
|
|
boxShadow: "var(--shadow-overlay)",
|
|
overflow: "hidden",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
font: "var(--type-body)",
|
|
color: "var(--text-body)",
|
|
position: "relative"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
height: 54,
|
|
flexShrink: 0,
|
|
display: "flex",
|
|
alignItems: "flex-end",
|
|
justifyContent: "space-between",
|
|
padding: "0 28px 6px",
|
|
font: "600 14px/1 var(--font-body)",
|
|
color: "var(--text-heading)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", null, "9:41"), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "inline-flex",
|
|
gap: 5,
|
|
alignItems: "center"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
width: "16",
|
|
height: "12",
|
|
viewBox: "0 0 16 12",
|
|
fill: "currentColor"
|
|
}, /*#__PURE__*/React.createElement("rect", {
|
|
x: "0",
|
|
y: "7",
|
|
width: "3",
|
|
height: "5",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "4.5",
|
|
y: "5",
|
|
width: "3",
|
|
height: "7",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "9",
|
|
y: "2.5",
|
|
width: "3",
|
|
height: "9.5",
|
|
rx: "1"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "13",
|
|
y: "0",
|
|
width: "3",
|
|
height: "12",
|
|
rx: "1",
|
|
opacity: ".35"
|
|
})), /*#__PURE__*/React.createElement("svg", {
|
|
width: "24",
|
|
height: "12",
|
|
viewBox: "0 0 24 12",
|
|
fill: "none"
|
|
}, /*#__PURE__*/React.createElement("rect", {
|
|
x: "0.5",
|
|
y: "0.5",
|
|
width: "20",
|
|
height: "11",
|
|
rx: "3",
|
|
stroke: "currentColor",
|
|
opacity: ".4"
|
|
}), /*#__PURE__*/React.createElement("rect", {
|
|
x: "2",
|
|
y: "2",
|
|
width: "14",
|
|
height: "8",
|
|
rx: "1.5",
|
|
fill: "currentColor"
|
|
}), /*#__PURE__*/React.createElement("path", {
|
|
d: "M22.5 4v4a2 2 0 0 0 0-4z",
|
|
fill: "currentColor",
|
|
opacity: ".4"
|
|
})))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1,
|
|
overflow: "auto",
|
|
minHeight: 0
|
|
}
|
|
}, children), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
height: 84,
|
|
flexShrink: 0,
|
|
borderTop: "1px solid var(--border-subtle)",
|
|
background: "var(--surface-page)",
|
|
display: "flex",
|
|
padding: "8px 12px 24px"
|
|
}
|
|
}, tabs.map(([id, icon, label]) => /*#__PURE__*/React.createElement("button", {
|
|
key: id,
|
|
onClick: () => setTab(id),
|
|
style: {
|
|
flex: 1,
|
|
border: "none",
|
|
background: "none",
|
|
cursor: "pointer",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
alignItems: "center",
|
|
gap: 4,
|
|
padding: "6px 0",
|
|
color: tab === id ? "var(--text-heading)" : "var(--ink-4)",
|
|
transition: "color var(--dur-fast) var(--ease-out)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: icon,
|
|
size: 22,
|
|
strokeWidth: tab === id ? 2 : 1.75
|
|
}), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
fontWeight: tab === id ? 600 : 500
|
|
}
|
|
}, label)))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
position: "absolute",
|
|
bottom: 8,
|
|
left: "50%",
|
|
transform: "translateX(-50%)",
|
|
width: 134,
|
|
height: 5,
|
|
borderRadius: 3,
|
|
background: "var(--ink-9)",
|
|
opacity: .9
|
|
}
|
|
}));
|
|
}
|
|
window.LwMobileShell = MobileShell;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/mobile/MobileShell.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/website/Features.jsx
|
|
try { (() => {
|
|
const {
|
|
Card,
|
|
Icon,
|
|
Button
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function Features() {
|
|
const feats = [["chart", "Reports that write themselves", "Connect your tools once. Leeworks drafts the weekly summary; you edit and ship."], ["users", "Built for the whole team", "Everyone sees the same bright surface — no per-seat gymnastics, no stale copies."], ["folder", "Projects, not piles", "Docs, decisions, and data live next to the work they describe."], ["check", "Reviews without the chase", "Assign, remind, and resolve in one thread. No status meetings."], ["inbox", "One inbox for everything", "Mentions, approvals, and syncs in a single queue you can actually finish."], ["settings", "Yours to shape", "Roles, fields, and workflows bend to your team — not the other way round."]];
|
|
return /*#__PURE__*/React.createElement("section", {
|
|
id: "features",
|
|
style: {
|
|
borderTop: "1px solid var(--border-subtle)",
|
|
padding: "72px 24px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "0 auto"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-overline)",
|
|
letterSpacing: "var(--tracking-wide)",
|
|
textTransform: "uppercase",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Features"), /*#__PURE__*/React.createElement("h2", {
|
|
style: {
|
|
font: "var(--type-h1)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: "12px 0 40px",
|
|
maxWidth: 560
|
|
}
|
|
}, "Less noise. More shipped."), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "grid",
|
|
gridTemplateColumns: "repeat(3,1fr)",
|
|
gap: 16
|
|
}
|
|
}, feats.map(([icon, title, body]) => /*#__PURE__*/React.createElement(Card, {
|
|
key: title,
|
|
padding: "var(--space-6)"
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
display: "inline-flex",
|
|
width: 40,
|
|
height: 40,
|
|
borderRadius: "var(--radius-md)",
|
|
background: "var(--ink-1)",
|
|
color: "var(--ink-8)",
|
|
alignItems: "center",
|
|
justifyContent: "center"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
name: icon,
|
|
size: 20
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-h4)",
|
|
color: "var(--text-heading)",
|
|
marginTop: 16
|
|
}
|
|
}, title), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-body)",
|
|
marginTop: 8,
|
|
textWrap: "pretty"
|
|
}
|
|
}, body)))), /*#__PURE__*/React.createElement("div", {
|
|
id: "pricing",
|
|
style: {
|
|
marginTop: 72,
|
|
border: "1px solid var(--border-subtle)",
|
|
borderRadius: "var(--radius-xl)",
|
|
padding: "48px 40px",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 24,
|
|
background: "var(--surface-sunken)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
style: {
|
|
font: "var(--type-h2)",
|
|
letterSpacing: "var(--tracking-tight)",
|
|
color: "var(--text-heading)",
|
|
margin: 0
|
|
}
|
|
}, "Start free. Stay simple."), /*#__PURE__*/React.createElement("p", {
|
|
style: {
|
|
font: "var(--type-body)",
|
|
color: "var(--text-body)",
|
|
margin: "10px 0 0",
|
|
maxWidth: 480
|
|
}
|
|
}, "Free for teams of 5, then $8 per person per month. Everything included \u2014 no tiers to decode.")), /*#__PURE__*/React.createElement(Button, {
|
|
size: "lg"
|
|
}, "Start free"))));
|
|
}
|
|
window.LwFeatures = Features;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/website/Features.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/website/Hero.jsx
|
|
try { (() => {
|
|
const {
|
|
Button,
|
|
Badge,
|
|
Icon
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function Hero() {
|
|
return /*#__PURE__*/React.createElement("section", {
|
|
id: "product",
|
|
style: {
|
|
padding: "96px 24px 72px",
|
|
textAlign: "center"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: 820,
|
|
margin: "0 auto"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Badge, {
|
|
tone: "positive",
|
|
style: {
|
|
marginBottom: 20
|
|
}
|
|
}, "New \xB7 Reports 2.0"), /*#__PURE__*/React.createElement("h1", {
|
|
style: {
|
|
font: "var(--type-display)",
|
|
fontSize: 64,
|
|
letterSpacing: "-0.03em",
|
|
color: "var(--text-heading)",
|
|
margin: 0,
|
|
textWrap: "balance"
|
|
}
|
|
}, "Everything your team ships, in one place"), /*#__PURE__*/React.createElement("p", {
|
|
style: {
|
|
font: "var(--type-body)",
|
|
fontSize: 19,
|
|
color: "var(--text-body)",
|
|
maxWidth: 560,
|
|
margin: "20px auto 0",
|
|
textWrap: "pretty"
|
|
}
|
|
}, "Leeworks keeps projects, docs, and reports on one bright surface. Invite your team, connect your tools, and see what ships \u2014 without the noise."), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
display: "flex",
|
|
gap: 12,
|
|
justifyContent: "center",
|
|
marginTop: 32
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
size: "lg"
|
|
}, "Start free"), /*#__PURE__*/React.createElement(Button, {
|
|
size: "lg",
|
|
variant: "secondary",
|
|
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
name: "arrowUpRight",
|
|
size: 16
|
|
})
|
|
}, "Book a demo")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-caption)",
|
|
color: "var(--text-muted)",
|
|
marginTop: 14
|
|
}
|
|
}, "Free for teams of 5. No credit card.")), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "64px auto 0",
|
|
border: "1px solid var(--border-subtle)",
|
|
borderRadius: "var(--radius-xl)",
|
|
boxShadow: "var(--shadow-raised)",
|
|
overflow: "hidden",
|
|
background: "var(--surface-sunken)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
height: 36,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 6,
|
|
padding: "0 14px",
|
|
borderBottom: "1px solid var(--border-subtle)",
|
|
background: "var(--surface-card)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 10,
|
|
height: 10,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-3)"
|
|
}
|
|
}), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 10,
|
|
height: 10,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-3)"
|
|
}
|
|
}), /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
width: 10,
|
|
height: 10,
|
|
borderRadius: "50%",
|
|
background: "var(--ink-3)"
|
|
}
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
height: 420,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
font: "var(--type-body-sm)",
|
|
color: "var(--text-muted)"
|
|
}
|
|
}, "Product screenshot \u2014 drop in a capture of ui_kits/dashboard")));
|
|
}
|
|
window.LwHero = Hero;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/website/Hero.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/website/SiteFooter.jsx
|
|
try { (() => {
|
|
function SiteFooter() {
|
|
const col = {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
gap: 10,
|
|
font: "var(--type-body-sm)"
|
|
};
|
|
const a = {
|
|
color: "var(--ink-4)",
|
|
textDecoration: "none"
|
|
};
|
|
const h = {
|
|
font: "var(--type-overline)",
|
|
letterSpacing: "var(--tracking-wide)",
|
|
textTransform: "uppercase",
|
|
color: "var(--ink-5)",
|
|
fontSize: 11,
|
|
marginBottom: 4
|
|
};
|
|
return /*#__PURE__*/React.createElement("footer", {
|
|
id: "docs",
|
|
style: {
|
|
background: "var(--surface-inverse)",
|
|
color: "var(--ink-4)",
|
|
padding: "56px 24px 40px"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "0 auto",
|
|
display: "flex",
|
|
gap: 64
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
flex: 1
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "800 22px/1 var(--font-display)",
|
|
letterSpacing: "-0.03em",
|
|
color: "#fff"
|
|
}
|
|
}, "Leeworks"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
font: "var(--type-body-sm)",
|
|
marginTop: 12,
|
|
maxWidth: 260
|
|
}
|
|
}, "Everything your team ships, in one place.")), /*#__PURE__*/React.createElement("div", {
|
|
style: col
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: h
|
|
}, "Product"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#features"
|
|
}, "Features"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#pricing"
|
|
}, "Pricing"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "Changelog")), /*#__PURE__*/React.createElement("div", {
|
|
style: col
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: h
|
|
}, "Company"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "About"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "Careers"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "Contact")), /*#__PURE__*/React.createElement("div", {
|
|
style: col
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: h
|
|
}, "Resources"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "Docs"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "API"), /*#__PURE__*/React.createElement("a", {
|
|
style: a,
|
|
href: "#"
|
|
}, "Status"))), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "40px auto 0",
|
|
paddingTop: 20,
|
|
borderTop: "1px solid var(--ink-8)",
|
|
font: "var(--type-caption)",
|
|
color: "var(--ink-6)"
|
|
}
|
|
}, "\xA9 2026 Leeworks Systems"));
|
|
}
|
|
window.LwSiteFooter = SiteFooter;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/website/SiteFooter.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
// ui_kits/website/SiteNav.jsx
|
|
try { (() => {
|
|
const {
|
|
Button
|
|
} = window.LeeworksDesignSystem_b3e560;
|
|
function SiteNav() {
|
|
const link = {
|
|
font: "var(--type-label)",
|
|
color: "var(--text-body)",
|
|
textDecoration: "none",
|
|
padding: "8px 12px",
|
|
borderRadius: "var(--radius-md)"
|
|
};
|
|
return /*#__PURE__*/React.createElement("nav", {
|
|
style: {
|
|
position: "sticky",
|
|
top: 0,
|
|
zIndex: 50,
|
|
background: "rgba(255,255,255,.97)",
|
|
borderBottom: "1px solid var(--border-subtle)"
|
|
}
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
maxWidth: "var(--page-max)",
|
|
margin: "0 auto",
|
|
padding: "0 24px",
|
|
height: 64,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
gap: 8
|
|
}
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
style: {
|
|
font: "800 22px/1 var(--font-display)",
|
|
letterSpacing: "-0.03em",
|
|
color: "var(--ink-9)",
|
|
marginRight: 24
|
|
}
|
|
}, "Leeworks"), /*#__PURE__*/React.createElement("a", {
|
|
href: "#product",
|
|
style: link
|
|
}, "Product"), /*#__PURE__*/React.createElement("a", {
|
|
href: "#features",
|
|
style: link
|
|
}, "Features"), /*#__PURE__*/React.createElement("a", {
|
|
href: "#pricing",
|
|
style: link
|
|
}, "Pricing"), /*#__PURE__*/React.createElement("a", {
|
|
href: "#docs",
|
|
style: link
|
|
}, "Docs"), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
marginLeft: "auto",
|
|
display: "flex",
|
|
gap: 10,
|
|
alignItems: "center"
|
|
}
|
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
variant: "ghost",
|
|
size: "sm"
|
|
}, "Sign in"), /*#__PURE__*/React.createElement(Button, {
|
|
size: "sm"
|
|
}, "Start free"))));
|
|
}
|
|
window.LwSiteNav = SiteNav;
|
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "ui_kits/website/SiteNav.jsx", error: String((e && e.message) || e) }); }
|
|
|
|
__ds_ns.Badge = __ds_scope.Badge;
|
|
|
|
__ds_ns.Card = __ds_scope.Card;
|
|
|
|
__ds_ns.Icon = __ds_scope.Icon;
|
|
|
|
__ds_ns.Tag = __ds_scope.Tag;
|
|
|
|
__ds_ns.Dialog = __ds_scope.Dialog;
|
|
|
|
__ds_ns.Toast = __ds_scope.Toast;
|
|
|
|
__ds_ns.Tooltip = __ds_scope.Tooltip;
|
|
|
|
__ds_ns.Button = __ds_scope.Button;
|
|
|
|
__ds_ns.Checkbox = __ds_scope.Checkbox;
|
|
|
|
__ds_ns.IconButton = __ds_scope.IconButton;
|
|
|
|
__ds_ns.Input = __ds_scope.Input;
|
|
|
|
__ds_ns.Radio = __ds_scope.Radio;
|
|
|
|
__ds_ns.Select = __ds_scope.Select;
|
|
|
|
__ds_ns.Switch = __ds_scope.Switch;
|
|
|
|
__ds_ns.Tabs = __ds_scope.Tabs;
|
|
|
|
})();
|