@xeonr/platform-ui 0.3.2 → 0.3.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/dist/editor.d.ts +2 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +6 -0
- package/dist/editor.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/kit/CodeEditor.d.ts +34 -0
- package/dist/kit/CodeEditor.d.ts.map +1 -0
- package/dist/kit/CodeEditor.js +96 -0
- package/dist/kit/CodeEditor.js.map +1 -0
- package/dist/kit/Combobox.d.ts +24 -0
- package/dist/kit/Combobox.d.ts.map +1 -0
- package/dist/kit/Combobox.js +91 -0
- package/dist/kit/Combobox.js.map +1 -0
- package/dist/kit/DataTable.d.ts +14 -1
- package/dist/kit/DataTable.d.ts.map +1 -1
- package/dist/kit/DataTable.js +87 -5
- package/dist/kit/DataTable.js.map +1 -1
- package/dist/kit/Drawer.d.ts +16 -0
- package/dist/kit/Drawer.d.ts.map +1 -0
- package/dist/kit/Drawer.js +72 -0
- package/dist/kit/Drawer.js.map +1 -0
- package/dist/kit/Icon.d.ts +20 -1
- package/dist/kit/Icon.d.ts.map +1 -1
- package/dist/kit/Icon.js +11 -5
- package/dist/kit/Icon.js.map +1 -1
- package/dist/kit/Layout.d.ts +21 -0
- package/dist/kit/Layout.d.ts.map +1 -0
- package/dist/kit/Layout.js +27 -0
- package/dist/kit/Layout.js.map +1 -0
- package/dist/kit/Menu.d.ts +32 -0
- package/dist/kit/Menu.d.ts.map +1 -0
- package/dist/kit/Menu.js +92 -0
- package/dist/kit/Menu.js.map +1 -0
- package/dist/kit/Text.d.ts +32 -0
- package/dist/kit/Text.d.ts.map +1 -1
- package/dist/kit/Text.js +82 -1
- package/dist/kit/Text.js.map +1 -1
- package/package.json +18 -2
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import styled, { keyframes } from "styled-components";
|
|
4
|
+
import { v } from "../theme/tokens.js";
|
|
5
|
+
import { Icon } from "./Icon.js";
|
|
6
|
+
import { IconButton } from "./Button.js";
|
|
7
|
+
const fadeIn = keyframes `from { opacity: 0; }`;
|
|
8
|
+
const slideIn = keyframes `from { transform: translateX(24px); opacity: 0; }`;
|
|
9
|
+
const Backdrop = styled.div `
|
|
10
|
+
position: fixed;
|
|
11
|
+
inset: 0;
|
|
12
|
+
z-index: ${v.zModal};
|
|
13
|
+
background: ${v.scrim};
|
|
14
|
+
backdrop-filter: blur(2px);
|
|
15
|
+
animation: ${fadeIn} 0.14s ease;
|
|
16
|
+
`;
|
|
17
|
+
const Panel = styled.aside `
|
|
18
|
+
position: fixed;
|
|
19
|
+
top: 0;
|
|
20
|
+
right: 0;
|
|
21
|
+
bottom: 0;
|
|
22
|
+
z-index: calc(${v.zModal} + 1);
|
|
23
|
+
width: min(${(p) => p.$width}px, 100vw);
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
background: ${v.surface};
|
|
27
|
+
border-left: 1px solid ${v.line2};
|
|
28
|
+
box-shadow: ${v.elev};
|
|
29
|
+
animation: ${slideIn} 0.18s cubic-bezier(0.2, 0.7, 0.3, 1);
|
|
30
|
+
`;
|
|
31
|
+
const Head = styled.header `
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: 10px;
|
|
35
|
+
padding: 14px 16px 12px;
|
|
36
|
+
border-bottom: 1px solid ${v.line};
|
|
37
|
+
flex: none;
|
|
38
|
+
`;
|
|
39
|
+
const Title = styled.h3 `
|
|
40
|
+
margin: 0;
|
|
41
|
+
font-size: 14px;
|
|
42
|
+
font-weight: 600;
|
|
43
|
+
`;
|
|
44
|
+
const Sub = styled.p `
|
|
45
|
+
margin: 1px 0 0;
|
|
46
|
+
font-size: 11.5px;
|
|
47
|
+
color: ${v.muted};
|
|
48
|
+
`;
|
|
49
|
+
const Body = styled.div `
|
|
50
|
+
padding: 16px;
|
|
51
|
+
overflow-y: auto;
|
|
52
|
+
flex: 1;
|
|
53
|
+
`;
|
|
54
|
+
/**
|
|
55
|
+
* Drawer: the right-hand working surface for a task that needs room but not a
|
|
56
|
+
* route — an API playground, a record's detail, a long form beside the list it
|
|
57
|
+
* came from. Modal: the backdrop closes it, so does Escape.
|
|
58
|
+
*/
|
|
59
|
+
export function Drawer({ open, title, sub, width = 720, onClose, children }) {
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!open)
|
|
62
|
+
return;
|
|
63
|
+
const onKey = (e) => { if (e.key === "Escape")
|
|
64
|
+
onClose(); };
|
|
65
|
+
document.addEventListener("keydown", onKey);
|
|
66
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
67
|
+
}, [open, onClose]);
|
|
68
|
+
if (!open)
|
|
69
|
+
return null;
|
|
70
|
+
return (_jsxs(_Fragment, { children: [_jsx(Backdrop, { onClick: onClose }), _jsxs(Panel, { "$width": width, role: "dialog", "aria-modal": "true", "aria-label": title, children: [_jsxs(Head, { children: [_jsxs("div", { style: { minWidth: 0 }, children: [_jsx(Title, { children: title }), sub ? _jsx(Sub, { children: sub }) : null] }), _jsx(IconButton, { onClick: onClose, "aria-label": "Close", style: { marginLeft: "auto" }, children: _jsx(Icon, { name: "close" }) })] }), _jsx(Body, { children: children })] })] }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=Drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../src/kit/Drawer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAClD,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAc,CAAC;AAE1C,MAAM,MAAM,GAAG,SAAS,CAAA,sBAAsB,CAAC;AAC/C,MAAM,OAAO,GAAG,SAAS,CAAA,mDAAmD,CAAC;AAE7E,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;aAGd,CAAC,CAAC,MAAM;gBACL,CAAC,CAAC,KAAK;;eAER,MAAM;CACpB,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAoB;;;;;kBAK5B,CAAC,CAAC,MAAM;eACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;;;gBAGd,CAAC,CAAC,OAAO;2BACE,CAAC,CAAC,KAAK;gBAClB,CAAC,CAAC,IAAI;eACP,OAAO;CACrB,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;6BAKG,CAAC,CAAC,IAAI;;CAElC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;;;;CAItB,CAAC;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAA;;;WAGT,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAItB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAQxE;IACC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,CACL,8BACE,KAAC,QAAQ,IAAC,OAAO,EAAE,OAAO,GAAI,EAC9B,MAAC,KAAK,cAAS,KAAK,EAAE,IAAI,EAAC,QAAQ,gBAAY,MAAM,gBAAa,KAAK,aACrE,MAAC,IAAI,eACH,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aACzB,KAAC,KAAK,cAAE,KAAK,GAAS,EACrB,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,cAAE,GAAG,GAAO,CAAC,CAAC,CAAC,IAAI,IAC1B,EACN,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,gBAAa,OAAO,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAC5E,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACV,IACR,EACP,KAAC,IAAI,cAAE,QAAQ,GAAQ,IACjB,IACP,CACJ,CAAC;AACJ,CAAC"}
|
package/dist/kit/Icon.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ declare const MAP: {
|
|
|
17
17
|
docs: IconDefinition;
|
|
18
18
|
close: IconDefinition;
|
|
19
19
|
"chevron-down": IconDefinition;
|
|
20
|
+
"chevron-up": IconDefinition;
|
|
20
21
|
"chevron-right": IconDefinition;
|
|
21
22
|
"chevron-left": IconDefinition;
|
|
22
23
|
"arrow-right": IconDefinition;
|
|
@@ -42,6 +43,11 @@ declare const MAP: {
|
|
|
42
43
|
palette: IconDefinition;
|
|
43
44
|
audit: IconDefinition;
|
|
44
45
|
policy: IconDefinition;
|
|
46
|
+
"lock-open": IconDefinition;
|
|
47
|
+
admin: IconDefinition;
|
|
48
|
+
bot: IconDefinition;
|
|
49
|
+
users: IconDefinition;
|
|
50
|
+
org: IconDefinition;
|
|
45
51
|
functions: IconDefinition;
|
|
46
52
|
build: IconDefinition;
|
|
47
53
|
deploys: IconDefinition;
|
|
@@ -80,6 +86,16 @@ declare const MAP: {
|
|
|
80
86
|
approvals: IconDefinition;
|
|
81
87
|
drift: IconDefinition;
|
|
82
88
|
migrations: IconDefinition;
|
|
89
|
+
module: IconDefinition;
|
|
90
|
+
modules: IconDefinition;
|
|
91
|
+
plugin: IconDefinition;
|
|
92
|
+
label: IconDefinition;
|
|
93
|
+
labels: IconDefinition;
|
|
94
|
+
commit: IconDefinition;
|
|
95
|
+
commits: IconDefinition;
|
|
96
|
+
compare: IconDefinition;
|
|
97
|
+
swap: IconDefinition;
|
|
98
|
+
link: IconDefinition;
|
|
83
99
|
copy: IconDefinition;
|
|
84
100
|
check: IconDefinition;
|
|
85
101
|
add: IconDefinition;
|
|
@@ -103,17 +119,20 @@ declare const MAP: {
|
|
|
103
119
|
warn: IconDefinition;
|
|
104
120
|
error: IconDefinition;
|
|
105
121
|
info: IconDefinition;
|
|
122
|
+
"check-circle": IconDefinition;
|
|
106
123
|
reveal: IconDefinition;
|
|
107
124
|
hide: IconDefinition;
|
|
108
125
|
};
|
|
109
126
|
export type IconName = keyof typeof MAP;
|
|
110
127
|
export declare function extendIcons(more: Record<string, IconDefinition>): void;
|
|
111
|
-
export declare function Icon({ name, spin, size, style, className }: {
|
|
128
|
+
export declare function Icon({ name, spin, size, style, className, fixedWidth }: {
|
|
112
129
|
name: IconName | (string & {});
|
|
113
130
|
spin?: boolean | undefined;
|
|
114
131
|
size?: number | undefined;
|
|
115
132
|
style?: React.CSSProperties | undefined;
|
|
116
133
|
className?: string | undefined;
|
|
134
|
+
/** reserve one glyph width, so a column of rows with mixed icons lines up */
|
|
135
|
+
fixedWidth?: boolean | undefined;
|
|
117
136
|
}): import("react").JSX.Element;
|
|
118
137
|
export {};
|
|
119
138
|
//# sourceMappingURL=Icon.d.ts.map
|
package/dist/kit/Icon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAwBxE,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCiC,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,GAAG,CAAC;AAMxC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAEtE;AAKD,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IACvE,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClC,+BAUA"}
|
package/dist/kit/Icon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
3
|
-
import { faGaugeHigh, faBolt, faRocket, faCode, faListUl, faUsers, faUserGroup, faKey, faClockRotateLeft, faGear, faMagnifyingGlass, faCircleHalfStroke, faRightFromBracket, faXmark, faChevronDown, faChevronRight, faChevronLeft, faCopy, faCheck, faPlus, faTrash, faPen, faDownload, faUpload, faFile, faFileCode, faFileZipper, faCodeBranch, faTriangleExclamation, faCircleExclamation, faCircleInfo, faGlobe, faArrowRotateRight, faArrowUpRightFromSquare, faFilter, faClock, faBox, faUser, faCircleNotch, faBars, faEllipsis, faLock, faEye, faEyeSlash, faServer, faFolder, faFolderOpen, faCircleUp, faPlay, faShieldHalved, faChartLine, faTerminal, faCubes, faLayerGroup, faThumbtack, faNetworkWired, faStop, faPause, faArrowsRotate, faCamera, faHouse, faTableCells, faDatabase, faEnvelope, faBell, faSun, faMoon, faDesktop, faArrowRight, faArrowLeft, faGrip, faSitemap, faDiagramProject, faBuilding, faIdBadge, faSliders, faBook, faPalette, faPlug, faFingerprint, faAddressCard, faScaleBalanced, faTableColumns, faStamp, } from "@fortawesome/free-solid-svg-icons";
|
|
3
|
+
import { faGaugeHigh, faBolt, faRocket, faCode, faListUl, faUsers, faUserGroup, faKey, faClockRotateLeft, faGear, faMagnifyingGlass, faCircleHalfStroke, faRightFromBracket, faXmark, faChevronDown, faChevronRight, faChevronLeft, faCopy, faCheck, faPlus, faTrash, faPen, faDownload, faUpload, faFile, faFileCode, faFileZipper, faCodeBranch, faTriangleExclamation, faCircleExclamation, faCircleInfo, faGlobe, faArrowRotateRight, faArrowUpRightFromSquare, faFilter, faClock, faBox, faUser, faCircleNotch, faBars, faEllipsis, faLock, faEye, faEyeSlash, faServer, faFolder, faFolderOpen, faCircleUp, faPlay, faShieldHalved, faChartLine, faTerminal, faCubes, faLayerGroup, faThumbtack, faNetworkWired, faStop, faPause, faArrowsRotate, faCamera, faHouse, faTableCells, faDatabase, faEnvelope, faBell, faSun, faMoon, faDesktop, faArrowRight, faArrowLeft, faGrip, faSitemap, faDiagramProject, faBuilding, faIdBadge, faSliders, faBook, faPalette, faPlug, faFingerprint, faAddressCard, faScaleBalanced, faTableColumns, faStamp, faCube, faPuzzlePiece, faCodeCompare, faArrowRightArrowLeft, faLink, faRobot, faUserShield, faCircleCheck, faTags, faTag, faLockOpen, faChevronUp, } from "@fortawesome/free-solid-svg-icons";
|
|
4
4
|
// One semantic icon map (ported pattern from the xmb kit): call sites name the
|
|
5
5
|
// concept, never the glyph, so swapping the underlying set is a one-file change.
|
|
6
6
|
// This is the union of the container-platform and functions maps plus the
|
|
@@ -11,7 +11,8 @@ const MAP = {
|
|
|
11
11
|
home: faHouse, overview: faGaugeHigh, products: faTableCells, grid: faTableCells, launcher: faGrip,
|
|
12
12
|
search: faMagnifyingGlass, theme: faCircleHalfStroke, sun: faSun, moon: faMoon, system: faDesktop,
|
|
13
13
|
"sign-out": faRightFromBracket, menu: faBars, more: faEllipsis, bell: faBell, docs: faBook,
|
|
14
|
-
close: faXmark, "chevron-down": faChevronDown, "chevron-
|
|
14
|
+
close: faXmark, "chevron-down": faChevronDown, "chevron-up": faChevronUp,
|
|
15
|
+
"chevron-right": faChevronRight, "chevron-left": faChevronLeft,
|
|
15
16
|
"arrow-right": faArrowRight, "arrow-left": faArrowLeft, external: faArrowUpRightFromSquare,
|
|
16
17
|
// teams / identity
|
|
17
18
|
members: faUsers, team: faUserGroup, user: faUser, organisation: faBuilding, role: faIdBadge,
|
|
@@ -19,6 +20,7 @@ const MAP = {
|
|
|
19
20
|
email: faEnvelope, passkey: faFingerprint, profile: faAddressCard, applications: faLayerGroup,
|
|
20
21
|
clients: faPlug, integrations: faPlug, branding: faPalette, palette: faPalette,
|
|
21
22
|
audit: faClockRotateLeft, policy: faScaleBalanced,
|
|
23
|
+
"lock-open": faLockOpen, admin: faUserShield, bot: faRobot, users: faUsers, org: faBuilding,
|
|
22
24
|
// product nouns (generic enough to share)
|
|
23
25
|
functions: faBolt, build: faBolt, deploys: faRocket, code: faCode, logs: faListUl, list: faListUl,
|
|
24
26
|
activity: faClockRotateLeft, settings: faGear, sliders: faSliders, stats: faChartLine,
|
|
@@ -29,13 +31,17 @@ const MAP = {
|
|
|
29
31
|
git: faCodeBranch, fork: faCodeBranch, snapshot: faCamera,
|
|
30
32
|
projects: faFolder, versions: faCodeBranch, schema: faTableColumns, sql: faFileCode,
|
|
31
33
|
approvals: faStamp, drift: faTriangleExclamation, migrations: faLayerGroup,
|
|
34
|
+
module: faCube, modules: faCubes, plugin: faPuzzlePiece, label: faTag, labels: faTags,
|
|
35
|
+
commit: faCodeBranch, commits: faCodeBranch, compare: faCodeCompare,
|
|
36
|
+
swap: faArrowRightArrowLeft, link: faLink,
|
|
32
37
|
// actions
|
|
33
38
|
copy: faCopy, check: faCheck, add: faPlus, delete: faTrash, edit: faPen, download: faDownload,
|
|
34
39
|
upload: faUpload, file: faFile, "file-code": faFileCode, archive: faFileZipper, pin: faThumbtack,
|
|
35
40
|
rerun: faArrowRotateRight, promote: faCircleUp, stop: faStop, suspend: faPause, resume: faPlay,
|
|
36
41
|
sync: faArrowsRotate, filter: faFilter, clock: faClock, spinner: faCircleNotch,
|
|
37
42
|
// status
|
|
38
|
-
warn: faTriangleExclamation, error: faCircleExclamation, info: faCircleInfo,
|
|
43
|
+
warn: faTriangleExclamation, error: faCircleExclamation, info: faCircleInfo,
|
|
44
|
+
"check-circle": faCircleCheck, reveal: faEye, hide: faEyeSlash,
|
|
39
45
|
};
|
|
40
46
|
// Product consoles register extra glyphs under their own names at startup.
|
|
41
47
|
// Registered names are accepted by `Icon` at runtime; typed access stays on
|
|
@@ -47,7 +53,7 @@ export function extendIcons(more) {
|
|
|
47
53
|
function lookup(name) {
|
|
48
54
|
return MAP[name] ?? EXTRA[name] ?? faCircleInfo;
|
|
49
55
|
}
|
|
50
|
-
export function Icon({ name, spin, size, style, className }) {
|
|
51
|
-
return (_jsx(FontAwesomeIcon, { icon: lookup(name), spin: spin, className: className, style: { width: size ?? "1em", height: size ?? "1em", ...style } }));
|
|
56
|
+
export function Icon({ name, spin, size, style, className, fixedWidth }) {
|
|
57
|
+
return (_jsx(FontAwesomeIcon, { icon: lookup(name), spin: spin, fixedWidth: fixedWidth, className: className, style: { width: size ?? "1em", height: size ?? "1em", ...style } }));
|
|
52
58
|
}
|
|
53
59
|
//# sourceMappingURL=Icon.js.map
|
package/dist/kit/Icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EACL,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAC5E,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACpF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAC9E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EACpF,qBAAqB,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EACrF,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EACjF,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EACnF,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EACnF,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAChF,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EACnF,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAC7E,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAChE,cAAc,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Stack: children in a column, evenly spaced. `$gap` in px (default 14). */
|
|
2
|
+
export declare const Stack: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
3
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
4
|
+
}, {
|
|
5
|
+
$gap?: number | undefined;
|
|
6
|
+
}>> & string;
|
|
7
|
+
/** Row: children on one line, centred, wrapping unless `$wrap={false}`. */
|
|
8
|
+
export declare const Row: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
9
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
$gap?: number | undefined;
|
|
12
|
+
$wrap?: boolean | undefined;
|
|
13
|
+
}>> & string;
|
|
14
|
+
/** Grid: auto-filling card grid; `$min` is the narrowest a card may get. */
|
|
15
|
+
export declare const Grid: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
16
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
$min?: number | undefined;
|
|
19
|
+
$gap?: number | undefined;
|
|
20
|
+
}>> & string;
|
|
21
|
+
//# sourceMappingURL=Layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../src/kit/Layout.tsx"],"names":[],"mappings":"AAOA,6EAA6E;AAC7E,eAAO,MAAM,KAAK;;;WAAuB,MAAM,GAAG,SAAS;YAK1D,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,GAAG;;;WAAuB,MAAM,GAAG,SAAS;YAAU,OAAO,GAAG,SAAS;YAMrF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,IAAI;;;WAAuB,MAAM,GAAG,SAAS;WAAS,MAAM,GAAG,SAAS;YAIpF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
// The three layout primitives every screen re-declares: a vertical stack, a
|
|
3
|
+
// horizontal row, and a responsive card grid. They carry no colour and no
|
|
4
|
+
// chrome — they exist so a screen composes kit components instead of growing
|
|
5
|
+
// its own `styled.div` for the same three shapes.
|
|
6
|
+
/** Stack: children in a column, evenly spaced. `$gap` in px (default 14). */
|
|
7
|
+
export const Stack = styled.div `
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
gap: ${(p) => p.$gap ?? 14}px;
|
|
11
|
+
min-width: 0;
|
|
12
|
+
`;
|
|
13
|
+
/** Row: children on one line, centred, wrapping unless `$wrap={false}`. */
|
|
14
|
+
export const Row = styled.div `
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
gap: ${(p) => p.$gap ?? 8}px;
|
|
18
|
+
${(p) => (p.$wrap === false ? "" : "flex-wrap: wrap;")}
|
|
19
|
+
min-width: 0;
|
|
20
|
+
`;
|
|
21
|
+
/** Grid: auto-filling card grid; `$min` is the narrowest a card may get. */
|
|
22
|
+
export const Grid = styled.div `
|
|
23
|
+
display: grid;
|
|
24
|
+
grid-template-columns: repeat(auto-fill, minmax(${(p) => p.$min ?? 260}px, 1fr));
|
|
25
|
+
gap: ${(p) => p.$gap ?? 14}px;
|
|
26
|
+
`;
|
|
27
|
+
//# sourceMappingURL=Layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../src/kit/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,kDAAkD;AAElD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAA+B;;;SAGrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;;CAE3B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAA4D;;;SAGhF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;;CAEvD,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAA0D;;oDAEpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG;SAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;CAC3B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type IconName } from "./Icon.tsx";
|
|
3
|
+
export declare const MenuLabel: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
4
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
5
|
+
}> & string;
|
|
6
|
+
export declare const MenuDivider: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
7
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
8
|
+
}> & string;
|
|
9
|
+
export declare function MenuItem({ icon, to, href, onClick, danger, disabled, children }: {
|
|
10
|
+
icon?: IconName | (string & {}) | undefined;
|
|
11
|
+
/** router destination */
|
|
12
|
+
to?: string | undefined;
|
|
13
|
+
/** plain anchor destination (external) */
|
|
14
|
+
href?: string | undefined;
|
|
15
|
+
onClick?: (() => void) | undefined;
|
|
16
|
+
danger?: boolean | undefined;
|
|
17
|
+
disabled?: boolean | undefined;
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Menu: click-to-open popover anchored under its trigger. Closes on outside
|
|
22
|
+
* click, on Escape, and on any click inside the panel — menu items navigate or
|
|
23
|
+
* act, so "one click, one outcome" is always the right behaviour.
|
|
24
|
+
*/
|
|
25
|
+
export declare function Menu({ trigger, children, align, width }: {
|
|
26
|
+
/** renders the anchor; `open` lets it show its own state (a chevron, a tint) */
|
|
27
|
+
trigger: (open: boolean) => ReactNode;
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
align?: "left" | "right" | undefined;
|
|
30
|
+
width?: number | undefined;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=Menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpE,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmBjD,eAAO,MAAM,SAAS;;WAQrB,CAAC;AAEF,eAAO,MAAM,WAAW;;WAGvB,CAAC;AAkCF,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAChF,IAAI,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5C,yBAAyB;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAKA;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAe,EAAE,KAAW,EAAE,EAAE;IACxE,gFAAgF;IAChF,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAuBA"}
|
package/dist/kit/Menu.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { Link } from "react-router-dom";
|
|
5
|
+
import { v } from "../theme/tokens.js";
|
|
6
|
+
import { Icon } from "./Icon.js";
|
|
7
|
+
const Wrap = styled.div `position: relative;`;
|
|
8
|
+
const Dropdown = styled.div `
|
|
9
|
+
position: absolute;
|
|
10
|
+
top: calc(100% + 6px);
|
|
11
|
+
${(p) => (p.$align === "right" ? "right: 0;" : "left: 0;")}
|
|
12
|
+
z-index: ${v.zPop};
|
|
13
|
+
width: ${(p) => p.$width}px;
|
|
14
|
+
max-height: 70vh;
|
|
15
|
+
overflow-y: auto;
|
|
16
|
+
background: ${v.surface};
|
|
17
|
+
border: 1px solid ${v.line2};
|
|
18
|
+
border-radius: ${v.rCard};
|
|
19
|
+
box-shadow: ${v.elev};
|
|
20
|
+
padding: 5px;
|
|
21
|
+
`;
|
|
22
|
+
export const MenuLabel = styled.div `
|
|
23
|
+
font-family: ${v.mono};
|
|
24
|
+
font-size: 9px;
|
|
25
|
+
font-weight: 600;
|
|
26
|
+
letter-spacing: 0.14em;
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
color: ${v.faint};
|
|
29
|
+
padding: 8px 9px 4px;
|
|
30
|
+
`;
|
|
31
|
+
export const MenuDivider = styled.div `
|
|
32
|
+
border-top: 1px solid ${v.line};
|
|
33
|
+
margin: 5px 4px;
|
|
34
|
+
`;
|
|
35
|
+
const rowCss = `
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 9px;
|
|
39
|
+
width: 100%;
|
|
40
|
+
text-align: left;
|
|
41
|
+
padding: 7px 9px;
|
|
42
|
+
border-radius: 7px;
|
|
43
|
+
font-size: 12px;
|
|
44
|
+
text-decoration: none;
|
|
45
|
+
svg { width: 13px; opacity: 0.85; flex: none; }
|
|
46
|
+
`;
|
|
47
|
+
const RowButton = styled.button `
|
|
48
|
+
${rowCss}
|
|
49
|
+
color: ${(p) => (p.$danger ? v.danger : v.muted)};
|
|
50
|
+
&:hover { background: ${(p) => (p.$danger ? v.dangerBg : v.hover)}; color: ${(p) => (p.$danger ? v.danger : v.text)}; }
|
|
51
|
+
&:disabled { opacity: 0.45; cursor: not-allowed; background: none; }
|
|
52
|
+
`;
|
|
53
|
+
const RowLink = styled(Link) `
|
|
54
|
+
${rowCss}
|
|
55
|
+
color: ${(p) => (p.$danger ? v.danger : v.muted)};
|
|
56
|
+
&:hover { background: ${(p) => (p.$danger ? v.dangerBg : v.hover)}; color: ${(p) => (p.$danger ? v.danger : v.text)}; }
|
|
57
|
+
`;
|
|
58
|
+
const RowAnchor = styled.a `
|
|
59
|
+
${rowCss}
|
|
60
|
+
color: ${(p) => (p.$danger ? v.danger : v.muted)};
|
|
61
|
+
&:hover { background: ${(p) => (p.$danger ? v.dangerBg : v.hover)}; color: ${(p) => (p.$danger ? v.danger : v.text)}; }
|
|
62
|
+
`;
|
|
63
|
+
export function MenuItem({ icon, to, href, onClick, danger, disabled, children }) {
|
|
64
|
+
const inner = _jsxs(_Fragment, { children: [icon ? _jsx(Icon, { name: icon }) : null, children] });
|
|
65
|
+
if (to)
|
|
66
|
+
return _jsx(RowLink, { to: to, "$danger": danger, children: inner });
|
|
67
|
+
if (href)
|
|
68
|
+
return _jsx(RowAnchor, { href: href, "$danger": danger, children: inner });
|
|
69
|
+
return _jsx(RowButton, { type: "button", "$danger": danger, disabled: disabled, onClick: onClick, children: inner });
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Menu: click-to-open popover anchored under its trigger. Closes on outside
|
|
73
|
+
* click, on Escape, and on any click inside the panel — menu items navigate or
|
|
74
|
+
* act, so "one click, one outcome" is always the right behaviour.
|
|
75
|
+
*/
|
|
76
|
+
export function Menu({ trigger, children, align = "right", width = 220 }) {
|
|
77
|
+
const [open, setOpen] = useState(false);
|
|
78
|
+
const ref = useRef(null);
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (!open)
|
|
81
|
+
return;
|
|
82
|
+
const onDown = (e) => { if (!ref.current?.contains(e.target))
|
|
83
|
+
setOpen(false); };
|
|
84
|
+
const onKey = (e) => { if (e.key === "Escape")
|
|
85
|
+
setOpen(false); };
|
|
86
|
+
document.addEventListener("mousedown", onDown);
|
|
87
|
+
document.addEventListener("keydown", onKey);
|
|
88
|
+
return () => { document.removeEventListener("mousedown", onDown); document.removeEventListener("keydown", onKey); };
|
|
89
|
+
}, [open]);
|
|
90
|
+
return (_jsxs(Wrap, { ref: ref, children: [_jsx("div", { onClick: () => setOpen(!open), style: { display: "contents" }, children: trigger(open) }), open ? (_jsx(Dropdown, { role: "menu", "$align": align, "$width": width, onClick: () => setOpen(false), children: children })) : null] }));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"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"}
|
package/dist/kit/Text.d.ts
CHANGED
|
@@ -75,4 +75,36 @@ export declare function InlineLink({ to, href, onClick, mono, tone, external, tr
|
|
|
75
75
|
title?: string | undefined;
|
|
76
76
|
"aria-label"?: string | undefined;
|
|
77
77
|
}): import("react").JSX.Element;
|
|
78
|
+
/** Muted: secondary text in the running line. */
|
|
79
|
+
export declare const Muted: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
80
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
81
|
+
}> & string;
|
|
82
|
+
/** Faint: tertiary text — captions, units, "of 40". */
|
|
83
|
+
export declare const Faint: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
84
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
85
|
+
}> & string;
|
|
86
|
+
/** InlineCode: a mono run inside prose — a ref, a field name, a path. */
|
|
87
|
+
export declare const InlineCode: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "style"> & {
|
|
88
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
89
|
+
}> & string;
|
|
90
|
+
/**
|
|
91
|
+
* Prose: the surface for text the product did not write — a schema comment, a
|
|
92
|
+
* README, a description field. Newlines are preserved because the source has
|
|
93
|
+
* them, and the measure is capped so it stays readable beside a table.
|
|
94
|
+
*/
|
|
95
|
+
export declare const Prose: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
96
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
97
|
+
}> & string;
|
|
98
|
+
/**
|
|
99
|
+
* Ago: a timestamp as "3 days ago", with the exact instant on hover. The
|
|
100
|
+
* relative form is what a reader scans; the absolute is what they need when
|
|
101
|
+
* correlating with a log.
|
|
102
|
+
*/
|
|
103
|
+
export declare function Ago({ at }: {
|
|
104
|
+
at: Date | bigint | number | string | undefined | null;
|
|
105
|
+
}): import("react").JSX.Element;
|
|
106
|
+
/** toDate normalises the shapes an API hands back; seconds for bigint. */
|
|
107
|
+
export declare function toDate(at: Date | bigint | number | string | undefined | null): Date | null;
|
|
108
|
+
/** relative renders the "3 days ago" string on its own, for a title or a cell. */
|
|
109
|
+
export declare function relative(d: Date): string;
|
|
78
110
|
//# sourceMappingURL=Text.d.ts.map
|
package/dist/kit/Text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/kit/Text.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,sDAAsD;AACtD,eAAO,MAAM,IAAI;;;WAAwB,OAAO,GAAG,SAAS;YAAU,MAAM,GAAG,SAAS;gBAAc,OAAO,GAAG,SAAS;cAAY,MAAM,GAAG,SAAS;YAMtJ,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,GAAG;;;WAAwB,OAAO,GAAG,SAAS;aAAW,OAAO,GAAG,SAAS;YAAU,OAAO,GAAG,SAAS;YAIrH,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,IAAI;;;YAAsB,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;YAAU,MAAM,GAAG,SAAS;YAM9G,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,UAAU;;;YATgB,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;YAAU,MAAM,GAAG,SAAS;;;;;;;;;;;YAAxE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;YAAU,MAAM,GAAG,SAAS;;;;;;;;yHASjD,CAAC;AAoB/D,4EAA4E;AAC5E,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACjE,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,8FAA8F;IAC9F,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,+BAQA;AAkBD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;IACnG,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,+BAIA"}
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/kit/Text.tsx"],"names":[],"mappings":"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"}
|
package/dist/kit/Text.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import styled, { css } from "styled-components";
|
|
3
3
|
import { Link } from "react-router-dom";
|
|
4
4
|
import { v } from "../theme/tokens.js";
|
|
@@ -72,4 +72,85 @@ export function InlineLink({ to, href, onClick, mono, tone, external, truncate,
|
|
|
72
72
|
return _jsx(A, { href: href, "$mono": mono, "$tone": tone, "$truncate": truncate, ...(external ? { target: "_blank", rel: "noreferrer" } : {}), ...rest, children: children });
|
|
73
73
|
return _jsx(B, { type: "button", onClick: onClick, "$mono": mono, "$tone": tone, "$truncate": truncate, ...rest, children: children });
|
|
74
74
|
}
|
|
75
|
+
// Added in 0.3.0 for the fer adoption: the quiet text spans, the prose surface
|
|
76
|
+
// for upstream-authored text, and the relative-time pair. All four were in
|
|
77
|
+
// three consoles already.
|
|
78
|
+
/** Muted: secondary text in the running line. */
|
|
79
|
+
export const Muted = styled.span `color: ${v.muted};`;
|
|
80
|
+
/** Faint: tertiary text — captions, units, "of 40". */
|
|
81
|
+
export const Faint = styled.span `color: ${v.faint};`;
|
|
82
|
+
/** InlineCode: a mono run inside prose — a ref, a field name, a path. */
|
|
83
|
+
export const InlineCode = styled.code `
|
|
84
|
+
font-family: ${v.mono};
|
|
85
|
+
font-size: 11.5px;
|
|
86
|
+
background: ${v.hover};
|
|
87
|
+
border: 1px solid ${v.line};
|
|
88
|
+
border-radius: 4px;
|
|
89
|
+
padding: 1px 5px;
|
|
90
|
+
color: ${v.muted};
|
|
91
|
+
white-space: nowrap;
|
|
92
|
+
`;
|
|
93
|
+
/**
|
|
94
|
+
* Prose: the surface for text the product did not write — a schema comment, a
|
|
95
|
+
* README, a description field. Newlines are preserved because the source has
|
|
96
|
+
* them, and the measure is capped so it stays readable beside a table.
|
|
97
|
+
*/
|
|
98
|
+
export const Prose = styled.div `
|
|
99
|
+
font-size: 12.5px;
|
|
100
|
+
color: ${v.muted};
|
|
101
|
+
line-height: 1.6;
|
|
102
|
+
white-space: pre-wrap;
|
|
103
|
+
max-width: 78ch;
|
|
104
|
+
word-break: break-word;
|
|
105
|
+
code {
|
|
106
|
+
font-family: ${v.mono};
|
|
107
|
+
font-size: 11.5px;
|
|
108
|
+
background: ${v.hover};
|
|
109
|
+
border-radius: 4px;
|
|
110
|
+
padding: 1px 4px;
|
|
111
|
+
}
|
|
112
|
+
`;
|
|
113
|
+
/**
|
|
114
|
+
* Ago: a timestamp as "3 days ago", with the exact instant on hover. The
|
|
115
|
+
* relative form is what a reader scans; the absolute is what they need when
|
|
116
|
+
* correlating with a log.
|
|
117
|
+
*/
|
|
118
|
+
export function Ago({ at }) {
|
|
119
|
+
const d = toDate(at);
|
|
120
|
+
if (!d)
|
|
121
|
+
return _jsx(_Fragment, { children: "\u2014" });
|
|
122
|
+
return _jsx("time", { dateTime: d.toISOString(), title: d.toLocaleString(), children: relative(d) });
|
|
123
|
+
}
|
|
124
|
+
/** toDate normalises the shapes an API hands back; seconds for bigint. */
|
|
125
|
+
export function toDate(at) {
|
|
126
|
+
if (at === undefined || at === null)
|
|
127
|
+
return null;
|
|
128
|
+
if (at instanceof Date)
|
|
129
|
+
return at;
|
|
130
|
+
if (typeof at === "bigint")
|
|
131
|
+
return new Date(Number(at) * 1000);
|
|
132
|
+
if (typeof at === "number")
|
|
133
|
+
return new Date(at);
|
|
134
|
+
const parsed = new Date(at);
|
|
135
|
+
return Number.isNaN(parsed.getTime()) ? null : parsed;
|
|
136
|
+
}
|
|
137
|
+
const UNITS = [
|
|
138
|
+
[60, "second"], [3600, "minute"], [86400, "hour"], [604800, "day"], [2629800, "week"], [31557600, "month"],
|
|
139
|
+
];
|
|
140
|
+
/** relative renders the "3 days ago" string on its own, for a title or a cell. */
|
|
141
|
+
export function relative(d) {
|
|
142
|
+
const secs = (d.getTime() - Date.now()) / 1000;
|
|
143
|
+
const abs = Math.abs(secs);
|
|
144
|
+
const fmt = new Intl.RelativeTimeFormat(undefined, { numeric: "auto" });
|
|
145
|
+
if (abs < 60)
|
|
146
|
+
return fmt.format(Math.round(secs), "second");
|
|
147
|
+
for (let i = 1; i < UNITS.length; i++) {
|
|
148
|
+
const [limit, unit] = UNITS[i];
|
|
149
|
+
if (abs < limit) {
|
|
150
|
+
const [div] = UNITS[i - 1];
|
|
151
|
+
return fmt.format(Math.round(secs / div), unit);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return fmt.format(Math.round(secs / 31557600), "year");
|
|
155
|
+
}
|
|
75
156
|
//# sourceMappingURL=Text.js.map
|
package/dist/kit/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../src/kit/Text.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../src/kit/Text.tsx"],"names":[],"mappings":"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"}
|