@gouvfr/dsfr-roller 1.0.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 (113) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +11 -0
  3. package/index.js +5 -0
  4. package/package.json +65 -0
  5. package/src/component/component.js +50 -0
  6. package/src/component/components/action.js +28 -0
  7. package/src/component/components/breadcrumb.js +33 -0
  8. package/src/component/components/button.js +37 -0
  9. package/src/component/components/display-body.js +41 -0
  10. package/src/component/components/display-modal.js +29 -0
  11. package/src/component/components/footer.js +85 -0
  12. package/src/component/components/header.js +96 -0
  13. package/src/component/components/navigation.js +72 -0
  14. package/src/component/components/sidemenu.js +58 -0
  15. package/src/component/components/skiplink.js +49 -0
  16. package/src/component/components/translate.js +32 -0
  17. package/src/component/components/version.js +21 -0
  18. package/src/component/ejs/version/version.ejs +46 -0
  19. package/src/component/ejs/version/versions.ejs +31 -0
  20. package/src/component/ejs-pkg.js +6 -0
  21. package/src/component/render.js +19 -0
  22. package/src/constants.js +7 -0
  23. package/src/core/format-html.js +16 -0
  24. package/src/core/format-link.js +8 -0
  25. package/src/core/html-renderable.js +10 -0
  26. package/src/core/renderable.js +20 -0
  27. package/src/integration/bundler.js +47 -0
  28. package/src/integration/indexing/indexer.js +23 -0
  29. package/src/integration/indexing/sitemap.js +44 -0
  30. package/src/integration/redirect/redirection-type.js +4 -0
  31. package/src/integration/redirect/redirection.js +77 -0
  32. package/src/node/custom/html-container-node.js +7 -0
  33. package/src/node/directive/doc/accordion-container-directive.js +59 -0
  34. package/src/node/directive/doc/accordions-group-container-directive.js +12 -0
  35. package/src/node/directive/doc/anatomy-container-directive.js +61 -0
  36. package/src/node/directive/doc/button-leaf-directive.js +37 -0
  37. package/src/node/directive/doc/changelog-leaf-directive.js +238 -0
  38. package/src/node/directive/doc/figma-leaf-directive.js +21 -0
  39. package/src/node/directive/doc/guideline-container-directive.js +71 -0
  40. package/src/node/directive/doc/guidelines-container-directive.js +13 -0
  41. package/src/node/directive/doc/image-text-directive.js +13 -0
  42. package/src/node/directive/doc/pin-leaf-directive.js +46 -0
  43. package/src/node/directive/doc/storybook-leaf-directive.js +18 -0
  44. package/src/node/directive/doc/tab-container-directive.js +22 -0
  45. package/src/node/directive/doc/tab-navigation-container-directive.js +49 -0
  46. package/src/node/directive/doc/table-container-directive.js +56 -0
  47. package/src/node/directive/doc/tabs-container-directive.js +71 -0
  48. package/src/node/generic/blockquote-node.js +26 -0
  49. package/src/node/generic/break-node.js +11 -0
  50. package/src/node/generic/code-node.js +37 -0
  51. package/src/node/generic/definition-node.js +13 -0
  52. package/src/node/generic/emphasis-node.js +11 -0
  53. package/src/node/generic/heading-node.js +56 -0
  54. package/src/node/generic/html-node.js +11 -0
  55. package/src/node/generic/image-node.js +14 -0
  56. package/src/node/generic/image-reference-node.js +14 -0
  57. package/src/node/generic/inline-code-node.js +21 -0
  58. package/src/node/generic/link-node.js +26 -0
  59. package/src/node/generic/link-reference-node.js +14 -0
  60. package/src/node/generic/list-item-node.js +11 -0
  61. package/src/node/generic/list-node.js +15 -0
  62. package/src/node/generic/paragraph-node.js +11 -0
  63. package/src/node/generic/strong-node.js +11 -0
  64. package/src/node/generic/text-node.js +15 -0
  65. package/src/node/generic/thematic-break-node.js +12 -0
  66. package/src/node/gfm/table-body-node.js +11 -0
  67. package/src/node/gfm/table-cell-node.js +17 -0
  68. package/src/node/gfm/table-head-node.js +11 -0
  69. package/src/node/gfm/table-header-node.js +16 -0
  70. package/src/node/gfm/table-node.js +91 -0
  71. package/src/node/gfm/table-row-node.js +11 -0
  72. package/src/node/node-factory.js +128 -0
  73. package/src/node/node-root.js +25 -0
  74. package/src/node/node.js +106 -0
  75. package/src/page/body/custom-header.js +40 -0
  76. package/src/page/body/main.js +23 -0
  77. package/src/page/body/scheme.js +9 -0
  78. package/src/page/head/canonical.js +16 -0
  79. package/src/page/head/favicon.js +14 -0
  80. package/src/page/head/head.js +35 -0
  81. package/src/page/head/share.js +14 -0
  82. package/src/page/head/stylesheets.js +48 -0
  83. package/src/page/head/title.js +9 -0
  84. package/src/page/html.js +46 -0
  85. package/src/page/page.js +39 -0
  86. package/src/page/scripts/highlight.js +53 -0
  87. package/src/page/scripts/scripts.js +57 -0
  88. package/src/script/main/core/element.js +29 -0
  89. package/src/script/main/elements/copy-snippet.js +35 -0
  90. package/src/script/main/elements/searchbar.js +18 -0
  91. package/src/script/main/elements/storybook.js +20 -0
  92. package/src/script/main/index.js +10 -0
  93. package/src/script/search/index.js +0 -0
  94. package/src/style/main/components/_dsfr-doc-anatomy.scss +54 -0
  95. package/src/style/main/components/_dsfr-doc-code-snippet.scss +9 -0
  96. package/src/style/main/components/_dsfr-doc-figma-leaf.scss +6 -0
  97. package/src/style/main/components/_dsfr-doc-guideline.scss +58 -0
  98. package/src/style/main/components/_dsfr-doc-tab-navigation.scss +99 -0
  99. package/src/style/main/components/_dsfr-doc-version.scss +154 -0
  100. package/src/style/main/components/_index.scss +6 -0
  101. package/src/style/main/index.scss +3 -0
  102. package/src/style/main/third-party/_highlight.scss +227 -0
  103. package/src/style/main/third-party/_index.scss +1 -0
  104. package/src/style/main/utility/_dsfr-doc-code.scss +9 -0
  105. package/src/style/main/utility/_font.scss +31 -0
  106. package/src/style/main/utility/_icon.scss +4 -0
  107. package/src/style/main/utility/_index.scss +3 -0
  108. package/src/style/search/index.scss +0 -0
  109. package/src/template/template-factory.js +16 -0
  110. package/src/template/template.js +27 -0
  111. package/src/template/templates/editorial-template.js +45 -0
  112. package/src/template/templates/home-template.js +18 -0
  113. package/src/template/templates/search-template.js +20 -0
@@ -0,0 +1,27 @@
1
+ import { Renderable } from '../core/renderable.js';
2
+ import { nodeFactory } from '../node/node-factory.js';
3
+
4
+ class Template extends Renderable {
5
+ constructor (data) {
6
+ super(data);
7
+ nodeFactory.populate(data.fragments);
8
+ this._content = nodeFactory.create({
9
+ type: 'root',
10
+ children: data.nodes
11
+ });
12
+ }
13
+
14
+ get name () {
15
+ return this.constructor.NAME;
16
+ }
17
+
18
+ async render () {
19
+ return await this._content.render();
20
+ }
21
+
22
+ get text () {
23
+ return this._content.text;
24
+ }
25
+ }
26
+
27
+ export { Template };
@@ -0,0 +1,45 @@
1
+ import { Template } from '../template.js';
2
+ import { Sidemenu } from '../../component/components/sidemenu.js';
3
+ import { Breadcrumb } from '../../component/components/breadcrumb.js';
4
+
5
+ class EditorialTemplate extends Template {
6
+ constructor (data) {
7
+ super(data);
8
+
9
+ this._hasSidemenu = data?.resource?.navigation?.sidemenu !== undefined;
10
+
11
+ if (this._hasSidemenu) this._sidemenu = new Sidemenu(data.resource.navigation.sidemenu);
12
+
13
+ this._breadcrumb = new Breadcrumb(data.breadcrumb);
14
+ }
15
+
16
+ async render () {
17
+ const cols = [];
18
+ if (this._hasSidemenu) {
19
+ cols.push(`
20
+ <div class="fr-col-12 fr-col-md-4">
21
+ ${await this._sidemenu.render()}
22
+ </div>
23
+ `);
24
+ }
25
+
26
+ cols.push(`
27
+ <div class="fr-col-12 fr-col-md-8">
28
+ ${await this._breadcrumb.render()}
29
+ ${await super.render()}
30
+ </div>
31
+ `);
32
+
33
+
34
+ return `
35
+ <div class="fr-container">
36
+ <div class="fr-grid-row fr-grid-row--gutters fr-grid-row--center">
37
+ ${cols.join('')}
38
+ </div>
39
+ </div>`;
40
+ }
41
+ }
42
+
43
+ EditorialTemplate.NAME = 'editorial';
44
+
45
+ export { EditorialTemplate };
@@ -0,0 +1,18 @@
1
+ import { Template } from '../template.js';
2
+
3
+ class HomeTemplate extends Template {
4
+ constructor (data) {
5
+ super(data);
6
+ }
7
+
8
+ async render () {
9
+ return `
10
+ <div class="fr-container">
11
+ ${await super.render()}
12
+ </div>`;
13
+ }
14
+ }
15
+
16
+ HomeTemplate.NAME = 'home';
17
+
18
+ export { HomeTemplate };
@@ -0,0 +1,20 @@
1
+ import { Template } from '../template.js';
2
+
3
+ class SearchTemplate extends Template {
4
+ constructor (data) {
5
+ super(data);
6
+ }
7
+
8
+ async render () {
9
+ return `
10
+ <div class="fr-container">
11
+ <div id="results" class="dsfr-doc-results">
12
+
13
+ </div>
14
+ </div>`;
15
+ }
16
+ }
17
+
18
+ SearchTemplate.NAME = 'search';
19
+
20
+ export { SearchTemplate };