@xeonr/platform-ui 0.3.11 → 0.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/kit/Badge.d.ts +4 -1
- package/dist/kit/Badge.d.ts.map +1 -1
- package/dist/kit/Badge.js +15 -1
- package/dist/kit/Badge.js.map +1 -1
- package/dist/kit/Board.d.ts +45 -0
- package/dist/kit/Board.d.ts.map +1 -0
- package/dist/kit/Board.js +131 -0
- package/dist/kit/Board.js.map +1 -0
- package/dist/kit/Chip.d.ts +5 -2
- package/dist/kit/Chip.d.ts.map +1 -1
- package/dist/kit/Chip.js +15 -5
- package/dist/kit/Chip.js.map +1 -1
- package/dist/kit/Comment.d.ts +27 -0
- package/dist/kit/Comment.d.ts.map +1 -0
- package/dist/kit/Comment.js +52 -0
- package/dist/kit/Comment.js.map +1 -0
- package/dist/kit/Editable.d.ts +15 -0
- package/dist/kit/Editable.d.ts.map +1 -0
- package/dist/kit/Editable.js +66 -0
- package/dist/kit/Editable.js.map +1 -0
- package/dist/kit/List.d.ts +16 -4
- package/dist/kit/List.d.ts.map +1 -1
- package/dist/kit/List.js +3 -3
- package/dist/kit/List.js.map +1 -1
- package/dist/kit/Markdown.d.ts +28 -0
- package/dist/kit/Markdown.d.ts.map +1 -0
- package/dist/kit/Markdown.js +83 -0
- package/dist/kit/Markdown.js.map +1 -0
- package/dist/kit/Marker.d.ts +42 -0
- package/dist/kit/Marker.d.ts.map +1 -0
- package/dist/kit/Marker.js +99 -0
- package/dist/kit/Marker.js.map +1 -0
- package/dist/kit/Split.d.ts +31 -0
- package/dist/kit/Split.d.ts.map +1 -0
- package/dist/kit/Split.js +47 -0
- package/dist/kit/Split.js.map +1 -0
- package/dist/markdown.d.ts +2 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +7 -0
- package/dist/markdown.js.map +1 -0
- package/package.json +17 -3
package/dist/index.d.ts
CHANGED
|
@@ -34,4 +34,9 @@ export { ChoiceGroup, ChoiceCard } from "./kit/Choice.tsx";
|
|
|
34
34
|
export { JumpList, type JumpGroup, type JumpItem } from "./kit/JumpList.tsx";
|
|
35
35
|
export { Popover, PopoverHead, PopoverBody, PopoverFoot, PopoverGroup, type PopoverProps } from "./kit/Popover.tsx";
|
|
36
36
|
export { DataGrid, type DataGridProps, type GridColumn, type GridColumnAction, type GridCell, type GridRow, } from "./kit/DataGrid.tsx";
|
|
37
|
+
export { Split, type SplitRatio } from "./kit/Split.tsx";
|
|
38
|
+
export { Dot, LevelBars, PersonChip, initials } from "./kit/Marker.tsx";
|
|
39
|
+
export { CommentList, Comment, CommentComposer } from "./kit/Comment.tsx";
|
|
40
|
+
export { Board, BoardCardLine, BoardCardTitle, BoardCardFoot, type BoardLane } from "./kit/Board.tsx";
|
|
41
|
+
export { EditableTitle } from "./kit/Editable.tsx";
|
|
37
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,4 +53,14 @@ export { JumpList } from "./kit/JumpList.js";
|
|
|
53
53
|
// query's rather than the product's.
|
|
54
54
|
export { Popover, PopoverHead, PopoverBody, PopoverFoot, PopoverGroup } from "./kit/Popover.js";
|
|
55
55
|
export { DataGrid, } from "./kit/DataGrid.js";
|
|
56
|
+
// Added for the Trellis adoption (2026-09-26): the markers a tracker's rows
|
|
57
|
+
// need, the explicit page split four consoles had each written, the discussion
|
|
58
|
+
// thread, the lane board, and rename-in-place.
|
|
59
|
+
export { Split } from "./kit/Split.js";
|
|
60
|
+
export { Dot, LevelBars, PersonChip, initials } from "./kit/Marker.js";
|
|
61
|
+
export { CommentList, Comment, CommentComposer } from "./kit/Comment.js";
|
|
62
|
+
export { Board, BoardCardLine, BoardCardTitle, BoardCardFoot } from "./kit/Board.js";
|
|
63
|
+
export { EditableTitle } from "./kit/Editable.js";
|
|
64
|
+
// The markdown surface is `@xeonr/platform-ui/markdown` — its own entry point,
|
|
65
|
+
// so react-markdown stays an optional peer.
|
|
56
66
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/kit/Badge.d.ts
CHANGED
|
@@ -7,12 +7,15 @@ export declare const StatusPill: import("styled-components/dist/types").IStyledC
|
|
|
7
7
|
$live?: boolean | undefined;
|
|
8
8
|
$loud?: boolean | undefined;
|
|
9
9
|
}>> & string;
|
|
10
|
-
/** Tag: small mono chip for technical strings (kinds, commits, roles).
|
|
10
|
+
/** Tag: small mono chip for technical strings (kinds, commits, roles).
|
|
11
|
+
* `$dot` is a leading dot in a colour the product chose — a label, a
|
|
12
|
+
* user-named category, anything whose colour is data rather than a verdict. */
|
|
11
13
|
export declare const Tag: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
12
14
|
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
13
15
|
}, {
|
|
14
16
|
$tone?: Tone | undefined;
|
|
15
17
|
$dashed?: boolean | undefined;
|
|
18
|
+
$dot?: string | undefined;
|
|
16
19
|
}>> & string;
|
|
17
20
|
/** InitialsTile: a gradient square with initials — a team or product mark in a list. */
|
|
18
21
|
export declare const InitialsTile: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
package/dist/kit/Badge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/kit/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAiBtF,eAAO,MAAM,UAAU;;;WAAwB,IAAI;YAAU,OAAO,GAAG,SAAS;YAAU,OAAO,GAAG,SAAS;YA2C5G,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/kit/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAiBtF,eAAO,MAAM,UAAU;;;WAAwB,IAAI;YAAU,OAAO,GAAG,SAAS;YAAU,OAAO,GAAG,SAAS;YA2C5G,CAAC;AAEF;;gFAEgF;AAChF,eAAO,MAAM,GAAG;;;YAAyB,IAAI,GAAG,SAAS;cAAY,OAAO,GAAG,SAAS;WAAS,MAAM,GAAG,SAAS;YA8BlH,CAAC;AAGF,wFAAwF;AACxF,eAAO,MAAM,YAAY;;;YAAyB,MAAM,GAAG,SAAS;YAQnE,CAAC;AASF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAOA;AAED,eAAO,MAAM,OAAO;;;YAAsB,IAAI,GAAG,SAAS;YAMzD,CAAC"}
|
package/dist/kit/Badge.js
CHANGED
|
@@ -56,7 +56,9 @@ export const StatusPill = styled.span `
|
|
|
56
56
|
}
|
|
57
57
|
`}
|
|
58
58
|
`;
|
|
59
|
-
/** Tag: small mono chip for technical strings (kinds, commits, roles).
|
|
59
|
+
/** Tag: small mono chip for technical strings (kinds, commits, roles).
|
|
60
|
+
* `$dot` is a leading dot in a colour the product chose — a label, a
|
|
61
|
+
* user-named category, anything whose colour is data rather than a verdict. */
|
|
60
62
|
export const Tag = styled.span `
|
|
61
63
|
display: inline-flex;
|
|
62
64
|
align-items: center;
|
|
@@ -73,6 +75,18 @@ export const Tag = styled.span `
|
|
|
73
75
|
overflow: hidden;
|
|
74
76
|
text-overflow: ellipsis;
|
|
75
77
|
${(p) => (p.$tone ? css `border-color: transparent; ${tones[p.$tone]}` : "")}
|
|
78
|
+
${(p) => p.$dot &&
|
|
79
|
+
css `
|
|
80
|
+
font-family: ${v.font};
|
|
81
|
+
font-size: 11px;
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
padding-left: 6px;
|
|
84
|
+
&::before {
|
|
85
|
+
content: "";
|
|
86
|
+
width: 7px; height: 7px; border-radius: 50%; flex: none;
|
|
87
|
+
background: ${p.$dot};
|
|
88
|
+
}
|
|
89
|
+
`}
|
|
76
90
|
${(p) => p.$dashed && css `background: transparent; border-style: dashed; border-color: currentColor; letter-spacing: 0.08em; text-transform: uppercase; font-size: 9px; font-weight: 600;`}
|
|
77
91
|
`;
|
|
78
92
|
const dotPulse = keyframes `50% { opacity: 0.4; }`;
|
package/dist/kit/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/kit/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAIvC,MAAM,KAAK,GAAyC;IAClD,EAAE,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,OAAO,GAAG;IACzD,GAAG,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,IAAI,GAAG;IACpD,IAAI,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,OAAO,GAAG;IAC3D,IAAI,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,MAAM,GAAG;IACzD,IAAI,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,IAAI,GAAG;IACrD,KAAK,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,KAAK,GAAG;IACxD,GAAG,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,KAAK,GAAG;IACpD,yEAAyE;IACzE,2DAA2D;IAC3D,IAAI,EAAE,GAAG,CAAA,eAAe,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,IAAI,GAAG;CACtD,CAAC;AAEF,MAAM,OAAO,GAAG,SAAS,CAAA,wBAAwB,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAA2E;;;;;;;;;;;IAW5G,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;;;;;IAKrB,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,KAAK;IACP,GAAG,CAAA;;;;;;;;;;;;;;KAcF;IACD,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,KAAK;IACP,GAAG,CAAA;;;;;qBAKc,OAAO;;KAEvB;CACJ,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/kit/Badge.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** BoardLane: one column. `leading` is usually a `Dot` in the state's colour. */
|
|
3
|
+
export interface BoardLane {
|
|
4
|
+
id: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
leading?: ReactNode | undefined;
|
|
7
|
+
/** overrides the card count the board derives */
|
|
8
|
+
count?: number | undefined;
|
|
9
|
+
/** what an empty lane says; a dash by default */
|
|
10
|
+
empty?: ReactNode | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Board: cards in lanes, dragged between and within them.
|
|
14
|
+
*
|
|
15
|
+
* Items are rendered in the order given, so the product sorts them; a drop
|
|
16
|
+
* calls `onDrop(item, laneId, before)` where `before` is the card the dragged
|
|
17
|
+
* one was dropped onto (null = the end of the lane). Dropping a card back where
|
|
18
|
+
* it already is does not fire.
|
|
19
|
+
*/
|
|
20
|
+
export declare function Board<T>({ lanes, items, itemKey, itemLane, renderItem, onDrop, onOpen, laneWidth, minHeight, draggable }: {
|
|
21
|
+
lanes: BoardLane[];
|
|
22
|
+
items: T[];
|
|
23
|
+
itemKey: (item: T) => string;
|
|
24
|
+
itemLane: (item: T) => string;
|
|
25
|
+
renderItem: (item: T) => ReactNode;
|
|
26
|
+
/** absent = read-only: nothing drags */
|
|
27
|
+
onDrop?: ((item: T, laneId: string, before: T | null) => void) | undefined;
|
|
28
|
+
onOpen?: ((item: T) => void) | undefined;
|
|
29
|
+
laneWidth?: number | undefined;
|
|
30
|
+
minHeight?: string | undefined;
|
|
31
|
+
draggable?: boolean | undefined;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
/** BoardCardLine: the mono key line at the top of a card. */
|
|
34
|
+
export declare const BoardCardLine: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
35
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
36
|
+
}> & string;
|
|
37
|
+
/** BoardCardTitle: the card's one or two lines of human text. */
|
|
38
|
+
export declare const BoardCardTitle: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
39
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
40
|
+
}> & string;
|
|
41
|
+
/** BoardCardFoot: chips and an avatar along the bottom; the last child sits right. */
|
|
42
|
+
export declare const BoardCardFoot: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
43
|
+
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
44
|
+
}> & string;
|
|
45
|
+
//# sourceMappingURL=Board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Board.d.ts","sourceRoot":"","sources":["../../src/kit/Board.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA8DvC,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,iDAAiD;IACjD,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAe,EAAE,SAAkB,EAAE,SAAgB,EAAE,EAAE;IAC/I,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACnC,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3E,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC,+BAmEA;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa;;WAQzB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,cAAc;;WAI1B,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa;;WAMzB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { v } from "../theme/tokens.js";
|
|
5
|
+
// A lane board: one column per state, cards dragged between them. The kit owns
|
|
6
|
+
// the chrome and the drag mechanics — what a drop *means* is the product's, so
|
|
7
|
+
// `onDrop` hands back the lane and the card the dragged one landed before, and
|
|
8
|
+
// the product decides what that does to its ordering.
|
|
9
|
+
const Lanes = styled.div `
|
|
10
|
+
display: flex;
|
|
11
|
+
gap: 12px;
|
|
12
|
+
align-items: flex-start;
|
|
13
|
+
overflow-x: auto;
|
|
14
|
+
padding-bottom: 12px;
|
|
15
|
+
`;
|
|
16
|
+
const LaneBox = styled.section `
|
|
17
|
+
flex: 0 0 ${(p) => p.$w}px;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
padding: 8px;
|
|
22
|
+
border-radius: ${v.rPanel};
|
|
23
|
+
background: ${(p) => (p.$over ? v.brand08 : v.surface2)};
|
|
24
|
+
border: 1px solid ${(p) => (p.$over ? v.brand55 : v.line)};
|
|
25
|
+
transition: background 0.12s ease, border-color 0.12s ease;
|
|
26
|
+
min-height: 120px;
|
|
27
|
+
`;
|
|
28
|
+
const LaneHead = styled.header `
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
gap: 8px;
|
|
32
|
+
padding: 4px 6px 2px;
|
|
33
|
+
font-size: 12px;
|
|
34
|
+
font-weight: 600;
|
|
35
|
+
min-width: 0;
|
|
36
|
+
> .label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
37
|
+
> .count { margin-left: auto; color: ${v.faint}; font-variant-numeric: tabular-nums; font-weight: 500; }
|
|
38
|
+
`;
|
|
39
|
+
const CardBox = styled.article `
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
gap: 7px;
|
|
43
|
+
padding: 10px 11px;
|
|
44
|
+
border-radius: ${v.rCard};
|
|
45
|
+
background: ${v.surface};
|
|
46
|
+
border: 1px solid ${(p) => (p.$target ? v.brand55 : v.line2)};
|
|
47
|
+
box-shadow: ${(p) => (p.$target ? `0 0 0 3px ${v.brand08}` : "none")};
|
|
48
|
+
opacity: ${(p) => (p.$dragging ? 0.4 : 1)};
|
|
49
|
+
cursor: ${(p) => (p.$grab ? "grab" : p.$click ? "pointer" : "default")};
|
|
50
|
+
&:hover { border-color: ${v.brand55}; }
|
|
51
|
+
`;
|
|
52
|
+
const LaneEmpty = styled.div `
|
|
53
|
+
padding: 16px 8px;
|
|
54
|
+
text-align: center;
|
|
55
|
+
font-size: 11.5px;
|
|
56
|
+
color: ${v.faint};
|
|
57
|
+
`;
|
|
58
|
+
/**
|
|
59
|
+
* Board: cards in lanes, dragged between and within them.
|
|
60
|
+
*
|
|
61
|
+
* Items are rendered in the order given, so the product sorts them; a drop
|
|
62
|
+
* calls `onDrop(item, laneId, before)` where `before` is the card the dragged
|
|
63
|
+
* one was dropped onto (null = the end of the lane). Dropping a card back where
|
|
64
|
+
* it already is does not fire.
|
|
65
|
+
*/
|
|
66
|
+
export function Board({ lanes, items, itemKey, itemLane, renderItem, onDrop, onOpen, laneWidth = 272, minHeight = "60vh", draggable = true }) {
|
|
67
|
+
const [dragging, setDragging] = useState(null);
|
|
68
|
+
const [overLane, setOverLane] = useState(null);
|
|
69
|
+
const [overCard, setOverCard] = useState(null);
|
|
70
|
+
const movable = draggable && !!onDrop;
|
|
71
|
+
const byLane = new Map(lanes.map((l) => [l.id, []]));
|
|
72
|
+
for (const it of items)
|
|
73
|
+
byLane.get(itemLane(it))?.push(it);
|
|
74
|
+
const clear = () => { setDragging(null); setOverLane(null); setOverCard(null); };
|
|
75
|
+
const drop = (laneId, beforeKey) => {
|
|
76
|
+
const item = items.find((x) => itemKey(x) === dragging);
|
|
77
|
+
clear();
|
|
78
|
+
if (!item || !onDrop)
|
|
79
|
+
return;
|
|
80
|
+
const lane = byLane.get(laneId) ?? [];
|
|
81
|
+
const before = beforeKey ? lane.find((x) => itemKey(x) === beforeKey) ?? null : null;
|
|
82
|
+
if (before && itemKey(before) === itemKey(item))
|
|
83
|
+
return;
|
|
84
|
+
if (!before && itemLane(item) === laneId && lane[lane.length - 1] && itemKey(lane[lane.length - 1]) === itemKey(item))
|
|
85
|
+
return;
|
|
86
|
+
onDrop(item, laneId, before);
|
|
87
|
+
};
|
|
88
|
+
return (_jsx(Lanes, { style: { minHeight }, children: lanes.map((l) => {
|
|
89
|
+
const lane = byLane.get(l.id) ?? [];
|
|
90
|
+
return (_jsxs(LaneBox, { "$w": laneWidth, "$over": overLane === l.id && !overCard, onDragOver: (e) => { if (dragging) {
|
|
91
|
+
e.preventDefault();
|
|
92
|
+
setOverLane(l.id);
|
|
93
|
+
} }, onDragLeave: () => setOverLane((cur) => (cur === l.id ? null : cur)), onDrop: (e) => { if (!dragging)
|
|
94
|
+
return; e.preventDefault(); drop(l.id, null); }, children: [_jsxs(LaneHead, { children: [l.leading, _jsx("span", { className: "label", children: l.label }), _jsx("span", { className: "count", children: l.count ?? lane.length })] }), lane.length === 0 ? _jsx(LaneEmpty, { children: l.empty ?? "—" }) : null, lane.map((it) => {
|
|
95
|
+
const k = itemKey(it);
|
|
96
|
+
return (_jsx(CardBox, { draggable: movable, "$grab": movable, "$click": !!onOpen, "$dragging": dragging === k, "$target": overCard === k && dragging !== k, onDragStart: (e) => { setDragging(k); e.dataTransfer.effectAllowed = "move"; }, onDragEnd: clear, onDragOver: (e) => { if (dragging && dragging !== k) {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
setOverCard(k);
|
|
100
|
+
setOverLane(l.id);
|
|
101
|
+
} }, onDragLeave: () => setOverCard((cur) => (cur === k ? null : cur)), onDrop: (e) => { if (!dragging)
|
|
102
|
+
return; e.preventDefault(); e.stopPropagation(); drop(l.id, k); }, ...(onOpen ? { onClick: () => onOpen(it), role: "button", tabIndex: 0, onKeyDown: (e) => { if (e.key === "Enter")
|
|
103
|
+
onOpen(it); } } : {}), children: renderItem(it) }, k));
|
|
104
|
+
})] }, l.id));
|
|
105
|
+
}) }));
|
|
106
|
+
}
|
|
107
|
+
/** BoardCardLine: the mono key line at the top of a card. */
|
|
108
|
+
export const BoardCardLine = styled.div `
|
|
109
|
+
display: flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
gap: 8px;
|
|
112
|
+
font-family: ${v.mono};
|
|
113
|
+
font-size: 10.5px;
|
|
114
|
+
font-weight: 600;
|
|
115
|
+
color: ${v.faint};
|
|
116
|
+
`;
|
|
117
|
+
/** BoardCardTitle: the card's one or two lines of human text. */
|
|
118
|
+
export const BoardCardTitle = styled.div `
|
|
119
|
+
font-size: 12.5px;
|
|
120
|
+
font-weight: 600;
|
|
121
|
+
line-height: 1.35;
|
|
122
|
+
`;
|
|
123
|
+
/** BoardCardFoot: chips and an avatar along the bottom; the last child sits right. */
|
|
124
|
+
export const BoardCardFoot = styled.div `
|
|
125
|
+
display: flex;
|
|
126
|
+
align-items: center;
|
|
127
|
+
gap: 6px;
|
|
128
|
+
flex-wrap: wrap;
|
|
129
|
+
> :last-child { margin-left: auto; }
|
|
130
|
+
`;
|
|
131
|
+
//# sourceMappingURL=Board.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Board.js","sourceRoot":"","sources":["../../src/kit/Board.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,sDAAsD;AAEtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMvB,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAgC;cAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;mBAKN,CAAC,CAAC,MAAM;gBACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;sBACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;;CAG1D,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;yCASW,CAAC,CAAC,KAAK;CAC/C,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAA2E;;;;;mBAKtF,CAAC,CAAC,KAAK;gBACV,CAAC,CAAC,OAAO;sBACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;4BAC5C,CAAC,CAAC,OAAO;CACpC,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;WAIjB,CAAC,CAAC,KAAK;CACjB,CAAC;AAaF;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,SAAS,GAAG,IAAI,EAY5I;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,EAAE,IAAI,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,SAAwB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACxD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QACxD,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAC/H,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACpC,OAAO,CACL,MAAC,OAAO,UAEF,SAAS,WACN,QAAQ,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EACrC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAAC,CAAC,CAAC,cAAc,EAAE,CAAC;oBAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC,CAAC,CAAC,EAC/E,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACpE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ;oBAAE,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,aAE/E,MAAC,QAAQ,eACN,CAAC,CAAC,OAAO,EACV,eAAM,SAAS,EAAC,OAAO,YAAE,CAAC,CAAC,KAAK,GAAQ,EACxC,eAAM,SAAS,EAAC,OAAO,YAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAQ,IAC9C,EACV,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,SAAS,cAAE,CAAC,CAAC,KAAK,IAAI,GAAG,GAAa,CAAC,CAAC,CAAC,IAAI,EAClE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;wBACf,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;wBACtB,OAAO,CACL,KAAC,OAAO,IAEN,SAAS,EAAE,OAAO,WACX,OAAO,YACN,CAAC,CAAC,MAAM,eACL,QAAQ,KAAK,CAAC,aAChB,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EACzC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,EAC9E,SAAS,EAAE,KAAK,EAChB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,QAAQ,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gCAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gCAAC,CAAC,CAAC,eAAe,EAAE,CAAC;gCAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gCAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAAC,CAAC,CAAC,CAAC,EACtI,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACjE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ;gCAAE,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAC7F,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAsB,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;oCAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAE5J,UAAU,CAAC,EAAE,CAAC,IAbV,CAAC,CAcE,CACX,CAAC;oBACJ,CAAC,CAAC,KAjCG,CAAC,CAAC,EAAE,CAkCD,CACX,CAAC;QACJ,CAAC,CAAC,GACI,CACT,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;iBAItB,CAAC,CAAC,IAAI;;;WAGZ,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIvC,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMtC,CAAC"}
|
package/dist/kit/Chip.d.ts
CHANGED
|
@@ -14,12 +14,15 @@ export declare function FilterField({ label, wide, width, children }: {
|
|
|
14
14
|
width?: number | undefined;
|
|
15
15
|
children: ReactNode;
|
|
16
16
|
}): import("react").JSX.Element;
|
|
17
|
-
/** Chip: a toggle (filters, presets, multi-select).
|
|
18
|
-
|
|
17
|
+
/** Chip: a toggle (filters, presets, multi-select). `dot` is a leading dot in
|
|
18
|
+
* a colour the product chose, for values that carry one — a label, a tag. */
|
|
19
|
+
export declare function Chip({ on, onToggle, mono, count, dot, disabled, children, ...rest }: {
|
|
19
20
|
on: boolean;
|
|
20
21
|
onToggle: () => void;
|
|
21
22
|
mono?: boolean | undefined;
|
|
22
23
|
count?: number | string | undefined;
|
|
24
|
+
/** a CSS colour (a theme token, never a literal) shown as a leading dot */
|
|
25
|
+
dot?: string | undefined;
|
|
23
26
|
disabled?: boolean | undefined;
|
|
24
27
|
children: ReactNode;
|
|
25
28
|
title?: string | undefined;
|
package/dist/kit/Chip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../src/kit/Chip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC;;yEAEyE;AACzE,eAAO,MAAM,SAAS;;;cAA0B,OAAO,GAAG,SAAS;YAOlE,CAAC;AAQF,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAOA;
|
|
1
|
+
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../src/kit/Chip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC;;yEAEyE;AACzE,eAAO,MAAM,SAAS;;;cAA0B,OAAO,GAAG,SAAS;YAOlE,CAAC;AAQF,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAOA;AAoCD;8EAC8E;AAC9E,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;IACpF,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAOA;AAYD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAOA"}
|
package/dist/kit/Chip.js
CHANGED
|
@@ -35,8 +35,17 @@ const chipCss = css `
|
|
|
35
35
|
font-size: 11.5px;
|
|
36
36
|
font-weight: 600;
|
|
37
37
|
${(p) => p.$mono && css `font-family: ${v.mono}; font-weight: 500;`}
|
|
38
|
-
border: 1px solid ${(p) => (p.$on ? v.brand55 : v.line2)};
|
|
39
|
-
background: ${(p) => (p.$on ? v.brand12 : "transparent")};
|
|
38
|
+
border: 1px solid ${(p) => (p.$dot && p.$on ? p.$dot : p.$on ? v.brand55 : v.line2)};
|
|
39
|
+
background: ${(p) => (p.$on ? (p.$dot ? v.hover : v.brand12) : "transparent")};
|
|
40
|
+
${(p) => p.$dot &&
|
|
41
|
+
css `
|
|
42
|
+
&::before {
|
|
43
|
+
content: "";
|
|
44
|
+
width: 7px; height: 7px; border-radius: 50%; flex: none;
|
|
45
|
+
background: ${p.$dot};
|
|
46
|
+
opacity: ${p.$on ? 1 : 0.5};
|
|
47
|
+
}
|
|
48
|
+
`}
|
|
40
49
|
color: ${(p) => (p.$on ? v.text : v.muted)};
|
|
41
50
|
cursor: pointer;
|
|
42
51
|
white-space: nowrap;
|
|
@@ -46,9 +55,10 @@ const chipCss = css `
|
|
|
46
55
|
.count { font-size: 10.5px; color: ${v.faint}; font-variant-numeric: tabular-nums; }
|
|
47
56
|
`;
|
|
48
57
|
const ChipBtn = styled.button `${chipCss}`;
|
|
49
|
-
/** Chip: a toggle (filters, presets, multi-select).
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
/** Chip: a toggle (filters, presets, multi-select). `dot` is a leading dot in
|
|
59
|
+
* a colour the product chose, for values that carry one — a label, a tag. */
|
|
60
|
+
export function Chip({ on, onToggle, mono, count, dot, disabled, children, ...rest }) {
|
|
61
|
+
return (_jsxs(ChipBtn, { type: "button", role: "switch", "aria-checked": on, onClick: onToggle, "$on": on, "$mono": mono, "$dot": dot, disabled: disabled, ...rest, children: [children, count !== undefined ? _jsx("span", { className: "count", children: count }) : null] }));
|
|
52
62
|
}
|
|
53
63
|
/** EditableChip: a value shown as a chip that opens an editor on click; empty state reads as an affordance. */
|
|
54
64
|
const EditChip = styled.button `
|
package/dist/kit/Chip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.js","sourceRoot":"","sources":["../../src/kit/Chip.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAa,CAAC;AAEzC,yEAAyE;AACzE,kEAAkE;AAElE;;yEAEyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAmC;;iBAErD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;;SAElD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;mBACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;;CAEtD,CAAC;AAEF;qDACqD;AACrD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAA8D;;IAEtF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,oCAAoC,CAAC,CAAC,CAAC,GAAG,CAAA,UAAU,CAAC,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;CACjG,CAAC;AACF,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAMzD;IACC,OAAO,CACL,MAAC,SAAS,aAAQ,IAAI,YAAU,KAAK,aACnC,KAAC,UAAU,cAAE,KAAK,GAAc,EAC/B,QAAQ,IACC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"Chip.js","sourceRoot":"","sources":["../../src/kit/Chip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** CommentList: the thread. Fills a `PanelBody $pad={false}`. */
|
|
3
|
+
export declare const CommentList: 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
|
+
/**
|
|
7
|
+
* Comment: one entry. `author` is the identity slot (a `PersonChip`), `meta`
|
|
8
|
+
* the timestamp, `actions` the edit/delete controls that belong to the reader
|
|
9
|
+
* only when it is theirs, and the children are the body — which the caller
|
|
10
|
+
* replaces with an editor while it is being edited, so the entry does not jump
|
|
11
|
+
* out of the thread.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Comment({ author, meta, actions, children }: {
|
|
14
|
+
author?: ReactNode | undefined;
|
|
15
|
+
meta?: ReactNode | undefined;
|
|
16
|
+
actions?: ReactNode | undefined;
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* CommentComposer: the write box at the foot of the thread, hairlined off from
|
|
21
|
+
* the entries above it. Its own component so the padding matches an entry's
|
|
22
|
+
* whether or not the thread has any.
|
|
23
|
+
*/
|
|
24
|
+
export declare function CommentComposer({ children }: {
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=Comment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../src/kit/Comment.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,iEAAiE;AACjE,eAAO,MAAM,WAAW;;WAGvB,CAAC;AA0BF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC3D,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAWA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAEpE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
import { v } from "../theme/tokens.js";
|
|
4
|
+
// A discussion on an entity: hairline-separated entries, each a head line
|
|
5
|
+
// (who, when, what you may do to it) over a body the caller renders — prose,
|
|
6
|
+
// markdown, a diff. `ListRow` is for one-line records; a comment is two
|
|
7
|
+
// registers stacked, and its body is as tall as somebody made it.
|
|
8
|
+
/** CommentList: the thread. Fills a `PanelBody $pad={false}`. */
|
|
9
|
+
export const CommentList = styled.div `
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
`;
|
|
13
|
+
const Entry = styled.article `
|
|
14
|
+
padding: 12px 16px;
|
|
15
|
+
border-bottom: 1px solid ${v.line};
|
|
16
|
+
&:last-child { border-bottom: none; }
|
|
17
|
+
`;
|
|
18
|
+
const Head = styled.div `
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
gap: 8px;
|
|
22
|
+
margin-bottom: 6px;
|
|
23
|
+
font-size: 11.5px;
|
|
24
|
+
color: ${v.faint};
|
|
25
|
+
min-width: 0;
|
|
26
|
+
> .meta { margin-left: auto; white-space: nowrap; }
|
|
27
|
+
> .actions { display: flex; gap: 4px; flex: none; }
|
|
28
|
+
> .meta + .actions { margin-left: 0; }
|
|
29
|
+
`;
|
|
30
|
+
const Composer = styled.div `
|
|
31
|
+
padding: 12px 16px;
|
|
32
|
+
border-top: 1px solid ${v.line};
|
|
33
|
+
`;
|
|
34
|
+
/**
|
|
35
|
+
* Comment: one entry. `author` is the identity slot (a `PersonChip`), `meta`
|
|
36
|
+
* the timestamp, `actions` the edit/delete controls that belong to the reader
|
|
37
|
+
* only when it is theirs, and the children are the body — which the caller
|
|
38
|
+
* replaces with an editor while it is being edited, so the entry does not jump
|
|
39
|
+
* out of the thread.
|
|
40
|
+
*/
|
|
41
|
+
export function Comment({ author, meta, actions, children }) {
|
|
42
|
+
return (_jsxs(Entry, { children: [_jsxs(Head, { children: [author, meta ? _jsx("span", { className: "meta", children: meta }) : null, actions ? _jsx("span", { className: "actions", children: actions }) : null] }), children] }));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* CommentComposer: the write box at the foot of the thread, hairlined off from
|
|
46
|
+
* the entries above it. Its own component so the padding matches an entry's
|
|
47
|
+
* whether or not the thread has any.
|
|
48
|
+
*/
|
|
49
|
+
export function CommentComposer({ children }) {
|
|
50
|
+
return _jsx(Composer, { children: children });
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=Comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.js","sourceRoot":"","sources":["../../src/kit/Comment.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,0EAA0E;AAC1E,6EAA6E;AAC7E,wEAAwE;AACxE,kEAAkE;AAElE,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGpC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;;6BAEC,CAAC,CAAC,IAAI;;CAElC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;WAMZ,CAAC,CAAC,KAAK;;;;;CAKjB,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;0BAED,CAAC,CAAC,IAAI;CAC/B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAKxD;IACC,OAAO,CACL,MAAC,KAAK,eACJ,MAAC,IAAI,eACF,MAAM,EACN,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,MAAM,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EAClD,OAAO,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,SAAS,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,EACN,QAAQ,IACH,CACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAA2B;IACnE,OAAO,KAAC,QAAQ,cAAE,QAAQ,GAAY,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EditableTitle: the entity's name, renamed by clicking it. Enter or blur
|
|
3
|
+
* commits, Escape abandons, and an empty value is treated as abandoning rather
|
|
4
|
+
* than as a rename to nothing — the one edit nobody means.
|
|
5
|
+
*/
|
|
6
|
+
export declare function EditableTitle({ value, onSave, canEdit, size, hint, as }: {
|
|
7
|
+
value: string;
|
|
8
|
+
onSave: (next: string) => void;
|
|
9
|
+
canEdit?: boolean | undefined;
|
|
10
|
+
size?: number | undefined;
|
|
11
|
+
/** the tooltip on the readable form */
|
|
12
|
+
hint?: string | undefined;
|
|
13
|
+
as?: "h1" | "h2" | "h3" | undefined;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=Editable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Editable.d.ts","sourceRoot":"","sources":["../../src/kit/Editable.tsx"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAS,EAAE,IAAwB,EAAE,EAAS,EAAE,EAAE;IACxG,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;CACrC,+BAuCA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { v } from "../theme/tokens.js";
|
|
5
|
+
// Rename in place. A title that opens a modal to change one word is a modal
|
|
6
|
+
// too many; `EditableChip` already does this for a small value, and this is the
|
|
7
|
+
// heading form — the text is the control, and it looks like text until it is
|
|
8
|
+
// focused.
|
|
9
|
+
const Heading = styled.h1 `
|
|
10
|
+
margin: 0;
|
|
11
|
+
font-size: ${(p) => p.$size}px;
|
|
12
|
+
font-weight: 600;
|
|
13
|
+
line-height: 1.3;
|
|
14
|
+
cursor: ${(p) => (p.$editable ? "text" : "default")};
|
|
15
|
+
/* the same box as the input, so committing an edit does not shift the page */
|
|
16
|
+
padding: 2px 6px;
|
|
17
|
+
margin: -2px -6px;
|
|
18
|
+
border: 1px solid transparent;
|
|
19
|
+
border-radius: ${v.rCtl};
|
|
20
|
+
${(p) => p.$editable && `&:hover { border-color: ${v.line2}; }`}
|
|
21
|
+
`;
|
|
22
|
+
const Field = styled.input `
|
|
23
|
+
width: 100%;
|
|
24
|
+
font: inherit;
|
|
25
|
+
font-size: ${(p) => p.$size}px;
|
|
26
|
+
font-weight: 600;
|
|
27
|
+
line-height: 1.3;
|
|
28
|
+
padding: 2px 6px;
|
|
29
|
+
margin: -2px -6px;
|
|
30
|
+
border-radius: ${v.rCtl};
|
|
31
|
+
border: 1px solid ${v.brand55};
|
|
32
|
+
background: ${v.field};
|
|
33
|
+
color: ${v.text};
|
|
34
|
+
&:focus { outline: none; box-shadow: 0 0 0 3px ${v.brand08}; }
|
|
35
|
+
`;
|
|
36
|
+
/**
|
|
37
|
+
* EditableTitle: the entity's name, renamed by clicking it. Enter or blur
|
|
38
|
+
* commits, Escape abandons, and an empty value is treated as abandoning rather
|
|
39
|
+
* than as a rename to nothing — the one edit nobody means.
|
|
40
|
+
*/
|
|
41
|
+
export function EditableTitle({ value, onSave, canEdit, size = 20, hint = "Click to rename", as = "h1" }) {
|
|
42
|
+
const [editing, setEditing] = useState(false);
|
|
43
|
+
const [draft, setDraft] = useState(value);
|
|
44
|
+
useEffect(() => { setDraft(value); }, [value]);
|
|
45
|
+
const commit = () => {
|
|
46
|
+
setEditing(false);
|
|
47
|
+
const next = draft.trim();
|
|
48
|
+
if (next && next !== value)
|
|
49
|
+
onSave(next);
|
|
50
|
+
else
|
|
51
|
+
setDraft(value);
|
|
52
|
+
};
|
|
53
|
+
if (!editing) {
|
|
54
|
+
return (_jsx(Heading, { as: as, "$size": size, "$editable": !!canEdit, title: canEdit ? hint : undefined, onClick: () => { if (canEdit)
|
|
55
|
+
setEditing(true); }, children: value }));
|
|
56
|
+
}
|
|
57
|
+
return (_jsx(Field, { autoFocus: true, "$size": size, value: draft, "aria-label": hint, onChange: (e) => setDraft(e.target.value), onBlur: commit, onKeyDown: (e) => {
|
|
58
|
+
if (e.key === "Enter")
|
|
59
|
+
commit();
|
|
60
|
+
if (e.key === "Escape") {
|
|
61
|
+
setDraft(value);
|
|
62
|
+
setEditing(false);
|
|
63
|
+
}
|
|
64
|
+
} }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=Editable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Editable.js","sourceRoot":"","sources":["../../src/kit/Editable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,WAAW;AAEX,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAuC;;eAEjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;;;YAGjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;;;;;mBAKlC,CAAC,CAAC,IAAI;IACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,2BAA2B,CAAC,CAAC,KAAK,KAAK;CAChE,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAmB;;;eAG9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;;;;;mBAKV,CAAC,CAAC,IAAI;sBACH,CAAC,CAAC,OAAO;gBACf,CAAC,CAAC,KAAK;WACZ,CAAC,CAAC,IAAI;mDACkC,CAAC,CAAC,OAAO;CAC3D,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAQrG;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC;;YACpC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,KAAC,OAAO,IACN,EAAE,EAAE,EAAE,WACC,IAAI,eACA,CAAC,CAAC,OAAO,EACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACjC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAEhD,KAAK,GACE,CACX,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,KAAK,IACJ,SAAS,iBACF,IAAI,EACX,KAAK,EAAE,KAAK,gBACA,IAAI,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gBAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;QACjE,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
|
package/dist/kit/List.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const RowList: import("styled-components/dist/types").IStyledComp
|
|
|
9
9
|
* button — unless the row also carries `actions`, in which case it renders as
|
|
10
10
|
* a keyboard-operable div so the action buttons aren't nested in a button.
|
|
11
11
|
*/
|
|
12
|
-
export declare function ListRow({ to, href, external, onClick, selected, leading, trailing, actions, inline, dense, depth, card, highlight, title, children }: {
|
|
12
|
+
export declare function ListRow({ to, href, external, onClick, selected, leading, trailing, actions, keepActions, inline, dense, depth, card, highlight, title, children }: {
|
|
13
13
|
to?: string | undefined;
|
|
14
14
|
/** a destination off this origin — an upstream registry, a provider's console */
|
|
15
15
|
href?: string | undefined;
|
|
@@ -32,14 +32,26 @@ export declare function ListRow({ to, href, external, onClick, selected, leading
|
|
|
32
32
|
leading?: ReactNode | undefined;
|
|
33
33
|
trailing?: ReactNode | undefined;
|
|
34
34
|
actions?: ReactNode | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Keep `actions` visible instead of revealing them on hover. Hover-reveal
|
|
37
|
+
* keeps a long list quiet, but it is wrong twice: there is no hover on a
|
|
38
|
+
* touch screen, and on a list whose actions *are* the point — a workflow
|
|
39
|
+
* editor, a rule list, a set of statuses to reorder — hiding them hides the
|
|
40
|
+
* feature.
|
|
41
|
+
*/
|
|
42
|
+
keepActions?: boolean | undefined;
|
|
35
43
|
children: ReactNode;
|
|
36
44
|
}): import("react").JSX.Element;
|
|
37
45
|
/** RowActions: an action cluster revealed on row hover/focus (rows and table cells). */
|
|
38
|
-
export declare const RowActions: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
46
|
+
export declare const RowActions: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
39
47
|
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
40
|
-
},
|
|
48
|
+
}, {
|
|
49
|
+
$keep?: boolean | undefined;
|
|
50
|
+
}>, "className"> & Partial<Pick<import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
|
|
41
51
|
style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
42
|
-
},
|
|
52
|
+
}, {
|
|
53
|
+
$keep?: boolean | undefined;
|
|
54
|
+
}>, "className">>> & string;
|
|
43
55
|
export declare function SelectableList<T>({ rows, value, onPick, rowKey, render, onDelete, deleteLabel, dense }: {
|
|
44
56
|
rows: T[];
|
|
45
57
|
value: string | null;
|
package/dist/kit/List.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/kit/List.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,eAAO,MAAM,OAAO;;;aAAyB,OAAO,GAAG,SAAS;YAI/D,CAAC;AAgDF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/kit/List.tsx"],"names":[],"mappings":"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"}
|
package/dist/kit/List.js
CHANGED
|
@@ -57,8 +57,8 @@ const Trail = styled.span `flex: none; display: flex; align-items: center; gap:
|
|
|
57
57
|
* button — unless the row also carries `actions`, in which case it renders as
|
|
58
58
|
* a keyboard-operable div so the action buttons aren't nested in a button.
|
|
59
59
|
*/
|
|
60
|
-
export function ListRow({ to, href, external, onClick, selected, leading, trailing, actions, inline, dense, depth, card, highlight, title, children }) {
|
|
61
|
-
const inner = (_jsxs(_Fragment, { children: [leading ? _jsx(Lead, { children: leading }) : null, _jsx(Main, { "$inline": inline, children: children }), trailing ? _jsx(Trail, { children: trailing }) : null, actions ? _jsx(RowActions, { children: actions }) : null] }));
|
|
60
|
+
export function ListRow({ to, href, external, onClick, selected, leading, trailing, actions, keepActions, inline, dense, depth, card, highlight, title, children }) {
|
|
61
|
+
const inner = (_jsxs(_Fragment, { children: [leading ? _jsx(Lead, { children: leading }) : null, _jsx(Main, { "$inline": inline, children: children }), trailing ? _jsx(Trail, { children: trailing }) : null, actions ? _jsx(RowActions, { "$keep": keepActions, children: actions }) : null] }));
|
|
62
62
|
if (to)
|
|
63
63
|
return _jsx(RowLink, { to: to, title: title, "$click": true, "$selected": selected, "$dense": dense, "$depth": depth, "$card": card, "$highlight": highlight, children: inner });
|
|
64
64
|
if (href) {
|
|
@@ -81,7 +81,7 @@ export const RowActions = styled.span.attrs({ className: "row-actions" }) `
|
|
|
81
81
|
display: inline-flex;
|
|
82
82
|
align-items: center;
|
|
83
83
|
gap: 6px;
|
|
84
|
-
opacity: 0;
|
|
84
|
+
opacity: ${(p) => (p.$keep ? 1 : 0)};
|
|
85
85
|
transition: opacity 0.12s ease;
|
|
86
86
|
tr:hover &, tr:focus-within & { opacity: 1; }
|
|
87
87
|
`;
|
package/dist/kit/List.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/kit/List.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/kit/List.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Markdown: rendered GitHub-flavoured markdown. Raw HTML is not enabled. */
|
|
2
|
+
export declare function Markdown({ text, empty }: {
|
|
3
|
+
text: string;
|
|
4
|
+
/** what an empty field says; it is a state, not a blank */
|
|
5
|
+
empty?: string | undefined;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
/** MarkdownEditor: the write/preview pair. Controlled, like every kit field. */
|
|
8
|
+
export declare function MarkdownEditor({ value, onChange, placeholder, rows, autoFocus }: {
|
|
9
|
+
value: string;
|
|
10
|
+
onChange: (next: string) => void;
|
|
11
|
+
placeholder?: string | undefined;
|
|
12
|
+
rows?: number | undefined;
|
|
13
|
+
autoFocus?: boolean | undefined;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* EditableMarkdown: a markdown block that edits in place — the description
|
|
17
|
+
* panel every entity screen has. `onSave` resolves before the editor closes, so
|
|
18
|
+
* a refused write leaves the draft on screen rather than losing it.
|
|
19
|
+
*/
|
|
20
|
+
export declare function EditableMarkdown({ text, canEdit, onSave, saving, empty, editLabel }: {
|
|
21
|
+
text: string;
|
|
22
|
+
canEdit?: boolean | undefined;
|
|
23
|
+
onSave: (next: string) => Promise<unknown>;
|
|
24
|
+
saving?: boolean | undefined;
|
|
25
|
+
empty?: string | undefined;
|
|
26
|
+
editLabel?: string | undefined;
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=Markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":"AAkDA,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAA8B,EAAE,EAAE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAOA;AAeD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAQ,EAAE,SAAS,EAAE,EAAE;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC,+BAuBA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAA8B,EAAE,EAAE;IACzG,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,+BAyBA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import ReactMarkdown from "react-markdown";
|
|
5
|
+
import remarkGfm from "remark-gfm";
|
|
6
|
+
import { v } from "../theme/tokens.js";
|
|
7
|
+
import { AppButton, ButtonRow } from "./Button.js";
|
|
8
|
+
import { Segmented, TextArea } from "./Form.js";
|
|
9
|
+
// Markdown that reads as part of the console rather than as a web page: the
|
|
10
|
+
// kit's type scale, mono for code, hairlines for tables, the log surface for
|
|
11
|
+
// fenced blocks. `Prose` is the surface for plain text; this is the surface for
|
|
12
|
+
// text somebody wrote in markdown — a description, a comment, a release note.
|
|
13
|
+
//
|
|
14
|
+
// Editing is a textarea with a preview toggle rather than a rich editor: a
|
|
15
|
+
// description is pasted from a terminal at least as often as it is typed, and
|
|
16
|
+
// a WYSIWYG that mangles a code fence is worse than no WYSIWYG at all.
|
|
17
|
+
const Body = styled.div `
|
|
18
|
+
font-size: 13px;
|
|
19
|
+
line-height: 1.6;
|
|
20
|
+
color: ${v.text};
|
|
21
|
+
overflow-wrap: anywhere;
|
|
22
|
+
> :first-child { margin-top: 0; }
|
|
23
|
+
> :last-child { margin-bottom: 0; }
|
|
24
|
+
p, ul, ol, blockquote, pre, table { margin: 0 0 10px; }
|
|
25
|
+
h1, h2, h3, h4 { margin: 16px 0 6px; line-height: 1.3; }
|
|
26
|
+
h1 { font-size: 17px; } h2 { font-size: 15px; } h3 { font-size: 13.5px; } h4 { font-size: 13px; }
|
|
27
|
+
ul, ol { padding-left: 22px; }
|
|
28
|
+
li + li { margin-top: 2px; }
|
|
29
|
+
li > p { margin: 0; }
|
|
30
|
+
code { font-family: ${v.mono}; font-size: 11.5px; padding: 1px 5px; border-radius: 5px; background: ${v.hover}; border: 1px solid ${v.line}; }
|
|
31
|
+
pre { padding: 10px 12px; border-radius: ${v.rCtl}; background: ${v.logBg}; color: ${v.logText}; overflow: auto; }
|
|
32
|
+
pre code { background: transparent; border: none; padding: 0; color: inherit; }
|
|
33
|
+
a { color: ${v.info}; text-decoration: none; }
|
|
34
|
+
a:hover { text-decoration: underline; }
|
|
35
|
+
blockquote { margin-left: 0; padding: 2px 12px; border-left: 3px solid ${v.line2}; color: ${v.muted}; }
|
|
36
|
+
table { border-collapse: collapse; width: 100%; font-size: 12px; }
|
|
37
|
+
th, td { text-align: left; padding: 6px 9px; border-bottom: 1px solid ${v.line}; }
|
|
38
|
+
th { color: ${v.faint}; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; }
|
|
39
|
+
input[type="checkbox"] { margin-right: 6px; }
|
|
40
|
+
hr { border: none; border-top: 1px solid ${v.line}; margin: 14px 0; }
|
|
41
|
+
img { max-width: 100%; border-radius: ${v.rCtl}; }
|
|
42
|
+
`;
|
|
43
|
+
const Absent = styled.span `
|
|
44
|
+
color: ${v.faint};
|
|
45
|
+
font-size: 12.5px;
|
|
46
|
+
font-style: italic;
|
|
47
|
+
`;
|
|
48
|
+
/** Markdown: rendered GitHub-flavoured markdown. Raw HTML is not enabled. */
|
|
49
|
+
export function Markdown({ text, empty = "Nothing written yet." }) {
|
|
50
|
+
if (!text.trim())
|
|
51
|
+
return _jsx(Absent, { children: empty });
|
|
52
|
+
return (_jsx(Body, { children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: text }) }));
|
|
53
|
+
}
|
|
54
|
+
const EditorWrap = styled.div `
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
gap: 8px;
|
|
58
|
+
`;
|
|
59
|
+
const PreviewBox = styled.div `
|
|
60
|
+
min-height: 76px;
|
|
61
|
+
padding: 10px 12px;
|
|
62
|
+
border-radius: ${v.rCtl};
|
|
63
|
+
border: 1px dashed ${v.fieldLine};
|
|
64
|
+
`;
|
|
65
|
+
/** MarkdownEditor: the write/preview pair. Controlled, like every kit field. */
|
|
66
|
+
export function MarkdownEditor({ value, onChange, placeholder, rows = 8, autoFocus }) {
|
|
67
|
+
const [mode, setMode] = useState("write");
|
|
68
|
+
return (_jsxs(EditorWrap, { children: [_jsx(Segmented, { options: [{ value: "write", label: "Write" }, { value: "preview", label: "Preview" }], value: mode, onChange: setMode }), mode === "write" ? (_jsx(TextArea, { value: value, rows: rows, placeholder: placeholder ?? "Markdown…", autoFocus: autoFocus, onChange: (e) => onChange(e.target.value), style: { minHeight: rows * 20 } })) : (_jsx(PreviewBox, { children: _jsx(Markdown, { text: value, empty: "Nothing to preview." }) }))] }));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* EditableMarkdown: a markdown block that edits in place — the description
|
|
72
|
+
* panel every entity screen has. `onSave` resolves before the editor closes, so
|
|
73
|
+
* a refused write leaves the draft on screen rather than losing it.
|
|
74
|
+
*/
|
|
75
|
+
export function EditableMarkdown({ text, canEdit, onSave, saving, empty, editLabel = "Edit description" }) {
|
|
76
|
+
const [editing, setEditing] = useState(false);
|
|
77
|
+
const [draft, setDraft] = useState(text);
|
|
78
|
+
if (!editing) {
|
|
79
|
+
return (_jsxs("div", { children: [_jsx(Markdown, { text: text, ...(empty ? { empty } : {}) }), canEdit ? (_jsx(ButtonRow, { style: { marginTop: 10 }, children: _jsx(AppButton, { icon: "edit", onClick: () => { setDraft(text); setEditing(true); }, children: editLabel }) })) : null] }));
|
|
80
|
+
}
|
|
81
|
+
return (_jsxs("div", { children: [_jsx(MarkdownEditor, { value: draft, onChange: setDraft, autoFocus: true }), _jsxs(ButtonRow, { style: { marginTop: 10, justifyContent: "flex-end" }, children: [_jsx(AppButton, { onClick: () => setEditing(false), disabled: saving, children: "Cancel" }), _jsx(AppButton, { variant: "grad", loading: saving, onClick: () => { void onSave(draft).then(() => setEditing(false)); }, children: "Save" })] })] }));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dot: a state marker in a colour the product chose. `colour` is a CSS colour
|
|
3
|
+
* — a theme token from the product's own palette map, never a literal, so both
|
|
4
|
+
* themes render it. `hollow` is the not-yet form: a status the work has not
|
|
5
|
+
* reached reads as an outline, the way a checkbox reads before it is ticked.
|
|
6
|
+
*/
|
|
7
|
+
export declare function Dot({ colour, size, hollow, title }: {
|
|
8
|
+
colour?: string | undefined;
|
|
9
|
+
size?: number | undefined;
|
|
10
|
+
hollow?: boolean | undefined;
|
|
11
|
+
title?: string | undefined;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* LevelBars: a small ordinal as rising bars — priority, severity, confidence.
|
|
15
|
+
* Every bar is drawn, lit up to `level`, so zero is still a glyph and a column
|
|
16
|
+
* of them scans as one shape rather than as text of differing widths.
|
|
17
|
+
*/
|
|
18
|
+
export declare function LevelBars({ level, levels, title }: {
|
|
19
|
+
/** 0 = none; anything above `levels` is clamped */
|
|
20
|
+
level: number;
|
|
21
|
+
levels?: number | undefined;
|
|
22
|
+
title?: string | undefined;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
/**
|
|
25
|
+
* PersonChip: who — an avatar (their picture, else their initials) and their
|
|
26
|
+
* name. `nameless` is the avatar alone, for a board card or a stack of
|
|
27
|
+
* participants where the name would not fit. With no name and no email it
|
|
28
|
+
* renders the unassigned form, which is a state worth seeing rather than a
|
|
29
|
+
* blank cell.
|
|
30
|
+
*/
|
|
31
|
+
export declare function PersonChip({ name, email, avatarUrl, size, nameless, empty }: {
|
|
32
|
+
name?: string | undefined;
|
|
33
|
+
email?: string | undefined;
|
|
34
|
+
avatarUrl?: string | undefined;
|
|
35
|
+
size?: number | undefined;
|
|
36
|
+
nameless?: boolean | undefined;
|
|
37
|
+
/** what an absent person is called ("Unassigned", "No lead") */
|
|
38
|
+
empty?: string | undefined;
|
|
39
|
+
}): import("react").JSX.Element;
|
|
40
|
+
/** initials: the one or two letters that stand in for a name or an address. */
|
|
41
|
+
export declare function initials(name: string): string;
|
|
42
|
+
//# sourceMappingURL=Marker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,IAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAEA;AAmBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAU,EAAE,KAAK,EAAE,EAAE;IACtD,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAQA;AA2BD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAS,EAAE,QAAQ,EAAE,KAAoB,EAAE,EAAE;IAChG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAgBA;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7C"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled, { css } from "styled-components";
|
|
3
|
+
import { v } from "../theme/tokens.js";
|
|
4
|
+
import { Icon } from "./Icon.js";
|
|
5
|
+
// Three markers a list of work needs in every column: the coloured state dot,
|
|
6
|
+
// the level glyph (priority, severity, confidence) and the person cell.
|
|
7
|
+
// `StatusPill` says a verdict in words; these are the compact forms that fit a
|
|
8
|
+
// table row, a board card and a header line without wrapping.
|
|
9
|
+
const DotSpan = styled.span `
|
|
10
|
+
display: inline-block;
|
|
11
|
+
width: ${(p) => p.$size}px;
|
|
12
|
+
height: ${(p) => p.$size}px;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
flex: none;
|
|
15
|
+
${(p) => p.$hollow
|
|
16
|
+
? css `border: 2px solid ${p.$css}; background: transparent;`
|
|
17
|
+
: css `background: ${p.$css};`}
|
|
18
|
+
`;
|
|
19
|
+
/**
|
|
20
|
+
* Dot: a state marker in a colour the product chose. `colour` is a CSS colour
|
|
21
|
+
* — a theme token from the product's own palette map, never a literal, so both
|
|
22
|
+
* themes render it. `hollow` is the not-yet form: a status the work has not
|
|
23
|
+
* reached reads as an outline, the way a checkbox reads before it is ticked.
|
|
24
|
+
*/
|
|
25
|
+
export function Dot({ colour, size = 10, hollow, title }) {
|
|
26
|
+
return _jsx(DotSpan, { "$css": colour || v.faint, "$size": size, "$hollow": hollow, title: title });
|
|
27
|
+
}
|
|
28
|
+
const BarsWrap = styled.span `
|
|
29
|
+
display: inline-flex;
|
|
30
|
+
align-items: flex-end;
|
|
31
|
+
gap: 1.5px;
|
|
32
|
+
height: 12px;
|
|
33
|
+
color: ${(p) => (p.$muted ? v.faint : v.muted)};
|
|
34
|
+
`;
|
|
35
|
+
const Bar = styled.i `
|
|
36
|
+
display: inline-block;
|
|
37
|
+
width: 3px;
|
|
38
|
+
height: ${(p) => p.$h}px;
|
|
39
|
+
border-radius: 1px;
|
|
40
|
+
background: currentColor;
|
|
41
|
+
opacity: ${(p) => (p.$on ? 1 : 0.25)};
|
|
42
|
+
`;
|
|
43
|
+
/**
|
|
44
|
+
* LevelBars: a small ordinal as rising bars — priority, severity, confidence.
|
|
45
|
+
* Every bar is drawn, lit up to `level`, so zero is still a glyph and a column
|
|
46
|
+
* of them scans as one shape rather than as text of differing widths.
|
|
47
|
+
*/
|
|
48
|
+
export function LevelBars({ level, levels = 3, title }) {
|
|
49
|
+
const on = Math.max(0, Math.min(levels, Math.round(level)));
|
|
50
|
+
const step = 6 / Math.max(1, levels);
|
|
51
|
+
return (_jsx(BarsWrap, { title: title, "$muted": on === 0, children: Array.from({ length: levels }, (_, i) => _jsx(Bar, { "$h": 5 + Math.round(i * step), "$on": i < on }, i)) }));
|
|
52
|
+
}
|
|
53
|
+
const Avatar = styled.span `
|
|
54
|
+
display: inline-grid;
|
|
55
|
+
place-items: center;
|
|
56
|
+
width: ${(p) => p.$size}px;
|
|
57
|
+
height: ${(p) => p.$size}px;
|
|
58
|
+
border-radius: 50%;
|
|
59
|
+
background: ${(p) => (p.$empty ? v.hover : v.brand12)};
|
|
60
|
+
color: ${(p) => (p.$empty ? v.faint : v.brand)};
|
|
61
|
+
font-size: ${(p) => Math.max(9, Math.round(p.$size * 0.42))}px;
|
|
62
|
+
font-weight: 700;
|
|
63
|
+
flex: none;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
img { width: 100%; height: 100%; object-fit: cover; }
|
|
66
|
+
`;
|
|
67
|
+
const PersonWrap = styled.span `
|
|
68
|
+
display: inline-flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
gap: 7px;
|
|
71
|
+
min-width: 0;
|
|
72
|
+
font-size: 12px;
|
|
73
|
+
color: ${(p) => (p.$empty ? v.faint : v.text)};
|
|
74
|
+
> span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
75
|
+
`;
|
|
76
|
+
/**
|
|
77
|
+
* PersonChip: who — an avatar (their picture, else their initials) and their
|
|
78
|
+
* name. `nameless` is the avatar alone, for a board card or a stack of
|
|
79
|
+
* participants where the name would not fit. With no name and no email it
|
|
80
|
+
* renders the unassigned form, which is a state worth seeing rather than a
|
|
81
|
+
* blank cell.
|
|
82
|
+
*/
|
|
83
|
+
export function PersonChip({ name, email, avatarUrl, size = 20, nameless, empty = "Unassigned" }) {
|
|
84
|
+
const label = name || email || "";
|
|
85
|
+
if (!label) {
|
|
86
|
+
return (_jsxs(PersonWrap, { "$empty": true, title: nameless ? empty : undefined, children: [_jsx(Avatar, { "$size": size, "$empty": true, children: _jsx(Icon, { name: "user", size: Math.round(size * 0.5) }) }), nameless ? null : _jsx("span", { children: empty })] }));
|
|
87
|
+
}
|
|
88
|
+
return (_jsxs(PersonWrap, { title: email || label, children: [_jsx(Avatar, { "$size": size, children: avatarUrl ? _jsx("img", { src: avatarUrl, alt: "" }) : initials(label) }), nameless ? null : _jsx("span", { children: label })] }));
|
|
89
|
+
}
|
|
90
|
+
/** initials: the one or two letters that stand in for a name or an address. */
|
|
91
|
+
export function initials(name) {
|
|
92
|
+
const parts = name.trim().split(/[\s@._-]+/).filter(Boolean);
|
|
93
|
+
if (parts.length === 0)
|
|
94
|
+
return "?";
|
|
95
|
+
if (parts.length === 1)
|
|
96
|
+
return parts[0].slice(0, 2).toUpperCase();
|
|
97
|
+
return (parts[0][0] + parts[1][0]).toUpperCase();
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=Marker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marker.js","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
declare const RATIOS: {
|
|
3
|
+
/** a main column with a narrow fixed rail — fields, facts, actions */
|
|
4
|
+
readonly rail: "minmax(0, 1fr) 300px";
|
|
5
|
+
/** a wide main column and a secondary panel that still holds content */
|
|
6
|
+
readonly aside: "minmax(0, 2fr) minmax(0, 1fr)";
|
|
7
|
+
/** two equal columns */
|
|
8
|
+
readonly even: "minmax(0, 1fr) minmax(0, 1fr)";
|
|
9
|
+
};
|
|
10
|
+
export type SplitRatio = keyof typeof RATIOS;
|
|
11
|
+
/**
|
|
12
|
+
* Split: a main column and a second column beside it, stacking on a narrow
|
|
13
|
+
* viewport. `ratio` names the shape rather than spelling out grid columns, so
|
|
14
|
+
* every console's detail screen splits the same way; `sticky` keeps the rail
|
|
15
|
+
* in view while the main column scrolls, which is what makes a field rail
|
|
16
|
+
* usable on a long ticket.
|
|
17
|
+
*/
|
|
18
|
+
export declare function Split({ ratio, gap, at, sticky, mainLast, children }: {
|
|
19
|
+
ratio?: SplitRatio | undefined;
|
|
20
|
+
gap?: number | undefined;
|
|
21
|
+
/** viewport width (px) below which the columns stack; default 960 */
|
|
22
|
+
at?: number | undefined;
|
|
23
|
+
/** the aside stays in view as the main column scrolls (a field rail) */
|
|
24
|
+
sticky?: boolean | undefined;
|
|
25
|
+
/** stacked, put the main column second — an aside that is context, not detail */
|
|
26
|
+
mainLast?: boolean | undefined;
|
|
27
|
+
/** exactly two children: the main column, then the aside */
|
|
28
|
+
children: [ReactNode, ReactNode];
|
|
29
|
+
}): import("react").JSX.Element;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=Split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Split.d.ts","sourceRoot":"","sources":["../../src/kit/Split.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA+BvC,QAAA,MAAM,MAAM;IACV,sEAAsE;;IAEtE,wEAAwE;;IAExE,wBAAwB;;CAEhB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,MAAM,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,KAAc,EAAE,GAAQ,EAAE,EAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACxF,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,qEAAqE;IACrE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAClC,+BAQA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled, { css } from "styled-components";
|
|
3
|
+
// The explicit main/aside page split. `Grid` auto-fills equal cards; this is
|
|
4
|
+
// the other layout every detail screen needs and four consoles had each
|
|
5
|
+
// written as a local `styled.div` (strata's `Two`, container-platform's
|
|
6
|
+
// detail grid, trellis's ticket rail, forest's overview).
|
|
7
|
+
const Wrap = styled.div `
|
|
8
|
+
display: grid;
|
|
9
|
+
grid-template-columns: ${(p) => p.$ratio};
|
|
10
|
+
gap: ${(p) => p.$gap}px;
|
|
11
|
+
align-items: start;
|
|
12
|
+
min-width: 0;
|
|
13
|
+
> * { min-width: 0; }
|
|
14
|
+
@media (max-width: ${(p) => p.$at}px) {
|
|
15
|
+
grid-template-columns: 1fr;
|
|
16
|
+
${(p) => p.$reverse && css `> :first-child { order: 2; }`}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
const Aside = styled.div `
|
|
20
|
+
min-width: 0;
|
|
21
|
+
${(p) => p.$sticky &&
|
|
22
|
+
css `
|
|
23
|
+
position: sticky;
|
|
24
|
+
top: 16px;
|
|
25
|
+
@media (max-width: 960px) { position: static; }
|
|
26
|
+
`}
|
|
27
|
+
`;
|
|
28
|
+
const RATIOS = {
|
|
29
|
+
/** a main column with a narrow fixed rail — fields, facts, actions */
|
|
30
|
+
rail: "minmax(0, 1fr) 300px",
|
|
31
|
+
/** a wide main column and a secondary panel that still holds content */
|
|
32
|
+
aside: "minmax(0, 2fr) minmax(0, 1fr)",
|
|
33
|
+
/** two equal columns */
|
|
34
|
+
even: "minmax(0, 1fr) minmax(0, 1fr)",
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Split: a main column and a second column beside it, stacking on a narrow
|
|
38
|
+
* viewport. `ratio` names the shape rather than spelling out grid columns, so
|
|
39
|
+
* every console's detail screen splits the same way; `sticky` keeps the rail
|
|
40
|
+
* in view while the main column scrolls, which is what makes a field rail
|
|
41
|
+
* usable on a long ticket.
|
|
42
|
+
*/
|
|
43
|
+
export function Split({ ratio = "rail", gap = 16, at = 960, sticky, mainLast, children }) {
|
|
44
|
+
const [main, aside] = children;
|
|
45
|
+
return (_jsxs(Wrap, { "$ratio": RATIOS[ratio], "$gap": gap, "$at": at, "$reverse": !!mainLast, children: [_jsx("div", { children: main }), _jsx(Aside, { "$sticky": !!sticky, children: aside })] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Split.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Split.js","sourceRoot":"","sources":["../../src/kit/Split.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,6EAA6E;AAC7E,wEAAwE;AACxE,wEAAwE;AACxE,0DAA0D;AAE1D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAkE;;2BAE9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;SACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;;;;uBAIC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG;;MAE7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAA,8BAA8B;;CAE3D,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAsB;;IAE1C,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,OAAO;IACT,GAAG,CAAA;;;;KAIF;CACJ,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,sEAAsE;IACtE,IAAI,EAAE,sBAAsB;IAC5B,wEAAwE;IACxE,KAAK,EAAE,+BAA+B;IACtC,wBAAwB;IACxB,IAAI,EAAE,+BAA+B;CAC7B,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAWrF;IACC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC/B,OAAO,CACL,MAAC,IAAI,cAAS,MAAM,CAAC,KAAK,CAAC,UAAQ,GAAG,SAAO,EAAE,cAAY,CAAC,CAAC,QAAQ,aACnE,wBAAM,IAAI,GAAO,EACjB,KAAC,KAAK,eAAU,CAAC,CAAC,MAAM,YAAG,KAAK,GAAS,IACpC,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/markdown.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @xeonr/platform-ui/markdown — the markdown surface, behind its own entry
|
|
2
|
+
// point.
|
|
3
|
+
//
|
|
4
|
+
// react-markdown and remark-gfm are optional peers: a console with no
|
|
5
|
+
// user-authored markdown never installs them, and never resolves this module.
|
|
6
|
+
export { Markdown, MarkdownEditor, EditableMarkdown } from "./kit/Markdown.js";
|
|
7
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,SAAS;AACT,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xeonr/platform-ui",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.13",
|
|
4
4
|
"description": "Xeonr Platform Suite design language: the --x-* token sheet, theme provider and kit shared by every Xeonr console.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
"./editor": {
|
|
18
18
|
"types": "./dist/editor.d.ts",
|
|
19
19
|
"import": "./dist/editor.js"
|
|
20
|
+
},
|
|
21
|
+
"./markdown": {
|
|
22
|
+
"types": "./dist/markdown.d.ts",
|
|
23
|
+
"import": "./dist/markdown.js"
|
|
20
24
|
}
|
|
21
25
|
},
|
|
22
26
|
"files": [
|
|
@@ -32,7 +36,9 @@
|
|
|
32
36
|
"react": "^19.0.0",
|
|
33
37
|
"react-dom": "^19.0.0",
|
|
34
38
|
"react-router-dom": "^7.0.0",
|
|
35
|
-
"styled-components": "^6.0.0"
|
|
39
|
+
"styled-components": "^6.0.0",
|
|
40
|
+
"react-markdown": "^10.0.0",
|
|
41
|
+
"remark-gfm": "^4.0.0"
|
|
36
42
|
},
|
|
37
43
|
"peerDependenciesMeta": {
|
|
38
44
|
"@monaco-editor/react": {
|
|
@@ -40,6 +46,12 @@
|
|
|
40
46
|
},
|
|
41
47
|
"monaco-editor": {
|
|
42
48
|
"optional": true
|
|
49
|
+
},
|
|
50
|
+
"react-markdown": {
|
|
51
|
+
"optional": true
|
|
52
|
+
},
|
|
53
|
+
"remark-gfm": {
|
|
54
|
+
"optional": true
|
|
43
55
|
}
|
|
44
56
|
},
|
|
45
57
|
"dependencies": {
|
|
@@ -56,7 +68,9 @@
|
|
|
56
68
|
"react-dom": "^19.1.0",
|
|
57
69
|
"react-router-dom": "^7.8.0",
|
|
58
70
|
"styled-components": "^6.1.19",
|
|
59
|
-
"typescript": "^5.9.2"
|
|
71
|
+
"typescript": "^5.9.2",
|
|
72
|
+
"react-markdown": "^10.1.0",
|
|
73
|
+
"remark-gfm": "^4.0.1"
|
|
60
74
|
},
|
|
61
75
|
"scripts": {
|
|
62
76
|
"build": "tsc -p tsconfig.build.json",
|