metanorma-document 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (682) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +21 -0
  3. data/.github/workflows/release.yml +25 -0
  4. data/.github/workflows/roundtrip-samples.yml +132 -0
  5. data/.gitignore +19 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +22 -0
  8. data/.rubocop_todo.yml +166 -0
  9. data/CHANGELOG.md +21 -0
  10. data/Gemfile +26 -0
  11. data/LICENSE.txt +25 -0
  12. data/README.adoc +176 -0
  13. data/Rakefile +14 -0
  14. data/bin/console +15 -0
  15. data/bin/setup +8 -0
  16. data/data/javascripts/components/mn-code-copy.js +36 -0
  17. data/data/javascripts/components/mn-glossary.js +103 -0
  18. data/data/javascripts/components/mn-index-panel.js +33 -0
  19. data/data/javascripts/components/mn-lightbox.js +18 -0
  20. data/data/javascripts/components/mn-search.js +212 -0
  21. data/data/javascripts/components/mn-shortcuts.js +83 -0
  22. data/data/javascripts/components/mn-stem-dropdown.js +42 -0
  23. data/data/javascripts/components/mn-toc.js +182 -0
  24. data/data/javascripts/core/mn-navigation.js +84 -0
  25. data/data/javascripts/core/mn-reader.js +38 -0
  26. data/data/javascripts/core/mn-reveal.js +36 -0
  27. data/data/javascripts/core/mn-scroll.js +87 -0
  28. data/data/javascripts/core/mn-theme.js +140 -0
  29. data/data/javascripts/search.js +203 -0
  30. data/data/logos/bipm-logo.svg +1 -0
  31. data/data/logos/iec-logo.svg +1 -0
  32. data/data/logos/iho-logo.svg +555 -0
  33. data/data/logos/iso-logo.svg +1 -0
  34. data/data/logos/itu-logo.svg +1 -0
  35. data/data/logos/metanorma-logo.svg +41 -0
  36. data/data/logos/ogc-logo.svg +1 -0
  37. data/data/logos/pdfa-logo.svg +95 -0
  38. data/data/stylesheets/base/_dark.css +193 -0
  39. data/data/stylesheets/base/_layout.css +112 -0
  40. data/data/stylesheets/base/_print.css +46 -0
  41. data/data/stylesheets/base/_reset.css +55 -0
  42. data/data/stylesheets/base/_transitions.css +77 -0
  43. data/data/stylesheets/base/_typography.css +89 -0
  44. data/data/stylesheets/components/admonition.css +19 -0
  45. data/data/stylesheets/components/bibliography.css +18 -0
  46. data/data/stylesheets/components/cover.css +205 -0
  47. data/data/stylesheets/components/example.css +20 -0
  48. data/data/stylesheets/components/figure.css +30 -0
  49. data/data/stylesheets/components/footer.css +24 -0
  50. data/data/stylesheets/components/footnote.css +41 -0
  51. data/data/stylesheets/components/formula.css +25 -0
  52. data/data/stylesheets/components/glossary.css +61 -0
  53. data/data/stylesheets/components/header.css +149 -0
  54. data/data/stylesheets/components/index.css +118 -0
  55. data/data/stylesheets/components/inline.css +88 -0
  56. data/data/stylesheets/components/note.css +24 -0
  57. data/data/stylesheets/components/progress.css +40 -0
  58. data/data/stylesheets/components/search.css +45 -0
  59. data/data/stylesheets/components/section.css +26 -0
  60. data/data/stylesheets/components/shortcuts.css +71 -0
  61. data/data/stylesheets/components/sourcecode.css +30 -0
  62. data/data/stylesheets/components/table.css +57 -0
  63. data/data/stylesheets/components/term.css +45 -0
  64. data/data/stylesheets/components/toc.css +162 -0
  65. data/lib/data/dist/iso_document/frontend/assets/index-mwzbzmnK.js +22 -0
  66. data/lib/data/dist/iso_document/frontend/assets/index-pGvKTNid.css +1 -0
  67. data/lib/data/dist/iso_document/frontend/assets/iso-red.svg +53 -0
  68. data/lib/data/dist/iso_document/frontend/index.html +13 -0
  69. data/lib/metanorma/basic_document/ancillary_blocks/example_block.rb +58 -0
  70. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +64 -0
  71. data/lib/metanorma/basic_document/ancillary_blocks/formula_block.rb +38 -0
  72. data/lib/metanorma/basic_document/ancillary_blocks/literal_block.rb +26 -0
  73. data/lib/metanorma/basic_document/ancillary_blocks/sourcecode_block.rb +57 -0
  74. data/lib/metanorma/basic_document/ancillary_blocks/subfigure.rb +18 -0
  75. data/lib/metanorma/basic_document/ancillary_blocks.rb +15 -0
  76. data/lib/metanorma/basic_document/bib_data/bib_data.rb +18 -0
  77. data/lib/metanorma/basic_document/bib_data/bib_data_extension_type.rb +17 -0
  78. data/lib/metanorma/basic_document/bib_data/bibliographic_item.rb +93 -0
  79. data/lib/metanorma/basic_document/bib_data/document_type.rb +21 -0
  80. data/lib/metanorma/basic_document/bib_data.rb +14 -0
  81. data/lib/metanorma/basic_document/blocks/basic_block.rb +13 -0
  82. data/lib/metanorma/basic_document/blocks/basic_block_no_notes.rb +21 -0
  83. data/lib/metanorma/basic_document/blocks/note_block.rb +13 -0
  84. data/lib/metanorma/basic_document/blocks.rb +32 -0
  85. data/lib/metanorma/basic_document/change/attribute_change_action.rb +19 -0
  86. data/lib/metanorma/basic_document/change/attribute_modify.rb +19 -0
  87. data/lib/metanorma/basic_document/change/change.rb +25 -0
  88. data/lib/metanorma/basic_document/change/change_set.rb +20 -0
  89. data/lib/metanorma/basic_document/change/content_action.rb +21 -0
  90. data/lib/metanorma/basic_document/change/content_change.rb +17 -0
  91. data/lib/metanorma/basic_document/change/content_change_action.rb +28 -0
  92. data/lib/metanorma/basic_document/change/content_modify.rb +18 -0
  93. data/lib/metanorma/basic_document/change/node_change.rb +16 -0
  94. data/lib/metanorma/basic_document/change/node_delete.rb +17 -0
  95. data/lib/metanorma/basic_document/change/node_insert.rb +18 -0
  96. data/lib/metanorma/basic_document/change/node_move.rb +20 -0
  97. data/lib/metanorma/basic_document/change/unique_identifier.rb +17 -0
  98. data/lib/metanorma/basic_document/change.rb +23 -0
  99. data/lib/metanorma/basic_document/contrib_metadata/contribution_element_metadata.rb +22 -0
  100. data/lib/metanorma/basic_document/contrib_metadata/hash.rb +19 -0
  101. data/lib/metanorma/basic_document/contrib_metadata/integrity_value.rb +15 -0
  102. data/lib/metanorma/basic_document/contrib_metadata/iso10118_oid.rb +17 -0
  103. data/lib/metanorma/basic_document/contrib_metadata/iso14888_oid.rb +17 -0
  104. data/lib/metanorma/basic_document/contrib_metadata/signature.rb +21 -0
  105. data/lib/metanorma/basic_document/contrib_metadata.rb +16 -0
  106. data/lib/metanorma/basic_document/data_types/formatted_string.rb +17 -0
  107. data/lib/metanorma/basic_document/data_types/iso15924_code.rb +17 -0
  108. data/lib/metanorma/basic_document/data_types/iso3166_code.rb +17 -0
  109. data/lib/metanorma/basic_document/data_types/iso639_code.rb +17 -0
  110. data/lib/metanorma/basic_document/data_types/iso8601_date_time.rb +17 -0
  111. data/lib/metanorma/basic_document/data_types/localized_string.rb +23 -0
  112. data/lib/metanorma/basic_document/data_types/string_format.rb +22 -0
  113. data/lib/metanorma/basic_document/data_types/uri.rb +17 -0
  114. data/lib/metanorma/basic_document/data_types.rb +16 -0
  115. data/lib/metanorma/basic_document/empty_elements/basic_element.rb +18 -0
  116. data/lib/metanorma/basic_document/empty_elements/horizontal_rule_element.rb +14 -0
  117. data/lib/metanorma/basic_document/empty_elements/index_element.rb +24 -0
  118. data/lib/metanorma/basic_document/empty_elements/line_break_element.rb +14 -0
  119. data/lib/metanorma/basic_document/empty_elements/page_break_element.rb +15 -0
  120. data/lib/metanorma/basic_document/empty_elements.rb +16 -0
  121. data/lib/metanorma/basic_document/id_elements/alt_source.rb +21 -0
  122. data/lib/metanorma/basic_document/id_elements/audio.rb +18 -0
  123. data/lib/metanorma/basic_document/id_elements/bookmark.rb +17 -0
  124. data/lib/metanorma/basic_document/id_elements/id_element.rb +19 -0
  125. data/lib/metanorma/basic_document/id_elements/image.rb +19 -0
  126. data/lib/metanorma/basic_document/id_elements/media.rb +39 -0
  127. data/lib/metanorma/basic_document/id_elements/media_type.rb +17 -0
  128. data/lib/metanorma/basic_document/id_elements/video.rb +22 -0
  129. data/lib/metanorma/basic_document/id_elements.rb +16 -0
  130. data/lib/metanorma/basic_document/lists/definition.rb +21 -0
  131. data/lib/metanorma/basic_document/lists/definition_list.rb +18 -0
  132. data/lib/metanorma/basic_document/lists/list.rb +17 -0
  133. data/lib/metanorma/basic_document/lists/ordered_list.rb +19 -0
  134. data/lib/metanorma/basic_document/lists/ordered_list_type.rb +21 -0
  135. data/lib/metanorma/basic_document/lists/unordered_list.rb +14 -0
  136. data/lib/metanorma/basic_document/lists.rb +14 -0
  137. data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +36 -0
  138. data/lib/metanorma/basic_document/multi_paragraph/admonition_type.rb +21 -0
  139. data/lib/metanorma/basic_document/multi_paragraph/paragraphs_block.rb +19 -0
  140. data/lib/metanorma/basic_document/multi_paragraph/quote_block.rb +26 -0
  141. data/lib/metanorma/basic_document/multi_paragraph/review_block.rb +32 -0
  142. data/lib/metanorma/basic_document/multi_paragraph.rb +16 -0
  143. data/lib/metanorma/basic_document/paragraphs/paragraph_block.rb +26 -0
  144. data/lib/metanorma/basic_document/paragraphs/paragraph_with_footnote.rb +21 -0
  145. data/lib/metanorma/basic_document/paragraphs/text_alignment.rb +21 -0
  146. data/lib/metanorma/basic_document/paragraphs.rb +12 -0
  147. data/lib/metanorma/basic_document/reference_elements/callout.rb +21 -0
  148. data/lib/metanorma/basic_document/reference_elements/citation.rb +25 -0
  149. data/lib/metanorma/basic_document/reference_elements/footnote.rb +17 -0
  150. data/lib/metanorma/basic_document/reference_elements/index_xref_element.rb +25 -0
  151. data/lib/metanorma/basic_document/reference_elements/reference_element.rb +22 -0
  152. data/lib/metanorma/basic_document/reference_elements/reference_format.rb +21 -0
  153. data/lib/metanorma/basic_document/reference_elements/reference_to_citation_element.rb +20 -0
  154. data/lib/metanorma/basic_document/reference_elements/reference_to_id_element.rb +17 -0
  155. data/lib/metanorma/basic_document/reference_elements/reference_to_id_with_paragraph_element.rb +19 -0
  156. data/lib/metanorma/basic_document/reference_elements/reference_to_link_element.rb +17 -0
  157. data/lib/metanorma/basic_document/reference_elements.rb +25 -0
  158. data/lib/metanorma/basic_document/sections/basic_section.rb +38 -0
  159. data/lib/metanorma/basic_document/sections/content_section.rb +18 -0
  160. data/lib/metanorma/basic_document/sections/hierarchical_section.rb +18 -0
  161. data/lib/metanorma/basic_document/sections/references_section.rb +19 -0
  162. data/lib/metanorma/basic_document/sections.rb +14 -0
  163. data/lib/metanorma/basic_document/tables/paragraph_table_cell.rb +18 -0
  164. data/lib/metanorma/basic_document/tables/table_block.rb +37 -0
  165. data/lib/metanorma/basic_document/tables/table_cell.rb +23 -0
  166. data/lib/metanorma/basic_document/tables/text_alignment.rb +21 -0
  167. data/lib/metanorma/basic_document/tables/text_table_cell.rb +18 -0
  168. data/lib/metanorma/basic_document/tables/text_table_row.rb +21 -0
  169. data/lib/metanorma/basic_document/tables/vertical_alignment.rb +21 -0
  170. data/lib/metanorma/basic_document/tables.rb +16 -0
  171. data/lib/metanorma/basic_document/text_elements/asciiml.rb +17 -0
  172. data/lib/metanorma/basic_document/text_elements/emphasis_element.rb +14 -0
  173. data/lib/metanorma/basic_document/text_elements/keyword_element.rb +14 -0
  174. data/lib/metanorma/basic_document/text_elements/latex.rb +17 -0
  175. data/lib/metanorma/basic_document/text_elements/mathml.rb +17 -0
  176. data/lib/metanorma/basic_document/text_elements/monospace_element.rb +14 -0
  177. data/lib/metanorma/basic_document/text_elements/ruby_element.rb +21 -0
  178. data/lib/metanorma/basic_document/text_elements/small_caps_element.rb +14 -0
  179. data/lib/metanorma/basic_document/text_elements/stem_element.rb +19 -0
  180. data/lib/metanorma/basic_document/text_elements/stem_type.rb +17 -0
  181. data/lib/metanorma/basic_document/text_elements/stem_value.rb +17 -0
  182. data/lib/metanorma/basic_document/text_elements/strike_element.rb +14 -0
  183. data/lib/metanorma/basic_document/text_elements/strong_element.rb +14 -0
  184. data/lib/metanorma/basic_document/text_elements/subscript_element.rb +14 -0
  185. data/lib/metanorma/basic_document/text_elements/superscript_element.rb +14 -0
  186. data/lib/metanorma/basic_document/text_elements/text_element.rb +18 -0
  187. data/lib/metanorma/basic_document/text_elements/text_element_type.rb +20 -0
  188. data/lib/metanorma/basic_document/text_elements/underline_element.rb +13 -0
  189. data/lib/metanorma/basic_document/text_elements.rb +33 -0
  190. data/lib/metanorma/basic_document.rb +23 -0
  191. data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +20 -0
  192. data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +31 -0
  193. data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +21 -0
  194. data/lib/metanorma/bipm_document/metadata.rb +15 -0
  195. data/lib/metanorma/bipm_document/root.rb +65 -0
  196. data/lib/metanorma/bipm_document.rb +10 -0
  197. data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +12 -0
  198. data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +17 -0
  199. data/lib/metanorma/cc_document/metadata.rb +11 -0
  200. data/lib/metanorma/cc_document/root.rb +65 -0
  201. data/lib/metanorma/cc_document.rb +10 -0
  202. data/lib/metanorma/collection/directive.rb +18 -0
  203. data/lib/metanorma/collection/doc_container.rb +18 -0
  204. data/lib/metanorma/collection/entry.rb +33 -0
  205. data/lib/metanorma/collection/root.rb +31 -0
  206. data/lib/metanorma/collection.rb +12 -0
  207. data/lib/metanorma/document/components/ancillary_blocks/example_block.rb +124 -0
  208. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +113 -0
  209. data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +85 -0
  210. data/lib/metanorma/document/components/ancillary_blocks/key_element.rb +26 -0
  211. data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +32 -0
  212. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +123 -0
  213. data/lib/metanorma/document/components/ancillary_blocks/subfigure.rb +41 -0
  214. data/lib/metanorma/document/components/ancillary_blocks.rb +18 -0
  215. data/lib/metanorma/document/components/bib_data/bib_data.rb +67 -0
  216. data/lib/metanorma/document/components/bib_data/bib_data_extension_type.rb +19 -0
  217. data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +107 -0
  218. data/lib/metanorma/document/components/bib_data/document_type.rb +23 -0
  219. data/lib/metanorma/document/components/bib_data.rb +15 -0
  220. data/lib/metanorma/document/components/blocks/basic_block.rb +19 -0
  221. data/lib/metanorma/document/components/blocks/basic_block_no_notes.rb +22 -0
  222. data/lib/metanorma/document/components/blocks/note_block.rb +79 -0
  223. data/lib/metanorma/document/components/blocks.rb +13 -0
  224. data/lib/metanorma/document/components/change/attribute_change_action.rb +21 -0
  225. data/lib/metanorma/document/components/change/attribute_modify.rb +20 -0
  226. data/lib/metanorma/document/components/change/change.rb +27 -0
  227. data/lib/metanorma/document/components/change/change_set.rb +21 -0
  228. data/lib/metanorma/document/components/change/content_action.rb +23 -0
  229. data/lib/metanorma/document/components/change/content_change.rb +19 -0
  230. data/lib/metanorma/document/components/change/content_change_action.rb +30 -0
  231. data/lib/metanorma/document/components/change/content_modify.rb +19 -0
  232. data/lib/metanorma/document/components/change/node_change.rb +18 -0
  233. data/lib/metanorma/document/components/change/node_delete.rb +19 -0
  234. data/lib/metanorma/document/components/change/node_insert.rb +20 -0
  235. data/lib/metanorma/document/components/change/node_move.rb +22 -0
  236. data/lib/metanorma/document/components/change/unique_identifier.rb +19 -0
  237. data/lib/metanorma/document/components/change.rb +24 -0
  238. data/lib/metanorma/document/components/contrib_metadata/contribution_element_metadata.rb +23 -0
  239. data/lib/metanorma/document/components/contrib_metadata/hash.rb +21 -0
  240. data/lib/metanorma/document/components/contrib_metadata/integrity_value.rb +17 -0
  241. data/lib/metanorma/document/components/contrib_metadata/iso10118_oid.rb +19 -0
  242. data/lib/metanorma/document/components/contrib_metadata/iso14888_oid.rb +19 -0
  243. data/lib/metanorma/document/components/contrib_metadata/signature.rb +23 -0
  244. data/lib/metanorma/document/components/contrib_metadata.rb +17 -0
  245. data/lib/metanorma/document/components/data_types/formatted_string.rb +95 -0
  246. data/lib/metanorma/document/components/data_types/iso15924_code.rb +19 -0
  247. data/lib/metanorma/document/components/data_types/iso3166_code.rb +19 -0
  248. data/lib/metanorma/document/components/data_types/iso639_code.rb +19 -0
  249. data/lib/metanorma/document/components/data_types/iso8601_date_time.rb +19 -0
  250. data/lib/metanorma/document/components/data_types/localized_string.rb +29 -0
  251. data/lib/metanorma/document/components/data_types/string_format.rb +24 -0
  252. data/lib/metanorma/document/components/data_types/uri.rb +19 -0
  253. data/lib/metanorma/document/components/data_types.rb +18 -0
  254. data/lib/metanorma/document/components/empty_elements/basic_element.rb +20 -0
  255. data/lib/metanorma/document/components/empty_elements/horizontal_rule_element.rb +16 -0
  256. data/lib/metanorma/document/components/empty_elements/index_element.rb +26 -0
  257. data/lib/metanorma/document/components/empty_elements/line_break_element.rb +16 -0
  258. data/lib/metanorma/document/components/empty_elements/page_break_element.rb +20 -0
  259. data/lib/metanorma/document/components/empty_elements.rb +18 -0
  260. data/lib/metanorma/document/components/id_elements/alt_source.rb +23 -0
  261. data/lib/metanorma/document/components/id_elements/audio.rb +19 -0
  262. data/lib/metanorma/document/components/id_elements/bookmark.rb +24 -0
  263. data/lib/metanorma/document/components/id_elements/id_element.rb +21 -0
  264. data/lib/metanorma/document/components/id_elements/image.rb +23 -0
  265. data/lib/metanorma/document/components/id_elements/media.rb +41 -0
  266. data/lib/metanorma/document/components/id_elements/media_type.rb +19 -0
  267. data/lib/metanorma/document/components/id_elements/video.rb +23 -0
  268. data/lib/metanorma/document/components/id_elements.rb +18 -0
  269. data/lib/metanorma/document/components/inline/asciimath_element.rb +16 -0
  270. data/lib/metanorma/document/components/inline/attribution_element.rb +17 -0
  271. data/lib/metanorma/document/components/inline/bcp14_element.rb +16 -0
  272. data/lib/metanorma/document/components/inline/biblio_tag_element.rb +23 -0
  273. data/lib/metanorma/document/components/inline/br_element.rb +13 -0
  274. data/lib/metanorma/document/components/inline/comma_element.rb +13 -0
  275. data/lib/metanorma/document/components/inline/concept_element.rb +22 -0
  276. data/lib/metanorma/document/components/inline/display_text_element.rb +37 -0
  277. data/lib/metanorma/document/components/inline/em_raw_element.rb +23 -0
  278. data/lib/metanorma/document/components/inline/enum_comma_element.rb +13 -0
  279. data/lib/metanorma/document/components/inline/eref_element.rb +35 -0
  280. data/lib/metanorma/document/components/inline/fmt_admitted_element.rb +17 -0
  281. data/lib/metanorma/document/components/inline/fmt_annotation_body_element.rb +38 -0
  282. data/lib/metanorma/document/components/inline/fmt_annotation_end_element.rb +26 -0
  283. data/lib/metanorma/document/components/inline/fmt_annotation_start_element.rb +26 -0
  284. data/lib/metanorma/document/components/inline/fmt_concept_element.rb +23 -0
  285. data/lib/metanorma/document/components/inline/fmt_definition_element.rb +18 -0
  286. data/lib/metanorma/document/components/inline/fmt_fn_body_element.rb +22 -0
  287. data/lib/metanorma/document/components/inline/fmt_fn_label_element.rb +23 -0
  288. data/lib/metanorma/document/components/inline/fmt_footnote_container_element.rb +16 -0
  289. data/lib/metanorma/document/components/inline/fmt_identifier_element.rb +16 -0
  290. data/lib/metanorma/document/components/inline/fmt_name_element.rb +23 -0
  291. data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +17 -0
  292. data/lib/metanorma/document/components/inline/fmt_sourcecode_element.rb +29 -0
  293. data/lib/metanorma/document/components/inline/fmt_stem_element.rb +18 -0
  294. data/lib/metanorma/document/components/inline/fmt_termsource_element.rb +20 -0
  295. data/lib/metanorma/document/components/inline/fmt_title_element.rb +29 -0
  296. data/lib/metanorma/document/components/inline/fmt_xref_element.rb +25 -0
  297. data/lib/metanorma/document/components/inline/fmt_xref_label_element.rb +23 -0
  298. data/lib/metanorma/document/components/inline/fn_element.rb +31 -0
  299. data/lib/metanorma/document/components/inline/link_element.rb +27 -0
  300. data/lib/metanorma/document/components/inline/localized_string_element.rb +31 -0
  301. data/lib/metanorma/document/components/inline/localized_strings_element.rb +16 -0
  302. data/lib/metanorma/document/components/inline/math_element.rb +16 -0
  303. data/lib/metanorma/document/components/inline/name_with_id_element.rb +20 -0
  304. data/lib/metanorma/document/components/inline/semx_child_element.rb +25 -0
  305. data/lib/metanorma/document/components/inline/semx_element.rb +117 -0
  306. data/lib/metanorma/document/components/inline/small_cap_element.rb +16 -0
  307. data/lib/metanorma/document/components/inline/span_element.rb +37 -0
  308. data/lib/metanorma/document/components/inline/stem_inline_element.rb +24 -0
  309. data/lib/metanorma/document/components/inline/strong_raw_element.rb +25 -0
  310. data/lib/metanorma/document/components/inline/sub_element.rb +15 -0
  311. data/lib/metanorma/document/components/inline/sup_element.rb +26 -0
  312. data/lib/metanorma/document/components/inline/tab_element.rb +13 -0
  313. data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +51 -0
  314. data/lib/metanorma/document/components/inline/tt_element.rb +20 -0
  315. data/lib/metanorma/document/components/inline/variant_title_element.rb +27 -0
  316. data/lib/metanorma/document/components/inline/xref_element.rb +24 -0
  317. data/lib/metanorma/document/components/inline.rb +100 -0
  318. data/lib/metanorma/document/components/lists/dd_element.rb +58 -0
  319. data/lib/metanorma/document/components/lists/definition.rb +32 -0
  320. data/lib/metanorma/document/components/lists/definition_list.rb +44 -0
  321. data/lib/metanorma/document/components/lists/dt_element.rb +71 -0
  322. data/lib/metanorma/document/components/lists/list.rb +25 -0
  323. data/lib/metanorma/document/components/lists/list_item.rb +102 -0
  324. data/lib/metanorma/document/components/lists/ordered_list.rb +42 -0
  325. data/lib/metanorma/document/components/lists/ordered_list_type.rb +23 -0
  326. data/lib/metanorma/document/components/lists/unordered_list.rb +34 -0
  327. data/lib/metanorma/document/components/lists.rb +19 -0
  328. data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +62 -0
  329. data/lib/metanorma/document/components/multi_paragraph/admonition_type.rb +23 -0
  330. data/lib/metanorma/document/components/multi_paragraph/paragraphs_block.rb +21 -0
  331. data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +74 -0
  332. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +34 -0
  333. data/lib/metanorma/document/components/multi_paragraph.rb +15 -0
  334. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +155 -0
  335. data/lib/metanorma/document/components/paragraphs/paragraph_with_footnote.rb +24 -0
  336. data/lib/metanorma/document/components/paragraphs/text_alignment.rb +23 -0
  337. data/lib/metanorma/document/components/paragraphs.rb +14 -0
  338. data/lib/metanorma/document/components/reference_elements/callout.rb +25 -0
  339. data/lib/metanorma/document/components/reference_elements/citation.rb +38 -0
  340. data/lib/metanorma/document/components/reference_elements/footnote.rb +19 -0
  341. data/lib/metanorma/document/components/reference_elements/index_xref_element.rb +27 -0
  342. data/lib/metanorma/document/components/reference_elements/reference_element.rb +24 -0
  343. data/lib/metanorma/document/components/reference_elements/reference_format.rb +23 -0
  344. data/lib/metanorma/document/components/reference_elements/reference_to_citation_element.rb +33 -0
  345. data/lib/metanorma/document/components/reference_elements/reference_to_id_element.rb +19 -0
  346. data/lib/metanorma/document/components/reference_elements/reference_to_id_with_paragraph_element.rb +21 -0
  347. data/lib/metanorma/document/components/reference_elements/reference_to_link_element.rb +19 -0
  348. data/lib/metanorma/document/components/reference_elements.rb +27 -0
  349. data/lib/metanorma/document/components/sections/basic_section.rb +37 -0
  350. data/lib/metanorma/document/components/sections/content_section.rb +20 -0
  351. data/lib/metanorma/document/components/sections/hierarchical_section.rb +19 -0
  352. data/lib/metanorma/document/components/sections/references_section.rb +25 -0
  353. data/lib/metanorma/document/components/sections.rb +15 -0
  354. data/lib/metanorma/document/components/tables/header_table_cell.rb +17 -0
  355. data/lib/metanorma/document/components/tables/paragraph_table_cell.rb +20 -0
  356. data/lib/metanorma/document/components/tables/table_block.rb +99 -0
  357. data/lib/metanorma/document/components/tables/table_cell.rb +139 -0
  358. data/lib/metanorma/document/components/tables/table_section.rb +42 -0
  359. data/lib/metanorma/document/components/tables/text_alignment.rb +23 -0
  360. data/lib/metanorma/document/components/tables/text_table_cell.rb +17 -0
  361. data/lib/metanorma/document/components/tables/text_table_row.rb +30 -0
  362. data/lib/metanorma/document/components/tables/vertical_alignment.rb +23 -0
  363. data/lib/metanorma/document/components/tables.rb +22 -0
  364. data/lib/metanorma/document/components/text_elements/asciiml.rb +19 -0
  365. data/lib/metanorma/document/components/text_elements/emphasis_element.rb +16 -0
  366. data/lib/metanorma/document/components/text_elements/keyword_element.rb +16 -0
  367. data/lib/metanorma/document/components/text_elements/latex.rb +19 -0
  368. data/lib/metanorma/document/components/text_elements/latexmath_element.rb +19 -0
  369. data/lib/metanorma/document/components/text_elements/monospace_element.rb +16 -0
  370. data/lib/metanorma/document/components/text_elements/ruby_element.rb +23 -0
  371. data/lib/metanorma/document/components/text_elements/small_caps_element.rb +16 -0
  372. data/lib/metanorma/document/components/text_elements/stem_element.rb +34 -0
  373. data/lib/metanorma/document/components/text_elements/stem_type.rb +23 -0
  374. data/lib/metanorma/document/components/text_elements/stem_value.rb +19 -0
  375. data/lib/metanorma/document/components/text_elements/strike_element.rb +33 -0
  376. data/lib/metanorma/document/components/text_elements/strong_element.rb +16 -0
  377. data/lib/metanorma/document/components/text_elements/subscript_element.rb +16 -0
  378. data/lib/metanorma/document/components/text_elements/superscript_element.rb +16 -0
  379. data/lib/metanorma/document/components/text_elements/text_element.rb +20 -0
  380. data/lib/metanorma/document/components/text_elements/text_element_type.rb +21 -0
  381. data/lib/metanorma/document/components/text_elements/underline_element.rb +33 -0
  382. data/lib/metanorma/document/components/text_elements.rb +31 -0
  383. data/lib/metanorma/document/components.rb +27 -0
  384. data/lib/metanorma/document/data_types.rb +11 -0
  385. data/lib/metanorma/document/relaton/address.rb +39 -0
  386. data/lib/metanorma/document/relaton/affiliation.rb +22 -0
  387. data/lib/metanorma/document/relaton/bib_item_locality.rb +21 -0
  388. data/lib/metanorma/document/relaton/bib_item_size.rb +19 -0
  389. data/lib/metanorma/document/relaton/bib_item_size_type.rb +21 -0
  390. data/lib/metanorma/document/relaton/bib_item_type.rb +25 -0
  391. data/lib/metanorma/document/relaton/bibliographic_date.rb +27 -0
  392. data/lib/metanorma/document/relaton/bibliographic_date_type.rb +22 -0
  393. data/lib/metanorma/document/relaton/contact_method.rb +22 -0
  394. data/lib/metanorma/document/relaton/contribution_info.rb +21 -0
  395. data/lib/metanorma/document/relaton/contributor.rb +15 -0
  396. data/lib/metanorma/document/relaton/contributor_role.rb +23 -0
  397. data/lib/metanorma/document/relaton/copyright_association.rb +32 -0
  398. data/lib/metanorma/document/relaton/date_time.rb +19 -0
  399. data/lib/metanorma/document/relaton/document_identifier.rb +25 -0
  400. data/lib/metanorma/document/relaton/document_relation.rb +26 -0
  401. data/lib/metanorma/document/relaton/document_relation_type.rb +31 -0
  402. data/lib/metanorma/document/relaton/document_status.rb +26 -0
  403. data/lib/metanorma/document/relaton/edition.rb +21 -0
  404. data/lib/metanorma/document/relaton/full_name.rb +34 -0
  405. data/lib/metanorma/document/relaton/iso4217_code.rb +17 -0
  406. data/lib/metanorma/document/relaton/iso8601_date.rb +17 -0
  407. data/lib/metanorma/document/relaton/keyword_type.rb +23 -0
  408. data/lib/metanorma/document/relaton/locality_stack.rb +19 -0
  409. data/lib/metanorma/document/relaton/localized_name.rb +22 -0
  410. data/lib/metanorma/document/relaton/medium_type.rb +26 -0
  411. data/lib/metanorma/document/relaton/org_identifier.rb +20 -0
  412. data/lib/metanorma/document/relaton/org_subdivision.rb +28 -0
  413. data/lib/metanorma/document/relaton/org_subdivision_identifier.rb +20 -0
  414. data/lib/metanorma/document/relaton/organization.rb +48 -0
  415. data/lib/metanorma/document/relaton/person.rb +28 -0
  416. data/lib/metanorma/document/relaton/person_identifier.rb +18 -0
  417. data/lib/metanorma/document/relaton/personal_identifier_type.rb +21 -0
  418. data/lib/metanorma/document/relaton/phone.rb +18 -0
  419. data/lib/metanorma/document/relaton/place_type.rb +36 -0
  420. data/lib/metanorma/document/relaton/price_type.rb +18 -0
  421. data/lib/metanorma/document/relaton/region_type.rb +20 -0
  422. data/lib/metanorma/document/relaton/relaton_collection.rb +25 -0
  423. data/lib/metanorma/document/relaton/series_type.rb +36 -0
  424. data/lib/metanorma/document/relaton/series_type_type.rb +21 -0
  425. data/lib/metanorma/document/relaton/specific_locality_type.rb +25 -0
  426. data/lib/metanorma/document/relaton/title_type.rb +21 -0
  427. data/lib/metanorma/document/relaton/typed_note.rb +25 -0
  428. data/lib/metanorma/document/relaton/typed_title_string.rb +50 -0
  429. data/lib/metanorma/document/relaton/typed_uri.rb +18 -0
  430. data/lib/metanorma/document/relaton/validity_type.rb +22 -0
  431. data/lib/metanorma/document/relaton/variant_full_name.rb +18 -0
  432. data/lib/metanorma/document/relaton/variant_org_name.rb +18 -0
  433. data/lib/metanorma/document/relaton/version_info.rb +19 -0
  434. data/lib/metanorma/document/relaton/vocab_id_type.rb +22 -0
  435. data/lib/metanorma/document/relaton.rb +64 -0
  436. data/lib/metanorma/document/root.rb +14 -0
  437. data/lib/metanorma/document/version.rb +8 -0
  438. data/lib/metanorma/document.rb +54 -0
  439. data/lib/metanorma/html/asset_pipeline.rb +100 -0
  440. data/lib/metanorma/html/base_renderer.rb +1610 -0
  441. data/lib/metanorma/html/bipm_renderer.rb +145 -0
  442. data/lib/metanorma/html/cc_renderer.rb +55 -0
  443. data/lib/metanorma/html/component/base.rb +63 -0
  444. data/lib/metanorma/html/component/footnote_collector.rb +57 -0
  445. data/lib/metanorma/html/component/index_section.rb +74 -0
  446. data/lib/metanorma/html/component/index_term_collector.rb +100 -0
  447. data/lib/metanorma/html/component.rb +12 -0
  448. data/lib/metanorma/html/component_registry.rb +37 -0
  449. data/lib/metanorma/html/drops/footnote_drop.rb +26 -0
  450. data/lib/metanorma/html/drops.rb +9 -0
  451. data/lib/metanorma/html/generator.rb +114 -0
  452. data/lib/metanorma/html/icc_renderer.rb +49 -0
  453. data/lib/metanorma/html/iec_renderer.rb +54 -0
  454. data/lib/metanorma/html/ieee_renderer.rb +55 -0
  455. data/lib/metanorma/html/ietf_renderer.rb +58 -0
  456. data/lib/metanorma/html/iho_renderer.rb +56 -0
  457. data/lib/metanorma/html/iso_renderer.rb +821 -0
  458. data/lib/metanorma/html/itu_renderer.rb +55 -0
  459. data/lib/metanorma/html/ogc_renderer.rb +86 -0
  460. data/lib/metanorma/html/oiml_renderer.rb +55 -0
  461. data/lib/metanorma/html/pdfa_renderer.rb +51 -0
  462. data/lib/metanorma/html/ribose_renderer.rb +55 -0
  463. data/lib/metanorma/html/standard_renderer.rb +535 -0
  464. data/lib/metanorma/html/templates/_cover.html.liquid +11 -0
  465. data/lib/metanorma/html/templates/_doc_title.html.liquid +3 -0
  466. data/lib/metanorma/html/templates/_footer.html.liquid +8 -0
  467. data/lib/metanorma/html/templates/_footnotes.html.liquid +11 -0
  468. data/lib/metanorma/html/templates/_header.html.liquid +65 -0
  469. data/lib/metanorma/html/templates/_iso_cover.html.liquid +31 -0
  470. data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +3 -0
  471. data/lib/metanorma/html/templates/document.html.liquid +40 -0
  472. data/lib/metanorma/html/theme.rb +196 -0
  473. data/lib/metanorma/html/whitespace_patch.rb +47 -0
  474. data/lib/metanorma/html.rb +29 -0
  475. data/lib/metanorma/iec_document/root.rb +66 -0
  476. data/lib/metanorma/iec_document.rb +10 -0
  477. data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +18 -0
  478. data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +20 -0
  479. data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +25 -0
  480. data/lib/metanorma/ieee_document/metadata.rb +14 -0
  481. data/lib/metanorma/ieee_document/root.rb +65 -0
  482. data/lib/metanorma/ieee_document.rb +11 -0
  483. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +58 -0
  484. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +53 -0
  485. data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +17 -0
  486. data/lib/metanorma/ietf_document/metadata.rb +14 -0
  487. data/lib/metanorma/ietf_document/root.rb +66 -0
  488. data/lib/metanorma/ietf_document/sections.rb +31 -0
  489. data/lib/metanorma/ietf_document.rb +10 -0
  490. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +25 -0
  491. data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +20 -0
  492. data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +19 -0
  493. data/lib/metanorma/iho_document/metadata/iho_series.rb +22 -0
  494. data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +18 -0
  495. data/lib/metanorma/iho_document/metadata.rb +15 -0
  496. data/lib/metanorma/iho_document/root.rb +65 -0
  497. data/lib/metanorma/iho_document.rb +11 -0
  498. data/lib/metanorma/iso_document/annotation_container.rb +16 -0
  499. data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +27 -0
  500. data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +25 -0
  501. data/lib/metanorma/iso_document/blocks.rb +12 -0
  502. data/lib/metanorma/iso_document/boilerplate.rb +17 -0
  503. data/lib/metanorma/iso_document/metadata/abstract_title.rb +36 -0
  504. data/lib/metanorma/iso_document/metadata/doc_identifier.rb +26 -0
  505. data/lib/metanorma/iso_document/metadata/ics.rb +19 -0
  506. data/lib/metanorma/iso_document/metadata/iec_document_category.rb +23 -0
  507. data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +86 -0
  508. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +175 -0
  509. data/lib/metanorma/iso_document/metadata/iso_document_id.rb +46 -0
  510. data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +26 -0
  511. data/lib/metanorma/iso_document/metadata/iso_document_status.rb +56 -0
  512. data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +26 -0
  513. data/lib/metanorma/iso_document/metadata/iso_document_type.rb +25 -0
  514. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +57 -0
  515. data/lib/metanorma/iso_document/metadata/iso_project_group.rb +32 -0
  516. data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +38 -0
  517. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +20 -0
  518. data/lib/metanorma/iso_document/metadata/structured_identifier.rb +33 -0
  519. data/lib/metanorma/iso_document/metadata/title_amd.rb +12 -0
  520. data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +12 -0
  521. data/lib/metanorma/iso_document/metadata/title_collection.rb +46 -0
  522. data/lib/metanorma/iso_document/metadata/title_full.rb +12 -0
  523. data/lib/metanorma/iso_document/metadata/title_intro.rb +12 -0
  524. data/lib/metanorma/iso_document/metadata/title_main.rb +12 -0
  525. data/lib/metanorma/iso_document/metadata/title_part.rb +12 -0
  526. data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +12 -0
  527. data/lib/metanorma/iso_document/metadata.rb +39 -0
  528. data/lib/metanorma/iso_document/raw_paragraph.rb +23 -0
  529. data/lib/metanorma/iso_document/root.rb +92 -0
  530. data/lib/metanorma/iso_document/sections/colophon.rb +18 -0
  531. data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +15 -0
  532. data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +24 -0
  533. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +172 -0
  534. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +206 -0
  535. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +118 -0
  536. data/lib/metanorma/iso_document/sections/iso_preface.rb +43 -0
  537. data/lib/metanorma/iso_document/sections/iso_sections.rb +61 -0
  538. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +88 -0
  539. data/lib/metanorma/iso_document/sections.rb +17 -0
  540. data/lib/metanorma/iso_document/terms/iso_term.rb +84 -0
  541. data/lib/metanorma/iso_document/terms/iso_term_collection.rb +20 -0
  542. data/lib/metanorma/iso_document/terms/term_definition.rb +30 -0
  543. data/lib/metanorma/iso_document/terms/term_designation.rb +44 -0
  544. data/lib/metanorma/iso_document/terms/term_example.rb +39 -0
  545. data/lib/metanorma/iso_document/terms/term_expression.rb +55 -0
  546. data/lib/metanorma/iso_document/terms/term_note.rb +41 -0
  547. data/lib/metanorma/iso_document/terms/term_origin.rb +26 -0
  548. data/lib/metanorma/iso_document/terms/term_source.rb +49 -0
  549. data/lib/metanorma/iso_document/terms/verbal_definition.rb +41 -0
  550. data/lib/metanorma/iso_document/terms.rb +20 -0
  551. data/lib/metanorma/iso_document.rb +16 -0
  552. data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +63 -0
  553. data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +21 -0
  554. data/lib/metanorma/itu_document/metadata/itu_series.rb +22 -0
  555. data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +23 -0
  556. data/lib/metanorma/itu_document/metadata.rb +19 -0
  557. data/lib/metanorma/itu_document/root.rb +65 -0
  558. data/lib/metanorma/itu_document.rb +10 -0
  559. data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +12 -0
  560. data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +19 -0
  561. data/lib/metanorma/ogc_document/metadata.rb +12 -0
  562. data/lib/metanorma/ogc_document/root.rb +65 -0
  563. data/lib/metanorma/ogc_document.rb +10 -0
  564. data/lib/metanorma/oiml_document/root.rb +66 -0
  565. data/lib/metanorma/oiml_document.rb +10 -0
  566. data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +20 -0
  567. data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +18 -0
  568. data/lib/metanorma/ribose_document/metadata.rb +12 -0
  569. data/lib/metanorma/ribose_document/root.rb +68 -0
  570. data/lib/metanorma/ribose_document.rb +10 -0
  571. data/lib/metanorma/standard_document/blocks/amend_block.rb +50 -0
  572. data/lib/metanorma/standard_document/blocks/amend_content_block.rb +17 -0
  573. data/lib/metanorma/standard_document/blocks/auto_number.rb +20 -0
  574. data/lib/metanorma/standard_document/blocks/block_source.rb +45 -0
  575. data/lib/metanorma/standard_document/blocks/change_type.rb +21 -0
  576. data/lib/metanorma/standard_document/blocks/element_name.rb +22 -0
  577. data/lib/metanorma/standard_document/blocks/form.rb +38 -0
  578. data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +24 -0
  579. data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +21 -0
  580. data/lib/metanorma/standard_document/blocks/image_map_block.rb +32 -0
  581. data/lib/metanorma/standard_document/blocks/image_map_coords.rb +19 -0
  582. data/lib/metanorma/standard_document/blocks/image_map_radius.rb +19 -0
  583. data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +21 -0
  584. data/lib/metanorma/standard_document/blocks/passthrough.rb +20 -0
  585. data/lib/metanorma/standard_document/blocks/requirement_model.rb +165 -0
  586. data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +32 -0
  587. data/lib/metanorma/standard_document/blocks/standard_block.rb +28 -0
  588. data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +34 -0
  589. data/lib/metanorma/standard_document/blocks/standard_example_block.rb +30 -0
  590. data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +32 -0
  591. data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +30 -0
  592. data/lib/metanorma/standard_document/blocks/standard_note_block.rb +64 -0
  593. data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +25 -0
  594. data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +29 -0
  595. data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +32 -0
  596. data/lib/metanorma/standard_document/blocks/standard_table_block.rb +39 -0
  597. data/lib/metanorma/standard_document/blocks/svg_map_block.rb +23 -0
  598. data/lib/metanorma/standard_document/blocks/svg_target_type.rb +20 -0
  599. data/lib/metanorma/standard_document/blocks/table_col.rb +16 -0
  600. data/lib/metanorma/standard_document/blocks/to_c.rb +17 -0
  601. data/lib/metanorma/standard_document/blocks.rb +60 -0
  602. data/lib/metanorma/standard_document/elements/add.rb +19 -0
  603. data/lib/metanorma/standard_document/elements/del.rb +19 -0
  604. data/lib/metanorma/standard_document/elements/form_input.rb +27 -0
  605. data/lib/metanorma/standard_document/elements/input.rb +33 -0
  606. data/lib/metanorma/standard_document/elements/input_type.rb +27 -0
  607. data/lib/metanorma/standard_document/elements/label.rb +19 -0
  608. data/lib/metanorma/standard_document/elements/option.rb +27 -0
  609. data/lib/metanorma/standard_document/elements/orientation_type.rb +27 -0
  610. data/lib/metanorma/standard_document/elements/select.rb +32 -0
  611. data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +22 -0
  612. data/lib/metanorma/standard_document/elements/textarea.rb +25 -0
  613. data/lib/metanorma/standard_document/elements.rb +20 -0
  614. data/lib/metanorma/standard_document/lists/standard_definition.rb +24 -0
  615. data/lib/metanorma/standard_document/lists/standard_definition_list.rb +30 -0
  616. data/lib/metanorma/standard_document/lists/standard_definition_term.rb +27 -0
  617. data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +28 -0
  618. data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +26 -0
  619. data/lib/metanorma/standard_document/lists.rb +17 -0
  620. data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +25 -0
  621. data/lib/metanorma/standard_document/metadata/ics_type.rb +26 -0
  622. data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +25 -0
  623. data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +37 -0
  624. data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +48 -0
  625. data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +27 -0
  626. data/lib/metanorma/standard_document/metadata.rb +17 -0
  627. data/lib/metanorma/standard_document/namespace.rb +11 -0
  628. data/lib/metanorma/standard_document/refs/reference_to_term.rb +25 -0
  629. data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +27 -0
  630. data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +24 -0
  631. data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +27 -0
  632. data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +36 -0
  633. data/lib/metanorma/standard_document/refs/xref_case_type.rb +27 -0
  634. data/lib/metanorma/standard_document/refs/xref_connective_type.rb +27 -0
  635. data/lib/metanorma/standard_document/refs/xref_target_type.rb +25 -0
  636. data/lib/metanorma/standard_document/refs.rb +18 -0
  637. data/lib/metanorma/standard_document/root.rb +10 -0
  638. data/lib/metanorma/standard_document/sections/abstract.rb +21 -0
  639. data/lib/metanorma/standard_document/sections/acknowledgements.rb +21 -0
  640. data/lib/metanorma/standard_document/sections/annex_section.rb +32 -0
  641. data/lib/metanorma/standard_document/sections/bibliography_section.rb +21 -0
  642. data/lib/metanorma/standard_document/sections/boilerplate_type.rb +32 -0
  643. data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +32 -0
  644. data/lib/metanorma/standard_document/sections/clause_section.rb +29 -0
  645. data/lib/metanorma/standard_document/sections/definition_section.rb +75 -0
  646. data/lib/metanorma/standard_document/sections/floating_title.rb +27 -0
  647. data/lib/metanorma/standard_document/sections/foreword.rb +21 -0
  648. data/lib/metanorma/standard_document/sections/introduction.rb +23 -0
  649. data/lib/metanorma/standard_document/sections/misc_container.rb +26 -0
  650. data/lib/metanorma/standard_document/sections/normative_type.rb +29 -0
  651. data/lib/metanorma/standard_document/sections/standard_content_section.rb +27 -0
  652. data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +30 -0
  653. data/lib/metanorma/standard_document/sections/standard_references_section.rb +74 -0
  654. data/lib/metanorma/standard_document/sections/standard_section.rb +39 -0
  655. data/lib/metanorma/standard_document/sections/terms_section.rb +29 -0
  656. data/lib/metanorma/standard_document/sections.rb +30 -0
  657. data/lib/metanorma/standard_document/standard_document_type.rb +15 -0
  658. data/lib/metanorma/standard_document/terms/abbreviation_type.rb +27 -0
  659. data/lib/metanorma/standard_document/terms/concept.rb +42 -0
  660. data/lib/metanorma/standard_document/terms/definition_collection.rb +24 -0
  661. data/lib/metanorma/standard_document/terms/designation.rb +31 -0
  662. data/lib/metanorma/standard_document/terms/expression_designation.rb +38 -0
  663. data/lib/metanorma/standard_document/terms/expression_type.rb +27 -0
  664. data/lib/metanorma/standard_document/terms/grammar_gender.rb +27 -0
  665. data/lib/metanorma/standard_document/terms/grammar_info.rb +36 -0
  666. data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +25 -0
  667. data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +27 -0
  668. data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +33 -0
  669. data/lib/metanorma/standard_document/terms/related_term.rb +31 -0
  670. data/lib/metanorma/standard_document/terms/related_term_type.rb +28 -0
  671. data/lib/metanorma/standard_document/terms/term.rb +66 -0
  672. data/lib/metanorma/standard_document/terms/term_collection.rb +24 -0
  673. data/lib/metanorma/standard_document/terms/term_definition.rb +29 -0
  674. data/lib/metanorma/standard_document/terms/term_source.rb +29 -0
  675. data/lib/metanorma/standard_document/terms/term_source_status.rb +29 -0
  676. data/lib/metanorma/standard_document/terms/term_source_type.rb +21 -0
  677. data/lib/metanorma/standard_document/terms/verbal_expression.rb +35 -0
  678. data/lib/metanorma/standard_document/terms.rb +31 -0
  679. data/lib/metanorma/standard_document.rb +19 -0
  680. data/metanorma-document.gemspec +35 -0
  681. data/tasks/roundtrip_samples.rake +535 -0
  682. metadata +743 -0
@@ -0,0 +1,89 @@
1
+ /* === Typography — editorial heading hierarchy === */
2
+ h1, h2, h3, h4, h5, h6 {
3
+ font-family: var(--font-sans);
4
+ margin: 2em 0 0.65em;
5
+ line-height: 1.3;
6
+ color: var(--mn-primary);
7
+ font-weight: 600;
8
+ scroll-margin-top: calc(var(--header-height) + 16px);
9
+ position: relative;
10
+ letter-spacing: -0.01em;
11
+ transition: color 0.35s ease, border-color 0.35s ease;
12
+ }
13
+ h1 {
14
+ font-size: 2em; letter-spacing: -0.035em; margin-top: 1.8em;
15
+ padding-bottom: 0.55em;
16
+ border-bottom: 1px solid var(--color-border);
17
+ }
18
+ h1::after {
19
+ content: ""; position: absolute;
20
+ bottom: -1px; left: 0; width: 3.5em; height: 2px;
21
+ background: var(--mn-accent);
22
+ border-radius: 1px;
23
+ transition: width 0.3s ease;
24
+ }
25
+ h1:hover::after { width: 5em; }
26
+ h2 { font-size: 1.5em; letter-spacing: -0.02em; }
27
+ h3 { font-size: 1.2em; letter-spacing: -0.01em; }
28
+ h4 { font-size: 1.05em; color: var(--color-text-light); font-weight: 600; }
29
+ [id] { scroll-margin-top: calc(var(--header-height) + 16px); }
30
+
31
+ p {
32
+ margin: 0 0 0.85em;
33
+ hanging-punctuation: first last;
34
+ orphans: 3; widows: 3;
35
+ }
36
+ .doc-content p + p { text-indent: 1.5em; margin-top: -0.3em; }
37
+ h1 + p, h2 + p, h3 + p, blockquote + p, figure + p, table + p,
38
+ .note-block p + p, .example p + p,
39
+ div[id^="term-"] p + p,
40
+ .norm-ref-entry, .biblio-entry { text-indent: 0; }
41
+
42
+ a {
43
+ color: var(--mn-primary);
44
+ text-decoration: underline;
45
+ text-decoration-color: rgba(40,56,138,0.25);
46
+ text-underline-offset: 2px;
47
+ text-decoration-skip-ink: auto;
48
+ text-decoration-thickness: 1px;
49
+ transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
50
+ }
51
+ a:hover { color: var(--mn-accent); text-decoration-color: rgba(156,96,193,0.5); }
52
+ a:focus-visible { outline: 2px solid var(--mn-accent); outline-offset: 2px; border-radius: 2px; }
53
+ img { max-width: 100%; height: auto; border-radius: var(--radius-sm); background: #fff; }
54
+ ul, ol { margin: 0.75em 0; padding-left: 2em; }
55
+ li { margin: 0.25em 0; }
56
+ li::marker { color: var(--mn-accent); }
57
+ dl { margin: 0.75em 0; }
58
+ dt { font-weight: bold; margin-top: 0.75em; }
59
+ dd { margin-left: 2em; }
60
+ code {
61
+ font-family: var(--font-mono); font-size: 0.87em;
62
+ background: var(--mn-primary-light); padding: 0.15em 0.4em;
63
+ border-radius: 4px;
64
+ }
65
+ pre code { background: transparent; padding: 0; }
66
+ blockquote {
67
+ border-left: 3px solid var(--mn-accent);
68
+ margin: 1.4em 0; padding-left: 1.2em;
69
+ color: var(--color-text-light); font-style: italic;
70
+ }
71
+ tt { font-family: var(--font-mono); font-size: 0.87em; }
72
+ hr.cover-separator { border: none; }
73
+
74
+ /* Caption labels — small-caps editorial */
75
+ .caption-label, .fmt-caption-label {
76
+ font-variant: small-caps;
77
+ font-weight: 600;
78
+ letter-spacing: 0.05em;
79
+ background: none;
80
+ color: var(--mn-primary);
81
+ padding: 0;
82
+ display: inline-block;
83
+ vertical-align: baseline;
84
+ margin-right: 0.15em;
85
+ }
86
+ .fmt-autonum-delim { font-weight: 400; }
87
+ .fmt-element-name, .element-name { font-style: italic; color: var(--color-text-light); font-weight: 400; }
88
+ .fmt-caption-delim, .caption-delim { opacity: 0.35; }
89
+ .autonum-delim { font-weight: 400; }
@@ -0,0 +1,19 @@
1
+ /* === Admonitions — theme variable driven === */
2
+ .admonition {
3
+ background: var(--admonition-bg);
4
+ border-left: 4px solid var(--admonition-border);
5
+ padding: 0.9em 1.2em 0.9em 2.8em; margin: 1.2em 0;
6
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
7
+ position: relative;
8
+ font-size: 0.95em;
9
+ }
10
+ .admonition::before {
11
+ content: "";
12
+ position: absolute; left: 0.8em; top: 1em;
13
+ width: 16px; height: 16px;
14
+ background: var(--admonition-border);
15
+ opacity: 0.7;
16
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.984v-2.003h2.042v2.003zm0-3.004H6.984V5.99h2.042v3.997z'/%3E%3C/svg%3E") center/contain no-repeat;
17
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.984v-2.003h2.042v2.003zm0-3.004H6.984V5.99h2.042v3.997z'/%3E%3C/svg%3E") center/contain no-repeat;
18
+ }
19
+ .admonition-title { font-weight: 600; margin-bottom: 0.5em; color: var(--admonition-color); font-family: var(--font-sans); }
@@ -0,0 +1,18 @@
1
+ /* === Bibliography — structured references === */
2
+ .biblio-entry {
3
+ padding: 0.5em 0 0.5em 2.5em;
4
+ text-indent: -2.5em;
5
+ font-size: 0.93em; line-height: 1.7;
6
+ border-bottom: 1px solid var(--color-border);
7
+ }
8
+ .biblio-entry:last-child { border-bottom-color: transparent; }
9
+ .norm-ref-entry {
10
+ padding: 0.5em 0;
11
+ font-size: 0.93em; line-height: 1.7;
12
+ border-bottom: 1px solid var(--color-border);
13
+ }
14
+ .norm-ref-entry:last-child { border-bottom-color: transparent; }
15
+ .std-doc-number { font-weight: 500; color: var(--mn-primary); font-family: var(--font-sans); }
16
+ .std-year { font-weight: 500; }
17
+ .biblio-link { color: inherit; text-decoration: none; }
18
+ .biblio-link:hover { color: var(--mn-primary); text-decoration: underline; }
@@ -0,0 +1,205 @@
1
+ /* === Cover Page — editorial grid === */
2
+ .title-section {
3
+ min-height: 60vh;
4
+ display: grid;
5
+ place-items: center;
6
+ padding: 5vh 6vw;
7
+ background: var(--mn-cover-bg, var(--mn-gradient));
8
+ color: #fff;
9
+ margin-bottom: 0;
10
+ position: relative;
11
+ overflow: hidden;
12
+ }
13
+
14
+ /* Atmospheric layer — grid + ambient light */
15
+ .title-section::before {
16
+ content: ""; position: absolute; inset: 0;
17
+ background:
18
+ linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
19
+ linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px),
20
+ radial-gradient(ellipse at 20% 25%, rgba(156,96,193,0.15) 0%, transparent 55%),
21
+ radial-gradient(ellipse at 80% 75%, rgba(40,56,138,0.18) 0%, transparent 50%),
22
+ radial-gradient(circle at 50% 50%, rgba(255,255,255,0.015) 0%, transparent 60%);
23
+ background-size: 48px 48px, 48px 48px, 100% 100%, 100% 100%, 100% 100%;
24
+ pointer-events: none;
25
+ }
26
+
27
+ /* Curved bottom edge */
28
+ .title-section::after {
29
+ content: ""; position: absolute;
30
+ bottom: -1px; left: 0; right: 0; height: 60px;
31
+ background: var(--color-bg);
32
+ clip-path: ellipse(55% 100% at 50% 100%);
33
+ transition: background-color 0.35s ease;
34
+ }
35
+
36
+ /* Editorial grid layout */
37
+ .cover-grid {
38
+ width: 100%;
39
+ max-width: 48em;
40
+ display: grid;
41
+ grid-template-columns: auto 1fr;
42
+ gap: 2em;
43
+ position: relative;
44
+ z-index: 1;
45
+ }
46
+ .cover-meta {
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: 1.5em;
50
+ padding-right: 3em;
51
+ border-right: 1px solid rgba(255,255,255,0.15);
52
+ }
53
+ .cover-publishers {
54
+ display: flex;
55
+ flex-direction: column;
56
+ gap: 0.8em;
57
+ }
58
+ .cover-logo {
59
+ display: inline-flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ }
63
+ .cover-logo svg { height: 40px; width: auto; max-width: 120px; }
64
+ .cover-logo svg path { fill: #fff; }
65
+ .cover-body {
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 0.5em;
69
+ }
70
+
71
+ /* Cover elements */
72
+ .cover-doc-id {
73
+ font-family: var(--font-sans); font-weight: 700;
74
+ font-size: 1.1em;
75
+ letter-spacing: 0.15em;
76
+ text-transform: uppercase;
77
+ color: rgba(255,255,255,0.98);
78
+ position: relative; z-index: 1;
79
+ animation: coverFadeIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
80
+ animation-delay: 0.15s;
81
+ }
82
+ .cover-date {
83
+ font-family: var(--font-sans);
84
+ font-size: 0.9em;
85
+ font-weight: 400;
86
+ opacity: 0.7;
87
+ letter-spacing: 0.06em;
88
+ position: relative; z-index: 1;
89
+ }
90
+ .cover-title {
91
+ font-family: var(--font-sans); font-size: 3em;
92
+ font-weight: 300;
93
+ color: #fff; line-height: 1.15;
94
+ overflow-wrap: break-word;
95
+ position: relative; z-index: 1;
96
+ letter-spacing: -0.03em;
97
+ animation: coverTitleIn 1s cubic-bezier(0.16, 1, 0.3, 1) both;
98
+ animation-delay: 0.35s;
99
+ }
100
+ .cover-title .subtitle { color: #fff; }
101
+ .cover-doctype {
102
+ font-family: var(--font-sans);
103
+ font-size: 0.72em; font-weight: 600;
104
+ text-transform: uppercase; letter-spacing: 0.15em;
105
+ color: rgba(255,255,255,0.6); margin-bottom: 0.8em;
106
+ position: relative; z-index: 1;
107
+ }
108
+ .cover-stage {
109
+ margin-top: 1.5em; position: relative; z-index: 1;
110
+ animation: coverFadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
111
+ animation-delay: 0.55s;
112
+ }
113
+ .cover-stage p {
114
+ font-family: var(--font-sans);
115
+ background: transparent; color: rgba(255,255,255,0.85);
116
+ display: inline-block; padding: 0.5em 2em;
117
+ border-radius: 3px; font-size: 0.72em; font-weight: 600;
118
+ text-transform: uppercase; letter-spacing: 0.2em;
119
+ border: 1px solid rgba(255,255,255,0.2);
120
+ }
121
+ .cover-separator {
122
+ border: none; height: 1px;
123
+ background: var(--mn-cover-separator, rgba(255,255,255,0.15));
124
+ margin: 0; width: 100%;
125
+ }
126
+
127
+ /* Legacy centered cover (for non-grid cover pages) */
128
+ .title-section > .cover-doc-id:first-child { margin-top: 0; }
129
+ .title-section:not(:has(.cover-grid)) {
130
+ text-align: center;
131
+ display: flex; flex-direction: column;
132
+ justify-content: center; align-items: center;
133
+ padding: 10vh 2em 8vh;
134
+ }
135
+ .title-section:not(:has(.cover-grid)) .cover-doc-id {
136
+ font-size: 1.4em;
137
+ text-shadow: 0 2px 8px rgba(0,0,0,0.3);
138
+ text-transform: uppercase;
139
+ font-variant-numeric: tabular-nums;
140
+ }
141
+ .title-section:not(:has(.cover-grid)) .cover-doc-id:first-child::before {
142
+ content: ""; display: block;
143
+ width: 6em; height: 1px;
144
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.45), transparent);
145
+ margin: 0 auto 1.8em;
146
+ }
147
+ .title-section:not(:has(.cover-grid)) .cover-title {
148
+ max-width: 24em;
149
+ text-shadow: 0 2px 16px rgba(0,0,0,0.25);
150
+ }
151
+
152
+ /* Document title line */
153
+ .doc-title {
154
+ text-align: center; font-family: var(--font-sans);
155
+ font-weight: 700; font-size: 1.3em;
156
+ margin: 3em 0 1.8em; color: var(--mn-primary);
157
+ letter-spacing: -0.015em;
158
+ position: relative;
159
+ padding-bottom: 0.9em;
160
+ }
161
+ .doc-title::after {
162
+ content: ""; position: absolute;
163
+ bottom: 0; left: 50%; transform: translateX(-50%);
164
+ width: 4em; height: 2.5px;
165
+ background: var(--mn-accent);
166
+ border-radius: 1px;
167
+ }
168
+
169
+ /* Prefatory section */
170
+ .prefatory-section {
171
+ font-size: 0.92em; color: var(--color-text-light);
172
+ padding: 2.5em 1em 1.5em;
173
+ border-top: none;
174
+ max-width: 42em;
175
+ margin-left: auto; margin-right: auto;
176
+ }
177
+ .boilerplate-copyright { font-size: 0.9em; margin-bottom: 1em; line-height: 1.7; }
178
+ license-statement, feedback-statement {
179
+ display: block; margin: 1em 0;
180
+ font-size: 0.92em; line-height: 1.7;
181
+ }
182
+ license-statement {
183
+ padding: 0.8em 1em;
184
+ background: var(--color-bg-light);
185
+ border-radius: var(--radius-sm);
186
+ border: 1px solid var(--color-border);
187
+ }
188
+ feedback-statement {
189
+ padding-top: 0.8em;
190
+ border-top: 1px dashed var(--color-border);
191
+ address { font-style: normal; white-space: pre-line; }
192
+ }
193
+
194
+ /* Mobile cover */
195
+ @media (max-width: 767px) {
196
+ .cover-grid { grid-template-columns: 1fr; gap: 1.5em; }
197
+ .cover-meta { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.15); padding-right: 0; padding-bottom: 1em; flex-direction: row; flex-wrap: wrap; }
198
+ .cover-title { font-size: 2em; }
199
+ .cover-doc-id { font-size: 1em; }
200
+ .title-section { padding: 4vh 1.2em 4vh; min-height: 50vh; }
201
+ .title-section:not(:has(.cover-grid)) { padding: 6vh 1.2em 5vh; }
202
+ .title-section:not(:has(.cover-grid)) .cover-doc-id { font-size: 1.1em; }
203
+ .title-section:not(:has(.cover-grid)) .cover-title { font-size: 1.6em; }
204
+ .doc-title { font-size: 1.15em; margin: 2em 0 1.2em; }
205
+ }
@@ -0,0 +1,20 @@
1
+ /* === Examples — theme variable driven === */
2
+ .example {
3
+ background: var(--example-bg);
4
+ border-left: 3px solid var(--example-border);
5
+ padding: 0.8em 1em 0.8em 2.6em;
6
+ margin: 1.2em 0;
7
+ border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
8
+ position: relative;
9
+ font-size: 0.93em;
10
+ }
11
+ .example::before {
12
+ content: "";
13
+ position: absolute; left: 0.8em; top: 1em;
14
+ width: 16px; height: 16px;
15
+ background: var(--example-border);
16
+ opacity: 0.6;
17
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M6 2a2 2 0 00-2 2v8a2 2 0 002 2h4a2 2 0 002-2V4a2 2 0 00-2-2H6zm0 1h4a1 1 0 011 1v8a1 1 0 01-1 1H6a1 1 0 01-1-1V4a1 1 0 011-1z'/%3E%3C/svg%3E") center/contain no-repeat;
18
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M6 2a2 2 0 00-2 2v8a2 2 0 002 2h4a2 2 0 002-2V4a2 2 0 00-2-2H6zm0 1h4a1 1 0 011 1v8a1 1 0 01-1 1H6a1 1 0 01-1-1V4a1 1 0 011-1z'/%3E%3C/svg%3E") center/contain no-repeat;
19
+ }
20
+ .example-label { font-weight: 600; color: var(--example-color); font-family: var(--font-sans); }
@@ -0,0 +1,30 @@
1
+ /* === Figures === */
2
+ figure { margin: 1.4em 0; max-width: 100%; text-align: center; }
3
+ figure img { display: block; margin: 0 auto; }
4
+ figcaption {
5
+ font-style: italic; font-size: 0.9em;
6
+ margin-top: 0.5em; color: var(--color-text-light);
7
+ font-family: var(--font-sans);
8
+ transition: color 0.35s ease;
9
+ }
10
+ figcaption .caption-label { vertical-align: middle; }
11
+
12
+ /* Figure Lightbox */
13
+ .lightbox-overlay {
14
+ position: fixed; inset: 0;
15
+ background: rgba(10, 10, 20, 0.92);
16
+ z-index: 3000;
17
+ display: flex; flex-direction: column;
18
+ align-items: center; justify-content: center;
19
+ cursor: zoom-out;
20
+ animation: lightboxIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);
21
+ }
22
+ .lightbox-overlay img {
23
+ max-width: 90vw; max-height: 82vh;
24
+ object-fit: contain; border-radius: var(--radius-md);
25
+ box-shadow: 0 12px 56px rgba(0,0,0,0.6);
26
+ animation: lightboxImgIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
27
+ }
28
+
29
+ .doc-content figure img { cursor: zoom-in; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
30
+ .doc-content figure img:hover { transform: scale(1.01); box-shadow: var(--shadow-md); }
@@ -0,0 +1,24 @@
1
+ /* === Footer === */
2
+ .doc-footer {
3
+ text-align: center; padding: 2.5em 1.2em;
4
+ font-size: 0.82em; color: var(--color-text-muted);
5
+ border-top: 2px solid var(--mn-footer-border, var(--color-border));
6
+ margin-top: 4em; background: var(--color-bg-light);
7
+ font-family: var(--font-sans);
8
+ position: relative;
9
+ transition: background-color 0.35s ease, border-color 0.35s ease;
10
+ }
11
+ .doc-footer::before {
12
+ content: ""; position: absolute; top: 0; left: 50%;
13
+ transform: translateX(-50%);
14
+ width: 4em; height: 2px;
15
+ background: var(--mn-accent); opacity: 0.4;
16
+ border-radius: 1px;
17
+ }
18
+ .footer-brand {
19
+ display: flex; align-items: center; justify-content: center;
20
+ gap: 0.5em; flex-wrap: wrap;
21
+ }
22
+ .footer-mn-logo svg path { fill: var(--color-text-muted); }
23
+ .footer-text { font-family: var(--font-sans); }
24
+ .doc-footer p { margin: 0.3em 0; }
@@ -0,0 +1,41 @@
1
+ /* === Footnotes === */
2
+ a.fn-link {
3
+ color: inherit;
4
+ text-decoration: none;
5
+ }
6
+ a.fn-link:hover {
7
+ color: var(--mn-primary);
8
+ }
9
+ .footnotes-section {
10
+ margin-top: 3em;
11
+ padding-top: 1.5em;
12
+ border-top: 1px solid var(--color-border);
13
+ }
14
+ .footnotes-title {
15
+ font-size: 1em;
16
+ font-weight: 600;
17
+ color: var(--color-text-light);
18
+ margin: 0 0 0.75em;
19
+ letter-spacing: 0.05em;
20
+ text-transform: uppercase;
21
+ }
22
+ ol.footnotes {
23
+ list-style: decimal;
24
+ padding-left: 2em;
25
+ font-size: 0.88em;
26
+ color: var(--color-text-light);
27
+ }
28
+ ol.footnotes li {
29
+ margin: 0.4em 0;
30
+ padding-left: 0.3em;
31
+ }
32
+ a.footnote-backref {
33
+ text-decoration: none;
34
+ color: var(--mn-primary);
35
+ font-weight: 600;
36
+ }
37
+ .formula-where {
38
+ font-style: italic;
39
+ font-size: 0.95em;
40
+ margin: 0.5em 0 0;
41
+ }
@@ -0,0 +1,25 @@
1
+ /* === Formulas — rules instead of boxes === */
2
+ .formula {
3
+ margin: 1.5em 0;
4
+ padding: 1.2em 0;
5
+ border-top: 1px solid var(--color-border);
6
+ border-bottom: 1px solid var(--color-border);
7
+ background: none;
8
+ box-shadow: none;
9
+ display: block;
10
+ text-align: center;
11
+ overflow-x: auto;
12
+ }
13
+ .formula .stem { font-style: italic; font-size: 1.05em; }
14
+ .formula-number {
15
+ font-family: var(--font-sans);
16
+ font-weight: 600;
17
+ font-size: 0.92em;
18
+ color: var(--mn-primary);
19
+ white-space: nowrap;
20
+ float: right;
21
+ }
22
+
23
+ @media (max-width: 767px) {
24
+ .formula .formula-number { float: none; display: block; text-align: center; margin-top: 0.5em; }
25
+ }
@@ -0,0 +1,61 @@
1
+ /* === Glossary Panel === */
2
+ .glossary-panel {
3
+ position: fixed; inset: 0;
4
+ background: rgba(26, 26, 46, 0.35);
5
+ z-index: 1000; opacity: 0; pointer-events: none;
6
+ transition: opacity 0.25s ease;
7
+ display: flex; align-items: flex-start; justify-content: center;
8
+ padding-top: 12vh;
9
+ backdrop-filter: blur(4px);
10
+ }
11
+ .glossary-panel.glossary-visible { opacity: 1; pointer-events: auto; }
12
+ .glossary-inner {
13
+ background: var(--color-bg); border: 1px solid var(--color-border);
14
+ border-radius: var(--radius-md); box-shadow: var(--shadow-md);
15
+ width: min(480px, 90vw); max-height: 70vh;
16
+ display: flex; flex-direction: column;
17
+ overflow: hidden;
18
+ }
19
+ .glossary-header {
20
+ display: flex; align-items: center; gap: 0.6em;
21
+ padding: 0.7em 1em; border-bottom: 1px solid var(--color-border);
22
+ background: var(--mn-primary-light);
23
+ }
24
+ .glossary-title {
25
+ font-family: var(--font-sans); font-size: 0.85em;
26
+ font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
27
+ color: var(--mn-primary);
28
+ }
29
+ .glossary-count {
30
+ font-family: var(--font-sans); font-size: 0.75em;
31
+ color: var(--color-text-muted); margin-left: auto;
32
+ }
33
+ .glossary-close {
34
+ background: none; border: none; font-size: 1.2em;
35
+ cursor: pointer; color: var(--color-text-muted); padding: 0; line-height: 1;
36
+ }
37
+ .glossary-close:hover { color: var(--mn-primary); }
38
+ .glossary-search {
39
+ margin: 0.6em 1em; padding: 0.4em 0.7em;
40
+ border: 1px solid var(--color-border); border-radius: var(--radius-sm);
41
+ font-size: 0.88em; font-family: var(--font-sans);
42
+ background: var(--color-bg-light); color: var(--color-text);
43
+ outline: none;
44
+ }
45
+ .glossary-search:focus { border-color: var(--mn-primary); }
46
+ .glossary-list {
47
+ overflow-y: auto; padding: 0.4em 0; flex: 1;
48
+ }
49
+ .glossary-entry {
50
+ padding: 0.4em 1em; border-bottom: 1px solid var(--color-border);
51
+ }
52
+ .glossary-entry:last-child { border-bottom: none; }
53
+ .glossary-term {
54
+ font-family: var(--font-sans); font-weight: 600; font-size: 0.9em;
55
+ color: var(--mn-primary); text-decoration: none;
56
+ }
57
+ .glossary-term:hover { text-decoration: underline; }
58
+ .glossary-def {
59
+ font-size: 0.82em; color: var(--color-text-light); margin: 0.2em 0 0;
60
+ line-height: 1.5;
61
+ }
@@ -0,0 +1,149 @@
1
+ /* === Header Bar === */
2
+ .doc-header {
3
+ display: flex; align-items: center; justify-content: flex-start;
4
+ height: var(--header-height);
5
+ padding: 0 1em;
6
+ background: var(--mn-header-bg, linear-gradient(135deg, rgba(40,56,138,0.95) 0%, rgba(58,75,160,0.95) 50%, rgba(156,96,193,0.92) 100%));
7
+ color: #fff;
8
+ position: sticky; top: 0; z-index: 100;
9
+ box-shadow: 0 1px 0 rgba(0,0,0,0.05);
10
+ contain: layout style;
11
+ transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
12
+ height 0.25s cubic-bezier(0.4, 0, 0.2, 1),
13
+ background 0.35s ease, box-shadow 0.35s ease;
14
+ }
15
+ .header-compact {
16
+ height: 40px !important;
17
+ }
18
+ .header-compact .brand-name { display: none; }
19
+ .header-brand { display: flex; align-items: center; gap: 0.4em; min-width: 0; flex-shrink: 0; }
20
+ .header-mn-logo { display: inline-flex; align-items: center; flex-shrink: 0; }
21
+ .header-mn-logo svg path { fill: #fff; }
22
+ .header-mn-mark {
23
+ display: inline-flex; align-items: center; justify-content: center;
24
+ width: 28px; height: 28px; border-radius: 6px;
25
+ background: rgba(255,255,255,0.2); font-weight: 700;
26
+ font-size: 0.9em; font-family: var(--font-sans);
27
+ }
28
+ .brand-name {
29
+ font-family: var(--font-sans); font-size: 1em; font-weight: 600;
30
+ letter-spacing: 0.01em; opacity: 0.95; white-space: nowrap;
31
+ }
32
+ .brand-logo {
33
+ display: inline-flex; align-items: center; justify-content: center;
34
+ height: 26px; border-radius: var(--radius-sm); overflow: hidden;
35
+ margin-left: 0.3em; background: rgba(255,255,255,0.12);
36
+ padding: 0 0.3em; flex-shrink: 0;
37
+ }
38
+ .brand-logo svg { height: 22px; width: auto; max-width: none; }
39
+ .brand-logo svg path { fill: #fff; }
40
+ .brand-logo + .brand-logo { margin-left: 0.2em; }
41
+ .header-doc-id {
42
+ font-family: var(--font-sans); font-size: 0.82em; opacity: 0.85;
43
+ font-weight: 600; letter-spacing: 0.02em;
44
+ white-space: nowrap; flex-shrink: 0;
45
+ margin-left: 0.6em;
46
+ }
47
+
48
+ /* Header doc title — visible always, fades in more when cover scrolls away */
49
+ .header-doc-title {
50
+ font-family: var(--font-sans); font-size: 0.82em;
51
+ font-weight: 500; opacity: 0.55;
52
+ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
53
+ margin-left: 0.6em; flex: 1 1 0; min-width: 0;
54
+ border-left: 1px solid rgba(255,255,255,0.2);
55
+ padding-left: 0.6em;
56
+ transition: opacity 0.35s ease;
57
+ }
58
+ .header-doc-title.visible {
59
+ opacity: 0.9;
60
+ }
61
+ .header-compact .header-doc-title { font-size: 0.78em; }
62
+
63
+ /* Header actions */
64
+ .header-actions {
65
+ display: flex; align-items: center; gap: 2px;
66
+ flex-shrink: 0; margin-left: auto;
67
+ padding-left: 0.5em;
68
+ }
69
+ .reader-btn {
70
+ background: transparent; border: none;
71
+ color: rgba(255,255,255,0.75); border-radius: 14px;
72
+ width: 28px; height: 28px; cursor: pointer;
73
+ display: flex; align-items: center; justify-content: center;
74
+ padding: 0;
75
+ transition: background var(--transition-fast), color var(--transition-fast);
76
+ }
77
+ .reader-btn:hover { background: rgba(255,255,255,0.15); color: #fff; }
78
+ .reader-btn:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
79
+ .reader-btn:active { transform: scale(0.9); }
80
+ .reader-btn svg { width: 14px; height: 14px; flex-shrink: 0; }
81
+ .reader-btn.disabled { opacity: 0.3; cursor: default; pointer-events: none; }
82
+ .reader-btn.active { background: rgba(255,255,255,0.2); color: #fff; }
83
+
84
+ /* Settings dropdown */
85
+ .header-settings { position: relative; }
86
+ .settings-toggle { width: 28px; height: 28px; }
87
+ .settings-dropdown {
88
+ display: none; position: absolute; top: calc(100% + 6px); right: 0;
89
+ background: var(--color-bg); border: 1px solid var(--color-border);
90
+ border-radius: var(--radius-md); box-shadow: var(--shadow-md);
91
+ padding: 0.3em; z-index: 200; min-width: 140px;
92
+ }
93
+ .settings-dropdown.open { display: flex; flex-direction: column; gap: 2px; }
94
+ .settings-dropdown .reader-btn {
95
+ width: 100%; height: auto; padding: 0.35em 0.5em;
96
+ border-radius: var(--radius-sm); color: var(--color-text);
97
+ gap: 0.5em; justify-content: flex-start;
98
+ }
99
+ .settings-dropdown .reader-btn:hover { background: var(--color-bg-light); color: var(--mn-primary); }
100
+ .settings-dropdown .reader-btn svg { width: 14px; height: 14px; flex-shrink: 0; }
101
+ .settings-label { font-family: var(--font-sans); font-size: 0.78em; font-weight: 500; white-space: nowrap; }
102
+ .settings-divider { height: 1px; background: var(--color-border); margin: 0.2em 0.4em; }
103
+
104
+ /* Theme toggle — 4 icons */
105
+ .theme-toggle .icon-light,
106
+ .theme-toggle .icon-sepia,
107
+ .theme-toggle .icon-dark,
108
+ .theme-toggle .icon-oled { display: none; }
109
+ .theme-toggle.mode-light .icon-light,
110
+ .theme-toggle.mode-sepia .icon-sepia,
111
+ .theme-toggle.mode-dark .icon-dark,
112
+ .theme-toggle.mode-oled .icon-oled { display: block; }
113
+
114
+ /* Sepia header */
115
+ [data-theme="sepia"] .doc-header {
116
+ background: linear-gradient(135deg, #8B6914 0%, #A67C20 50%, #C49530 100%);
117
+ }
118
+ /* OLED header */
119
+ [data-theme="oled"] .doc-header {
120
+ background: #000;
121
+ box-shadow: 0 1px 0 rgba(255,255,255,0.06);
122
+ }
123
+ [data-theme="oled"] .reader-btn { color: rgba(255,255,255,0.6); }
124
+ [data-theme="oled"] .reader-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }
125
+ [data-theme="oled"] .settings-dropdown { background: #111; border-color: #333; }
126
+
127
+ /* Header auto-hide */
128
+ .header-hidden { transform: translateY(-100%); }
129
+
130
+ /* Reading mode banner */
131
+ .reading-mode-banner {
132
+ position: sticky; top: var(--header-height); z-index: 99;
133
+ background: var(--mn-primary-light); color: var(--mn-primary);
134
+ font-family: var(--font-sans); font-size: 0.82em; font-weight: 500;
135
+ padding: 0.3em 1em; text-align: center;
136
+ border-bottom: 1px solid var(--color-border);
137
+ }
138
+ .reading-mode-banner kbd {
139
+ font-family: var(--font-mono); font-size: 0.9em;
140
+ background: var(--color-bg-light); border: 1px solid var(--color-border);
141
+ border-radius: 3px; padding: 0 0.3em;
142
+ }
143
+ .exit-reading-btn {
144
+ background: none; border: 1px solid var(--mn-primary); color: var(--mn-primary);
145
+ border-radius: 3px; font-size: 0.95em; font-weight: 600; cursor: pointer;
146
+ padding: 0.1em 0.6em; margin-left: 0.3em;
147
+ font-family: var(--font-sans);
148
+ }
149
+ .exit-reading-btn:hover { background: var(--mn-primary); color: #fff; }