@contractspec/lib.surface-runtime 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/README.md +164 -0
  2. package/dist/adapters/ai-sdk-stub.d.ts +5 -0
  3. package/dist/adapters/ai-sdk-stub.js +13 -0
  4. package/dist/adapters/blocknote-stub.d.ts +6 -0
  5. package/dist/adapters/blocknote-stub.js +31 -0
  6. package/dist/adapters/dnd-kit-adapter.d.ts +13 -0
  7. package/dist/adapters/dnd-kit-adapter.js +44 -0
  8. package/dist/adapters/dnd-kit-stub.d.ts +6 -0
  9. package/dist/adapters/dnd-kit-stub.js +8 -0
  10. package/dist/adapters/floating-ui-stub.d.ts +6 -0
  11. package/dist/adapters/floating-ui-stub.js +19 -0
  12. package/dist/adapters/index.d.ts +11 -0
  13. package/dist/adapters/index.js +176 -0
  14. package/dist/adapters/interfaces.d.ts +75 -0
  15. package/dist/adapters/interfaces.js +1 -0
  16. package/dist/adapters/motion-stub.d.ts +7 -0
  17. package/dist/adapters/motion-stub.js +27 -0
  18. package/dist/adapters/motion-stub.test.d.ts +1 -0
  19. package/dist/adapters/resizable-panels-stub.d.ts +6 -0
  20. package/dist/adapters/resizable-panels-stub.js +46 -0
  21. package/dist/adapters/resizable-panels-stub.test.d.ts +1 -0
  22. package/dist/browser/adapters/ai-sdk-stub.js +12 -0
  23. package/dist/browser/adapters/blocknote-stub.js +30 -0
  24. package/dist/browser/adapters/dnd-kit-adapter.js +43 -0
  25. package/dist/browser/adapters/dnd-kit-stub.js +7 -0
  26. package/dist/browser/adapters/floating-ui-stub.js +18 -0
  27. package/dist/browser/adapters/index.js +175 -0
  28. package/dist/browser/adapters/interfaces.js +0 -0
  29. package/dist/browser/adapters/motion-stub.js +26 -0
  30. package/dist/browser/adapters/resizable-panels-stub.js +45 -0
  31. package/dist/browser/evals/golden-context.js +0 -0
  32. package/dist/browser/evals/golden-harness.js +848 -0
  33. package/dist/browser/examples/pm-workbench.bundle.js +476 -0
  34. package/dist/browser/i18n/catalogs/en.js +71 -0
  35. package/dist/browser/i18n/catalogs/es.js +32 -0
  36. package/dist/browser/i18n/catalogs/fr.js +32 -0
  37. package/dist/browser/i18n/catalogs/index.js +133 -0
  38. package/dist/browser/i18n/index.js +173 -0
  39. package/dist/browser/i18n/keys.js +19 -0
  40. package/dist/browser/i18n/messages.js +143 -0
  41. package/dist/browser/index.js +2466 -0
  42. package/dist/browser/react/BundleProvider.js +47 -0
  43. package/dist/browser/react/BundleRenderer.js +726 -0
  44. package/dist/browser/react/OverlayConflictResolver.js +255 -0
  45. package/dist/browser/react/PatchProposalCard.js +255 -0
  46. package/dist/browser/react/RegionRenderer.js +128 -0
  47. package/dist/browser/react/SlotRenderer.js +118 -0
  48. package/dist/browser/react/WidgetPalette.js +59 -0
  49. package/dist/browser/react/index.js +792 -0
  50. package/dist/browser/runtime/apply-surface-patch.js +322 -0
  51. package/dist/browser/runtime/audit-events.js +137 -0
  52. package/dist/browser/runtime/build-context.js +55 -0
  53. package/dist/browser/runtime/extension-registry.js +58 -0
  54. package/dist/browser/runtime/field-renderer-registry.js +145 -0
  55. package/dist/browser/runtime/index.js +1496 -0
  56. package/dist/browser/runtime/overlay-alignment.js +83 -0
  57. package/dist/browser/runtime/overlay-signer.js +15 -0
  58. package/dist/browser/runtime/override-store.js +52 -0
  59. package/dist/browser/runtime/planner-prompt.js +67 -0
  60. package/dist/browser/runtime/planner-tools.js +77 -0
  61. package/dist/browser/runtime/policy-eval.js +155 -0
  62. package/dist/browser/runtime/preference-adapter.js +67 -0
  63. package/dist/browser/runtime/resolve-bundle.js +767 -0
  64. package/dist/browser/runtime/resolve-preferences.js +59 -0
  65. package/dist/browser/runtime/rollback.js +347 -0
  66. package/dist/browser/runtime/widget-registry.js +36 -0
  67. package/dist/browser/spec/define-module-bundle.js +113 -0
  68. package/dist/browser/spec/index.js +319 -0
  69. package/dist/browser/spec/types.js +0 -0
  70. package/dist/browser/spec/validate-bundle.js +65 -0
  71. package/dist/browser/spec/validate-surface-patch.js +206 -0
  72. package/dist/browser/spec/verification-snapshot-types.js +0 -0
  73. package/dist/browser/telemetry/index.js +20 -0
  74. package/dist/browser/telemetry/surface-metrics.js +20 -0
  75. package/dist/evals/golden-context.d.ts +24 -0
  76. package/dist/evals/golden-context.js +1 -0
  77. package/dist/evals/golden-harness.d.ts +29 -0
  78. package/dist/evals/golden-harness.js +849 -0
  79. package/dist/evals/golden-harness.test.d.ts +1 -0
  80. package/dist/examples/pm-workbench.bundle.d.ts +177 -0
  81. package/dist/examples/pm-workbench.bundle.js +477 -0
  82. package/dist/i18n/catalogs/en.d.ts +1 -0
  83. package/dist/i18n/catalogs/en.js +72 -0
  84. package/dist/i18n/catalogs/es.d.ts +1 -0
  85. package/dist/i18n/catalogs/es.js +33 -0
  86. package/dist/i18n/catalogs/fr.d.ts +1 -0
  87. package/dist/i18n/catalogs/fr.js +33 -0
  88. package/dist/i18n/catalogs/index.d.ts +3 -0
  89. package/dist/i18n/catalogs/index.js +134 -0
  90. package/dist/i18n/index.d.ts +5 -0
  91. package/dist/i18n/index.js +174 -0
  92. package/dist/i18n/keys.d.ts +20 -0
  93. package/dist/i18n/keys.js +20 -0
  94. package/dist/i18n/messages.d.ts +5 -0
  95. package/dist/i18n/messages.js +144 -0
  96. package/dist/index.d.ts +4 -0
  97. package/dist/index.js +2467 -0
  98. package/dist/node/adapters/ai-sdk-stub.js +12 -0
  99. package/dist/node/adapters/blocknote-stub.js +30 -0
  100. package/dist/node/adapters/dnd-kit-adapter.js +43 -0
  101. package/dist/node/adapters/dnd-kit-stub.js +7 -0
  102. package/dist/node/adapters/floating-ui-stub.js +18 -0
  103. package/dist/node/adapters/index.js +175 -0
  104. package/dist/node/adapters/interfaces.js +0 -0
  105. package/dist/node/adapters/motion-stub.js +26 -0
  106. package/dist/node/adapters/resizable-panels-stub.js +45 -0
  107. package/dist/node/evals/golden-context.js +0 -0
  108. package/dist/node/evals/golden-harness.js +848 -0
  109. package/dist/node/examples/pm-workbench.bundle.js +476 -0
  110. package/dist/node/i18n/catalogs/en.js +71 -0
  111. package/dist/node/i18n/catalogs/es.js +32 -0
  112. package/dist/node/i18n/catalogs/fr.js +32 -0
  113. package/dist/node/i18n/catalogs/index.js +133 -0
  114. package/dist/node/i18n/index.js +173 -0
  115. package/dist/node/i18n/keys.js +19 -0
  116. package/dist/node/i18n/messages.js +143 -0
  117. package/dist/node/index.js +2466 -0
  118. package/dist/node/react/BundleProvider.js +47 -0
  119. package/dist/node/react/BundleRenderer.js +726 -0
  120. package/dist/node/react/OverlayConflictResolver.js +255 -0
  121. package/dist/node/react/PatchProposalCard.js +255 -0
  122. package/dist/node/react/RegionRenderer.js +128 -0
  123. package/dist/node/react/SlotRenderer.js +118 -0
  124. package/dist/node/react/WidgetPalette.js +59 -0
  125. package/dist/node/react/index.js +792 -0
  126. package/dist/node/runtime/apply-surface-patch.js +322 -0
  127. package/dist/node/runtime/audit-events.js +137 -0
  128. package/dist/node/runtime/build-context.js +55 -0
  129. package/dist/node/runtime/extension-registry.js +58 -0
  130. package/dist/node/runtime/field-renderer-registry.js +145 -0
  131. package/dist/node/runtime/index.js +1496 -0
  132. package/dist/node/runtime/overlay-alignment.js +83 -0
  133. package/dist/node/runtime/overlay-signer.js +15 -0
  134. package/dist/node/runtime/override-store.js +52 -0
  135. package/dist/node/runtime/planner-prompt.js +67 -0
  136. package/dist/node/runtime/planner-tools.js +77 -0
  137. package/dist/node/runtime/policy-eval.js +155 -0
  138. package/dist/node/runtime/preference-adapter.js +67 -0
  139. package/dist/node/runtime/resolve-bundle.js +767 -0
  140. package/dist/node/runtime/resolve-preferences.js +59 -0
  141. package/dist/node/runtime/rollback.js +347 -0
  142. package/dist/node/runtime/widget-registry.js +36 -0
  143. package/dist/node/spec/define-module-bundle.js +113 -0
  144. package/dist/node/spec/index.js +319 -0
  145. package/dist/node/spec/types.js +0 -0
  146. package/dist/node/spec/validate-bundle.js +65 -0
  147. package/dist/node/spec/validate-surface-patch.js +206 -0
  148. package/dist/node/spec/verification-snapshot-types.js +0 -0
  149. package/dist/node/telemetry/index.js +20 -0
  150. package/dist/node/telemetry/surface-metrics.js +20 -0
  151. package/dist/react/BundleProvider.d.ts +13 -0
  152. package/dist/react/BundleProvider.js +48 -0
  153. package/dist/react/BundleRenderer.d.ts +22 -0
  154. package/dist/react/BundleRenderer.js +727 -0
  155. package/dist/react/OverlayConflictResolver.d.ts +15 -0
  156. package/dist/react/OverlayConflictResolver.js +256 -0
  157. package/dist/react/PatchProposalCard.d.ts +13 -0
  158. package/dist/react/PatchProposalCard.js +256 -0
  159. package/dist/react/RegionRenderer.d.ts +13 -0
  160. package/dist/react/RegionRenderer.js +129 -0
  161. package/dist/react/SlotRenderer.d.ts +13 -0
  162. package/dist/react/SlotRenderer.js +119 -0
  163. package/dist/react/WidgetPalette.d.ts +12 -0
  164. package/dist/react/WidgetPalette.js +60 -0
  165. package/dist/react/index.d.ts +7 -0
  166. package/dist/react/index.js +793 -0
  167. package/dist/runtime/apply-surface-patch.d.ts +15 -0
  168. package/dist/runtime/apply-surface-patch.js +323 -0
  169. package/dist/runtime/apply-surface-patch.test.d.ts +1 -0
  170. package/dist/runtime/audit-events.d.ts +70 -0
  171. package/dist/runtime/audit-events.js +138 -0
  172. package/dist/runtime/audit-events.test.d.ts +1 -0
  173. package/dist/runtime/build-context.d.ts +9 -0
  174. package/dist/runtime/build-context.js +56 -0
  175. package/dist/runtime/extension-registry.d.ts +39 -0
  176. package/dist/runtime/extension-registry.js +59 -0
  177. package/dist/runtime/field-renderer-registry.d.ts +23 -0
  178. package/dist/runtime/field-renderer-registry.js +146 -0
  179. package/dist/runtime/field-renderer-registry.test.d.ts +1 -0
  180. package/dist/runtime/index.d.ts +16 -0
  181. package/dist/runtime/index.js +1497 -0
  182. package/dist/runtime/overlay-alignment.d.ts +49 -0
  183. package/dist/runtime/overlay-alignment.js +84 -0
  184. package/dist/runtime/overlay-alignment.test.d.ts +1 -0
  185. package/dist/runtime/overlay-signer.d.ts +15 -0
  186. package/dist/runtime/overlay-signer.js +16 -0
  187. package/dist/runtime/override-store.d.ts +44 -0
  188. package/dist/runtime/override-store.js +53 -0
  189. package/dist/runtime/override-store.test.d.ts +1 -0
  190. package/dist/runtime/planner-prompt.d.ts +39 -0
  191. package/dist/runtime/planner-prompt.js +68 -0
  192. package/dist/runtime/planner-prompt.test.d.ts +1 -0
  193. package/dist/runtime/planner-tools.d.ts +106 -0
  194. package/dist/runtime/planner-tools.js +78 -0
  195. package/dist/runtime/planner-tools.test.d.ts +1 -0
  196. package/dist/runtime/policy-eval.d.ts +23 -0
  197. package/dist/runtime/policy-eval.js +156 -0
  198. package/dist/runtime/preference-adapter.d.ts +6 -0
  199. package/dist/runtime/preference-adapter.js +68 -0
  200. package/dist/runtime/resolve-bundle.d.ts +68 -0
  201. package/dist/runtime/resolve-bundle.js +768 -0
  202. package/dist/runtime/resolve-bundle.test.d.ts +1 -0
  203. package/dist/runtime/resolve-preferences.d.ts +9 -0
  204. package/dist/runtime/resolve-preferences.js +60 -0
  205. package/dist/runtime/resolve-preferences.test.d.ts +1 -0
  206. package/dist/runtime/rollback.d.ts +21 -0
  207. package/dist/runtime/rollback.js +348 -0
  208. package/dist/runtime/rollback.test.d.ts +1 -0
  209. package/dist/runtime/widget-registry.d.ts +26 -0
  210. package/dist/runtime/widget-registry.js +37 -0
  211. package/dist/runtime/widget-registry.test.d.ts +1 -0
  212. package/dist/spec/define-module-bundle.d.ts +17 -0
  213. package/dist/spec/define-module-bundle.js +114 -0
  214. package/dist/spec/define-module-bundle.test.d.ts +1 -0
  215. package/dist/spec/index.d.ts +5 -0
  216. package/dist/spec/index.js +320 -0
  217. package/dist/spec/types.d.ts +494 -0
  218. package/dist/spec/types.js +1 -0
  219. package/dist/spec/validate-bundle.d.ts +23 -0
  220. package/dist/spec/validate-bundle.js +66 -0
  221. package/dist/spec/validate-bundle.test.d.ts +1 -0
  222. package/dist/spec/validate-surface-patch.d.ts +39 -0
  223. package/dist/spec/validate-surface-patch.js +207 -0
  224. package/dist/spec/validate-surface-patch.test.d.ts +1 -0
  225. package/dist/spec/verification-snapshot-types.d.ts +23 -0
  226. package/dist/spec/verification-snapshot-types.js +1 -0
  227. package/dist/spec/verification-snapshot.test.d.ts +5 -0
  228. package/dist/telemetry/index.d.ts +5 -0
  229. package/dist/telemetry/index.js +21 -0
  230. package/dist/telemetry/surface-metrics.d.ts +17 -0
  231. package/dist/telemetry/surface-metrics.js +21 -0
  232. package/package.json +920 -0
@@ -0,0 +1,133 @@
1
+ // src/i18n/catalogs/en.ts
2
+ import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
3
+ var enMessages = defineTranslation({
4
+ meta: {
5
+ key: "surface-runtime.messages",
6
+ version: "1.0.0",
7
+ domain: "surface-runtime",
8
+ description: "User-facing strings for surface-runtime UI components",
9
+ owners: ["platform"],
10
+ stability: "experimental"
11
+ },
12
+ locale: "en",
13
+ fallback: "en",
14
+ messages: {
15
+ "overlay.conflicts.title": {
16
+ value: "Overlay conflicts",
17
+ description: "Title for overlay conflict resolution banner"
18
+ },
19
+ "overlay.conflicts.keepScope": {
20
+ value: "Keep {scope}",
21
+ description: "Button to keep overlay from scope A or B"
22
+ },
23
+ "patch.accept": {
24
+ value: "Accept",
25
+ description: "Accept patch proposal button"
26
+ },
27
+ "patch.reject": {
28
+ value: "Reject",
29
+ description: "Reject patch proposal button"
30
+ },
31
+ "patch.addWidget": {
32
+ value: "Add {title} to {slot}",
33
+ description: "Insert node proposal summary"
34
+ },
35
+ "patch.removeItem": {
36
+ value: "Remove item",
37
+ description: "Remove node proposal summary"
38
+ },
39
+ "patch.switchLayout": {
40
+ value: "Switch to {layoutId} layout",
41
+ description: "Set layout proposal summary"
42
+ },
43
+ "patch.showField": {
44
+ value: "Show field {fieldId}",
45
+ description: "Reveal field proposal summary"
46
+ },
47
+ "patch.hideField": {
48
+ value: "Hide field {fieldId}",
49
+ description: "Hide field proposal summary"
50
+ },
51
+ "patch.moveTo": {
52
+ value: "Move to {slot}",
53
+ description: "Move node proposal summary"
54
+ },
55
+ "patch.replaceItem": {
56
+ value: "Replace item",
57
+ description: "Replace node proposal summary"
58
+ },
59
+ "patch.promote": {
60
+ value: "Promote {actionId}",
61
+ description: "Promote action proposal summary"
62
+ },
63
+ "patch.changes": {
64
+ value: "{count} changes",
65
+ description: "Multiple patch ops summary"
66
+ }
67
+ }
68
+ });
69
+
70
+ // src/i18n/catalogs/es.ts
71
+ import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
72
+ var esMessages = defineTranslation2({
73
+ meta: {
74
+ key: "surface-runtime.messages",
75
+ version: "1.0.0",
76
+ domain: "surface-runtime",
77
+ description: "User-facing strings for surface-runtime UI components",
78
+ owners: ["platform"],
79
+ stability: "experimental"
80
+ },
81
+ locale: "es",
82
+ fallback: "en",
83
+ messages: {
84
+ "overlay.conflicts.title": { value: "Conflictos de superposición" },
85
+ "overlay.conflicts.keepScope": { value: "Mantener {scope}" },
86
+ "patch.accept": { value: "Aceptar" },
87
+ "patch.reject": { value: "Rechazar" },
88
+ "patch.addWidget": { value: "Añadir {title} a {slot}" },
89
+ "patch.removeItem": { value: "Eliminar elemento" },
90
+ "patch.switchLayout": { value: "Cambiar a disposición {layoutId}" },
91
+ "patch.showField": { value: "Mostrar campo {fieldId}" },
92
+ "patch.hideField": { value: "Ocultar campo {fieldId}" },
93
+ "patch.moveTo": { value: "Mover a {slot}" },
94
+ "patch.replaceItem": { value: "Reemplazar elemento" },
95
+ "patch.promote": { value: "Promover {actionId}" },
96
+ "patch.changes": { value: "{count} cambios" }
97
+ }
98
+ });
99
+
100
+ // src/i18n/catalogs/fr.ts
101
+ import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
102
+ var frMessages = defineTranslation3({
103
+ meta: {
104
+ key: "surface-runtime.messages",
105
+ version: "1.0.0",
106
+ domain: "surface-runtime",
107
+ description: "User-facing strings for surface-runtime UI components",
108
+ owners: ["platform"],
109
+ stability: "experimental"
110
+ },
111
+ locale: "fr",
112
+ fallback: "en",
113
+ messages: {
114
+ "overlay.conflicts.title": { value: "Conflits de superposition" },
115
+ "overlay.conflicts.keepScope": { value: "Conserver {scope}" },
116
+ "patch.accept": { value: "Accepter" },
117
+ "patch.reject": { value: "Rejeter" },
118
+ "patch.addWidget": { value: "Ajouter {title} à {slot}" },
119
+ "patch.removeItem": { value: "Supprimer l'élément" },
120
+ "patch.switchLayout": { value: "Passer à la disposition {layoutId}" },
121
+ "patch.showField": { value: "Afficher le champ {fieldId}" },
122
+ "patch.hideField": { value: "Masquer le champ {fieldId}" },
123
+ "patch.moveTo": { value: "Déplacer vers {slot}" },
124
+ "patch.replaceItem": { value: "Remplacer l'élément" },
125
+ "patch.promote": { value: "Promouvoir {actionId}" },
126
+ "patch.changes": { value: "{count} modifications" }
127
+ }
128
+ });
129
+ export {
130
+ frMessages,
131
+ esMessages,
132
+ enMessages
133
+ };
@@ -0,0 +1,173 @@
1
+ // src/i18n/catalogs/en.ts
2
+ import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
3
+ var enMessages = defineTranslation({
4
+ meta: {
5
+ key: "surface-runtime.messages",
6
+ version: "1.0.0",
7
+ domain: "surface-runtime",
8
+ description: "User-facing strings for surface-runtime UI components",
9
+ owners: ["platform"],
10
+ stability: "experimental"
11
+ },
12
+ locale: "en",
13
+ fallback: "en",
14
+ messages: {
15
+ "overlay.conflicts.title": {
16
+ value: "Overlay conflicts",
17
+ description: "Title for overlay conflict resolution banner"
18
+ },
19
+ "overlay.conflicts.keepScope": {
20
+ value: "Keep {scope}",
21
+ description: "Button to keep overlay from scope A or B"
22
+ },
23
+ "patch.accept": {
24
+ value: "Accept",
25
+ description: "Accept patch proposal button"
26
+ },
27
+ "patch.reject": {
28
+ value: "Reject",
29
+ description: "Reject patch proposal button"
30
+ },
31
+ "patch.addWidget": {
32
+ value: "Add {title} to {slot}",
33
+ description: "Insert node proposal summary"
34
+ },
35
+ "patch.removeItem": {
36
+ value: "Remove item",
37
+ description: "Remove node proposal summary"
38
+ },
39
+ "patch.switchLayout": {
40
+ value: "Switch to {layoutId} layout",
41
+ description: "Set layout proposal summary"
42
+ },
43
+ "patch.showField": {
44
+ value: "Show field {fieldId}",
45
+ description: "Reveal field proposal summary"
46
+ },
47
+ "patch.hideField": {
48
+ value: "Hide field {fieldId}",
49
+ description: "Hide field proposal summary"
50
+ },
51
+ "patch.moveTo": {
52
+ value: "Move to {slot}",
53
+ description: "Move node proposal summary"
54
+ },
55
+ "patch.replaceItem": {
56
+ value: "Replace item",
57
+ description: "Replace node proposal summary"
58
+ },
59
+ "patch.promote": {
60
+ value: "Promote {actionId}",
61
+ description: "Promote action proposal summary"
62
+ },
63
+ "patch.changes": {
64
+ value: "{count} changes",
65
+ description: "Multiple patch ops summary"
66
+ }
67
+ }
68
+ });
69
+
70
+ // src/i18n/catalogs/es.ts
71
+ import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
72
+ var esMessages = defineTranslation2({
73
+ meta: {
74
+ key: "surface-runtime.messages",
75
+ version: "1.0.0",
76
+ domain: "surface-runtime",
77
+ description: "User-facing strings for surface-runtime UI components",
78
+ owners: ["platform"],
79
+ stability: "experimental"
80
+ },
81
+ locale: "es",
82
+ fallback: "en",
83
+ messages: {
84
+ "overlay.conflicts.title": { value: "Conflictos de superposición" },
85
+ "overlay.conflicts.keepScope": { value: "Mantener {scope}" },
86
+ "patch.accept": { value: "Aceptar" },
87
+ "patch.reject": { value: "Rechazar" },
88
+ "patch.addWidget": { value: "Añadir {title} a {slot}" },
89
+ "patch.removeItem": { value: "Eliminar elemento" },
90
+ "patch.switchLayout": { value: "Cambiar a disposición {layoutId}" },
91
+ "patch.showField": { value: "Mostrar campo {fieldId}" },
92
+ "patch.hideField": { value: "Ocultar campo {fieldId}" },
93
+ "patch.moveTo": { value: "Mover a {slot}" },
94
+ "patch.replaceItem": { value: "Reemplazar elemento" },
95
+ "patch.promote": { value: "Promover {actionId}" },
96
+ "patch.changes": { value: "{count} cambios" }
97
+ }
98
+ });
99
+
100
+ // src/i18n/catalogs/fr.ts
101
+ import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
102
+ var frMessages = defineTranslation3({
103
+ meta: {
104
+ key: "surface-runtime.messages",
105
+ version: "1.0.0",
106
+ domain: "surface-runtime",
107
+ description: "User-facing strings for surface-runtime UI components",
108
+ owners: ["platform"],
109
+ stability: "experimental"
110
+ },
111
+ locale: "fr",
112
+ fallback: "en",
113
+ messages: {
114
+ "overlay.conflicts.title": { value: "Conflits de superposition" },
115
+ "overlay.conflicts.keepScope": { value: "Conserver {scope}" },
116
+ "patch.accept": { value: "Accepter" },
117
+ "patch.reject": { value: "Rejeter" },
118
+ "patch.addWidget": { value: "Ajouter {title} à {slot}" },
119
+ "patch.removeItem": { value: "Supprimer l'élément" },
120
+ "patch.switchLayout": { value: "Passer à la disposition {layoutId}" },
121
+ "patch.showField": { value: "Afficher le champ {fieldId}" },
122
+ "patch.hideField": { value: "Masquer le champ {fieldId}" },
123
+ "patch.moveTo": { value: "Déplacer vers {slot}" },
124
+ "patch.replaceItem": { value: "Remplacer l'élément" },
125
+ "patch.promote": { value: "Promouvoir {actionId}" },
126
+ "patch.changes": { value: "{count} modifications" }
127
+ }
128
+ });
129
+
130
+ // src/i18n/messages.ts
131
+ import {
132
+ createI18nFactory
133
+ } from "@contractspec/lib.contracts-spec/translations";
134
+ var factory = createI18nFactory({
135
+ specKey: "surface-runtime.messages",
136
+ catalogs: [enMessages, frMessages, esMessages]
137
+ });
138
+ var createSurfaceI18n = factory.create;
139
+ var getDefaultSurfaceI18n = factory.getDefault;
140
+
141
+ // src/i18n/keys.ts
142
+ var SURFACE_KEYS = {
143
+ "overlay.conflicts.title": "overlay.conflicts.title",
144
+ "overlay.conflicts.keepScope": "overlay.conflicts.keepScope",
145
+ "patch.accept": "patch.accept",
146
+ "patch.reject": "patch.reject",
147
+ "patch.addWidget": "patch.addWidget",
148
+ "patch.removeItem": "patch.removeItem",
149
+ "patch.switchLayout": "patch.switchLayout",
150
+ "patch.showField": "patch.showField",
151
+ "patch.hideField": "patch.hideField",
152
+ "patch.moveTo": "patch.moveTo",
153
+ "patch.replaceItem": "patch.replaceItem",
154
+ "patch.promote": "patch.promote",
155
+ "patch.changes": "patch.changes"
156
+ };
157
+
158
+ // src/i18n/index.ts
159
+ import {
160
+ resolveLocale,
161
+ isSupportedLocale,
162
+ DEFAULT_LOCALE,
163
+ SUPPORTED_LOCALES
164
+ } from "@contractspec/lib.contracts-spec/translations";
165
+ export {
166
+ resolveLocale,
167
+ isSupportedLocale,
168
+ getDefaultSurfaceI18n,
169
+ createSurfaceI18n,
170
+ SURFACE_KEYS,
171
+ SUPPORTED_LOCALES,
172
+ DEFAULT_LOCALE
173
+ };
@@ -0,0 +1,19 @@
1
+ // src/i18n/keys.ts
2
+ var SURFACE_KEYS = {
3
+ "overlay.conflicts.title": "overlay.conflicts.title",
4
+ "overlay.conflicts.keepScope": "overlay.conflicts.keepScope",
5
+ "patch.accept": "patch.accept",
6
+ "patch.reject": "patch.reject",
7
+ "patch.addWidget": "patch.addWidget",
8
+ "patch.removeItem": "patch.removeItem",
9
+ "patch.switchLayout": "patch.switchLayout",
10
+ "patch.showField": "patch.showField",
11
+ "patch.hideField": "patch.hideField",
12
+ "patch.moveTo": "patch.moveTo",
13
+ "patch.replaceItem": "patch.replaceItem",
14
+ "patch.promote": "patch.promote",
15
+ "patch.changes": "patch.changes"
16
+ };
17
+ export {
18
+ SURFACE_KEYS
19
+ };
@@ -0,0 +1,143 @@
1
+ // src/i18n/catalogs/en.ts
2
+ import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
3
+ var enMessages = defineTranslation({
4
+ meta: {
5
+ key: "surface-runtime.messages",
6
+ version: "1.0.0",
7
+ domain: "surface-runtime",
8
+ description: "User-facing strings for surface-runtime UI components",
9
+ owners: ["platform"],
10
+ stability: "experimental"
11
+ },
12
+ locale: "en",
13
+ fallback: "en",
14
+ messages: {
15
+ "overlay.conflicts.title": {
16
+ value: "Overlay conflicts",
17
+ description: "Title for overlay conflict resolution banner"
18
+ },
19
+ "overlay.conflicts.keepScope": {
20
+ value: "Keep {scope}",
21
+ description: "Button to keep overlay from scope A or B"
22
+ },
23
+ "patch.accept": {
24
+ value: "Accept",
25
+ description: "Accept patch proposal button"
26
+ },
27
+ "patch.reject": {
28
+ value: "Reject",
29
+ description: "Reject patch proposal button"
30
+ },
31
+ "patch.addWidget": {
32
+ value: "Add {title} to {slot}",
33
+ description: "Insert node proposal summary"
34
+ },
35
+ "patch.removeItem": {
36
+ value: "Remove item",
37
+ description: "Remove node proposal summary"
38
+ },
39
+ "patch.switchLayout": {
40
+ value: "Switch to {layoutId} layout",
41
+ description: "Set layout proposal summary"
42
+ },
43
+ "patch.showField": {
44
+ value: "Show field {fieldId}",
45
+ description: "Reveal field proposal summary"
46
+ },
47
+ "patch.hideField": {
48
+ value: "Hide field {fieldId}",
49
+ description: "Hide field proposal summary"
50
+ },
51
+ "patch.moveTo": {
52
+ value: "Move to {slot}",
53
+ description: "Move node proposal summary"
54
+ },
55
+ "patch.replaceItem": {
56
+ value: "Replace item",
57
+ description: "Replace node proposal summary"
58
+ },
59
+ "patch.promote": {
60
+ value: "Promote {actionId}",
61
+ description: "Promote action proposal summary"
62
+ },
63
+ "patch.changes": {
64
+ value: "{count} changes",
65
+ description: "Multiple patch ops summary"
66
+ }
67
+ }
68
+ });
69
+
70
+ // src/i18n/catalogs/es.ts
71
+ import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
72
+ var esMessages = defineTranslation2({
73
+ meta: {
74
+ key: "surface-runtime.messages",
75
+ version: "1.0.0",
76
+ domain: "surface-runtime",
77
+ description: "User-facing strings for surface-runtime UI components",
78
+ owners: ["platform"],
79
+ stability: "experimental"
80
+ },
81
+ locale: "es",
82
+ fallback: "en",
83
+ messages: {
84
+ "overlay.conflicts.title": { value: "Conflictos de superposición" },
85
+ "overlay.conflicts.keepScope": { value: "Mantener {scope}" },
86
+ "patch.accept": { value: "Aceptar" },
87
+ "patch.reject": { value: "Rechazar" },
88
+ "patch.addWidget": { value: "Añadir {title} a {slot}" },
89
+ "patch.removeItem": { value: "Eliminar elemento" },
90
+ "patch.switchLayout": { value: "Cambiar a disposición {layoutId}" },
91
+ "patch.showField": { value: "Mostrar campo {fieldId}" },
92
+ "patch.hideField": { value: "Ocultar campo {fieldId}" },
93
+ "patch.moveTo": { value: "Mover a {slot}" },
94
+ "patch.replaceItem": { value: "Reemplazar elemento" },
95
+ "patch.promote": { value: "Promover {actionId}" },
96
+ "patch.changes": { value: "{count} cambios" }
97
+ }
98
+ });
99
+
100
+ // src/i18n/catalogs/fr.ts
101
+ import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
102
+ var frMessages = defineTranslation3({
103
+ meta: {
104
+ key: "surface-runtime.messages",
105
+ version: "1.0.0",
106
+ domain: "surface-runtime",
107
+ description: "User-facing strings for surface-runtime UI components",
108
+ owners: ["platform"],
109
+ stability: "experimental"
110
+ },
111
+ locale: "fr",
112
+ fallback: "en",
113
+ messages: {
114
+ "overlay.conflicts.title": { value: "Conflits de superposition" },
115
+ "overlay.conflicts.keepScope": { value: "Conserver {scope}" },
116
+ "patch.accept": { value: "Accepter" },
117
+ "patch.reject": { value: "Rejeter" },
118
+ "patch.addWidget": { value: "Ajouter {title} à {slot}" },
119
+ "patch.removeItem": { value: "Supprimer l'élément" },
120
+ "patch.switchLayout": { value: "Passer à la disposition {layoutId}" },
121
+ "patch.showField": { value: "Afficher le champ {fieldId}" },
122
+ "patch.hideField": { value: "Masquer le champ {fieldId}" },
123
+ "patch.moveTo": { value: "Déplacer vers {slot}" },
124
+ "patch.replaceItem": { value: "Remplacer l'élément" },
125
+ "patch.promote": { value: "Promouvoir {actionId}" },
126
+ "patch.changes": { value: "{count} modifications" }
127
+ }
128
+ });
129
+
130
+ // src/i18n/messages.ts
131
+ import {
132
+ createI18nFactory
133
+ } from "@contractspec/lib.contracts-spec/translations";
134
+ var factory = createI18nFactory({
135
+ specKey: "surface-runtime.messages",
136
+ catalogs: [enMessages, frMessages, esMessages]
137
+ });
138
+ var createSurfaceI18n = factory.create;
139
+ var getDefaultSurfaceI18n = factory.getDefault;
140
+ export {
141
+ getDefaultSurfaceI18n,
142
+ createSurfaceI18n
143
+ };