@ksp-gonogo/ui-kit 0.1.0 → 0.2.0-rc.12

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.
Files changed (133) hide show
  1. package/LICENSE +21 -596
  2. package/README.md +151 -0
  3. package/dist/chunk-G3PMV62Z.js +36 -0
  4. package/dist/chunk-G3PMV62Z.js.map +1 -0
  5. package/dist/chunk-PG6WD6AT.js +8611 -0
  6. package/dist/chunk-PG6WD6AT.js.map +1 -0
  7. package/dist/chunk-SHAX2WJJ.js +18 -0
  8. package/dist/chunk-SHAX2WJJ.js.map +1 -0
  9. package/dist/compat.json +3 -0
  10. package/dist/dist-JSEJWZKX.js +546 -0
  11. package/dist/dist-JSEJWZKX.js.map +1 -0
  12. package/dist/gridUnits.d.ts +34 -0
  13. package/dist/gridUnits.js +14 -0
  14. package/dist/gridUnits.js.map +1 -0
  15. package/dist/guards.d.ts +110 -0
  16. package/dist/guards.js +171 -0
  17. package/dist/guards.js.map +1 -0
  18. package/dist/index.d.ts +9349 -25
  19. package/dist/index.js +8098 -28
  20. package/dist/index.js.map +1 -1
  21. package/dist/magic-string.es-J7BYFTTJ.js +1309 -0
  22. package/dist/magic-string.es-J7BYFTTJ.js.map +1 -0
  23. package/dist/testing.d.ts +471 -0
  24. package/dist/testing.js +16747 -0
  25. package/dist/testing.js.map +1 -0
  26. package/dist/tokens.css +1063 -29
  27. package/dist/units-Cl-8ZdJc.d.ts +270 -0
  28. package/package.json +57 -15
  29. package/dist/ActionButton.d.ts +0 -18
  30. package/dist/ActionButton.d.ts.map +0 -1
  31. package/dist/ActionButton.js +0 -56
  32. package/dist/ActionButton.js.map +0 -1
  33. package/dist/Badge.d.ts +0 -15
  34. package/dist/Badge.d.ts.map +0 -1
  35. package/dist/Badge.js +0 -60
  36. package/dist/Badge.js.map +0 -1
  37. package/dist/Box.d.ts +0 -19
  38. package/dist/Box.d.ts.map +0 -1
  39. package/dist/Box.js +0 -27
  40. package/dist/Box.js.map +0 -1
  41. package/dist/Card.d.ts +0 -11
  42. package/dist/Card.d.ts.map +0 -1
  43. package/dist/Card.js +0 -13
  44. package/dist/Card.js.map +0 -1
  45. package/dist/Cluster.d.ts +0 -18
  46. package/dist/Cluster.d.ts.map +0 -1
  47. package/dist/Cluster.js +0 -24
  48. package/dist/Cluster.js.map +0 -1
  49. package/dist/EmptyState.d.ts +0 -16
  50. package/dist/EmptyState.d.ts.map +0 -1
  51. package/dist/EmptyState.js +0 -37
  52. package/dist/EmptyState.js.map +0 -1
  53. package/dist/GonogoTokens.d.ts +0 -16
  54. package/dist/GonogoTokens.d.ts.map +0 -1
  55. package/dist/GonogoTokens.js +0 -108
  56. package/dist/GonogoTokens.js.map +0 -1
  57. package/dist/Grid.d.ts +0 -25
  58. package/dist/Grid.d.ts.map +0 -1
  59. package/dist/Grid.js +0 -23
  60. package/dist/Grid.js.map +0 -1
  61. package/dist/Inline.d.ts +0 -20
  62. package/dist/Inline.d.ts.map +0 -1
  63. package/dist/Inline.js +0 -17
  64. package/dist/Inline.js.map +0 -1
  65. package/dist/Panel.d.ts +0 -14
  66. package/dist/Panel.d.ts.map +0 -1
  67. package/dist/Panel.js +0 -145
  68. package/dist/Panel.js.map +0 -1
  69. package/dist/ProgressBar.d.ts +0 -15
  70. package/dist/ProgressBar.d.ts.map +0 -1
  71. package/dist/ProgressBar.js +0 -31
  72. package/dist/ProgressBar.js.map +0 -1
  73. package/dist/Readout.d.ts +0 -35
  74. package/dist/Readout.d.ts.map +0 -1
  75. package/dist/Readout.js +0 -114
  76. package/dist/Readout.js.map +0 -1
  77. package/dist/Row.d.ts +0 -22
  78. package/dist/Row.d.ts.map +0 -1
  79. package/dist/Row.js +0 -32
  80. package/dist/Row.js.map +0 -1
  81. package/dist/Section.d.ts +0 -15
  82. package/dist/Section.d.ts.map +0 -1
  83. package/dist/Section.js +0 -21
  84. package/dist/Section.js.map +0 -1
  85. package/dist/Spinner.d.ts +0 -18
  86. package/dist/Spinner.d.ts.map +0 -1
  87. package/dist/Spinner.js +0 -22
  88. package/dist/Spinner.js.map +0 -1
  89. package/dist/Stack.d.ts +0 -15
  90. package/dist/Stack.d.ts.map +0 -1
  91. package/dist/Stack.js +0 -17
  92. package/dist/Stack.js.map +0 -1
  93. package/dist/StatusIndicator.d.ts +0 -27
  94. package/dist/StatusIndicator.d.ts.map +0 -1
  95. package/dist/StatusIndicator.js +0 -78
  96. package/dist/StatusIndicator.js.map +0 -1
  97. package/dist/Truncate.d.ts +0 -7
  98. package/dist/Truncate.d.ts.map +0 -1
  99. package/dist/Truncate.js +0 -14
  100. package/dist/Truncate.js.map +0 -1
  101. package/dist/Value.d.ts +0 -24
  102. package/dist/Value.d.ts.map +0 -1
  103. package/dist/Value.js +0 -42
  104. package/dist/Value.js.map +0 -1
  105. package/dist/WidgetHeader.d.ts +0 -16
  106. package/dist/WidgetHeader.d.ts.map +0 -1
  107. package/dist/WidgetHeader.js +0 -40
  108. package/dist/WidgetHeader.js.map +0 -1
  109. package/dist/defaultDarkTheme.d.ts +0 -16
  110. package/dist/defaultDarkTheme.d.ts.map +0 -1
  111. package/dist/defaultDarkTheme.js +0 -96
  112. package/dist/defaultDarkTheme.js.map +0 -1
  113. package/dist/format.d.ts +0 -11
  114. package/dist/format.d.ts.map +0 -1
  115. package/dist/format.js +0 -12
  116. package/dist/format.js.map +0 -1
  117. package/dist/index.d.ts.map +0 -1
  118. package/dist/science/ScienceExperimentRow.d.ts +0 -43
  119. package/dist/science/ScienceExperimentRow.d.ts.map +0 -1
  120. package/dist/science/ScienceExperimentRow.js +0 -61
  121. package/dist/science/ScienceExperimentRow.js.map +0 -1
  122. package/dist/test/axe.d.ts +0 -3
  123. package/dist/test/axe.d.ts.map +0 -1
  124. package/dist/test/axe.js +0 -5
  125. package/dist/test/axe.js.map +0 -1
  126. package/dist/test/setup.d.ts +0 -2
  127. package/dist/test/setup.d.ts.map +0 -1
  128. package/dist/test/setup.js +0 -12
  129. package/dist/test/setup.js.map +0 -1
  130. package/dist/theme.d.ts +0 -116
  131. package/dist/theme.d.ts.map +0 -1
  132. package/dist/theme.js +0 -15
  133. package/dist/theme.js.map +0 -1
package/dist/Readout.js DELETED
@@ -1,114 +0,0 @@
1
- import styled, { css } from "styled-components";
2
- const toneColor = (tone) => {
3
- switch (tone) {
4
- case "alert":
5
- return "var(--color-status-nogo-fg)";
6
- case "warning":
7
- return "var(--color-status-warning-bg)";
8
- case "go":
9
- return "var(--color-status-go-fg)";
10
- default:
11
- return "var(--color-text-primary)";
12
- }
13
- };
14
- /**
15
- * Big centred readout — typical "tiny mode" hero element. Fills the remaining
16
- * panel space and centres a single dominant value (e.g. ΔV, time-to-impact,
17
- * warp rate). Use `$tone` to colour-code the readout for state-driven widgets.
18
- *
19
- * Pair with `<ReadoutCaption>` underneath for an optional sub-label.
20
- */
21
- export const BigReadout = styled.div `
22
- flex: 1;
23
- display: flex;
24
- flex-direction: column;
25
- align-items: center;
26
- justify-content: center;
27
- gap: 4px;
28
- text-align: center;
29
- font-size: clamp(20px, 6vw, 38px);
30
- font-weight: 700;
31
- letter-spacing: 0.04em;
32
- line-height: 1.05;
33
- color: ${({ $tone }) => toneColor($tone)};
34
- min-width: 0;
35
- `;
36
- /**
37
- * Smaller-scale variant for "small" responsive modes — same hero treatment
38
- * but at a compact size. Doesn't fill — sits alongside other content.
39
- */
40
- export const Readout = styled.div `
41
- display: inline-flex;
42
- align-items: baseline;
43
- gap: 6px;
44
- font-size: 22px;
45
- font-weight: 700;
46
- letter-spacing: 0.04em;
47
- color: ${({ $tone }) => toneColor($tone)};
48
- `;
49
- /** Muted secondary line for both readout sizes (e.g. units, mode tag). */
50
- export const ReadoutCaption = styled.span `
51
- font-size: 11px;
52
- font-weight: 400;
53
- letter-spacing: 0.05em;
54
- color: var(--color-text-muted);
55
- text-transform: uppercase;
56
- `;
57
- /**
58
- * Status pill — single-token badge ("NOMINAL", "GO", "ABORT"). Designed for
59
- * tiny-mode widgets that boil their state down to one indicator (thermal
60
- * band, ground-survey grade, gonogo state).
61
- */
62
- export const StatusPill = styled.div `
63
- display: inline-flex;
64
- align-items: center;
65
- justify-content: center;
66
- padding: 6px 14px;
67
- border-radius: 999px;
68
- font-size: 12px;
69
- font-weight: 700;
70
- letter-spacing: 0.12em;
71
- text-transform: uppercase;
72
- color: ${({ $tone }) => toneColor($tone)};
73
- background: ${({ $tone }) => {
74
- switch ($tone) {
75
- case "alert":
76
- return "var(--color-status-alert-muted)";
77
- case "warning":
78
- return "var(--color-tag-dark-brown-bg)";
79
- case "go":
80
- return "var(--color-surface-raised)";
81
- default:
82
- return "var(--color-surface-raised)";
83
- }
84
- }};
85
- border: 1px solid
86
- ${({ $tone }) => {
87
- switch ($tone) {
88
- case "alert":
89
- return "var(--color-status-nogo-bg)";
90
- case "warning":
91
- return "var(--color-status-warning-bg)";
92
- case "go":
93
- return "var(--color-status-go-bg)";
94
- default:
95
- return "var(--color-border-subtle)";
96
- }
97
- }};
98
- ${({ $tone }) => $tone === "alert" &&
99
- css `
100
- @media (prefers-reduced-motion: no-preference) {
101
- animation: pill-pulse 1.4s ease-in-out infinite;
102
- }
103
- @keyframes pill-pulse {
104
- 0%,
105
- 100% {
106
- opacity: 1;
107
- }
108
- 50% {
109
- opacity: 0.7;
110
- }
111
- }
112
- `}
113
- `;
114
- //# sourceMappingURL=Readout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Readout.js","sourceRoot":"","sources":["../src/Readout.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,SAAS,GAAG,CAAC,IAA6B,EAAE,EAAE;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,6BAA6B,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,gCAAgC,CAAC;QAC1C,KAAK,IAAI;YACP,OAAO,2BAA2B,CAAC;QACrC;YACE,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAyB;;;;;;;;;;;;WAYlD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;;CAEzC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAyB;;;;;;;WAO/C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;CACzC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;;CAMxC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAwB;;;;;;;;;;WAUjD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,iCAAiC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,gCAAgC,CAAC;QAC1C,KAAK,IAAI;YACP,OAAO,6BAA6B,CAAC;QACvC;YACE,OAAO,6BAA6B,CAAC;IACzC,CAAC;AACH,CAAC;;MAEG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACd,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,6BAA6B,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,gCAAgC,CAAC;QAC1C,KAAK,IAAI;YACP,OAAO,2BAA2B,CAAC;QACrC;YACE,OAAO,4BAA4B,CAAC;IACxC,CAAC;AACH,CAAC;IACD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,KAAK,KAAK,OAAO;IACjB,GAAG,CAAA;;;;;;;;;;;;;KAaF;CACJ,CAAC"}
package/dist/Row.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import type { ElementType, HTMLAttributes, ReactNode } from "react";
2
- export interface RowProps extends HTMLAttributes<HTMLElement> {
3
- /** Rendered tag. Defaults to `li` (a `Row` typically sits in a plain `<ul>`). */
4
- as?: ElementType;
5
- children?: ReactNode;
6
- }
7
- /**
8
- * A single spaced-between list row: name on the left, badges/actions on the
9
- * right. Extracted from ScienceOfficer's `Row` (`styled.li`) — the shape
10
- * hand-rolled ten times across the built-in widgets.
11
- *
12
- * The truncating name child is exported alongside as `RowName` (also
13
- * reachable as `Row.Name`).
14
- */
15
- declare function RowBase({ as, children, ...rest }: RowProps): import("react/jsx-runtime").JSX.Element;
16
- /** Truncating name/label child for a `Row` — flexes to fill, ellipsises overflow. */
17
- export declare const RowName: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
18
- export declare const Row: typeof RowBase & {
19
- Name: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
20
- };
21
- export {};
22
- //# sourceMappingURL=Row.d.ts.map
package/dist/Row.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Row.d.ts","sourceRoot":"","sources":["../src/Row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,MAAM,WAAW,QAAS,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC3D,iFAAiF;IACjF,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,iBAAS,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,2CAMnD;AAWD,qFAAqF;AACrF,eAAO,MAAM,OAAO,2TAOnB,CAAC;AAEF,eAAO,MAAM,GAAG;;CAA4C,CAAC"}
package/dist/Row.js DELETED
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled from "styled-components";
3
- /**
4
- * A single spaced-between list row: name on the left, badges/actions on the
5
- * right. Extracted from ScienceOfficer's `Row` (`styled.li`) — the shape
6
- * hand-rolled ten times across the built-in widgets.
7
- *
8
- * The truncating name child is exported alongside as `RowName` (also
9
- * reachable as `Row.Name`).
10
- */
11
- function RowBase({ as, children, ...rest }) {
12
- return (_jsx(Row__Root, { as: as ?? "li", ...rest, children: children }));
13
- }
14
- const Row__Root = styled.li `
15
- display: flex;
16
- justify-content: space-between;
17
- align-items: center;
18
- gap: 8px;
19
- font-size: 12px;
20
- padding: 2px 0;
21
- `;
22
- /** Truncating name/label child for a `Row` — flexes to fill, ellipsises overflow. */
23
- export const RowName = styled.span `
24
- overflow: hidden;
25
- text-overflow: ellipsis;
26
- white-space: nowrap;
27
- flex: 1;
28
- min-width: 0;
29
- color: var(--color-text-primary);
30
- `;
31
- export const Row = Object.assign(RowBase, { Name: RowName });
32
- //# sourceMappingURL=Row.js.map
package/dist/Row.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Row.js","sourceRoot":"","sources":["../src/Row.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAQvC;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAY;IAClD,OAAO,CACL,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,IAAI,IAAI,KAAM,IAAI,YAChC,QAAQ,GACC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAA;;;;;;;CAO1B,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;;;CAOjC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC"}
package/dist/Section.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- export interface SectionProps extends HTMLAttributes<HTMLDivElement> {
3
- children?: ReactNode;
4
- }
5
- /**
6
- * A named group of rows within a panel — `Stack` pinned to the tightest gap.
7
- * Extracted from ScienceOfficer's `Group` (`flex-direction:column;gap:2px`).
8
- */
9
- export declare function Section({ children, ...rest }: SectionProps): import("react/jsx-runtime").JSX.Element;
10
- /**
11
- * Uppercase, tracked-out label for a `Section`. Extracted from
12
- * ScienceOfficer's `GroupLabel`.
13
- */
14
- export declare const SectionTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
15
- //# sourceMappingURL=Section.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../src/Section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvD,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,2CAM1D;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,uTAKxB,CAAC"}
package/dist/Section.js DELETED
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled from "styled-components";
3
- import { Stack } from "./Stack";
4
- /**
5
- * A named group of rows within a panel — `Stack` pinned to the tightest gap.
6
- * Extracted from ScienceOfficer's `Group` (`flex-direction:column;gap:2px`).
7
- */
8
- export function Section({ children, ...rest }) {
9
- return (_jsx(Stack, { gap: "xs", ...rest, children: children }));
10
- }
11
- /**
12
- * Uppercase, tracked-out label for a `Section`. Extracted from
13
- * ScienceOfficer's `GroupLabel`.
14
- */
15
- export const SectionTitle = styled.div `
16
- font-size: var(--font-size-xs);
17
- letter-spacing: 0.1em;
18
- text-transform: uppercase;
19
- color: var(--color-text-muted);
20
- `;
21
- //# sourceMappingURL=Section.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Section.js","sourceRoot":"","sources":["../src/Section.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAgB;IACzD,OAAO,CACL,KAAC,KAAK,IAAC,GAAG,EAAC,IAAI,KAAK,IAAI,YACrB,QAAQ,GACH,CACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKrC,CAAC"}
package/dist/Spinner.d.ts DELETED
@@ -1,18 +0,0 @@
1
- /**
2
- * Small inline pending indicator. Sized to slot next to a row label /
3
- * value without reflowing layout. Honours `prefers-reduced-motion` —
4
- * the spin animation is gated on the no-preference query so users with
5
- * vestibular sensitivity see a static ring instead.
6
- */
7
- export interface SpinnerProps {
8
- /** Outer diameter in pixels. Defaults to 12. */
9
- size?: number;
10
- /** Stroke width in pixels. Defaults to 2. */
11
- thickness?: number;
12
- /** Active arc colour. Defaults to the accent foreground. */
13
- color?: string;
14
- /** ARIA label for screen readers. */
15
- ariaLabel?: string;
16
- }
17
- export declare function Spinner({ size, thickness, color, ariaLabel, }: Readonly<SpinnerProps>): import("react/jsx-runtime").JSX.Element;
18
- //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../src/Spinner.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,IAAS,EACT,SAAa,EACb,KAAgC,EAChC,SAAqB,GACtB,EAAE,QAAQ,CAAC,YAAY,CAAC,2CAUxB"}
package/dist/Spinner.js DELETED
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled, { keyframes } from "styled-components";
3
- export function Spinner({ size = 12, thickness = 2, color = "var(--color-accent-fg)", ariaLabel = "Loading", }) {
4
- return (_jsx(SpinnerEl, { role: "status", "aria-label": ariaLabel, "$size": size, "$thickness": thickness, "$color": color }));
5
- }
6
- const spin = keyframes `
7
- to { transform: rotate(360deg); }
8
- `;
9
- const SpinnerEl = styled.span `
10
- display: inline-block;
11
- width: ${({ $size }) => `${$size}px`};
12
- height: ${({ $size }) => `${$size}px`};
13
- border-radius: 50%;
14
- border: ${({ $thickness }) => `${$thickness}px`} solid
15
- var(--color-border-subtle);
16
- border-top-color: ${({ $color }) => $color};
17
- flex-shrink: 0;
18
- @media (prefers-reduced-motion: no-preference) {
19
- animation: ${spin} 700ms linear infinite;
20
- }
21
- `;
22
- //# sourceMappingURL=Spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../src/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmBtD,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,GAAG,EAAE,EACT,SAAS,GAAG,CAAC,EACb,KAAK,GAAG,wBAAwB,EAChC,SAAS,GAAG,SAAS,GACE;IACvB,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,gBACD,SAAS,WACd,IAAI,gBACC,SAAS,YACb,KAAK,GACb,CACH,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,SAAS,CAAA;;CAErB,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAI3B;;WAES,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI;YAC1B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI;;YAE3B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI;;sBAE3B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM;;;iBAG3B,IAAI;;CAEpB,CAAC"}
package/dist/Stack.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- export type SpaceToken = "xs" | "sm" | "md" | "lg" | "xl";
3
- export interface StackProps extends HTMLAttributes<HTMLDivElement> {
4
- /** Gap between children, snapped to the space scale. Defaults to `sm`. */
5
- gap?: SpaceToken;
6
- children?: ReactNode;
7
- }
8
- /**
9
- * Vertical flex list — the most common container shape in the dashboard.
10
- * Replaces the many ad-hoc `styled.div\`flex-direction:column;gap:…\`` blocks
11
- * scattered across widgets (e.g. ScienceOfficer's `Group`/`InstrumentList`/
12
- * `LabList`).
13
- */
14
- export declare function Stack({ gap, children, ...rest }: StackProps): import("react/jsx-runtime").JSX.Element;
15
- //# sourceMappingURL=Stack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../src/Stack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1D,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,0EAA0E;IAC1E,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,GAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,2CAMlE"}
package/dist/Stack.js DELETED
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled from "styled-components";
3
- /**
4
- * Vertical flex list — the most common container shape in the dashboard.
5
- * Replaces the many ad-hoc `styled.div\`flex-direction:column;gap:…\`` blocks
6
- * scattered across widgets (e.g. ScienceOfficer's `Group`/`InstrumentList`/
7
- * `LabList`).
8
- */
9
- export function Stack({ gap = "sm", children, ...rest }) {
10
- return (_jsx(Stack__Root, { "$gap": gap, ...rest, children: children }));
11
- }
12
- const Stack__Root = styled.div `
13
- display: flex;
14
- flex-direction: column;
15
- gap: ${({ theme, $gap }) => theme.space[$gap]};
16
- `;
17
- //# sourceMappingURL=Stack.js.map
package/dist/Stack.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stack.js","sourceRoot":"","sources":["../src/Stack.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAUvC;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAc;IACjE,OAAO,CACL,KAAC,WAAW,YAAO,GAAG,KAAM,IAAI,YAC7B,QAAQ,GACG,CACf,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAsB;;;SAG3C,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;CAC9C,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- export type StatusTone = "neutral" | "info" | "go" | "warn" | "nogo";
3
- export interface StatusIndicatorProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
4
- tone: StatusTone;
5
- children: ReactNode;
6
- /**
7
- * When true, the indicator becomes a screen-reader live region.
8
- * Use for state that updates dynamically and the user benefits from
9
- * being told (connection going from probing → ok / fail). Default
10
- * false to keep it out of the accessibility tree for purely decorative
11
- * uses.
12
- */
13
- live?: boolean;
14
- }
15
- /**
16
- * Coloured dot + one-line status text. Tone maps to the same palette
17
- * as `Badge` but the layout is different: dot on the left, free-form
18
- * label on the right, optional live-region semantics. Use for
19
- * "connection status," "TURN reachability," "data source health"
20
- * surfaces — anywhere a single sentence describes a state and a glance
21
- * at the dot tells you whether to worry.
22
- *
23
- * Sister primitive: `Badge`. Use `Badge` for compact uppercase pills,
24
- * `StatusIndicator` for sentence-length state with a leading dot.
25
- */
26
- export declare function StatusIndicator({ tone, children, live, ...rest }: StatusIndicatorProps): import("react/jsx-runtime").JSX.Element;
27
- //# sourceMappingURL=StatusIndicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusIndicator.d.ts","sourceRoot":"","sources":["../src/StatusIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,QAAQ,EACR,IAAY,EACZ,GAAG,IAAI,EACR,EAAE,oBAAoB,2CAUtB"}
@@ -1,78 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import styled, { css } from "styled-components";
3
- /**
4
- * Coloured dot + one-line status text. Tone maps to the same palette
5
- * as `Badge` but the layout is different: dot on the left, free-form
6
- * label on the right, optional live-region semantics. Use for
7
- * "connection status," "TURN reachability," "data source health"
8
- * surfaces — anywhere a single sentence describes a state and a glance
9
- * at the dot tells you whether to worry.
10
- *
11
- * Sister primitive: `Badge`. Use `Badge` for compact uppercase pills,
12
- * `StatusIndicator` for sentence-length state with a leading dot.
13
- */
14
- export function StatusIndicator({ tone, children, live = false, ...rest }) {
15
- const liveAttrs = live
16
- ? { role: "status", "aria-live": "polite" }
17
- : {};
18
- return (_jsxs(StatusIndicator__Row, { "data-tone": tone, ...liveAttrs, ...rest, children: [_jsx(StatusIndicator__Dot, { "data-tone": tone, "aria-hidden": "true" }), _jsx(StatusIndicator__Text, { children: children })] }));
19
- }
20
- const TONE_BORDER = {
21
- neutral: css `
22
- border-color: var(--color-border-subtle);
23
- `,
24
- info: css `
25
- border-color: var(--color-status-info-bg);
26
- `,
27
- go: css `
28
- border-color: var(--color-status-go-bg);
29
- `,
30
- warn: css `
31
- border-color: var(--color-status-warning-bg);
32
- `,
33
- nogo: css `
34
- border-color: var(--color-status-nogo-bg);
35
- `,
36
- };
37
- const StatusIndicator__Row = styled.div `
38
- display: flex;
39
- align-items: center;
40
- gap: 8px;
41
- font-size: 11px;
42
- padding: 6px 8px;
43
- background: var(--color-surface-raised);
44
- border: 1px solid;
45
- border-radius: 3px;
46
-
47
- ${({ "data-tone": tone }) => TONE_BORDER[tone]}
48
- `;
49
- const TONE_DOT = {
50
- neutral: css `
51
- background: var(--color-text-dim);
52
- `,
53
- info: css `
54
- background: var(--color-status-info-bg);
55
- `,
56
- go: css `
57
- background: var(--color-status-go-bg);
58
- `,
59
- warn: css `
60
- background: var(--color-status-warning-bg);
61
- `,
62
- nogo: css `
63
- background: var(--color-status-nogo-bg);
64
- `,
65
- };
66
- const StatusIndicator__Dot = styled.span `
67
- width: 8px;
68
- height: 8px;
69
- border-radius: 50%;
70
- flex-shrink: 0;
71
-
72
- ${({ "data-tone": tone }) => TONE_DOT[tone]}
73
- `;
74
- const StatusIndicator__Text = styled.span `
75
- color: var(--color-text-primary);
76
- line-height: 1.4;
77
- `;
78
- //# sourceMappingURL=StatusIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusIndicator.js","sourceRoot":"","sources":["../src/StatusIndicator.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAkBhD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,GAAG,IAAI,EACc;IACrB,MAAM,SAAS,GAAG,IAAI;QACpB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,QAAiB,EAAE;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CACL,MAAC,oBAAoB,iBAAY,IAAI,KAAM,SAAS,KAAM,IAAI,aAC5D,KAAC,oBAAoB,iBAAY,IAAI,iBAAc,MAAM,GAAG,EAC5D,KAAC,qBAAqB,cAAE,QAAQ,GAAyB,IACpC,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,GAAG,CAAA;;GAEX;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;IACD,EAAE,EAAE,GAAG,CAAA;;GAEN;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;CACO,CAAC;AAEX,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAA6B;;;;;;;;;;IAUhE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,GAAG,CAAA;;GAEX;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;IACD,EAAE,EAAE,GAAG,CAAA;;GAEN;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;CACO,CAAC;AAEX,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAA6B;;;;;;IAMjE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC5C,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAA;;;CAGxC,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Single-line ellipsis truncation for a flex child. Standalone form of the
3
- * truncating behaviour baked into `RowName` — use this wherever a label
4
- * needs to truncate outside of a `Row` (grid cells, card titles).
5
- */
6
- export declare const Truncate: 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;
7
- //# sourceMappingURL=Truncate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Truncate.d.ts","sourceRoot":"","sources":["../src/Truncate.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,QAAQ,2VAMpB,CAAC"}
package/dist/Truncate.js DELETED
@@ -1,14 +0,0 @@
1
- import styled from "styled-components";
2
- /**
3
- * Single-line ellipsis truncation for a flex child. Standalone form of the
4
- * truncating behaviour baked into `RowName` — use this wherever a label
5
- * needs to truncate outside of a `Row` (grid cells, card titles).
6
- */
7
- export const Truncate = styled.span `
8
- overflow: hidden;
9
- text-overflow: ellipsis;
10
- white-space: nowrap;
11
- flex: 1;
12
- min-width: 0;
13
- `;
14
- //# sourceMappingURL=Truncate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Truncate.js","sourceRoot":"","sources":["../src/Truncate.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;;CAMlC,CAAC"}
package/dist/Value.d.ts DELETED
@@ -1,24 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- export type ValueTone = "accent" | "default" | "muted";
3
- export type ValueSize = "xs" | "sm" | "base" | "lg";
4
- export interface ValueProps extends HTMLAttributes<HTMLSpanElement> {
5
- /** Foreground colour. Defaults to `accent`. */
6
- tone?: ValueTone;
7
- /** Adds `margin-left: 2px` so the value sits apart from a preceding label. */
8
- spaced?: boolean;
9
- /**
10
- * Font size, snapped to the type scale. Omit to inherit the ambient
11
- * font-size from wherever the value is mounted (the original behaviour) —
12
- * set it explicitly for dense list/grid rows (coverage %, sensor state,
13
- * vessel meta) that need to stay off the 14px body-text size.
14
- */
15
- size?: ValueSize;
16
- children?: ReactNode;
17
- }
18
- /**
19
- * Inline numeric/data readout. `font-variant-numeric: tabular-nums` is baked
20
- * in so widgets never forget it and digits don't jitter as they update.
21
- * Extracted from ScienceOfficer's `DataReadout`.
22
- */
23
- export declare function Value({ tone, spaced, size, children, ...rest }: ValueProps): import("react/jsx-runtime").JSX.Element;
24
- //# sourceMappingURL=Value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../src/Value.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6BD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAe,EACf,MAAc,EACd,IAAI,EACJ,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,UAAU,2CAMZ"}
package/dist/Value.js DELETED
@@ -1,42 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import styled, { css } from "styled-components";
3
- const TONE_STYLES = {
4
- accent: css `
5
- color: var(--color-accent-fg);
6
- `,
7
- default: css `
8
- color: var(--color-text-primary);
9
- `,
10
- muted: css `
11
- color: var(--color-text-muted);
12
- `,
13
- };
14
- const SIZE_STYLES = {
15
- xs: css `
16
- font-size: var(--font-size-xs);
17
- `,
18
- sm: css `
19
- font-size: var(--font-size-sm);
20
- `,
21
- base: css `
22
- font-size: var(--font-size-base);
23
- `,
24
- lg: css `
25
- font-size: var(--font-size-lg);
26
- `,
27
- };
28
- /**
29
- * Inline numeric/data readout. `font-variant-numeric: tabular-nums` is baked
30
- * in so widgets never forget it and digits don't jitter as they update.
31
- * Extracted from ScienceOfficer's `DataReadout`.
32
- */
33
- export function Value({ tone = "accent", spaced = false, size, children, ...rest }) {
34
- return (_jsx(Value__Root, { "$tone": tone, "$spaced": spaced, "$size": size, ...rest, children: children }));
35
- }
36
- const Value__Root = styled.span `
37
- font-variant-numeric: tabular-nums;
38
- ${({ $tone }) => TONE_STYLES[$tone]}
39
- ${({ $size }) => $size && SIZE_STYLES[$size]}
40
- ${({ $spaced }) => $spaced && `margin-left: 2px;`}
41
- `;
42
- //# sourceMappingURL=Value.js.map
package/dist/Value.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Value.js","sourceRoot":"","sources":["../src/Value.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAoBhD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,GAAG,CAAA;;GAEV;IACD,OAAO,EAAE,GAAG,CAAA;;GAEX;IACD,KAAK,EAAE,GAAG,CAAA;;GAET;CACO,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,GAAG,CAAA;;GAEN;IACD,EAAE,EAAE,GAAG,CAAA;;GAEN;IACD,IAAI,EAAE,GAAG,CAAA;;GAER;IACD,EAAE,EAAE,GAAG,CAAA;;GAEN;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,QAAQ,EACR,GAAG,IAAI,EACI;IACX,OAAO,CACL,KAAC,WAAW,aAAQ,IAAI,aAAW,MAAM,WAAS,IAAI,KAAM,IAAI,YAC7D,QAAQ,GACG,CACf,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAI7B;;IAEE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IACjC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,mBAAmB;CAClD,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- export interface WidgetHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
3
- title?: ReactNode;
4
- actions?: ReactNode;
5
- children?: ReactNode;
6
- }
7
- /**
8
- * Standard widget header row: a title slot on the left and an actions slot on
9
- * the right, separated by a subtle bottom border.
10
- *
11
- * Either pass `title` (string / node — typically a `<PanelTitle>`-shaped
12
- * label) or pass arbitrary `children` for full control of the left side.
13
- * `actions` is an optional right-aligned slot (toggles, icon buttons, etc.).
14
- */
15
- export declare function WidgetHeader({ title, actions, children, ...rest }: WidgetHeaderProps): import("react/jsx-runtime").JSX.Element;
16
- //# sourceMappingURL=WidgetHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetHeader.d.ts","sourceRoot":"","sources":["../src/WidgetHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAUnB"}
@@ -1,40 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import styled from "styled-components";
3
- /**
4
- * Standard widget header row: a title slot on the left and an actions slot on
5
- * the right, separated by a subtle bottom border.
6
- *
7
- * Either pass `title` (string / node — typically a `<PanelTitle>`-shaped
8
- * label) or pass arbitrary `children` for full control of the left side.
9
- * `actions` is an optional right-aligned slot (toggles, icon buttons, etc.).
10
- */
11
- export function WidgetHeader({ title, actions, children, ...rest }) {
12
- const left = title ?? children;
13
- return (_jsxs(WidgetHeader__Body, { ...rest, children: [_jsx(WidgetHeader__Title, { children: left }), actions ? (_jsx(WidgetHeader__Actions, { children: actions })) : null] }));
14
- }
15
- const WidgetHeader__Body = styled.div `
16
- display: flex;
17
- align-items: center;
18
- justify-content: space-between;
19
- gap: 8px;
20
- padding: 6px 10px;
21
- border-bottom: 1px solid var(--color-border-subtle);
22
- /* Never let the header collapse: at very short widget heights the flex
23
- column would otherwise shrink this row toward zero and the body content
24
- (e.g. a chart's top axis label) would overprint the title. */
25
- flex-shrink: 0;
26
- `;
27
- const WidgetHeader__Title = styled.div `
28
- display: flex;
29
- align-items: center;
30
- gap: 6px;
31
- min-width: 0;
32
- flex: 1;
33
- `;
34
- const WidgetHeader__Actions = styled.div `
35
- display: flex;
36
- align-items: center;
37
- gap: 4px;
38
- flex-shrink: 0;
39
- `;
40
- //# sourceMappingURL=WidgetHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetHeader.js","sourceRoot":"","sources":["../src/WidgetHeader.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AASvC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACW;IAClB,MAAM,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC;IAC/B,OAAO,CACL,MAAC,kBAAkB,OAAK,IAAI,aAC1B,KAAC,mBAAmB,cAAE,IAAI,GAAuB,EAChD,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,qBAAqB,cAAE,OAAO,GAAyB,CACzD,CAAC,CAAC,CAAC,IAAI,IACW,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;CAWpC,CAAC;AAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMrC,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKvC,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { UiKitTheme } from "./theme";
2
- /**
3
- * `default-dark` — the built-in mission-control theme.
4
- *
5
- * Token values name what is *currently* in the codebase, so the migration
6
- * from raw hex constants to `theme.*` tokens is mechanical. Palette
7
- * rationalisation (consolidating near-duplicate greys, retiring unused
8
- * shades) is deliberately deferred to a later commit so a structural sweep
9
- * can be a pure refactor with no visual diff.
10
- *
11
- * Typography sizes are emitted as CSS-variable strings so the responsive
12
- * overrides in `tokens.css` (coarse-pointer bumps etc.) keep working when
13
- * consumers read from the theme instead of the raw variable.
14
- */
15
- export declare const defaultDarkTheme: UiKitTheme;
16
- //# sourceMappingURL=defaultDarkTheme.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultDarkTheme.d.ts","sourceRoot":"","sources":["../src/defaultDarkTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAiF9B,CAAC"}