@krizaka/charts 0.6.0 → 0.6.1

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 +62 -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,28 @@ 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
+ "textPrimary": "#ecf0ea",
466
+ "textSecondary": "#bcc8c0",
467
+ "textMuted": "#a7b4ab",
468
468
  "textOnMedia": "#ffffff",
469
- "accent": "#196df5",
470
- "accentHover": "#0e5bd8",
471
- "accentSoft": "rgba(25,109,245,0.1)",
472
- "accentText": "#629cf8",
473
- "accent2": "#196df5",
469
+ "accent": "#3e76a8",
470
+ "accentHover": "#346793",
471
+ "accentSoft": "rgba(62,118,168,0.12)",
472
+ "accentText": "#8ebde1",
473
+ "accent2": "#3e76a8",
474
474
  "onAccent": "#ffffff",
475
- "ring": "#196df5",
476
- "brandGradientFrom": "#0e1525",
477
- "brandGradientVia": "#0e0f16",
478
- "brandGradientTo": "#0c0c0e",
475
+ "ring": "#3e76a8",
476
+ "brandGradientFrom": "#151b18",
477
+ "brandGradientVia": "#151b18",
478
+ "brandGradientTo": "#151b18",
479
479
  "success": "#10b77f",
480
480
  "successText": "#36d399",
481
481
  "successSoft": "rgba(16,183,127,0.14)",
@@ -485,41 +485,47 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
485
485
  "danger": "#ef4343",
486
486
  "dangerText": "#f87272",
487
487
  "dangerSoft": "rgba(239,67,67,0.14)",
488
- "info": "#196df5",
489
- "infoText": "#629cf8",
488
+ "info": "#3e76a8",
489
+ "infoText": "#8ebde1",
490
490
  "scrim": "rgba(0,0,0,0.6)",
491
491
  "scrimStrong": "rgba(0,0,0,0.8)",
492
492
  "overlay": "rgba(0,0,0,0.7)",
493
- "surfaceSheen": "rgba(255,255,255,0.045)",
493
+ "paperRuleMajor": "rgba(217,232,222,0.09)",
494
+ "paperRuleMinor": "rgba(217,232,222,0.045)",
495
+ "paperRuleMargin": "#e08071",
496
+ "paperTag": "#2d3932",
497
+ "paperTagEdge": "#586a5f",
498
+ "paperTagInk": "#e9eee7",
499
+ "surfaceSheen": "rgba(255,255,255,0)",
494
500
  "fillShade": "rgba(0,0,0,0.12)",
495
- "edgeLight": "rgba(255,255,255,0.07)",
501
+ "edgeLight": "rgba(255,255,255,0)",
496
502
  "edgeOnFill": "rgba(255,255,255,0.22)",
497
503
  "edgeWell": "rgba(4,4,7,0.5)",
498
- "glassBg": "rgba(29,29,32,0.88)",
504
+ "glassBg": "#191f1c",
499
505
  "glassBorder": "rgba(255,255,255,0.1)"
500
506
  }), 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",
507
+ "surface0": "#f4f6f3",
508
+ "surface1": "#fbfcfb",
509
+ "surface2": "#f0f3ef",
510
+ "surface3": "#dfe3de",
511
+ "media": "#e5e8e3",
512
+ "borderSubtle": "rgba(31,59,91,0.1)",
513
+ "borderDefault": "rgba(31,59,91,0.17)",
514
+ "borderStrong": "rgba(31,59,91,0.28)",
515
+ "textPrimary": "#1d3654",
516
+ "textSecondary": "#405064",
517
+ "textMuted": "#4f5b69",
512
518
  "textOnMedia": "#ffffff",
513
- "accent": "#0a64f5",
514
- "accentHover": "#0d55c9",
515
- "accentSoft": "rgba(10,100,245,0.08)",
516
- "accentText": "#0954ce",
517
- "accent2": "#0a64f5",
519
+ "accent": "#2a5f8d",
520
+ "accentHover": "#1f4d75",
521
+ "accentSoft": "rgba(42,95,141,0.08)",
522
+ "accentText": "#275782",
523
+ "accent2": "#2a5f8d",
518
524
  "onAccent": "#ffffff",
519
- "ring": "#0a64f5",
520
- "brandGradientFrom": "#dcebfe",
521
- "brandGradientVia": "#f3f6fc",
522
- "brandGradientTo": "#fafafa",
525
+ "ring": "#2a5f8d",
526
+ "brandGradientFrom": "#f4f6f3",
527
+ "brandGradientVia": "#f4f6f3",
528
+ "brandGradientTo": "#f4f6f3",
523
529
  "success": "#10b77f",
524
530
  "successText": "#0a714e",
525
531
  "successSoft": "rgba(16,183,127,0.1)",
@@ -529,17 +535,23 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
529
535
  "danger": "#ef4343",
530
536
  "dangerText": "#af1d1d",
531
537
  "dangerSoft": "rgba(239,67,67,0.1)",
532
- "info": "#0a64f5",
533
- "infoText": "#0954ce",
538
+ "info": "#2a5f8d",
539
+ "infoText": "#275782",
534
540
  "scrim": "rgba(0,0,0,0.6)",
535
541
  "scrimStrong": "rgba(0,0,0,0.8)",
536
542
  "overlay": "rgba(0,0,0,0.7)",
537
- "surfaceSheen": "rgba(255,255,255,0.7)",
543
+ "paperRuleMajor": "rgba(69,109,161,0.24)",
544
+ "paperRuleMinor": "rgba(69,109,161,0.1)",
545
+ "paperRuleMargin": "#a53127",
546
+ "paperTag": "#eadfc2",
547
+ "paperTagEdge": "#b4a274",
548
+ "paperTagInk": "#282620",
549
+ "surfaceSheen": "rgba(255,255,255,0)",
538
550
  "fillShade": "rgba(0,0,0,0.12)",
539
- "edgeLight": "rgba(255,255,255,0.9)",
551
+ "edgeLight": "rgba(255,255,255,0)",
540
552
  "edgeOnFill": "rgba(255,255,255,0.22)",
541
553
  "edgeWell": "rgba(48,52,80,0.08)",
542
- "glassBg": "rgba(255,255,255,0.88)",
554
+ "glassBg": "#fbfcfb",
543
555
  "glassBorder": "rgba(0,0,0,0.08)"
544
556
  }) });
545
557