@echelon-foundry/design-system 0.2.0 → 0.3.0-main.216.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -0
  3. package/dist/all.css +5537 -841
  4. package/dist/assessment.css +55 -12
  5. package/dist/build-metrics.json +181 -5
  6. package/dist/components.css +2965 -36
  7. package/dist/foundations.css +90 -0
  8. package/dist/marketing/forma-all.css +8162 -0
  9. package/dist/marketing/forma-echelon-marketing.css +2109 -0
  10. package/dist/marketing/forma-marketing-theme-echelon.css +163 -0
  11. package/dist/marketing/forma-marketing.css +1947 -0
  12. package/dist/marketing/forma-marketing.manifest.json +52 -0
  13. package/dist/marketing/forma-marketing.sha256 +4 -0
  14. package/dist/marketing.css +1198 -0
  15. package/dist/patterns/active-filter-summary.html +10 -0
  16. package/dist/patterns/attention-path.html +29 -0
  17. package/dist/patterns/badge.html +9 -0
  18. package/dist/patterns/callout.html +23 -0
  19. package/dist/patterns/card-grid.html +25 -0
  20. package/dist/patterns/character-grid-3270.html +39 -0
  21. package/dist/patterns/character-grid-field.html +21 -0
  22. package/dist/patterns/character-grid-keys.html +20 -0
  23. package/dist/patterns/character-grid-reveal.html +16 -0
  24. package/dist/patterns/character-grid-selection.html +30 -0
  25. package/dist/patterns/character-grid-status.html +11 -0
  26. package/dist/patterns/character-grid-workflow.html +147 -0
  27. package/dist/patterns/character-grid.html +16 -0
  28. package/dist/patterns/cluster.html +5 -0
  29. package/dist/patterns/code-sample.html +9 -0
  30. package/dist/patterns/command-group.html +6 -0
  31. package/dist/patterns/comparison-grid.html +7 -0
  32. package/dist/patterns/comparison-pairs.html +13 -0
  33. package/dist/patterns/cta.html +12 -0
  34. package/dist/patterns/dense-ledger.html +7 -0
  35. package/dist/patterns/diagnostic-status.html +7 -0
  36. package/dist/patterns/diagram.html +49 -0
  37. package/dist/patterns/documentation-layout.html +18 -0
  38. package/dist/patterns/emphasis-budget.html +21 -0
  39. package/dist/patterns/entry-index.html +16 -0
  40. package/dist/patterns/evidence-relationship.html +1 -0
  41. package/dist/patterns/facts.html +7 -0
  42. package/dist/patterns/fault-banner.html +19 -0
  43. package/dist/patterns/fault-blocking.html +25 -0
  44. package/dist/patterns/fault-details.html +11 -0
  45. package/dist/patterns/fault-inline.html +17 -0
  46. package/dist/patterns/fault-notification.html +20 -0
  47. package/dist/patterns/fault-reference.html +5 -0
  48. package/dist/patterns/fault-summary.html +20 -0
  49. package/dist/patterns/fault.html +17 -0
  50. package/dist/patterns/feed-item.html +12 -0
  51. package/dist/patterns/focus-stage.html +4 -0
  52. package/dist/patterns/frame.html +4 -0
  53. package/dist/patterns/freshness.html +1 -0
  54. package/dist/patterns/handoff-summary.html +1 -0
  55. package/dist/patterns/hero.html +17 -0
  56. package/dist/patterns/hierarchy-tree.html +11 -0
  57. package/dist/patterns/identifier.html +9 -0
  58. package/dist/patterns/landmark-region.html +4 -0
  59. package/dist/patterns/lane-board.html +10 -0
  60. package/dist/patterns/marketing-shell.html +40 -0
  61. package/dist/patterns/measure.html +4 -0
  62. package/dist/patterns/metric-value-change.html +9 -0
  63. package/dist/patterns/mosaic.html +6 -0
  64. package/dist/patterns/navigation-shell.html +8 -0
  65. package/dist/patterns/overflow-command-disclosure.html +6 -0
  66. package/dist/patterns/overview-disclosure.html +12 -0
  67. package/dist/patterns/path-summary.html +8 -0
  68. package/dist/patterns/priority-stack.html +4 -0
  69. package/dist/patterns/progress-bar.html +15 -0
  70. package/dist/patterns/prose.html +9 -0
  71. package/dist/patterns/rail.html +4 -0
  72. package/dist/patterns/recovery-actions.html +5 -0
  73. package/dist/patterns/relationship-index.html +8 -0
  74. package/dist/patterns/reorder-states.html +31 -0
  75. package/dist/patterns/resizable-split-pane.html +11 -0
  76. package/dist/patterns/responsive-grid.html +5 -0
  77. package/dist/patterns/scope-trail.html +1 -0
  78. package/dist/patterns/scroll-progress.html +6 -0
  79. package/dist/patterns/section-heading.html +12 -0
  80. package/dist/patterns/security-blockers.html +3 -0
  81. package/dist/patterns/security-evidence-age.html +1 -0
  82. package/dist/patterns/security-evidence-chain.html +2 -0
  83. package/dist/patterns/security-exception.html +2 -0
  84. package/dist/patterns/security-invariant-result.html +1 -0
  85. package/dist/patterns/security-posture.html +22 -0
  86. package/dist/patterns/security-state-matrix.html +5 -0
  87. package/dist/patterns/security-trend.html +1 -0
  88. package/dist/patterns/security-unknown.html +2 -0
  89. package/dist/patterns/sidebar.html +4 -0
  90. package/dist/patterns/site-footer.html +12 -0
  91. package/dist/patterns/site-header.html +18 -0
  92. package/dist/patterns/spatial-canvas.html +13 -0
  93. package/dist/patterns/spinner.html +4 -0
  94. package/dist/patterns/split-pane.html +4 -0
  95. package/dist/patterns/stack.html +5 -0
  96. package/dist/patterns/state-survivability.html +19 -0
  97. package/dist/patterns/steps.html +8 -0
  98. package/dist/patterns/switcher.html +4 -0
  99. package/dist/patterns/tooltip.html +48 -0
  100. package/dist/patterns/verification-frame.html +22 -0
  101. package/dist/patterns/workspace-shell.html +6 -0
  102. package/dist/tokens.css +436 -1
  103. package/docs/BRANDING.md +6 -1
  104. package/docs/MARKETING-SITES.md +321 -0
  105. package/figma/component-contracts.json +1544 -0
  106. package/package.json +34 -8
  107. package/patterns/active-filter-summary.html +10 -0
  108. package/patterns/aegis-faults.manifest.md +81 -0
  109. package/patterns/attention-path.html +29 -0
  110. package/patterns/badge.html +9 -0
  111. package/patterns/callout.html +23 -0
  112. package/patterns/card-grid.html +25 -0
  113. package/patterns/character-grid-3270.html +39 -0
  114. package/patterns/character-grid-field.html +21 -0
  115. package/patterns/character-grid-keys.html +20 -0
  116. package/patterns/character-grid-reveal.html +16 -0
  117. package/patterns/character-grid-selection.html +30 -0
  118. package/patterns/character-grid-status.html +11 -0
  119. package/patterns/character-grid-workflow.html +147 -0
  120. package/patterns/character-grid.html +16 -0
  121. package/patterns/cluster.html +5 -0
  122. package/patterns/code-sample.html +9 -0
  123. package/patterns/command-group.html +6 -0
  124. package/patterns/comparison-grid.html +7 -0
  125. package/patterns/comparison-pairs.html +13 -0
  126. package/patterns/cta.html +12 -0
  127. package/patterns/dense-ledger.html +7 -0
  128. package/patterns/diagnostic-status.html +7 -0
  129. package/patterns/diagram.html +49 -0
  130. package/patterns/documentation-layout.html +18 -0
  131. package/patterns/emphasis-budget.html +21 -0
  132. package/patterns/entry-index.html +16 -0
  133. package/patterns/evidence-relationship.html +1 -0
  134. package/patterns/facts.html +7 -0
  135. package/patterns/fault-banner.html +19 -0
  136. package/patterns/fault-blocking.html +25 -0
  137. package/patterns/fault-details.html +11 -0
  138. package/patterns/fault-inline.html +17 -0
  139. package/patterns/fault-notification.html +20 -0
  140. package/patterns/fault-reference.html +5 -0
  141. package/patterns/fault-summary.html +20 -0
  142. package/patterns/fault.html +17 -0
  143. package/patterns/feed-item.html +12 -0
  144. package/patterns/focus-stage.html +4 -0
  145. package/patterns/frame.html +4 -0
  146. package/patterns/freshness.html +1 -0
  147. package/patterns/handoff-summary.html +1 -0
  148. package/patterns/hero.html +17 -0
  149. package/patterns/hierarchy-tree.html +11 -0
  150. package/patterns/identifier.html +9 -0
  151. package/patterns/landmark-region.html +4 -0
  152. package/patterns/lane-board.html +10 -0
  153. package/patterns/manifest.md +2 -0
  154. package/patterns/marketing-shell.html +40 -0
  155. package/patterns/measure.html +4 -0
  156. package/patterns/metric-value-change.html +9 -0
  157. package/patterns/mosaic.html +6 -0
  158. package/patterns/navigation-shell.html +8 -0
  159. package/patterns/overflow-command-disclosure.html +6 -0
  160. package/patterns/overview-disclosure.html +12 -0
  161. package/patterns/path-summary.html +8 -0
  162. package/patterns/priority-stack.html +4 -0
  163. package/patterns/progress-bar.html +15 -0
  164. package/patterns/prose.html +9 -0
  165. package/patterns/rail.html +4 -0
  166. package/patterns/recovery-actions.html +5 -0
  167. package/patterns/relationship-index.html +8 -0
  168. package/patterns/reorder-states.html +31 -0
  169. package/patterns/resizable-split-pane.html +11 -0
  170. package/patterns/responsive-grid.html +5 -0
  171. package/patterns/scope-trail.html +1 -0
  172. package/patterns/scroll-progress.html +6 -0
  173. package/patterns/section-heading.html +12 -0
  174. package/patterns/security-blockers.html +3 -0
  175. package/patterns/security-evidence-age.html +1 -0
  176. package/patterns/security-evidence-chain.html +2 -0
  177. package/patterns/security-exception.html +2 -0
  178. package/patterns/security-invariant-result.html +1 -0
  179. package/patterns/security-posture.html +22 -0
  180. package/patterns/security-posture.manifest.md +20 -0
  181. package/patterns/security-state-matrix.html +5 -0
  182. package/patterns/security-trend.html +1 -0
  183. package/patterns/security-unknown.html +2 -0
  184. package/patterns/sidebar.html +4 -0
  185. package/patterns/site-footer.html +12 -0
  186. package/patterns/site-header.html +18 -0
  187. package/patterns/spatial-canvas.html +13 -0
  188. package/patterns/spinner.html +4 -0
  189. package/patterns/split-pane.html +4 -0
  190. package/patterns/stack.html +5 -0
  191. package/patterns/state-survivability.html +19 -0
  192. package/patterns/steps.html +8 -0
  193. package/patterns/switcher.html +4 -0
  194. package/patterns/tooltip.html +48 -0
  195. package/patterns/verification-frame.html +22 -0
  196. package/patterns/workspace-shell.html +6 -0
  197. package/schemas/brand-manifest.schema.json +17 -3
  198. package/tokens/echelon.tokens.json +2801 -0
@@ -0,0 +1,147 @@
1
+ <div class="ef-stack">
2
+ <div class="ef-character-grid" data-ef-profile="ibm-3270" data-ef-rows="24" data-ef-status-rows="1" data-ef-columns="80" data-ef-narrow="contained" data-ef-reveal="sequential" data-ef-reveal-rows="1">
3
+ <div class="ef-character-grid__viewport" role="region" aria-labelledby="character-grid-workflow-cinq-title" tabindex="0">
4
+ <form class="ef-character-grid__surface">
5
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="2" data-ef-len="4">CINQ</span>
6
+ <h2 class="ef-character-grid__text" id="character-grid-workflow-cinq-title" data-ef-reveal-run data-ef-emphasis="intensified" data-ef-row="1" data-ef-col="33" data-ef-len="16">CUSTOMER INQUIRY</h2>
7
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="64" data-ef-len="5">Date:</span>
8
+ <span class="ef-character-grid__value" data-ef-row="1" data-ef-col="70" data-ef-len="10">2026-09-27</span>
9
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="2" data-ef-len="7">System:</span>
10
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="10" data-ef-len="8">ECHT01</span>
11
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="60" data-ef-len="9">Operator:</span>
12
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="70" data-ef-len="8">OP0142</span>
13
+ <p class="ef-character-grid__text" data-ef-row="4" data-ef-col="2" data-ef-len="52">Enter one or more search criteria, then press Enter.</p>
14
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-custno" data-ef-row="6" data-ef-col="2" data-ef-len="23">Customer number<span class="ef-character-grid__leader" aria-hidden="true"> . . . .</span></label>
15
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-custno" name="custno" type="text" maxlength="10" autocomplete="off" inputmode="numeric" data-ef-row="6" data-ef-col="26" data-ef-len="10">
16
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-last" data-ef-row="7" data-ef-col="2" data-ef-len="23">Last name<span class="ef-character-grid__leader" aria-hidden="true"> . . . . . . .</span></label>
17
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-last" name="last" type="text" maxlength="20" autocomplete="off" data-ef-row="7" data-ef-col="26" data-ef-len="20">
18
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-first" data-ef-row="8" data-ef-col="2" data-ef-len="23">First name<span class="ef-character-grid__leader" aria-hidden="true"> . . . . . .</span></label>
19
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-first" name="first" type="text" maxlength="15" autocomplete="off" data-ef-row="8" data-ef-col="26" data-ef-len="15">
20
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-dob" data-ef-row="9" data-ef-col="2" data-ef-len="23">Date of birth<span class="ef-character-grid__leader" aria-hidden="true"> . . . . .</span></label>
21
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-dob" name="dob" type="text" maxlength="10" autocomplete="off" aria-describedby="character-grid-workflow-cinq-dob-hint" data-ef-row="9" data-ef-col="26" data-ef-len="10">
22
+ <span class="ef-character-grid__text" id="character-grid-workflow-cinq-dob-hint" data-ef-emphasis="muted" data-ef-row="9" data-ef-col="38" data-ef-len="12">(YYYY-MM-DD)</span>
23
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-postal" data-ef-row="10" data-ef-col="2" data-ef-len="23">Postal code<span class="ef-character-grid__leader" aria-hidden="true"> . . . . . .</span></label>
24
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-postal" name="postal" type="text" maxlength="10" autocomplete="off" data-ef-row="10" data-ef-col="26" data-ef-len="10">
25
+ <label class="ef-character-grid__label" for="character-grid-workflow-cinq-acct" data-ef-row="11" data-ef-col="2" data-ef-len="23">Account number<span class="ef-character-grid__leader" aria-hidden="true"> . . . .</span></label>
26
+ <input class="ef-character-grid__field" id="character-grid-workflow-cinq-acct" name="acct" type="text" maxlength="14" autocomplete="off" data-ef-row="11" data-ef-col="26" data-ef-len="14">
27
+ <p class="ef-character-grid__text" data-ef-row="13" data-ef-col="2" data-ef-len="75">At least one criterion is required. Last names match from the first letter.</p>
28
+ <p class="ef-character-grid__message" id="character-grid-workflow-cinq-message" role="status" data-ef-severity="information" data-ef-row="21" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__severity"><span>INFO</span></span> CINQ000I Type search criteria and press Enter.</p>
29
+ <div class="ef-character-grid__group" role="group" aria-label="Function keys">
30
+ <button class="ef-character-grid__key" type="submit" name="action" value="enter" data-ef-action="enter" data-ef-row="22" data-ef-col="2" data-ef-len="12"><kbd>Enter</kbd>=Search</button>
31
+ <button class="ef-character-grid__key" type="submit" name="action" value="clear" formnovalidate data-ef-action="clear" data-ef-row="22" data-ef-col="16" data-ef-len="11"><kbd>Clear</kbd>=Erase</button>
32
+ <button class="ef-character-grid__key" type="button" data-ef-action="reset" data-ef-row="22" data-ef-col="29" data-ef-len="12"><kbd>Reset</kbd>=Unlock</button>
33
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf1" formnovalidate data-ef-action="pf1" data-ef-row="22" data-ef-col="43" data-ef-len="8"><kbd>PF1</kbd>=Help</button>
34
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf3" formnovalidate data-ef-action="pf3" data-ef-row="22" data-ef-col="53" data-ef-len="8"><kbd>PF3</kbd>=Exit</button>
35
+ </div>
36
+ <p class="ef-character-grid__status" role="status" data-ef-row="25" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__indicator"><span>READY</span></span></p>
37
+ </form>
38
+ </div>
39
+ </div>
40
+ <div class="ef-character-grid" data-ef-profile="ibm-3270" data-ef-rows="24" data-ef-status-rows="1" data-ef-columns="80" data-ef-narrow="contained">
41
+ <div class="ef-character-grid__viewport" role="region" aria-labelledby="character-grid-workflow-accd-title" tabindex="0">
42
+ <form class="ef-character-grid__surface">
43
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="2" data-ef-len="4">ACCD</span>
44
+ <h2 class="ef-character-grid__text" id="character-grid-workflow-accd-title" data-ef-emphasis="intensified" data-ef-row="1" data-ef-col="34" data-ef-len="14">ACCOUNT DETAIL</h2>
45
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="64" data-ef-len="5">Date:</span>
46
+ <span class="ef-character-grid__value" data-ef-row="1" data-ef-col="70" data-ef-len="10">2026-09-27</span>
47
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="2" data-ef-len="7">System:</span>
48
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="10" data-ef-len="8">ECHT01</span>
49
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="60" data-ef-len="9">Operator:</span>
50
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="70" data-ef-len="8">OP0142</span>
51
+ <span class="ef-character-grid__text" data-ef-row="4" data-ef-col="2" data-ef-len="17">Customer<span class="ef-character-grid__leader" aria-hidden="true"> . . . :</span></span>
52
+ <span class="ef-character-grid__value" data-ef-row="4" data-ef-col="20" data-ef-len="10">0001042778</span>
53
+ <span class="ef-character-grid__text" data-ef-row="4" data-ef-col="34" data-ef-len="12">Name<span class="ef-character-grid__leader" aria-hidden="true"> . . . :</span></span>
54
+ <span class="ef-character-grid__value" data-ef-row="4" data-ef-col="47" data-ef-len="30">RIVERA, ALEX J</span>
55
+ <span class="ef-character-grid__text" data-ef-row="5" data-ef-col="2" data-ef-len="17">Address<span class="ef-character-grid__leader" aria-hidden="true"> . . . . :</span></span>
56
+ <span class="ef-character-grid__value" data-ef-row="5" data-ef-col="20" data-ef-len="40">1200 HARBOR VIEW DRIVE APT 4B</span>
57
+ <span class="ef-character-grid__value" data-ef-row="6" data-ef-col="20" data-ef-len="40">PORTLAND OR 97209-3311</span>
58
+ <span class="ef-character-grid__text" data-ef-row="7" data-ef-col="2" data-ef-len="17">Phone<span class="ef-character-grid__leader" aria-hidden="true"> . . . . . :</span></span>
59
+ <span class="ef-character-grid__value" data-ef-state="missing" data-ef-row="7" data-ef-col="20" data-ef-len="14">not on file</span>
60
+ <h3 class="ef-character-grid__text" data-ef-emphasis="intensified" data-ef-row="9" data-ef-col="2" data-ef-len="7">ACCOUNT</h3>
61
+ <span class="ef-character-grid__text" data-ef-row="10" data-ef-col="2" data-ef-len="17">Account number<span class="ef-character-grid__leader" aria-hidden="true"> :</span></span>
62
+ <span class="ef-character-grid__value" data-ef-row="10" data-ef-col="20" data-ef-len="14">00417-2231-09</span>
63
+ <span class="ef-character-grid__text" data-ef-row="10" data-ef-col="42" data-ef-len="12">Type<span class="ef-character-grid__leader" aria-hidden="true"> . . . :</span></span>
64
+ <span class="ef-character-grid__value" data-ef-row="10" data-ef-col="55" data-ef-len="12">CHECKING</span>
65
+ <span class="ef-character-grid__text" data-ef-row="11" data-ef-col="2" data-ef-len="17">Status<span class="ef-character-grid__leader" aria-hidden="true"> . . . . :</span></span>
66
+ <span class="ef-character-grid__value" data-ef-row="11" data-ef-col="20" data-ef-len="10">ACTIVE</span>
67
+ <span class="ef-character-grid__text" data-ef-row="11" data-ef-col="42" data-ef-len="12">Opened<span class="ef-character-grid__leader" aria-hidden="true"> . . :</span></span>
68
+ <span class="ef-character-grid__value" data-ef-row="11" data-ef-col="55" data-ef-len="10">2014-03-11</span>
69
+ <span class="ef-character-grid__text" data-ef-row="12" data-ef-col="2" data-ef-len="17">Currency<span class="ef-character-grid__leader" aria-hidden="true"> . . . :</span></span>
70
+ <span class="ef-character-grid__value" data-ef-row="12" data-ef-col="20" data-ef-len="3">USD</span>
71
+ <h3 class="ef-character-grid__text" data-ef-emphasis="intensified" data-ef-row="14" data-ef-col="2" data-ef-len="8">BALANCES</h3>
72
+ <span class="ef-character-grid__text" data-ef-row="15" data-ef-col="2" data-ef-len="17">Ledger balance<span class="ef-character-grid__leader" aria-hidden="true"> :</span></span>
73
+ <span class="ef-character-grid__value" data-ef-align="end" data-ef-row="15" data-ef-col="20" data-ef-len="15">12,480.55</span>
74
+ <span class="ef-character-grid__text" data-ef-row="15" data-ef-col="42" data-ef-len="11">Available<span class="ef-character-grid__leader" aria-hidden="true"> :</span></span>
75
+ <span class="ef-character-grid__value" data-ef-align="end" data-ef-row="15" data-ef-col="55" data-ef-len="15">12,230.55</span>
76
+ <span class="ef-character-grid__text" data-ef-row="16" data-ef-col="2" data-ef-len="17">Holds<span class="ef-character-grid__leader" aria-hidden="true"> . . . . . :</span></span>
77
+ <span class="ef-character-grid__value" data-ef-align="end" data-ef-row="16" data-ef-col="20" data-ef-len="15">250.00</span>
78
+ <span class="ef-character-grid__text" data-ef-row="16" data-ef-col="42" data-ef-len="11">Overdraft<span class="ef-character-grid__leader" aria-hidden="true"> :</span></span>
79
+ <span class="ef-character-grid__value" data-ef-align="end" data-ef-row="16" data-ef-col="55" data-ef-len="15">1,000.00</span>
80
+ <span class="ef-character-grid__text" data-ef-row="18" data-ef-col="2" data-ef-len="17">Last statement<span class="ef-character-grid__leader" aria-hidden="true"> :</span></span>
81
+ <span class="ef-character-grid__value" data-ef-row="18" data-ef-col="20" data-ef-len="10">2026-08-31</span>
82
+ <p class="ef-character-grid__message" id="character-grid-workflow-accd-message" role="status" data-ef-severity="information" data-ef-row="21" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__severity"><span>INFO</span></span> ACCD000I Account 00417-2231-09 displayed.</p>
83
+ <div class="ef-character-grid__group" role="group" aria-label="Function keys">
84
+ <button class="ef-character-grid__key" type="submit" name="action" value="enter" data-ef-action="enter" data-ef-row="22" data-ef-col="2" data-ef-len="13"><kbd>Enter</kbd>=Refresh</button>
85
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf3" formnovalidate data-ef-action="pf3" data-ef-row="22" data-ef-col="17" data-ef-len="10"><kbd>PF3</kbd>=Return</button>
86
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf5" formnovalidate data-ef-action="pf5" data-ef-row="22" data-ef-col="29" data-ef-len="16"><kbd>PF5</kbd>=Transactions</button>
87
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf12" formnovalidate data-ef-action="pf12" data-ef-row="22" data-ef-col="47" data-ef-len="12"><kbd>PF12</kbd>=Inquiry</button>
88
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf1" formnovalidate data-ef-action="pf1" data-ef-row="22" data-ef-col="61" data-ef-len="8"><kbd>PF1</kbd>=Help</button>
89
+ </div>
90
+ <p class="ef-character-grid__status" role="status" data-ef-row="25" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__indicator"><span>READY</span></span></p>
91
+ </form>
92
+ </div>
93
+ </div>
94
+ <div class="ef-character-grid" data-ef-profile="ibm-3270" data-ef-rows="24" data-ef-status-rows="1" data-ef-columns="80" data-ef-narrow="contained">
95
+ <div class="ef-character-grid__viewport" role="region" aria-labelledby="character-grid-workflow-trnh-title" tabindex="0">
96
+ <form class="ef-character-grid__surface">
97
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="2" data-ef-len="4">TRNH</span>
98
+ <h2 class="ef-character-grid__text" id="character-grid-workflow-trnh-title" data-ef-emphasis="intensified" data-ef-row="1" data-ef-col="31" data-ef-len="19">TRANSACTION HISTORY</h2>
99
+ <span class="ef-character-grid__text" data-ef-row="1" data-ef-col="64" data-ef-len="5">Date:</span>
100
+ <span class="ef-character-grid__value" data-ef-row="1" data-ef-col="70" data-ef-len="10">2026-09-27</span>
101
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="2" data-ef-len="7">System:</span>
102
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="10" data-ef-len="8">ECHT01</span>
103
+ <span class="ef-character-grid__text" data-ef-row="2" data-ef-col="60" data-ef-len="9">Operator:</span>
104
+ <span class="ef-character-grid__value" data-ef-row="2" data-ef-col="70" data-ef-len="8">OP0142</span>
105
+ <span class="ef-character-grid__text" data-ef-row="3" data-ef-col="2" data-ef-len="11">Account<span class="ef-character-grid__leader" aria-hidden="true"> . :</span></span>
106
+ <span class="ef-character-grid__value" data-ef-row="3" data-ef-col="14" data-ef-len="14">00417-2231-09</span>
107
+ <label class="ef-character-grid__label" for="character-grid-workflow-trnh-from" data-ef-row="3" data-ef-col="32" data-ef-len="11">From<span class="ef-character-grid__leader" aria-hidden="true"> . . :</span></label>
108
+ <input class="ef-character-grid__field" id="character-grid-workflow-trnh-from" name="from" type="text" maxlength="10" autocomplete="off" value="2026-08-01" required data-ef-row="3" data-ef-col="44" data-ef-len="10">
109
+ <label class="ef-character-grid__label" for="character-grid-workflow-trnh-to" data-ef-row="3" data-ef-col="57" data-ef-len="4">To<span class="ef-character-grid__leader" aria-hidden="true"> :</span></label>
110
+ <input class="ef-character-grid__field" id="character-grid-workflow-trnh-to" name="to" type="text" maxlength="10" autocomplete="off" value="2026-09-27" required data-ef-row="3" data-ef-col="62" data-ef-len="10">
111
+ <div class="ef-character-grid__table" data-ef-row="5" data-ef-col="2" data-ef-len="77" data-ef-height="13">
112
+ <table data-ef-gutter="2">
113
+ <caption>Transactions for account 00417-2231-09, newest first</caption>
114
+ <thead><tr><th scope="col" data-ef-len="10">Date</th><th scope="col" data-ef-len="27">Description</th><th scope="col" data-ef-len="12" data-ef-align="end">Amount</th><th scope="col" data-ef-len="12" data-ef-align="end">Balance</th><th scope="col" data-ef-len="8">Status</th></tr></thead>
115
+ <tbody>
116
+ <tr><td>2026-09-26</td><td>PAYROLL DEPOSIT ACME CORP</td><td data-ef-align="end">2,450.00</td><td data-ef-align="end">12,480.55</td><td>POSTED</td></tr>
117
+ <tr><td>2026-09-25</td><td>CARD 4411 CITY MARKET</td><td data-ef-align="end">-86.12</td><td data-ef-align="end">10,030.55</td><td>POSTED</td></tr>
118
+ <tr><td>2026-09-25</td><td>CARD 4411 FUEL STOP 118</td><td data-ef-align="end">-52.40</td><td data-ef-align="end">10,116.67</td><td>POSTED</td></tr>
119
+ <tr><td>2026-09-24</td><td>TRANSFER TO SAVINGS 7710</td><td data-ef-align="end">-500.00</td><td data-ef-align="end">10,169.07</td><td>POSTED</td></tr>
120
+ <tr><td>2026-09-23</td><td>CHECK 1043</td><td data-ef-align="end">-1,200.00</td><td data-ef-align="end">10,669.07</td><td>POSTED</td></tr>
121
+ <tr><td>2026-09-22</td><td>ACH ELECTRIC UTILITY</td><td data-ef-align="end">-143.88</td><td data-ef-align="end">11,869.07</td><td>POSTED</td></tr>
122
+ <tr><td>2026-09-22</td><td>CARD 4411 BOOKSHOP</td><td data-ef-align="end">-24.99</td><td data-ef-align="end">12,012.95</td><td>PENDING</td></tr>
123
+ <tr><td>2026-09-20</td><td>ATM WITHDRAWAL 0931</td><td data-ef-align="end">-200.00</td><td data-ef-align="end">12,037.94</td><td>POSTED</td></tr>
124
+ <tr><td>2026-09-19</td><td>CHECK 1041</td><td data-ef-align="end">-310.00</td><td data-ef-align="end">12,237.94</td><td>RETURNED</td></tr>
125
+ <tr><td>2026-09-18</td><td>ONLINE PAYMENT CREDIT CARD</td><td data-ef-align="end">-640.00</td><td data-ef-align="end">12,547.94</td><td>POSTED</td></tr>
126
+ <tr><td>2026-09-17</td><td>INTEREST CREDIT</td><td data-ef-align="end">1.37</td><td data-ef-align="end">13,187.94</td><td>POSTED</td></tr>
127
+ <tr><td>2026-09-15</td><td>CARD 4411 PHARMACY</td><td data-ef-align="end">-18.45</td><td data-ef-align="end">13,186.57</td><td>REVERSED</td></tr>
128
+ </tbody>
129
+ </table>
130
+ </div>
131
+ <span class="ef-character-grid__text" id="character-grid-workflow-trnh-position" data-ef-row="19" data-ef-col="2" data-ef-len="15">Rows 1-12 of 37</span>
132
+ <span class="ef-character-grid__text" data-ef-row="19" data-ef-col="72" data-ef-len="7">More: +</span>
133
+ <p class="ef-character-grid__message" id="character-grid-workflow-trnh-message" role="status" data-ef-severity="information" data-ef-row="21" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__severity"><span>INFO</span></span> TRNH000I 37 transactions from 2026-08-01 to 2026-09-27.</p>
134
+ <div class="ef-character-grid__group" role="group" aria-label="Function keys">
135
+ <button class="ef-character-grid__key" type="submit" name="action" value="enter" data-ef-action="enter" data-ef-row="22" data-ef-col="2" data-ef-len="17"><kbd>Enter</kbd>=Apply dates</button>
136
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf3" formnovalidate data-ef-action="pf3" data-ef-row="22" data-ef-col="21" data-ef-len="10"><kbd>PF3</kbd>=Return</button>
137
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf7" formnovalidate data-ef-action="pf7" data-ef-row="22" data-ef-col="33" data-ef-len="8"><kbd>PF7</kbd>=Back</button>
138
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf8" formnovalidate data-ef-action="pf8" data-ef-row="22" data-ef-col="43" data-ef-len="11"><kbd>PF8</kbd>=Forward</button>
139
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf12" formnovalidate data-ef-action="pf12" data-ef-row="22" data-ef-col="56" data-ef-len="12"><kbd>PF12</kbd>=Inquiry</button>
140
+ <button class="ef-character-grid__key" type="button" data-ef-action="reset" data-ef-row="23" data-ef-col="2" data-ef-len="12"><kbd>Reset</kbd>=Unlock</button>
141
+ <button class="ef-character-grid__key" type="submit" name="action" value="pf1" formnovalidate data-ef-action="pf1" data-ef-row="23" data-ef-col="17" data-ef-len="8"><kbd>PF1</kbd>=Help</button>
142
+ </div>
143
+ <p class="ef-character-grid__status" role="status" data-ef-row="25" data-ef-col="2" data-ef-len="78"><span class="ef-character-grid__indicator"><span>READY</span></span></p>
144
+ </form>
145
+ </div>
146
+ </div>
147
+ </div>
@@ -0,0 +1,16 @@
1
+ <div class="ef-character-grid" data-ef-rows="8" data-ef-columns="40" data-ef-narrow="contained">
2
+ <div class="ef-character-grid__viewport" role="region" aria-labelledby="character-grid-title" tabindex="0">
3
+ <div class="ef-character-grid__surface">
4
+ <h2 class="ef-character-grid__text" id="character-grid-title" data-ef-row="1" data-ef-col="13" data-ef-len="15" data-ef-emphasis="intensified">SYSTEM OVERVIEW</h2>
5
+ <p class="ef-character-grid__text" data-ef-row="3" data-ef-col="2" data-ef-len="37">Positioned protected text, row-major.</p>
6
+ <dl class="ef-character-grid__group">
7
+ <dt class="ef-character-grid__text" data-ef-row="5" data-ef-col="2" data-ef-len="11">Region . :</dt>
8
+ <dd class="ef-character-grid__value" data-ef-row="5" data-ef-col="14" data-ef-len="10">NORTH-EAST</dd>
9
+ <dt class="ef-character-grid__text" data-ef-row="6" data-ef-col="2" data-ef-len="11">Nodes . . :</dt>
10
+ <dd class="ef-character-grid__value" data-ef-row="6" data-ef-col="14" data-ef-len="4" data-ef-align="end">12</dd>
11
+ <dt class="ef-character-grid__text" data-ef-row="7" data-ef-col="2" data-ef-len="11">Updated . :</dt>
12
+ <dd class="ef-character-grid__value" data-ef-row="7" data-ef-col="14" data-ef-len="10">2026-09-27</dd>
13
+ </dl>
14
+ </div>
15
+ </div>
16
+ </div>
@@ -0,0 +1,5 @@
1
+ <div class="ef-cluster" aria-label="Related actions">
2
+ <button type="button">Primary action</button>
3
+ <button type="button">Secondary action</button>
4
+ <a href="#details">View details</a>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="ef-site">
2
+ <figure class="ef-code-figure">
3
+ <figcaption id="code-caption">Pin Forma in forma.lock</figcaption>
4
+ <pre class="ef-code" tabindex="0" aria-labelledby="code-caption"><code>forma 0.3.0
5
+ repository kemiller2002/forma
6
+ destination assets/forma
7
+ asset forma-marketing.css sha256:&lt;digest&gt;</code></pre>
8
+ </figure>
9
+ </div>
@@ -0,0 +1,6 @@
1
+ <section class="ef-command-group" aria-labelledby="edit-commands">
2
+ <h2 class="ef-command-group__label" id="edit-commands">Edit</h2>
3
+ <div class="ef-command-group__commands">
4
+ <button type="button">Cut</button><button type="button">Copy</button><button type="button">Paste</button>
5
+ </div>
6
+ </section>
@@ -0,0 +1,7 @@
1
+ <div class="ef-comparison-grid" role="region" aria-label="Plan comparison" tabindex="0">
2
+ <table>
3
+ <caption>Plan comparison</caption>
4
+ <thead><tr><th scope="col">Capability</th><th scope="col">Standard</th><th scope="col">Advanced</th></tr></thead>
5
+ <tbody><tr><th scope="row">Evidence history</th><td>30 days</td><td>Unlimited</td></tr><tr><th scope="row">Exports</th><td>Manual</td><td>Automated</td></tr></tbody>
6
+ </table>
7
+ </div>
@@ -0,0 +1,13 @@
1
+ <section class="ef-comparison-pairs" aria-labelledby="comparison-pairs-title">
2
+ <h3 id="comparison-pairs-title">Configuration change</h3>
3
+ <div class="ef-comparison-pairs__item">
4
+ <div class="ef-comparison-pairs__label">Retention</div>
5
+ <div class="ef-comparison-pairs__value" data-side="before" data-label="Before">30 days</div>
6
+ <div class="ef-comparison-pairs__value" data-side="after" data-label="After">Unlimited</div>
7
+ </div>
8
+ <div class="ef-comparison-pairs__item">
9
+ <div class="ef-comparison-pairs__label">Export</div>
10
+ <div class="ef-comparison-pairs__value" data-side="before" data-label="Before">Manual</div>
11
+ <div class="ef-comparison-pairs__value" data-side="after" data-label="After">Automated after approval</div>
12
+ </div>
13
+ </section>
@@ -0,0 +1,12 @@
1
+ <div class="ef-site">
2
+ <section class="ef-section" aria-labelledby="cta-title">
3
+ <div class="ef-cta" data-ef-tone="inverse">
4
+ <div class="ef-cta__text">
5
+ <p class="ef-eyebrow">Start here</p>
6
+ <h2 id="cta-title">Bring the problem that matters</h2>
7
+ <p>One primary action per call to action; secondary actions stay visibly lower in the hierarchy.</p>
8
+ </div>
9
+ <div class="ef-actions"><a class="ef-button" data-ef-variant="primary" href="#contact">Start a diagnostic</a><a class="ef-button" href="#about">Meet the team</a></div>
10
+ </div>
11
+ </section>
12
+ </div>
@@ -0,0 +1,7 @@
1
+ <div class="ef-bounded-overflow" role="region" aria-label="Operational ledger" tabindex="0">
2
+ <table class="ef-dense-ledger">
3
+ <caption>Recent operational entries</caption>
4
+ <thead><tr><th scope="col">Reference</th><th scope="col">Status</th><th scope="col">Owner</th><th scope="col">Amount</th></tr></thead>
5
+ <tbody><tr><th scope="row">INV-1042</th><td>Needs review</td><td>Billing</td><td>$5,000</td></tr><tr><th scope="row">INV-1043</th><td>Ready</td><td>Billing</td><td>$2,750</td></tr></tbody>
6
+ </table>
7
+ </div>
@@ -0,0 +1,7 @@
1
+ <div class="ef-diagnostic-status" data-ef-state="queued" role="status">
2
+ <span class="ef-diagnostic-status__marker" aria-hidden="true">↥</span>
3
+ <span class="ef-diagnostic-status__body">
4
+ <strong>Diagnostics queued</strong>
5
+ <span>3 reports are waiting to synchronize.</span>
6
+ </span>
7
+ </div>
@@ -0,0 +1,49 @@
1
+ <figure class="ef-diagram" aria-labelledby="diagram-title">
2
+ <figcaption id="diagram-title">Publication workflow</figcaption>
3
+ <p>Fill colors show the owning team through a consumer-defined mapping (see the key). They say nothing about state: each item states its kind and state in text.</p>
4
+ <div class="ef-diagram__viewport" tabindex="0" role="group" aria-label="Publication workflow canvas, scroll to see all items">
5
+ <div class="ef-diagram__canvas" style="--ef-diagram-canvas-w: 720px; --ef-diagram-canvas-h: 330px;">
6
+ <svg class="ef-diagram__wires" viewBox="0 0 720 330" aria-hidden="true" focusable="false">
7
+ <defs>
8
+ <marker id="diagram-arrow" class="ef-diagram-marker" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z"/></marker>
9
+ </defs>
10
+ <path class="ef-diagram-connector" d="M216 70 H258" marker-end="url(#diagram-arrow)"/>
11
+ <path class="ef-diagram-connector" d="M460 70 H502" marker-end="url(#diagram-arrow)"/>
12
+ <path class="ef-diagram-connector" data-ef-line="dashed" d="M360 150 V198" marker-end="url(#diagram-arrow)"/>
13
+ <path class="ef-diagram-connector" data-ef-line="dotted" d="M260 260 H116 V152" marker-end="url(#diagram-arrow)"/>
14
+ </svg>
15
+ <article class="ef-diagram-node" data-ef-shape="rounded" aria-labelledby="node-draft" style="--ef-diagram-x: 16px; --ef-diagram-y: 24px; --ef-diagram-w: 200px; --ef-diagram-fill: #e8f0ff; --ef-diagram-accent: #2f5fb3; --ef-diagram-foreground: #1d1d1b;">
16
+ <p class="ef-diagram-node__kind">Task</p>
17
+ <h3 class="ef-diagram-node__label" id="node-draft">Draft article</h3>
18
+ <dl class="ef-diagram-node__meta"><dt>State</dt><dd>Done</dd><dt>Team</dt><dd>Editorial</dd></dl>
19
+ </article>
20
+ <article class="ef-diagram-node" aria-labelledby="node-review" style="--ef-diagram-x: 260px; --ef-diagram-y: 24px; --ef-diagram-w: 200px; --ef-diagram-fill: #fff1d6; --ef-diagram-accent: #8a5300; --ef-diagram-foreground: #1d1d1b;">
21
+ <p class="ef-diagram-node__kind">Decision</p>
22
+ <h3 class="ef-diagram-node__label" id="node-review">Legal review</h3>
23
+ <dl class="ef-diagram-node__meta"><dt>State</dt><dd>Active</dd><dt>Team</dt><dd>Legal</dd></dl>
24
+ </article>
25
+ <article class="ef-diagram-node" data-ef-shape="pill" aria-labelledby="node-publish" style="--ef-diagram-x: 504px; --ef-diagram-y: 24px; --ef-diagram-w: 200px; --ef-diagram-fill: #e8f0ff; --ef-diagram-accent: #2f5fb3; --ef-diagram-foreground: #1d1d1b;">
26
+ <p class="ef-diagram-node__kind">End</p>
27
+ <h3 class="ef-diagram-node__label" id="node-publish"><a href="#diagram-title">Publish</a></h3>
28
+ <dl class="ef-diagram-node__meta"><dt>State</dt><dd>Waiting</dd><dt>Team</dt><dd>Editorial</dd></dl>
29
+ </article>
30
+ <article class="ef-diagram-node" data-ef-shape="rounded" aria-labelledby="node-rework" style="--ef-diagram-x: 260px; --ef-diagram-y: 200px; --ef-diagram-w: 200px;">
31
+ <p class="ef-diagram-node__kind">Task</p>
32
+ <h3 class="ef-diagram-node__label" id="node-rework">Rework</h3>
33
+ <dl class="ef-diagram-node__meta"><dt>State</dt><dd>Not started</dd></dl>
34
+ </article>
35
+ <span class="ef-diagram-connector__label" style="--ef-diagram-x: 372px; --ef-diagram-y: 164px;">changes requested</span>
36
+ </div>
37
+ </div>
38
+ <ol class="ef-diagram__relations" aria-label="Relationships">
39
+ <li>Draft article leads to Legal review (solid line).</li>
40
+ <li>Legal review leads to Publish when approved (solid line).</li>
41
+ <li>Legal review leads to Rework when changes are requested (dashed line).</li>
42
+ <li>Rework returns to Draft article (dotted line).</li>
43
+ </ol>
44
+ <dl class="ef-diagram-legend" aria-label="Key: fill color by owning team">
45
+ <div><dt><span class="ef-diagram-legend__swatch" style="--ef-diagram-fill: #e8f0ff; --ef-diagram-accent: #2f5fb3;"></span> Editorial</dt><dd>blue fill</dd></div>
46
+ <div><dt><span class="ef-diagram-legend__swatch" style="--ef-diagram-fill: #fff1d6; --ef-diagram-accent: #8a5300;"></span> Legal</dt><dd>amber fill</dd></div>
47
+ <div><dt><span class="ef-diagram-legend__swatch"></span> Unassigned</dt><dd>Forma default</dd></div>
48
+ </dl>
49
+ </figure>
@@ -0,0 +1,18 @@
1
+ <div class="ef-site" data-ef-layout="documentation">
2
+ <div class="ef-site__main">
3
+ <div class="ef-doc">
4
+ <nav class="ef-doc__nav" aria-label="Documentation">
5
+ <p class="ef-eyebrow ef-doc__heading">Guides</p>
6
+ <ul><li><a href="#install" aria-current="page">Install</a></li><li><a href="#configure">Configure</a></li><li><a href="#upgrade">Upgrade</a></li></ul>
7
+ </nav>
8
+ <article class="ef-doc__content ef-prose" id="install">
9
+ <h1>Install</h1>
10
+ <p>Documentation pages pair a navigation rail with a prose article and an optional page outline.</p>
11
+ </article>
12
+ <nav class="ef-doc__aside" aria-label="On this page">
13
+ <p class="ef-eyebrow ef-doc__heading">On this page</p>
14
+ <ul><li><a href="#install">Requirements</a></li><li><a href="#install">Verify</a></li></ul>
15
+ </nav>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -0,0 +1,21 @@
1
+ <main class="ef-emphasis-budget" data-emphasis-budget="one-primary" aria-labelledby="emphasis-budget-title">
2
+ <header>
3
+ <p class="ef-component-kicker">Deployment review</p>
4
+ <h2 id="emphasis-budget-title">Release decision</h2>
5
+ </header>
6
+ <section data-emphasis="primary" aria-labelledby="emphasis-primary">\n <p class="ef-emphasis-label">Primary</p>
7
+ <span class="ef-status-lozenge" data-state="unknown">Unknown consumer outcome</span>
8
+ <h3 id="emphasis-primary">Reconcile before publishing</h3>
9
+ <p>The consuming application has not supplied current verification evidence.</p>
10
+ <button type="button">Reconcile consumer</button>
11
+ </section>
12
+ <section data-emphasis="secondary" aria-labelledby="emphasis-secondary">\n <p class="ef-emphasis-label">Secondary</p>
13
+ <h3 id="emphasis-secondary">Verification evidence</h3>
14
+ <p>Package build and repository checks passed. Consumer verification remains unresolved.</p>
15
+ </section>
16
+ <div class="ef-emphasis-budget__support">
17
+ <section data-emphasis="supporting"><p class="ef-emphasis-label">Supporting</p><h3>History</h3><p>The previous release completed successfully.</p></section>
18
+ <section data-emphasis="supporting"><p class="ef-emphasis-label">Supporting</p><h3>Package</h3><p>Version 1.4.0 with provenance enabled.</p></section>
19
+ <section data-emphasis="supporting"><p class="ef-emphasis-label">Supporting</p><h3>Activity</h3><p>Recent repository work includes presentation and browser-test changes.</p></section>
20
+ </div>
21
+ </main>
@@ -0,0 +1,16 @@
1
+ <div class="ef-site">
2
+ <ol class="ef-index" aria-label="Research areas">
3
+ <li class="ef-index__item">
4
+ <p class="ef-index__marker">R / 01</p>
5
+ <div class="ef-index__heading"><p class="ef-eyebrow">Intelligent systems</p><h3 class="ef-index__title">AI Engineering</h3></div>
6
+ <p class="ef-index__summary">Dependable practice, evaluation, human oversight, and workflow design.</p>
7
+ <a class="ef-index__link" href="#ai">Visit AI Engineering</a>
8
+ </li>
9
+ <li class="ef-index__item">
10
+ <p class="ef-index__marker">R / 02</p>
11
+ <div class="ef-index__heading"><p class="ef-eyebrow">Perception &amp; composition</p><h3 class="ef-index__title">Visual Engineering</h3></div>
12
+ <p class="ef-index__summary">Evidence-led hierarchy, typography, color, composition, and interaction.</p>
13
+ <a class="ef-index__link" href="#visual">Visit Visual Engineering</a>
14
+ </li>
15
+ </ol>
16
+ </div>
@@ -0,0 +1 @@
1
+ <article class="ef-evidence-relationship" aria-labelledby="relationship-claim"><header><p class="ef-component-kicker">Supports</p><h2 id="relationship-claim">Claim: deployment is ready</h2></header><div class="ef-evidence-relationship__body"><p><strong>Evidence:</strong> Required checks passed.</p><p><strong>Source:</strong> CI run 1042</p><p><strong>Scope:</strong> commit abc123</p></div><footer><span class="ef-status-lozenge">Current</span></footer></article>
@@ -0,0 +1,7 @@
1
+ <div class="ef-site">
2
+ <dl class="ef-facts">
3
+ <div class="ef-facts__item"><dt>Version 0.3.0</dt><dd>Pinned in the site's forma.lock</dd></div>
4
+ <div class="ef-facts__item"><dt>Zero runtime</dt><dd>HTML and CSS only</dd></div>
5
+ <div class="ef-facts__item"><dt>WCAG 2.2 AA</dt><dd>Target for stable patterns</dd></div>
6
+ </dl>
7
+ </div>
@@ -0,0 +1,19 @@
1
+ <aside
2
+ class="ef-alert ef-fault-banner"
3
+ role="status"
4
+ data-ef-intent="banner"
5
+ data-ef-severity="critical"
6
+ data-ef-motion-weight="standard"
7
+ data-ef-motion-entry
8
+ aria-labelledby="fault-banner-title">
9
+ <div class="ef-alert__icon ef-fault-banner__marker" aria-hidden="true">!!</div>
10
+ <div class="ef-fault-banner__body">
11
+ <p class="ef-fault__severity">Critical</p>
12
+ <h2 class="ef-alert__title" id="fault-banner-title">Diagnostics storage is unavailable</h2>
13
+ <p>The application is running in a degraded state. New diagnostics are queued locally.</p>
14
+ <p class="ef-fault-reference">Reference <code>AG-22K8M</code></p>
15
+ </div>
16
+ <div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
17
+ <button type="button" data-ef-aegis-capability="CanRestoreSink">Reconnect diagnostics</button>
18
+ </div>
19
+ </aside>
@@ -0,0 +1,25 @@
1
+ <button type="button" commandfor="blocking-fault-dialog" command="show-modal">Preview blocking fault</button>
2
+ <dialog
3
+ class="ef-dialog ef-fault-blocking"
4
+ id="blocking-fault-dialog"
5
+ data-ef-intent="blocking"
6
+ data-ef-severity="critical"
7
+ data-ef-motion-weight="heavy"
8
+ aria-labelledby="blocking-fault-title"
9
+ aria-describedby="blocking-fault-message">
10
+ <div class="ef-dialog__body">
11
+ <div class="ef-fault-blocking__heading">
12
+ <div class="ef-fault-blocking__marker" aria-hidden="true">!!</div>
13
+ <div>
14
+ <p class="ef-fault__severity">Critical</p>
15
+ <h2 id="blocking-fault-title">This application cannot continue safely</h2>
16
+ </div>
17
+ </div>
18
+ <p id="blocking-fault-message">The current state cannot be verified. Use one of the recovery actions below before continuing.</p>
19
+ <p class="ef-fault-reference">Reference <code>AG-7P2DX</code></p>
20
+ </div>
21
+ <div class="ef-dialog__actions ef-recovery-actions" role="group" aria-label="Recovery actions">
22
+ <button type="button" data-ef-aegis-capability="CanOpenReadOnly">Open read-only</button>
23
+ <button type="button" data-ef-aegis-capability="CanReload">Reload</button>
24
+ </div>
25
+ </dialog>
@@ -0,0 +1,11 @@
1
+ <details class="ef-fault-details">
2
+ <summary>Safe diagnostic details</summary>
3
+ <div class="ef-fault-details__content">
4
+ <dl class="ef-fault-details__list">
5
+ <div><dt>Reference</dt><dd><code>AG-4F82C</code></dd></div>
6
+ <div><dt>Application</dt><dd>Chrona</dd></div>
7
+ <div><dt>Recovery state</dt><dd>Retry available</dd></div>
8
+ </dl>
9
+ <p class="ef-fault-details__boundary">Only explicitly approved, already-sanitized diagnostic values belong in this surface.</p>
10
+ </div>
11
+ </details>
@@ -0,0 +1,17 @@
1
+ <div
2
+ class="ef-fault ef-fault--inline"
3
+ id="profile-save-fault"
4
+ data-ef-intent="inline"
5
+ data-ef-severity="error"
6
+ aria-labelledby="profile-save-fault-title">
7
+ <div class="ef-fault__marker" aria-hidden="true">!</div>
8
+ <div class="ef-fault__body">
9
+ <p class="ef-fault__severity">Error</p>
10
+ <p class="ef-fault__title" id="profile-save-fault-title"><strong>Profile was not saved.</strong></p>
11
+ <p class="ef-fault__message">Check your connection and try again.</p>
12
+ <p class="ef-fault-reference">Reference <code>AG-4F82C</code></p>
13
+ </div>
14
+ <div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
15
+ <button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
16
+ </div>
17
+ </div>
@@ -0,0 +1,20 @@
1
+ <aside
2
+ class="ef-toast ef-fault-notification"
3
+ role="status"
4
+ data-ef-intent="notification"
5
+ data-ef-severity="warning"
6
+ data-ef-motion-weight="standard"
7
+ data-ef-motion-entry
8
+ aria-labelledby="fault-notification-title">
9
+ <div class="ef-fault-notification__marker" aria-hidden="true">!</div>
10
+ <div class="ef-fault-notification__body">
11
+ <p class="ef-fault__severity">Warning</p>
12
+ <h3 class="ef-toast__title" id="fault-notification-title">GitHub is temporarily unavailable</h3>
13
+ <p>Your work is still local. You can retry the synchronization.</p>
14
+ <p class="ef-fault-reference">Reference <code>AG-91B7Q</code></p>
15
+ <div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
16
+ <button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
17
+ </div>
18
+ </div>
19
+ <button type="button" class="ef-fault-notification__dismiss" data-ef-action="dismiss" aria-label="Dismiss notification">Close</button>
20
+ </aside>
@@ -0,0 +1,5 @@
1
+ <p class="ef-fault-reference">
2
+ <span>Reference</span>
3
+ <code>AG-4F82C</code>
4
+ <button type="button" data-ef-action="copy-reference" aria-label="Copy fault reference AG-4F82C">Copy</button>
5
+ </p>
@@ -0,0 +1,20 @@
1
+ <section class="ef-fault-summary" tabindex="-1" aria-labelledby="fault-summary-title">
2
+ <div class="ef-fault-summary__heading">
3
+ <div class="ef-fault-summary__marker" aria-hidden="true">!</div>
4
+ <div>
5
+ <p class="ef-fault__severity">2 unresolved faults</p>
6
+ <h2 id="fault-summary-title">Some work needs your attention</h2>
7
+ <p>Repeated occurrences are grouped by the application before rendering.</p>
8
+ </div>
9
+ </div>
10
+ <ol class="ef-fault-summary__list">
11
+ <li data-ef-severity="error">
12
+ <a href="#customer-name">Customer name could not be saved</a>
13
+ <span class="ef-fault-summary__meta">Error · AG-4F82C · occurred 3 times</span>
14
+ </li>
15
+ <li data-ef-severity="warning">
16
+ <a href="#sync-status">Synchronization is waiting for GitHub</a>
17
+ <span class="ef-fault-summary__meta">Warning · AG-91B7Q</span>
18
+ </li>
19
+ </ol>
20
+ </section>
@@ -0,0 +1,17 @@
1
+ <section
2
+ class="ef-fault"
3
+ data-ef-intent="inline"
4
+ data-ef-severity="error"
5
+ aria-labelledby="fault-title"
6
+ aria-describedby="fault-message">
7
+ <div class="ef-fault__marker" aria-hidden="true">!</div>
8
+ <div class="ef-fault__body">
9
+ <p class="ef-fault__severity">Error</p>
10
+ <h3 class="ef-fault__title" id="fault-title">Could not save changes</h3>
11
+ <p class="ef-fault__message" id="fault-message">The update did not complete. Your current values are still available.</p>
12
+ <p class="ef-fault-reference">Reference <code>AG-4F82C</code></p>
13
+ </div>
14
+ <div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
15
+ <button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
16
+ </div>
17
+ </section>
@@ -0,0 +1,12 @@
1
+ <article class="ef-feed-item" aria-labelledby="feed-item-title">
2
+ <div class="ef-feed-item__primary">
3
+ <p class="ef-feed-item__source">Build system</p>
4
+ <h2 id="feed-item-title">Deployment requires review</h2>
5
+ </div>
6
+ <div class="ef-feed-item__meta">
7
+ <span class="ef-status-lozenge" data-state="warning">Needs review</span>
8
+ <time datetime="2026-09-25T18:30:00Z">18:30</time>
9
+ </div>
10
+ <p class="ef-feed-item__summary">Production approval is still unresolved.</p>
11
+ <div class="ef-feed-item__actions"><button type="button">Review</button></div>
12
+ </article>
@@ -0,0 +1,4 @@
1
+ <section class="ef-focus-stage" aria-label="Focused work">
2
+ <main class="ef-focus-stage__primary ef-surface"><h2>Primary artifact</h2><p>The dominant work surface receives available space.</p></main>
3
+ <aside class="ef-focus-stage__support ef-stack"><h2>Inspector</h2><label>Title <input value="Primary artifact"></label><button type="button">Apply</button></aside>
4
+ </section>
@@ -0,0 +1,4 @@
1
+ <figure class="ef-frame">
2
+ <div class="ef-frame__media"><img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='450'%3E%3Crect width='100%25' height='100%25' fill='%23ddd'/%3E%3C/svg%3E" alt=""></div>
3
+ <figcaption>Frame preserves a declared media proportion without making the content itself a component.</figcaption>
4
+ </figure>
@@ -0,0 +1 @@
1
+ <p class="ef-freshness"><span class="ef-freshness__label">Last verified</span> <time datetime="2026-09-26T04:30:00Z">04:30 UTC</time> <span class="ef-freshness__state">Current</span></p>
@@ -0,0 +1 @@
1
+ <section class="ef-handoff-summary" aria-labelledby="handoff-title"><header><p class="ef-component-kicker">Agent proposal</p><h2 id="handoff-title">Publish release</h2><p>Agent: OpenAI implementation agent</p></header><dl><div><dt>Proposed consequence</dt><dd>Publish version 1.4.0</dd></div><div><dt>Evidence</dt><dd>Tests and validation passed</dd></div><div><dt>Uncertainty</dt><dd>Production consumer smoke test not observed</dd></div><div><dt>Human authority</dt><dd>Approval required before publication</dd></div></dl><div class="ef-cluster"><button type="button">Approve</button><button type="button">Reject</button><button type="button">Request changes</button></div></section>