@dotit/core 1.0.1 → 1.1.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.
- package/cli.js +4 -1
- package/dist/document-css.d.ts +1 -1
- package/dist/document-css.js +43 -34
- package/dist/parser.js +12 -1
- package/dist/renderer.js +48 -34
- package/dist/themes/corporate.json +4 -4
- package/dist/themes/dark.json +4 -4
- package/dist/themes/editorial.json +2 -2
- package/dist/themes/minimal.json +1 -1
- package/dist/themes/print.json +3 -3
- package/dist/themes/technical.json +2 -2
- package/dist/themes/warm.json +2 -2
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -367,7 +367,10 @@ Built-in themes: ${listBuiltinThemes().join(", ")}
|
|
|
367
367
|
console.log(` Hash: ${result.hash} ✅ matches`);
|
|
368
368
|
// v2.11: Report amendment count
|
|
369
369
|
const doc = parseIntentText(source);
|
|
370
|
-
const
|
|
370
|
+
const allBlocks = doc.blocks.flatMap(function walk(b) {
|
|
371
|
+
return [b, ...(b.children || []).flatMap(walk)];
|
|
372
|
+
});
|
|
373
|
+
const amendments = allBlocks.filter((b) => b.type === "amendment");
|
|
371
374
|
if (amendments.length > 0) {
|
|
372
375
|
console.log(` Amendments: ${amendments.length}`);
|
|
373
376
|
}
|
package/dist/document-css.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const DOCUMENT_CSS = "\n/* \u2500\u2500 Base \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-document{font-family:Georgia,'Times New Roman',serif;line-height:1.7;color:#111;max-width:680px;margin:0 auto;padding:32px 24px;}\n/* \u2500\u2500 Typography \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-title{font-size:1.75rem;line-height:1.2;margin:0 0 12px;font-weight:700;letter-spacing:-0.01em;}\n.intent-summary{margin:8px 0 20px;padding:8px 0 8px 14px;border-left:2px solid #999;color:#333;font-style:italic;font-size:0.95rem;}\n.intent-section{margin:24px 0 8px;font-size:1.1rem;line-height:1.3;font-weight:600;padding-bottom:4px;border-bottom:1px solid #ccc;}\n.intent-sub{margin:16px 0 6px;font-size:1rem;line-height:1.3;font-weight:600;}\n.intent-note{margin:6px 0;color:#222;}\n.intent-prose{margin:0 0 1em;color:#222;font-size:1rem;line-height:1.8;max-width:65ch;text-wrap:pretty;}\n.intent-align-center{text-align:center;}\n.intent-align-right{text-align:right;}\n.intent-align-justify{text-align:justify;}\n/* \u2500\u2500 Divider \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-divider{margin:18px 0;text-align:center;}\n.intent-divider-line{border:none;border-top:1px solid #ccc;margin:0;}\n.intent-divider-label{display:inline-block;padding:0 10px;background:#fff;color:#888;font-size:0.78rem;position:relative;top:-9px;}\n/* \u2500\u2500 Tasks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-task{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-task-checkbox{margin-top:3px;flex-shrink:0;}\n.intent-task-text{flex:1;}\n.intent-task-meta{display:flex;gap:6px;color:#888;font-size:0.78rem;white-space:nowrap;}\n.intent-task-owner::before{content:'@ ';opacity:0.6;}\n.intent-task-due::before{content:'due ';}\n.intent-task-time::before{content:'at ';}\n.intent-task-text-done{text-decoration:line-through;color:#999;}\n/* \u2500\u2500 Ask \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-ask{display:flex;gap:10px;margin:10px 0;padding:6px 0 6px 12px;border-left:2px solid #999;align-items:baseline;}\n.intent-ask-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#555;flex-shrink:0;line-height:1.65;}\n.intent-ask-content{flex:1;color:#333;font-style:italic;}\n/* \u2500\u2500 Quote \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-quote{margin:14px 0;padding:2px 0 2px 16px;border-left:2px solid #999;font-style:italic;color:#333;}\n.intent-quote p{margin:0;line-height:1.7;}\n.intent-quote-cite{display:block;margin-top:5px;font-style:normal;color:#888;font-size:0.82rem;}\n/* \u2500\u2500 Code \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-code{margin:10px 0;padding:10px 12px;background:#f5f5f5;border:1px solid #ddd;overflow-x:auto;}\n.intent-code code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:0.85rem;color:#111;}\n/* \u2500\u2500 Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:0.9em;}\n.intent-table th,.intent-table-th{padding:6px 10px;text-align:left;font-weight:600;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;border-bottom:2px solid #333;}\n.intent-table td,.intent-table-td{padding:6px 10px;text-align:left;border-bottom:1px solid #ddd;vertical-align:top;}\n.intent-row:last-child .intent-table-td,.intent-row:last-child td{border-bottom:none;}\n/* \u2500\u2500 Image \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-image{margin:12px 0;}\n.intent-image-img{max-width:100%;height:auto;border:1px solid #ddd;}\n.intent-image-caption{margin-top:4px;color:#555;font-size:0.82rem;text-align:center;font-style:italic;}\n/* \u2500\u2500 Links / Refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-link{margin:4px 0;}\n.intent-link a{color:#111;text-decoration:underline;}\n.intent-ref{margin:4px 0;}\n.intent-ref a{color:#111;text-decoration:underline;font-style:italic;}\n.intent-unknown{margin:6px 0;padding:6px 10px;border:1px dashed #ccc;color:#888;}\n/* \u2500\u2500 Embed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-embed{margin:14px 0;}\n.intent-embed iframe,.intent-embed video,.intent-embed audio{display:block;width:100%;border:1px solid #ddd;}\n/* \u2500\u2500 Callouts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-callout{display:flex;gap:10px;margin:10px 0;padding:6px 0 6px 12px;border-left:2px solid #888;align-items:baseline;}\n.intent-callout-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;flex-shrink:0;white-space:nowrap;line-height:1.65;color:#444;}\n.intent-callout-content{flex:1;color:#222;}\n.intent-info{border-color:#888;}\n.intent-info .intent-callout-label{color:#444;}\n.intent-warning{border-color:#888;}\n.intent-warning .intent-callout-label{color:#444;}\n.intent-tip{border-color:#888;}\n.intent-tip .intent-callout-label{color:#444;}\n.intent-success{border-color:#888;}\n.intent-success .intent-callout-label{color:#444;}\n/* \u2500\u2500 Inline formatting \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-inline-link{color:#111;text-decoration:underline;}\n.intent-inline-highlight{background:#eee;padding:0 .15em;}\n.intent-inline-note{display:inline-block;padding:0 .3em;border:1px solid #ddd;color:#333;font-size:.92em;}\n.intent-inline-quote{color:#333;font-style:italic;}\n.intent-inline-date{font-weight:600;font-family:'SFMono-Regular',Consolas,monospace;}\n.intent-inline-mention{font-weight:600;}\n.intent-inline-tag{font-weight:600;}\n/* \u2500\u2500 Lists \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nul,ol{margin:6px 0 6px 20px;padding:0;}\nli{margin:3px 0;color:#222;}\n/* \u2500\u2500 v2 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-step{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-step-icon{font-size:0.85rem;flex-shrink:0;}\n.intent-step-content{flex:1;font-weight:500;}\n.intent-step-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}\n.intent-step-id{font-size:0.72rem;color:#888;font-family:monospace;}\n.intent-step-depends{font-size:0.75rem;color:#555;font-style:italic;}\n.intent-badge{font-size:0.7rem;padding:1px 6px;border:1px solid #bbb;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}\n.intent-badge-tool{border-color:#999;}\n.intent-status-pending{color:#666;}\n.intent-status-running{color:#333;animation:intent-pulse 1.5s ease-in-out infinite;}\n.intent-status-blocked{color:#666;}\n.intent-status-failed{color:#333;text-decoration:line-through;}\n.intent-status-done{color:#333;}\n.intent-status-skipped,.intent-status-cancelled{color:#999;text-decoration:line-through;}\n@keyframes intent-pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}\n.intent-decision{display:flex;gap:10px;margin:8px 0;padding:8px 12px;border:1px solid #bbb;}\n.intent-decision-diamond{width:16px;height:16px;border:2px solid #333;transform:rotate(45deg);flex-shrink:0;margin-top:4px;}\n.intent-decision-body{flex:1;}\n.intent-decision-label{font-weight:600;margin-bottom:3px;}\n.intent-decision-condition{font-size:0.85rem;color:#444;font-family:monospace;margin-bottom:3px;}\n.intent-decision-branches{display:flex;gap:14px;font-size:0.82rem;}\n.intent-decision-then{color:#333;}\n.intent-decision-else{color:#333;}\n.intent-trigger{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-trigger-icon{font-size:1rem;}\n.intent-trigger-content{flex:1;font-weight:500;}\n.intent-badge-event{border-color:#999;}\n.intent-loop{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-loop-icon{font-size:1rem;}\n.intent-loop-content{flex:1;font-weight:500;}\n.intent-loop-over,.intent-loop-do{font-size:0.8rem;color:#555;font-family:monospace;}\n.intent-checkpoint{display:flex;align-items:center;gap:8px;margin:16px 0;color:#555;font-size:0.85rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}\n.intent-checkpoint-flag{font-size:1rem;}\n.intent-checkpoint-label{flex-shrink:0;}\n.intent-checkpoint-line{flex:1;border:none;border-top:1px dashed #bbb;margin:0;}\n.intent-audit{margin:4px 0;padding:4px 8px;font-family:'SFMono-Regular',Consolas,monospace;font-size:0.8rem;color:#555;border-left:2px solid #bbb;}\n.intent-audit-prefix{color:#888;font-weight:600;}\n.intent-error-block{border-color:#999;}\n.intent-error-block .intent-callout-label{color:#333;}\n.intent-error-fallback{font-size:0.8rem;color:#555;font-style:italic;margin-left:6px;}\n.intent-error-notify{font-size:0.8rem;color:#555;margin-left:6px;}\n.intent-context-table{width:auto;border-collapse:collapse;margin:6px 0;font-size:0.85rem;}\n.intent-context-key{padding:3px 10px 3px 8px;font-weight:600;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}\n.intent-context-val{padding:3px 12px 3px 6px;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}\n.intent-context{margin:4px 0;font-size:0.85rem;color:#333;}\n.intent-progress{display:flex;align-items:center;gap:8px;margin:6px 0;}\n.intent-progress-label{font-size:0.85rem;color:#222;flex-shrink:0;}\n.intent-progress-bar{flex:1;height:6px;background:#ddd;overflow:hidden;}\n.intent-progress-fill{height:100%;background:#555;}\n.intent-progress-pct{font-size:0.78rem;color:#555;font-weight:600;min-width:36px;text-align:right;}\n.intent-file-ref{display:flex;align-items:center;gap:6px;margin:4px 0;padding:4px 8px;border:1px dashed #ccc;font-size:0.82rem;color:#555;font-family:monospace;}\n.intent-file-ref-icon{font-size:0.9rem;}\n/* \u2500\u2500 v2.1 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-emit-block{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-emit-icon{font-size:1rem;}\n.intent-emit-content{flex:1;font-weight:500;}\n.intent-emit-meta{display:flex;gap:5px;align-items:center;}\n.intent-emit-phase{font-size:0.78rem;color:#555;font-weight:600;}\n.intent-badge-level{border-color:#999;}\n.intent-result{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;flex-wrap:wrap;}\n.intent-result-success{border-color:#999;}\n.intent-result-error,.intent-result-failure{border-color:#999;}\n.intent-result-icon{font-size:1rem;flex-shrink:0;}\n.intent-result-content{flex:1;font-weight:500;}\n.intent-badge-code{border-color:#999;font-family:monospace;}\n.intent-result-data{width:100%;margin-top:3px;padding:4px 8px;font-size:0.82rem;overflow-x:auto;border-top:1px solid #ddd;}\n.intent-result-data code{font-family:'SFMono-Regular',Consolas,monospace;font-size:0.82rem;color:#333;}\n.intent-handoff{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-handoff-icon{font-size:1rem;}\n.intent-handoff-content{flex:1;font-weight:500;}\n.intent-handoff-arrow{display:flex;align-items:center;gap:5px;font-size:0.82rem;color:#444;font-weight:600;}\n.intent-handoff-agent{padding:1px 5px;border:1px solid #bbb;font-family:monospace;font-size:0.78rem;}\n.intent-wait{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;border-left:2px solid #999;}\n.intent-wait-icon{font-size:1rem;animation:intent-pulse 2s ease-in-out infinite;}\n.intent-wait-content{flex:1;font-weight:500;color:#333;}\n.intent-wait-meta{display:flex;gap:5px;align-items:center;}\n.intent-badge-timeout{border-color:#999;font-family:monospace;}\n.intent-wait-fallback{font-size:0.8rem;color:#555;font-style:italic;}\n.intent-parallel{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-parallel-icon{font-size:1rem;}\n.intent-parallel-content{flex:1;font-weight:500;}\n.intent-parallel-steps{display:flex;gap:4px;flex-wrap:wrap;}\n.intent-badge-parallel-step{border-color:#999;font-family:monospace;font-size:0.72rem;padding:1px 5px;}\n.intent-badge-join{border-color:#999;font-size:0.72rem;padding:1px 5px;}\n.intent-retry{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-retry-icon{font-size:1rem;}\n.intent-retry-content{flex:1;font-weight:500;}\n.intent-retry-meta{display:flex;gap:5px;align-items:center;}\n.intent-badge-retry-max{border-color:#999;font-size:0.72rem;}\n.intent-badge-retry-delay{border-color:#999;font-size:0.72rem;font-family:monospace;}\n.intent-badge-retry-backoff{border-color:#999;font-size:0.72rem;font-style:italic;}\n/* \u2500\u2500 v2.2 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-gate{display:flex;gap:10px;margin:8px 0;padding:10px 12px;border:2px solid #888;}\n.intent-gate-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px;}\n.intent-gate-body{flex:1;}\n.intent-gate-label{font-weight:600;margin-bottom:3px;}\n.intent-gate-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}\n.intent-badge-approver{border-color:#999;font-family:monospace;}\n.intent-gate-fallback{font-size:0.8rem;color:#555;font-style:italic;}\n.intent-call{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px dashed #999;margin:5px 0;}\n.intent-call-icon{font-size:1rem;}\n.intent-call-content{flex:1;font-weight:500;font-family:monospace;font-size:0.9rem;}\n.intent-call-meta{display:flex;gap:6px;align-items:center;}\n.intent-call-input{font-size:0.78rem;color:#555;font-family:monospace;}\n.intent-call-output{font-size:0.78rem;color:#555;font-family:monospace;}\n/* \u2500\u2500 v2.5 Document Generation Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.it-page-break{page-break-after:always;break-after:page;height:0;}\n.it-byline{margin:0 0 16px;font-size:0.9em;color:#333;}\n.it-byline-author{display:block;font-weight:bold;}\n.it-byline-meta{display:block;font-size:0.85em;color:#666;margin-top:2px;}\n.it-epigraph{font-style:italic;text-align:center;margin:20px 3em;border:none;padding:0;}\n.it-epigraph p{margin:0;}\n.it-epigraph .it-epigraph-by{display:block;text-align:right;font-size:0.9em;margin-top:4px;font-style:normal;color:#666;}\n.it-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:3px;margin-bottom:10px;}\n.it-dedication{font-style:italic;text-align:center;margin:3em auto;}\n.it-toc{margin:20px 0;}\n.it-toc-title{font-size:1.1rem;font-weight:600;margin-bottom:8px;border:none;}\n.it-toc ol{list-style:none;padding:0;margin:0;}\n.it-toc li{margin:3px 0;}\n.it-toc li a{color:#111;text-decoration:none;border-bottom:1px dotted #bbb;}\n.it-toc li a:hover{border-bottom-style:solid;}\n.it-toc .it-toc-sub{padding-left:20px;font-size:0.92em;}\n.it-footnotes{border-top:1px solid #ccc;margin-top:24px;padding-top:8px;font-size:0.85em;color:#444;}\n.it-footnotes ol{padding-left:1.5em;margin:0;}\n.it-footnotes li{margin:3px 0;}\nsup.it-fn-ref{font-size:0.7em;vertical-align:super;}\nsup.it-fn-ref a{color:#111;text-decoration:none;border-bottom:1px solid #999;}\n/* \u2500\u2500 v2.8 Document Trust \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.it-approval{display:flex;gap:10px;margin:10px 0;padding:10px 14px;border:1px solid #4caf50;background:#f8fdf8;}\n.it-approval__icon{font-size:1.2rem;color:#4caf50;flex-shrink:0;}\n.it-approval__body{display:flex;flex-direction:column;gap:2px;}\n.it-approval__label{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#4caf50;}\n.it-approval__who{font-size:0.9rem;color:#222;}\n.it-approval__date{font-size:0.8rem;color:#666;}\n.it-signature{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0;padding:10px 14px;border:1px solid #daa520;background:#fffdf5;}\n.it-signature--valid{border-color:#4caf50;background:#f8fdf8;}\n.it-signature--invalid{border-color:#c62828;background:#fdf5f5;}\n.it-signature__name{font-weight:600;font-size:0.95rem;color:#111;}\n.it-signature__role{font-size:0.85rem;color:#555;}\n.it-signature__date{font-size:0.8rem;color:#666;}\n.it-signature__status{font-size:0.8rem;font-weight:600;margin-left:auto;}\n.it-sealed-banner{display:flex;gap:10px;align-items:center;margin:16px 0;padding:12px 16px;border:2px solid #c62828;background:#fdf5f5;font-weight:600;}\n.it-sealed-banner__icon{font-size:1.3rem;}\n.it-sealed-banner__text{font-size:1rem;color:#c62828;text-transform:uppercase;letter-spacing:0.04em;}\n.it-sealed-banner__date{font-size:0.8rem;color:#666;margin-left:auto;}\n.it-sealed-banner__hash{font-size:0.72rem;color:#888;font-family:monospace;}\n/* \u2500\u2500 v2.11 Keyword Expansion \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.it-ref-card{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.it-ref-icon{font-size:1rem;flex-shrink:0;}\n.it-ref-link{color:#111;text-decoration:underline;font-weight:500;}\n.it-ref-name{font-weight:500;}\n.it-ref-rel{font-size:0.7rem;padding:1px 6px;border:1px solid #bbb;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}\n.it-def{margin:6px 0;padding:4px 0;}\n.it-def-term{font-weight:700;font-size:0.95rem;color:#111;}\n.it-def-abbr{font-weight:400;color:#555;}\n.it-def-meaning{margin:2px 0 0 0;color:#333;font-size:0.92rem;padding-left:1em;}\n.it-metric{display:inline-block;padding:10px 14px;border:1px solid #ddd;margin:5px;min-width:140px;vertical-align:top;}\n.it-metric-name{font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#555;}\n.it-metric-value{font-size:1.6rem;font-weight:700;line-height:1.2;color:#111;}\n.it-metric-unit{font-size:0.85rem;font-weight:400;color:#666;margin-left:2px;}\n.it-metric-target{font-size:0.78rem;color:#888;}\n.it-metric-trend{font-size:1rem;font-weight:700;margin-top:2px;}\n.it-metric-period{font-size:0.72rem;color:#888;}\n.it-metric-green{border-color:#4caf50;}\n.it-metric-green .it-metric-value{color:#2e7d32;}\n.it-metric-red{border-color:#c62828;}\n.it-metric-red .it-metric-value{color:#c62828;}\n.it-metric-neutral{border-color:#ddd;}\n/* Document total/line rows (invoice, receipt, statement) \u2014 matches the editor's\n itMetric node so editor-designed templates print identically. */\n.it-metric-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:5px 0;border-bottom:1px solid var(--it-color-border,#e5e7eb);}\n.it-metric-row__label{color:var(--it-color-muted,#555);}\n.it-metric-row__value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--it-color-text,#111);white-space:nowrap;}\n.it-metric-row--total{border-bottom:none;border-top:2px solid var(--it-color-text,#333);margin-top:2px;padding-top:8px;font-size:1.05em;}\n.it-metric-row--total .it-metric-row__label{color:var(--it-color-text,#111);font-weight:600;}\n.it-amendment{margin:10px 0;padding:10px 14px;border:2px solid #e65100;background:#fff8e1;}\n.it-amendment-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;}\n.it-amendment-icon{font-size:1rem;}\n.it-amendment-ref{font-size:0.72rem;font-weight:700;padding:1px 6px;border:1px solid #e65100;color:#e65100;text-transform:uppercase;letter-spacing:0.04em;}\n.it-amendment-title{font-weight:600;color:#111;}\n.it-amendment-section{font-size:0.85rem;color:#555;font-style:italic;}\n.it-amendment-was{font-size:0.85rem;color:#c62828;text-decoration:line-through;}\n.it-amendment-now{font-size:0.85rem;color:#2e7d32;font-weight:500;}\n.it-amendment-meta{display:flex;gap:8px;margin-top:4px;font-size:0.8rem;color:#666;}\n.it-figure{margin:14px 0;}\n.it-figure img{display:block;margin:0 auto;border:1px solid #ddd;}\n.it-figure-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:6px;}\n.it-signline{margin:20px 0;padding:0;}\n.it-signline-label{font-size:0.72rem;color:#888;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;}\n.it-signline-rule{border-bottom:1px solid #111;margin-bottom:4px;}\n.it-signline-name{font-size:0.9rem;font-weight:500;color:#111;}\n.it-signline-role{font-size:0.82rem;color:#555;}\n.it-signline-date{font-size:0.82rem;color:#555;margin-top:4px;}\n.it-contact{padding:8px 12px;border:1px solid #ddd;margin:5px 0;}\n.it-contact-name{font-weight:600;font-size:0.95rem;color:#111;}\n.it-contact-role{font-size:0.82rem;color:#555;}\n.it-contact-org{font-size:0.82rem;color:#555;}\n.it-contact-email a,.it-contact-phone a,.it-contact-url a{color:#111;text-decoration:underline;font-size:0.85rem;}\n.it-deadline{padding:8px 12px;border-left:3px solid #4caf50;margin:5px 0;}\n.it-deadline-name{font-weight:600;color:#111;}\n.it-deadline-date{font-size:0.9rem;font-weight:600;color:#111;}\n.it-deadline-consequence{font-size:0.85rem;color:#555;font-style:italic;}\n.it-deadline-owner{font-size:0.82rem;color:#555;}\n.it-deadline-authority{font-size:0.82rem;color:#555;}\n.it-deadline-green{border-color:#4caf50;}\n.it-deadline-amber{border-color:#f57c00;}\n.it-deadline-red{border-color:#c62828;}\n";
|
|
1
|
+
export declare const DOCUMENT_CSS = "\n/* \u2500\u2500 Base \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-document{font-family:Georgia,'Times New Roman',serif;line-height:1.7;color:#111;max-width:680px;margin:0 auto;padding:32px 24px;}\n/* \u2500\u2500 Typography \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-title{font-size:1.75rem;line-height:1.2;margin:0 0 12px;font-weight:700;letter-spacing:-0.01em;}\n.intent-summary{margin:8px 0 20px;padding-block:8px;padding-inline:0;padding-inline-start:14px;border-inline-start:2px solid #999;color:#333;font-style:italic;font-size:0.95rem;}\n.intent-section{margin:24px 0 8px;font-size:1.1rem;line-height:1.3;font-weight:600;padding-bottom:4px;border-bottom:1px solid #ccc;}\n.intent-sub{margin:16px 0 6px;font-size:1rem;line-height:1.3;font-weight:600;}\n.intent-note{margin:6px 0;color:#222;}\n.intent-prose{margin:0 0 1em;color:#222;font-size:1rem;line-height:1.8;max-width:65ch;text-wrap:pretty;}\n.intent-align-center{text-align:center;}\n.intent-align-right{text-align:end;}\n.intent-align-justify{text-align:justify;}\n/* \u2500\u2500 Two-sided rows (end:) \u2014 flex start/end, RTL-native \u2500\u2500 */\n.it-split{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}\n.it-split-main{min-width:0;}\n.it-split-end{flex-shrink:0;}\n/* \u2500\u2500 Divider \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-divider{margin:18px 0;text-align:center;}\n.intent-divider-line{border:none;border-top:1px solid #ccc;margin:0;}\n.intent-divider-label{display:inline-block;padding:0 10px;background:#fff;color:#888;font-size:0.78rem;position:relative;top:-9px;}\n/* \u2500\u2500 Tasks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-task{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-task-checkbox{margin-top:3px;flex-shrink:0;}\n.intent-task-text{flex:1;}\n.intent-task-meta{display:flex;gap:6px;color:#888;font-size:0.78rem;white-space:nowrap;}\n.intent-task-owner::before{content:'@ ';opacity:0.6;}\n.intent-task-due::before{content:'due ';}\n.intent-task-time::before{content:'at ';}\n.intent-task-text-done{text-decoration:line-through;color:#999;}\n/* \u2500\u2500 Ask \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-ask{display:flex;gap:10px;margin:10px 0;padding-block:6px;padding-inline:0;padding-inline-start:12px;border-inline-start:2px solid #999;align-items:baseline;}\n.intent-ask-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#555;flex-shrink:0;line-height:1.65;}\n.intent-ask-content{flex:1;color:#333;font-style:italic;}\n/* \u2500\u2500 Quote \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-quote{margin:14px 0;padding-block:2px;padding-inline:0;padding-inline-start:16px;border-inline-start:2px solid #999;font-style:italic;color:#333;}\n.intent-quote p{margin:0;line-height:1.7;}\n.intent-quote-cite{display:block;margin-top:5px;font-style:normal;color:#888;font-size:0.82rem;}\n/* \u2500\u2500 Code \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-code{margin:10px 0;padding:10px 12px;background:#f5f5f5;border:1px solid #ddd;overflow-x:auto;}\n.intent-code code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:0.85rem;color:#111;}\n/* \u2500\u2500 Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:0.9em;}\n.intent-table th,.intent-table-th{padding:6px 10px;text-align:start;font-weight:600;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;border-bottom:2px solid #333;}\n.intent-table td,.intent-table-td{padding:6px 10px;text-align:start;border-bottom:1px solid #ddd;vertical-align:top;}\n.intent-row:last-child .intent-table-td,.intent-row:last-child td{border-bottom:none;}\n/* \u2500\u2500 Image \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-image{margin:12px 0;}\n.intent-image-img{max-width:100%;height:auto;border:1px solid #ddd;}\n.intent-image-caption{margin-top:4px;color:#555;font-size:0.82rem;text-align:center;font-style:italic;}\n/* \u2500\u2500 Links / Refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-link{margin:4px 0;}\n.intent-link a{color:#111;text-decoration:underline;}\n.intent-ref{margin:4px 0;}\n.intent-ref a{color:#111;text-decoration:underline;font-style:italic;}\n.intent-unknown{margin:6px 0;padding:6px 10px;border:1px dashed #ccc;color:#888;}\n/* \u2500\u2500 Embed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-embed{margin:14px 0;}\n.intent-embed iframe,.intent-embed video,.intent-embed audio{display:block;width:100%;border:1px solid #ddd;}\n/* \u2500\u2500 Callouts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-callout{display:flex;gap:10px;margin:10px 0;padding-block:6px;padding-inline:0;padding-inline-start:12px;border-inline-start:2px solid #888;align-items:baseline;}\n.intent-callout-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;flex-shrink:0;white-space:nowrap;line-height:1.65;color:#444;}\n.intent-callout-content{flex:1;color:#222;}\n.intent-info{border-color:#888;}\n.intent-info .intent-callout-label{color:#444;}\n.intent-warning{border-color:#888;}\n.intent-warning .intent-callout-label{color:#444;}\n.intent-tip{border-color:#888;}\n.intent-tip .intent-callout-label{color:#444;}\n.intent-success{border-color:#888;}\n.intent-success .intent-callout-label{color:#444;}\n/* \u2500\u2500 Inline formatting \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-inline-link{color:#111;text-decoration:underline;}\n.intent-inline-highlight{background:#eee;padding:0 .15em;}\n.intent-inline-note{display:inline-block;padding:0 .3em;border:1px solid #ddd;color:#333;font-size:.92em;}\n.intent-inline-quote{color:#333;font-style:italic;}\n.intent-inline-date{font-weight:600;font-family:'SFMono-Regular',Consolas,monospace;}\n.intent-inline-mention{font-weight:600;}\n.intent-inline-tag{font-weight:600;}\n/* \u2500\u2500 Lists \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nul,ol{margin:6px 0 6px 20px;padding:0;}\nli{margin:3px 0;color:#222;}\n/* \u2500\u2500 v2 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-step{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-step-icon{font-size:0.85rem;flex-shrink:0;}\n.intent-step-content{flex:1;font-weight:500;}\n.intent-step-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}\n.intent-step-id{font-size:0.72rem;color:#888;font-family:monospace;}\n.intent-step-depends{font-size:0.75rem;color:#555;font-style:italic;}\n.intent-badge{font-size:0.7rem;padding:1px 6px;border:1px solid #bbb;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}\n.intent-badge-tool{border-color:#999;}\n.intent-status-pending{color:#666;}\n.intent-status-running{color:#333;animation:intent-pulse 1.5s ease-in-out infinite;}\n.intent-status-blocked{color:#666;}\n.intent-status-failed{color:#333;text-decoration:line-through;}\n.intent-status-done{color:#333;}\n.intent-status-skipped,.intent-status-cancelled{color:#999;text-decoration:line-through;}\n@keyframes intent-pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}\n.intent-decision{display:flex;gap:10px;margin:8px 0;padding:8px 12px;border:1px solid #bbb;}\n.intent-decision-diamond{width:16px;height:16px;border:2px solid #333;transform:rotate(45deg);flex-shrink:0;margin-top:4px;}\n.intent-decision-body{flex:1;}\n.intent-decision-label{font-weight:600;margin-bottom:3px;}\n.intent-decision-condition{font-size:0.85rem;color:#444;font-family:monospace;margin-bottom:3px;}\n.intent-decision-branches{display:flex;gap:14px;font-size:0.82rem;}\n.intent-decision-then{color:#333;}\n.intent-decision-else{color:#333;}\n.intent-trigger{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-trigger-icon{font-size:1rem;}\n.intent-trigger-content{flex:1;font-weight:500;}\n.intent-badge-event{border-color:#999;}\n.intent-loop{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.intent-loop-icon{font-size:1rem;}\n.intent-loop-content{flex:1;font-weight:500;}\n.intent-loop-over,.intent-loop-do{font-size:0.8rem;color:#555;font-family:monospace;}\n.intent-checkpoint{display:flex;align-items:center;gap:8px;margin:16px 0;color:#555;font-size:0.85rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}\n.intent-checkpoint-flag{font-size:1rem;}\n.intent-checkpoint-label{flex-shrink:0;}\n.intent-checkpoint-line{flex:1;border:none;border-top:1px dashed #bbb;margin:0;}\n.intent-audit{margin:4px 0;padding:4px 8px;font-family:'SFMono-Regular',Consolas,monospace;font-size:0.8rem;color:#555;border-inline-start:2px solid #bbb;}\n.intent-audit-prefix{color:#888;font-weight:600;}\n.intent-error-block{border-color:#999;}\n.intent-error-block .intent-callout-label{color:#333;}\n.intent-error-fallback{font-size:0.8rem;color:#555;font-style:italic;margin-inline-start:6px;}\n.intent-error-notify{font-size:0.8rem;color:#555;margin-inline-start:6px;}\n.intent-context-table{width:auto;border-collapse:collapse;margin:6px 0;font-size:0.85rem;}\n.intent-context-key{padding:3px 10px 3px 8px;font-weight:600;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}\n.intent-context-val{padding:3px 12px 3px 6px;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}\n.intent-context{margin:4px 0;font-size:0.85rem;color:#333;}\n.intent-progress{display:flex;align-items:center;gap:8px;margin:6px 0;}\n.intent-progress-label{font-size:0.85rem;color:#222;flex-shrink:0;}\n.intent-progress-bar{flex:1;height:6px;background:#ddd;overflow:hidden;}\n.intent-progress-fill{height:100%;background:#555;}\n.intent-progress-pct{font-size:0.78rem;color:#555;font-weight:600;min-width:36px;text-align:end;}\n.intent-file-ref{display:flex;align-items:center;gap:6px;margin:4px 0;padding:4px 8px;border:1px dashed #ccc;font-size:0.82rem;color:#555;font-family:monospace;}\n.intent-file-ref-icon{font-size:0.9rem;}\n/* \u2500\u2500 v2.1 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-emit-block{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-emit-icon{font-size:1rem;}\n.intent-emit-content{flex:1;font-weight:500;}\n.intent-emit-meta{display:flex;gap:5px;align-items:center;}\n.intent-emit-phase{font-size:0.78rem;color:#555;font-weight:600;}\n.intent-badge-level{border-color:#999;}\n.intent-result{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;flex-wrap:wrap;}\n.intent-result-success{border-color:#999;}\n.intent-result-error,.intent-result-failure{border-color:#999;}\n.intent-result-icon{font-size:1rem;flex-shrink:0;}\n.intent-result-content{flex:1;font-weight:500;}\n.intent-badge-code{border-color:#999;font-family:monospace;}\n.intent-result-data{width:100%;margin-top:3px;padding:4px 8px;font-size:0.82rem;overflow-x:auto;border-top:1px solid #ddd;}\n.intent-result-data code{font-family:'SFMono-Regular',Consolas,monospace;font-size:0.82rem;color:#333;}\n.intent-handoff{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-handoff-icon{font-size:1rem;}\n.intent-handoff-content{flex:1;font-weight:500;}\n.intent-handoff-arrow{display:flex;align-items:center;gap:5px;font-size:0.82rem;color:#444;font-weight:600;}\n.intent-handoff-agent{padding:1px 5px;border:1px solid #bbb;font-family:monospace;font-size:0.78rem;}\n.intent-wait{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;border-inline-start:2px solid #999;}\n.intent-wait-icon{font-size:1rem;animation:intent-pulse 2s ease-in-out infinite;}\n.intent-wait-content{flex:1;font-weight:500;color:#333;}\n.intent-wait-meta{display:flex;gap:5px;align-items:center;}\n.intent-badge-timeout{border-color:#999;font-family:monospace;}\n.intent-wait-fallback{font-size:0.8rem;color:#555;font-style:italic;}\n.intent-parallel{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-parallel-icon{font-size:1rem;}\n.intent-parallel-content{flex:1;font-weight:500;}\n.intent-parallel-steps{display:flex;gap:4px;flex-wrap:wrap;}\n.intent-badge-parallel-step{border-color:#999;font-family:monospace;font-size:0.72rem;padding:1px 5px;}\n.intent-badge-join{border-color:#999;font-size:0.72rem;padding:1px 5px;}\n.intent-retry{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #bbb;margin:5px 0;}\n.intent-retry-icon{font-size:1rem;}\n.intent-retry-content{flex:1;font-weight:500;}\n.intent-retry-meta{display:flex;gap:5px;align-items:center;}\n.intent-badge-retry-max{border-color:#999;font-size:0.72rem;}\n.intent-badge-retry-delay{border-color:#999;font-size:0.72rem;font-family:monospace;}\n.intent-badge-retry-backoff{border-color:#999;font-size:0.72rem;font-style:italic;}\n/* \u2500\u2500 v2.2 Agentic Workflow Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.intent-gate{display:flex;gap:10px;margin:8px 0;padding:10px 12px;border:2px solid #888;}\n.intent-gate-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px;}\n.intent-gate-body{flex:1;}\n.intent-gate-label{font-weight:600;margin-bottom:3px;}\n.intent-gate-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}\n.intent-badge-approver{border-color:#999;font-family:monospace;}\n.intent-gate-fallback{font-size:0.8rem;color:#555;font-style:italic;}\n.intent-call{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px dashed #999;margin:5px 0;}\n.intent-call-icon{font-size:1rem;}\n.intent-call-content{flex:1;font-weight:500;font-family:monospace;font-size:0.9rem;}\n.intent-call-meta{display:flex;gap:6px;align-items:center;}\n.intent-call-input{font-size:0.78rem;color:#555;font-family:monospace;}\n.intent-call-output{font-size:0.78rem;color:#555;font-family:monospace;}\n/* \u2500\u2500 v2.5 Document Generation Blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.it-page-break{page-break-after:always;break-after:page;height:0;}\n.it-byline{margin:0 0 16px;font-size:0.9em;color:#333;}\n.it-byline-author{display:block;font-weight:bold;}\n.it-byline-meta{display:block;font-size:0.85em;color:#666;margin-top:2px;}\n.it-epigraph{font-style:italic;text-align:center;margin:20px 3em;border:none;padding:0;}\n.it-epigraph p{margin:0;}\n.it-epigraph .it-epigraph-by{display:block;text-align:end;font-size:0.9em;margin-top:4px;font-style:normal;color:#666;}\n.it-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:3px;margin-bottom:10px;}\n.it-dedication{font-style:italic;text-align:center;margin:3em auto;}\n.it-toc{margin:20px 0;}\n.it-toc-title{font-size:1.1rem;font-weight:600;margin-bottom:8px;border:none;}\n.it-toc ol{list-style:none;padding:0;margin:0;}\n.it-toc li{margin:3px 0;}\n.it-toc li a{color:#111;text-decoration:none;border-bottom:1px dotted #bbb;}\n.it-toc li a:hover{border-bottom-style:solid;}\n.it-toc .it-toc-sub{padding-inline-start:20px;font-size:0.92em;}\n.it-footnotes{border-top:1px solid #ccc;margin-top:24px;padding-top:8px;font-size:0.85em;color:#444;}\n.it-footnotes ol{padding-inline-start:1.5em;margin:0;}\n.it-footnotes li{margin:3px 0;}\nsup.it-fn-ref{font-size:0.7em;vertical-align:super;}\nsup.it-fn-ref a{color:#111;text-decoration:none;border-bottom:1px solid #999;}\n/* \u2500\u2500 v2.8 Document Trust \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Trust blocks are typeset like entries in a legal document \u2014 hairlines and\n small-caps labels, no colored fills (ink-first; prints exactly as shown). */\n.it-approval{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:12px 0;padding:7px 2px;border-bottom:1px solid #ddd;}\n.it-approval__icon{display:none;}\n.it-approval__body{display:contents;}\n.it-approval__label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#2e7d32;flex-shrink:0;}\n.it-approval__label::before{content:'\u2713 ';}\n.it-approval__what{font-size:0.9rem;font-weight:600;color:#111;}\n.it-approval__who{font-size:0.9rem;color:#555;}\n.it-approval__date{font-size:0.8rem;color:#777;margin-inline-start:auto;font-variant-numeric:tabular-nums;}\n.it-signature{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:14px 0 10px;padding:7px 2px 5px;border-top:1px solid #111;}\n.it-signature--valid{border-top-color:#111;}\n.it-signature--invalid{border-top-color:#c62828;}\n.it-signature__name{font-weight:600;font-size:0.95rem;color:#111;}\n.it-signature__role{font-size:0.85rem;color:#555;}\n.it-signature__date{font-size:0.8rem;color:#777;font-variant-numeric:tabular-nums;}\n.it-signature__status{font-size:0.72rem;font-weight:600;margin-inline-start:auto;text-transform:uppercase;letter-spacing:0.08em;color:#2e7d32;}\n.it-signature--invalid .it-signature__status{color:#c62828;}\n.it-sealed-banner{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;margin:18px 0;padding:8px 2px;border-top:1px solid #111;border-bottom:1px solid #111;}\n.it-sealed-banner__icon{display:none;}\n.it-sealed-banner__text{font-size:0.78rem;font-weight:700;color:#111;text-transform:uppercase;letter-spacing:0.14em;}\n.it-sealed-banner__date{font-size:0.8rem;color:#666;margin-inline-start:auto;font-variant-numeric:tabular-nums;}\n.it-sealed-banner__hash{font-size:0.72rem;color:#999;font-family:'SFMono-Regular',Consolas,monospace;}\n/* \u2500\u2500 v2.11 Keyword Expansion \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.it-ref-card{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}\n.it-ref-icon{font-size:1rem;flex-shrink:0;}\n.it-ref-link{color:#111;text-decoration:underline;font-weight:500;}\n.it-ref-name{font-weight:500;}\n.it-ref-rel{font-size:0.7rem;padding:1px 6px;border:1px solid #bbb;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}\n.it-def{margin:6px 0;padding:4px 0;}\n.it-def-term{font-weight:700;font-size:0.95rem;color:#111;}\n.it-def-abbr{font-weight:400;color:#555;}\n.it-def-meaning{margin:2px 0 0 0;color:#333;font-size:0.92rem;padding-inline-start:1em;}\n.it-metric{display:inline-block;padding:10px 14px;border:1px solid #ddd;margin:5px;min-width:140px;vertical-align:top;}\n.it-metric-name{font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#555;}\n.it-metric-value{font-size:1.6rem;font-weight:700;line-height:1.2;color:#111;}\n.it-metric-unit{font-size:0.85rem;font-weight:400;color:#666;margin-inline-start:2px;}\n.it-metric-target{font-size:0.78rem;color:#888;}\n.it-metric-trend{font-size:1rem;font-weight:700;margin-top:2px;}\n.it-metric-period{font-size:0.72rem;color:#888;}\n.it-metric-green{border-color:#4caf50;}\n.it-metric-green .it-metric-value{color:#2e7d32;}\n.it-metric-red{border-color:#c62828;}\n.it-metric-red .it-metric-value{color:#c62828;}\n.it-metric-neutral{border-color:#ddd;}\n/* Document total/line rows (invoice, receipt, statement) \u2014 matches the editor's\n itMetric node so editor-designed templates print identically. */\n.it-metric-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:5px 0;border-bottom:1px solid var(--it-color-border,#e5e7eb);}\n.it-metric-row__label{color:var(--it-color-muted,#555);}\n.it-metric-row__value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--it-color-text,#111);white-space:nowrap;}\n.it-metric-row--total{border-bottom:none;border-top:2px solid var(--it-color-text,#333);margin-top:2px;padding-top:8px;font-size:1.05em;}\n.it-metric-row--total .it-metric-row__label{color:var(--it-color-text,#111);font-weight:600;}\n.it-amendment{margin:10px 0;padding:10px 14px;border:2px solid #e65100;background:#fff8e1;}\n.it-amendment-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;}\n.it-amendment-icon{font-size:1rem;}\n.it-amendment-ref{font-size:0.72rem;font-weight:700;padding:1px 6px;border:1px solid #e65100;color:#e65100;text-transform:uppercase;letter-spacing:0.04em;}\n.it-amendment-title{font-weight:600;color:#111;}\n.it-amendment-section{font-size:0.85rem;color:#555;font-style:italic;}\n.it-amendment-was{font-size:0.85rem;color:#c62828;text-decoration:line-through;}\n.it-amendment-now{font-size:0.85rem;color:#2e7d32;font-weight:500;}\n.it-amendment-meta{display:flex;gap:8px;margin-top:4px;font-size:0.8rem;color:#666;}\n.it-figure{margin:14px 0;}\n.it-figure img{display:block;margin:0 auto;border:1px solid #ddd;}\n.it-figure-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:6px;}\n.it-signline{margin:20px 0;padding:0;}\n.it-signline-label{font-size:0.72rem;color:#888;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;}\n.it-signline-rule{border-bottom:1px solid #111;margin-bottom:4px;}\n.it-signline-name{font-size:0.9rem;font-weight:500;color:#111;}\n.it-signline-role{font-size:0.82rem;color:#555;}\n.it-signline-date{font-size:0.82rem;color:#555;margin-top:4px;}\n.it-contact{padding:8px 12px;border:1px solid #ddd;margin:5px 0;}\n.it-contact-name{font-weight:600;font-size:0.95rem;color:#111;}\n.it-contact-role{font-size:0.82rem;color:#555;}\n.it-contact-org{font-size:0.82rem;color:#555;}\n.it-contact-email a,.it-contact-phone a,.it-contact-url a{color:#111;text-decoration:underline;font-size:0.85rem;}\n.it-deadline{padding:8px 12px;border-inline-start:3px solid #4caf50;margin:5px 0;}\n.it-deadline-name{font-weight:600;color:#111;}\n.it-deadline-date{font-size:0.9rem;font-weight:600;color:#111;}\n.it-deadline-consequence{font-size:0.85rem;color:#555;font-style:italic;}\n.it-deadline-owner{font-size:0.82rem;color:#555;}\n.it-deadline-authority{font-size:0.82rem;color:#555;}\n.it-deadline-green{border-color:#4caf50;}\n.it-deadline-amber{border-color:#f57c00;}\n.it-deadline-red{border-color:#c62828;}\n";
|
package/dist/document-css.js
CHANGED
|
@@ -6,14 +6,18 @@ exports.DOCUMENT_CSS = `
|
|
|
6
6
|
.intent-document{font-family:Georgia,'Times New Roman',serif;line-height:1.7;color:#111;max-width:680px;margin:0 auto;padding:32px 24px;}
|
|
7
7
|
/* ── Typography ────────────────────────────────────────── */
|
|
8
8
|
.intent-title{font-size:1.75rem;line-height:1.2;margin:0 0 12px;font-weight:700;letter-spacing:-0.01em;}
|
|
9
|
-
.intent-summary{margin:8px 0 20px;padding:8px
|
|
9
|
+
.intent-summary{margin:8px 0 20px;padding-block:8px;padding-inline:0;padding-inline-start:14px;border-inline-start:2px solid #999;color:#333;font-style:italic;font-size:0.95rem;}
|
|
10
10
|
.intent-section{margin:24px 0 8px;font-size:1.1rem;line-height:1.3;font-weight:600;padding-bottom:4px;border-bottom:1px solid #ccc;}
|
|
11
11
|
.intent-sub{margin:16px 0 6px;font-size:1rem;line-height:1.3;font-weight:600;}
|
|
12
12
|
.intent-note{margin:6px 0;color:#222;}
|
|
13
13
|
.intent-prose{margin:0 0 1em;color:#222;font-size:1rem;line-height:1.8;max-width:65ch;text-wrap:pretty;}
|
|
14
14
|
.intent-align-center{text-align:center;}
|
|
15
|
-
.intent-align-right{text-align:
|
|
15
|
+
.intent-align-right{text-align:end;}
|
|
16
16
|
.intent-align-justify{text-align:justify;}
|
|
17
|
+
/* ── Two-sided rows (end:) — flex start/end, RTL-native ── */
|
|
18
|
+
.it-split{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
|
|
19
|
+
.it-split-main{min-width:0;}
|
|
20
|
+
.it-split-end{flex-shrink:0;}
|
|
17
21
|
/* ── Divider ───────────────────────────────────────────── */
|
|
18
22
|
.intent-divider{margin:18px 0;text-align:center;}
|
|
19
23
|
.intent-divider-line{border:none;border-top:1px solid #ccc;margin:0;}
|
|
@@ -28,11 +32,11 @@ exports.DOCUMENT_CSS = `
|
|
|
28
32
|
.intent-task-time::before{content:'at ';}
|
|
29
33
|
.intent-task-text-done{text-decoration:line-through;color:#999;}
|
|
30
34
|
/* ── Ask ───────────────────────────────────────────────── */
|
|
31
|
-
.intent-ask{display:flex;gap:10px;margin:10px 0;padding:6px
|
|
35
|
+
.intent-ask{display:flex;gap:10px;margin:10px 0;padding-block:6px;padding-inline:0;padding-inline-start:12px;border-inline-start:2px solid #999;align-items:baseline;}
|
|
32
36
|
.intent-ask-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:#555;flex-shrink:0;line-height:1.65;}
|
|
33
37
|
.intent-ask-content{flex:1;color:#333;font-style:italic;}
|
|
34
38
|
/* ── Quote ─────────────────────────────────────────────── */
|
|
35
|
-
.intent-quote{margin:14px 0;padding:2px
|
|
39
|
+
.intent-quote{margin:14px 0;padding-block:2px;padding-inline:0;padding-inline-start:16px;border-inline-start:2px solid #999;font-style:italic;color:#333;}
|
|
36
40
|
.intent-quote p{margin:0;line-height:1.7;}
|
|
37
41
|
.intent-quote-cite{display:block;margin-top:5px;font-style:normal;color:#888;font-size:0.82rem;}
|
|
38
42
|
/* ── Code ──────────────────────────────────────────────── */
|
|
@@ -40,8 +44,8 @@ exports.DOCUMENT_CSS = `
|
|
|
40
44
|
.intent-code code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:0.85rem;color:#111;}
|
|
41
45
|
/* ── Table ─────────────────────────────────────────────── */
|
|
42
46
|
.intent-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:0.9em;}
|
|
43
|
-
.intent-table th,.intent-table-th{padding:6px 10px;text-align:
|
|
44
|
-
.intent-table td,.intent-table-td{padding:6px 10px;text-align:
|
|
47
|
+
.intent-table th,.intent-table-th{padding:6px 10px;text-align:start;font-weight:600;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;border-bottom:2px solid #333;}
|
|
48
|
+
.intent-table td,.intent-table-td{padding:6px 10px;text-align:start;border-bottom:1px solid #ddd;vertical-align:top;}
|
|
45
49
|
.intent-row:last-child .intent-table-td,.intent-row:last-child td{border-bottom:none;}
|
|
46
50
|
/* ── Image ─────────────────────────────────────────────── */
|
|
47
51
|
.intent-image{margin:12px 0;}
|
|
@@ -57,7 +61,7 @@ exports.DOCUMENT_CSS = `
|
|
|
57
61
|
.intent-embed{margin:14px 0;}
|
|
58
62
|
.intent-embed iframe,.intent-embed video,.intent-embed audio{display:block;width:100%;border:1px solid #ddd;}
|
|
59
63
|
/* ── Callouts ──────────────────────────────────────────── */
|
|
60
|
-
.intent-callout{display:flex;gap:10px;margin:10px 0;padding:6px
|
|
64
|
+
.intent-callout{display:flex;gap:10px;margin:10px 0;padding-block:6px;padding-inline:0;padding-inline-start:12px;border-inline-start:2px solid #888;align-items:baseline;}
|
|
61
65
|
.intent-callout-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;flex-shrink:0;white-space:nowrap;line-height:1.65;color:#444;}
|
|
62
66
|
.intent-callout-content{flex:1;color:#222;}
|
|
63
67
|
.intent-info{border-color:#888;}
|
|
@@ -115,12 +119,12 @@ li{margin:3px 0;color:#222;}
|
|
|
115
119
|
.intent-checkpoint-flag{font-size:1rem;}
|
|
116
120
|
.intent-checkpoint-label{flex-shrink:0;}
|
|
117
121
|
.intent-checkpoint-line{flex:1;border:none;border-top:1px dashed #bbb;margin:0;}
|
|
118
|
-
.intent-audit{margin:4px 0;padding:4px 8px;font-family:'SFMono-Regular',Consolas,monospace;font-size:0.8rem;color:#555;border-
|
|
122
|
+
.intent-audit{margin:4px 0;padding:4px 8px;font-family:'SFMono-Regular',Consolas,monospace;font-size:0.8rem;color:#555;border-inline-start:2px solid #bbb;}
|
|
119
123
|
.intent-audit-prefix{color:#888;font-weight:600;}
|
|
120
124
|
.intent-error-block{border-color:#999;}
|
|
121
125
|
.intent-error-block .intent-callout-label{color:#333;}
|
|
122
|
-
.intent-error-fallback{font-size:0.8rem;color:#555;font-style:italic;margin-
|
|
123
|
-
.intent-error-notify{font-size:0.8rem;color:#555;margin-
|
|
126
|
+
.intent-error-fallback{font-size:0.8rem;color:#555;font-style:italic;margin-inline-start:6px;}
|
|
127
|
+
.intent-error-notify{font-size:0.8rem;color:#555;margin-inline-start:6px;}
|
|
124
128
|
.intent-context-table{width:auto;border-collapse:collapse;margin:6px 0;font-size:0.85rem;}
|
|
125
129
|
.intent-context-key{padding:3px 10px 3px 8px;font-weight:600;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}
|
|
126
130
|
.intent-context-val{padding:3px 12px 3px 6px;color:#333;font-family:monospace;border-bottom:1px solid #ddd;}
|
|
@@ -129,7 +133,7 @@ li{margin:3px 0;color:#222;}
|
|
|
129
133
|
.intent-progress-label{font-size:0.85rem;color:#222;flex-shrink:0;}
|
|
130
134
|
.intent-progress-bar{flex:1;height:6px;background:#ddd;overflow:hidden;}
|
|
131
135
|
.intent-progress-fill{height:100%;background:#555;}
|
|
132
|
-
.intent-progress-pct{font-size:0.78rem;color:#555;font-weight:600;min-width:36px;text-align:
|
|
136
|
+
.intent-progress-pct{font-size:0.78rem;color:#555;font-weight:600;min-width:36px;text-align:end;}
|
|
133
137
|
.intent-file-ref{display:flex;align-items:center;gap:6px;margin:4px 0;padding:4px 8px;border:1px dashed #ccc;font-size:0.82rem;color:#555;font-family:monospace;}
|
|
134
138
|
.intent-file-ref-icon{font-size:0.9rem;}
|
|
135
139
|
/* ── v2.1 Agentic Workflow Blocks ──────────────────────── */
|
|
@@ -152,7 +156,7 @@ li{margin:3px 0;color:#222;}
|
|
|
152
156
|
.intent-handoff-content{flex:1;font-weight:500;}
|
|
153
157
|
.intent-handoff-arrow{display:flex;align-items:center;gap:5px;font-size:0.82rem;color:#444;font-weight:600;}
|
|
154
158
|
.intent-handoff-agent{padding:1px 5px;border:1px solid #bbb;font-family:monospace;font-size:0.78rem;}
|
|
155
|
-
.intent-wait{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;border-
|
|
159
|
+
.intent-wait{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;border-inline-start:2px solid #999;}
|
|
156
160
|
.intent-wait-icon{font-size:1rem;animation:intent-pulse 2s ease-in-out infinite;}
|
|
157
161
|
.intent-wait-content{flex:1;font-weight:500;color:#333;}
|
|
158
162
|
.intent-wait-meta{display:flex;gap:5px;align-items:center;}
|
|
@@ -192,7 +196,7 @@ li{margin:3px 0;color:#222;}
|
|
|
192
196
|
.it-byline-meta{display:block;font-size:0.85em;color:#666;margin-top:2px;}
|
|
193
197
|
.it-epigraph{font-style:italic;text-align:center;margin:20px 3em;border:none;padding:0;}
|
|
194
198
|
.it-epigraph p{margin:0;}
|
|
195
|
-
.it-epigraph .it-epigraph-by{display:block;text-align:
|
|
199
|
+
.it-epigraph .it-epigraph-by{display:block;text-align:end;font-size:0.9em;margin-top:4px;font-style:normal;color:#666;}
|
|
196
200
|
.it-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:3px;margin-bottom:10px;}
|
|
197
201
|
.it-dedication{font-style:italic;text-align:center;margin:3em auto;}
|
|
198
202
|
.it-toc{margin:20px 0;}
|
|
@@ -201,31 +205,36 @@ li{margin:3px 0;color:#222;}
|
|
|
201
205
|
.it-toc li{margin:3px 0;}
|
|
202
206
|
.it-toc li a{color:#111;text-decoration:none;border-bottom:1px dotted #bbb;}
|
|
203
207
|
.it-toc li a:hover{border-bottom-style:solid;}
|
|
204
|
-
.it-toc .it-toc-sub{padding-
|
|
208
|
+
.it-toc .it-toc-sub{padding-inline-start:20px;font-size:0.92em;}
|
|
205
209
|
.it-footnotes{border-top:1px solid #ccc;margin-top:24px;padding-top:8px;font-size:0.85em;color:#444;}
|
|
206
|
-
.it-footnotes ol{padding-
|
|
210
|
+
.it-footnotes ol{padding-inline-start:1.5em;margin:0;}
|
|
207
211
|
.it-footnotes li{margin:3px 0;}
|
|
208
212
|
sup.it-fn-ref{font-size:0.7em;vertical-align:super;}
|
|
209
213
|
sup.it-fn-ref a{color:#111;text-decoration:none;border-bottom:1px solid #999;}
|
|
210
214
|
/* ── v2.8 Document Trust ───────────────────────────────── */
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
.it-
|
|
214
|
-
.it-
|
|
215
|
-
.it-
|
|
216
|
-
.it-
|
|
217
|
-
.it-
|
|
218
|
-
.it-
|
|
219
|
-
.it-
|
|
215
|
+
/* Trust blocks are typeset like entries in a legal document — hairlines and
|
|
216
|
+
small-caps labels, no colored fills (ink-first; prints exactly as shown). */
|
|
217
|
+
.it-approval{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:12px 0;padding:7px 2px;border-bottom:1px solid #ddd;}
|
|
218
|
+
.it-approval__icon{display:none;}
|
|
219
|
+
.it-approval__body{display:contents;}
|
|
220
|
+
.it-approval__label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#2e7d32;flex-shrink:0;}
|
|
221
|
+
.it-approval__label::before{content:'✓ ';}
|
|
222
|
+
.it-approval__what{font-size:0.9rem;font-weight:600;color:#111;}
|
|
223
|
+
.it-approval__who{font-size:0.9rem;color:#555;}
|
|
224
|
+
.it-approval__date{font-size:0.8rem;color:#777;margin-inline-start:auto;font-variant-numeric:tabular-nums;}
|
|
225
|
+
.it-signature{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:14px 0 10px;padding:7px 2px 5px;border-top:1px solid #111;}
|
|
226
|
+
.it-signature--valid{border-top-color:#111;}
|
|
227
|
+
.it-signature--invalid{border-top-color:#c62828;}
|
|
220
228
|
.it-signature__name{font-weight:600;font-size:0.95rem;color:#111;}
|
|
221
229
|
.it-signature__role{font-size:0.85rem;color:#555;}
|
|
222
|
-
.it-signature__date{font-size:0.8rem;color:#
|
|
223
|
-
.it-signature__status{font-size:0.
|
|
224
|
-
.it-
|
|
225
|
-
.it-sealed-
|
|
226
|
-
.it-sealed-
|
|
227
|
-
.it-sealed-
|
|
228
|
-
.it-sealed-
|
|
230
|
+
.it-signature__date{font-size:0.8rem;color:#777;font-variant-numeric:tabular-nums;}
|
|
231
|
+
.it-signature__status{font-size:0.72rem;font-weight:600;margin-inline-start:auto;text-transform:uppercase;letter-spacing:0.08em;color:#2e7d32;}
|
|
232
|
+
.it-signature--invalid .it-signature__status{color:#c62828;}
|
|
233
|
+
.it-sealed-banner{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;margin:18px 0;padding:8px 2px;border-top:1px solid #111;border-bottom:1px solid #111;}
|
|
234
|
+
.it-sealed-banner__icon{display:none;}
|
|
235
|
+
.it-sealed-banner__text{font-size:0.78rem;font-weight:700;color:#111;text-transform:uppercase;letter-spacing:0.14em;}
|
|
236
|
+
.it-sealed-banner__date{font-size:0.8rem;color:#666;margin-inline-start:auto;font-variant-numeric:tabular-nums;}
|
|
237
|
+
.it-sealed-banner__hash{font-size:0.72rem;color:#999;font-family:'SFMono-Regular',Consolas,monospace;}
|
|
229
238
|
/* ── v2.11 Keyword Expansion ──────────────────────────── */
|
|
230
239
|
.it-ref-card{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #ddd;margin:5px 0;}
|
|
231
240
|
.it-ref-icon{font-size:1rem;flex-shrink:0;}
|
|
@@ -235,11 +244,11 @@ sup.it-fn-ref a{color:#111;text-decoration:none;border-bottom:1px solid #999;}
|
|
|
235
244
|
.it-def{margin:6px 0;padding:4px 0;}
|
|
236
245
|
.it-def-term{font-weight:700;font-size:0.95rem;color:#111;}
|
|
237
246
|
.it-def-abbr{font-weight:400;color:#555;}
|
|
238
|
-
.it-def-meaning{margin:2px 0 0 0;color:#333;font-size:0.92rem;padding-
|
|
247
|
+
.it-def-meaning{margin:2px 0 0 0;color:#333;font-size:0.92rem;padding-inline-start:1em;}
|
|
239
248
|
.it-metric{display:inline-block;padding:10px 14px;border:1px solid #ddd;margin:5px;min-width:140px;vertical-align:top;}
|
|
240
249
|
.it-metric-name{font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#555;}
|
|
241
250
|
.it-metric-value{font-size:1.6rem;font-weight:700;line-height:1.2;color:#111;}
|
|
242
|
-
.it-metric-unit{font-size:0.85rem;font-weight:400;color:#666;margin-
|
|
251
|
+
.it-metric-unit{font-size:0.85rem;font-weight:400;color:#666;margin-inline-start:2px;}
|
|
243
252
|
.it-metric-target{font-size:0.78rem;color:#888;}
|
|
244
253
|
.it-metric-trend{font-size:1rem;font-weight:700;margin-top:2px;}
|
|
245
254
|
.it-metric-period{font-size:0.72rem;color:#888;}
|
|
@@ -278,7 +287,7 @@ sup.it-fn-ref a{color:#111;text-decoration:none;border-bottom:1px solid #999;}
|
|
|
278
287
|
.it-contact-role{font-size:0.82rem;color:#555;}
|
|
279
288
|
.it-contact-org{font-size:0.82rem;color:#555;}
|
|
280
289
|
.it-contact-email a,.it-contact-phone a,.it-contact-url a{color:#111;text-decoration:underline;font-size:0.85rem;}
|
|
281
|
-
.it-deadline{padding:8px 12px;border-
|
|
290
|
+
.it-deadline{padding:8px 12px;border-inline-start:3px solid #4caf50;margin:5px 0;}
|
|
282
291
|
.it-deadline-name{font-weight:600;color:#111;}
|
|
283
292
|
.it-deadline-date{font-size:0.9rem;font-weight:600;color:#111;}
|
|
284
293
|
.it-deadline-consequence{font-size:0.85rem;color:#555;font-style:italic;}
|
package/dist/parser.js
CHANGED
|
@@ -1413,6 +1413,17 @@ function parseIntentText(fileContent, options) {
|
|
|
1413
1413
|
const titleBlock = blocks.find((b) => b.type === "title");
|
|
1414
1414
|
const summaryBlock = blocks.find((b) => b.type === "summary");
|
|
1415
1415
|
const hasArabic = blocks.some((b) => detectArabic(b.content));
|
|
1416
|
+
const dirOverride = (() => {
|
|
1417
|
+
const m = metaAccumulator?.dir;
|
|
1418
|
+
if (m === "rtl" || m === "ltr")
|
|
1419
|
+
return m;
|
|
1420
|
+
for (const b of blocks) {
|
|
1421
|
+
const d = b.properties?.dir;
|
|
1422
|
+
if (d === "rtl" || d === "ltr")
|
|
1423
|
+
return d;
|
|
1424
|
+
}
|
|
1425
|
+
return undefined;
|
|
1426
|
+
})();
|
|
1416
1427
|
const allBlocks = blocks.flatMap(function collect(b) {
|
|
1417
1428
|
return [b, ...(b.children ?? []).flatMap(collect)];
|
|
1418
1429
|
});
|
|
@@ -1430,7 +1441,7 @@ function parseIntentText(fileContent, options) {
|
|
|
1430
1441
|
const metadata = {
|
|
1431
1442
|
title: titleBlock?.content,
|
|
1432
1443
|
summary: summaryBlock?.content,
|
|
1433
|
-
language: hasArabic ? "rtl" : "ltr",
|
|
1444
|
+
language: dirOverride ?? (hasArabic ? "rtl" : "ltr"),
|
|
1434
1445
|
...(agenticMetadata.agent != null && { agent: agenticMetadata.agent }),
|
|
1435
1446
|
...(agenticMetadata.model != null && { model: agenticMetadata.model }),
|
|
1436
1447
|
...(agenticMetadata.context != null && {
|
package/dist/renderer.js
CHANGED
|
@@ -89,6 +89,9 @@ function formatTrustDate(isoStr) {
|
|
|
89
89
|
const day = d.getUTCDate();
|
|
90
90
|
const month = months[d.getUTCMonth()];
|
|
91
91
|
const year = d.getUTCFullYear();
|
|
92
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(isoStr.trim())) {
|
|
93
|
+
return `${day} ${month} ${year}`;
|
|
94
|
+
}
|
|
92
95
|
const hours = String(d.getUTCHours()).padStart(2, "0");
|
|
93
96
|
const minutes = String(d.getUTCMinutes()).padStart(2, "0");
|
|
94
97
|
return `${day} ${month} ${year}, ${hours}:${minutes} UTC`;
|
|
@@ -183,6 +186,16 @@ function getAlignmentClass(props) {
|
|
|
183
186
|
return " intent-align-justify";
|
|
184
187
|
return "";
|
|
185
188
|
}
|
|
189
|
+
function splitEnd(content, props) {
|
|
190
|
+
const end = props.end;
|
|
191
|
+
if (end === undefined || end === "") {
|
|
192
|
+
return { inner: content, splitClass: "" };
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
inner: `<span class="it-split-main">${content}</span><span class="it-split-end" dir="auto">${escapeHtml(String(end))}</span>`,
|
|
196
|
+
splitClass: " it-split",
|
|
197
|
+
};
|
|
198
|
+
}
|
|
186
199
|
const STYLE_PROPERTIES = {
|
|
187
200
|
color: "color",
|
|
188
201
|
size: "font-size",
|
|
@@ -190,7 +203,10 @@ const STYLE_PROPERTIES = {
|
|
|
190
203
|
weight: "font-weight",
|
|
191
204
|
align: "text-align",
|
|
192
205
|
bg: "background-color",
|
|
193
|
-
indent: "padding-
|
|
206
|
+
indent: "padding-inline-start",
|
|
207
|
+
leading: "line-height",
|
|
208
|
+
"space-before": "margin-top",
|
|
209
|
+
"space-after": "margin-bottom",
|
|
194
210
|
opacity: "opacity",
|
|
195
211
|
italic: "font-style",
|
|
196
212
|
border: "border",
|
|
@@ -285,15 +301,16 @@ function renderBlock(block) {
|
|
|
285
301
|
const alignClass = getAlignmentClass(props);
|
|
286
302
|
const inlineStyle = extractInlineStyles(props);
|
|
287
303
|
const styleAttr = inlineStyle ? ` style="${inlineStyle}"` : "";
|
|
304
|
+
const { inner: splitContent, splitClass } = splitEnd(content, props);
|
|
288
305
|
switch (block.type) {
|
|
289
306
|
case "title":
|
|
290
|
-
return `<h1 class="intent-title${alignClass}"${styleAttr}>${
|
|
307
|
+
return `<h1 class="intent-title${alignClass}${splitClass}"${styleAttr}>${splitContent}</h1>`;
|
|
291
308
|
case "summary":
|
|
292
309
|
return `<div class="intent-summary${alignClass}"${styleAttr}>${content}</div>`;
|
|
293
310
|
case "section":
|
|
294
|
-
return `<h2 id="${slugify(block.content)}" class="intent-section${alignClass}"${styleAttr}>${
|
|
311
|
+
return `<h2 id="${slugify(block.content)}" class="intent-section${alignClass}${splitClass}"${styleAttr}>${splitContent}</h2>`;
|
|
295
312
|
case "sub":
|
|
296
|
-
return `<h3 id="${slugify(block.content)}" class="intent-sub${alignClass}"${styleAttr}>${
|
|
313
|
+
return `<h3 id="${slugify(block.content)}" class="intent-sub${alignClass}${splitClass}"${styleAttr}>${splitContent}</h3>`;
|
|
297
314
|
case "divider":
|
|
298
315
|
const dividerStyle = props.style
|
|
299
316
|
? escapeHtml(String(props.style).replace(/[;{}"]/g, ""))
|
|
@@ -306,9 +323,9 @@ function renderBlock(block) {
|
|
|
306
323
|
${label}
|
|
307
324
|
</div>`;
|
|
308
325
|
case "text":
|
|
309
|
-
return `<p class="intent-text${alignClass}"${styleAttr}>${
|
|
326
|
+
return `<p class="intent-text${alignClass}${splitClass}"${styleAttr}>${splitContent}</p>`;
|
|
310
327
|
case "body-text":
|
|
311
|
-
return `<p class="intent-prose${alignClass}"${styleAttr}>${
|
|
328
|
+
return `<p class="intent-prose${alignClass}${splitClass}"${styleAttr}>${splitContent}</p>`;
|
|
312
329
|
case "info": {
|
|
313
330
|
const CALLOUT_VARIANTS = {
|
|
314
331
|
info: "Note",
|
|
@@ -332,9 +349,9 @@ function renderBlock(block) {
|
|
|
332
349
|
<input class="intent-task-checkbox" type="checkbox"${isDone ? " checked" : ""} />
|
|
333
350
|
<span class="intent-task-text${isDone ? " intent-task-text-done" : ""}">${content}</span>
|
|
334
351
|
<span class="intent-task-meta">
|
|
335
|
-
${props.owner ? `<span class="intent-task-owner">${escapeHtml(String(props.owner))}</span>` : ""}
|
|
336
|
-
${props.due ? `<span class="intent-task-due">${escapeHtml(String(props.due))}</span>` : ""}
|
|
337
|
-
${props.time ? `<span class="intent-task-time">${escapeHtml(String(props.time))}</span>` : ""}
|
|
352
|
+
${props.owner ? `<span class="intent-task-owner" dir="auto">${escapeHtml(String(props.owner))}</span>` : ""}
|
|
353
|
+
${props.due ? `<span class="intent-task-due" dir="auto">${escapeHtml(String(props.due))}</span>` : ""}
|
|
354
|
+
${props.time ? `<span class="intent-task-time" dir="auto">${escapeHtml(String(props.time))}</span>` : ""}
|
|
338
355
|
</span>
|
|
339
356
|
</div>`;
|
|
340
357
|
}
|
|
@@ -423,12 +440,12 @@ function renderBlock(block) {
|
|
|
423
440
|
const rows = block.table?.rows || [];
|
|
424
441
|
const thead = headers
|
|
425
442
|
? `<thead><tr>${headers
|
|
426
|
-
.map((h) => `<th class="intent-table-th">${escapeHtml(h)}</th>`)
|
|
443
|
+
.map((h) => `<th class="intent-table-th" dir="auto">${escapeHtml(h)}</th>`)
|
|
427
444
|
.join("")}</tr></thead>`
|
|
428
445
|
: "";
|
|
429
446
|
const tbody = `<tbody>${rows
|
|
430
447
|
.map((row) => `<tr class="intent-row">${row
|
|
431
|
-
.map((c) => `<td class="intent-table-td">${escapeHtml(c)}</td>`)
|
|
448
|
+
.map((c) => `<td class="intent-table-td" dir="auto">${escapeHtml(c)}</td>`)
|
|
432
449
|
.join("")}</tr>`)
|
|
433
450
|
.join("")}</tbody>`;
|
|
434
451
|
return `<table class="intent-table">${thead}${tbody}</table>`;
|
|
@@ -437,9 +454,9 @@ function renderBlock(block) {
|
|
|
437
454
|
const listItemProps = block.properties || {};
|
|
438
455
|
const listItemMeta = [
|
|
439
456
|
listItemProps.owner &&
|
|
440
|
-
`<span class="intent-task-owner">${escapeHtml(String(listItemProps.owner))}</span>`,
|
|
457
|
+
`<span class="intent-task-owner" dir="auto">${escapeHtml(String(listItemProps.owner))}</span>`,
|
|
441
458
|
listItemProps.due &&
|
|
442
|
-
`<span class="intent-task-due">${escapeHtml(String(listItemProps.due))}</span>`,
|
|
459
|
+
`<span class="intent-task-due" dir="auto">${escapeHtml(String(listItemProps.due))}</span>`,
|
|
443
460
|
]
|
|
444
461
|
.filter(Boolean)
|
|
445
462
|
.join(" ");
|
|
@@ -525,7 +542,7 @@ function renderBlock(block) {
|
|
|
525
542
|
return `<div class="intent-context"><code>${content}</code></div>`;
|
|
526
543
|
}
|
|
527
544
|
const ctxRows = ctxEntries
|
|
528
|
-
.map(([k, v]) => `<tr><td class="intent-context-key">${escapeHtml(k)}</td><td class="intent-context-val">${escapeHtml(String(v))}</td></tr>`)
|
|
545
|
+
.map(([k, v]) => `<tr><td class="intent-context-key" dir="auto">${escapeHtml(k)}</td><td class="intent-context-val" dir="auto">${escapeHtml(String(v))}</td></tr>`)
|
|
529
546
|
.join("");
|
|
530
547
|
return `<table class="intent-context-table"><tbody>${ctxRows}</tbody></table>`;
|
|
531
548
|
}
|
|
@@ -797,12 +814,10 @@ function renderBlock(block) {
|
|
|
797
814
|
const approveRole = props.role ? escapeHtml(String(props.role)) : "";
|
|
798
815
|
const approveAt = props.at ? formatTrustDate(String(props.at)) : "";
|
|
799
816
|
return `<div class="it-approval">
|
|
800
|
-
<span class="it-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
${approveAt ? `<span class="it-approval__date">${approveAt}</span>` : ""}
|
|
805
|
-
</div>
|
|
817
|
+
<span class="it-approval__label">Approved</span>
|
|
818
|
+
${content ? `<span class="it-approval__what">${content}</span>` : ""}
|
|
819
|
+
<span class="it-approval__who">${approveBy}${approveRole ? `, ${approveRole}` : ""}</span>
|
|
820
|
+
${approveAt ? `<span class="it-approval__date">${approveAt}</span>` : ""}
|
|
806
821
|
</div>`;
|
|
807
822
|
}
|
|
808
823
|
case "sign": {
|
|
@@ -814,7 +829,7 @@ function renderBlock(block) {
|
|
|
814
829
|
<span class="it-signature__name">${signerName}</span>
|
|
815
830
|
${signRole ? `<span class="it-signature__role">${signRole}</span>` : ""}
|
|
816
831
|
${signAt ? `<span class="it-signature__date">${signAt}</span>` : ""}
|
|
817
|
-
<span class="it-signature__status">${signValid ? "
|
|
832
|
+
<span class="it-signature__status">${signValid ? "Signed · verified" : "Unverified"}</span>
|
|
818
833
|
</div>`;
|
|
819
834
|
}
|
|
820
835
|
case "freeze": {
|
|
@@ -823,8 +838,7 @@ function renderBlock(block) {
|
|
|
823
838
|
? escapeHtml(String(props.hash)).slice(0, 20) + "..."
|
|
824
839
|
: "";
|
|
825
840
|
return `<div class="it-sealed-banner">
|
|
826
|
-
<span class="it-sealed-
|
|
827
|
-
<span class="it-sealed-banner__text">Sealed Document</span>
|
|
841
|
+
<span class="it-sealed-banner__text">Sealed document</span>
|
|
828
842
|
${freezeAt ? `<span class="it-sealed-banner__date">${freezeAt}</span>` : ""}
|
|
829
843
|
${freezeHash ? `<span class="it-sealed-banner__hash">${freezeHash}</span>` : ""}
|
|
830
844
|
</div>`;
|
|
@@ -852,7 +866,7 @@ function renderBlock(block) {
|
|
|
852
866
|
const valueText = [val, unit].filter(Boolean).join(" ");
|
|
853
867
|
return `<div class="it-metric-row${isTotal ? " it-metric-row--total" : ""}">
|
|
854
868
|
<span class="it-metric-row__label">${content}</span>
|
|
855
|
-
<span class="it-metric-row__value">${valueText}</span>
|
|
869
|
+
<span class="it-metric-row__value" dir="auto">${valueText}</span>
|
|
856
870
|
</div>`;
|
|
857
871
|
}
|
|
858
872
|
const trendIcon = trend === "up"
|
|
@@ -869,7 +883,7 @@ function renderBlock(block) {
|
|
|
869
883
|
}
|
|
870
884
|
return `<div class="it-metric ${colorClass}">
|
|
871
885
|
<div class="it-metric-name">${content}</div>
|
|
872
|
-
<div class="it-metric-value">${val}<span class="it-metric-unit">${unit}</span></div>
|
|
886
|
+
<div class="it-metric-value" dir="auto">${val}<span class="it-metric-unit">${unit}</span></div>
|
|
873
887
|
${target ? `<div class="it-metric-target">Target: ${escapeHtml(target)}</div>` : ""}
|
|
874
888
|
${trendIcon ? `<div class="it-metric-trend">${trendIcon}</div>` : ""}
|
|
875
889
|
${period ? `<div class="it-metric-period">${period}</div>` : ""}
|
|
@@ -943,8 +957,8 @@ function renderBlock(block) {
|
|
|
943
957
|
<div class="it-contact-name">${content}</div>
|
|
944
958
|
${cRole ? `<div class="it-contact-role">${cRole}</div>` : ""}
|
|
945
959
|
${cOrg ? `<div class="it-contact-org">${cOrg}</div>` : ""}
|
|
946
|
-
${cEmail ? `<div class="it-contact-email"><a href="mailto:${escapeHtml(cEmail)}">${escapeHtml(cEmail)}</a></div>` : ""}
|
|
947
|
-
${cPhone ? `<div class="it-contact-phone"><a href="tel:${escapeHtml(cPhone)}">${escapeHtml(cPhone)}</a></div>` : ""}
|
|
960
|
+
${cEmail ? `<div class="it-contact-email" dir="auto"><a href="mailto:${escapeHtml(cEmail)}">${escapeHtml(cEmail)}</a></div>` : ""}
|
|
961
|
+
${cPhone ? `<div class="it-contact-phone" dir="auto"><a href="tel:${escapeHtml(cPhone)}">${escapeHtml(cPhone)}</a></div>` : ""}
|
|
948
962
|
${cUrl2 ? `<div class="it-contact-url"><a href="${escapeHtml(sanitizeUrl(cUrl2))}">${escapeHtml(cUrl2)}</a></div>` : ""}
|
|
949
963
|
</div>`;
|
|
950
964
|
}
|
|
@@ -970,7 +984,7 @@ function renderBlock(block) {
|
|
|
970
984
|
}
|
|
971
985
|
return `<div class="it-deadline ${dlColorClass}">
|
|
972
986
|
<div class="it-deadline-name">${content}</div>
|
|
973
|
-
${dlDate ? `<div class="it-deadline-date">${escapeHtml(dlDate)}</div>` : ""}
|
|
987
|
+
${dlDate ? `<div class="it-deadline-date" dir="auto">${escapeHtml(dlDate)}</div>` : ""}
|
|
974
988
|
${dlConsequence ? `<div class="it-deadline-consequence">${dlConsequence}</div>` : ""}
|
|
975
989
|
${dlOwner ? `<div class="it-deadline-owner">${dlOwner}</div>` : ""}
|
|
976
990
|
${dlAuthority ? `<div class="it-deadline-authority">${dlAuthority}</div>` : ""}
|
|
@@ -1236,7 +1250,7 @@ body.it-print h2{font-size:1.3em;margin-top:1.5em;}
|
|
|
1236
1250
|
body.it-print h3{font-size:1.1em;}
|
|
1237
1251
|
body.it-print p{margin:0 0 0.8em 0;orphans:3;widows:3;}
|
|
1238
1252
|
body.it-print table{width:100%;border-collapse:collapse;margin:1em 0;}
|
|
1239
|
-
body.it-print th{border-bottom:2px solid #000;padding:4pt 8pt;text-align:
|
|
1253
|
+
body.it-print th{border-bottom:2px solid #000;padding:4pt 8pt;text-align:start;}
|
|
1240
1254
|
body.it-print td{border-bottom:1px solid #ccc;padding:4pt 8pt;}
|
|
1241
1255
|
/* Keep table rows whole across page breaks so they aren't clipped behind the
|
|
1242
1256
|
running footer/header, and repeat the table header on every page. */
|
|
@@ -1246,20 +1260,20 @@ body.it-print tfoot{display:table-footer-group;}
|
|
|
1246
1260
|
/* Sections may legitimately span pages; only avoid splitting their headings. */
|
|
1247
1261
|
body.it-print section{break-inside:auto;}
|
|
1248
1262
|
body.it-print h1,body.it-print h2,body.it-print h3{break-after:avoid;page-break-after:avoid;}
|
|
1249
|
-
body.it-print .intent-callout{border-
|
|
1263
|
+
body.it-print .intent-callout{border-inline-start:3pt solid #000;padding-inline-start:10pt;margin:1em 0;}
|
|
1250
1264
|
body.it-print .intent-quote{font-style:italic;margin:1em 2em;}
|
|
1251
1265
|
body.it-print .it-byline{font-size:0.9em;color:#333;margin-bottom:1.5em;}
|
|
1252
1266
|
body.it-print .it-byline .it-byline-author{font-weight:bold;display:block;}
|
|
1253
1267
|
body.it-print .it-byline .it-byline-meta{font-size:0.85em;color:#666;}
|
|
1254
1268
|
body.it-print .it-epigraph{font-style:italic;text-align:center;margin:2em 3em;border:none;padding:0;}
|
|
1255
|
-
body.it-print .it-epigraph .it-epigraph-by{display:block;text-align:
|
|
1269
|
+
body.it-print .it-epigraph .it-epigraph-by{display:block;text-align:end;font-size:0.9em;margin-top:0.5em;}
|
|
1256
1270
|
body.it-print .it-caption{font-size:0.85em;font-style:italic;text-align:center;color:#444;margin-top:0.3em;margin-bottom:1em;}
|
|
1257
1271
|
body.it-print .it-dedication{font-style:italic;text-align:center;margin:4em auto;page-break-after:always;}
|
|
1258
1272
|
body.it-print .it-toc{margin:2em 0;}
|
|
1259
1273
|
body.it-print .it-toc ol{list-style:none;padding:0;}
|
|
1260
1274
|
body.it-print .it-toc li{margin:0.3em 0;}
|
|
1261
1275
|
body.it-print .it-footnotes{border-top:1pt solid #ccc;margin-top:2em;padding-top:0.5em;font-size:0.85em;}
|
|
1262
|
-
body.it-print .it-footnotes ol{padding-
|
|
1276
|
+
body.it-print .it-footnotes ol{padding-inline-start:1.5em;margin:0;}
|
|
1263
1277
|
body.it-print .it-footnotes li{margin:0.3em 0;}
|
|
1264
1278
|
body.it-print sup.it-fn-ref{font-size:0.7em;vertical-align:super;}
|
|
1265
1279
|
body.it-print .it-page-break{page-break-after:always;break-after:page;height:0;}
|
|
@@ -1270,7 +1284,7 @@ body.it-print .intent-task-done::before{content:"\\2611 ";}
|
|
|
1270
1284
|
body.it-print .it-ref-card{border:none;padding:0;margin:0.5em 0;font-style:italic;}
|
|
1271
1285
|
body.it-print .it-def{margin:0.3em 0;}
|
|
1272
1286
|
body.it-print .it-def-term{font-weight:bold;}
|
|
1273
|
-
body.it-print .it-def-meaning{padding-
|
|
1287
|
+
body.it-print .it-def-meaning{padding-inline-start:1.5em;}
|
|
1274
1288
|
body.it-print .it-metric{border:1pt solid #ccc;padding:6pt 10pt;display:inline-block;min-width:100pt;margin:4pt;vertical-align:top;}
|
|
1275
1289
|
body.it-print .it-amendment{border:2pt solid #000;padding:8pt 12pt;margin:1em 0;}
|
|
1276
1290
|
body.it-print .it-amendment-ref{border:1pt solid #000;color:#000;}
|
|
@@ -1280,7 +1294,7 @@ body.it-print .it-figure-caption{font-size:0.85em;font-style:italic;text-align:c
|
|
|
1280
1294
|
body.it-print .it-signline{display:inline-block;width:45%;margin:2em 2%;vertical-align:top;}
|
|
1281
1295
|
body.it-print .it-signline-rule{border-bottom:1pt solid #000;margin-bottom:4pt;}
|
|
1282
1296
|
body.it-print .it-contact{border:none;padding:0;margin:0.3em 0;}
|
|
1283
|
-
body.it-print .it-deadline{border-
|
|
1297
|
+
body.it-print .it-deadline{border-inline-start:3pt solid #000;padding-inline-start:8pt;margin:0.5em 0;}
|
|
1284
1298
|
body.it-print .it-deadline-date{font-weight:bold;text-decoration:underline;}
|
|
1285
1299
|
</style></head><body class="${bodyClass}"><div class="intent-document">${watermarkHtml}${html}</div></body></html>`;
|
|
1286
1300
|
}
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"margin-top": "2em"
|
|
38
38
|
},
|
|
39
39
|
"warning": {
|
|
40
|
-
"border-
|
|
40
|
+
"border-inline-start": "4px solid",
|
|
41
41
|
"border-color": "trust-warning",
|
|
42
|
-
"padding-
|
|
42
|
+
"padding-inline-start": "1em",
|
|
43
43
|
"background": "#fef2f2"
|
|
44
44
|
},
|
|
45
45
|
"quote": {
|
|
46
|
-
"border-
|
|
46
|
+
"border-inline-start": "3px solid",
|
|
47
47
|
"border-color": "accent",
|
|
48
|
-
"padding-
|
|
48
|
+
"padding-inline-start": "1em",
|
|
49
49
|
"font-style": "italic",
|
|
50
50
|
"color": "muted"
|
|
51
51
|
},
|
package/dist/themes/dark.json
CHANGED
|
@@ -42,15 +42,15 @@
|
|
|
42
42
|
"border-radius": "4px"
|
|
43
43
|
},
|
|
44
44
|
"warning": {
|
|
45
|
-
"border-
|
|
45
|
+
"border-inline-start": "4px solid",
|
|
46
46
|
"border-color": "trust-warning",
|
|
47
|
-
"padding-
|
|
47
|
+
"padding-inline-start": "1em",
|
|
48
48
|
"background": "#1f1010"
|
|
49
49
|
},
|
|
50
50
|
"quote": {
|
|
51
|
-
"border-
|
|
51
|
+
"border-inline-start": "3px solid",
|
|
52
52
|
"border-color": "accent",
|
|
53
|
-
"padding-
|
|
53
|
+
"padding-inline-start": "1em",
|
|
54
54
|
"font-style": "italic",
|
|
55
55
|
"color": "muted"
|
|
56
56
|
}
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"border-bottom": true
|
|
39
39
|
},
|
|
40
40
|
"quote": {
|
|
41
|
-
"border-
|
|
41
|
+
"border-inline-start": "4px solid",
|
|
42
42
|
"border-color": "accent",
|
|
43
|
-
"padding-
|
|
43
|
+
"padding-inline-start": "1em",
|
|
44
44
|
"font-size": "1.15em",
|
|
45
45
|
"font-style": "italic"
|
|
46
46
|
}
|
package/dist/themes/minimal.json
CHANGED
package/dist/themes/print.json
CHANGED
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"border-bottom": true
|
|
38
38
|
},
|
|
39
39
|
"quote": {
|
|
40
|
-
"padding-
|
|
40
|
+
"padding-inline-start": "1em",
|
|
41
41
|
"font-style": "italic"
|
|
42
42
|
},
|
|
43
43
|
"warning": {
|
|
44
|
-
"border-
|
|
45
|
-
"padding-
|
|
44
|
+
"border-inline-start": "3px solid #000",
|
|
45
|
+
"padding-inline-start": "1em"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"print": {
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"border-color": "border"
|
|
45
45
|
},
|
|
46
46
|
"warning": {
|
|
47
|
-
"border-
|
|
47
|
+
"border-inline-start": "4px solid",
|
|
48
48
|
"border-color": "trust-warning",
|
|
49
|
-
"padding-
|
|
49
|
+
"padding-inline-start": "1em",
|
|
50
50
|
"background": "#fef2f2"
|
|
51
51
|
}
|
|
52
52
|
},
|
package/dist/themes/warm.json
CHANGED
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"margin-top": "2em"
|
|
38
38
|
},
|
|
39
39
|
"quote": {
|
|
40
|
-
"border-
|
|
40
|
+
"border-inline-start": "3px solid",
|
|
41
41
|
"border-color": "accent",
|
|
42
|
-
"padding-
|
|
42
|
+
"padding-inline-start": "1.2em",
|
|
43
43
|
"font-style": "italic",
|
|
44
44
|
"color": "muted"
|
|
45
45
|
}
|