@assemblyline-agents/openui 3.0.0

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 (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/dist/CORMORANT-GARAMOND-OFL.txt +93 -0
  4. package/dist/OUTFIT-OFL.txt +93 -0
  5. package/dist/artifact.d.ts +31 -0
  6. package/dist/artifact.d.ts.map +1 -0
  7. package/dist/artifact.js +79 -0
  8. package/dist/artifact.js.map +1 -0
  9. package/dist/config.d.ts +60 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +203 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/index.d.ts +10 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +10 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/library.d.ts +9 -0
  18. package/dist/library.d.ts.map +1 -0
  19. package/dist/library.js +109 -0
  20. package/dist/library.js.map +1 -0
  21. package/dist/openui-browser.js +629 -0
  22. package/dist/openui-styles.css +1 -0
  23. package/dist/render.d.ts +3 -0
  24. package/dist/render.d.ts.map +1 -0
  25. package/dist/render.js +229 -0
  26. package/dist/render.js.map +1 -0
  27. package/dist/report-library.d.ts +2 -0
  28. package/dist/report-library.d.ts.map +1 -0
  29. package/dist/report-library.js +224 -0
  30. package/dist/report-library.js.map +1 -0
  31. package/dist/responsive-stack.d.ts +35 -0
  32. package/dist/responsive-stack.d.ts.map +1 -0
  33. package/dist/responsive-stack.js +58 -0
  34. package/dist/responsive-stack.js.map +1 -0
  35. package/dist/standard-pack.d.ts +4 -0
  36. package/dist/standard-pack.d.ts.map +1 -0
  37. package/dist/standard-pack.js +10 -0
  38. package/dist/standard-pack.js.map +1 -0
  39. package/dist/tools.d.ts +33 -0
  40. package/dist/tools.d.ts.map +1 -0
  41. package/dist/tools.js +350 -0
  42. package/dist/tools.js.map +1 -0
  43. package/package.json +60 -0
  44. package/skills/openui-artifacts/SKILL.md +40 -0
@@ -0,0 +1,3 @@
1
+ import type { OpenUiRenderInput } from "./config.js";
2
+ export declare function renderOpenUiArtifact(input: OpenUiRenderInput): string;
3
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAyErE"}
package/dist/render.js ADDED
@@ -0,0 +1,229 @@
1
+ import { readFileSync } from "node:fs";
2
+ const OPENUI_BROWSER_SCRIPT = readFileSync(new URL("./openui-browser.js", import.meta.url), "utf8");
3
+ const OPENUI_STYLES = readFileSync(new URL("./openui-styles.css", import.meta.url), "utf8");
4
+ export function renderOpenUiArtifact(input) {
5
+ const brand = input.config.brand;
6
+ const initialTheme = themeVariables(brand.theme);
7
+ const themeColor = themeToken(brand.theme, "background") ?? "#ffffff";
8
+ const logo = brand.logo
9
+ ? '<img class="artifact-logo" src="' + attribute(brand.logo.dataUri) + '" alt="' + attribute(brand.logo.alt) + '">'
10
+ : '<div class="artifact-brand">' + text(brand.name) + "</div>";
11
+ const footerText = brand.footer ?? brand.legalName;
12
+ const footer = footerText ? "<footer>" + text(footerText) + "</footer>" : "";
13
+ const bootOptions = jsonForScript({
14
+ source: input.source,
15
+ theme: brand.theme
16
+ });
17
+ const bootScript = [
18
+ "(function(){",
19
+ "const root=document.getElementById('openui-root');",
20
+ "try{",
21
+ "const options=" + bootOptions + ";",
22
+ "const api=window.__AssemblyLineOpenUI;",
23
+ "if(!api){throw new Error('OpenUI browser runtime did not load.');}",
24
+ "const content=api.React.createElement(api.Renderer,{",
25
+ "response:options.source,library:api.openuiLibrary,isStreaming:false",
26
+ "});",
27
+ "function Report(){",
28
+ "api.React.useEffect(function(){",
29
+ "root.classList.remove('openui-loading');",
30
+ "root.removeAttribute('aria-busy');",
31
+ "root.removeAttribute('aria-label');",
32
+ "},[]);",
33
+ "return api.React.createElement(api.ThemeProvider,{",
34
+ "mode:'light',lightTheme:options.theme,darkTheme:options.theme",
35
+ "},content);",
36
+ "}",
37
+ "api.createRoot(root).render(api.React.createElement(Report));",
38
+ "}catch(error){",
39
+ "root.className='openui-load-failed';",
40
+ "root.removeAttribute('aria-busy');",
41
+ "root.setAttribute('aria-label','Report failed to load');",
42
+ "root.innerHTML='<div class=\"artifact-load-error\"><strong>Report unavailable</strong><span>Refresh the page to try again.</span></div>';",
43
+ "console.error(error);",
44
+ "}",
45
+ "}());"
46
+ ].join("");
47
+ return [
48
+ "<!doctype html>",
49
+ '<html lang="en" style="' + attribute(initialTheme) + '">',
50
+ "<head>",
51
+ '<meta charset="utf-8">',
52
+ '<meta name="viewport" content="width=device-width, initial-scale=1">',
53
+ '<meta name="referrer" content="no-referrer">',
54
+ '<meta name="theme-color" content="' + attribute(themeColor) + '">',
55
+ '<meta http-equiv="Content-Security-Policy" content="default-src &#39;none&#39;; script-src &#39;unsafe-inline&#39;; style-src &#39;unsafe-inline&#39;; img-src data:; font-src data:; connect-src &#39;none&#39;; media-src &#39;none&#39;; frame-src &#39;none&#39;; worker-src &#39;none&#39;; object-src &#39;none&#39;; base-uri &#39;none&#39;; form-action &#39;none&#39;">',
56
+ "<title>" + text(input.title) + "</title>",
57
+ "<style>" + styleText(OPENUI_STYLES) + styleText(shellStyles()) + "</style>",
58
+ "</head>",
59
+ "<body>",
60
+ '<main class="artifact-shell">',
61
+ '<header class="artifact-header">',
62
+ logo,
63
+ '<h1 class="artifact-title">' + text(input.title) + "</h1>",
64
+ "</header>",
65
+ '<div id="openui-root" class="openui-loading" aria-busy="true" aria-label="Loading report">',
66
+ loadingSkeleton(),
67
+ "</div>",
68
+ '<noscript><div class="artifact-load-error"><strong>JavaScript is required</strong><span>Enable JavaScript to view this report.</span></div></noscript>',
69
+ footer,
70
+ "</main>",
71
+ "<script>" + scriptText(OPENUI_BROWSER_SCRIPT) + "</script>",
72
+ "<script>" + scriptText(bootScript) + "</script>",
73
+ "</body>",
74
+ "</html>"
75
+ ].join("");
76
+ }
77
+ function shellStyles() {
78
+ return [
79
+ "html{background:var(--openui-background,#fff);max-width:100%;overflow-x:clip;overscroll-behavior-x:none;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}",
80
+ "body{margin:0;max-width:100%;overflow-x:clip;overscroll-behavior-x:none;background:var(--openui-background,#fff);color:var(--openui-text-neutral-primary,#111);font-family:var(--openui-font-body,'Outfit',sans-serif);}",
81
+ ".artifact-shell{box-sizing:border-box;max-width:100%;width:min(1200px,calc(100% - 40px));margin:0 auto;padding:40px 0 56px;--openui-font-body:'Outfit',Arial,sans-serif;--openui-font-label:'Outfit',Arial,sans-serif;--openui-font-heading:'Cormorant Garamond',Georgia,serif;--openui-text-body-xs:400 12px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-xs-heavy:600 12px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-sm:400 14px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-sm-heavy:600 14px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-default:400 16px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-default-heavy:600 16px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-lg:400 18px/1.5 'Outfit',Arial,sans-serif;--openui-text-body-lg-heavy:600 18px/1.5 'Outfit',Arial,sans-serif;--openui-text-label-xs:400 12px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-xs-heavy:600 12px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-sm:400 14px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-sm-heavy:600 14px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-default:400 16px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-default-heavy:600 16px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-lg:400 18px/1.25 'Outfit',Arial,sans-serif;--openui-text-label-lg-heavy:600 18px/1.25 'Outfit',Arial,sans-serif;--openui-text-heading-xs:600 17px/1.2 'Cormorant Garamond',Georgia,serif;--openui-text-heading-sm:600 21px/1.18 'Cormorant Garamond',Georgia,serif;--openui-text-heading-md:600 26px/1.14 'Cormorant Garamond',Georgia,serif;--openui-text-heading-lg:600 31px/1.1 'Cormorant Garamond',Georgia,serif;--openui-text-heading-xl:600 36px/1.08 'Cormorant Garamond',Georgia,serif;--openui-text-numbers-xs:400 12px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-xs-heavy:600 12px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-sm:400 14px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-sm-heavy:600 14px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-default:400 16px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-default-heavy:600 16px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-lg:400 18px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-lg-heavy:600 18px/1.5 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-heading-sm:600 18px/1.25 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-heading-md:600 24px/1.1 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-heading-lg:600 28px/1.1 var(--openui-font-numbers,'Outfit',Arial,sans-serif);--openui-text-numbers-heading-xl:600 32px/1.1 var(--openui-font-numbers,'Outfit',Arial,sans-serif);}",
82
+ ".artifact-header{border-bottom:1px solid var(--openui-border-default,#e5e7eb);margin-bottom:32px;padding-bottom:24px;}",
83
+ ".artifact-logo{display:block;max-width:240px;max-height:56px;object-fit:contain;margin-bottom:24px;}",
84
+ ".artifact-brand{color:var(--openui-text-brand,#111);font:var(--openui-text-label-md,600 12px sans-serif);letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;}",
85
+ ".artifact-title{color:var(--openui-text-brand,var(--openui-text-neutral-primary,#111));font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(36px,6vw,68px);font-weight:600;line-height:1.05;margin:0;}",
86
+ ".artifact-loading{display:grid;gap:56px;min-height:720px;}",
87
+ ".artifact-loading-summary{display:grid;gap:18px;}",
88
+ ".artifact-loading-line,.artifact-loading-block{background:var(--openui-border-default,#e5e3dc);background:color-mix(in srgb,var(--openui-text-brand,#013220) 10%,var(--openui-background,#f5f0e8));border-radius:999px;overflow:hidden;position:relative;}",
89
+ ".artifact-loading-line::after,.artifact-loading-block::after{animation:openui-skeleton-sweep 1.6s ease-in-out infinite;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--openui-foreground,#fff) 72%,transparent),transparent);content:'';inset:0;position:absolute;transform:translateX(-100%);}",
90
+ ".artifact-loading-line{height:14px;max-width:760px;width:68%;}",
91
+ ".artifact-loading-line-short{height:10px;width:44%;}",
92
+ ".artifact-loading-metrics{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));}",
93
+ ".artifact-loading-card{background:var(--openui-foreground,#fff);border:1px solid var(--openui-border-default,#e5e3dc);border-radius:14px;box-sizing:border-box;display:grid;gap:18px;min-height:170px;padding:22px 24px;}",
94
+ ".artifact-loading-card .artifact-loading-block:first-child{height:10px;width:48%;}",
95
+ ".artifact-loading-card .artifact-loading-block:nth-child(2){height:34px;width:62%;}",
96
+ ".artifact-loading-card .artifact-loading-block:last-child{align-self:end;height:10px;width:82%;}",
97
+ ".artifact-loading-panel{background:var(--openui-foreground,#fff);border:1px solid var(--openui-border-default,#e5e3dc);border-radius:16px;display:grid;gap:28px;min-height:300px;padding:26px;}",
98
+ ".artifact-loading-panel-heading{height:18px;width:min(320px,52%);}",
99
+ ".artifact-loading-bars{align-items:end;display:flex;gap:18px;height:190px;padding-top:10px;}",
100
+ ".artifact-loading-bar{border-radius:5px 5px 2px 2px;flex:1;}",
101
+ ".artifact-loading-bar:nth-child(1){height:48%;}.artifact-loading-bar:nth-child(2){height:76%;}.artifact-loading-bar:nth-child(3){height:61%;}.artifact-loading-bar:nth-child(4){height:88%;}.artifact-loading-bar:nth-child(5){height:69%;}.artifact-loading-bar:nth-child(6){height:42%;}",
102
+ ".artifact-load-error{background:var(--openui-foreground,#fff);border:1px solid var(--openui-border-accent,#9e8a5e);border-radius:14px;color:var(--openui-text-neutral-primary,#1a1a18);display:grid;font:400 15px/1.5 var(--openui-font-body,'Outfit',sans-serif);gap:6px;padding:22px 24px;}",
103
+ ".artifact-load-error strong{color:var(--openui-text-brand,#013220);font-weight:600;}",
104
+ "@keyframes openui-skeleton-sweep{to{transform:translateX(100%)}}",
105
+ "@media(prefers-reduced-motion:reduce){.artifact-loading-line::after,.artifact-loading-block::after{animation:none}}",
106
+ "#openui-root{max-width:100%;min-width:0;}",
107
+ "#openui-root>div{gap:64px!important;}",
108
+ ".assemblyline-stack{box-sizing:border-box;min-width:0;}",
109
+ ".assemblyline-stack-row{width:100%;}",
110
+ ".assemblyline-metric-card{align-self:stretch;box-sizing:border-box;display:grid;flex:1 1 0;gap:12px;grid-template-rows:auto auto 1fr;min-height:170px;min-width:0;padding:22px 24px;background:var(--openui-foreground,#fff);border:1px solid var(--openui-border-default,#e5e7eb);border-radius:14px;}",
111
+ ".assemblyline-metric-label{color:var(--openui-text-brand,#013220);font:700 12px/1.25 var(--openui-font-label,'Outfit',sans-serif);letter-spacing:.07em;text-transform:uppercase;}",
112
+ ".assemblyline-metric-value{color:var(--openui-text-brand,#013220);font:600 38px/1 var(--openui-font-numbers,var(--openui-font-body,'Outfit',sans-serif));font-variant-numeric:tabular-nums;letter-spacing:-.035em;}",
113
+ ".assemblyline-metric-note{align-self:end;color:var(--openui-text-neutral-secondary,#444);font:400 14px/1.45 var(--openui-font-body,'Outfit',sans-serif);margin:0;}",
114
+ ".openui-callout{gap:10px;padding:20px 22px;border:1px solid var(--openui-border-accent,#9e8a5e);border-radius:14px;background:color-mix(in srgb,var(--openui-foreground,#fff) 88%,var(--openui-background,#f5f0e8));}",
115
+ ".openui-callout-warning{border-color:var(--openui-border-accent,#9e8a5e);}",
116
+ ".openui-callout-success{border-color:var(--openui-text-success-primary,var(--openui-text-brand,#013220));}",
117
+ ".openui-callout-title{color:var(--openui-text-brand,#013220)!important;font:700 16px/1.3 var(--openui-font-label,'Outfit',sans-serif);}",
118
+ ".openui-callout-description{font:400 15px/1.58 var(--openui-font-body,'Outfit',sans-serif);}",
119
+ ".openui-card-card,.openui-card-sunk{border-radius:16px;}",
120
+ ".openui-table-container{border-radius:12px;overflow:auto;}",
121
+ ".openui-table-head{background:var(--openui-text-brand,#013220);border-bottom-color:var(--openui-text-brand,#013220);}",
122
+ ".openui-table-head .openui-table-head-label{color:var(--openui-foreground,#fff);font:700 13px/1.3 var(--openui-font-label,'Outfit',sans-serif);letter-spacing:.01em;}",
123
+ ".openui-table-head .openui-table-head-icon{color:var(--openui-foreground,#fff);}",
124
+ ".openui-table-cell{font:400 14px/1.45 var(--openui-font-body,'Outfit',sans-serif);}",
125
+ ".openui-table-container,.openui-scrollable-table-wrapper,.openui-scrollable-table-scroll-container{box-sizing:border-box;max-width:100%;min-width:0;}",
126
+ ".assemblyline-horizontal-bar-chart,.openui-bar-chart-container-inner,.openui-line-chart-container-inner,.openui-area-chart-container-inner,.openui-horizontal-bar-chart-container,.openui-horizontal-bar-chart-container-inner,.openui-horizontal-bar-chart-container-inner-wrapper,.openui-scatter-chart-container,.openui-scatter-chart-container-inner,.openui-scatter-chart-main-and-x-axis-container,.openui-radar-chart-container-wrapper,.openui-radar-chart-container,.openui-pie-chart-container-wrapper,.openui-pie-chart-container,.openui-radial-chart-container-wrapper,.openui-radial-chart-container,.openui-single-stacked-bar-chart-container{box-sizing:border-box;max-width:100%;min-width:0;}",
127
+ ".openui-scrollable-table-control,.openui-chart-vertical-scroll-buttons-container{display:none!important;}",
128
+ ".openui-scrollable-table-scroll-container,.openui-bar-chart-main-container,.openui-line-chart-main-container,.openui-area-chart-main-container,.openui-horizontal-bar-chart-main-container{box-sizing:border-box;max-width:100%;min-width:0;scrollbar-color:var(--openui-border-accent,#9e8a5e) transparent!important;scrollbar-width:thin!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}",
129
+ ".openui-scrollable-table-scroll-container::-webkit-scrollbar,.openui-bar-chart-main-container::-webkit-scrollbar,.openui-line-chart-main-container::-webkit-scrollbar,.openui-area-chart-main-container::-webkit-scrollbar,.openui-horizontal-bar-chart-main-container::-webkit-scrollbar{display:block!important;width:5px;height:5px;}",
130
+ ".openui-scrollable-table-scroll-container::-webkit-scrollbar-track,.openui-bar-chart-main-container::-webkit-scrollbar-track,.openui-line-chart-main-container::-webkit-scrollbar-track,.openui-area-chart-main-container::-webkit-scrollbar-track,.openui-horizontal-bar-chart-main-container::-webkit-scrollbar-track{background:transparent;}",
131
+ ".openui-scrollable-table-scroll-container::-webkit-scrollbar-thumb,.openui-bar-chart-main-container::-webkit-scrollbar-thumb,.openui-line-chart-main-container::-webkit-scrollbar-thumb,.openui-area-chart-main-container::-webkit-scrollbar-thumb,.openui-horizontal-bar-chart-main-container::-webkit-scrollbar-thumb{background:var(--openui-border-accent,#9e8a5e);border-radius:999px;}",
132
+ ".assemblyline-horizontal-bar-chart{margin:0;}",
133
+ ".assemblyline-horizontal-bar-chart .recharts-bar-rectangle line{display:none;}",
134
+ ".assemblyline-horizontal-bar-chart .recharts-bar-rectangle path{transform:scaleY(1.45);transform-box:fill-box;transform-origin:center;}",
135
+ ".assemblyline-chart-axis-label{color:var(--openui-text-neutral-secondary,#444);font:600 12px/1.3 var(--openui-font-label,'Outfit',sans-serif);letter-spacing:.02em;margin-top:8px;text-align:center;}",
136
+ ".openui-header{gap:8px;}",
137
+ ".openui-header-top-left{color:var(--openui-text-brand,#013220);font:600 25px/1.15 'Cormorant Garamond',Georgia,serif;letter-spacing:-.01em;}",
138
+ ".openui-header-bottom{font:400 15px/1.5 'Outfit',Arial,sans-serif;}",
139
+ ".assemblyline-cited-text{color:var(--openui-text-neutral-primary,#111);font:400 16px/1.55 'Outfit',Arial,sans-serif;margin:0;}",
140
+ ".assemblyline-cited-text-small{color:var(--openui-text-neutral-secondary,#444);font-size:14px;line-height:1.5;}",
141
+ ".assemblyline-source-links{display:inline-flex;gap:4px;margin-left:6px;white-space:nowrap;}",
142
+ ".assemblyline-source-ref{color:var(--openui-text-brand,#013220);font:600 12px/1.25 'Outfit',Arial,sans-serif;text-decoration-color:var(--openui-border-accent,#9e8a5e);text-decoration-thickness:1px;text-underline-offset:3px;}",
143
+ ".assemblyline-source-ref:hover{text-decoration-thickness:2px;}",
144
+ ".assemblyline-source-ref:focus-visible{border-radius:3px;outline:2px solid var(--openui-border-accent,#9e8a5e);outline-offset:3px;}",
145
+ ".assemblyline-source-ref-target{scroll-margin-top:24px;}",
146
+ "footer{border-top:1px solid var(--openui-border-default,#e5e7eb);color:var(--openui-text-neutral-tertiary,#666);font:var(--openui-text-body-sm,12px sans-serif);margin-top:40px;padding-top:18px;}",
147
+ "@media(max-width:800px){.artifact-loading-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.artifact-loading-card:nth-child(n+3){display:none}}",
148
+ "@media(max-width:640px){.artifact-shell{width:min(100% - 24px,1200px);padding-top:24px}.artifact-title{font-size:36px}#openui-root>div{gap:48px!important}.artifact-loading{gap:40px;min-height:620px}.artifact-loading-line{width:88%}.artifact-loading-line-short{width:64%}.artifact-loading-card{min-height:150px;padding:18px 16px}.artifact-loading-panel{min-height:260px;padding:20px}.artifact-loading-bars{gap:10px;height:160px}.assemblyline-stack-row{flex-wrap:wrap!important;justify-content:flex-start!important}.assemblyline-stack-row>:is(.assemblyline-metric-card,.openui-callout){flex:1 1 160px;min-width:min(100%,160px)}.openui-radar-chart-container-wrapper,.openui-pie-chart-container-wrapper,.openui-radial-chart-container-wrapper{flex-wrap:wrap}.assemblyline-metric-card{min-height:176px;padding:18px 16px}.assemblyline-metric-value{font-size:28px;letter-spacing:-.055em}.openui-callout{padding:18px}.openui-header-top-left{font-size:23px}}"
149
+ ].join("");
150
+ }
151
+ function loadingSkeleton() {
152
+ const card = [
153
+ '<div class="artifact-loading-card">',
154
+ '<div class="artifact-loading-block"></div>',
155
+ '<div class="artifact-loading-block"></div>',
156
+ '<div class="artifact-loading-block"></div>',
157
+ "</div>"
158
+ ].join("");
159
+ const bar = '<div class="artifact-loading-block artifact-loading-bar"></div>';
160
+ return [
161
+ '<div class="artifact-loading" aria-hidden="true">',
162
+ '<div class="artifact-loading-summary">',
163
+ '<div class="artifact-loading-line"></div>',
164
+ '<div class="artifact-loading-line artifact-loading-line-short"></div>',
165
+ "</div>",
166
+ '<div class="artifact-loading-metrics">',
167
+ card,
168
+ card,
169
+ card,
170
+ card,
171
+ "</div>",
172
+ '<div class="artifact-loading-panel">',
173
+ '<div class="artifact-loading-block artifact-loading-panel-heading"></div>',
174
+ '<div class="artifact-loading-bars">',
175
+ bar,
176
+ bar,
177
+ bar,
178
+ bar,
179
+ bar,
180
+ bar,
181
+ "</div>",
182
+ "</div>",
183
+ "</div>"
184
+ ].join("");
185
+ }
186
+ function themeVariables(theme) {
187
+ return Object.entries(theme).flatMap(([name, value]) => {
188
+ if (typeof value !== "string" || !safeThemeValue(value))
189
+ return [];
190
+ const variable = name.replace(/([a-z0-9])([A-Z])/gu, "$1-$2").toLowerCase();
191
+ return [`--openui-${variable}:${value}`];
192
+ }).join(";");
193
+ }
194
+ function themeToken(theme, name) {
195
+ const value = theme[name];
196
+ return typeof value === "string" && safeThemeValue(value) ? value : undefined;
197
+ }
198
+ function safeThemeValue(value) {
199
+ return !/[;{}<>\x60]/u.test(value) && !/url\s*\(|@import/iu.test(value);
200
+ }
201
+ function jsonForScript(value) {
202
+ return JSON.stringify(value)
203
+ .replace(/&/gu, "\\u0026")
204
+ .replace(/</gu, "\\u003c")
205
+ .replace(/>/gu, "\\u003e")
206
+ .replace(/\u2028/gu, "\\u2028")
207
+ .replace(/\u2029/gu, "\\u2029");
208
+ }
209
+ function scriptText(value) {
210
+ return value.replace(/<\/script/giu, "<\\/script");
211
+ }
212
+ function styleText(value) {
213
+ return value.replace(/<\/style/giu, "<\\/style");
214
+ }
215
+ function attribute(value) {
216
+ return html(value);
217
+ }
218
+ function text(value) {
219
+ return html(String(value));
220
+ }
221
+ function html(value) {
222
+ return value
223
+ .replace(/&/gu, "&amp;")
224
+ .replace(/</gu, "&lt;")
225
+ .replace(/>/gu, "&gt;")
226
+ .replace(/"/gu, "&quot;")
227
+ .replace(/'/gu, "&#39;");
228
+ }
229
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const assemblyLineOpenUiLibrary: import("@openuidev/react-lang").Library;
2
+ //# sourceMappingURL=report-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-library.d.ts","sourceRoot":"","sources":["../src/report-library.ts"],"names":[],"mappings":"AAoSA,eAAO,MAAM,yBAAyB,yCAIpC,CAAC"}
@@ -0,0 +1,224 @@
1
+ import { createLibrary, defineComponent } from "@openuidev/react-lang";
2
+ import { HorizontalBarChart as HorizontalBarChartView } from "@openuidev/react-ui";
3
+ import { openuiLibrary } from "@openuidev/react-ui/genui-lib";
4
+ import React from "react";
5
+ import { z } from "zod/v4";
6
+ import { ResponsiveStack } from "./responsive-stack.js";
7
+ const ReportSeriesSchema = z.object({
8
+ category: z.string(),
9
+ values: z.array(z.number())
10
+ });
11
+ const ReportHorizontalBarChartSchema = z.object({
12
+ labels: z.array(z.string()),
13
+ series: z.array(ReportSeriesSchema),
14
+ variant: z.enum(["grouped", "stacked"]).optional(),
15
+ xLabel: z.string().optional(),
16
+ yLabel: z.string().optional()
17
+ });
18
+ const ReportHorizontalBarChart = defineComponent({
19
+ name: "HorizontalBarChart",
20
+ props: ReportHorizontalBarChartSchema,
21
+ description: "Horizontal bars for ranked lists. Put units in the xLabel, such as EV / EBITDA (x), Revenue ($M), or Margin (%)",
22
+ component: ({ props }) => {
23
+ const figureRef = React.useRef(null);
24
+ const series = normalizeSeries(props.series);
25
+ const data = props.labels.map((category, index) => {
26
+ const row = { category };
27
+ for (const item of series)
28
+ row[item.category] = item.values[index] ?? 0;
29
+ return row;
30
+ });
31
+ const height = Math.min(680, Math.max(320, props.labels.length * 54 + 64));
32
+ const description = [props.yLabel, props.xLabel].filter(Boolean).join(" by ");
33
+ const axisUnit = inferAxisUnit(props.xLabel);
34
+ React.useEffect(() => {
35
+ if (!axisUnit || !figureRef.current)
36
+ return;
37
+ const updateTicks = () => {
38
+ const figure = figureRef.current;
39
+ const ticks = Array.from(figure.querySelectorAll(".openui-horizontal-bar-chart-x-axis-container text"));
40
+ for (const tick of ticks) {
41
+ const raw = tick.getAttribute("data-axis-value") ?? tick.textContent?.trim();
42
+ if (!raw)
43
+ continue;
44
+ tick.setAttribute("data-axis-value", raw);
45
+ const formatted = formatAxisTick(raw, axisUnit);
46
+ if (tick.textContent !== formatted)
47
+ tick.textContent = formatted;
48
+ }
49
+ };
50
+ updateTicks();
51
+ const Observer = globalThis.MutationObserver;
52
+ if (!Observer)
53
+ return;
54
+ const observer = new Observer(updateTicks);
55
+ observer.observe(figureRef.current, { childList: true, subtree: true });
56
+ return () => observer.disconnect();
57
+ }, [axisUnit]);
58
+ if (!props.labels.length || !series.length)
59
+ return null;
60
+ return React.createElement("figure", {
61
+ ref: figureRef,
62
+ className: "assemblyline-horizontal-bar-chart",
63
+ "aria-label": description || "Horizontal bar chart"
64
+ }, React.createElement(HorizontalBarChartView, {
65
+ data,
66
+ categoryKey: "category",
67
+ legend: series.length > 1,
68
+ grid: true,
69
+ radius: 2,
70
+ isAnimationActive: false,
71
+ height,
72
+ ...(props.variant ? { variant: props.variant } : {})
73
+ }), props.xLabel
74
+ ? React.createElement("figcaption", { className: "assemblyline-chart-axis-label" }, props.xLabel)
75
+ : null);
76
+ }
77
+ });
78
+ function inferAxisUnit(label) {
79
+ const match = label?.trim().match(/\(([^()]+)\)\s*$/u);
80
+ return match?.[1]?.trim() || null;
81
+ }
82
+ function formatAxisTick(raw, unit) {
83
+ if (raw.endsWith(unit) || raw.includes(`${unit} `))
84
+ return raw;
85
+ if (/^[%x]$/u.test(unit))
86
+ return `${raw}${unit}`;
87
+ const currencyScale = unit.match(/^([$€£¥])([A-Za-z]+)$/u);
88
+ if (currencyScale) {
89
+ const sign = raw.startsWith("-") ? "-" : "";
90
+ const magnitude = sign ? raw.slice(1) : raw;
91
+ return `${sign}${currencyScale[1]}${magnitude}${currencyScale[2]}`;
92
+ }
93
+ return `${raw} ${unit}`;
94
+ }
95
+ function normalizeSeries(value) {
96
+ if (!Array.isArray(value))
97
+ return [];
98
+ return value.flatMap((item) => {
99
+ if (!item || typeof item !== "object")
100
+ return [];
101
+ const candidate = item;
102
+ const props = candidate.type === "element" && candidate.props && typeof candidate.props === "object"
103
+ ? candidate.props
104
+ : candidate;
105
+ if (typeof props.category !== "string" || !Array.isArray(props.values))
106
+ return [];
107
+ const values = props.values.filter((entry) => typeof entry === "number");
108
+ return [{ category: props.category, values }];
109
+ });
110
+ }
111
+ const MetricCardSchema = z.object({
112
+ label: z.string(),
113
+ value: z.string(),
114
+ note: z.string().optional(),
115
+ sourceIds: z.array(z.string()).optional()
116
+ });
117
+ const MetricCard = defineComponent({
118
+ name: "MetricCard",
119
+ props: MetricCardSchema,
120
+ description: "Equal-height report KPI card with a prominent value, compact label, and optional supporting note",
121
+ component: ({ props }) => React.createElement("article", { className: "assemblyline-metric-card" }, React.createElement("div", { className: "assemblyline-metric-label" }, props.label), React.createElement("strong", { className: "assemblyline-metric-value" }, props.value), props.note || props.sourceIds?.length
122
+ ? React.createElement("p", { className: "assemblyline-metric-note" }, props.note, renderSourceLinks(props.sourceIds))
123
+ : React.createElement("span", { className: "assemblyline-metric-note", "aria-hidden": true }))
124
+ });
125
+ const SourceRefSchema = z.object({
126
+ id: z.string(),
127
+ url: z.string().optional()
128
+ });
129
+ const SourceRef = defineComponent({
130
+ name: "SourceRef",
131
+ props: SourceRefSchema,
132
+ description: "Linked source marker. Omit url for an inline reference; include an HTTPS url only in the source register",
133
+ component: ({ props }) => {
134
+ const label = `[${props.id.trim()}]`;
135
+ const anchorId = sourceAnchorId(props.id);
136
+ if (!props.url) {
137
+ return React.createElement("a", {
138
+ className: "assemblyline-source-ref",
139
+ href: `#${anchorId}`,
140
+ "aria-label": `Go to source ${props.id.trim()}`
141
+ }, label);
142
+ }
143
+ const url = safeHttpsUrl(props.url);
144
+ if (!url) {
145
+ return React.createElement("span", { id: anchorId, className: "assemblyline-source-ref assemblyline-source-ref-target" }, label);
146
+ }
147
+ return React.createElement("a", {
148
+ id: anchorId,
149
+ className: "assemblyline-source-ref assemblyline-source-ref-target assemblyline-source-ref-external",
150
+ href: url,
151
+ target: "_blank",
152
+ rel: "noopener noreferrer",
153
+ "aria-label": `Open source ${props.id.trim()} in a new tab`
154
+ }, label);
155
+ }
156
+ });
157
+ const CitedTextSchema = z.object({
158
+ text: z.string(),
159
+ sourceIds: z.array(z.string()),
160
+ variant: z.enum(["body", "small"]).optional()
161
+ });
162
+ const CitedText = defineComponent({
163
+ name: "CitedText",
164
+ props: CitedTextSchema,
165
+ description: "Report text followed by source markers that link to the source register",
166
+ component: ({ props }) => React.createElement("p", {
167
+ className: `assemblyline-cited-text assemblyline-cited-text-${props.variant ?? "body"}`
168
+ }, props.text, renderSourceLinks(props.sourceIds))
169
+ });
170
+ function renderSourceLinks(sourceIds) {
171
+ if (!sourceIds?.length)
172
+ return null;
173
+ return React.createElement("span", { className: "assemblyline-source-links" }, sourceIds.map((id) => React.createElement("a", {
174
+ key: id,
175
+ className: "assemblyline-source-ref",
176
+ href: `#${sourceAnchorId(id)}`,
177
+ "aria-label": `Go to source ${id.trim()}`
178
+ }, `[${id.trim()}]`)));
179
+ }
180
+ function sourceAnchorId(id) {
181
+ const normalized = id.trim().replace(/[^a-zA-Z0-9_-]+/gu, "-").replace(/^-+|-+$/gu, "");
182
+ return `source-${normalized || "reference"}`;
183
+ }
184
+ function safeHttpsUrl(value) {
185
+ try {
186
+ const url = new URL(value);
187
+ return url.protocol === "https:" ? url.href : null;
188
+ }
189
+ catch {
190
+ return null;
191
+ }
192
+ }
193
+ const components = Object.values(openuiLibrary.components).map((component) => (component.name === "Stack"
194
+ ? ResponsiveStack
195
+ : component.name === "HorizontalBarChart"
196
+ ? ReportHorizontalBarChart
197
+ : component));
198
+ const cardIndex = components.findIndex((component) => component.name === "Card");
199
+ components.splice(cardIndex + 1, 0, MetricCard, CitedText, SourceRef);
200
+ const componentGroups = openuiLibrary.componentGroups?.map((group) => {
201
+ const base = {
202
+ name: group.name,
203
+ components: group.name === "Content"
204
+ ? [...group.components.slice(0, 1), "MetricCard", "CitedText", "SourceRef", ...group.components.slice(1)]
205
+ : [...group.components]
206
+ };
207
+ if (group.name === "Content") {
208
+ return {
209
+ ...base,
210
+ notes: [
211
+ ...(group.notes ?? []),
212
+ '- Report KPI: MetricCard("Label", "13.6x", "Supporting context", ["1"]) — place peers in equal-width row Stacks.',
213
+ '- Citation: SourceRef("1") links to the source register; SourceRef("1", "https://primary-source.example") creates the register target and external source link.'
214
+ ]
215
+ };
216
+ }
217
+ return group.notes ? { ...base, notes: [...group.notes] } : base;
218
+ });
219
+ export const assemblyLineOpenUiLibrary = createLibrary({
220
+ root: openuiLibrary.root,
221
+ components,
222
+ ...(componentGroups ? { componentGroups } : {})
223
+ });
224
+ //# sourceMappingURL=report-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-library.js","sourceRoot":"","sources":["../src/report-library.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod/v4";
2
+ /** The standard OpenUI Stack with stable classes for renderer-owned responsive layout. */
3
+ export declare const ResponsiveStack: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
4
+ children: z.ZodArray<z.ZodAny>;
5
+ direction: z.ZodOptional<z.ZodEnum<{
6
+ row: "row";
7
+ column: "column";
8
+ }>>;
9
+ gap: z.ZodOptional<z.ZodEnum<{
10
+ none: "none";
11
+ xs: "xs";
12
+ s: "s";
13
+ m: "m";
14
+ l: "l";
15
+ xl: "xl";
16
+ "2xl": "2xl";
17
+ }>>;
18
+ align: z.ZodOptional<z.ZodEnum<{
19
+ center: "center";
20
+ stretch: "stretch";
21
+ baseline: "baseline";
22
+ start: "start";
23
+ end: "end";
24
+ }>>;
25
+ justify: z.ZodOptional<z.ZodEnum<{
26
+ center: "center";
27
+ start: "start";
28
+ end: "end";
29
+ between: "between";
30
+ around: "around";
31
+ evenly: "evenly";
32
+ }>>;
33
+ wrap: z.ZodOptional<z.ZodBoolean>;
34
+ }, z.core.$strip>>;
35
+ //# sourceMappingURL=responsive-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsive-stack.d.ts","sourceRoot":"","sources":["../src/responsive-stack.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAsC3B,0FAA0F;AAC1F,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0B1B,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { defineComponent } from "@openuidev/react-lang";
2
+ import React from "react";
3
+ import { z } from "zod/v4";
4
+ const GAP = {
5
+ none: "0",
6
+ xs: "var(--openui-space-xs)",
7
+ s: "var(--openui-space-s)",
8
+ m: "var(--openui-space-m)",
9
+ l: "var(--openui-space-l)",
10
+ xl: "var(--openui-space-xl)",
11
+ "2xl": "var(--openui-space-2xl)"
12
+ };
13
+ const ALIGN = {
14
+ start: "flex-start",
15
+ center: "center",
16
+ end: "flex-end",
17
+ stretch: "stretch",
18
+ baseline: "baseline"
19
+ };
20
+ const JUSTIFY = {
21
+ start: "flex-start",
22
+ center: "center",
23
+ end: "flex-end",
24
+ between: "space-between",
25
+ around: "space-around",
26
+ evenly: "space-evenly"
27
+ };
28
+ const ResponsiveStackSchema = z.object({
29
+ children: z.array(z.any()),
30
+ direction: z.enum(["row", "column"]).optional(),
31
+ gap: z.enum(["none", "xs", "s", "m", "l", "xl", "2xl"]).optional(),
32
+ align: z.enum(["start", "center", "end", "stretch", "baseline"]).optional(),
33
+ justify: z.enum(["start", "center", "end", "between", "around", "evenly"]).optional(),
34
+ wrap: z.boolean().optional()
35
+ });
36
+ /** The standard OpenUI Stack with stable classes for renderer-owned responsive layout. */
37
+ export const ResponsiveStack = defineComponent({
38
+ name: "Stack",
39
+ props: ResponsiveStackSchema,
40
+ description: 'Responsive flex container. direction: "row"|"column" (default "column"). Row stacks wrap on narrow screens. gap: "none"|"xs"|"s"|"m"|"l"|"xl"|"2xl" (default "m"). align: "start"|"center"|"end"|"stretch"|"baseline". justify: "start"|"center"|"end"|"between"|"around"|"evenly".',
41
+ component: ({ props, renderNode }) => {
42
+ const direction = props.direction ?? "column";
43
+ const gap = props.gap ?? "m";
44
+ const justify = props.wrap && props.justify === "between" ? "start" : props.justify;
45
+ return React.createElement("div", {
46
+ className: `assemblyline-stack assemblyline-stack-${direction}`,
47
+ style: {
48
+ display: "flex",
49
+ flexDirection: direction,
50
+ gap: GAP[gap],
51
+ alignItems: props.align ? ALIGN[props.align] : undefined,
52
+ justifyContent: justify ? JUSTIFY[justify] : undefined,
53
+ flexWrap: props.wrap ? "wrap" : undefined
54
+ }
55
+ }, renderNode(props.children));
56
+ }
57
+ });
58
+ //# sourceMappingURL=responsive-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsive-stack.js","sourceRoot":"","sources":["../src/responsive-stack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { OpenUiComponentPack } from "./config.js";
2
+ export declare const OPENUI_COMPONENT_NAMES: readonly string[];
3
+ export declare const openUiStandardComponentPack: OpenUiComponentPack;
4
+ //# sourceMappingURL=standard-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-pack.d.ts","sourceRoot":"","sources":["../src/standard-pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD,eAAO,MAAM,sBAAsB,mBAAmE,CAAC;AAEvG,eAAO,MAAM,2BAA2B,EAAE,mBAKxC,CAAC"}