@tonzxz/government-forms 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 (325) hide show
  1. package/FORM_CATALOG.md +44 -0
  2. package/README.md +165 -0
  3. package/dist/definitions.d.ts +1147 -0
  4. package/dist/definitions.js +60 -0
  5. package/dist/forms/iar.d.ts +172 -0
  6. package/dist/forms/iar.js +6 -0
  7. package/dist/forms/ics.d.ts +48 -0
  8. package/dist/forms/ics.js +6 -0
  9. package/dist/forms/iirup.d.ts +54 -0
  10. package/dist/forms/iirup.js +6 -0
  11. package/dist/forms/iirusp.d.ts +32 -0
  12. package/dist/forms/iirusp.js +6 -0
  13. package/dist/forms/itr.d.ts +42 -0
  14. package/dist/forms/itr.js +6 -0
  15. package/dist/forms/par.d.ts +84 -0
  16. package/dist/forms/par.js +6 -0
  17. package/dist/forms/ppelc.d.ts +34 -0
  18. package/dist/forms/ppelc.js +6 -0
  19. package/dist/forms/pr.d.ts +27 -0
  20. package/dist/forms/pr.js +6 -0
  21. package/dist/forms/property-card.d.ts +68 -0
  22. package/dist/forms/property-card.js +6 -0
  23. package/dist/forms/ptr.d.ts +54 -0
  24. package/dist/forms/ptr.js +6 -0
  25. package/dist/forms/regspi.d.ts +32 -0
  26. package/dist/forms/regspi.js +6 -0
  27. package/dist/forms/ris.d.ts +66 -0
  28. package/dist/forms/ris.js +6 -0
  29. package/dist/forms/rlsddp.d.ts +54 -0
  30. package/dist/forms/rlsddp.js +6 -0
  31. package/dist/forms/rlsddsp.d.ts +42 -0
  32. package/dist/forms/rlsddsp.js +6 -0
  33. package/dist/forms/rpci.d.ts +32 -0
  34. package/dist/forms/rpci.js +6 -0
  35. package/dist/forms/rpcppe.d.ts +32 -0
  36. package/dist/forms/rpcppe.js +6 -0
  37. package/dist/forms/rpcsp.d.ts +32 -0
  38. package/dist/forms/rpcsp.js +6 -0
  39. package/dist/forms/rrsp.d.ts +32 -0
  40. package/dist/forms/rrsp.js +6 -0
  41. package/dist/forms/rsmi.d.ts +32 -0
  42. package/dist/forms/rsmi.js +6 -0
  43. package/dist/forms/rsmp.d.ts +33 -0
  44. package/dist/forms/rsmp.js +6 -0
  45. package/dist/forms/rspi.d.ts +32 -0
  46. package/dist/forms/rspi.js +6 -0
  47. package/dist/forms/spc.d.ts +37 -0
  48. package/dist/forms/spc.js +6 -0
  49. package/dist/forms/splc.d.ts +41 -0
  50. package/dist/forms/splc.js +6 -0
  51. package/dist/forms/stock-card.d.ts +28 -0
  52. package/dist/forms/stock-card.js +6 -0
  53. package/dist/forms/wmr.d.ts +32 -0
  54. package/dist/forms/wmr.js +6 -0
  55. package/dist/gam/components/gam-report-workbench.d.ts +40 -0
  56. package/dist/gam/components/gam-report-workbench.js +2 -0
  57. package/dist/gam/components/grand-total-computation.d.ts +10 -0
  58. package/dist/gam/components/grand-total-computation.js +26 -0
  59. package/dist/gam/components/iar-preview.d.ts +30 -0
  60. package/dist/gam/components/iar-preview.js +150 -0
  61. package/dist/gam/components/ics-preview.d.ts +31 -0
  62. package/dist/gam/components/ics-preview.js +114 -0
  63. package/dist/gam/components/iirup-preview.d.ts +42 -0
  64. package/dist/gam/components/iirup-preview.js +237 -0
  65. package/dist/gam/components/itr-preview.d.ts +31 -0
  66. package/dist/gam/components/itr-preview.js +180 -0
  67. package/dist/gam/components/par-preview.d.ts +28 -0
  68. package/dist/gam/components/par-preview.js +95 -0
  69. package/dist/gam/components/ppelc-preview.d.ts +28 -0
  70. package/dist/gam/components/ppelc-preview.js +128 -0
  71. package/dist/gam/components/property-card-preview.d.ts +21 -0
  72. package/dist/gam/components/property-card-preview.js +117 -0
  73. package/dist/gam/components/ptr-preview.d.ts +36 -0
  74. package/dist/gam/components/ptr-preview.js +122 -0
  75. package/dist/gam/components/purchase-order-page-client.d.ts +66 -0
  76. package/dist/gam/components/purchase-order-page-client.js +179 -0
  77. package/dist/gam/components/reg-spi-preview.d.ts +28 -0
  78. package/dist/gam/components/reg-spi-preview.js +138 -0
  79. package/dist/gam/components/ris-form.d.ts +13 -0
  80. package/dist/gam/components/ris-form.js +20 -0
  81. package/dist/gam/components/ris-preview.d.ts +7 -0
  82. package/dist/gam/components/ris-preview.js +16 -0
  83. package/dist/gam/components/rlsddp-preview.d.ts +34 -0
  84. package/dist/gam/components/rlsddp-preview.js +251 -0
  85. package/dist/gam/components/rlsddsp-preview.d.ts +33 -0
  86. package/dist/gam/components/rlsddsp-preview.js +226 -0
  87. package/dist/gam/components/rpci-preview.d.ts +27 -0
  88. package/dist/gam/components/rpci-preview.js +123 -0
  89. package/dist/gam/components/rpcppe-preview.d.ts +28 -0
  90. package/dist/gam/components/rpcppe-preview.js +133 -0
  91. package/dist/gam/components/rpcsp-preview.d.ts +29 -0
  92. package/dist/gam/components/rpcsp-preview.js +81 -0
  93. package/dist/gam/components/rspi-preview.d.ts +23 -0
  94. package/dist/gam/components/rspi-preview.js +72 -0
  95. package/dist/gam/components/spc-preview.d.ts +23 -0
  96. package/dist/gam/components/spc-preview.js +149 -0
  97. package/dist/gam/components/splc-entry-form.d.ts +14 -0
  98. package/dist/gam/components/splc-entry-form.js +6 -0
  99. package/dist/gam/components/splc-preview.d.ts +27 -0
  100. package/dist/gam/components/splc-preview.js +192 -0
  101. package/dist/gam/components/stock-card-preview.d.ts +14 -0
  102. package/dist/gam/components/stock-card-preview.js +17 -0
  103. package/dist/gam/config/new-report-config.d.ts +1094 -0
  104. package/dist/gam/config/new-report-config.js +1478 -0
  105. package/dist/gam/purchase-order-flow.d.ts +146 -0
  106. package/dist/gam/purchase-order-flow.js +173 -0
  107. package/dist/gam/purchase-request/workflow.d.ts +19 -0
  108. package/dist/gam/purchase-request/workflow.js +45 -0
  109. package/dist/gam/types/ris-types.d.ts +37 -0
  110. package/dist/gam/types/ris-types.js +1 -0
  111. package/dist/gam/utils/export-ics-xlsx.d.ts +28 -0
  112. package/dist/gam/utils/export-ics-xlsx.js +273 -0
  113. package/dist/gam/utils/export-par-xlsx.d.ts +18 -0
  114. package/dist/gam/utils/export-par-xlsx.js +181 -0
  115. package/dist/gam/utils/export-preview-pdf.d.ts +13 -0
  116. package/dist/gam/utils/export-preview-pdf.js +270 -0
  117. package/dist/gam/utils/export-report-xlsx.d.ts +228 -0
  118. package/dist/gam/utils/export-report-xlsx.js +873 -0
  119. package/dist/gam/utils/line-totals.d.ts +6 -0
  120. package/dist/gam/utils/line-totals.js +18 -0
  121. package/dist/gam/utils/monetary-input.d.ts +6 -0
  122. package/dist/gam/utils/monetary-input.js +18 -0
  123. package/dist/gam/utils/print-element.d.ts +8 -0
  124. package/dist/gam/utils/print-element.js +157 -0
  125. package/dist/government-form.d.ts +16 -0
  126. package/dist/government-form.js +45 -0
  127. package/dist/index.d.ts +49 -0
  128. package/dist/index.js +50 -0
  129. package/dist/internal/components/configurable-form-layout.d.ts +20 -0
  130. package/dist/internal/components/configurable-form-layout.js +49 -0
  131. package/dist/internal/components/ui/badge.d.ts +7 -0
  132. package/dist/internal/components/ui/badge.js +34 -0
  133. package/dist/internal/components/ui/button.d.ts +10 -0
  134. package/dist/internal/components/ui/button.js +35 -0
  135. package/dist/internal/components/ui/calendar.d.ts +8 -0
  136. package/dist/internal/components/ui/calendar.js +77 -0
  137. package/dist/internal/components/ui/command.d.ts +19 -0
  138. package/dist/internal/components/ui/command.js +36 -0
  139. package/dist/internal/components/ui/date-input.d.ts +14 -0
  140. package/dist/internal/components/ui/date-input.js +33 -0
  141. package/dist/internal/components/ui/date-picker.d.ts +19 -0
  142. package/dist/internal/components/ui/date-picker.js +34 -0
  143. package/dist/internal/components/ui/dialog.d.ts +18 -0
  144. package/dist/internal/components/ui/dialog.js +38 -0
  145. package/dist/internal/components/ui/input-group.d.ts +18 -0
  146. package/dist/internal/components/ui/input-group.js +57 -0
  147. package/dist/internal/components/ui/input.d.ts +3 -0
  148. package/dist/internal/components/ui/input.js +12 -0
  149. package/dist/internal/components/ui/label.d.ts +3 -0
  150. package/dist/internal/components/ui/label.js +7 -0
  151. package/dist/internal/components/ui/popover.d.ts +9 -0
  152. package/dist/internal/components/ui/popover.js +23 -0
  153. package/dist/internal/components/ui/select.d.ts +17 -0
  154. package/dist/internal/components/ui/select.js +35 -0
  155. package/dist/internal/components/ui/switch.d.ts +5 -0
  156. package/dist/internal/components/ui/switch.js +8 -0
  157. package/dist/internal/components/ui/table.d.ts +10 -0
  158. package/dist/internal/components/ui/table.js +28 -0
  159. package/dist/internal/components/ui/tabs.d.ts +10 -0
  160. package/dist/internal/components/ui/tabs.js +29 -0
  161. package/dist/internal/components/ui/textarea.d.ts +3 -0
  162. package/dist/internal/components/ui/textarea.js +7 -0
  163. package/dist/internal/components/ui/tooltip.d.ts +6 -0
  164. package/dist/internal/components/ui/tooltip.js +17 -0
  165. package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.d.ts +112 -0
  166. package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.js +91 -0
  167. package/dist/internal/hooks/use-form-field-order.d.ts +7 -0
  168. package/dist/internal/hooks/use-form-field-order.js +43 -0
  169. package/dist/internal/lib/utils.d.ts +2 -0
  170. package/dist/internal/lib/utils.js +3 -0
  171. package/dist/inventory/components/inventory-item-form.d.ts +7 -0
  172. package/dist/inventory/components/inventory-item-form.js +5 -0
  173. package/dist/inventory/components/inventory-item-preview.d.ts +6 -0
  174. package/dist/inventory/components/inventory-item-preview.js +5 -0
  175. package/dist/inventory/iar.d.ts +4 -0
  176. package/dist/inventory/iar.js +4 -0
  177. package/dist/inventory/ics.d.ts +2 -0
  178. package/dist/inventory/ics.js +3 -0
  179. package/dist/inventory/iirup.d.ts +2 -0
  180. package/dist/inventory/iirup.js +3 -0
  181. package/dist/inventory/iirusp.d.ts +4 -0
  182. package/dist/inventory/iirusp.js +4 -0
  183. package/dist/inventory/index.d.ts +3 -0
  184. package/dist/inventory/index.js +4 -0
  185. package/dist/inventory/item.d.ts +3 -0
  186. package/dist/inventory/item.js +3 -0
  187. package/dist/inventory/itr.d.ts +4 -0
  188. package/dist/inventory/itr.js +4 -0
  189. package/dist/inventory/par.d.ts +2 -0
  190. package/dist/inventory/par.js +3 -0
  191. package/dist/inventory/po.d.ts +2 -0
  192. package/dist/inventory/po.js +2 -0
  193. package/dist/inventory/ppelc.d.ts +2 -0
  194. package/dist/inventory/ppelc.js +3 -0
  195. package/dist/inventory/pplc.d.ts +2 -0
  196. package/dist/inventory/pplc.js +4 -0
  197. package/dist/inventory/pr.d.ts +4 -0
  198. package/dist/inventory/pr.js +4 -0
  199. package/dist/inventory/property-card.d.ts +2 -0
  200. package/dist/inventory/property-card.js +3 -0
  201. package/dist/inventory/ptr.d.ts +2 -0
  202. package/dist/inventory/ptr.js +3 -0
  203. package/dist/inventory/regspi.d.ts +4 -0
  204. package/dist/inventory/regspi.js +4 -0
  205. package/dist/inventory/ris.d.ts +4 -0
  206. package/dist/inventory/ris.js +4 -0
  207. package/dist/inventory/rlsddp.d.ts +4 -0
  208. package/dist/inventory/rlsddp.js +4 -0
  209. package/dist/inventory/rlsddsp.d.ts +2 -0
  210. package/dist/inventory/rlsddsp.js +3 -0
  211. package/dist/inventory/rpci.d.ts +2 -0
  212. package/dist/inventory/rpci.js +3 -0
  213. package/dist/inventory/rpcppe.d.ts +2 -0
  214. package/dist/inventory/rpcppe.js +3 -0
  215. package/dist/inventory/rpcsp.d.ts +2 -0
  216. package/dist/inventory/rpcsp.js +3 -0
  217. package/dist/inventory/rrsp.d.ts +2 -0
  218. package/dist/inventory/rrsp.js +3 -0
  219. package/dist/inventory/rsmi.d.ts +4 -0
  220. package/dist/inventory/rsmi.js +4 -0
  221. package/dist/inventory/rsmp.d.ts +4 -0
  222. package/dist/inventory/rsmp.js +4 -0
  223. package/dist/inventory/rspi.d.ts +2 -0
  224. package/dist/inventory/rspi.js +3 -0
  225. package/dist/inventory/spc.d.ts +2 -0
  226. package/dist/inventory/spc.js +3 -0
  227. package/dist/inventory/splc.d.ts +3 -0
  228. package/dist/inventory/splc.js +4 -0
  229. package/dist/inventory/stock-card.d.ts +4 -0
  230. package/dist/inventory/stock-card.js +4 -0
  231. package/dist/inventory/types.d.ts +11 -0
  232. package/dist/inventory/types.js +1 -0
  233. package/dist/inventory/wmr.d.ts +4 -0
  234. package/dist/inventory/wmr.js +4 -0
  235. package/dist/lib/rpcsp-accountable-person.d.ts +1 -0
  236. package/dist/lib/rpcsp-accountable-person.js +10 -0
  237. package/dist/reports/iar/_components/create-form.d.ts +13 -0
  238. package/dist/reports/iar/_components/create-form.js +92 -0
  239. package/dist/reports/iar/_components/document-preview.d.ts +11 -0
  240. package/dist/reports/iar/_components/document-preview.js +131 -0
  241. package/dist/reports/iar/types.d.ts +97 -0
  242. package/dist/reports/iar/types.js +24 -0
  243. package/dist/reports/iirusp/_components/create-form.d.ts +17 -0
  244. package/dist/reports/iirusp/_components/create-form.js +118 -0
  245. package/dist/reports/iirusp/_components/document-preview.d.ts +8 -0
  246. package/dist/reports/iirusp/_components/document-preview.js +389 -0
  247. package/dist/reports/iirusp/types.d.ts +134 -0
  248. package/dist/reports/iirusp/types.js +29 -0
  249. package/dist/reports/iirusp/utils.d.ts +29 -0
  250. package/dist/reports/iirusp/utils.js +488 -0
  251. package/dist/reports/itr/_components/create-form.d.ts +28 -0
  252. package/dist/reports/itr/_components/create-form.js +90 -0
  253. package/dist/reports/itr/_components/document-preview.d.ts +6 -0
  254. package/dist/reports/itr/_components/document-preview.js +7 -0
  255. package/dist/reports/itr/types.d.ts +68 -0
  256. package/dist/reports/itr/types.js +27 -0
  257. package/dist/reports/itr/utils.d.ts +24 -0
  258. package/dist/reports/itr/utils.js +76 -0
  259. package/dist/reports/pr/_components/create-form.d.ts +16 -0
  260. package/dist/reports/pr/_components/create-form.js +52 -0
  261. package/dist/reports/pr/_components/document-preview.d.ts +7 -0
  262. package/dist/reports/pr/_components/document-preview.js +9 -0
  263. package/dist/reports/pr/types.d.ts +69 -0
  264. package/dist/reports/pr/types.js +1 -0
  265. package/dist/reports/pr/utils.d.ts +72 -0
  266. package/dist/reports/pr/utils.js +572 -0
  267. package/dist/reports/regspi/_components/create-form.d.ts +19 -0
  268. package/dist/reports/regspi/_components/create-form.js +33 -0
  269. package/dist/reports/regspi/_components/document-preview.d.ts +6 -0
  270. package/dist/reports/regspi/_components/document-preview.js +7 -0
  271. package/dist/reports/regspi/types.d.ts +29 -0
  272. package/dist/reports/regspi/types.js +24 -0
  273. package/dist/reports/regspi/utils.d.ts +48 -0
  274. package/dist/reports/regspi/utils.js +98 -0
  275. package/dist/reports/ris/_components/create-form.d.ts +36 -0
  276. package/dist/reports/ris/_components/create-form.js +149 -0
  277. package/dist/reports/ris/_components/document-preview.d.ts +8 -0
  278. package/dist/reports/ris/_components/document-preview.js +31 -0
  279. package/dist/reports/ris/types.d.ts +93 -0
  280. package/dist/reports/ris/types.js +1 -0
  281. package/dist/reports/rlsddp/_components/create-form.d.ts +11 -0
  282. package/dist/reports/rlsddp/_components/create-form.js +165 -0
  283. package/dist/reports/rlsddp/_components/document-preview.d.ts +8 -0
  284. package/dist/reports/rlsddp/_components/document-preview.js +15 -0
  285. package/dist/reports/rlsddp/types.d.ts +105 -0
  286. package/dist/reports/rlsddp/types.js +31 -0
  287. package/dist/reports/rrsp/components/rrsp-preview.d.ts +21 -0
  288. package/dist/reports/rrsp/components/rrsp-preview.js +155 -0
  289. package/dist/reports/rsmi/components/rsmi-create-form.d.ts +20 -0
  290. package/dist/reports/rsmi/components/rsmi-create-form.js +8 -0
  291. package/dist/reports/rsmi/components/rsmi-document-body.d.ts +15 -0
  292. package/dist/reports/rsmi/components/rsmi-document-body.js +12 -0
  293. package/dist/reports/rsmi/components/rsmi-types.d.ts +45 -0
  294. package/dist/reports/rsmi/components/rsmi-types.js +1 -0
  295. package/dist/reports/rsmi/components/rsmi-utils.d.ts +2 -0
  296. package/dist/reports/rsmi/components/rsmi-utils.js +18 -0
  297. package/dist/reports/rsmp/components/rsmp-create-modal.d.ts +5 -0
  298. package/dist/reports/rsmp/components/rsmp-create-modal.js +7 -0
  299. package/dist/reports/rsmp/components/rsmp-preview-modal.d.ts +11 -0
  300. package/dist/reports/rsmp/components/rsmp-preview-modal.js +47 -0
  301. package/dist/reports/rsmp/components/rsmp-types.d.ts +44 -0
  302. package/dist/reports/rsmp/components/rsmp-types.js +1 -0
  303. package/dist/reports/rsmp/components/rsmp-utils.d.ts +5 -0
  304. package/dist/reports/rsmp/components/rsmp-utils.js +41 -0
  305. package/dist/reports/rsmp/lib/rsmp-grouping.d.ts +14 -0
  306. package/dist/reports/rsmp/lib/rsmp-grouping.js +75 -0
  307. package/dist/reports/stock-card/_components/create-form.d.ts +13 -0
  308. package/dist/reports/stock-card/_components/create-form.js +39 -0
  309. package/dist/reports/stock-card/_components/document-preview.d.ts +7 -0
  310. package/dist/reports/stock-card/_components/document-preview.js +29 -0
  311. package/dist/reports/stock-card/types.d.ts +31 -0
  312. package/dist/reports/stock-card/types.js +1 -0
  313. package/dist/reports/stock-card/utils.d.ts +32 -0
  314. package/dist/reports/stock-card/utils.js +248 -0
  315. package/dist/reports/wmr/_components/create-form.d.ts +22 -0
  316. package/dist/reports/wmr/_components/create-form.js +61 -0
  317. package/dist/reports/wmr/_components/document-preview.d.ts +10 -0
  318. package/dist/reports/wmr/_components/document-preview.js +59 -0
  319. package/dist/reports/wmr/types.d.ts +45 -0
  320. package/dist/reports/wmr/types.js +1 -0
  321. package/dist/reports/wmr/utils.d.ts +32 -0
  322. package/dist/reports/wmr/utils.js +343 -0
  323. package/dist/styles.css +4492 -0
  324. package/extraction-manifest.json +620 -0
  325. package/package.json +197 -0
@@ -0,0 +1,44 @@
1
+ # Form catalog
2
+
3
+ Import a listed code as `@tonzxz/government-forms/inventory/<code>`. For example: `/inventory/pr`. The requested `/inventory/pplc` path aliases `/inventory/ppelc`. Each report entry exports default/`Form`, `definition`, and `Preview`, plus the dedicated components listed below. Purchase Order and Inventory item use `/inventory/po` and `/inventory/item` with their dedicated props.
4
+
5
+ All 25 codes below have a baseline configurable entry form through `GovernmentForm`. “Baseline only” means the standalone registry-based renderer, not the page-specific embedded editor. Dedicated entry components retain their extracted props and layouts. Approval flows, lookup loading, and inventory effects are supplied by the consumer.
6
+
7
+ | Code | Dedicated entry component | Document preview |
8
+ | --- | --- | --- |
9
+ | `pr` | PurchaseRequestCreateForm | `PrDocumentPreview` |
10
+ | `ris` | RisCreateForm / RISForm | `RisDocumentPreview / RISPreview` |
11
+ | `stock-card` | StockCardCreateForm | `ScDocumentPreview / StockCardPreview` |
12
+ | `property-card` | Baseline only | `PropertyCardPreview` |
13
+ | `iar` | IarCreateForm | `IarDocumentPreview / IarPreview` |
14
+ | `rsmi` | RsmiCreateForm | `RsmiDocumentBody` |
15
+ | `wmr` | WastematerialReportWmrCreateForm | `WmrDocumentPreview / WmrRecordPreview` |
16
+ | `ptr` | Baseline only | `PtrPreview` |
17
+ | `iirup` | Baseline only | `IirupPreview` |
18
+ | `ppelc` | Baseline only | `PPELCPreview` |
19
+ | `spc` | Baseline only | `SpcPreview` |
20
+ | `splc` | SplcEntryForm (line-item editor) | `SplcPreview` |
21
+ | `regspi` | RegSpiCreateForm | `RegSpiPreview` |
22
+ | `itr` | ItrCreateForm | `ItrPreview` |
23
+ | `rrsp` | Baseline only | `RrspPreview` |
24
+ | `rspi` | Baseline only | `RspiPreview` |
25
+ | `rpcsp` | Baseline only | `RpcspPreview` |
26
+ | `rlsddsp` | Baseline only | `RlsddspPreview` |
27
+ | `iirusp` | IiruspCreateForm | `IiruspDocumentPreview` |
28
+ | `par` | Baseline only | `ParPreview` |
29
+ | `ics` | Baseline only | `IcsPreview` |
30
+ | `rlsddp` | RlsddpCreateForm | `RlsddpDocumentPreview / RlsddpPreview` |
31
+ | `rpci` | Baseline only | `RpciPreview` |
32
+ | `rpcppe` | Baseline only | `RpcppePreview` |
33
+ | `rsmp` | RsmpCreateForm | `RsmpDocumentPreview` |
34
+
35
+ Additional extracted components outside the reports directory:
36
+
37
+ | Form | Entry | Preview |
38
+ | --- | --- | --- |
39
+ | Purchase Order | `PurchaseOrderCreateForm` | `PurchaseOrderPreview` |
40
+ | Inventory item | `InventoryItemForm` | `InventoryItemPreview` |
41
+
42
+ Purchase Order receives eligible purchase requests, approver display data and the generated PO number from the host. It does not query or authorize those records itself. Inventory item types are exported as `Inventory` and `InventoryStatus`.
43
+
44
+ `extraction-manifest.json` records original source paths and SHA-256 hashes for traceability. Most source components are copied with import rewrites; the PO and RSMP forms were separated from their page/modal shells. Agency branding and remote font loading were removed where found. These are extracted application templates, not a guarantee that every agency accepts an identical document layout.
package/README.md ADDED
@@ -0,0 +1,165 @@
1
+ # Government forms
2
+
3
+ An installable React 19 library extracted from BCS IMS. The npm package is `@tonzxz/government-forms`; its inventory entry point is `@tonzxz/government-forms/inventory`. The package is configured for public npm distribution.
4
+
5
+ ## Included
6
+
7
+ - 25 configurable report definitions, available through `GovernmentForm`.
8
+ - Extracted dedicated report entry forms, purchase-order entry/preview, and inventory-item entry/preview.
9
+ - Printable document components and existing PDF, print, and spreadsheet helpers.
10
+ - TypeScript declarations and prebuilt CSS. No Next.js, database, environment variables, authentication provider, or `@repo/*` packages required.
11
+
12
+ See [FORM_CATALOG.md](./FORM_CATALOG.md) for exact coverage. **Configurable definitions are the original baseline field configurations, not identical copies of every live page.** Several live pages add data lookups, workflow-specific fields, and actions; these remain the consumer's responsibility. Use the dedicated components where listed to retain those extracted entry layouts.
13
+
14
+ ## Install
15
+
16
+ Install from npm:
17
+
18
+ ```sh
19
+ npm install @tonzxz/government-forms react@^19 react-dom@^19
20
+ ```
21
+
22
+ Before publishing, install the generated archive in a different repository:
23
+
24
+ ```sh
25
+ npm install /absolute/path/to/tonzxz-government-forms-0.1.0.tgz
26
+ ```
27
+
28
+ The public package can be installed without npm authentication. Consumers use the exact same package version independently; deployments and databases stay separate.
29
+
30
+
31
+ ## Inventory import paths
32
+
33
+ Install the package once with `npm install @tonzxz/government-forms`. `/inventory` and `/inventory/pr` are import paths inside that package, not separate npm installations.
34
+
35
+ ```tsx
36
+ import { GovernmentForm, createFormValues } from "@tonzxz/government-forms/inventory";
37
+ import PRForm, { definition, Preview, PurchaseRequestCreateForm } from "@tonzxz/government-forms/inventory/pr";
38
+ import PPLCForm from "@tonzxz/government-forms/inventory/pplc";
39
+ import "@tonzxz/government-forms/inventory/styles.css";
40
+
41
+ // Inside a React component:
42
+ const [value, setValue] = useState(() => createFormValues(definition));
43
+ <PRForm value={value} onChange={setValue} onSubmit={savePurchaseRequest} />;
44
+ ```
45
+
46
+ Every report code in the catalog has an `/inventory/<code>` entry. Each exports its configurable form as both `default` and `Form`, plus `definition`, `Preview`, and the original named preview. Dedicated entry components are also exported where available. `Preview` and dedicated entry components retain their own typed props; their data models differ from the generic form payload.
47
+
48
+ `/inventory/pplc` is an alias for the existing PPELC form (`/inventory/ppelc`); its document code stays `ppelc`. Additional paths `/inventory/po` and `/inventory/item` export their dedicated entry components as `default`/`Form` and their previews as `Preview`; these two do not have a generic `definition`. Existing root and `/forms/<code>` imports remain supported.
49
+
50
+ ## A complete controlled form
51
+
52
+ In Next.js, put this component in a file with `"use client"` and import the CSS from the root layout. In Vite, import the CSS once from the application entry point. The compiled stylesheet includes Tailwind's reset and utility rules; import it before application overrides. Tailwind is not required in the consuming project.
53
+
54
+ ```tsx
55
+ "use client";
56
+ import { useState } from "react";
57
+ import {
58
+ GovernmentForm,
59
+ createFormValues,
60
+ formDefinitions,
61
+ } from "@tonzxz/government-forms/inventory";
62
+ import "@tonzxz/government-forms/inventory/styles.css";
63
+
64
+ export function PurchaseRequest() {
65
+ const [value, setValue] = useState(() => createFormValues(formDefinitions.pr));
66
+
67
+ return (
68
+ <GovernmentForm
69
+ code="pr"
70
+ value={value}
71
+ onChange={setValue}
72
+ onSubmit={async data => {
73
+ const response = await fetch("/api/purchase-requests", {
74
+ method: "POST",
75
+ headers: { "Content-Type": "application/json" },
76
+ body: JSON.stringify(data),
77
+ });
78
+ if (!response.ok) throw new Error("Unable to save the purchase request.");
79
+ }}
80
+ />
81
+ );
82
+ }
83
+ ```
84
+
85
+ `/api/purchase-requests` is an illustrative host endpoint, not provided by the library. The payload is `{ values: Record<string,string>, rows: Record<string,string>[] }`. Map it to your own API model. A successful callback does not clear the form; the host decides whether to reset or navigate. Errors display inline and preserve entered values. Submission is locked while the callback is pending.
86
+
87
+ The generic form validates required fields, finite numeric values, integer fields, dates and select options. It does not assert stock availability, approval authority, document numbering uniqueness, calculated totals, or minimum line count. Add client validation through `validate`, and enforce all business rules and authorization on the server.
88
+
89
+ ## Agency customization
90
+
91
+ ```tsx
92
+ const definition = {
93
+ ...formDefinitions.pr,
94
+ title: "Agency purchase request",
95
+ fields: [
96
+ ...formDefinitions.pr.fields,
97
+ { id: "fundingCode", label: "Funding code", type: "text" as const, required: true },
98
+ ],
99
+ };
100
+ // Pass definition={definition} to GovernmentForm.
101
+ ```
102
+
103
+ Create a new definition object rather than mutating the shared registry. Override labels, field order, options, required/read-only flags, and line-item fields. Pass React children for additional sections. Dates marked `defaultToday` use the local calendar date. Auto-generated document numbers must be supplied by the host.
104
+
105
+ For a specific form use `@tonzxz/government-forms/inventory/pr` (default export plus named `Form`, `definition`, `Preview`, and `PurchaseRequestCreateForm`), or `@tonzxz/government-forms/inventory/definitions` for server-side metadata and validation without the React entry point.
106
+
107
+ ## Existing dedicated components
108
+
109
+ ```tsx
110
+ import { PurchaseRequestCreateForm, ParPreview } from "@tonzxz/government-forms/inventory";
111
+ import type { ComponentProps } from "react";
112
+ type PurchaseRequestProps = ComponentProps<typeof PurchaseRequestCreateForm>;
113
+ ```
114
+
115
+ Dedicated components keep their original typed props: values, field-change callbacks, line-item operations, optional lookup results, and tab state. They do not automatically fetch or save. The declarations show each component's full interface. PR types are also available from `@tonzxz/government-forms/reports/pr/types`.
116
+
117
+ ```tsx
118
+ <ParPreview
119
+ entityName="Your agency"
120
+ parNo="PAR-2026-001"
121
+ items={[{ description: "Laptop", quantity: "1", unit: "unit", amount: "45000" }]}
122
+ />
123
+ ```
124
+
125
+ `ScDocumentPreview` accepts an optional `entityName` prop; `PurchaseOrderPreview` uses `data.entityName`. Agency names are not hard-coded. Preview layouts retain their source paper sizes, so place them inside an overflow container on narrow screens.
126
+
127
+ ## Export utilities
128
+
129
+ ```ts
130
+ import { exportPreviewElementToPdf } from "@tonzxz/government-forms/gam/utils/export-preview-pdf";
131
+ import { printElement } from "@tonzxz/government-forms/gam/utils/print-element";
132
+ import { exportParXlsx } from "@tonzxz/government-forms/gam/utils/export-par-xlsx";
133
+ ```
134
+
135
+ Call DOM, PDF, download, and print helpers in the browser after rendering and loading any supplied images. Source report helpers and types are available through the corresponding `reports/<report>/...` subpaths. Font rendering and final pagination should be checked against each client's accepted document template before rollout.
136
+
137
+ ## What the host supplies
138
+
139
+ Authentication, permissions, database tables/migrations, API adapters, attachments, record numbering, approval assignments, signatures, workflow transitions, stock transactions, and audit history. The package does not install backend modules or create routes. Client-side status fields and displayed role controls do not grant authorization.
140
+
141
+ Application page shells, dashboards, authentication/account forms, support/ticket forms, and report compilation/issuance workflow pages are not exported as complete applications. Their form data and relevant report templates are represented in the catalog where applicable.
142
+
143
+ ## Development and release
144
+
145
+ From this workspace:
146
+
147
+ ```sh
148
+ pnpm --filter @tonzxz/government-forms build
149
+ pnpm --filter @tonzxz/government-forms test
150
+ pnpm --filter @tonzxz/government-forms typecheck
151
+ cd packages/government-forms
152
+ npm pack --pack-destination artifacts
153
+ ```
154
+
155
+ `npm pack` builds and tests first. Only `dist`, documentation and the extraction manifest are included. The package has no install scripts and does not run database migrations. The source package directory can be moved into its own repository: its build dependencies use registry versions, without workspace catalogs. `scripts/extract.mjs` is an explicit migration tool that alone requires the original repository; normal build/publish never runs it. Re-running extraction overwrites the copied components and requires review.
156
+
157
+ Publishing requires an account authorized to publish under the `@tonzxz` personal scope. `publishConfig.access` is `public`. Authenticate interactively using `npm login`, verify the account using `npm whoami`, then run `npm publish` from this package directory. Never commit registry tokens. For subsequent releases, increment the version and document breaking prop, definition or print-layout changes. Pin the selected release in each client application.
158
+
159
+ The original application is unchanged and still uses its original form files. This extraction is an initial snapshot, recorded in `extraction-manifest.json`; subsequent fixes should be made in this package and adopted by clients through versioned releases. Switching BCS IMS itself to consume this package is a separate integration step.
160
+
161
+ ## Independent consumer verification
162
+
163
+ After packing, `node scripts/test-consumer.mjs` installs the archive into an OS temporary directory, checks consumer TypeScript without skipping declaration errors, builds a Vite browser application, and tests a native ESM import. This check requires network access and does not modify another client repository.
164
+
165
+ `artifacts/consumer-path.txt` records that fixture. Run Vite there on `127.0.0.1:4178`, then `node scripts/test-browser.mjs` exercises the fixture in headless Chrome. Set `CHROME_EXECUTABLE` on systems where Chrome is not at the default macOS path. Screenshots are saved under ignored `artifacts/`.