@jjlmoya/utils-forensic-science 1.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 (316) hide show
  1. package/package.json +69 -0
  2. package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
  5. package/src/category/i18n/de.ts +55 -0
  6. package/src/category/i18n/en.ts +55 -0
  7. package/src/category/i18n/es.ts +55 -0
  8. package/src/category/i18n/fr.ts +55 -0
  9. package/src/category/i18n/id.ts +55 -0
  10. package/src/category/i18n/it.ts +55 -0
  11. package/src/category/i18n/ja.ts +56 -0
  12. package/src/category/i18n/ko.ts +56 -0
  13. package/src/category/i18n/nl.ts +55 -0
  14. package/src/category/i18n/pl.ts +55 -0
  15. package/src/category/i18n/pt.ts +55 -0
  16. package/src/category/i18n/ru.ts +55 -0
  17. package/src/category/i18n/sv.ts +55 -0
  18. package/src/category/i18n/tr.ts +55 -0
  19. package/src/category/i18n/zh.ts +56 -0
  20. package/src/category/index.ts +48 -0
  21. package/src/category/seo.astro +15 -0
  22. package/src/components/PreviewNavSidebar.astro +116 -0
  23. package/src/components/PreviewToolbar.astro +143 -0
  24. package/src/data.ts +10 -0
  25. package/src/entries.ts +48 -0
  26. package/src/env.d.ts +5 -0
  27. package/src/index.ts +29 -0
  28. package/src/layouts/PreviewLayout.astro +117 -0
  29. package/src/pages/[locale]/[slug].astro +162 -0
  30. package/src/pages/[locale].astro +261 -0
  31. package/src/pages/index.astro +3 -0
  32. package/src/tests/diacritics_density.test.ts +140 -0
  33. package/src/tests/faq_count.test.ts +19 -0
  34. package/src/tests/i18n_coverage.test.ts +36 -0
  35. package/src/tests/inverted_punctuation.test.ts +84 -0
  36. package/src/tests/locale_completeness.test.ts +24 -0
  37. package/src/tests/mocks/astro_mock.js +2 -0
  38. package/src/tests/no_en_dash.test.ts +70 -0
  39. package/src/tests/no_h1_in_components.test.ts +48 -0
  40. package/src/tests/schemas_fulfillment.test.ts +23 -0
  41. package/src/tests/script_density.test.ts +94 -0
  42. package/src/tests/seo_length.test.ts +46 -0
  43. package/src/tests/shared-test-helpers.ts +56 -0
  44. package/src/tests/slug_language_code_format.test.ts +23 -0
  45. package/src/tests/slug_uniqueness.test.ts +81 -0
  46. package/src/tests/title_quality.test.ts +55 -0
  47. package/src/tests/tool_exports.test.ts +34 -0
  48. package/src/tests/tool_validation.test.ts +16 -0
  49. package/src/tests/widmark.test.ts +28 -0
  50. package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
  51. package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
  52. package/src/tool/forensic-age-estimator/component.astro +321 -0
  53. package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
  54. package/src/tool/forensic-age-estimator/entry.ts +32 -0
  55. package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
  56. package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
  57. package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
  58. package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
  59. package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
  60. package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
  61. package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
  62. package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
  63. package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
  64. package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
  65. package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
  66. package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
  67. package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
  68. package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
  69. package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
  70. package/src/tool/forensic-age-estimator/index.ts +11 -0
  71. package/src/tool/forensic-age-estimator/logic.ts +81 -0
  72. package/src/tool/forensic-age-estimator/seo.astro +15 -0
  73. package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
  74. package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
  75. package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
  76. package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
  77. package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
  78. package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
  79. package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
  80. package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
  81. package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
  82. package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
  83. package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
  84. package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
  85. package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
  86. package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
  87. package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
  88. package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
  89. package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
  90. package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
  91. package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
  92. package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
  93. package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
  94. package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
  95. package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
  96. package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
  97. package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
  98. package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
  99. package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
  100. package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
  101. package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
  102. package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
  103. package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
  104. package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
  105. package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
  106. package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
  107. package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
  108. package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
  109. package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
  110. package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
  111. package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
  112. package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
  113. package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
  114. package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
  115. package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
  116. package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
  117. package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
  118. package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
  119. package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
  120. package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
  121. package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
  122. package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
  123. package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
  124. package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
  125. package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
  126. package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
  127. package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
  128. package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
  129. package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
  130. package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
  131. package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
  132. package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
  133. package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
  134. package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
  135. package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
  136. package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
  137. package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
  138. package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
  139. package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
  140. package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
  141. package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
  142. package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
  143. package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
  144. package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
  145. package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
  146. package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
  147. package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
  148. package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
  149. package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
  150. package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
  151. package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
  152. package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
  153. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
  154. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
  155. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
  156. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
  157. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
  158. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
  159. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
  160. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
  161. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
  162. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
  163. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
  164. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
  165. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
  166. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
  167. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
  168. package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
  169. package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
  170. package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
  171. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
  172. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
  173. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
  174. package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
  175. package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
  176. package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
  177. package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
  178. package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
  179. package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
  180. package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
  181. package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
  182. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
  183. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
  184. package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
  185. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
  186. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
  187. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
  188. package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
  189. package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
  190. package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
  191. package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
  192. package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
  193. package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
  194. package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
  195. package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
  196. package/src/tool/forensic-sex-determinator/component.astro +463 -0
  197. package/src/tool/forensic-sex-determinator/entry.ts +32 -0
  198. package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
  199. package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
  200. package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
  201. package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
  202. package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
  203. package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
  204. package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
  205. package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
  206. package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
  207. package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
  208. package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
  209. package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
  210. package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
  211. package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
  212. package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
  213. package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
  214. package/src/tool/forensic-sex-determinator/index.ts +11 -0
  215. package/src/tool/forensic-sex-determinator/logic.ts +89 -0
  216. package/src/tool/forensic-sex-determinator/seo.astro +15 -0
  217. package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
  218. package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
  219. package/src/tool/forensic-stature-estimator/component.astro +49 -0
  220. package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
  221. package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
  222. package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
  223. package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
  224. package/src/tool/forensic-stature-estimator/entry.ts +32 -0
  225. package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
  226. package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
  227. package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
  228. package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
  229. package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
  230. package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
  231. package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
  232. package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
  233. package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
  234. package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
  235. package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
  236. package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
  237. package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
  238. package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
  239. package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
  240. package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
  241. package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
  242. package/src/tool/forensic-stature-estimator/index.ts +11 -0
  243. package/src/tool/forensic-stature-estimator/logic.ts +119 -0
  244. package/src/tool/forensic-stature-estimator/script.ts +288 -0
  245. package/src/tool/forensic-stature-estimator/seo.astro +15 -0
  246. package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
  247. package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
  248. package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
  249. package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
  250. package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
  251. package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
  252. package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
  253. package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
  254. package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
  255. package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
  256. package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
  257. package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
  258. package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
  259. package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
  260. package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
  261. package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
  262. package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
  263. package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
  264. package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
  265. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
  266. package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
  267. package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
  268. package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
  269. package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
  270. package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
  271. package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
  272. package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
  273. package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
  274. package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
  275. package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
  276. package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
  277. package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
  278. package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
  279. package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
  280. package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
  281. package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
  282. package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
  283. package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
  284. package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
  285. package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
  286. package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
  287. package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
  288. package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
  289. package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
  290. package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
  291. package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
  292. package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
  293. package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
  294. package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
  295. package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
  296. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
  297. package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
  298. package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
  299. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
  300. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
  301. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
  302. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
  303. package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
  304. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
  305. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
  306. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
  307. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
  308. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
  309. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
  310. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
  311. package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
  312. package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
  313. package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
  314. package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
  315. package/src/tools.ts +27 -0
  316. package/src/types.ts +70 -0
@@ -0,0 +1,243 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'simulator-kromatografi-lapis-tipis-tlc-tinta';
5
+ const title = 'Simulator Kromatografi Lapis Tipis (TLC) Tinta Forensik';
6
+ const description = 'Simulasikan kromatografi lapis tipis tinta tulisan yang dicurigai, visualisasikan pergerakan batas pelarut, pisahkan pita warna pigmen, dan hitung nilai Rf yang tepat untuk setiap pigmen.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Pilih tinta yang dipertanyakan atau pena pembanding',
11
+ text: 'Pilih tinta surat tebusan atau profil pena kandidat. Setiap tinta mengandung kumpulan komponen pewarna yang berbeda dengan polaritas dan afinitas fase diam yang berbeda.',
12
+ },
13
+ {
14
+ name: 'Pilih fase gerak',
15
+ text: 'Ubah sistem pelarut untuk melihat bagaimana polaritas pelarut mengubah pengembangan kapiler dan migrasi relatif dari setiap pita pewarna.',
16
+ },
17
+ {
18
+ name: 'Kembangkan lempeng TLC',
19
+ text: 'Pindahkan penggeser waktu pengembangan dan saksikan batas pelarut naik melalui lempeng sementara pita-pita yang terpisah muncul di atas garis asal.',
20
+ },
21
+ {
22
+ name: 'Baca tabel Rf',
23
+ text: 'Bandingkan jarak setiap pigmen dengan jarak batas pelarut. Simulator menghitung Rf sebagai jarak pigmen dibagi jarak batas pelarut.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ key: 'faq-1',
30
+ question: 'Apa arti Rf dalam kromatografi lapis tipis?',
31
+ answer: 'Rf is faktor retensi: jarak yang ditempuh oleh senyawa dibagi dengan jarak yang ditempuh oleh batas pelarut dari garis asal yang sama. Ini tidak memiliki satuan dan biasanya berkisar antara 0 hingga 1.',
32
+ },
33
+ {
34
+ key: 'faq-2',
35
+ question: 'Apakah TLC dapat membuktikan bahwa dua sampel tinta berasal dari pena yang sama?',
36
+ answer: 'Tidak. TLC dapat menunjukkan apakah pola pewarna konsisten atau tidak konsisten, tetapi atribusi sumber memerlukan metode perbandingan yang divalidasi, kontrol, dokumentasi, dan interpretasi ahli.',
37
+ },
38
+ {
39
+ key: 'faq-3',
40
+ question: 'Mengapa mengubah pelarut mengubah pola pita?',
41
+ answer: 'Pewarna membagi secara berbeda antara fase diam dan fase gerak. Pelarut dengan kecocokan polaritas yang lebih baik dapat membawa pewarna lebih jauh, meningkatkan nilai Rf-nya.',
42
+ },
43
+ {
44
+ key: 'faq-4',
45
+ question: 'Mengapa garis asal itu penting?',
46
+ answer: 'Jarak batas pelarut dan jarak pigmen harus diukur dari garis asal. Mengukur dari bagian bawah lempeng menghasilkan nilai Rf yang salah.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ chamberAria: 'Ruang kromatografi lapis tipis dengan lempeng pengembang',
56
+ rulerAria: 'Penggaris milimeter virtual untuk mengukur batas pelarut dan pita pigmen',
57
+ rulerMarks: '80,60,40,20,0',
58
+ units: 'Sistem satuan',
59
+ metric: 'Metrik',
60
+ imperial: 'Imperial',
61
+ unitMillimeter: 'mm',
62
+ unitInch: 'in',
63
+ unitMinute: 'menit',
64
+ inkSample: 'Sampel tinta',
65
+ ransomNote: 'Tinta surat tebusan yang dicurigai',
66
+ bluePen: 'Pena bolpoin biru yang disita',
67
+ blackPen: 'Pena bolpoin hitam yang disita',
68
+ gelPen: 'Pena gel yang disita',
69
+ solventSystem: 'Fase gerak',
70
+ ethanolWater: 'Etanol / air',
71
+ butanolAcetic: 'Butanol / asam asetat',
72
+ isopropanolAmmonia: 'Isopropanol / amonia',
73
+ developmentTime: 'Waktu pengembangan',
74
+ frontDistance: 'Perjalanan pelarut',
75
+ matchScore: 'Kemiripan pola',
76
+ solventFront: 'Batas pelarut',
77
+ originLine: 'Asal',
78
+ pigment: 'Pita pigmen',
79
+ pigmentCyanDye: 'pewarna sian',
80
+ pigmentVioletDye: 'pewarna violet',
81
+ pigmentGrayCarrier: 'pembawa abu-abu',
82
+ pigmentNavyDye: 'pewarna biru tua',
83
+ pigmentYellowDye: 'pewarna kuning',
84
+ pigmentRedDye: 'pewarna merah',
85
+ pigmentBlueDye: 'pewarna biru',
86
+ pigmentDarkBinder: 'pengikat gelap',
87
+ pigmentTealDye: 'pewarna teal',
88
+ pigmentMagentaDye: 'pewarna magenta',
89
+ pigmentGelBinder: 'pengikat gel',
90
+ distance: 'Jarak',
91
+ rfValue: 'Nilai Rf',
92
+ disclaimer: 'Hanya simulasi pendidikan. Perbandingan tinta forensik memerlukan dokumen asli, metode laboratorium yang divalidasi, standar referensi, dan pemeriksa dokumen yang berkualifikasi.',
93
+ },
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: 'Kromatografi Lapis Tipis untuk Perbandingan Tinta Forensik',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'diagnostic',
102
+ variant: 'info',
103
+ icon: 'mdi:test-tube',
104
+ badge: 'Simulator pengajaran',
105
+ title: 'Apa yang simulator tinta TLC ini bantu Anda pahami',
106
+ html: 'Alat ini menjelaskan bagaimana <strong>kromatografi lapis tipis tinta tulis</strong> dapat memisahkan garis tinta yang terlihat menjadi beberapa pita pewarna. Ini dirancang untuk siswa sains forensik, pelajar pemeriksaan dokumen, dan siapa saja yang mencoba memahami bagaimana nilai Rf dihitung dari lempeng TLC yang dikembangkan.',
107
+ },
108
+ {
109
+ type: 'stats',
110
+ columns: 4,
111
+ items: [
112
+ { value: 'Rf = d pita / d pelarut', label: 'rumus faktor retensi', icon: 'mdi:division' },
113
+ { value: '4', label: 'profil tinta dibandingkan', icon: 'mdi:pen' },
114
+ { value: '3', label: 'fase gerak disimulasikan', icon: 'mdi:flask-outline' },
115
+ { value: '2', label: 'pembacaan metrik dan imperial', icon: 'mdi:swap-horizontal' },
116
+ ],
117
+ },
118
+ {
119
+ type: 'summary',
120
+ title: 'Daftar periksa pengukuran TLC yang benar',
121
+ items: [
122
+ 'Tandai garis asal di atas permukaan pelarut sebelum pengembangan dimulai.',
123
+ 'Keluarkan lempeng sebelum pelarut mencapai tepi atas.',
124
+ 'Tandai batas pelarut segera karena dapat menguap atau menjadi sulit dilihat.',
125
+ 'Ukur perjalanan pigmen dan perjalanan pelarut dari garis asal yang sama.',
126
+ 'Laporkan nilai Rf beserta sistem pelarut, jenis lempeng, kondisi pengembangan, dan kontrol.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'comparative',
131
+ columns: 2,
132
+ items: [
133
+ {
134
+ title: 'Apa yang Dapat Didukung TLC',
135
+ icon: 'mdi:check-circle-outline',
136
+ highlight: true,
137
+ description: 'TLC dapat menunjukkan apakah tinta yang dipertanyakan dan dikenal memiliki perilaku pemisahan pewarna yang serupa di bawah kondisi yang sama.',
138
+ points: ['Perbandingan skrining', 'Visualisasi pola pewarna', 'Dokumentasi Rf', 'Pemilihan sampel untuk pengujian konfirmasi'],
139
+ },
140
+ {
141
+ title: 'Apa yang Tidak Dapat Dibuktikan TLC Sendiri',
142
+ icon: 'mdi:alert-circle-outline',
143
+ description: 'TLC saja tidak dapat mengidentifikasi pena secara unik, menentukan tanggal dokumen, atau membuktikan kepenulisan.',
144
+ points: ['Tidak ada atribusi sumber yang unik', 'Tidak ada identifikasi penulis', 'Tidak ada kesimpulan penuaan secara default', 'Bukan pengganti protokol yang divalidasi'],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'table',
150
+ headers: ['Pertanyaan pengguna', 'Konsep TLC yang terlibat', 'Jawaban hati-hati'],
151
+ rows: [
152
+ ['Bagaimana cara menghitung Rf?', 'Jarak pewarna dibagi jarak batas pelarut.', 'Ukur keduanya dari garis asal, lalu bagi. Hasilnya tidak memiliki satuan.'],
153
+ ['Mengapa tinta terpisah menjadi warna-warna?', 'Pewarna yang berbeda memiliki afinitas yang berbeda untuk fase diam dan fase gerak.', 'Satu goresan tulisan dapat berisi beberapa pewarna yang bermigrasi dengan kecepatan berbeda.'],
154
+ ['Dapatkah dua pena memiliki pola TLC yang sama?', 'Ya, formulasi serupa dapat menghasilkan pola yang mirip.', 'Kemiripan mendukung konsistensi, bukan individualisasi ke satu pena.'],
155
+ ['Mengapa Rf saya berubah?', 'Pelarut, lempeng, kelembapan, kejenuhan, suhu, dan ukuran bintik mempengaruhi migrasi.', 'Nilai Rf hanya dapat dibandingkan jika kondisi dikontrol dan didokumentasikan.'],
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Bagaimana Simulator Memodelkan Pemisahan',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Model memperlakukan pergerakan batas pelarut sebagai proses kenaikan kapiler yang melambat seiring waktu, sementara setiap pewarna menerima nilai Rf berdasarkan dua sifat yang disederhanakan: afinitasnya terhadap pelarut yang bergerak dan kecocokan polaritasnya dengan fase gerak yang dipilih. Ini sengaja bersifat edukatif daripada kimia tingkat instrumen, tetapi tetap mempertahankan hubungan inti yang perlu dipelajari pengguna: pelarut bergerak terlebih dahulu, pewarna membagi di antara fase-fase, dan Rf dihitung dari jarak perjalanan yang diukur.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Kromatografi lapis tipis adalah teknik analitis yang diterima secara luas di laboratorium forensik karena kesederhanaan, kecepatan, dan efektivitas biayanya. Dalam konteks pemeriksaan dokumen, ini terutama digunakan untuk membandingkan komposisi pewarna dari berbagai sampel tinta. Ilmuwan forensik mengekstrak sampel kecil tinta dari dokumen yang dipertanyakan menggunakan neşter atau jarum berlubang, melarutkannya dalam pelarut yang sesuai seperti piridin atau metanol, and meneteskannya ke lempeng TLC bersama dengan standar tinta referensi.',
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'Setelah lempeng dikembangkan dalam ruang tertutup, komponen individu dari tinta memisah berdasarkan pembagian diferensial mereka antara fase diam silika gel dan fase gerak pelarut. Kromatogram yang dihasilkan memberikan sidik jari visual dari tinta, menampilkan pita warna yang berbeda pada ketinggian tertentu. Pemeriksa dokumen kemudian menghitung faktor retensi untuk setiap pita pewarna yang terlihat, membantu menentukan apakah tinta yang dipertanyakan secara kimiawi konsisten dengan alat tulis tersangka atau jika cocok dengan merek dan formula yang dikenal dalam basis data referensi tinta.',
174
+ },
175
+ {
176
+ type: 'glossary',
177
+ items: [
178
+ { term: 'Stationary phase', definition: 'Lapisan pada lempeng TLC, biasanya silika gel, yang berinteraksi dengan senyawa dan memperlambat pergerakannya.' },
179
+ { term: 'Mobile phase', definition: 'Sistem pelarut yang naik melalui lempeng dan membawa komponen pewarna bersamanya.' },
180
+ { term: 'Origin line', definition: 'Garis pensil tempat sampel tinta diterapkan sebelum pengembangan.' },
181
+ { term: 'Solvent front', definition: 'Titik tertinggi yang dicapai oleh fase gerak sebelum lempeng dikeluarkan.' },
182
+ { term: 'Rf value', definition: 'Faktor retensi: jarak perjalanan senyawa dibagi jarak perjalanan batas pelarut.' },
183
+ ],
184
+ },
185
+ {
186
+ type: 'tip',
187
+ title: 'Tip interpretasi praktis',
188
+ html: 'Dalam pekerjaan dokumen forensik, ketidakcocokan dapat sangat berguna karena dapat mengecualikan formulasi pena kandidat. Pola TLC yang cocok lebih lemah: ini menunjukkan sampel konsisten secara kimiawi di bawah kondisi tersebut, bukan berarti sampel tersebut pasti berasal dari pena yang sama.',
189
+ },
190
+ {
191
+ type: 'proscons',
192
+ title: 'Kekuatan dan batasan perbandingan tinta TLC',
193
+ items: [
194
+ { pro: 'Cepat, murah, dan intuitif secara visual untuk memisahkan pewarna tinta.', con: 'Biasanya merusak karena sampel kecil diambil dari dokumen.' },
195
+ { pro: 'Nilai Rf menciptakan cara terstruktur untuk membandingkan sampel yang dicurigai dan diketahui.', con: 'Nilai Rf bergeser ketika pelarut, lempeng, kelembapan, dan kondisi pengembangan berubah.' },
196
+ { pro: 'Berguna sebagai metode skrining sebelum analisis yang lebih canggih.', con: 'Tidak dapat membuat kesimpulan sumber pena yang unik tanpa bukti yang lebih luas.' },
197
+ ],
198
+ },
199
+ {
200
+ type: 'diagnostic',
201
+ variant: 'warning',
202
+ icon: 'mdi:scale-balance',
203
+ badge: 'Peringatan forensik',
204
+ title: 'Jangan melebih lebihkan kromatografi tinta',
205
+ html: 'Simulasi browser tidak dapat memeriksa kertas, usia tinta, kimia ekstraksi, kualitas lempeng, kontaminasi, atau konfirmasi instrumental. Gunakan untuk mempelajari logika pengukuran dan batasan interpretasi, lalu andalkan metode pemeriksaan dokumen forensik yang divalidasi untuk bukti nyata.',
206
+ },
207
+ ],
208
+ faq,
209
+ bibliography,
210
+ howTo,
211
+ schemas: [
212
+ {
213
+ '@context': 'https://schema.org',
214
+ '@type': 'SoftwareApplication',
215
+ name: title,
216
+ description,
217
+ applicationCategory: 'ForensicApplication',
218
+ operatingSystem: 'Any',
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'FAQPage',
223
+ mainEntity: faq.map((item) => ({
224
+ '@type': 'Question',
225
+ name: item.question,
226
+ acceptedAnswer: {
227
+ '@type': 'Answer',
228
+ text: item.answer,
229
+ },
230
+ })),
231
+ },
232
+ {
233
+ '@context': 'https://schema.org',
234
+ '@type': 'HowTo',
235
+ name: title,
236
+ step: howTo.map((step) => ({
237
+ '@type': 'HowToStep',
238
+ name: step.name,
239
+ text: step.text,
240
+ })),
241
+ },
242
+ ],
243
+ };
@@ -0,0 +1,243 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'simulatore-cromatografia-strato-sottile-tlc-inchiostro';
5
+ const title = 'Simulatore di Cromatografia su Strato Sottile (TLC) di Inchiostri Forensi';
6
+ const description = 'Simula la cromatografia su strato sottile di inchiostri per scrittura sospetti, visualizza lo sviluppo del fronte del solvente, separa le bande di pigmento e calcola i valori di Rf esatti per ciascun pigmento.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Scegliere l\'inchiostro sospetto o la penna di confronto',
11
+ text: 'Seleziona l\'inchiostro della lettera di riscatto o il profilo di una penna sospetta. Ogni inchiostro contiene un gruppo differente di coloranti con polarità e affinità specifiche per la fase stazionaria.',
12
+ },
13
+ {
14
+ name: 'Selezionare la fase mobile',
15
+ text: 'Modifica il sistema di solventi per osservare come la polarità del solvente altera lo sviluppo capillare e la migrazione relativa di ciascuna banda di colorante.',
16
+ },
17
+ {
18
+ name: 'Sviluppare la piastra TLC',
19
+ text: 'Muovi il cursore del tempo di sviluppo e osserva il fronte del solvente salire lungo la piastra mentre le bande separate compaiono sopra la linea di origine.',
20
+ },
21
+ {
22
+ name: 'Leggere la tabella dei valori Rf',
23
+ text: 'Confronta la distanza di ciascun pigmento con la distanza del fronte del solvente. Il simulatore calcola il valore Rf dividendo la distanza del pigmento per la distanza del fronte del solvente.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ key: 'faq-1',
30
+ question: 'Cosa significa Rf nella cromatografia su strato sottile?',
31
+ answer: 'L\'Rf è il fattore di ritenzione (retention factor): la distanza percorsa dal composto divisa per la distanza percorsa dal fronte del solvente dalla stessa linea di origine. È un valore adimensionale e varia normalmente da 0 a 1.',
32
+ },
33
+ {
34
+ key: 'faq-2',
35
+ question: 'La TLC può provare che due campioni di inchiostro provengono dalla stessa penna?',
36
+ answer: 'No. La TLC può mostrare se i profili dei coloranti sono coerenti o meno, ma l\'attribuzione della fonte richiede metodi di confronto validati, controlli, documentazione e l\'interpretazione di un esperto.',
37
+ },
38
+ {
39
+ key: 'faq-3',
40
+ question: 'Perché il cambio di solvente altera il profilo delle bande?',
41
+ answer: 'I coloranti si ripartiscono diversamente tra la fase stazionaria e la fase mobile. Un solvente con un\'affinità di polarità migliore può trascinare un colorante più lontano, aumentandone il valore Rf.',
42
+ },
43
+ {
44
+ key: 'faq-4',
45
+ question: 'Perché la linea di origine è importante?',
46
+ answer: 'Sia la distanza del fronte del solvente che quella del pigmento devono essere misurate a partire della linea di origine. Misurare dal bordo inferiore della piastra produce valori Rf errati.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ chamberAria: 'Camera di cromatografia su strato sottile con piastra di sviluppo',
56
+ rulerAria: 'Righello millimetrato virtuale per misurare il fronte del solvente e le bande di pigmento',
57
+ rulerMarks: '80,60,40,20,0',
58
+ units: 'Sistema di unità',
59
+ metric: 'Metrico',
60
+ imperial: 'Imperiale',
61
+ unitMillimeter: 'mm',
62
+ unitInch: 'in',
63
+ unitMinute: 'min',
64
+ inkSample: 'Campione di inchiostro',
65
+ ransomNote: 'Inchiostro sospetto della lettera di riscatto',
66
+ bluePen: 'Penna a sfera blu sequestrata',
67
+ blackPen: 'Penna a sfera nera sequestrata',
68
+ gelPen: 'Penna gel sequestrata',
69
+ solventSystem: 'Fase mobile',
70
+ ethanolWater: 'Etanolo / acqua',
71
+ butanolAcetic: 'Butanolo / acido acetico',
72
+ isopropanolAmmonia: 'Isopropanolo / ammoniaca',
73
+ developmentTime: 'Tempo di sviluppo',
74
+ frontDistance: 'Percorso del solvente',
75
+ matchScore: 'Somiglianza del profilo',
76
+ solventFront: 'Fronte del solvente',
77
+ originLine: 'Origine',
78
+ pigment: 'Banda di pigmento',
79
+ pigmentCyanDye: 'colorante ciano',
80
+ pigmentVioletDye: 'colorante viola',
81
+ pigmentGrayCarrier: 'veicolo grigio',
82
+ pigmentNavyDye: 'colorante blu marino',
83
+ pigmentYellowDye: 'colorante giallo',
84
+ pigmentRedDye: 'colorante rosso',
85
+ pigmentBlueDye: 'colorante blu',
86
+ pigmentDarkBinder: 'legante scuro',
87
+ pigmentTealDye: 'colorante verde acqua',
88
+ pigmentMagentaDye: 'colorante magenta',
89
+ pigmentGelBinder: 'legante gel',
90
+ distance: 'Distanza',
91
+ rfValue: 'Valore Rf',
92
+ disclaimer: 'Solo per simulazione didattica. Il confronto forense degli inchiostri richiede documenti originali, metodi di laboratorio validati, standard di riferimento ed esaminatori di documenti qualificati.',
93
+ },
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: 'Cromatografia su strato sottile per il confronto forense degli inchiostri',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'diagnostic',
102
+ variant: 'info',
103
+ icon: 'mdi:test-tube',
104
+ badge: 'Simulatore didattico',
105
+ title: 'Cosa aiuta a comprendere questo simulatore TLC per inchiostri',
106
+ html: 'Questo strumento spiega come la <strong>cromatografia su strato sottile di inchiostri da scrittura</strong> possa separare un tratto di inchiostro visibile in molteplici bande di colorante. È progettato per studenti di scienze forensi, apprendisti esaminatori di documenti e chiunque voglia capire come vengono calcolati i valori di Rf a partire da una piastra TLC sviluppata.',
107
+ },
108
+ {
109
+ type: 'stats',
110
+ columns: 4,
111
+ items: [
112
+ { value: 'Rf = d banda / d solvente', label: 'formula del fattore di ritenzione', icon: 'mdi:division' },
113
+ { value: '4', label: 'profili di inchiostro confrontati', icon: 'mdi:pen' },
114
+ { value: '3', label: 'fasi mobili simulate', icon: 'mdi:flask-outline' },
115
+ { value: '2', label: 'letture metriche e imperiali', icon: 'mdi:swap-horizontal' },
116
+ ],
117
+ },
118
+ {
119
+ type: 'summary',
120
+ title: 'Checklist per misurazioni TLC corrette',
121
+ items: [
122
+ 'Segnare la linea di origine sopra il livello del solvente prima dell\'inizio dello sviluppo.',
123
+ 'Rimuovere la piastra prima che il solvente raggiunga il bordo superiore.',
124
+ 'Segnare il fronte del solvente immediatamente poiché può evaporare o diventare difficile da vedere.',
125
+ 'Misurare il percorso del pigmento e del solvente a partire dalla stessa linea di origine.',
126
+ 'Riportare i valori di Rf insieme a sistema di solventi, tipo di piastra, condizioni di sviluppo e controlli.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'comparative',
131
+ columns: 2,
132
+ items: [
133
+ {
134
+ title: 'Cosa la TLC può supportare',
135
+ icon: 'mdi:check-circle-outline',
136
+ highlight: true,
137
+ description: 'La TLC può mostrare se gli inchiostri sospetti e noti hanno un comportamento di separazione dei coloranti simile nelle stesse condizioni.',
138
+ points: ['Confronto di screening', 'Visualizzazione del profilo dei coloranti', 'Documentazione dell\'Rf', 'Selezione dei campioni per test di conferma'],
139
+ },
140
+ {
141
+ title: 'Cosa la TLC non può provare da sola',
142
+ icon: 'mdi:alert-circle-outline',
143
+ description: 'La TLC da sola non può identificare in modo univoco una penna, datare un documento o provare la paternità della scrittura.',
144
+ points: ['Nessuna attribuzione esclusiva della fonte', 'Nessuna identificazione dello scrittore', 'Nessuna conclusione sull\'invecchiamento di default', 'Nessuna sostituzione dei protocolli validati'],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'table',
150
+ headers: ['Domanda comune', 'Concetto TLC coinvolto', 'Risposta dettagliata'],
151
+ rows: [
152
+ ['Come si calcola l\'Rf?', 'Distanza del colorante divisa per la distanza del fronte del solvente.', 'Misurare entrambe le distanze dalla linea di origine, quindi dividere. Il risultato non ha unità di misura.'],
153
+ ['Perché gli inchiostri si dividono in colori?', 'Coloranti diversi hanno affinità diverse per le fasi stazionaria e mobile.', 'Un singolo tratto scritto può contenere diversi coloranti che migrano a velocità differenti.'] ,
154
+ ['Due penne possono avere lo stesso profilo TLC?', 'Sì, formulazioni simili possono produrre profili molto vicini.', 'La somiglianza supporta la coerenza, non l\'individualizzazione a una sola penna.'],
155
+ ['Perché il mio Rf è cambiato?', 'Solvente, piastra, umidità, saturazione, temperatura e dimensioni del punto influenzano la migrazione.', 'I valori di Rf sono confrontabili solo quando le condizioni sono controllate e documentate.'],
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Come il simulatore modella la separazione',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Il modello tratta il movimento del fronte del solvente como un processo di risalita capillare che rallenta nel tempo, mentre a ogni colorante viene assegnato un valore di Rf basato su due proprietà semplificate: la sua affinità per il solvente in movimento e la sua compatibilità di polarità con la fase mobile selezionata. Questo ha uno scopo intenzionalmente didattico piuttosto che di chimica strumentale avanzata, ma preserva la relazione fondamentale che gli utenti devono apprendere: il solvente si muove per primo, i coloranti si ripartiscono tra le fasi e l\'Rf viene calcolato dalle distanze di percorso misurate.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'La cromatografia su strato sottile è una técnica analitica ampiamente accettata nei laboratori forensi per la sua semplicità, rapidità ed economicità. Nel contesto dell\'esame dei documenti, viene utilizzata principalmente per confrontare la composizione dei coloranti di diversi campioni di inchiostro. Gli scienziati forensi estraggono un piccolo frammento di inchiostro dal documento in esame utilizzando un bisturi o un ago cavo, lo dissolvono in un solvente adatto come la piridina o il metanolo, e lo depositano sulla piastra TLC insieme a inchiostri standard di riferimento.',
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'Una piastra sviluppata in una camera chiusa consente ai singoli componenti dell\'inchiostro di separarsi in base alla loro ripartizione differenziale tra la fase stazionaria di gel di silice e la fase mobile del solvente. Il cromatogramma risultante fornisce un\'impronta digitale visiva dell\'inchiostro, mostrando bande colorate distinte ad altezze specifiche. Gli esaminatori di documenti calcolano quindi il fattore di ritenzione per ogni banda di colorante visibile, aiutando a determinar si l\'inchiostro in questione è chimicamente coerente con uno strumento di scrittura sospetto o se corrisponde a un marchio e una formula noti in un database di riferimento.',
174
+ },
175
+ {
176
+ type: 'glossary',
177
+ items: [
178
+ { term: 'Fase stazionaria', definition: 'Il rivestimento sulla piastra TLC, comunemente gel di silice, che interagisce con i composti e ne rallenta il movimento.' },
179
+ { term: 'Fase mobile', definition: 'Il sistema di solventi che risale lungo la piastra trascinando con sé i componenti del colorante.' },
180
+ { term: 'Linea di origine', definition: 'La linea a matita dove viene applicato il campione di inchiostro prima dello sviluppo.' },
181
+ { term: 'Fronte del solvente', definition: 'Il punto più alto raggiunto dalla fase mobile prima che la piastra venga rimossa.' },
182
+ { term: 'Valore Rf', definition: 'Il fattore di ritenzione: distanza di percorso del composto divisa per la distanza di percorso del fronte del solvente.' },
183
+ ],
184
+ },
185
+ {
186
+ type: 'tip',
187
+ title: 'Consiglio pratico di interpretazione',
188
+ html: 'Nell\'esame forense dei documenti, una discrepanza può essere particolarmente utile perché può escludere una formulazione di penna candidata. Un profilo TLC coincidente è un indizio più debole: indica che i campioni sono chimicamente coerenti in quelle condizioni, non che provengano necessariamente dalla stessa penna.',
189
+ },
190
+ {
191
+ type: 'proscons',
192
+ title: 'Punti di forza e limiti del confronto degli inchiostri tramite TLC',
193
+ items: [
194
+ { pro: 'Rapido, economico e visivamente intuitivo per separare i coloranti degli inchiostri.', con: 'Solitamente distruttivo perché un piccolo campione viene prelevato dal documento.' },
195
+ { pro: 'I valori di Rf creano un modo strutturato per confrontare i campioni sospetti e noti.', con: 'I valori di Rf variano quando cambiano solvente, piastra, umidità e condizioni di sviluppo.' },
196
+ { pro: 'Utile come metodo di screening prima di analisi più avanzate.', con: 'Non può portare a una conclusione univoca sulla penna di origine senza prove più ampie.' },
197
+ ],
198
+ },
199
+ {
200
+ type: 'diagnostic',
201
+ variant: 'warning',
202
+ icon: 'mdi:scale-balance',
203
+ badge: 'Cautela forense',
204
+ title: 'Non sopravvalutare la cromatografia degli inchiostri',
205
+ html: 'Una simulazione da browser non può esaminare la carta, l\'età dell\'inchiostro, la chimica di estrazione, la qualità della piastra, la contaminazione o la conferma strumentale. Utilizzala per apprendere la logica di misurazione e i limiti di interpretazione, quindi affidati a metodi di esame forense dei documenti validati per le prove reali.',
206
+ },
207
+ ],
208
+ faq,
209
+ bibliography,
210
+ howTo,
211
+ schemas: [
212
+ {
213
+ '@context': 'https://schema.org',
214
+ '@type': 'SoftwareApplication',
215
+ name: title,
216
+ description,
217
+ applicationCategory: 'ForensicApplication',
218
+ operatingSystem: 'Any',
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'FAQPage',
223
+ mainEntity: faq.map((item) => ({
224
+ '@type': 'Question',
225
+ name: item.question,
226
+ acceptedAnswer: {
227
+ '@type': 'Answer',
228
+ text: item.answer,
229
+ },
230
+ })),
231
+ },
232
+ {
233
+ '@context': 'https://schema.org',
234
+ '@type': 'HowTo',
235
+ name: title,
236
+ step: howTo.map((step) => ({
237
+ '@type': 'HowToStep',
238
+ name: step.name,
239
+ text: step.text,
240
+ })),
241
+ },
242
+ ],
243
+ };