myrole-docx-editor 0.1.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 (308) hide show
  1. package/README.md +107 -0
  2. package/dist/chunks/sdk-BKkeAoJT.js +15065 -0
  3. package/dist/chunks/sdk-BKkeAoJT.js.map +1 -0
  4. package/dist/chunks/vars-blockly-C-cJRHx8.js +42 -0
  5. package/dist/chunks/vars-blockly-C-cJRHx8.js.map +1 -0
  6. package/dist/index.js +53 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/react.js +36 -0
  9. package/dist/react.js.map +1 -0
  10. package/dist/types/packages/docx-editor/src/chrome.d.ts +28 -0
  11. package/dist/types/packages/docx-editor/src/commands.d.ts +16 -0
  12. package/dist/types/packages/docx-editor/src/comments.d.ts +24 -0
  13. package/dist/types/packages/docx-editor/src/editor.d.ts +293 -0
  14. package/dist/types/packages/docx-editor/src/embed.d.ts +7 -0
  15. package/dist/types/packages/docx-editor/src/font-manifest.d.ts +7 -0
  16. package/dist/types/packages/docx-editor/src/fonts.d.ts +5 -0
  17. package/dist/types/packages/docx-editor/src/html.d.ts +13 -0
  18. package/dist/types/packages/docx-editor/src/index.d.ts +20 -0
  19. package/dist/types/packages/docx-editor/src/inspector-ui.d.ts +6 -0
  20. package/dist/types/packages/docx-editor/src/inspector.d.ts +101 -0
  21. package/dist/types/packages/docx-editor/src/react.d.ts +24 -0
  22. package/dist/types/packages/docx-editor/src/ruler.d.ts +4 -0
  23. package/dist/types/packages/docx-editor/src/sdk.d.ts +85 -0
  24. package/dist/types/packages/docx-editor/src/ui/icons.d.ts +2 -0
  25. package/dist/types/packages/docx-editor/src/ui/shell.d.ts +57 -0
  26. package/dist/types/packages/docx-editor/src/variables.d.ts +68 -0
  27. package/dist/types/packages/docx-editor/src/vars-blockly.d.ts +9 -0
  28. package/dist/types/packages/docx-editor/src/vars-complete.d.ts +60 -0
  29. package/dist/types/packages/docx-editor/src/vars-library.d.ts +59 -0
  30. package/dist/types/packages/docx-editor/src/vars-panel.d.ts +38 -0
  31. package/dist/types/packages/docx-model/src/edit.d.ts +64 -0
  32. package/dist/types/packages/docx-model/src/editor.d.ts +254 -0
  33. package/dist/types/packages/docx-model/src/fonts.d.ts +60 -0
  34. package/dist/types/packages/docx-model/src/heal.d.ts +28 -0
  35. package/dist/types/packages/docx-model/src/index.d.ts +113 -0
  36. package/dist/types/packages/docx-model/src/insert.d.ts +30 -0
  37. package/dist/types/packages/docx-model/src/layout.d.ts +411 -0
  38. package/dist/types/packages/docx-model/src/numbering.d.ts +63 -0
  39. package/dist/types/packages/docx-model/src/paste.d.ts +51 -0
  40. package/dist/types/packages/docx-model/src/rels.d.ts +18 -0
  41. package/dist/types/packages/docx-model/src/spans.d.ts +69 -0
  42. package/dist/types/packages/docx-model/src/styles.d.ts +42 -0
  43. package/dist/types/packages/docx-model/src/tables.d.ts +196 -0
  44. package/dist/types/packages/docx-model/src/textbox.d.ts +61 -0
  45. package/dist/types/packages/docx-render/src/border.d.ts +39 -0
  46. package/dist/types/packages/docx-render/src/document.d.ts +55 -0
  47. package/dist/types/packages/docx-render/src/font-advances.d.ts +1 -0
  48. package/dist/types/packages/docx-render/src/hit.d.ts +94 -0
  49. package/dist/types/packages/docx-render/src/index.d.ts +12 -0
  50. package/dist/types/packages/docx-render/src/metrics.d.ts +6 -0
  51. package/dist/types/packages/docx-render/src/node-ctx.d.ts +36 -0
  52. package/dist/types/packages/docx-render/src/paragraph.d.ts +18 -0
  53. package/dist/types/packages/docx-render/src/parts.d.ts +40 -0
  54. package/dist/types/packages/docx-render/src/renderer.d.ts +251 -0
  55. package/dist/types/packages/docx-render/src/table.d.ts +15 -0
  56. package/dist/types/packages/docx-render/src/text.d.ts +396 -0
  57. package/dist/types/packages/docx-render/src/types.d.ts +514 -0
  58. package/dist/types/packages/docx-tags/src/add-comments.d.ts +2 -0
  59. package/dist/types/packages/docx-tags/src/comments.d.ts +19 -0
  60. package/dist/types/packages/docx-tags/src/grammar.d.ts +71 -0
  61. package/dist/types/packages/docx-tags/src/highlight.d.ts +22 -0
  62. package/dist/types/packages/docx-tags/src/index.d.ts +4 -0
  63. package/dist/types/packages/docx-tags/src/scan.d.ts +27 -0
  64. package/dist/types/packages/docx-vars/src/audit.d.ts +44 -0
  65. package/dist/types/packages/docx-vars/src/blockify.d.ts +61 -0
  66. package/dist/types/packages/docx-vars/src/blocks.d.ts +46 -0
  67. package/dist/types/packages/docx-vars/src/describe.d.ts +21 -0
  68. package/dist/types/packages/docx-vars/src/generate.d.ts +11 -0
  69. package/dist/types/packages/docx-vars/src/icons.d.ts +52 -0
  70. package/dist/types/packages/docx-vars/src/idioms.d.ts +36 -0
  71. package/dist/types/packages/docx-vars/src/index.d.ts +31 -0
  72. package/dist/types/packages/docx-vars/src/labels.d.ts +42 -0
  73. package/dist/types/packages/docx-vars/src/library.d.ts +47 -0
  74. package/dist/types/packages/docx-vars/src/phrase.d.ts +3 -0
  75. package/dist/types/packages/docx-vars/src/picker.d.ts +19 -0
  76. package/dist/types/packages/docx-vars/src/plugin.d.ts +126 -0
  77. package/dist/types/packages/docx-vars/src/plugins.d.ts +29 -0
  78. package/dist/types/packages/docx-vars/src/preview.d.ts +25 -0
  79. package/dist/types/packages/docx-vars/src/scenario.d.ts +20 -0
  80. package/dist/types/packages/docx-vars/src/substitute.d.ts +28 -0
  81. package/dist/types/packages/docx-vars/src/sync.d.ts +56 -0
  82. package/dist/types/packages/docx-vars/src/target-canvas.d.ts +66 -0
  83. package/dist/types/packages/docx-vars/src/tokens.d.ts +18 -0
  84. package/dist/types/packages/fonts/src/advances.d.ts +90 -0
  85. package/dist/types/packages/fonts/src/aliases.d.ts +27 -0
  86. package/dist/types/packages/fonts/src/families.d.ts +1 -0
  87. package/dist/types/packages/fonts/src/load.d.ts +25 -0
  88. package/dist/types/packages/fonts/src/metrics.d.ts +44 -0
  89. package/fonts/ttf/abadi-mt-condensed-extra-bold-400-normal.ttf +0 -0
  90. package/fonts/ttf/abadi-mt-condensed-light-400-normal.ttf +0 -0
  91. package/fonts/ttf/angsana-new-400-italic.ttf +0 -0
  92. package/fonts/ttf/angsana-new-400-normal.ttf +0 -0
  93. package/fonts/ttf/angsana-new-700-italic.ttf +0 -0
  94. package/fonts/ttf/angsana-new-700-normal.ttf +0 -0
  95. package/fonts/ttf/apple-color-emoji-400-normal.ttf +0 -0
  96. package/fonts/ttf/apple-symbols-400-normal.ttf +0 -0
  97. package/fonts/ttf/aptos-400-italic.ttf +0 -0
  98. package/fonts/ttf/aptos-400-normal.ttf +0 -0
  99. package/fonts/ttf/aptos-700-italic.ttf +0 -0
  100. package/fonts/ttf/aptos-700-normal.ttf +0 -0
  101. package/fonts/ttf/aptos-narrow-400-italic.ttf +0 -0
  102. package/fonts/ttf/aptos-narrow-400-normal.ttf +0 -0
  103. package/fonts/ttf/aptos-narrow-700-italic.ttf +0 -0
  104. package/fonts/ttf/aptos-narrow-700-normal.ttf +0 -0
  105. package/fonts/ttf/arial-400-italic.ttf +0 -0
  106. package/fonts/ttf/arial-400-normal.ttf +0 -0
  107. package/fonts/ttf/arial-700-italic.ttf +0 -0
  108. package/fonts/ttf/arial-700-normal.ttf +0 -0
  109. package/fonts/ttf/arial-black-700-normal.ttf +0 -0
  110. package/fonts/ttf/arial-hebrew-400-normal.ttf +0 -0
  111. package/fonts/ttf/arial-hebrew-700-normal.ttf +0 -0
  112. package/fonts/ttf/arial-narrow-400-italic.ttf +0 -0
  113. package/fonts/ttf/arial-narrow-400-normal.ttf +0 -0
  114. package/fonts/ttf/arial-narrow-700-italic.ttf +0 -0
  115. package/fonts/ttf/arial-narrow-700-normal.ttf +0 -0
  116. package/fonts/ttf/arial-rounded-mt-bold-400-normal.ttf +0 -0
  117. package/fonts/ttf/arial-unicode-ms-400-normal.ttf +0 -0
  118. package/fonts/ttf/avenir-400-italic.ttf +0 -0
  119. package/fonts/ttf/avenir-400-normal.ttf +0 -0
  120. package/fonts/ttf/avenir-700-normal.ttf +0 -0
  121. package/fonts/ttf/avenir-black-700-normal.ttf +0 -0
  122. package/fonts/ttf/avenir-book-400-normal.ttf +0 -0
  123. package/fonts/ttf/avenir-heavy-700-italic.ttf +0 -0
  124. package/fonts/ttf/avenir-heavy-700-normal.ttf +0 -0
  125. package/fonts/ttf/avenir-light-400-italic.ttf +0 -0
  126. package/fonts/ttf/avenir-light-400-normal.ttf +0 -0
  127. package/fonts/ttf/avenir-next-400-italic.ttf +0 -0
  128. package/fonts/ttf/avenir-next-400-normal.ttf +0 -0
  129. package/fonts/ttf/avenir-next-700-italic.ttf +0 -0
  130. package/fonts/ttf/avenir-next-700-normal.ttf +0 -0
  131. package/fonts/ttf/baskerville-old-face-400-normal.ttf +0 -0
  132. package/fonts/ttf/batang-400-normal.ttf +0 -0
  133. package/fonts/ttf/bauhaus-93-400-normal.ttf +0 -0
  134. package/fonts/ttf/big-caslon-400-normal.ttf +0 -0
  135. package/fonts/ttf/bookman-old-style-400-italic.ttf +0 -0
  136. package/fonts/ttf/bookman-old-style-400-normal.ttf +0 -0
  137. package/fonts/ttf/bookman-old-style-700-italic.ttf +0 -0
  138. package/fonts/ttf/bookman-old-style-700-normal.ttf +0 -0
  139. package/fonts/ttf/calibri-400-italic.ttf +0 -0
  140. package/fonts/ttf/calibri-400-normal.ttf +0 -0
  141. package/fonts/ttf/calibri-700-italic.ttf +0 -0
  142. package/fonts/ttf/calibri-700-normal.ttf +0 -0
  143. package/fonts/ttf/calibri-light-400-italic.ttf +0 -0
  144. package/fonts/ttf/calibri-light-400-normal.ttf +0 -0
  145. package/fonts/ttf/cambria-400-italic.ttf +0 -0
  146. package/fonts/ttf/cambria-400-normal.ttf +0 -0
  147. package/fonts/ttf/cambria-700-italic.ttf +0 -0
  148. package/fonts/ttf/cambria-700-normal.ttf +0 -0
  149. package/fonts/ttf/cambria-math-400-normal.ttf +0 -0
  150. package/fonts/ttf/candara-400-italic.ttf +0 -0
  151. package/fonts/ttf/candara-400-normal.ttf +0 -0
  152. package/fonts/ttf/candara-700-italic.ttf +0 -0
  153. package/fonts/ttf/candara-700-normal.ttf +0 -0
  154. package/fonts/ttf/century-400-normal.ttf +0 -0
  155. package/fonts/ttf/century-gothic-400-italic.ttf +0 -0
  156. package/fonts/ttf/century-gothic-400-normal.ttf +0 -0
  157. package/fonts/ttf/century-gothic-700-italic.ttf +0 -0
  158. package/fonts/ttf/century-gothic-700-normal.ttf +0 -0
  159. package/fonts/ttf/century-schoolbook-400-italic.ttf +0 -0
  160. package/fonts/ttf/century-schoolbook-400-normal.ttf +0 -0
  161. package/fonts/ttf/century-schoolbook-700-italic.ttf +0 -0
  162. package/fonts/ttf/century-schoolbook-700-normal.ttf +0 -0
  163. package/fonts/ttf/comic-sans-ms-400-normal.ttf +0 -0
  164. package/fonts/ttf/comic-sans-ms-700-normal.ttf +0 -0
  165. package/fonts/ttf/consolas-400-italic.ttf +0 -0
  166. package/fonts/ttf/consolas-400-normal.ttf +0 -0
  167. package/fonts/ttf/consolas-700-normal.ttf +0 -0
  168. package/fonts/ttf/corbel-400-italic.ttf +0 -0
  169. package/fonts/ttf/corbel-400-normal.ttf +0 -0
  170. package/fonts/ttf/corbel-700-italic.ttf +0 -0
  171. package/fonts/ttf/corbel-700-normal.ttf +0 -0
  172. package/fonts/ttf/cordia-new-400-italic.ttf +0 -0
  173. package/fonts/ttf/cordia-new-400-normal.ttf +0 -0
  174. package/fonts/ttf/cordia-new-700-italic.ttf +0 -0
  175. package/fonts/ttf/cordia-new-700-normal.ttf +0 -0
  176. package/fonts/ttf/courier-400-normal.ttf +0 -0
  177. package/fonts/ttf/courier-new-400-italic.ttf +0 -0
  178. package/fonts/ttf/courier-new-400-normal.ttf +0 -0
  179. package/fonts/ttf/courier-new-700-normal.ttf +0 -0
  180. package/fonts/ttf/dengxian-400-normal.ttf +0 -0
  181. package/fonts/ttf/dengxian-700-normal.ttf +0 -0
  182. package/fonts/ttf/dengxian-light-400-normal.ttf +0 -0
  183. package/fonts/ttf/didot-400-italic.ttf +0 -0
  184. package/fonts/ttf/didot-400-normal.ttf +0 -0
  185. package/fonts/ttf/didot-700-normal.ttf +0 -0
  186. package/fonts/ttf/edwardian-script-itc-400-normal.ttf +0 -0
  187. package/fonts/ttf/euphemia-ucas-400-italic.ttf +0 -0
  188. package/fonts/ttf/euphemia-ucas-400-normal.ttf +0 -0
  189. package/fonts/ttf/euphemia-ucas-700-normal.ttf +0 -0
  190. package/fonts/ttf/eurostile-400-normal.ttf +0 -0
  191. package/fonts/ttf/eurostile-700-normal.ttf +0 -0
  192. package/fonts/ttf/franklin-gothic-book-400-italic.ttf +0 -0
  193. package/fonts/ttf/franklin-gothic-book-400-normal.ttf +0 -0
  194. package/fonts/ttf/franklin-gothic-demi-400-italic.ttf +0 -0
  195. package/fonts/ttf/franklin-gothic-demi-400-normal.ttf +0 -0
  196. package/fonts/ttf/franklin-gothic-demi-cond-400-normal.ttf +0 -0
  197. package/fonts/ttf/franklin-gothic-medium-400-italic.ttf +0 -0
  198. package/fonts/ttf/franklin-gothic-medium-400-normal.ttf +0 -0
  199. package/fonts/ttf/franklin-gothic-medium-cond-400-normal.ttf +0 -0
  200. package/fonts/ttf/futura-400-italic.ttf +0 -0
  201. package/fonts/ttf/futura-400-normal.ttf +0 -0
  202. package/fonts/ttf/futura-700-normal.ttf +0 -0
  203. package/fonts/ttf/garamond-400-italic.ttf +0 -0
  204. package/fonts/ttf/garamond-400-normal.ttf +0 -0
  205. package/fonts/ttf/garamond-700-italic.ttf +0 -0
  206. package/fonts/ttf/garamond-700-normal.ttf +0 -0
  207. package/fonts/ttf/geneva-400-normal.ttf +0 -0
  208. package/fonts/ttf/georgia-400-italic.ttf +0 -0
  209. package/fonts/ttf/georgia-400-normal.ttf +0 -0
  210. package/fonts/ttf/georgia-700-normal.ttf +0 -0
  211. package/fonts/ttf/gill-sans-400-italic.ttf +0 -0
  212. package/fonts/ttf/gill-sans-400-normal.ttf +0 -0
  213. package/fonts/ttf/gill-sans-700-italic.ttf +0 -0
  214. package/fonts/ttf/gill-sans-700-normal.ttf +0 -0
  215. package/fonts/ttf/gill-sans-light-400-italic.ttf +0 -0
  216. package/fonts/ttf/gill-sans-light-400-normal.ttf +0 -0
  217. package/fonts/ttf/gill-sans-mt-400-italic.ttf +0 -0
  218. package/fonts/ttf/gill-sans-mt-400-normal.ttf +0 -0
  219. package/fonts/ttf/gill-sans-mt-700-italic.ttf +0 -0
  220. package/fonts/ttf/gill-sans-mt-700-normal.ttf +0 -0
  221. package/fonts/ttf/helvetica-400-italic.ttf +0 -0
  222. package/fonts/ttf/helvetica-400-normal.ttf +0 -0
  223. package/fonts/ttf/helvetica-700-italic.ttf +0 -0
  224. package/fonts/ttf/helvetica-700-normal.ttf +0 -0
  225. package/fonts/ttf/helvetica-neue-400-italic.ttf +0 -0
  226. package/fonts/ttf/helvetica-neue-400-normal.ttf +0 -0
  227. package/fonts/ttf/helvetica-neue-700-italic.ttf +0 -0
  228. package/fonts/ttf/helvetica-neue-700-normal.ttf +0 -0
  229. package/fonts/ttf/hoefler-text-400-italic.ttf +0 -0
  230. package/fonts/ttf/hoefler-text-400-normal.ttf +0 -0
  231. package/fonts/ttf/hoefler-text-700-italic.ttf +0 -0
  232. package/fonts/ttf/hoefler-text-700-normal.ttf +0 -0
  233. package/fonts/ttf/lucida-grande-400-normal.ttf +0 -0
  234. package/fonts/ttf/lucida-grande-700-normal.ttf +0 -0
  235. package/fonts/ttf/lucida-sans-400-italic.ttf +0 -0
  236. package/fonts/ttf/lucida-sans-400-normal.ttf +0 -0
  237. package/fonts/ttf/lucida-sans-700-italic.ttf +0 -0
  238. package/fonts/ttf/lucida-sans-700-normal.ttf +0 -0
  239. package/fonts/ttf/lucida-sans-unicode-400-normal.ttf +0 -0
  240. package/fonts/ttf/malgun-gothic-400-normal.ttf +0 -0
  241. package/fonts/ttf/malgun-gothic-700-normal.ttf +0 -0
  242. package/fonts/ttf/mangal-400-normal.ttf +0 -0
  243. package/fonts/ttf/mangal-700-normal.ttf +0 -0
  244. package/fonts/ttf/microsoft-sans-serif-400-normal.ttf +0 -0
  245. package/fonts/ttf/microsoft-yahei-400-normal.ttf +0 -0
  246. package/fonts/ttf/microsoft-yahei-700-normal.ttf +0 -0
  247. package/fonts/ttf/microsoft-yi-baiti-400-normal.ttf +0 -0
  248. package/fonts/ttf/monotype-sorts-400-normal.ttf +0 -0
  249. package/fonts/ttf/ms-gothic-400-normal.ttf +0 -0
  250. package/fonts/ttf/ms-mincho-400-normal.ttf +0 -0
  251. package/fonts/ttf/ms-ui-gothic-400-normal.ttf +0 -0
  252. package/fonts/ttf/new-york-400-italic.ttf +0 -0
  253. package/fonts/ttf/new-york-400-normal.ttf +0 -0
  254. package/fonts/ttf/news-gothic-mt-400-italic.ttf +0 -0
  255. package/fonts/ttf/news-gothic-mt-400-normal.ttf +0 -0
  256. package/fonts/ttf/news-gothic-mt-700-italic.ttf +0 -0
  257. package/fonts/ttf/news-gothic-mt-700-normal.ttf +0 -0
  258. package/fonts/ttf/nsimsun-400-normal.ttf +0 -0
  259. package/fonts/ttf/optima-400-italic.ttf +0 -0
  260. package/fonts/ttf/optima-400-normal.ttf +0 -0
  261. package/fonts/ttf/optima-700-italic.ttf +0 -0
  262. package/fonts/ttf/optima-700-normal.ttf +0 -0
  263. package/fonts/ttf/palatino-400-italic.ttf +0 -0
  264. package/fonts/ttf/palatino-400-normal.ttf +0 -0
  265. package/fonts/ttf/palatino-700-italic.ttf +0 -0
  266. package/fonts/ttf/palatino-700-normal.ttf +0 -0
  267. package/fonts/ttf/palatino-linotype-400-italic.ttf +0 -0
  268. package/fonts/ttf/palatino-linotype-400-normal.ttf +0 -0
  269. package/fonts/ttf/palatino-linotype-700-italic.ttf +0 -0
  270. package/fonts/ttf/palatino-linotype-700-normal.ttf +0 -0
  271. package/fonts/ttf/pmingliu-400-normal.ttf +0 -0
  272. package/fonts/ttf/pt-mono-400-normal.ttf +0 -0
  273. package/fonts/ttf/pt-mono-700-normal.ttf +0 -0
  274. package/fonts/ttf/segoe-ui-symbol-400-normal.ttf +0 -0
  275. package/fonts/ttf/simsun-400-normal.ttf +0 -0
  276. package/fonts/ttf/skia-400-normal.ttf +0 -0
  277. package/fonts/ttf/stencil-400-normal.ttf +0 -0
  278. package/fonts/ttf/symbol-400-normal.ttf +0 -0
  279. package/fonts/ttf/tahoma-400-normal.ttf +0 -0
  280. package/fonts/ttf/tahoma-700-normal.ttf +0 -0
  281. package/fonts/ttf/times-400-italic.ttf +0 -0
  282. package/fonts/ttf/times-400-normal.ttf +0 -0
  283. package/fonts/ttf/times-700-italic.ttf +0 -0
  284. package/fonts/ttf/times-700-normal.ttf +0 -0
  285. package/fonts/ttf/times-new-roman-400-italic.ttf +0 -0
  286. package/fonts/ttf/times-new-roman-400-normal.ttf +0 -0
  287. package/fonts/ttf/times-new-roman-700-italic.ttf +0 -0
  288. package/fonts/ttf/times-new-roman-700-normal.ttf +0 -0
  289. package/fonts/ttf/trebuchet-ms-400-italic.ttf +0 -0
  290. package/fonts/ttf/trebuchet-ms-400-normal.ttf +0 -0
  291. package/fonts/ttf/trebuchet-ms-700-italic.ttf +0 -0
  292. package/fonts/ttf/trebuchet-ms-700-normal.ttf +0 -0
  293. package/fonts/ttf/tw-cen-mt-400-normal.ttf +0 -0
  294. package/fonts/ttf/tw-cen-mt-700-normal.ttf +0 -0
  295. package/fonts/ttf/tw-cen-mt-condensed-400-normal.ttf +0 -0
  296. package/fonts/ttf/tw-cen-mt-condensed-700-normal.ttf +0 -0
  297. package/fonts/ttf/verdana-400-italic.ttf +0 -0
  298. package/fonts/ttf/verdana-400-normal.ttf +0 -0
  299. package/fonts/ttf/verdana-700-italic.ttf +0 -0
  300. package/fonts/ttf/verdana-700-normal.ttf +0 -0
  301. package/fonts/ttf/webdings-400-normal.ttf +0 -0
  302. package/fonts/ttf/wingdings-2-400-normal.ttf +0 -0
  303. package/fonts/ttf/wingdings-3-400-normal.ttf +0 -0
  304. package/fonts/ttf/wingdings-400-normal.ttf +0 -0
  305. package/fonts/ttf/yu-gothic-light-400-normal.ttf +0 -0
  306. package/fonts/ttf/yu-mincho-400-normal.ttf +0 -0
  307. package/fonts/ttf/yu-mincho-700-normal.ttf +0 -0
  308. package/package.json +63 -0
@@ -0,0 +1,44 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ import { type Scenario } from './index.js';
3
+ /**
4
+ * Contrôle d'une matrice.
5
+ *
6
+ * Deux natures de problème, à ne pas confondre :
7
+ * — la **syntaxe** casse la génération, quelles que soient les données ;
8
+ * — une **valeur vide** ne casse rien, mais laisse un trou dans le contrat.
9
+ *
10
+ * Le second cas ne se juge pas sur un seul jeu de données : un champ vide dans
11
+ * un scénario peut être normal et fautif dans un autre. D'où le balayage.
12
+ */
13
+ export type IssueLevel = 'error' | 'warning';
14
+ export interface Issue {
15
+ tagId: number;
16
+ level: IssueLevel;
17
+ kind: 'syntaxe' | 'évaluation' | 'vide';
18
+ message: string;
19
+ }
20
+ /** Ce qui empêchera la génération, indépendamment des données. */
21
+ export declare function syntaxIssues(tags: Tag[]): Issue[];
22
+ /** Ce que ce jeu de données donne : erreurs d'évaluation et trous. */
23
+ export declare function valueIssues(tags: Tag[], values: unknown): Promise<Issue[]>;
24
+ export interface SweepResult {
25
+ /** nombre de scénarios réellement évalués */
26
+ combos: number;
27
+ /** nombre de combinaisons possibles, avant plafonnement */
28
+ total: number;
29
+ /** tags vides dans **tous** les scénarios — probablement une vraie erreur */
30
+ always: Set<number>;
31
+ /** tags vides dans au moins un scénario — à vérifier */
32
+ sometimes: Set<number>;
33
+ /** tags en erreur d'évaluation dans au moins un scénario */
34
+ broken: Set<number>;
35
+ }
36
+ /** Toutes les combinaisons d'interrupteurs, plafonnées. */
37
+ export declare function combinations(switches: Scenario[], cap: number): Array<Array<[string, unknown]>>;
38
+ export declare function totalCombinations(switches: Scenario[]): number;
39
+ /**
40
+ * Évalue le document sous chaque scénario et classe les trous : ceux qui
41
+ * persistent partout (une vraie coquille) et ceux qui n'apparaissent que dans
42
+ * certains cas (une donnée qui manque, ou une section mal conditionnée).
43
+ */
44
+ export declare function sweep(tags: Tag[], switches: Scenario[], base: unknown, cap?: number): Promise<SweepResult>;
@@ -0,0 +1,61 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ import type { DocxComment } from '../../docx-tags/src/index';
3
+ export type BlockJson = {
4
+ type: string;
5
+ /** donnée technique conservée à côté de l'affichage — ici le nom de la fonction */
6
+ data?: string;
7
+ fields?: Record<string, any>;
8
+ inputs?: Record<string, {
9
+ block: BlockJson;
10
+ }>;
11
+ /** bloc suivant dans une pile d'instructions */
12
+ next?: {
13
+ block: BlockJson;
14
+ };
15
+ };
16
+ export declare function astToBlock(node: any, src: string): BlockJson;
17
+ export declare function exprToBlock(expr: string): BlockJson;
18
+ /** Tag -> état Blockly. */
19
+ export declare function tagToWorkspace(tag: Tag): {
20
+ blocks: {
21
+ languageVersion: number;
22
+ blocks: BlockJson[];
23
+ };
24
+ };
25
+ /**
26
+ * Vue « construction » : une section montre tout ce qu'elle contient, texte figé
27
+ * compris. C'est la structure réelle du document, pas seulement sa balise
28
+ * d'ouverture — et ça évite d'inspecter un `end-section` tout seul, qui ne veut
29
+ * rien dire.
30
+ */
31
+ export declare function constructionWorkspace(tag: Tag, tags: Tag[], paras: string[]): {
32
+ blocks: {
33
+ languageVersion: number;
34
+ blocks: BlockJson[];
35
+ };
36
+ } | {
37
+ blocks: {
38
+ languageVersion: number;
39
+ blocks: {
40
+ x: number;
41
+ y: number;
42
+ type: string;
43
+ /** donnée technique conservée à côté de l'affichage — ici le nom de la fonction */
44
+ data?: string;
45
+ fields?: Record<string, any>;
46
+ inputs?: Record<string, {
47
+ block: BlockJson;
48
+ }>;
49
+ /** bloc suivant dans une pile d'instructions */
50
+ next?: {
51
+ block: BlockJson;
52
+ };
53
+ }[];
54
+ };
55
+ };
56
+ export declare function commentToWorkspace(c: DocxComment): {
57
+ blocks: {
58
+ languageVersion: number;
59
+ blocks: any[];
60
+ };
61
+ };
@@ -0,0 +1,46 @@
1
+ import * as Blockly from 'blockly';
2
+ export interface FieldOption {
3
+ path: string;
4
+ label: string;
5
+ }
6
+ /** Alimente le sélecteur de champs des blocs `var_path`. */
7
+ export declare function setFields(fields: FieldOption[]): void;
8
+ /** Ajoute un chemin absent de la bibliothèque, pour qu'il reste sélectionnable. */
9
+ export declare function registerField(path: string): void;
10
+ /**
11
+ * La boîte à outils : les blocs qu'on peut tirer sur le canvas.
12
+ *
13
+ * Elle vit avec les blocs qu'elle nomme — la séparer de `defineBlocks` a
14
+ * exactement une conséquence, et c'est toujours la même : on ajoute un type et
15
+ * on oublie de l'y mettre.
16
+ *
17
+ * Les catégories suivent les familles de couleur, pas la grammaire jsonata :
18
+ * on cherche « une condition », pas « un opérateur ternaire ».
19
+ */
20
+ export declare const TOOLBOX: {
21
+ kind: string;
22
+ contents: {
23
+ kind: string;
24
+ name: string;
25
+ colour: string;
26
+ contents: {
27
+ kind: string;
28
+ type: string;
29
+ }[];
30
+ }[];
31
+ };
32
+ export declare function defineBlocks(): void;
33
+ /** Les libellés français ne sont pas dans l'AST : on les pose après chargement. */
34
+ export declare function decorate(ws: Blockly.Workspace): void;
35
+ export declare const THEME: Blockly.Theme;
36
+ /**
37
+ * `a & b & c` est un arbre binaire penché à droite. Le rendre tel quel empile
38
+ * trois niveaux d'imbrication pour une phrase à trous ; un bloc par arité le
39
+ * met à plat. La plus longue chaîne du corpus fait 3 morceaux, on couvre 2 à 6.
40
+ */
41
+ export declare const CONCAT_MAX = 6;
42
+ /**
43
+ * Inspection : on regarde le document, on ne le remanie pas. Les blocs restent
44
+ * lisibles et navigables, mais ni déplaçables, ni modifiables, ni supprimables.
45
+ */
46
+ export declare function setReadOnly(ws: Blockly.WorkspaceSvg, readOnly: boolean): void;
@@ -0,0 +1,21 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ import { type Idiom } from './idioms';
3
+ import type { IconName } from './icons';
4
+ export { describeAst, describeExpr } from './phrase';
5
+ export declare const DIRECTIVE_FR: Record<string, string>;
6
+ export type Category = 'variable' | 'expression' | 'condition' | 'function' | 'section' | 'loop' | 'section-end' | 'signature' | 'comment' | 'error';
7
+ export interface Badge {
8
+ icon: IconName;
9
+ label: string;
10
+ tech: string;
11
+ /** famille du tag — donne sa couleur */
12
+ cls: Category;
13
+ /** type de donnée, quand le tag désigne un champ unique */
14
+ typeLabel?: string;
15
+ /** motif reconnu — le badge affiche alors la phrase, pas l'arbre */
16
+ idiom?: Idiom;
17
+ }
18
+ /** Ce qu'on affiche dans le document, à la place du code. */
19
+ export declare function badgeOf(tag: Tag): Badge;
20
+ /** L'astuce contextuelle du panneau d'inspection. */
21
+ export declare function hintOf(tag: Tag): string;
@@ -0,0 +1,11 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ import type { BlockJson } from './blockify';
3
+ export declare function blockToExpr(b: BlockJson | undefined): string;
4
+ /**
5
+ * Bloc racine → texte du tag, modificateurs d'origine réappliqués.
6
+ *
7
+ * ponytail: les modificateurs ne sont pas représentés en blocs, donc on les
8
+ * recopie tels quels plutôt que de les perdre. Le jour où ils deviennent
9
+ * éditables, ils sortiront d'ici comme le reste.
10
+ */
11
+ export declare function blockToTag(b: BlockJson, source?: Tag): string;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Material Symbols (rounded, weight 400) — extraits de `@material-symbols/svg-400`.
3
+ *
4
+ * ponytail: chemins figés dans le source plutôt que la police complète en
5
+ * dépendance runtime (~4 Mo pour vingt glyphes). Regénérer avec
6
+ * `node scripts/extract-icons.mjs` si la liste change.
7
+ */
8
+ export declare const ICONS: {
9
+ readonly person: "M372-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM160-220v-34q0-38 19-65t49-41q67-30 128.5-45T480-420q62 0 123 15.5T731-360q31 14 50 41t19 65v34q0 25-17.5 42.5T740-160H220q-25 0-42.5-17.5T160-220Zm60 0h520v-34q0-16-9.5-30.5T707-306q-64-31-117-42.5T480-360q-57 0-111 11.5T252-306q-14 7-23 21.5t-9 30.5v34Zm324.5-346.5Q570-592 570-631t-25.5-64.5Q519-721 480-721t-64.5 25.5Q390-670 390-631t25.5 64.5Q441-541 480-541t64.5-25.5ZM480-631Zm0 411Z";
10
+ readonly description: "M349-250h262q12.75 0 21.38-8.68 8.62-8.67 8.62-21.5 0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H349q-12.75 0-21.37 8.68-8.63 8.67-8.63 21.5 0 12.82 8.63 21.32 8.62 8.5 21.37 8.5Zm0-170h262q12.75 0 21.38-8.68 8.62-8.67 8.62-21.5 0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H349q-12.75 0-21.37 8.68-8.63 8.67-8.63 21.5 0 12.82 8.63 21.32 8.62 8.5 21.37 8.5ZM220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h336q12.44 0 23.72 5T599-862l183 183q8 8 13 19.28 5 11.28 5 23.72v496q0 24-18 42t-42 18H220Zm331-584v-156H220v680h520v-494H581q-12.75 0-21.37-8.63Q551-651.25 551-664ZM220-820v186-186 680-680Z";
11
+ readonly movie: "m140-800 58 119q7.73 15.4 22.08 24.2Q234.44-648 251-648q32.5 0 49.25-27.46T303-732l-33-68h89l58 119q7.73 15.4 22.08 24.2Q453.44-648 470-648q32.5 0 49.25-27.46T522-732l-33-68h89l58 119q7.73 15.4 22.08 24.2Q672.44-648 689-648q32.5 0 49.25-27.46T741-732l-33-68h112q24 0 42 18t18 42v520q0 24-18 42t-42 18H140q-24 0-42-18t-18-42v-520q0-24 18-42t42-18Zm0 212v368h680v-368H140Zm0 0v368-368Z";
12
+ readonly apartment: "M180-120q-24.75 0-42.37-17.63Q120-155.25 120-180v-435q0-24.75 17.63-42.38Q155.25-675 180-675h105v-105q0-24.75 17.63-42.38Q320.25-840 345-840h270q24.75 0 42.38 17.62Q675-804.75 675-780v270h105q24.75 0 42.38 17.62Q840-474.75 840-450v270q0 24.75-17.62 42.37Q804.75-120 780-120H533v-165H427v165H180Zm0-60h105v-105H180v105Zm0-165h105v-105H180v105Zm0-165h105v-105H180v105Zm165 165h105v-105H345v105Zm0-165h105v-105H345v105Zm0-165h105v-105H345v105Zm165 330h105v-105H510v105Zm0-165h105v-105H510v105Zm0-165h105v-105H510v105Zm165 495h105v-105H675v105Zm0-165h105v-105H675v105Z";
13
+ readonly label: "M140-160q-24.75 0-42.37-17.63Q80-195.25 80-220v-520q0-24.75 17.63-42.38Q115.25-800 140-800h471q14.25 0 27 6.37 12.75 6.38 21 17.63l195 260q12 15.68 12 35.84Q866-460 854-444L660-184q-8.25 11.25-21 17.62-12.75 6.38-27 6.38H140Zm0-60h471l195-260-195-260H140v520Zm333-260Z";
14
+ readonly function: "M215-120q-41 0-68.5-24T119-204q0-27 15-43.5t39-16.5q21 0 34.5 12t13.5 32q0 11-4.5 20.5T204-184q4 2 8.5 3t9.5 1q13 0 22-12.5t13-32.5l69-355h-96q-13 0-21.5-8.5T200-610q0-13 8.5-21.5T230-640h107l21-106q9-45 36-69.5t67-24.5q41 0 67.5 24t26.5 60q0 27-15 43.5T501-696q-20 0-34-11.5T453-738q0-10 4-19.5t10-15.5q-2-2-6-3.5t-8-1.5q-13 0-22.5 12T417-735l-18 95h159q13 0 21.5 8.5T588-610q0 13-8.5 21.5T558-580h-17l83 96 78-96h-18q-13 0-21.5-8.5T654-610q0-13 8.5-21.5T684-640h126q13 0 21.5 8.5T840-610q0 13-8.5 21.5T810-580h-28L662-439l120 139h28q13 0 21.5 8.5T840-270q0 13-8.5 21.5T810-240H684q-13 0-21.5-8.5T654-270q0-13 8.5-21.5T684-300h18l-80-93-82 93h18q13 0 21.5 8.5T588-270q0 13-8.5 21.5T558-240H432q-13 0-21.5-8.5T402-270q0-13 8.5-21.5T432-300h29l121-139-121-141h-74l-71 366q-8 45-34 69.5T215-120Z";
15
+ readonly call_split: "M220-698v93q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-165q0-12.75 8.63-21.38Q177.25-800 190-800h165q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5h-92l231 231q8 8 13 19.28 5 11.28 5 23.72v276q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-276L220-698Zm520 0L586-545q-8.8 9-20.9 9-12.1 0-21.1-9-9-9-9-21.2 0-12.19 9-20.8l153-153h-92q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h165q12.75 0 21.38 8.62Q800-782.75 800-770v165q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-93Z";
16
+ readonly alt_route: "M450-110v-170q0-48-16-79t-49-64l43-43q13 11 27.5 30t24.5 35q17-26 33.5-45t31.5-32q58-47 83.5-113.5T648-766l-69 69q-9 9-21 9t-21-9q-9-9-9-21t9-21l120-120q5-5 10-7t11-2q6 0 11 2t10 7l120 120q9 9 9 21t-9 21q-9 9-21 9t-21-9l-69-69q5 126-24.5 198.5T585-432q-44 40-59.5 73T510-280v170q0 13-8.5 21.5T480-80q-13 0-21.5-8.5T450-110ZM258-636q-4-18-6.5-52.5T251-765l-68 68q-9 9-21 9t-21-9q-9-9-9-21t9-21l120-120q5-5 10-7t11-2q6 0 11 2t10 7l120 120q9 9 9 21t-9 21q-9 9-21 9t-21-9l-69-69q-2 38-1 66.5t5 49.5l-58 14Zm84 171q-17-18-37.5-47.5T273-577l59-15q9 25 24 48t28 37l-42 42Z";
17
+ readonly signature: "M546-463q85-58 133.5-128T728-732q0-42-14-65t-38-23q-57 0-97 85t-40 200q0 20 1.5 38t5.5 34ZM143-305q-9 9-21 9t-21-9q-9-9-9-21t9-21l43-43-43-43q-9-9-9-21t9-21q9-9 21-9t21 9l43 43 43-43q9-9 21-9t21 9q9 9 9 21t-9 21l-43 43 43 43q9 9 9 21t-9 21q-9 9-21 9t-21-9l-43-43-43 43Zm475-15q-32 0-57.5-14T517-375q-19 11-38.5 20T439-337q-12 5-23 .5T400-353q-5-12 .5-23.5T418-393q20-8 38.5-17t35.5-19q-7-23-10-49.5t-3-56.5q0-146 55.5-245.5T676-880q51 0 81.5 41T788-729q0 88-57.5 172T570-406q10 13 22 19.5t26 6.5q30 0 62.5-23t61.5-67q8-11 19.5-14.5T785-483q12 6 19 17.5t5 25.5q-2 15-1.5 30t2.5 32q9-5 18.5-11.5T848-404q10-8 22.5-9.5T893-407q10 8 11 21t-8 21q-22 21-45.5 33T806-320q-24 0-39-17t-18-49q-29 32-62.5 49T618-320ZM128.5-128.5Q120-137 120-150t8.5-21.5Q137-180 150-180t21.5 8.5Q180-163 180-150t-8.5 21.5Q163-120 150-120t-21.5-8.5Zm165 0Q285-137 285-150t8.5-21.5Q302-180 315-180t21.5 8.5Q345-163 345-150t-8.5 21.5Q328-120 315-120t-21.5-8.5Zm165 0Q450-137 450-150t8.5-21.5Q467-180 480-180t21.5 8.5Q510-163 510-150t-8.5 21.5Q493-120 480-120t-21.5-8.5Zm165 0Q615-137 615-150t8.5-21.5Q632-180 645-180t21.5 8.5Q675-163 675-150t-8.5 21.5Q658-120 645-120t-21.5-8.5Zm165 0Q780-137 780-150t8.5-21.5Q797-180 810-180t21.5 8.5Q840-163 840-150t-8.5 21.5Q823-120 810-120t-21.5-8.5Z";
18
+ readonly comment: "M270-400h420q12.75 0 21.38-8.68 8.62-8.67 8.62-21.5 0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H270q-12.75 0-21.37 8.68-8.63 8.67-8.63 21.5 0 12.82 8.63 21.32 8.62 8.5 21.37 8.5Zm0-130h420q12.75 0 21.38-8.68 8.62-8.67 8.62-21.5 0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H270q-12.75 0-21.37 8.68-8.63 8.67-8.63 21.5 0 12.82 8.63 21.32 8.62 8.5 21.37 8.5Zm0-130h420q12.75 0 21.38-8.68 8.62-8.67 8.62-21.5 0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H270q-12.75 0-21.37 8.68-8.63 8.67-8.63 21.5 0 12.82 8.63 21.32 8.62 8.5 21.37 8.5ZM140-240q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v668q0 19.69-18.5 27.34Q843-117 829-131L720-240H140Zm606-60 74 80v-600H140v520h606Zm-606 0v-520 520Z";
19
+ readonly warning: "M92-120q-9 0-15.5-4T66-135q-4-7-4.5-14.5T66-165l388-670q5-8 11.5-11.5T480-850q8 0 14.5 3.5T506-835l388 670q5 8 4.5 15.5T894-135q-4 7-10.5 11t-15.5 4H92Zm52-60h672L480-760 144-180Zm361.5-65.5Q514-254 514-267t-8.5-21.5Q497-297 484-297t-21.5 8.5Q454-280 454-267t8.5 21.5Q471-237 484-237t21.5-8.5Zm0-111Q514-365 514-378v-164q0-13-8.5-21.5T484-572q-13 0-21.5 8.5T454-542v164q0 13 8.5 21.5T484-348q13 0 21.5-8.5ZM480-470Z";
20
+ readonly data_object: "M600-160q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h90q21.25 0 35.63-14.38Q740-248.75 740-270v-100q0-37 22.5-66t57.5-40v-8q-35-10-57.5-39.5T740-590v-100q0-21.25-14.37-35.63Q711.25-740 690-740h-90q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h90q45.83 0 77.92 32.08Q800-735.83 800-690v100q0 21.25 14.38 35.62Q828.75-540 850-540q12.75 0 21.38 8.65 8.62 8.64 8.62 21.42v60.15q0 12.78-8.62 21.28-8.63 8.5-21.38 8.5-21.25 0-35.62 14.37Q800-391.25 800-370v100q0 45.83-32.08 77.92Q735.83-160 690-160h-90Zm-330 0q-45.83 0-77.92-32.08Q160-224.17 160-270v-100q0-21.25-14.37-35.63Q131.25-420 110-420q-12.75 0-21.37-8.65Q80-437.29 80-450.07v-60.15q0-12.78 8.63-21.28Q97.25-540 110-540q21.25 0 35.63-14.38Q160-568.75 160-590v-100q0-45.83 32.08-77.92Q224.17-800 270-800h90q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5h-90q-21.25 0-35.62 14.37Q220-711.25 220-690v100q0 37-22.5 66.5T140-484v8q35 11 57.5 40t22.5 66v100q0 21.25 14.38 35.62Q248.75-220 270-220h90q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5h-90Z";
21
+ readonly text_fields: "M304.5-174.58Q290-189.17 290-210v-490H130q-20.83 0-35.42-14.62Q80-729.24 80-750.12 80-771 94.58-785.5 109.17-800 130-800h420q20.83 0 35.42 14.62Q600-770.76 600-749.88q0 20.88-14.58 35.38Q570.83-700 550-700H390v490q0 20.83-14.62 35.42Q360.76-160 339.88-160q-20.88 0-35.38-14.58Zm360 0Q650-189.17 650-210v-290h-80q-20.83 0-35.42-14.62Q520-529.24 520-550.12q0-20.88 14.58-35.38Q549.17-600 570-600h260q20.83 0 35.42 14.62Q880-570.76 880-549.88q0 20.88-14.58 35.38Q850.83-500 830-500h-80v290q0 20.83-14.62 35.42Q720.76-160 699.88-160q-20.88 0-35.38-14.58Z";
22
+ readonly numbers: "m338-319-35 137q-2 10-9.5 16t-17.5 6q-14 0-23-11t-5-25l31-123H158q-14 0-23.5-11.5T129-356q2-10 10-16.5t19-6.5h136l51-202H224q-14 0-23.5-11.5T195-618q2-10 10-16.5t19-6.5h136l34-137q2-10 9.5-16t17.5-6q14 0 22.5 10.5T449-765l-30 124h203l34-137q2-10 9.5-16t17.5-6q14 0 22.5 10.5T711-765l-30 124h121q14 0 23.5 11.5T831-604q-2 10-10 16.5t-19 6.5H666l-51 202h121q14 0 23.5 11.5T765-342q-2 10-10 16.5t-19 6.5H600l-35 137q-2 10-9.5 16t-17.5 6q-14 0-23-11t-5-25l31-123H338Zm15-60h203l51-202H404l-51 202Z";
23
+ readonly toggle_on: "M280-240q-100 0-170-70T40-480q0-100 70-170t170-70h400q100 0 170 70t70 170q0 100-70 170t-170 70H280Zm0-60h400q75 0 127.5-52.5T860-480q0-75-52.5-127.5T680-660H280q-75 0-127.5 52.5T100-480q0 75 52.5 127.5T280-300Zm472.5-108.5Q782-438 782-480t-29.5-71.5Q723-581 681-581t-71.5 29.5Q580-522 580-480t29.5 71.5Q639-379 681-379t71.5-29.5ZM480-480Z";
24
+ readonly calculate: "M314-316v63q0 10.83 7.12 17.92 7.11 7.08 18 7.08 10.88 0 17.88-7.08 7-7.09 7-17.92v-63h63q10.83 0 17.92-7.12 7.08-7.11 7.08-18 0-10.88-7.08-17.88-7.09-7-17.92-7h-63v-63q0-10.83-7.12-17.92-7.11-7.08-18-7.08-10.88 0-17.88 7.08-7 7.09-7 17.92v63h-63q-10.83 0-17.92 7.12-7.08 7.11-7.08 18 0 10.88 7.08 17.88 7.09 7 17.92 7h63Zm240 53h152q10.4 0 17.2-7.12 6.8-7.11 6.8-18 0-10.88-6.5-17.38Q717-312 706-312H553q-10.4 0-17.2 6.5-6.8 6.5-6.8 17.38 0 10.89 7.08 18Q543.17-263 554-263Zm0-107h151q10.83 0 17.92-7.12 7.08-7.11 7.08-18 0-10.88-7.08-17.88-7.09-7-17.92-7H554q-10.83 0-17.92 7.12-7.08 7.11-7.08 18 0 10.88 7.08 17.88 7.09 7 17.92 7ZM266-605h146q10.83 0 17.92-7.12 7.08-7.11 7.08-18 0-10.88-7.08-17.88-7.09-7-17.92-7H266q-10.83 0-17.92 7.12-7.08 7.11-7.08 18 0 10.88 7.08 17.88 7.09 7 17.92 7Zm-86 485q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Zm447 186 43 43q7.64 8 17.82 8t18.18-8q8-8 8-18t-8-18l-43-43 43-43q8-7.64 8-17.82T706-709q-8-8-18.18-8T670-709l-43 43-43-43q-7.64-8-17.82-8T548-709q-8 8-8 18.18t8 17.82l43 43-43 43q-8 7.71-8 18t8 18q7.64 8 17.82 8t18.18-8l43-43Z";
25
+ readonly compare_arrows: "M396-323H110q-13 0-21.5-8.5T80-353q0-13 8.5-21.5T110-383h286L296-483q-9-9-9-21t9-21q9-9 21-9t21 9l151 151q5 5 7 10t2 11q0 6-2 11t-7 10L338-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l100-100Zm168-254 100 100q9 9 9 21t-9 21q-9 9-21 9t-21-9L471-586q-5-5-7-10t-2-11q0-6 2-11t7-10l151-151q9-9 21-9t21 9q9 9 9 21t-9 21L564-637h286q13 0 21.5 8.5T880-607q0 13-8.5 21.5T850-577H564Z";
26
+ readonly link: "M280-280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h140q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5H280q-58.33 0-99.17 40.76-40.83 40.77-40.83 99Q140-422 180.83-381q40.84 41 99.17 41h140q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5H280Zm75-170q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h250q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5H355Zm185 170q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h140q58.33 0 99.17-40.76 40.83-40.77 40.83-99Q820-538 779.17-579q-40.84-41-99.17-41H540q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h140q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H540Z";
27
+ readonly extension: "M180-180h560v-173q0-9 4.5-16t12.5-11l24-11q19-8 30.5-27t11.5-40q0-21.43-11.5-39.72Q800-516 781-525l-24-11q-8.13-3.75-12.57-10.88Q740-554 740-563v-177H564q-10.66 0-18.83-7-8.17-7-10.17-18.33L530-791q-5-27-24.67-45.5-19.68-18.5-45.91-18.5Q432-855 412-836.5T387-791l-5 25.67Q380-754 371.83-747q-8.17 7-18.83 7H181v110q55 20 89 66.78t34 105.5q0 59.72-34 107.22T180-287v107Zm11 60q-29 0-50-21t-21-51v-121q0-8 5-13t13-7q45-9 75.5-43.08T244-458q0-48.03-30-82.52Q184-575 139-583q-8-2-13-7t-5-13v-126q0-30 20.5-50.5T192-800h136q6.63-48.88 43.58-81.94Q408.53-915 458.74-915q49.26 0 86.45 33.06Q582.37-848.88 590-800h139q30 0 50.5 20.5T800-729v147q38 18 60.5 49.5T883-458q0 43-22.5 75T800-334v142q0 30-20.5 51T729-120H191Zm311-338Z";
28
+ readonly search: "M378-329q-108.16 0-183.08-75Q120-479 120-585t75-181q75-75 181.5-75t181 75Q632-691 632-584.85 632-542 618-502q-14 40-42 75l242 240q9 8.56 9 21.78T818-143q-9 9-22.22 9-13.22 0-21.78-9L533-384q-30 26-69.96 40.5Q423.08-329 378-329Zm-1-60q81.25 0 138.13-57.5Q572-504 572-585t-56.87-138.5Q458.25-781 377-781q-82.08 0-139.54 57.5Q180-666 180-585t57.46 138.5Q294.92-389 377-389Z";
29
+ readonly lightbulb: "M422.5-103.5Q399-127 399-161h162q0 34-23.5 57.5T480-80q-34 0-57.5-23.5ZM348-223q-13 0-21.5-8.5T318-253q0-13 8.5-21.5T348-283h264q13 0 21.5 8.5T642-253q0 13-8.5 21.5T612-223H348Zm-25-121q-66-43-104.5-107.5T180-597q0-122 89-211t211-89q122 0 211 89t89 211q0 81-38 145.5T637-344H323Zm22-60h271q48-32 76-83t28-110q0-99-70.5-169.5T480-837q-99 0-169.5 70.5T240-597q0 59 28 110t77 83Zm135 0Z";
30
+ readonly account_tree: "M604-180v-65h-94q-24.75 0-42.37-17.63Q450-280.25 450-305v-350h-93v70q0 24.75-17.62 42.37Q321.75-525 297-525H140q-24.75 0-42.37-17.63Q80-560.25 80-585v-195q0-24.75 17.63-42.38Q115.25-840 140-840h157q24.75 0 42.38 17.62Q357-804.75 357-780v65h247v-65q0-24.75 17.63-42.38Q639.25-840 664-840h156q24.75 0 42.38 17.62Q880-804.75 880-780v195q0 24.75-17.62 42.37Q844.75-525 820-525H664q-24.75 0-42.37-17.63Q604-560.25 604-585v-70h-94v350h94v-70q0-24.75 17.63-42.38Q639.25-435 664-435h156q24.75 0 42.38 17.62Q880-399.75 880-375v195q0 24.75-17.62 42.37Q844.75-120 820-120H664q-24.75 0-42.37-17.63Q604-155.25 604-180ZM140-780v195-195Zm524 405v195-195Zm0-405v195-195Zm0 195h156v-195H664v195Zm0 405h156v-195H664v195ZM140-585h157v-195H140v195Z";
31
+ readonly code_blocks: "m330-480 70-70q9-9 9-22t-9-22q-9-9-21.83-9-12.84 0-22.17 9l-93 93q-5 5-7 10.13-2 5.14-2 11 0 5.87 2 10.87 2 5 7 10l94 94q9.33 9 22.17 9 12.83 0 21.83-9 9-9 9-22t-9-22l-71-71Zm300 0-71 71q-9 9-9 22t9 22q9 9 21.83 9 12.84 0 22.17-9l94-94q5-5 7-10.13 2-5.14 2-11 0-5.87-2-10.87-2-5-7-10l-94-94q-4-5-10-7t-12-2q-6 0-11.5 2t-10.17 6.8q-9.33 9.6-9.33 22.4 0 12.8 9 21.8l71 71ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z";
32
+ readonly edit: "M180-180h44l472-471-44-44-472 471v44Zm-30 60q-13 0-21.5-8.5T120-150v-73q0-12 5-23.5t13-19.5l557-556q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L266-138q-8 8-19.5 13t-23.5 5h-73Zm629-617-41-41 41 41Zm-105 64-22-22 44 44-22-22Z";
33
+ readonly check: "m378-332 363-363q9-9 21.5-9t21.5 9q9 9 9 21.5t-9 21.5L399-267q-9 9-21 9t-21-9L175-449q-9-9-8.5-21.5T176-492q9-9 21.5-9t21.5 9l159 160Z";
34
+ readonly close: "M480-438 270-228q-9 9-21 9t-21-9q-9-9-9-21t9-21l210-210-210-210q-9-9-9-21t9-21q9-9 21-9t21 9l210 210 210-210q9-9 21-9t21 9q9 9 9 21t-9 21L522-480l210 210q9 9 9 21t-9 21q-9 9-21 9t-21-9L480-438Z";
35
+ readonly calendar_month: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-28q0-13.6 9-22.8 9-9.2 23.02-9.2t23.5 9.2Q310-861.6 310-848v28h340v-28q0-13.6 9-22.8 9-9.2 23.02-9.2t23.5 9.2Q715-861.6 715-848v28h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Zm300 230q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-188.5-11.5Q280-423 280-440t11.5-28.5Q303-480 320-480t28.5 11.5Q360-457 360-440t-11.5 28.5Q337-400 320-400t-28.5-11.5ZM640-400q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-188.5-11.5Q280-263 280-280t11.5-28.5Q303-320 320-320t28.5 11.5Q360-297 360-280t-11.5 28.5Q337-240 320-240t-28.5-11.5ZM640-240q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z";
36
+ readonly euro: "M600-120q-115 0-212.5-67.5T255-370H150q-13 0-21.5-8.5T120-400q0-13 8.5-21.5T150-430h93q-4-28-3.5-50t3.5-50h-93q-13 0-21.5-8.5T120-560q0-13 8.5-21.5T150-590h105q35-115 132.5-182.5T600-840q60 0 114.5 18.5T816-768q10 8 11 20t-8 21q-9 9-22 9.5t-24-7.5q-38-27-82-41t-91-14q-94 0-171.5 52.5T319-590h251q13 0 21.5 8.5T600-560q0 13-8.5 21.5T570-530H304q-5 27-5 50t5 50h266q13 0 21.5 8.5T600-400q0 13-8.5 21.5T570-370H319q32 85 109.5 137.5T600-180q45 0 89.5-13.5T773-235q11-8 24-7.5t22 9.5q9 9 8 21t-11 20q-43 32-99 52t-117 20Z";
37
+ readonly repeat: "m236-210 65 65q9 9 8.5 21t-8.75 21.12q-9 9.12-21.37 9.5Q267-93 258-102L141-219q-5-5-7-10.13-2-5.14-2-11 0-5.87 2-10.87 2-5 7-10l117-117q9.07-9 21.53-8.5Q292-386 301-377q8.25 9 8.63 21 .37 12-8.63 21l-65 65h464v-130q0-12.75 8.68-21.38 8.67-8.62 21.5-8.62 12.82 0 21.32 8.62 8.5 8.63 8.5 21.38v130q0 24.75-17.62 42.37Q724.75-210 700-210H236Zm488-480H260v130q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-130q0-24.75 17.63-42.38Q235.25-750 260-750h464l-65-65q-9-9-8.5-21t8.75-21.12q9-9.12 21.38-9.5Q693-867 702-858l117 117q5 5 7 10.13 2 5.14 2 11 0 5.87-2 10.87-2 5-7 10L702-582q-9.07 9-21.53 8.5Q668-574 659-583q-8.25-9-8.62-21-.38-12 8.62-21l65-65Z";
38
+ readonly mail: "M140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Zm680-525L496-473q-4 2-7.5 3.5T480-468q-5 0-8.5-1.5T464-473L140-685v465h680v-465ZM480-522l336-218H145l335 218ZM140-685v7-39.32.73V-740v23-.91V-678v-7 465-465Z";
39
+ readonly call: "M795-120q-116 0-236.5-56T335-335Q232-438 176-558.5T120-795q0-19.29 12.86-32.14Q145.71-840 165-840h140q14 0 24 10t14 25l26.93 125.64Q372-665 369.5-653.5t-10.73 19.73L259-533q26 44 55 82t64 72q37 38 78 69.5t86 55.5l95-98q10-11 23.15-15 13.15-4 25.85-2l119 26q15 4 25 16.04 10 12.05 10 26.96v135q0 19.29-12.86 32.14Q814.29-120 795-120ZM229-588l81-82-23-110H180q2 42 13.5 88.5T229-588Zm369 363q41 19 89 31t93 14v-107l-103-21-79 83ZM229-588Zm369 363Z";
40
+ readonly location_on: "M480-159q133-121 196.5-219.5T740-552q0-118-75.5-193T480-820q-109 0-184.5 75T220-552q0 75 65 173.5T480-159Zm-21.5 55.5Q448-107 440-115q-42-38-91-87.5T258-309q-42-57-70-119t-28-124q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 62-28 124t-70 119q-42 57-91 106.5T520-115q-8 8-18.5 11.5T480-100q-11 0-21.5-3.5ZM480-560Zm49.5 49.5Q550-531 550-560t-20.5-49.5Q509-630 480-630t-49.5 20.5Q410-589 410-560t20.5 49.5Q451-490 480-490t49.5-20.5Z";
41
+ readonly percent: "M289.9-540q-53.9 0-91.9-38.1-38-38.1-38-92t38.1-91.9q38.1-38 92-38t91.9 38.1q38 38.1 38 92T381.9-578q-38.1 38-92 38Zm-.02-60q29.12 0 49.62-20.38 20.5-20.38 20.5-49.5t-20.38-49.62q-20.38-20.5-49.5-20.5t-49.62 20.38q-20.5 20.38-20.5 49.5t20.38 49.62q20.38 20.5 49.5 20.5ZM669.9-160q-53.9 0-91.9-38.1-38-38.1-38-92t38.1-91.9q38.1-38 92-38t91.9 38.1q38 38.1 38 92T761.9-198q-38.1 38-92 38Zm49.6-80.38q20.5-20.38 20.5-49.5t-20.38-49.62q-20.38-20.5-49.5-20.5t-49.62 20.38q-20.5 20.38-20.5 49.5t20.38 49.62q20.38 20.5 49.5 20.5t49.62-20.38ZM172-202q0-12 9-21l556-556q9-9 21-9t21 9q9 9 9 21t-9 21L223-181q-9 9-21 9t-21-9q-9-9-9-21Z";
42
+ readonly table: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm270-250H180v190h270v-190Zm60 0v190h270v-190H510Zm-60-60v-190H180v190h270Zm60 0h270v-190H510v190ZM180-680h600v-100H180v100Z";
43
+ readonly undo: "M289-200q-13 0-21.5-8.5T259-230q0-13 8.5-21.5T289-260h280q70 0 120.5-46.5T740-422q0-69-50.5-115.5T569-584H274l93 93q9 9 9 21t-9 21q-9 9-21 9t-21-9L181-593q-5-5-7-10t-2-11q0-6 2-11t7-10l144-144q9-9 21-9t21 9q9 9 9 21t-9 21l-93 93h294q95 0 163.5 64T800-422q0 94-68.5 158T568-200H289Z";
44
+ readonly redo: "M686-584H391q-70 0-120.5 46.5T220-422q0 69 50.5 115.5T391-260h280q13 0 21.5 8.5T701-230q0 13-8.5 21.5T671-200H392q-95 0-163.5-64T160-422q0-94 68.5-158T392-644h294l-93-93q-9-9-9-21t9-21q9-9 21-9t21 9l144 144q5 5 7 10t2 11q0 6-2 11t-7 10L635-449q-9 9-21 9t-21-9q-9-9-9-21t9-21l93-93Z";
45
+ readonly science: "M172-120q-41.78 0-59.39-39T124-230l248-280v-270h-52q-12.75 0-21.37-8.68-8.63-8.67-8.63-21.5 0-12.82 8.63-21.32 8.62-8.5 21.37-8.5h320q12.75 0 21.38 8.68 8.62 8.67 8.62 21.5 0 12.82-8.62 21.32-8.63 8.5-21.38 8.5h-52v270l248 280q29 32 11.39 71T788-120H172Zm-12-60h640L528-488v-292h-96v292L160-180Zm318-300Z";
46
+ readonly history: "M477-120q-142 0-243.5-95.5T121-451q-1-12 7.5-21t21.5-9q12 0 20.5 8.5T181-451q11 115 95 193t201 78q127 0 215-89t88-216q0-124-89-209.5T477-780q-68 0-127.5 31T246-667h75q13 0 21.5 8.5T351-637q0 13-8.5 21.5T321-607H172q-13 0-21.5-8.5T142-637v-148q0-13 8.5-21.5T172-815q13 0 21.5 8.5T202-785v76q52-61 123.5-96T477-840q75 0 141 28t115.5 76.5Q783-687 811.5-622T840-482q0 75-28.5 141t-78 115Q684-177 618-148.5T477-120Zm34-374 115 113q9 9 9 21.5t-9 21.5q-9 9-21 9t-21-9L460-460q-5-5-7-10.5t-2-11.5v-171q0-13 8.5-21.5T481-683q13 0 21.5 8.5T511-653v159Z";
47
+ };
48
+ export type IconName = keyof typeof ICONS;
49
+ /** Icône SVG inline, dimensionnée en em pour suivre la taille du texte. */
50
+ export declare function icon(name: IconName, cls?: string): SVGSVGElement;
51
+ /** Même icône, en data-URI — pour les champs image de Blockly. */
52
+ export declare function iconDataUri(name: IconName, colour?: string): string;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Les matrices n'écrivent pas des expressions arbitraires : sur l'ensemble du
3
+ * corpus (129 tags, 5 matrices), tout ce qui n'est pas un champ simple tient
4
+ * en **deux** motifs. Les reconnaître permet de les afficher pour ce qu'ils
5
+ * sont, au lieu d'un arbre AST fidèle mais illisible.
6
+ *
7
+ * A · fragment optionnel X ? '+ ' & X & ' heures majorées…' (6 occurrences)
8
+ * B · choix binaire X ? 'ACCEPTER' : 'REFUSER' (2 occurrences)
9
+ *
10
+ * ponytail: deux motifs codés en dur, pas un moteur de règles. Le jour où un
11
+ * troisième apparaît dans une matrice, on l'ajoute ici — la détection générique
12
+ * coûterait dix fois plus pour le même résultat.
13
+ */
14
+ export type Part = {
15
+ text: string;
16
+ } | {
17
+ path: string;
18
+ label: string;
19
+ };
20
+ export type Idiom = {
21
+ kind: 'optional';
22
+ conditionLabel: string;
23
+ togglePath?: string;
24
+ parts: Part[];
25
+ } | {
26
+ kind: 'choice';
27
+ conditionLabel: string;
28
+ togglePath?: string;
29
+ whenTrue: string;
30
+ whenFalse: string;
31
+ };
32
+ /** `a & b & c` est un arbre binaire penché à droite — on l'aplatit. */
33
+ export declare function flattenConcat(node: any): any[];
34
+ export declare function detectIdiom(expr: string): Idiom | null;
35
+ /** Le fragment tel qu'il apparaîtra dans le document, en texte brut. */
36
+ export declare function idiomText(idiom: Idiom, active?: boolean): string;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Ce qu'il faut pour montrer et éditer les variables d'une matrice.
3
+ *
4
+ * Ce paquet est né dans `apps/poc-variables`, où il a fait ses preuves sur
5
+ * 146 tags de matrices réelles. Il en sort le jour où une SECONDE application
6
+ * l'utilise — l'éditeur — comme [extensions.md](../../../docs/extensions.md)
7
+ * l'avait annoncé : « il ira dans `packages/` quand une deuxième application
8
+ * l'utilisera, pas avant ».
9
+ *
10
+ * Il ne connaît ni le DOM du POC ni celui de l'éditeur : il traduit des tags en
11
+ * badges, en blocs Blockly, et retour.
12
+ */
13
+ export * from './describe';
14
+ export * from './labels';
15
+ export * from './icons';
16
+ export * from './idioms';
17
+ export * from './phrase';
18
+ export * from './blockify';
19
+ export * from './blocks';
20
+ export * from './generate';
21
+ export * from './tokens';
22
+ export * from './library';
23
+ export * from './picker';
24
+ export * from './scenario';
25
+ export * from './preview';
26
+ export * from './substitute';
27
+ export * from './audit';
28
+ export * from './plugin';
29
+ export * from './plugins';
30
+ export * from './sync';
31
+ export * from './target-canvas';
@@ -0,0 +1,42 @@
1
+ /** Libellés français et icônes pour les chemins de variables. */
2
+ import type { IconName } from './icons';
3
+ export interface Namespace {
4
+ label: string;
5
+ icon: IconName;
6
+ hue: number;
7
+ }
8
+ export declare const NAMESPACES: Record<string, Namespace>;
9
+ export declare const OTHER: Namespace;
10
+ export declare function namespaceOf(path: string): string;
11
+ export declare function namespaceInfo(path: string): Namespace;
12
+ /** `numeroDeSecuriteSociale` -> `Numéro de sécurité sociale`, `majo25` -> `Majoration 25`. */
13
+ export declare function humanize(segment: string): string;
14
+ /** Libellé lisible d'un chemin, sans son namespace : `Durée en heures › Cinq jours › total`. */
15
+ export declare function pathLabel(path: string): string;
16
+ /**
17
+ * Libellé COURT, pour un endroit étroit — un bloc, une pastille.
18
+ *
19
+ * La règle est celle des badges : on raccourcit le libellé avant de réduire la
20
+ * police. Un « Contrat › Durée en heures › Cinq jours › Majoration 75 » ne se
21
+ * lit pas mieux en corps 8 — il se lit « … › Majoration 75 », et son chemin
22
+ * complet reste dans l'infobulle.
23
+ *
24
+ * On coupe par la GAUCHE : le dernier segment est celui qui distingue, les
25
+ * premiers sont le contexte, et le contexte est déjà dans le badge du tag.
26
+ */
27
+ export declare function shortLabel(path: string, max?: number): string;
28
+ /** Libellé complet, namespace inclus. */
29
+ export declare function fullLabel(path: string): string;
30
+ /**
31
+ * Type de donnée déduit du nom du champ.
32
+ *
33
+ * ponytail: heuristique sur le dernier segment, pas de schéma à maintenir.
34
+ * Le jour où MyRole expose un schéma de données, on le branche ici et on
35
+ * supprime les regex — l'interface ne bouge pas.
36
+ */
37
+ export type ValueType = 'date' | 'boolean' | 'money' | 'number' | 'email' | 'phone' | 'address' | 'text';
38
+ export declare const TYPE_ICON: Record<ValueType, IconName>;
39
+ export declare const TYPE_LABEL: Record<ValueType, string>;
40
+ export declare function valueType(path: string): ValueType;
41
+ /** Icône d'un champ : son type de donnée s'il est parlant, sinon son namespace. */
42
+ export declare function fieldIcon(path: string): IconName;
@@ -0,0 +1,47 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ import { type ValueType } from './labels';
3
+ import type { IconName } from './icons';
4
+ export interface Fn {
5
+ name: string;
6
+ label: string;
7
+ args: string;
8
+ desc: string;
9
+ category: string;
10
+ example: string;
11
+ }
12
+ /** Sous-ensemble utile des fonctions jsonata, décrites en français. */
13
+ export declare const FUNCTIONS: Fn[];
14
+ export declare const FUNCTION_BY_NAME: Map<string, Fn>;
15
+ export declare const fnLabel: (name: string) => string;
16
+ export interface Field {
17
+ path: string;
18
+ label: string;
19
+ short: string;
20
+ count: number;
21
+ icon: IconName;
22
+ type: ValueType;
23
+ typeLabel: string;
24
+ }
25
+ export interface Group {
26
+ key: string;
27
+ label: string;
28
+ icon: IconName;
29
+ hue: number;
30
+ fields: Field[];
31
+ }
32
+ /** Bibliothèque de champs déduite du document, groupée par namespace. */
33
+ export declare function fieldLibrary(tags: Tag[]): Group[];
34
+ export interface Snippet {
35
+ id: string;
36
+ title: string;
37
+ desc: string;
38
+ category: string;
39
+ code: string;
40
+ }
41
+ /**
42
+ * Extraits prêts à coller : des blocs entiers, pas des variables isolées.
43
+ * C'est ce qui manque le plus au rédacteur de matrice — il ne réécrit pas un
44
+ * champ, il réécrit un paragraphe conditionnel complet.
45
+ */
46
+ export declare const SNIPPETS: Snippet[];
47
+ export declare const SNIPPET_CATEGORIES: string[];
@@ -0,0 +1,3 @@
1
+ /** Traduit un AST jsonata en une phrase française lisible. */
2
+ export declare function describeAst(node: any): string;
3
+ export declare function describeExpr(expr: string): string;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Choisir un champ, avec recherche.
3
+ *
4
+ * Le même geste doit exister dans les deux outils : cliquer un champ et en
5
+ * prendre un autre. La liste vivait dans le champ Blockly ; elle est ici pour
6
+ * que l'éditeur de code s'en serve aussi, sans dépendre de Blockly.
7
+ */
8
+ export interface PickerOption {
9
+ label: string;
10
+ value: string;
11
+ }
12
+ /**
13
+ * Rend la liste. L'appelant la place où il veut — c'est ce qui permet de la
14
+ * servir dans le menu déroulant de Blockly comme dans un popover ordinaire.
15
+ */
16
+ export declare function fieldList(options: PickerOption[], current: string, onPick: (value: string) => void): HTMLElement;
17
+ export declare function closePicker(): void;
18
+ /** Ouvre la liste sous un élément. */
19
+ export declare function showPicker(anchor: DOMRect, options: PickerOption[], current: string, onPick: (value: string) => void): void;
@@ -0,0 +1,126 @@
1
+ import type { IconName } from './index.js';
2
+ /**
3
+ * Contrat d'extension.
4
+ *
5
+ * Extrait de ce que le code faisait déjà en dur : le rendu du document
6
+ * connaissait les tags, les commentaires Word, les sections et les modes
7
+ * d'affichage — quatre responsabilités cousues dans une boucle.
8
+ *
9
+ * Le parti pris central est celui d'OnlyOffice, et il vaut d'être énoncé :
10
+ * **une extension ne peint jamais sur le canvas**. L'éditeur possède le canvas
11
+ * et lui seul ; les extensions décrivent des ancres, et l'hôte les matérialise
12
+ * dans une **couche DOM superposée**, en coordonnées document. On garde donc la
13
+ * fidélité du canvas pour le texte et tout CSS pour l'interaction — survol,
14
+ * animation, focus, menu contextuel — sans réimplémenter un moteur de style
15
+ * dans un contexte 2D.
16
+ *
17
+ * ponytail: écrit après coup, contre quatre usages réels (variables,
18
+ * commentaires, contrôle, sauvegarde). Une API d'extension conçue sans
19
+ * consommateur ne décrit qu'une supposition.
20
+ */
21
+ /**
22
+ * Où une contribution s'accroche : une plage de caractères dans un paragraphe.
23
+ *
24
+ * C'est la seule adresse que **toutes** les cibles savent résoudre — le DOM en
25
+ * découpant la chaîne, le canvas en mesurant pendant la mise en ligne.
26
+ */
27
+ export interface Anchor {
28
+ para: number;
29
+ from: number;
30
+ to: number;
31
+ }
32
+ /** Rectangle en coordonnées du conteneur de rendu. */
33
+ /** Famille visuelle — donne la couleur, dans le DOM comme sur le canvas. */
34
+ export type Tone = 'variable' | 'expression' | 'condition' | 'function' | 'section' | 'loop' | 'section-end' | 'signature' | 'comment' | 'error';
35
+ export interface View {
36
+ icon: IconName;
37
+ label: string;
38
+ tone: Tone;
39
+ tooltip?: string;
40
+ /** rendu enrichi ; à défaut, icône + libellé */
41
+ render?(): Node;
42
+ /**
43
+ * Affichage **en ligne** : au lieu d'une pastille insécable, l'extension
44
+ * donne les morceaux de sa phrase. L'hôte les fait dessiner par le renderer,
45
+ * qui les coupe comme du texte ordinaire ; l'extension n'habille que le fond
46
+ * des fragments obtenus.
47
+ *
48
+ * C'est ce qu'il faut pour un fragment de phrase — « équivalente à X heures
49
+ * d'équivalence » — qu'une pastille rigide chasserait hors de sa ligne.
50
+ */
51
+ inline?: {
52
+ text: string;
53
+ strong?: boolean;
54
+ }[];
55
+ }
56
+ export interface MenuItem {
57
+ label: string;
58
+ icon?: IconName;
59
+ /** sépare visuellement du groupe précédent */
60
+ separatorBefore?: boolean;
61
+ disabled?: boolean;
62
+ run(): void;
63
+ }
64
+ /** Une marque en ligne, ancrée à une plage. */
65
+ export interface Decoration extends View {
66
+ id: string;
67
+ anchor: Anchor;
68
+ /** ce que cette plage produit dans le document généré — '' si rien */
69
+ value?: string;
70
+ onSelect?(): void;
71
+ onHover?(entering: boolean): void;
72
+ /** entrées ajoutées au menu contextuel quand le clic droit tombe ici */
73
+ menu?(): MenuItem[];
74
+ }
75
+ /**
76
+ * Une **structure**, pas une décoration : elle ouvre et referme une portion de
77
+ * document. Les sections et les boucles en sont ; un badge n'en est pas. Une
78
+ * plage ne peut pas exprimer « tout ce qui suit jusqu'à la fermeture ».
79
+ */
80
+ export interface Region extends View {
81
+ id: string;
82
+ open: Anchor;
83
+ close?: Anchor;
84
+ /** libellé de la marque de fermeture */
85
+ closeLabel?: string;
86
+ /** false quand la région ne sort pas du document généré */
87
+ visible: boolean;
88
+ onSelect?(): void;
89
+ menu?(): MenuItem[];
90
+ }
91
+ /** Position du curseur, exprimée dans les mêmes coordonnées qu'une ancre. */
92
+ export interface Caret {
93
+ para: number;
94
+ offset: number;
95
+ }
96
+ /**
97
+ * Ce que l'hôte offre aux extensions.
98
+ *
99
+ * Volontairement étroit : lire le document, savoir où est le curseur, demander
100
+ * un rafraîchissement. Tout le reste passe par les contributions déclaratives.
101
+ */
102
+ export interface EditorApi {
103
+ paras: string[];
104
+ caret(): Caret | null;
105
+ refresh(): void;
106
+ }
107
+ export interface Plugin {
108
+ name: string;
109
+ decorations?(api: EditorApi): Decoration[];
110
+ regions?(api: EditorApi): Region[];
111
+ /** entrées de menu contextuel hors décoration (clic droit dans le vide) */
112
+ menu?(api: EditorApi, caret: Caret | null): MenuItem[];
113
+ /** appelé quand le curseur bouge */
114
+ onCaret?(caret: Caret | null): void;
115
+ }
116
+ export interface Contributions {
117
+ byPara: Map<number, Decoration[]>;
118
+ opens: Map<number, Region[]>;
119
+ closes: Map<number, Region[]>;
120
+ all: Decoration[];
121
+ regions: Region[];
122
+ }
123
+ /** Rassemble et ordonne ce que les extensions apportent. */
124
+ export declare function collect(plugins: Plugin[], api: EditorApi): Contributions;
125
+ /** Menu contextuel réunissant les contributions applicables au point cliqué. */
126
+ export declare function contextMenu(plugins: Plugin[], api: EditorApi, hit: Decoration | Region | null): MenuItem[];
@@ -0,0 +1,29 @@
1
+ import type { Tag, DocxComment } from '../../docx-tags/src/index';
2
+ import type { Plugin } from './plugin';
3
+ import type { Evaluated } from './index.js';
4
+ export interface VariablesOptions {
5
+ tags: Tag[];
6
+ evaluated: Evaluated | null;
7
+ onSelect(tag: Tag): void;
8
+ /** rendu enrichi d'un motif reconnu (fragment optionnel, choix binaire) */
9
+ renderIdiom?(tag: Tag): Node | undefined;
10
+ /** morceaux d'une phrase, à couler dans le texte au lieu d'une pastille */
11
+ inlineIdiom?(tag: Tag): {
12
+ text: string;
13
+ strong?: boolean;
14
+ }[] | undefined;
15
+ /** bascule un interrupteur de scénario, quand la condition le permet */
16
+ toggle?(path: string, value: unknown): void;
17
+ openLibrary?(): void;
18
+ }
19
+ /** Variables, fonctions, signatures — et les sections comme régions. */
20
+ export declare function variablesPlugin(o: VariablesOptions): Plugin;
21
+ /**
22
+ * Commentaires Word.
23
+ *
24
+ * Ancrés en fin du premier paragraphe couvert, sur une plage de largeur nulle :
25
+ * un commentaire ne remplace aucun texte, il s'ajoute à côté.
26
+ */
27
+ export declare function commentsPlugin(comments: DocxComment[], paras: string[], onSelect: (c: DocxComment) => void): Plugin;
28
+ /** Le label de fermeture d'une région, dérivé de sa directive. */
29
+ export declare const closeLabel: (directive: string | undefined) => string;
@@ -0,0 +1,25 @@
1
+ import type { Tag } from '../../docx-tags/src/index';
2
+ /** Jeu de valeurs de test déduit des chemins du document. */
3
+ export declare function sampleValues(tags: Tag[]): Record<string, unknown>;
4
+ export interface Line {
5
+ text: string;
6
+ visible: boolean;
7
+ depth: number;
8
+ para: number;
9
+ }
10
+ /** Tags réellement présents dans le document, sections fausses exclues. */
11
+ export declare function visibleTagIds(tags: Tag[], cond: Map<number, boolean>): Set<number>;
12
+ export interface Evaluated {
13
+ /** texte produit par chaque tag de valeur */
14
+ out: Map<number, string>;
15
+ /** verdict de chaque section conditionnelle */
16
+ cond: Map<number, boolean>;
17
+ errors: Map<number, string>;
18
+ }
19
+ /** Évalue tous les tags une fois — réutilisé par l'aperçu et par les badges. */
20
+ export declare function evaluateTags(tags: Tag[], values: unknown): Promise<Evaluated>;
21
+ /** Rend le document avec les valeurs de test : variables interpolées, sections évaluées. */
22
+ export declare function renderDocument(paras: string[], tags: Tag[], values: unknown, pre?: Evaluated): Promise<{
23
+ lines: Line[];
24
+ errors: Map<number, string>;
25
+ }>;