@ksp-gonogo/ui-kit 0.1.0 → 0.2.0-rc.10
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/LICENSE +21 -596
- package/README.md +151 -0
- package/dist/chunk-G3PMV62Z.js +36 -0
- package/dist/chunk-G3PMV62Z.js.map +1 -0
- package/dist/chunk-KPESGDJJ.js +8611 -0
- package/dist/chunk-KPESGDJJ.js.map +1 -0
- package/dist/chunk-SHAX2WJJ.js +18 -0
- package/dist/chunk-SHAX2WJJ.js.map +1 -0
- package/dist/dist-JSEJWZKX.js +546 -0
- package/dist/dist-JSEJWZKX.js.map +1 -0
- package/dist/gridUnits.d.ts +34 -0
- package/dist/gridUnits.js +14 -0
- package/dist/gridUnits.js.map +1 -0
- package/dist/guards.d.ts +110 -0
- package/dist/guards.js +171 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +9318 -25
- package/dist/index.js +8098 -28
- package/dist/index.js.map +1 -1
- package/dist/magic-string.es-J7BYFTTJ.js +1309 -0
- package/dist/magic-string.es-J7BYFTTJ.js.map +1 -0
- package/dist/testing.d.ts +470 -0
- package/dist/testing.js +16747 -0
- package/dist/testing.js.map +1 -0
- package/dist/tokens.css +1063 -29
- package/dist/units-Cl-8ZdJc.d.ts +270 -0
- package/package.json +57 -15
- package/dist/ActionButton.d.ts +0 -18
- package/dist/ActionButton.d.ts.map +0 -1
- package/dist/ActionButton.js +0 -56
- package/dist/ActionButton.js.map +0 -1
- package/dist/Badge.d.ts +0 -15
- package/dist/Badge.d.ts.map +0 -1
- package/dist/Badge.js +0 -60
- package/dist/Badge.js.map +0 -1
- package/dist/Box.d.ts +0 -19
- package/dist/Box.d.ts.map +0 -1
- package/dist/Box.js +0 -27
- package/dist/Box.js.map +0 -1
- package/dist/Card.d.ts +0 -11
- package/dist/Card.d.ts.map +0 -1
- package/dist/Card.js +0 -13
- package/dist/Card.js.map +0 -1
- package/dist/Cluster.d.ts +0 -18
- package/dist/Cluster.d.ts.map +0 -1
- package/dist/Cluster.js +0 -24
- package/dist/Cluster.js.map +0 -1
- package/dist/EmptyState.d.ts +0 -16
- package/dist/EmptyState.d.ts.map +0 -1
- package/dist/EmptyState.js +0 -37
- package/dist/EmptyState.js.map +0 -1
- package/dist/GonogoTokens.d.ts +0 -16
- package/dist/GonogoTokens.d.ts.map +0 -1
- package/dist/GonogoTokens.js +0 -108
- package/dist/GonogoTokens.js.map +0 -1
- package/dist/Grid.d.ts +0 -25
- package/dist/Grid.d.ts.map +0 -1
- package/dist/Grid.js +0 -23
- package/dist/Grid.js.map +0 -1
- package/dist/Inline.d.ts +0 -20
- package/dist/Inline.d.ts.map +0 -1
- package/dist/Inline.js +0 -17
- package/dist/Inline.js.map +0 -1
- package/dist/Panel.d.ts +0 -14
- package/dist/Panel.d.ts.map +0 -1
- package/dist/Panel.js +0 -145
- package/dist/Panel.js.map +0 -1
- package/dist/ProgressBar.d.ts +0 -15
- package/dist/ProgressBar.d.ts.map +0 -1
- package/dist/ProgressBar.js +0 -31
- package/dist/ProgressBar.js.map +0 -1
- package/dist/Readout.d.ts +0 -35
- package/dist/Readout.d.ts.map +0 -1
- package/dist/Readout.js +0 -114
- package/dist/Readout.js.map +0 -1
- package/dist/Row.d.ts +0 -22
- package/dist/Row.d.ts.map +0 -1
- package/dist/Row.js +0 -32
- package/dist/Row.js.map +0 -1
- package/dist/Section.d.ts +0 -15
- package/dist/Section.d.ts.map +0 -1
- package/dist/Section.js +0 -21
- package/dist/Section.js.map +0 -1
- package/dist/Spinner.d.ts +0 -18
- package/dist/Spinner.d.ts.map +0 -1
- package/dist/Spinner.js +0 -22
- package/dist/Spinner.js.map +0 -1
- package/dist/Stack.d.ts +0 -15
- package/dist/Stack.d.ts.map +0 -1
- package/dist/Stack.js +0 -17
- package/dist/Stack.js.map +0 -1
- package/dist/StatusIndicator.d.ts +0 -27
- package/dist/StatusIndicator.d.ts.map +0 -1
- package/dist/StatusIndicator.js +0 -78
- package/dist/StatusIndicator.js.map +0 -1
- package/dist/Truncate.d.ts +0 -7
- package/dist/Truncate.d.ts.map +0 -1
- package/dist/Truncate.js +0 -14
- package/dist/Truncate.js.map +0 -1
- package/dist/Value.d.ts +0 -24
- package/dist/Value.d.ts.map +0 -1
- package/dist/Value.js +0 -42
- package/dist/Value.js.map +0 -1
- package/dist/WidgetHeader.d.ts +0 -16
- package/dist/WidgetHeader.d.ts.map +0 -1
- package/dist/WidgetHeader.js +0 -40
- package/dist/WidgetHeader.js.map +0 -1
- package/dist/defaultDarkTheme.d.ts +0 -16
- package/dist/defaultDarkTheme.d.ts.map +0 -1
- package/dist/defaultDarkTheme.js +0 -96
- package/dist/defaultDarkTheme.js.map +0 -1
- package/dist/format.d.ts +0 -11
- package/dist/format.d.ts.map +0 -1
- package/dist/format.js +0 -12
- package/dist/format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/science/ScienceExperimentRow.d.ts +0 -43
- package/dist/science/ScienceExperimentRow.d.ts.map +0 -1
- package/dist/science/ScienceExperimentRow.js +0 -61
- package/dist/science/ScienceExperimentRow.js.map +0 -1
- package/dist/test/axe.d.ts +0 -3
- package/dist/test/axe.d.ts.map +0 -1
- package/dist/test/axe.js +0 -5
- package/dist/test/axe.js.map +0 -1
- package/dist/test/setup.d.ts +0 -2
- package/dist/test/setup.d.ts.map +0 -1
- package/dist/test/setup.js +0 -12
- package/dist/test/setup.js.map +0 -1
- package/dist/theme.d.ts +0 -116
- package/dist/theme.d.ts.map +0 -1
- package/dist/theme.js +0 -15
- package/dist/theme.js.map +0 -1
package/dist/Cluster.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled from "styled-components";
|
|
3
|
-
const JUSTIFY_CONTENT = {
|
|
4
|
-
between: "space-between",
|
|
5
|
-
start: "flex-start",
|
|
6
|
-
end: "flex-end",
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* The single most-repeated block in the dashboard: a horizontal row with
|
|
10
|
-
* centred items, spread-out justification, and a `min-width: 0` so a
|
|
11
|
-
* truncating child inside actually truncates instead of overflowing the flex
|
|
12
|
-
* item. Verbatim source: ScienceOfficer's `TitleRow` and `LabHeader`.
|
|
13
|
-
*/
|
|
14
|
-
export function Cluster({ justify = "between", gap = "md", children, ...rest }) {
|
|
15
|
-
return (_jsx(Cluster__Root, { "$justify": justify, "$gap": gap, ...rest, children: children }));
|
|
16
|
-
}
|
|
17
|
-
const Cluster__Root = styled.div `
|
|
18
|
-
display: flex;
|
|
19
|
-
align-items: center;
|
|
20
|
-
justify-content: ${({ $justify }) => JUSTIFY_CONTENT[$justify]};
|
|
21
|
-
gap: ${({ theme, $gap }) => theme.space[$gap]};
|
|
22
|
-
min-width: 0;
|
|
23
|
-
`;
|
|
24
|
-
//# sourceMappingURL=Cluster.js.map
|
package/dist/Cluster.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Cluster.js","sourceRoot":"","sources":["../src/Cluster.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAavC,MAAM,eAAe,GAAmC;IACtD,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,OAAO,GAAG,SAAS,EACnB,GAAG,GAAG,IAAI,EACV,QAAQ,EACR,GAAG,IAAI,EACM;IACb,OAAO,CACL,KAAC,aAAa,gBAAW,OAAO,UAAQ,GAAG,KAAM,IAAI,YAClD,QAAQ,GACK,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAG9B;;;qBAGmB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;SACvD,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;;CAE9C,CAAC"}
|
package/dist/EmptyState.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
export type EmptyStateLayout = "inline" | "fill";
|
|
3
|
-
export interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
-
children?: ReactNode;
|
|
5
|
-
layout?: EmptyStateLayout;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Muted placeholder text shown when a panel has nothing to render. Replaces
|
|
9
|
-
* the many ad-hoc `Empty = styled.div` definitions sprinkled across widgets.
|
|
10
|
-
*
|
|
11
|
-
* `inline` is the default — small vertical padding, sits where it's mounted
|
|
12
|
-
* inside a panel's stack of children. `fill` centres in the available space
|
|
13
|
-
* and is appropriate as a panel's sole child.
|
|
14
|
-
*/
|
|
15
|
-
export declare function EmptyState({ children, layout, ...rest }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
//# sourceMappingURL=EmptyState.d.ts.map
|
package/dist/EmptyState.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,MAAiB,EACjB,GAAG,IAAI,EACR,EAAE,eAAe,2CAMjB"}
|
package/dist/EmptyState.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled, { css } from "styled-components";
|
|
3
|
-
/**
|
|
4
|
-
* Muted placeholder text shown when a panel has nothing to render. Replaces
|
|
5
|
-
* the many ad-hoc `Empty = styled.div` definitions sprinkled across widgets.
|
|
6
|
-
*
|
|
7
|
-
* `inline` is the default — small vertical padding, sits where it's mounted
|
|
8
|
-
* inside a panel's stack of children. `fill` centres in the available space
|
|
9
|
-
* and is appropriate as a panel's sole child.
|
|
10
|
-
*/
|
|
11
|
-
export function EmptyState({ children, layout = "inline", ...rest }) {
|
|
12
|
-
return (_jsx(EmptyState__Body, { "$layout": layout, ...rest, children: children }));
|
|
13
|
-
}
|
|
14
|
-
const LAYOUT_STYLES = {
|
|
15
|
-
inline: css `
|
|
16
|
-
padding: 8px 0;
|
|
17
|
-
`,
|
|
18
|
-
fill: css `
|
|
19
|
-
width: 100%;
|
|
20
|
-
height: 100%;
|
|
21
|
-
flex: 1;
|
|
22
|
-
min-height: 0;
|
|
23
|
-
display: flex;
|
|
24
|
-
align-items: center;
|
|
25
|
-
justify-content: center;
|
|
26
|
-
text-align: center;
|
|
27
|
-
padding: 16px;
|
|
28
|
-
`,
|
|
29
|
-
};
|
|
30
|
-
const EmptyState__Body = styled.div `
|
|
31
|
-
color: var(--color-text-muted);
|
|
32
|
-
font-size: var(--font-size-sm);
|
|
33
|
-
letter-spacing: 0.04em;
|
|
34
|
-
|
|
35
|
-
${({ $layout }) => LAYOUT_STYLES[$layout]}
|
|
36
|
-
`;
|
|
37
|
-
//# sourceMappingURL=EmptyState.js.map
|
package/dist/EmptyState.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAShD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,MAAM,GAAG,QAAQ,EACjB,GAAG,IAAI,EACS;IAChB,OAAO,CACL,KAAC,gBAAgB,eAAU,MAAM,KAAM,IAAI,YACxC,QAAQ,GACQ,CACpB,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,GAAG,CAAA;;GAEV;IACD,IAAI,EAAE,GAAG,CAAA;;;;;;;;;;GAUR;CACO,CAAC;AAEX,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAA+B;;;;;IAK9D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;CAC1C,CAAC"}
|
package/dist/GonogoTokens.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design-token custom properties as a styled-components global sheet.
|
|
3
|
-
*
|
|
4
|
-
* Mirrors `tokens.css` exactly — the same `:root` variable block and the
|
|
5
|
-
* coarse-pointer font-size override. Hosts that build their global styles
|
|
6
|
-
* through styled-components (rather than importing `@ksp-gonogo/ui-kit/tokens.css`)
|
|
7
|
-
* render `<GonogoTokens />` once near the tree root.
|
|
8
|
-
*
|
|
9
|
-
* Not auto-mounted: injecting a stylesheet is a side effect, and the kit stays
|
|
10
|
-
* side-effect-free so it tree-shakes cleanly. The host opts in explicitly.
|
|
11
|
-
*
|
|
12
|
-
* Keep this block and `tokens.css` in sync — they are two hand-maintained
|
|
13
|
-
* copies of the same source of truth.
|
|
14
|
-
*/
|
|
15
|
-
export declare const GonogoTokens: import("react").NamedExoticComponent<import("styled-components").ExecutionProps & object>;
|
|
16
|
-
//# sourceMappingURL=GonogoTokens.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GonogoTokens.d.ts","sourceRoot":"","sources":["../src/GonogoTokens.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,2FA2FxB,CAAC"}
|
package/dist/GonogoTokens.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { createGlobalStyle } from "styled-components";
|
|
2
|
-
/**
|
|
3
|
-
* Design-token custom properties as a styled-components global sheet.
|
|
4
|
-
*
|
|
5
|
-
* Mirrors `tokens.css` exactly — the same `:root` variable block and the
|
|
6
|
-
* coarse-pointer font-size override. Hosts that build their global styles
|
|
7
|
-
* through styled-components (rather than importing `@ksp-gonogo/ui-kit/tokens.css`)
|
|
8
|
-
* render `<GonogoTokens />` once near the tree root.
|
|
9
|
-
*
|
|
10
|
-
* Not auto-mounted: injecting a stylesheet is a side effect, and the kit stays
|
|
11
|
-
* side-effect-free so it tree-shakes cleanly. The host opts in explicitly.
|
|
12
|
-
*
|
|
13
|
-
* Keep this block and `tokens.css` in sync — they are two hand-maintained
|
|
14
|
-
* copies of the same source of truth.
|
|
15
|
-
*/
|
|
16
|
-
export const GonogoTokens = createGlobalStyle `
|
|
17
|
-
:root {
|
|
18
|
-
--font-family-mono:
|
|
19
|
-
"JetBrains Mono", ui-monospace, "IBM Plex Mono", Menlo, Consolas, monospace;
|
|
20
|
-
--font-size-xs: 11px;
|
|
21
|
-
--font-size-sm: 12px;
|
|
22
|
-
--font-size-base: 14px;
|
|
23
|
-
--font-size-lg: 16px;
|
|
24
|
-
|
|
25
|
-
--color-text-primary: #ccc;
|
|
26
|
-
--color-text-muted: #888;
|
|
27
|
-
--color-text-dim: #808080;
|
|
28
|
-
--color-text-faint: #7a7a7a;
|
|
29
|
-
--color-text-inverse: #050505;
|
|
30
|
-
|
|
31
|
-
--color-surface-app: #050505;
|
|
32
|
-
--color-surface-panel: #0d0d0d;
|
|
33
|
-
--color-surface-raised: #1a1a1a;
|
|
34
|
-
--color-surface-sunken: #0a0a0a;
|
|
35
|
-
|
|
36
|
-
--color-border-subtle: #2a2a2a;
|
|
37
|
-
--color-border-strong: #333;
|
|
38
|
-
|
|
39
|
-
--color-accent-fg: #00ff88;
|
|
40
|
-
--color-accent-bg: #00ff88;
|
|
41
|
-
|
|
42
|
-
--color-status-go-fg: #cfe;
|
|
43
|
-
--color-status-go-bg: #2e5a2e;
|
|
44
|
-
--color-status-nogo-fg: #ffdede;
|
|
45
|
-
--color-status-nogo-bg: #ff4d4d;
|
|
46
|
-
--color-status-warning-fg: #1a1a1a;
|
|
47
|
-
--color-status-warning-bg: #ff8c00;
|
|
48
|
-
--color-status-info-fg: #7cf;
|
|
49
|
-
--color-status-info-bg: #0d0d0d;
|
|
50
|
-
|
|
51
|
-
--color-status-alert-muted: #4a0e0e;
|
|
52
|
-
--color-status-warning-bg-muted: #3a2a0a;
|
|
53
|
-
--color-status-warning-fg-muted: #ffd68a;
|
|
54
|
-
--color-status-warning-border-muted: #8a6a28;
|
|
55
|
-
|
|
56
|
-
--color-tag-blue-fg: #4488ff;
|
|
57
|
-
--color-tag-blue-bg: #0a0a1a;
|
|
58
|
-
--color-tag-blue-border: #1a1a3a;
|
|
59
|
-
--color-tag-purple-fg: #cc44cc;
|
|
60
|
-
--color-tag-purple-bg: #1a0a1a;
|
|
61
|
-
--color-tag-purple-border: #6a3a9a;
|
|
62
|
-
--color-tag-yellow-fg: #ffeb3b;
|
|
63
|
-
--color-tag-yellow-bg: #3a2800;
|
|
64
|
-
--color-tag-yellow-border: #6a5a2a;
|
|
65
|
-
--color-tag-dark-brown-bg: #1a1000;
|
|
66
|
-
--color-tag-dark-brown-border: #3a2800;
|
|
67
|
-
--color-tag-cyan-fg: #00cccc;
|
|
68
|
-
--color-tag-orange-fg: #ff6633;
|
|
69
|
-
--color-tag-red-fg: #ff4466;
|
|
70
|
-
|
|
71
|
-
--color-data-1: #6cb4ff;
|
|
72
|
-
--color-data-2: #ff7e7e;
|
|
73
|
-
--color-data-3: #d987ff;
|
|
74
|
-
--color-data-4: #ffb87a;
|
|
75
|
-
--color-data-5: #4fe6ff;
|
|
76
|
-
--color-data-6: #ffd866;
|
|
77
|
-
--color-data-7: #ff8eb8;
|
|
78
|
-
--color-data-8: #7d8eff;
|
|
79
|
-
--color-data-9: #88dd55;
|
|
80
|
-
--color-data-10: #44dddd;
|
|
81
|
-
--color-data-11: #c87fff;
|
|
82
|
-
--color-data-12: #ff5cad;
|
|
83
|
-
--color-data-13: #5fc97a;
|
|
84
|
-
--color-data-14: #e89c5b;
|
|
85
|
-
--color-data-15: #aa9cff;
|
|
86
|
-
--color-data-16: #c2db4a;
|
|
87
|
-
--color-data-17: #6fc2e5;
|
|
88
|
-
--color-data-18: #db8b6f;
|
|
89
|
-
--color-data-19: #b6f7d6;
|
|
90
|
-
--color-data-20: #ffa3d6;
|
|
91
|
-
--color-data-21: #87a6ff;
|
|
92
|
-
--color-data-22: #ffc88e;
|
|
93
|
-
--color-data-23: #c8a6e3;
|
|
94
|
-
--color-data-24: #f5e07c;
|
|
95
|
-
|
|
96
|
-
--color-focus: #00ff88;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@media (pointer: coarse) {
|
|
100
|
-
:root {
|
|
101
|
-
--font-size-xs: 12px;
|
|
102
|
-
--font-size-sm: 13px;
|
|
103
|
-
--font-size-base: 15px;
|
|
104
|
-
--font-size-lg: 17px;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
`;
|
|
108
|
-
//# sourceMappingURL=GonogoTokens.js.map
|
package/dist/GonogoTokens.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GonogoTokens.js","sourceRoot":"","sources":["../src/GonogoTokens.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2F5C,CAAC"}
|
package/dist/Grid.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
import type { SpaceToken } from "./Stack";
|
|
3
|
-
export interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
-
/**
|
|
5
|
-
* Fixed column template (e.g. `"120px 1fr 60px"`). Takes precedence over
|
|
6
|
-
* `minColWidth` when both are set. Extracted from the Scanning widget's
|
|
7
|
-
* coverage row (`grid-template-columns: 120px 1fr 60px`).
|
|
8
|
-
*/
|
|
9
|
-
cols?: string;
|
|
10
|
-
/**
|
|
11
|
-
* Auto-fill responsive columns: `repeat(auto-fill, minmax(minColWidth, 1fr))`.
|
|
12
|
-
* Ignored when `cols` is set.
|
|
13
|
-
*/
|
|
14
|
-
minColWidth?: string;
|
|
15
|
-
/** Gap between cells, snapped to the space scale. Defaults to `sm`. */
|
|
16
|
-
gap?: SpaceToken;
|
|
17
|
-
children?: ReactNode;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* CSS grid wrapper for fixed-column rows and auto-fill card layouts — the two
|
|
21
|
-
* grid shapes widgets hand-roll (a labelled data row, a responsive card
|
|
22
|
-
* gallery).
|
|
23
|
-
*/
|
|
24
|
-
export declare function Grid({ cols, minColWidth, gap, children, ...rest }: GridProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
//# sourceMappingURL=Grid.d.ts.map
|
package/dist/Grid.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,GAAU,EACV,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,SAAS,2CAMX"}
|
package/dist/Grid.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled from "styled-components";
|
|
3
|
-
/**
|
|
4
|
-
* CSS grid wrapper for fixed-column rows and auto-fill card layouts — the two
|
|
5
|
-
* grid shapes widgets hand-roll (a labelled data row, a responsive card
|
|
6
|
-
* gallery).
|
|
7
|
-
*/
|
|
8
|
-
export function Grid({ cols, minColWidth, gap = "sm", children, ...rest }) {
|
|
9
|
-
return (_jsx(Grid__Root, { "$cols": cols, "$minColWidth": minColWidth, "$gap": gap, ...rest, children: children }));
|
|
10
|
-
}
|
|
11
|
-
const Grid__Root = styled.div `
|
|
12
|
-
display: grid;
|
|
13
|
-
align-items: center;
|
|
14
|
-
gap: ${({ theme, $gap }) => theme.space[$gap]};
|
|
15
|
-
grid-template-columns: ${({ $cols, $minColWidth }) => {
|
|
16
|
-
if ($cols)
|
|
17
|
-
return $cols;
|
|
18
|
-
if ($minColWidth)
|
|
19
|
-
return `repeat(auto-fill, minmax(${$minColWidth}, 1fr))`;
|
|
20
|
-
return "1fr";
|
|
21
|
-
}};
|
|
22
|
-
`;
|
|
23
|
-
//# sourceMappingURL=Grid.js.map
|
package/dist/Grid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAoBvC;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,GAAG,GAAG,IAAI,EACV,QAAQ,EACR,GAAG,IAAI,EACG;IACV,OAAO,CACL,KAAC,UAAU,aAAQ,IAAI,kBAAgB,WAAW,UAAQ,GAAG,KAAM,IAAI,YACpE,QAAQ,GACE,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAI3B;;;SAGO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;2BACpB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;IACnD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,YAAY;QAAE,OAAO,4BAA4B,YAAY,SAAS,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;CACF,CAAC"}
|
package/dist/Inline.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
import type { SpaceToken } from "./Stack";
|
|
3
|
-
export interface InlineProps extends HTMLAttributes<HTMLSpanElement> {
|
|
4
|
-
/** Gap between children, snapped to the space scale. Defaults to `sm`. */
|
|
5
|
-
gap?: SpaceToken;
|
|
6
|
-
/**
|
|
7
|
-
* Adds `margin-left: 6px` so this cluster sits apart from a preceding
|
|
8
|
-
* sibling cluster (e.g. a badge row followed by an action-button row).
|
|
9
|
-
* Verbatim source: ScienceOfficer's `Actions` (vs. plain `Badges`).
|
|
10
|
-
*/
|
|
11
|
-
inset?: boolean;
|
|
12
|
-
children?: ReactNode;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Compact inline cluster for badges/action buttons that must not grow —
|
|
16
|
-
* `flex-shrink: 0` so it never yields space to a truncating sibling.
|
|
17
|
-
* Replaces ScienceOfficer's `Badges`/`LabBadges`/`Actions`.
|
|
18
|
-
*/
|
|
19
|
-
export declare function Inline({ gap, inset, children, ...rest }: InlineProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=Inline.d.ts.map
|
package/dist/Inline.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Inline.d.ts","sourceRoot":"","sources":["../src/Inline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,eAAe,CAAC;IAClE,0EAA0E;IAC1E,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAU,EACV,KAAa,EACb,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,WAAW,2CAMb"}
|
package/dist/Inline.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled from "styled-components";
|
|
3
|
-
/**
|
|
4
|
-
* Compact inline cluster for badges/action buttons that must not grow —
|
|
5
|
-
* `flex-shrink: 0` so it never yields space to a truncating sibling.
|
|
6
|
-
* Replaces ScienceOfficer's `Badges`/`LabBadges`/`Actions`.
|
|
7
|
-
*/
|
|
8
|
-
export function Inline({ gap = "sm", inset = false, children, ...rest }) {
|
|
9
|
-
return (_jsx(Inline__Root, { "$gap": gap, "$inset": inset, ...rest, children: children }));
|
|
10
|
-
}
|
|
11
|
-
const Inline__Root = styled.span `
|
|
12
|
-
display: inline-flex;
|
|
13
|
-
gap: ${({ theme, $gap }) => theme.space[$gap]};
|
|
14
|
-
flex-shrink: 0;
|
|
15
|
-
${({ $inset }) => $inset && `margin-left: 6px;`}
|
|
16
|
-
`;
|
|
17
|
-
//# sourceMappingURL=Inline.js.map
|
package/dist/Inline.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Inline.js","sourceRoot":"","sources":["../src/Inline.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAevC;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,EACrB,GAAG,GAAG,IAAI,EACV,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,GAAG,IAAI,EACK;IACZ,OAAO,CACL,KAAC,YAAY,YAAO,GAAG,YAAU,KAAK,KAAM,IAAI,YAC7C,QAAQ,GACI,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAuC;;SAE9D,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;;IAE3C,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,IAAI,mBAAmB;CAChD,CAAC"}
|
package/dist/Panel.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const Panel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
2
|
-
export declare const PanelTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>>> & string;
|
|
3
|
-
export declare const PanelSubtitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
4
|
-
/**
|
|
5
|
-
* Scrolling region with subtle white glow indicators at the top/bottom edges
|
|
6
|
-
* when there's scroll content in that direction. Use anywhere an internal
|
|
7
|
-
* region of a widget can overflow (e.g. lists, terminal output, file trees).
|
|
8
|
-
*
|
|
9
|
-
* Forwards its ref to the inner scroll element so consumers can imperatively
|
|
10
|
-
* scroll. Accepts standard div props on the root; pass className via
|
|
11
|
-
* `styled(ScrollArea)` to apply layout to the root.
|
|
12
|
-
*/
|
|
13
|
-
export declare const ScrollArea: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
-
//# sourceMappingURL=Panel.d.ts.map
|
package/dist/Panel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../src/Panel.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,KAAK,uVAkBjB,CAAC;AAEF,eAAO,MAAM,UAAU,uWAOtB,CAAC;AAEF,eAAO,MAAM,aAAa,uVAKzB,CAAC;AAyEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,2MAsDrB,CAAC"}
|
package/dist/Panel.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from "react";
|
|
3
|
-
import styled from "styled-components";
|
|
4
|
-
export const Panel = styled.div `
|
|
5
|
-
/* Glow extension picked up by ScrollArea — descendant glows extend by these
|
|
6
|
-
amounts so they sit flush with the panel chrome rather than the inner
|
|
7
|
-
scroll-container edge. Panel's overflow:hidden clips the overhang. */
|
|
8
|
-
--scroll-glow-pad-y: 12px;
|
|
9
|
-
--scroll-glow-pad-x: 16px;
|
|
10
|
-
|
|
11
|
-
background: var(--color-surface-panel);
|
|
12
|
-
border: 1px solid var(--color-border-subtle);
|
|
13
|
-
border-radius: 4px;
|
|
14
|
-
padding: 12px 16px;
|
|
15
|
-
width: 100%;
|
|
16
|
-
height: 100%;
|
|
17
|
-
box-sizing: border-box;
|
|
18
|
-
display: flex;
|
|
19
|
-
flex-direction: column;
|
|
20
|
-
gap: 8px;
|
|
21
|
-
overflow: hidden;
|
|
22
|
-
`;
|
|
23
|
-
export const PanelTitle = styled.h3 `
|
|
24
|
-
margin: 0;
|
|
25
|
-
font-size: var(--font-size-xs);
|
|
26
|
-
font-weight: 600;
|
|
27
|
-
letter-spacing: 0.15em;
|
|
28
|
-
text-transform: uppercase;
|
|
29
|
-
color: var(--color-text-dim);
|
|
30
|
-
`;
|
|
31
|
-
export const PanelSubtitle = styled.div `
|
|
32
|
-
font-size: 12px;
|
|
33
|
-
color: var(--color-text-muted);
|
|
34
|
-
letter-spacing: 0.05em;
|
|
35
|
-
margin-top: -4px;
|
|
36
|
-
`;
|
|
37
|
-
const ScrollAreaRoot = styled.div `
|
|
38
|
-
position: relative;
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-direction: column;
|
|
41
|
-
/* Grow to fill the remaining height of a flex-column parent (a Panel body
|
|
42
|
-
below a fixed-height header) so the inner element's own flex:1 can
|
|
43
|
-
engage overflow, instead of the outer box sizing to content and
|
|
44
|
-
spilling past the panel's overflow:hidden edge. Every real consumer
|
|
45
|
-
wrapping this in a Body styled-component re-applies exactly these two
|
|
46
|
-
rules, so they're the default here rather than something each widget
|
|
47
|
-
has to remember. */
|
|
48
|
-
flex: 1;
|
|
49
|
-
min-height: 0;
|
|
50
|
-
`;
|
|
51
|
-
/**
|
|
52
|
-
* Inner scroll element. Rendered with a stable `data-scroll-area-inner`
|
|
53
|
-
* attribute (set inline below) so consumers can target it from
|
|
54
|
-
* `styled(ScrollArea)\`& [data-scroll-area-inner] { ... }\`` to apply padding
|
|
55
|
-
* or layout (display:flex/gap) to the scrolling children.
|
|
56
|
-
*/
|
|
57
|
-
const ScrollAreaInner = styled.div `
|
|
58
|
-
flex: 1;
|
|
59
|
-
min-height: 0;
|
|
60
|
-
overflow: auto;
|
|
61
|
-
/* Hide the native scrollbar — the glow indicators communicate scroll state.
|
|
62
|
-
Trackpads/wheels still scroll; keyboard PageUp/Down/arrows still work. */
|
|
63
|
-
scrollbar-width: none;
|
|
64
|
-
-ms-overflow-style: none;
|
|
65
|
-
&::-webkit-scrollbar {
|
|
66
|
-
width: 0;
|
|
67
|
-
height: 0;
|
|
68
|
-
display: none;
|
|
69
|
-
}
|
|
70
|
-
`;
|
|
71
|
-
const ScrollOverflowGlow = styled.div `
|
|
72
|
-
position: absolute;
|
|
73
|
-
/* Extend horizontally past the scroll container so the glow sits flush with
|
|
74
|
-
the panel chrome's left/right borders. Panel's overflow:hidden clips it. */
|
|
75
|
-
left: calc(-1 * var(--scroll-glow-pad-x, 0px));
|
|
76
|
-
right: calc(-1 * var(--scroll-glow-pad-x, 0px));
|
|
77
|
-
${({ $position }) => $position === "top"
|
|
78
|
-
? "top: calc(-1 * var(--scroll-glow-pad-y, 0px));"
|
|
79
|
-
: "bottom: calc(-1 * var(--scroll-glow-pad-y, 0px));"}
|
|
80
|
-
height: calc(16px + var(--scroll-glow-pad-y, 0px));
|
|
81
|
-
pointer-events: none;
|
|
82
|
-
opacity: ${({ $visible }) => ($visible ? 1 : 0)};
|
|
83
|
-
transition: opacity 150ms ease;
|
|
84
|
-
/* Full-width linear fade anchored on the chrome edge — brightest right at
|
|
85
|
-
the scrollable boundary and tapering inward across the whole width. A
|
|
86
|
-
centred radial ellipse read as a discrete glowing blob floating over the
|
|
87
|
-
content; a full-width edge fade reads as the content itself dissolving
|
|
88
|
-
under a soft overlay at the edge, which is the intended "there's more,
|
|
89
|
-
scroll" affordance. */
|
|
90
|
-
background: linear-gradient(
|
|
91
|
-
${({ $position }) => ($position === "top" ? "to bottom" : "to top")},
|
|
92
|
-
rgba(255, 255, 255, 0.13),
|
|
93
|
-
rgba(255, 255, 255, 0)
|
|
94
|
-
);
|
|
95
|
-
z-index: 1;
|
|
96
|
-
|
|
97
|
-
@media (prefers-reduced-motion: reduce) {
|
|
98
|
-
transition: none;
|
|
99
|
-
}
|
|
100
|
-
`;
|
|
101
|
-
/**
|
|
102
|
-
* Scrolling region with subtle white glow indicators at the top/bottom edges
|
|
103
|
-
* when there's scroll content in that direction. Use anywhere an internal
|
|
104
|
-
* region of a widget can overflow (e.g. lists, terminal output, file trees).
|
|
105
|
-
*
|
|
106
|
-
* Forwards its ref to the inner scroll element so consumers can imperatively
|
|
107
|
-
* scroll. Accepts standard div props on the root; pass className via
|
|
108
|
-
* `styled(ScrollArea)` to apply layout to the root.
|
|
109
|
-
*/
|
|
110
|
-
export const ScrollArea = forwardRef(function ScrollArea({ children, ...rest }, ref) {
|
|
111
|
-
const innerRef = useRef(null);
|
|
112
|
-
const [overflow, setOverflow] = useState({ top: false, bottom: false });
|
|
113
|
-
useImperativeHandle(ref, () => innerRef.current);
|
|
114
|
-
useEffect(() => {
|
|
115
|
-
const el = innerRef.current;
|
|
116
|
-
if (!el)
|
|
117
|
-
return;
|
|
118
|
-
const update = () => {
|
|
119
|
-
const top = el.scrollTop > 1;
|
|
120
|
-
const bottom = el.scrollTop + el.clientHeight < el.scrollHeight - 1;
|
|
121
|
-
setOverflow((prev) => prev.top === top && prev.bottom === bottom ? prev : { top, bottom });
|
|
122
|
-
};
|
|
123
|
-
update();
|
|
124
|
-
el.addEventListener("scroll", update, { passive: true });
|
|
125
|
-
const ro = new ResizeObserver(update);
|
|
126
|
-
ro.observe(el);
|
|
127
|
-
for (const child of Array.from(el.children)) {
|
|
128
|
-
ro.observe(child);
|
|
129
|
-
}
|
|
130
|
-
const mo = new MutationObserver(() => {
|
|
131
|
-
for (const child of Array.from(el.children)) {
|
|
132
|
-
ro.observe(child);
|
|
133
|
-
}
|
|
134
|
-
update();
|
|
135
|
-
});
|
|
136
|
-
mo.observe(el, { childList: true });
|
|
137
|
-
return () => {
|
|
138
|
-
el.removeEventListener("scroll", update);
|
|
139
|
-
ro.disconnect();
|
|
140
|
-
mo.disconnect();
|
|
141
|
-
};
|
|
142
|
-
}, []);
|
|
143
|
-
return (_jsxs(ScrollAreaRoot, { ...rest, children: [_jsx(ScrollAreaInner, { ref: innerRef, "data-scroll-area-inner": "", children: children }), _jsx(ScrollOverflowGlow, { "$position": "top", "$visible": overflow.top }), _jsx(ScrollOverflowGlow, { "$position": "bottom", "$visible": overflow.bottom })] }));
|
|
144
|
-
});
|
|
145
|
-
//# sourceMappingURL=Panel.js.map
|
package/dist/Panel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../src/Panel.tsx"],"names":[],"mappings":"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"}
|
package/dist/ProgressBar.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes } from "react";
|
|
2
|
-
export interface ProgressBarProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3
|
-
/** Current value, 0–100. Clamped into range before rendering. */
|
|
4
|
-
value: number;
|
|
5
|
-
/** Accessible label for screen readers (e.g. "Biome coverage — Kerbin"). */
|
|
6
|
-
ariaLabel?: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Thin track+fill progress indicator. Extracted from the Scanning widget's
|
|
10
|
-
* coverage bar (`CoverageBar`/`CoverageFill`) — the same shape covers the
|
|
11
|
-
* ContractManager altitude-envelope bar. Renders as a native
|
|
12
|
-
* `role="progressbar"` so screen readers announce the percentage.
|
|
13
|
-
*/
|
|
14
|
-
export declare function ProgressBar({ value, ariaLabel, ...rest }: Readonly<ProgressBarProps>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
//# sourceMappingURL=ProgressBar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACR,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAgB5B"}
|
package/dist/ProgressBar.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import styled from "styled-components";
|
|
3
|
-
/**
|
|
4
|
-
* Thin track+fill progress indicator. Extracted from the Scanning widget's
|
|
5
|
-
* coverage bar (`CoverageBar`/`CoverageFill`) — the same shape covers the
|
|
6
|
-
* ContractManager altitude-envelope bar. Renders as a native
|
|
7
|
-
* `role="progressbar"` so screen readers announce the percentage.
|
|
8
|
-
*/
|
|
9
|
-
export function ProgressBar({ value, ariaLabel, ...rest }) {
|
|
10
|
-
const clamped = Number.isFinite(value)
|
|
11
|
-
? Math.max(0, Math.min(100, value))
|
|
12
|
-
: 0;
|
|
13
|
-
return (_jsx(ProgressBar__Track, { role: "progressbar", "aria-label": ariaLabel, "aria-valuenow": clamped, "aria-valuemin": 0, "aria-valuemax": 100, ...rest, children: _jsx(ProgressBar__Fill, { "$percent": clamped }) }));
|
|
14
|
-
}
|
|
15
|
-
const ProgressBar__Track = styled.div `
|
|
16
|
-
height: 6px;
|
|
17
|
-
background: var(--color-surface-raised);
|
|
18
|
-
border-radius: 3px;
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
`;
|
|
21
|
-
const ProgressBar__Fill = styled.div `
|
|
22
|
-
height: 100%;
|
|
23
|
-
width: ${({ $percent }) => `${$percent}%`};
|
|
24
|
-
background: var(--color-accent-fg);
|
|
25
|
-
transition: width 250ms linear;
|
|
26
|
-
|
|
27
|
-
@media (prefers-reduced-motion: reduce) {
|
|
28
|
-
transition: none;
|
|
29
|
-
}
|
|
30
|
-
`;
|
|
31
|
-
//# sourceMappingURL=ProgressBar.js.map
|
package/dist/ProgressBar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAUvC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACoB;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,CACL,KAAC,kBAAkB,IACjB,IAAI,EAAC,aAAa,gBACN,SAAS,mBACN,OAAO,mBACP,CAAC,mBACD,GAAG,KACd,IAAI,YAER,KAAC,iBAAiB,gBAAW,OAAO,GAAI,GACrB,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKpC,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAsB;;WAE/C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG;;;;;;;CAO1C,CAAC"}
|
package/dist/Readout.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export type ReadoutTone = "default" | "go" | "warning" | "alert";
|
|
2
|
-
/**
|
|
3
|
-
* Big centred readout — typical "tiny mode" hero element. Fills the remaining
|
|
4
|
-
* panel space and centres a single dominant value (e.g. ΔV, time-to-impact,
|
|
5
|
-
* warp rate). Use `$tone` to colour-code the readout for state-driven widgets.
|
|
6
|
-
*
|
|
7
|
-
* Pair with `<ReadoutCaption>` underneath for an optional sub-label.
|
|
8
|
-
*/
|
|
9
|
-
export declare const BigReadout: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
10
|
-
$tone?: ReadoutTone;
|
|
11
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
12
|
-
$tone?: ReadoutTone;
|
|
13
|
-
}, never>>> & string;
|
|
14
|
-
/**
|
|
15
|
-
* Smaller-scale variant for "small" responsive modes — same hero treatment
|
|
16
|
-
* but at a compact size. Doesn't fill — sits alongside other content.
|
|
17
|
-
*/
|
|
18
|
-
export declare const Readout: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
19
|
-
$tone?: ReadoutTone;
|
|
20
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
21
|
-
$tone?: ReadoutTone;
|
|
22
|
-
}, never>>> & string;
|
|
23
|
-
/** Muted secondary line for both readout sizes (e.g. units, mode tag). */
|
|
24
|
-
export declare const ReadoutCaption: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
25
|
-
/**
|
|
26
|
-
* Status pill — single-token badge ("NOMINAL", "GO", "ABORT"). Designed for
|
|
27
|
-
* tiny-mode widgets that boil their state down to one indicator (thermal
|
|
28
|
-
* band, ground-survey grade, gonogo state).
|
|
29
|
-
*/
|
|
30
|
-
export declare const StatusPill: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
31
|
-
$tone: ReadoutTone;
|
|
32
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$tone"> & {
|
|
33
|
-
$tone: ReadoutTone;
|
|
34
|
-
}, never>>> & string;
|
|
35
|
-
//# sourceMappingURL=Readout.d.ts.map
|
package/dist/Readout.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Readout.d.ts","sourceRoot":"","sources":["../src/Readout.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAejE;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;YAAwB,WAAW;;YAAX,WAAW;oBAczD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO;YAAwB,WAAW;;YAAX,WAAW;oBAQtD,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,cAAc,2VAM1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;WAAuB,WAAW;;WAAX,WAAW;oBAoDxD,CAAC"}
|