@krizaka/charts 0.6.0 → 0.6.2

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 (31) hide show
  1. package/dist/genui.js.map +1 -1
  2. package/dist/native.js +68 -50
  3. package/dist/native.js.map +1 -1
  4. package/package.json +7 -7
  5. package/registry/examples/area-chart/native/credits-usage.dark.png +0 -0
  6. package/registry/examples/area-chart/native/credits-usage.light.png +0 -0
  7. package/registry/examples/bar-chart/native/jobs-by-status.dark.png +0 -0
  8. package/registry/examples/bar-chart/native/jobs-by-status.light.png +0 -0
  9. package/registry/examples/charts-provider/native/french-orazaka.dark.png +0 -0
  10. package/registry/examples/charts-provider/native/french-orazaka.light.png +0 -0
  11. package/registry/examples/credit-usage/native/monthly-credits.dark.png +0 -0
  12. package/registry/examples/credit-usage/native/monthly-credits.light.png +0 -0
  13. package/registry/examples/earnings-chart/native/creator-month.dark.png +0 -0
  14. package/registry/examples/earnings-chart/native/creator-month.light.png +0 -0
  15. package/registry/examples/gauge/native/credits-quota.dark.png +0 -0
  16. package/registry/examples/gauge/native/credits-quota.light.png +0 -0
  17. package/registry/examples/goal-progress/native/challenge-pot.dark.png +0 -0
  18. package/registry/examples/goal-progress/native/challenge-pot.light.png +0 -0
  19. package/registry/examples/job-throughput/native/week-of-jobs.dark.png +0 -0
  20. package/registry/examples/job-throughput/native/week-of-jobs.light.png +0 -0
  21. package/registry/examples/latency-chart/native/by-capability.dark.png +0 -0
  22. package/registry/examples/latency-chart/native/by-capability.light.png +0 -0
  23. package/registry/examples/line-chart/native/creator-earnings.dark.png +0 -0
  24. package/registry/examples/line-chart/native/creator-earnings.light.png +0 -0
  25. package/registry/examples/pie-chart/native/credit-spend.dark.png +0 -0
  26. package/registry/examples/pie-chart/native/credit-spend.light.png +0 -0
  27. package/registry/examples/price-ticker/native/auction-room.dark.png +0 -0
  28. package/registry/examples/price-ticker/native/auction-room.light.png +0 -0
  29. package/registry/examples/sparkline/native/stat-trend.dark.png +0 -0
  30. package/registry/examples/sparkline/native/stat-trend.light.png +0 -0
  31. package/registry/index.json +1 -1
package/dist/genui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/genui/catalog.tsx"],"sourcesContent":["\"use client\";\n// The data entries of `krizaka:genui/v1` (ADR-082): `KpiStat` and `ChartCard`, drawn with this package's components.\n// Merge with @krizaka/ui's base catalog: `{ ...baseGenUiCatalog, ...chartsGenUiCatalog }`. The checks are strict — a\n// property outside the list, a format outside the closed list or data that is not a list of rows refuses the message.\nimport { allowKeys, checkBinding, checkCurrency, checkEnum, checkNumber, checkText, GENUI_FORMATS, type GenUiCatalog, type GenUiComponent, type GenUiEntry, type GenUiFormat } from \"@krizaka/ui/genui\";\n\nimport { BarChart } from \"../bar/bar-chart\";\nimport { ChartCard } from \"../card/chart-card\";\nimport { KpiStat } from \"../card/kpi-stat\";\nimport type { ValueFormat } from \"../core/types\";\nimport { AreaChart, LineChart } from \"../line/line-chart\";\nimport { PieChart } from \"../pie/pie-chart\";\n\n/** The most rows a generated chart draws (a year of days). */\nexport const GENUI_CHART_ROWS = 366;\nconst KINDS = [\"line\", \"bar\", \"area\", \"pie\"] as const;\nconst first = (...problems: (string | null)[]) => problems.find((p) => p !== null) ?? null;\nconst KEY = /^[A-Za-z0-9_]{1,64}$/;\n\n/** A closed format of the spec as the charts' `ValueFormat`. */\nexport function chartFormat(format: unknown, currency: unknown): ValueFormat {\n if (format === \"money\" && typeof currency === \"string\") return { style: \"money\", currency };\n if (format === \"integer\" || format === \"compact\" || format === \"percent\") return format;\n return \"number\";\n}\n\nconst text = (value: unknown) => (typeof value === \"string\" ? value : typeof value === \"number\" ? String(value) : \"\");\nconst num = (value: unknown) => (typeof value === \"number\" && Number.isFinite(value) ? value : undefined);\n\nconst kpiStat: GenUiEntry = {\n check: (c) =>\n first(\n allowKeys(c, [\"label\", \"value\", \"previous\", \"format\", \"currency\", \"good\"]),\n checkText(c.label, \"label\", true),\n checkNumber(c.value, \"value\", true),\n checkNumber(c.previous, \"previous\", false),\n checkEnum(c.format, \"format\", GENUI_FORMATS),\n checkCurrency(c.currency, c.format === \"money\"),\n checkEnum(c.good, \"good\", [\"up\", \"down\"]),\n ),\n render: (c, ctx) => (\n <KpiStat\n label={text(ctx.resolve(c.label))}\n value={num(ctx.resolve(c.value)) ?? 0}\n previous={num(ctx.resolve(c.previous))}\n format={chartFormat(c.format as GenUiFormat | undefined, c.currency)}\n good={(c.good as \"up\" | \"down\" | undefined) ?? \"up\"}\n locale={ctx.locale}\n />\n ),\n};\n\nfunction checkSeries(value: unknown): string | null {\n if (!Array.isArray(value) || value.length === 0 || value.length > 12) return \"series is an array of 1 to 12\";\n for (const s of value) {\n if (s === null || typeof s !== \"object\" || Array.isArray(s)) return \"a series is an object\";\n const extra = Object.keys(s).find((k) => k !== \"key\" && k !== \"label\");\n if (extra) return `a series has no key \"${extra}\"`;\n const { key, label } = s as Record<string, unknown>;\n if (typeof key !== \"string\" || !KEY.test(key)) return \"a series key is 1-64 characters of [A-Za-z0-9_]\";\n if (typeof label !== \"string\" || label.length > 80) return \"a series label is a string\";\n }\n return null;\n}\n\ntype Row = Record<string, string | number | null>;\n\n/** The rows a binding points at, as flat records of strings and numbers (anything else dropped). */\nfunction rowsOf(value: unknown): Row[] {\n if (!Array.isArray(value)) return [];\n return value.slice(0, GENUI_CHART_ROWS).flatMap((r) => {\n if (r === null || typeof r !== \"object\" || Array.isArray(r)) return [];\n const row: Row = {};\n for (const [k, v] of Object.entries(r)) if (KEY.test(k)) row[k] = typeof v === \"number\" || typeof v === \"string\" ? v : null;\n return [row];\n });\n}\n\nfunction Chart({ c, rows, locale }: { c: GenUiComponent; rows: Row[]; locale: string }) {\n const series = (c.series as { key: string; label: string }[]).map((s) => ({ key: s.key, label: s.label }));\n const format = chartFormat(c.format, c.currency);\n const common = { data: rows, x: c.x as string, series, format, locale, height: 240 };\n switch (c.kind) {\n case \"bar\":\n return <BarChart {...common} />;\n case \"area\":\n return <AreaChart {...common} />;\n case \"pie\":\n return <PieChart data={rows} label={(r: Row) => text(r[c.x as string])} value={(r: Row) => num(r[series[0].key]) ?? 0} format={format} locale={locale} donut height={240} />;\n default:\n return <LineChart {...common} />;\n }\n}\n\nconst chartCard: GenUiEntry = {\n check: (c) =>\n first(\n allowKeys(c, [\"title\", \"insight\", \"kind\", \"x\", \"series\", \"data\", \"format\", \"currency\"]),\n checkText(c.title, \"title\", true),\n checkText(c.insight, \"insight\", false),\n checkEnum(c.kind, \"kind\", KINDS, true),\n typeof c.x === \"string\" && KEY.test(c.x) ? null : \"x is a column key\",\n checkSeries(c.series),\n checkBinding(c.data, \"data\"),\n checkEnum(c.format, \"format\", GENUI_FORMATS),\n checkCurrency(c.currency, c.format === \"money\"),\n ),\n render: (c, ctx) => {\n const rows = rowsOf(ctx.resolve(c.data));\n return (\n <ChartCard title={text(ctx.resolve(c.title))} insight={c.insight === undefined ? undefined : text(ctx.resolve(c.insight))}>\n {rows.length === 0 ? <p className=\"text-sm text-fg-muted\">{ctx.labels.noData}</p> : <Chart c={c} rows={rows} locale={ctx.locale} />}\n </ChartCard>\n );\n },\n};\n\n/** `KpiStat`, `ChartCard` — the data entries of the catalog `krizaka:genui/v1`. */\nexport const chartsGenUiCatalog: GenUiCatalog = { KpiStat: kpiStat, ChartCard: chartCard };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/genui/catalog.tsx"],"sourcesContent":["\"use client\";\n// The data entries of `krizaka:genui/v1` (ADR-082): `KpiStat` and `ChartCard`, drawn with this package's components.\n// Merge with @krizaka/ui's base catalog: `{ ...baseGenUiCatalog, ...chartsGenUiCatalog }`. The checks are strict — a\n// property outside the list, a format outside the closed list or data that is not a list of rows refuses the message.\nimport { allowKeys, checkBinding, checkCurrency, checkEnum, checkNumber, checkText, GENUI_FORMATS, type GenUiCatalog, type GenUiComponent, type GenUiEntry, type GenUiFormat } from \"@krizaka/ui/genui\";\n\nimport { BarChart } from \"../bar/bar-chart\";\nimport { ChartCard } from \"../card/chart-card\";\nimport { KpiStat } from \"../card/kpi-stat\";\nimport type { ValueFormat } from \"../core/types\";\nimport { AreaChart, LineChart } from \"../line/line-chart\";\nimport { PieChart } from \"../pie/pie-chart\";\n\n/** The most rows a generated chart draws (a year of days). */\n// @fixed: a safety bound of the renderer against an oversized model answer (one leap year of daily points), not a business parameter\nexport const GENUI_CHART_ROWS = 366;\nconst KINDS = [\"line\", \"bar\", \"area\", \"pie\"] as const;\nconst first = (...problems: (string | null)[]) => problems.find((p) => p !== null) ?? null;\nconst KEY = /^[A-Za-z0-9_]{1,64}$/;\n\n/** A closed format of the spec as the charts' `ValueFormat`. */\nexport function chartFormat(format: unknown, currency: unknown): ValueFormat {\n if (format === \"money\" && typeof currency === \"string\") return { style: \"money\", currency };\n if (format === \"integer\" || format === \"compact\" || format === \"percent\") return format;\n return \"number\";\n}\n\nconst text = (value: unknown) => (typeof value === \"string\" ? value : typeof value === \"number\" ? String(value) : \"\");\nconst num = (value: unknown) => (typeof value === \"number\" && Number.isFinite(value) ? value : undefined);\n\nconst kpiStat: GenUiEntry = {\n check: (c) =>\n first(\n allowKeys(c, [\"label\", \"value\", \"previous\", \"format\", \"currency\", \"good\"]),\n checkText(c.label, \"label\", true),\n checkNumber(c.value, \"value\", true),\n checkNumber(c.previous, \"previous\", false),\n checkEnum(c.format, \"format\", GENUI_FORMATS),\n checkCurrency(c.currency, c.format === \"money\"),\n checkEnum(c.good, \"good\", [\"up\", \"down\"]),\n ),\n render: (c, ctx) => (\n <KpiStat\n label={text(ctx.resolve(c.label))}\n value={num(ctx.resolve(c.value)) ?? 0}\n previous={num(ctx.resolve(c.previous))}\n format={chartFormat(c.format as GenUiFormat | undefined, c.currency)}\n good={(c.good as \"up\" | \"down\" | undefined) ?? \"up\"}\n locale={ctx.locale}\n />\n ),\n};\n\nfunction checkSeries(value: unknown): string | null {\n if (!Array.isArray(value) || value.length === 0 || value.length > 12) return \"series is an array of 1 to 12\";\n for (const s of value) {\n if (s === null || typeof s !== \"object\" || Array.isArray(s)) return \"a series is an object\";\n const extra = Object.keys(s).find((k) => k !== \"key\" && k !== \"label\");\n if (extra) return `a series has no key \"${extra}\"`;\n const { key, label } = s as Record<string, unknown>;\n if (typeof key !== \"string\" || !KEY.test(key)) return \"a series key is 1-64 characters of [A-Za-z0-9_]\";\n if (typeof label !== \"string\" || label.length > 80) return \"a series label is a string\";\n }\n return null;\n}\n\ntype Row = Record<string, string | number | null>;\n\n/** The rows a binding points at, as flat records of strings and numbers (anything else dropped). */\nfunction rowsOf(value: unknown): Row[] {\n if (!Array.isArray(value)) return [];\n return value.slice(0, GENUI_CHART_ROWS).flatMap((r) => {\n if (r === null || typeof r !== \"object\" || Array.isArray(r)) return [];\n const row: Row = {};\n for (const [k, v] of Object.entries(r)) if (KEY.test(k)) row[k] = typeof v === \"number\" || typeof v === \"string\" ? v : null;\n return [row];\n });\n}\n\nfunction Chart({ c, rows, locale }: { c: GenUiComponent; rows: Row[]; locale: string }) {\n const series = (c.series as { key: string; label: string }[]).map((s) => ({ key: s.key, label: s.label }));\n const format = chartFormat(c.format, c.currency);\n const common = { data: rows, x: c.x as string, series, format, locale, height: 240 };\n switch (c.kind) {\n case \"bar\":\n return <BarChart {...common} />;\n case \"area\":\n return <AreaChart {...common} />;\n case \"pie\":\n return <PieChart data={rows} label={(r: Row) => text(r[c.x as string])} value={(r: Row) => num(r[series[0].key]) ?? 0} format={format} locale={locale} donut height={240} />;\n default:\n return <LineChart {...common} />;\n }\n}\n\nconst chartCard: GenUiEntry = {\n check: (c) =>\n first(\n allowKeys(c, [\"title\", \"insight\", \"kind\", \"x\", \"series\", \"data\", \"format\", \"currency\"]),\n checkText(c.title, \"title\", true),\n checkText(c.insight, \"insight\", false),\n checkEnum(c.kind, \"kind\", KINDS, true),\n typeof c.x === \"string\" && KEY.test(c.x) ? null : \"x is a column key\",\n checkSeries(c.series),\n checkBinding(c.data, \"data\"),\n checkEnum(c.format, \"format\", GENUI_FORMATS),\n checkCurrency(c.currency, c.format === \"money\"),\n ),\n render: (c, ctx) => {\n const rows = rowsOf(ctx.resolve(c.data));\n return (\n <ChartCard title={text(ctx.resolve(c.title))} insight={c.insight === undefined ? undefined : text(ctx.resolve(c.insight))}>\n {rows.length === 0 ? <p className=\"text-sm text-fg-muted\">{ctx.labels.noData}</p> : <Chart c={c} rows={rows} locale={ctx.locale} />}\n </ChartCard>\n );\n },\n};\n\n/** `KpiStat`, `ChartCard` — the data entries of the catalog `krizaka:genui/v1`. */\nexport const chartsGenUiCatalog: GenUiCatalog = { KpiStat: kpiStat, ChartCard: chartCard };\n"],"mappings":"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","names":[]}
package/dist/native.js CHANGED
@@ -454,28 +454,31 @@ function strokeArcPath(cx, cy, radius, start, end) {
454
454
 
455
455
  // ../tokens/dist/native.js
456
456
  var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze({
457
- "surface0": "#0c0c0e",
458
- "surface1": "#161618",
459
- "surface2": "#1f1f23",
460
- "surface3": "#2a2a2d",
461
- "media": "#1b1b1d",
462
- "borderSubtle": "rgba(255,255,255,0.06)",
463
- "borderDefault": "rgba(255,255,255,0.1)",
464
- "borderStrong": "rgba(255,255,255,0.16)",
465
- "textPrimary": "#f5f5f5",
466
- "textSecondary": "#a0a0a7",
467
- "textMuted": "#73737d",
457
+ "surface0": "#151b18",
458
+ "surface1": "#191f1c",
459
+ "surface2": "#1c221f",
460
+ "surface3": "#262e2a",
461
+ "media": "#1e2521",
462
+ "borderSubtle": "rgba(231,240,230,0.07)",
463
+ "borderDefault": "rgba(231,240,230,0.12)",
464
+ "borderStrong": "rgba(231,240,230,0.2)",
465
+ "borderControl": "rgba(231,240,230,0.2)",
466
+ "borderHover": "rgba(231,240,230,0.2)",
467
+ "textPrimary": "#ecf0ea",
468
+ "textSecondary": "#bcc8c0",
469
+ "textMuted": "#a7b4ab",
468
470
  "textOnMedia": "#ffffff",
469
- "accent": "#196df5",
470
- "accentHover": "#0e5bd8",
471
- "accentSoft": "rgba(25,109,245,0.1)",
472
- "accentText": "#629cf8",
473
- "accent2": "#196df5",
471
+ "textTitle": "#ecf0ea",
472
+ "accent": "#3e76a8",
473
+ "accentHover": "#346793",
474
+ "accentSoft": "rgba(62,118,168,0.12)",
475
+ "accentText": "#8ebde1",
476
+ "accent2": "#3e76a8",
474
477
  "onAccent": "#ffffff",
475
- "ring": "#196df5",
476
- "brandGradientFrom": "#0e1525",
477
- "brandGradientVia": "#0e0f16",
478
- "brandGradientTo": "#0c0c0e",
478
+ "ring": "#3e76a8",
479
+ "brandGradientFrom": "#151b18",
480
+ "brandGradientVia": "#151b18",
481
+ "brandGradientTo": "#151b18",
479
482
  "success": "#10b77f",
480
483
  "successText": "#36d399",
481
484
  "successSoft": "rgba(16,183,127,0.14)",
@@ -485,41 +488,50 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
485
488
  "danger": "#ef4343",
486
489
  "dangerText": "#f87272",
487
490
  "dangerSoft": "rgba(239,67,67,0.14)",
488
- "info": "#196df5",
489
- "infoText": "#629cf8",
491
+ "info": "#3e76a8",
492
+ "infoText": "#8ebde1",
490
493
  "scrim": "rgba(0,0,0,0.6)",
491
494
  "scrimStrong": "rgba(0,0,0,0.8)",
492
495
  "overlay": "rgba(0,0,0,0.7)",
493
- "surfaceSheen": "rgba(255,255,255,0.045)",
496
+ "paperRuleMajor": "rgba(217,232,222,0.09)",
497
+ "paperRuleMinor": "rgba(217,232,222,0.045)",
498
+ "paperRuleMargin": "#e08071",
499
+ "paperTag": "#2d3932",
500
+ "paperTagEdge": "#586a5f",
501
+ "paperTagInk": "#e9eee7",
502
+ "surfaceSheen": "rgba(255,255,255,0)",
494
503
  "fillShade": "rgba(0,0,0,0.12)",
495
- "edgeLight": "rgba(255,255,255,0.07)",
504
+ "edgeLight": "rgba(255,255,255,0)",
496
505
  "edgeOnFill": "rgba(255,255,255,0.22)",
497
506
  "edgeWell": "rgba(4,4,7,0.5)",
498
- "glassBg": "rgba(29,29,32,0.88)",
507
+ "glassBg": "#191f1c",
499
508
  "glassBorder": "rgba(255,255,255,0.1)"
500
509
  }), light: /* @__PURE__ */ Object.freeze({
501
- "surface0": "#fafafa",
502
- "surface1": "#ffffff",
503
- "surface2": "#f1f1f3",
504
- "surface3": "#e4e4e7",
505
- "media": "#e9e9ec",
506
- "borderSubtle": "rgba(0,0,0,0.06)",
507
- "borderDefault": "rgba(0,0,0,0.1)",
508
- "borderStrong": "rgba(0,0,0,0.16)",
509
- "textPrimary": "#18181b",
510
- "textSecondary": "#64646d",
511
- "textMuted": "#808089",
510
+ "surface0": "#f4f6f3",
511
+ "surface1": "#fbfcfb",
512
+ "surface2": "#f0f3ef",
513
+ "surface3": "#dfe3de",
514
+ "media": "#e5e8e3",
515
+ "borderSubtle": "rgba(31,59,91,0.1)",
516
+ "borderDefault": "rgba(31,59,91,0.17)",
517
+ "borderStrong": "rgba(31,59,91,0.28)",
518
+ "borderControl": "rgba(31,59,91,0.28)",
519
+ "borderHover": "rgba(31,59,91,0.28)",
520
+ "textPrimary": "#1d3654",
521
+ "textSecondary": "#405064",
522
+ "textMuted": "#4f5b69",
512
523
  "textOnMedia": "#ffffff",
513
- "accent": "#0a64f5",
514
- "accentHover": "#0d55c9",
515
- "accentSoft": "rgba(10,100,245,0.08)",
516
- "accentText": "#0954ce",
517
- "accent2": "#0a64f5",
524
+ "textTitle": "#1d3654",
525
+ "accent": "#2a5f8d",
526
+ "accentHover": "#1f4d75",
527
+ "accentSoft": "rgba(42,95,141,0.08)",
528
+ "accentText": "#275782",
529
+ "accent2": "#2a5f8d",
518
530
  "onAccent": "#ffffff",
519
- "ring": "#0a64f5",
520
- "brandGradientFrom": "#dcebfe",
521
- "brandGradientVia": "#f3f6fc",
522
- "brandGradientTo": "#fafafa",
531
+ "ring": "#2a5f8d",
532
+ "brandGradientFrom": "#f4f6f3",
533
+ "brandGradientVia": "#f4f6f3",
534
+ "brandGradientTo": "#f4f6f3",
523
535
  "success": "#10b77f",
524
536
  "successText": "#0a714e",
525
537
  "successSoft": "rgba(16,183,127,0.1)",
@@ -529,17 +541,23 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
529
541
  "danger": "#ef4343",
530
542
  "dangerText": "#af1d1d",
531
543
  "dangerSoft": "rgba(239,67,67,0.1)",
532
- "info": "#0a64f5",
533
- "infoText": "#0954ce",
544
+ "info": "#2a5f8d",
545
+ "infoText": "#275782",
534
546
  "scrim": "rgba(0,0,0,0.6)",
535
547
  "scrimStrong": "rgba(0,0,0,0.8)",
536
548
  "overlay": "rgba(0,0,0,0.7)",
537
- "surfaceSheen": "rgba(255,255,255,0.7)",
549
+ "paperRuleMajor": "rgba(69,109,161,0.24)",
550
+ "paperRuleMinor": "rgba(69,109,161,0.1)",
551
+ "paperRuleMargin": "#a53127",
552
+ "paperTag": "#eadfc2",
553
+ "paperTagEdge": "#b4a274",
554
+ "paperTagInk": "#282620",
555
+ "surfaceSheen": "rgba(255,255,255,0)",
538
556
  "fillShade": "rgba(0,0,0,0.12)",
539
- "edgeLight": "rgba(255,255,255,0.9)",
557
+ "edgeLight": "rgba(255,255,255,0)",
540
558
  "edgeOnFill": "rgba(255,255,255,0.22)",
541
559
  "edgeWell": "rgba(48,52,80,0.08)",
542
- "glassBg": "rgba(255,255,255,0.88)",
560
+ "glassBg": "#fbfcfb",
543
561
  "glassBorder": "rgba(0,0,0,0.08)"
544
562
  }) });
545
563