ngx-t-forms 2.0.30 → 2.0.32

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 (161) hide show
  1. package/fesm2022/ngx-t-forms-auto-complete-input-element.component-CaXs4561.mjs +104 -0
  2. package/fesm2022/ngx-t-forms-auto-complete-input-element.component-CaXs4561.mjs.map +1 -0
  3. package/fesm2022/ngx-t-forms-basic-input-input-element.component-Dotyd-Qs.mjs +85 -0
  4. package/fesm2022/ngx-t-forms-basic-input-input-element.component-Dotyd-Qs.mjs.map +1 -0
  5. package/fesm2022/ngx-t-forms-calculated-field-rules.component-BhxT6tRq.mjs +643 -0
  6. package/fesm2022/ngx-t-forms-calculated-field-rules.component-BhxT6tRq.mjs.map +1 -0
  7. package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-d4QeVhsp.mjs +97 -0
  8. package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-d4QeVhsp.mjs.map +1 -0
  9. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-Gn8exJ9a.mjs +195 -0
  10. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-Gn8exJ9a.mjs.map +1 -0
  11. package/fesm2022/ngx-t-forms-data-source-picker.component-Ebf_if9j.mjs +261 -0
  12. package/fesm2022/ngx-t-forms-data-source-picker.component-Ebf_if9j.mjs.map +1 -0
  13. package/fesm2022/ngx-t-forms-date-picker-input-element.component-kdinBGRA.mjs +85 -0
  14. package/fesm2022/ngx-t-forms-date-picker-input-element.component-kdinBGRA.mjs.map +1 -0
  15. package/fesm2022/ngx-t-forms-date-range-picker-input-element.component-4W6uvrDU.mjs +156 -0
  16. package/fesm2022/ngx-t-forms-date-range-picker-input-element.component-4W6uvrDU.mjs.map +1 -0
  17. package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-CR6EvgJO.mjs +368 -0
  18. package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-CR6EvgJO.mjs.map +1 -0
  19. package/fesm2022/ngx-t-forms-document-picker.component-BThdRFec.mjs +704 -0
  20. package/fesm2022/ngx-t-forms-document-picker.component-BThdRFec.mjs.map +1 -0
  21. package/fesm2022/ngx-t-forms-editor-input-element.component-1X6uAPeZ.mjs +294 -0
  22. package/fesm2022/ngx-t-forms-editor-input-element.component-1X6uAPeZ.mjs.map +1 -0
  23. package/fesm2022/ngx-t-forms-editor-js-input.component-5MD8wRj0.mjs +240 -0
  24. package/fesm2022/ngx-t-forms-editor-js-input.component-5MD8wRj0.mjs.map +1 -0
  25. package/fesm2022/ngx-t-forms-file-upload-input-element.component-BAtuymMY.mjs +205 -0
  26. package/fesm2022/ngx-t-forms-file-upload-input-element.component-BAtuymMY.mjs.map +1 -0
  27. package/fesm2022/ngx-t-forms-form-input-selector.component-B42xP3jh.mjs +86 -0
  28. package/fesm2022/ngx-t-forms-form-input-selector.component-B42xP3jh.mjs.map +1 -0
  29. package/fesm2022/ngx-t-forms-form-json-view.component-DnnLXqR0.mjs +22 -0
  30. package/fesm2022/ngx-t-forms-form-json-view.component-DnnLXqR0.mjs.map +1 -0
  31. package/fesm2022/ngx-t-forms-form-payload-projection.component-Ip9ewB18.mjs +179 -0
  32. package/fesm2022/ngx-t-forms-form-payload-projection.component-Ip9ewB18.mjs.map +1 -0
  33. package/fesm2022/ngx-t-forms-form-section-stepper.component-BPgPfZSy.mjs +319 -0
  34. package/fesm2022/ngx-t-forms-form-section-stepper.component-BPgPfZSy.mjs.map +1 -0
  35. package/fesm2022/ngx-t-forms-forms-builder-menu.component-Dv0Dfw79.mjs +379 -0
  36. package/fesm2022/ngx-t-forms-forms-builder-menu.component-Dv0Dfw79.mjs.map +1 -0
  37. package/fesm2022/ngx-t-forms-geo-location.component-Bmd84Gcb.mjs +124 -0
  38. package/fesm2022/ngx-t-forms-geo-location.component-Bmd84Gcb.mjs.map +1 -0
  39. package/fesm2022/ngx-t-forms-getInputIcon-B4ADgevZ.mjs +31 -0
  40. package/fesm2022/ngx-t-forms-getInputIcon-B4ADgevZ.mjs.map +1 -0
  41. package/fesm2022/ngx-t-forms-image-capture-input-element.component-CUd04Ghl.mjs +180 -0
  42. package/fesm2022/ngx-t-forms-image-capture-input-element.component-CUd04Ghl.mjs.map +1 -0
  43. package/fesm2022/ngx-t-forms-index-BcrQ01DQ.mjs +2 -0
  44. package/fesm2022/ngx-t-forms-index-BcrQ01DQ.mjs.map +1 -0
  45. package/fesm2022/ngx-t-forms-input-custom.component-Cn-KH0Lb.mjs +105 -0
  46. package/fesm2022/ngx-t-forms-input-custom.component-Cn-KH0Lb.mjs.map +1 -0
  47. package/fesm2022/ngx-t-forms-input-editor.component-DLru1Ezu.mjs +193 -0
  48. package/fesm2022/ngx-t-forms-input-editor.component-DLru1Ezu.mjs.map +1 -0
  49. package/fesm2022/{ngx-t-forms-map-mat-options-keys-SM5XM9uy.mjs → ngx-t-forms-map-mat-options-keys-CVlPdrCO.mjs} +12 -14
  50. package/fesm2022/ngx-t-forms-map-mat-options-keys-CVlPdrCO.mjs.map +1 -0
  51. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-BWisS3Em.mjs +66 -0
  52. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-BWisS3Em.mjs.map +1 -0
  53. package/fesm2022/ngx-t-forms-mat-slider-editor.component-CTSBrM-j.mjs +211 -0
  54. package/fesm2022/ngx-t-forms-mat-slider-editor.component-CTSBrM-j.mjs.map +1 -0
  55. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-CcYiwx-8.mjs +165 -0
  56. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-CcYiwx-8.mjs.map +1 -0
  57. package/fesm2022/ngx-t-forms-missing-form-configs.component-DxdynZY6.mjs +38 -0
  58. package/fesm2022/ngx-t-forms-missing-form-configs.component-DxdynZY6.mjs.map +1 -0
  59. package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-D4Xa_Yi0.mjs +38 -0
  60. package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-D4Xa_Yi0.mjs.map +1 -0
  61. package/fesm2022/ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs +126 -0
  62. package/fesm2022/ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs.map +1 -0
  63. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-Bo0aDEMy.mjs +447 -0
  64. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-Bo0aDEMy.mjs.map +1 -0
  65. package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-B1Z-IXSL.mjs +74 -0
  66. package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-B1Z-IXSL.mjs.map +1 -0
  67. package/fesm2022/ngx-t-forms-multiple-input-input-element.component-C8JP3D6r.mjs +905 -0
  68. package/fesm2022/ngx-t-forms-multiple-input-input-element.component-C8JP3D6r.mjs.map +1 -0
  69. package/fesm2022/ngx-t-forms-ngx-t-forms-C2G8_WQk.mjs +20310 -0
  70. package/fesm2022/ngx-t-forms-ngx-t-forms-C2G8_WQk.mjs.map +1 -0
  71. package/fesm2022/ngx-t-forms-paginated-selection-table-0OI1ikWW.mjs +555 -0
  72. package/fesm2022/ngx-t-forms-paginated-selection-table-0OI1ikWW.mjs.map +1 -0
  73. package/fesm2022/ngx-t-forms-pipeline-generator.component-CZ21sd77.mjs +748 -0
  74. package/fesm2022/ngx-t-forms-pipeline-generator.component-CZ21sd77.mjs.map +1 -0
  75. package/fesm2022/ngx-t-forms-record-list-manager.component-CykBq_nW.mjs +358 -0
  76. package/fesm2022/ngx-t-forms-record-list-manager.component-CykBq_nW.mjs.map +1 -0
  77. package/fesm2022/ngx-t-forms-required-inputs.component-ONbhxVSH.mjs +272 -0
  78. package/fesm2022/ngx-t-forms-required-inputs.component-ONbhxVSH.mjs.map +1 -0
  79. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-WPUxtY7Q.mjs +398 -0
  80. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-WPUxtY7Q.mjs.map +1 -0
  81. package/fesm2022/ngx-t-forms-search-field.component-B2ZO7lqO.mjs +38 -0
  82. package/fesm2022/ngx-t-forms-search-field.component-B2ZO7lqO.mjs.map +1 -0
  83. package/fesm2022/ngx-t-forms-section-report.component-C1w16LYm.mjs +98 -0
  84. package/fesm2022/ngx-t-forms-section-report.component-C1w16LYm.mjs.map +1 -0
  85. package/fesm2022/ngx-t-forms-select-input-element.component-CWcywuS6.mjs +150 -0
  86. package/fesm2022/ngx-t-forms-select-input-element.component-CWcywuS6.mjs.map +1 -0
  87. package/fesm2022/ngx-t-forms-selection-options-editor.component-KjbZhc2u.mjs +169 -0
  88. package/fesm2022/ngx-t-forms-selection-options-editor.component-KjbZhc2u.mjs.map +1 -0
  89. package/fesm2022/ngx-t-forms-t-workflow-picker.component-CtavFAUq.mjs +204 -0
  90. package/fesm2022/ngx-t-forms-t-workflow-picker.component-CtavFAUq.mjs.map +1 -0
  91. package/fesm2022/ngx-t-forms-textarea-input-element.component-DkJkBQif.mjs +95 -0
  92. package/fesm2022/ngx-t-forms-textarea-input-element.component-DkJkBQif.mjs.map +1 -0
  93. package/fesm2022/ngx-t-forms-toggle-input-element.component-Dr7MNli8.mjs +82 -0
  94. package/fesm2022/ngx-t-forms-toggle-input-element.component-Dr7MNli8.mjs.map +1 -0
  95. package/fesm2022/ngx-t-forms-validators-config.component-BknyAmV_.mjs +574 -0
  96. package/fesm2022/ngx-t-forms-validators-config.component-BknyAmV_.mjs.map +1 -0
  97. package/fesm2022/ngx-t-forms-workflow-adjudication.component-CPvwm7f4.mjs +1303 -0
  98. package/fesm2022/ngx-t-forms-workflow-adjudication.component-CPvwm7f4.mjs.map +1 -0
  99. package/fesm2022/ngx-t-forms.mjs +2 -1
  100. package/fesm2022/ngx-t-forms.mjs.map +1 -1
  101. package/package.json +20 -18
  102. package/styles/_editor-mixins.scss +62 -0
  103. package/styles/_json-editor-syntax.scss +26 -0
  104. package/styles/_signature-pad.scss +26 -0
  105. package/styles/_tokens.scss +148 -0
  106. package/types/ngx-t-forms.d.ts +1921 -733
  107. package/fesm2022/ngx-t-forms-calculated-field-rules.component-Ct6_c_Lj.mjs +0 -313
  108. package/fesm2022/ngx-t-forms-calculated-field-rules.component-Ct6_c_Lj.mjs.map +0 -1
  109. package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-yuM1KHho.mjs +0 -191
  110. package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-yuM1KHho.mjs.map +0 -1
  111. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-BptpYSe-.mjs +0 -207
  112. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-BptpYSe-.mjs.map +0 -1
  113. package/fesm2022/ngx-t-forms-data-source-picker.component-Badna1Rl.mjs +0 -204
  114. package/fesm2022/ngx-t-forms-data-source-picker.component-Badna1Rl.mjs.map +0 -1
  115. package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-2_8XzUgD.mjs +0 -289
  116. package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-2_8XzUgD.mjs.map +0 -1
  117. package/fesm2022/ngx-t-forms-form-input-selector.component-DV4Sts9F.mjs +0 -134
  118. package/fesm2022/ngx-t-forms-form-input-selector.component-DV4Sts9F.mjs.map +0 -1
  119. package/fesm2022/ngx-t-forms-form-json-view.component-B8seYzMQ.mjs +0 -22
  120. package/fesm2022/ngx-t-forms-form-json-view.component-B8seYzMQ.mjs.map +0 -1
  121. package/fesm2022/ngx-t-forms-form-section-stepper.component-x_83iAWA.mjs +0 -281
  122. package/fesm2022/ngx-t-forms-form-section-stepper.component-x_83iAWA.mjs.map +0 -1
  123. package/fesm2022/ngx-t-forms-forms-builder-menu.component-UWo_dyVt.mjs +0 -345
  124. package/fesm2022/ngx-t-forms-forms-builder-menu.component-UWo_dyVt.mjs.map +0 -1
  125. package/fesm2022/ngx-t-forms-input-editor.component-B_kkOoEO.mjs +0 -147
  126. package/fesm2022/ngx-t-forms-input-editor.component-B_kkOoEO.mjs.map +0 -1
  127. package/fesm2022/ngx-t-forms-map-mat-options-keys-SM5XM9uy.mjs.map +0 -1
  128. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-C41AL9Et.mjs +0 -105
  129. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-C41AL9Et.mjs.map +0 -1
  130. package/fesm2022/ngx-t-forms-mat-slider-editor.component-BWe8U-sI.mjs +0 -109
  131. package/fesm2022/ngx-t-forms-mat-slider-editor.component-BWe8U-sI.mjs.map +0 -1
  132. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-B_XlkHuK.mjs +0 -155
  133. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-B_XlkHuK.mjs.map +0 -1
  134. package/fesm2022/ngx-t-forms-missing-form-configs.component-DPNNyKkt.mjs +0 -28
  135. package/fesm2022/ngx-t-forms-missing-form-configs.component-DPNNyKkt.mjs.map +0 -1
  136. package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-DY1QnG08.mjs +0 -43
  137. package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-DY1QnG08.mjs.map +0 -1
  138. package/fesm2022/ngx-t-forms-mscoa-error-display.component-CRc_4l3l.mjs +0 -116
  139. package/fesm2022/ngx-t-forms-mscoa-error-display.component-CRc_4l3l.mjs.map +0 -1
  140. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-Ckr_nuZF.mjs +0 -296
  141. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-Ckr_nuZF.mjs.map +0 -1
  142. package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-GYxT-56Y.mjs +0 -83
  143. package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-GYxT-56Y.mjs.map +0 -1
  144. package/fesm2022/ngx-t-forms-ngx-t-forms-DP2koSL5.mjs +0 -17401
  145. package/fesm2022/ngx-t-forms-ngx-t-forms-DP2koSL5.mjs.map +0 -1
  146. package/fesm2022/ngx-t-forms-pipeline-generator.component-BxHetD_Q.mjs +0 -613
  147. package/fesm2022/ngx-t-forms-pipeline-generator.component-BxHetD_Q.mjs.map +0 -1
  148. package/fesm2022/ngx-t-forms-record-list-manager.component-BQuMkoXo.mjs +0 -269
  149. package/fesm2022/ngx-t-forms-record-list-manager.component-BQuMkoXo.mjs.map +0 -1
  150. package/fesm2022/ngx-t-forms-required-inputs.component-CLyq9dIR.mjs +0 -190
  151. package/fesm2022/ngx-t-forms-required-inputs.component-CLyq9dIR.mjs.map +0 -1
  152. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-CWeIUKLz.mjs +0 -291
  153. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-CWeIUKLz.mjs.map +0 -1
  154. package/fesm2022/ngx-t-forms-section-report.component-BtaF39WD.mjs +0 -156
  155. package/fesm2022/ngx-t-forms-section-report.component-BtaF39WD.mjs.map +0 -1
  156. package/fesm2022/ngx-t-forms-selection-options-editor.component-B4cEGWrK.mjs +0 -186
  157. package/fesm2022/ngx-t-forms-selection-options-editor.component-B4cEGWrK.mjs.map +0 -1
  158. package/fesm2022/ngx-t-forms-t-workflow-picker.component-BkVN4Wdk.mjs +0 -187
  159. package/fesm2022/ngx-t-forms-t-workflow-picker.component-BkVN4Wdk.mjs.map +0 -1
  160. package/fesm2022/ngx-t-forms-validators-config.component-Cq07Er-G.mjs +0 -215
  161. package/fesm2022/ngx-t-forms-validators-config.component-Cq07Er-G.mjs.map +0 -1
@@ -0,0 +1,26 @@
1
+ // ngx-t-forms — JSON Editor Syntax Highlighting (consumer-opt-in)
2
+ //
3
+ // The <app-json-editor> component renders its syntax highlights via
4
+ // [innerHTML], which Angular's emulated view encapsulation cannot scope.
5
+ // To keep the component itself on `ViewEncapsulation.Emulated` (per
6
+ // CLAUDE.md §3 and DECISIONS.md D-012), the five `.json-*` classes that
7
+ // colour keys, strings, numbers, booleans, and null tokens live here as
8
+ // a global partial.
9
+ //
10
+ // Usage — from the consumer's GLOBAL SCSS entry (e.g. `styles.scss`):
11
+ //
12
+ // @use 'ngx-t-forms/styles/json-editor-syntax';
13
+ //
14
+ // If you do not render <app-json-editor> visually, you can skip this
15
+ // import — the editor will still function, but the highlighted text will
16
+ // render with the default text colour (no syntax colouring).
17
+ //
18
+ // Colour palette: VS Code Dark inspired, now driven by the `--lib-forms-code-*`
19
+ // tokens defined in `styles/tokens` (Phase 6). The hex fallbacks keep this
20
+ // partial self-contained if the consumer loads it without the token sheet.
21
+
22
+ .json-key { color: var(--lib-forms-code-key, #9cdcfe); } // Light Blue (VS Code key)
23
+ .json-string { color: var(--lib-forms-code-string, #ce9178); } // Orange/Red
24
+ .json-number { color: var(--lib-forms-code-number, #b5cea8); } // Light Green
25
+ .json-boolean { color: var(--lib-forms-code-boolean, #569cd6); } // Dark Blue
26
+ .json-null { color: var(--lib-forms-code-null, #569cd6); } // Dark Blue
@@ -0,0 +1,26 @@
1
+ // ngx-t-forms — Signature Pad Canvas Sizing (consumer-opt-in)
2
+ //
3
+ // <lib-signature-pad-input> creates its drawing <canvas> imperatively
4
+ // (document.createElement('canvas') + host.appendChild(canvas)) inside the
5
+ // `.signature-container` host div. Because that element is injected at
6
+ // runtime rather than rendered from the template, Angular's emulated view
7
+ // encapsulation never stamps it with the component's `_ngcontent` attribute,
8
+ // so a component-scoped `.signature-container canvas` rule would no longer
9
+ // match the canvas after moving off ViewEncapsulation.None.
10
+ //
11
+ // To keep the component itself on `ViewEncapsulation.Emulated` (per
12
+ // CLAUDE.md §3 and DECISIONS.md D-012, following the json-editor precedent),
13
+ // the single canvas-sizing rule lives here as a global partial.
14
+ //
15
+ // Usage — from the consumer's GLOBAL SCSS entry (e.g. `styles.scss`):
16
+ //
17
+ // @use 'ngx-t-forms/styles/signature-pad';
18
+ //
19
+ // Without this import the signature pad still functions, but the imperatively
20
+ // created canvas falls back to its intrinsic size (the component sets an
21
+ // explicit pixel height in TS; width fills the host via this rule).
22
+
23
+ .signature-container canvas {
24
+ width: 100%;
25
+ height: 200px;
26
+ }
@@ -0,0 +1,148 @@
1
+ // ngx-t-forms — Design Tokens (Phase 6 · Visual debt)
2
+ // =====================================================
3
+ //
4
+ // THE single source of truth for every customizable visual value in the
5
+ // library. Component SCSS references these via `var(--lib-forms-*)` /
6
+ // `var(--sem-*)` and NEVER hardcodes a hex literal (CLAUDE.md §3 Visual;
7
+ // MIGRATION_PLAN.md §12). Token files are the one place a hex is allowed —
8
+ // here it is only ever a *fallback* behind a Material system variable.
9
+ //
10
+ // Source of truth for light/dark: Angular Material M3 system variables
11
+ // (`--mat-sys-*`). When the consumer sets up `mat.theme()`, these tokens
12
+ // inherit the active theme automatically. The hex fallbacks below match
13
+ // Material's M3 baseline (purple) so rendering is unchanged when no theme
14
+ // is loaded — preserving pre-migration parity (MIGRATION_PLAN.md §12.3).
15
+ //
16
+ // Re-theming (exit criterion, MIGRATION_PLAN.md §12.4): a consumer overrides
17
+ // any `--lib-forms-*` / `--sem-*` on `:root` (or a `.dark` / `[data-theme]`
18
+ // scope) in their GLOBAL styles and the whole library re-themes.
19
+ //
20
+ // USAGE — from the consumer's GLOBAL SCSS entry (e.g. `styles.scss`):
21
+ //
22
+ // @use 'ngx-t-forms/styles/tokens';
23
+ //
24
+ // This is a required integration step (additive, same convention as the
25
+ // Material theme and `ngx-t-forms/styles/json-editor-syntax`, DECISIONS.md
26
+ // D-012 / D-017).
27
+
28
+ :root {
29
+ // ---- Surface & text scale (Material M3 neutrals) -----------------------
30
+ --lib-forms-surface: var(--mat-sys-surface, #fef7ff);
31
+ --lib-forms-surface-container-lowest: var(--mat-sys-surface-container-lowest, #ffffff);
32
+ --lib-forms-surface-container-low: var(--mat-sys-surface-container-low, #f7f2fa);
33
+ --lib-forms-surface-container: var(--mat-sys-surface-container, #f3edf7);
34
+ --lib-forms-surface-container-high: var(--mat-sys-surface-container-high, #ece6f0);
35
+ --lib-forms-surface-container-highest: var(--mat-sys-surface-container-highest, #e6e0e9);
36
+ --lib-forms-surface-dim: var(--mat-sys-surface-dim, #ded8e1);
37
+
38
+ --lib-forms-on-surface: var(--mat-sys-on-surface, #1c1b1f);
39
+ --lib-forms-on-surface-variant: var(--mat-sys-on-surface-variant, #49454f);
40
+
41
+ --lib-forms-outline: var(--mat-sys-outline, #79747e);
42
+ --lib-forms-outline-variant: var(--mat-sys-outline-variant, #cac4d0);
43
+
44
+ // ---- Single accent (Material M3 primary) -------------------------------
45
+ --lib-forms-primary: var(--mat-sys-primary, #6750a4);
46
+ --lib-forms-on-primary: var(--mat-sys-on-primary, #ffffff);
47
+ --lib-forms-primary-container: var(--mat-sys-primary-container, #eaddff);
48
+ --lib-forms-on-primary-container: var(--mat-sys-on-primary-container, #21005d);
49
+
50
+ // ---- Error (structural; mirrors --sem-error) ---------------------------
51
+ --lib-forms-error: var(--mat-sys-error, #b3261e);
52
+ --lib-forms-on-error: var(--mat-sys-on-error, #ffffff);
53
+ --lib-forms-error-container: var(--mat-sys-error-container, #f9dedc);
54
+ --lib-forms-on-error-container: var(--mat-sys-on-error-container, #410e0b);
55
+
56
+ // ---- Shadow colour (so component shadows stay tokenised) ---------------
57
+ --lib-forms-shadow-color: var(--mat-sys-shadow, #000000);
58
+
59
+ // ---- Radius (preserves pre-migration values; not a Phase 6 gap) --------
60
+ --lib-forms-radius-sm: 8px;
61
+ --lib-forms-radius-md: 10px;
62
+ --lib-forms-radius-lg: 12px;
63
+ --lib-forms-radius-pill: 999px;
64
+
65
+ // ---- Elevation (GDP §17 — wide, soft, monochromatic) -------------------
66
+ --lib-forms-shadow-edge: 0 1px 2px color-mix(in srgb, var(--lib-forms-shadow-color) 4%, transparent);
67
+ --lib-forms-shadow-resting: 0 4px 24px color-mix(in srgb, var(--lib-forms-shadow-color) 6%, transparent);
68
+ --lib-forms-shadow-hover: 0 8px 40px color-mix(in srgb, var(--lib-forms-shadow-color) 10%, transparent);
69
+ --lib-forms-shadow-floating: 0 16px 56px color-mix(in srgb, var(--lib-forms-shadow-color) 14%, transparent);
70
+
71
+ // ---- Motion (GDP §16 / L-05) -------------------------------------------
72
+ // The luxury easing: fast start, slow decelerate — never mechanical.
73
+ --lib-forms-easing: cubic-bezier(0.16, 1, 0.3, 1);
74
+ --lib-forms-duration-hover: 300ms; // hover / border / outline changes
75
+ --lib-forms-duration: 400ms; // entrance / exit / toggle / expand
76
+
77
+ // ---- Semantic palette (GDP §2c) — chips / badges / alerts / inline -----
78
+ // Status hues. Never used as structural/decorative colour (SC-01..SC-07).
79
+ --sem-error: var(--mat-sys-error, #b3261e);
80
+ --sem-success: #1a6b3a;
81
+ --sem-warning: #7c5800;
82
+ --sem-info: #2c4393;
83
+ --sem-premium: #8b3a00;
84
+
85
+ --sem-error-surface: color-mix(in srgb, var(--sem-error) 10%, var(--lib-forms-surface));
86
+ --sem-success-surface: color-mix(in srgb, var(--sem-success) 10%, var(--lib-forms-surface));
87
+ --sem-warning-surface: color-mix(in srgb, #c87800 10%, var(--lib-forms-surface));
88
+ --sem-info-surface: color-mix(in srgb, var(--sem-info) 10%, var(--lib-forms-surface));
89
+ --sem-premium-surface: color-mix(in srgb, #c45000 10%, var(--lib-forms-surface));
90
+
91
+ // ---- Workflow-state hues (GDP §2c hue map) -----------------------------
92
+ // Amber=user action needed · Red=viewer accountable/blocking ·
93
+ // Rust=someone else blocking · Blue=automated · Emerald=terminal success ·
94
+ // Slate=archived · Charcoal=concurrency lock.
95
+ --sem-amber: #b06f00;
96
+ --sem-red: var(--mat-sys-error, #b3261e);
97
+ --sem-rust: #8a3b1e;
98
+ --sem-blue: #2c4393;
99
+ --sem-emerald: #1a6b3a;
100
+ --sem-slate: #4a5568;
101
+ --sem-charcoal: #3a3a3a;
102
+
103
+ --sem-amber-surface: color-mix(in srgb, var(--sem-amber) 12%, var(--lib-forms-surface));
104
+ --sem-red-surface: color-mix(in srgb, var(--sem-red) 12%, var(--lib-forms-surface));
105
+ --sem-rust-surface: color-mix(in srgb, var(--sem-rust) 12%, var(--lib-forms-surface));
106
+ --sem-blue-surface: color-mix(in srgb, var(--sem-blue) 12%, var(--lib-forms-surface));
107
+ --sem-emerald-surface: color-mix(in srgb, var(--sem-emerald) 12%, var(--lib-forms-surface));
108
+ --sem-slate-surface: color-mix(in srgb, var(--sem-slate) 12%, var(--lib-forms-surface));
109
+ --sem-charcoal-surface: color-mix(in srgb, var(--sem-charcoal) 12%, var(--lib-forms-surface));
110
+
111
+ // ---- Code / syntax-highlight palette (json-editor; opt-in) -------------
112
+ // VS Code Dark inspired. Consumed by `styles/json-editor-syntax`.
113
+ --lib-forms-code-bg: #1e1e1e;
114
+ --lib-forms-code-surface: #252526;
115
+ --lib-forms-code-border: #3e3e42;
116
+ --lib-forms-code-fg: #d4d4d4;
117
+ --lib-forms-code-key: #9cdcfe; // light blue
118
+ --lib-forms-code-string: #ce9178; // orange/red
119
+ --lib-forms-code-number: #b5cea8; // light green
120
+ --lib-forms-code-boolean: #569cd6; // dark blue
121
+ --lib-forms-code-null: #569cd6; // dark blue
122
+ --lib-forms-code-error: #f48771; // soft red
123
+
124
+ // ---- HTTP method hues (REST / Postman editors) -------------------------
125
+ // Reuse the semantic palette so they adapt in dark mode (SC-* compliant —
126
+ // only ever used as a small method badge, never structural colour).
127
+ --lib-forms-method-get: var(--sem-emerald, #1a6b3a);
128
+ --lib-forms-method-post: var(--sem-blue, #2c4393);
129
+ --lib-forms-method-put: var(--sem-amber, #b06f00);
130
+ --lib-forms-method-patch: var(--sem-rust, #8a3b1e);
131
+ --lib-forms-method-delete: var(--sem-error, #b3261e);
132
+ }
133
+
134
+ // Dark-mode text overrides (GDP §2c — surfaces adapt via color-mix; only
135
+ // the semantic text hues need lightening). Library reacts to a consumer-set
136
+ // `.dark` / `[data-theme="dark"]` scope — it never declares the switch itself.
137
+ :root.dark,
138
+ .dark,
139
+ [data-theme='dark'] {
140
+ --sem-success: #4caf82;
141
+ --sem-warning: #e6a817;
142
+ --sem-premium: #d4743a;
143
+
144
+ --sem-amber: #e6a817;
145
+ --sem-rust: #c5734f;
146
+ --sem-emerald: #4caf82;
147
+ --sem-slate: #94a3b8;
148
+ }