dev-api-ui 0.1.7

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 (34) hide show
  1. package/README.md +36 -0
  2. package/package.json +40 -0
  3. package/ui/ThemeProvider.tsx +16 -0
  4. package/ui/components/ArticlePage.tsx +673 -0
  5. package/ui/components/AuthPage.tsx +109 -0
  6. package/ui/components/Callout.tsx +79 -0
  7. package/ui/components/Chart.tsx +100 -0
  8. package/ui/components/CodeTabs.tsx +145 -0
  9. package/ui/components/ComparePage.tsx +364 -0
  10. package/ui/components/DashboardPage.tsx +773 -0
  11. package/ui/components/DocsNav.tsx +80 -0
  12. package/ui/components/Footer.tsx +136 -0
  13. package/ui/components/HubPage.tsx +529 -0
  14. package/ui/components/Modal.tsx +412 -0
  15. package/ui/components/Nav.tsx +162 -0
  16. package/ui/components/OnThisPage.tsx +56 -0
  17. package/ui/components/ParamsTable.tsx +86 -0
  18. package/ui/components/RangeBar.tsx +68 -0
  19. package/ui/components/SeriesChart.tsx +218 -0
  20. package/ui/components/SeriesPage.tsx +461 -0
  21. package/ui/components/StatusMark.tsx +48 -0
  22. package/ui/components/publictrades/ExternalLink.tsx +37 -0
  23. package/ui/components/publictrades/FactsCard.tsx +40 -0
  24. package/ui/components/publictrades/LedgerFooter.tsx +22 -0
  25. package/ui/components/publictrades/LedgerNav.tsx +78 -0
  26. package/ui/components/publictrades/Mark.tsx +40 -0
  27. package/ui/components/publictrades/SourceBlock.tsx +91 -0
  28. package/ui/components/publictrades/Tape.tsx +164 -0
  29. package/ui/components/publictrades/ThreeStamps.tsx +47 -0
  30. package/ui/components/publictrades/types.ts +19 -0
  31. package/ui/data/series.ts +851 -0
  32. package/ui/index.ts +50 -0
  33. package/ui/publictrades.ts +16 -0
  34. package/ui/themes.css +81 -0
package/ui/index.ts ADDED
@@ -0,0 +1,50 @@
1
+ // Public surface — shared components, ThemeProvider, and types.
2
+ // See DECISIONS.md A3 and C2.
3
+
4
+ // ThemeProvider
5
+ export { default as ThemeProvider } from './ThemeProvider';
6
+
7
+ // Shared components (alphabetical)
8
+ export { default as ArticlePage } from './components/ArticlePage';
9
+ export type { ArticleKind, ArticlePageProps } from './components/ArticlePage';
10
+
11
+ export { default as AuthPage } from './components/AuthPage';
12
+
13
+ export { default as Callout } from './components/Callout';
14
+
15
+ export { default as Chart } from './components/Chart';
16
+
17
+ export { default as CodeTabs } from './components/CodeTabs';
18
+
19
+ export { default as ComparePage } from './components/ComparePage';
20
+
21
+ export { default as DashboardPage } from './components/DashboardPage';
22
+
23
+ export { default as DocsNav } from './components/DocsNav';
24
+
25
+ export { default as Footer } from './components/Footer';
26
+
27
+ export { default as HubPage } from './components/HubPage';
28
+
29
+ // Modal — named exports only (no default)
30
+ export { Modal, ModalHeader, DownloadModal, CiteModal } from './components/Modal';
31
+
32
+ export { default as Nav } from './components/Nav';
33
+ export type { NavLink, NavProps } from './components/Nav';
34
+
35
+ export { default as OnThisPage } from './components/OnThisPage';
36
+
37
+ export { default as ParamsTable } from './components/ParamsTable';
38
+
39
+ export { default as RangeBar } from './components/RangeBar';
40
+
41
+ export { default as SeriesChart } from './components/SeriesChart';
42
+
43
+ export { default as SeriesPage } from './components/SeriesPage';
44
+
45
+ export { default as StatusMark } from './components/StatusMark';
46
+
47
+ // Data seam — the adapter signature + types a consumer implements against.
48
+ // The illustrative SERIES_DATA blob stays internal (demo-only, not public API).
49
+ export { getSeriesData } from './data/series';
50
+ export type { RangeEntry, RelatedEntry, ReadingEntry, SeriesData } from './data/series';
@@ -0,0 +1,16 @@
1
+ // Publictrades-specific components — separate subpath per DECISIONS.md C2.
2
+ // These are product-specific and will migrate to the publictrades repo at launch.
3
+ // Import via 'dev-api-ui/publictrades', not 'dev-api-ui'.
4
+
5
+ export { default as ExternalLink } from './components/publictrades/ExternalLink';
6
+ export { default as FactsCard } from './components/publictrades/FactsCard';
7
+ export { default as LedgerFooter } from './components/publictrades/LedgerFooter';
8
+ export { default as LedgerNav } from './components/publictrades/LedgerNav';
9
+ export { default as Mark } from './components/publictrades/Mark';
10
+ export { default as SourceBlock } from './components/publictrades/SourceBlock';
11
+ export { default as Tape } from './components/publictrades/Tape';
12
+ export { default as ThreeStamps } from './components/publictrades/ThreeStamps';
13
+
14
+ // Types
15
+ export { C } from './components/publictrades/types';
16
+ export type { ActionVariant, TapeRow } from './components/publictrades/types';
package/ui/themes.css ADDED
@@ -0,0 +1,81 @@
1
+ /* =============================================================
2
+ DEV-API-UI — Theme token blocks
3
+ Re-skin = swap data-theme attribute on root wrapper.
4
+ Variable names are IDENTICAL across themes.
5
+ ============================================================= */
6
+
7
+ /* Fallback defaults (console values) so body vars always resolve
8
+ even when no [data-theme] ancestor wraps the element. */
9
+ :root {
10
+ --paper: #FBFBFA;
11
+ --surface: #FFFFFF;
12
+ --ink: #16181D;
13
+ --secondary: #5B6470;
14
+ --tertiary: #8A8F98;
15
+ --hairline: #E6E6E2;
16
+ --hairline-2: #D7D7D2;
17
+ --accent: #1F8A5B;
18
+ --accent-hover: #176B47;
19
+ --code-bg: #15171C;
20
+ --code-fg: #E6E8EA;
21
+ --code-dim: #6B7480;
22
+ --cyan: #5BC0EB;
23
+ --amber: #E3B341;
24
+ --purple: #C8A6FF;
25
+ --down: #C2453B;
26
+ --warn: #B26B00;
27
+ --info: #2D6CDF;
28
+ --head: var(--font-plex-mono);
29
+ --mono: var(--font-plex-mono);
30
+ --sans: var(--font-plex-sans);
31
+ }
32
+
33
+ [data-theme="console"] {
34
+ --paper: #FBFBFA;
35
+ --surface: #FFFFFF;
36
+ --ink: #16181D;
37
+ --secondary: #5B6470;
38
+ --tertiary: #8A8F98;
39
+ --hairline: #E6E6E2;
40
+ --hairline-2: #D7D7D2;
41
+ --accent: #1F8A5B;
42
+ --accent-hover: #176B47;
43
+ --code-bg: #15171C;
44
+ --code-fg: #E6E8EA;
45
+ --code-dim: #6B7480;
46
+ --cyan: #5BC0EB;
47
+ --amber: #E3B341;
48
+ --purple: #C8A6FF;
49
+ --down: #C2453B;
50
+ --warn: #B26B00;
51
+ --info: #2D6CDF;
52
+ /* typography */
53
+ --head: var(--font-plex-mono);
54
+ --mono: var(--font-plex-mono);
55
+ --sans: var(--font-plex-sans);
56
+ }
57
+
58
+ [data-theme="ledger"] {
59
+ --paper: #F7F6F2;
60
+ --surface: #FFFFFF;
61
+ --ink: #1A1815;
62
+ --secondary: #6E6A60;
63
+ --tertiary: #9B978C;
64
+ --hairline: #E7E4DC;
65
+ --hairline-2: #DBD8CF;
66
+ --accent: #1E3A5F;
67
+ --accent-hover: #16314F;
68
+ --code-bg: #15171C;
69
+ --code-fg: #E6E8EA;
70
+ --code-dim: #6B7480;
71
+ --cyan: #5BC0EB;
72
+ --amber: #E3B341;
73
+ --purple: #C8A6FF;
74
+ --down: #B23B3B;
75
+ --warn: #B26B00;
76
+ --info: #2D6CDF;
77
+ /* typography — headings Plex Sans, data in Plex Mono */
78
+ --head: var(--font-plex-sans);
79
+ --mono: var(--font-plex-mono);
80
+ --sans: var(--font-plex-sans);
81
+ }