@simple-reporting/base 0.1.111 → 0.1.112
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.
- package/.github/workflows/npm-publish.yml +25 -25
- package/.nvmrc +1 -1
- package/README.md +23 -23
- package/cli.js +114 -114
- package/dev/.ddev/nginx_full/custom.conf +12 -12
- package/dev/index.html +17 -17
- package/dev/ldd.html +7 -7
- package/dev/livingdocs/Media/image/app.scss +25 -25
- package/dev/livingdocs/Media/image/general.scss +11 -11
- package/dev/livingdocs/Media/image/image.html +46 -46
- package/dev/livingdocs/Media/image/ldd.scss +1 -1
- package/dev/livingdocs/Media/image/pdf.scss +1 -1
- package/dev/livingdocs/Media/image/print.scss +7 -7
- package/dev/livingdocs/Media/image/properties.json +41 -41
- package/dev/livingdocs/Media/image/word.scss +1 -1
- package/dev/livingdocs/Properties/grid/app.scss +1 -1
- package/dev/livingdocs/Properties/grid/general.scss +95 -95
- package/dev/livingdocs/Properties/grid/ldd.scss +1 -1
- package/dev/livingdocs/Properties/grid/pdf.scss +1 -1
- package/dev/livingdocs/Properties/grid/print.scss +94 -94
- package/dev/livingdocs/Properties/grid/properties.json +68 -68
- package/dev/livingdocs/Properties/grid/web.scss +98 -98
- package/dev/livingdocs/Properties/grid/word.scss +1 -1
- package/dev/livingdocs/Text/paragraph/general.scss +9 -9
- package/dev/livingdocs/Text/paragraph/paragraph.html +22 -22
- package/dev/livingdocs/Titles/title-h1/general.scss +10 -10
- package/dev/livingdocs/Titles/title-h1/title-h1.html +16 -16
- package/dev/livingdocs/Titles/title-h2/app.scss +1 -1
- package/dev/livingdocs/Titles/title-h2/general.scss +13 -13
- package/dev/livingdocs/Titles/title-h2/ldd.scss +1 -1
- package/dev/livingdocs/Titles/title-h2/pdf.scss +1 -1
- package/dev/livingdocs/Titles/title-h2/print.scss +36 -36
- package/dev/livingdocs/Titles/title-h2/title-h2.html +24 -24
- package/dev/livingdocs/Titles/title-h2/web.scss +27 -27
- package/dev/livingdocs/Titles/title-h2/word.scss +1 -1
- package/dev/livingdocs/Titles/title-h3/app.scss +1 -1
- package/dev/livingdocs/Titles/title-h3/general.scss +13 -13
- package/dev/livingdocs/Titles/title-h3/ldd.scss +1 -1
- package/dev/livingdocs/Titles/title-h3/pdf.scss +1 -1
- package/dev/livingdocs/Titles/title-h3/print.scss +34 -34
- package/dev/livingdocs/Titles/title-h3/title-h3.html +24 -24
- package/dev/livingdocs/Titles/title-h3/web.scss +27 -27
- package/dev/livingdocs/Titles/title-h3/word.scss +1 -1
- package/dev/livingdocs/Titles/title-h4/app.scss +1 -1
- package/dev/livingdocs/Titles/title-h4/general.scss +13 -13
- package/dev/livingdocs/Titles/title-h4/ldd.scss +1 -1
- package/dev/livingdocs/Titles/title-h4/pdf.scss +1 -1
- package/dev/livingdocs/Titles/title-h4/print.scss +34 -34
- package/dev/livingdocs/Titles/title-h4/title-h4.html +24 -24
- package/dev/livingdocs/Titles/title-h4/web.scss +27 -27
- package/dev/livingdocs/Titles/title-h4/word.scss +1 -1
- package/dev/livingdocs/Titles/title-h5/general.scss +10 -10
- package/dev/livingdocs/Titles/title-h5/title-h5.html +16 -16
- package/dev/livingdocs/Titles/title-h6/general.scss +10 -10
- package/dev/livingdocs/Titles/title-h6/title-h6.html +16 -16
- package/dev/livingdocs.config.json +376 -376
- package/dev/nswow/ArticleAutoloader.ts +100 -100
- package/dev/nswow/ArticleLoader.ts +91 -91
- package/dev/nswow/colors.scss +3 -3
- package/dev/nswow/config.scss +13 -13
- package/dev/nswow/core-styles.scss +2 -2
- package/dev/nswow/fonts.scss +2 -2
- package/dev/nswow/grid.scss +2 -2
- package/dev/nswow/helpers.scss +2 -2
- package/dev/nswow/index.scss +9 -9
- package/dev/nswow/meta.scss +2 -2
- package/dev/nswow/spacer.scss +2 -2
- package/dev/nswow/system.scss +2 -2
- package/dev/nswow/typography.scss +3 -3
- package/dev/nswow.config.json +293 -293
- package/dev/package.json +61 -60
- package/dev/pdf/pdf-configuration-debug.xml +5 -5
- package/dev/pdf/pdf-configuration.xml +2 -2
- package/dev/pdf.ts +1 -1
- package/dev/src/App.vue +44 -44
- package/dev/src/Autoload.ts +6 -6
- package/dev/src/assets/images/mms-logo-black.svg +91 -91
- package/dev/src/assets/images/mms-logo-white.svg +105 -105
- package/dev/src/assets/scss/app.scss +39 -39
- package/dev/src/assets/scss/general.scss +17 -17
- package/dev/src/assets/scss/ldd.scss +27 -27
- package/dev/src/assets/scss/pdf.scss +2 -2
- package/dev/src/assets/scss/print.scss +1 -1
- package/dev/src/assets/scss/web.scss +1 -1
- package/dev/src/assets/scss/word.scss +2 -2
- package/dev/src/components/LanguageSwitch.vue +100 -100
- package/dev/src/components/MainNavigation.vue +209 -209
- package/dev/src/components/MenuItem/MenuArticle.vue +15 -15
- package/dev/src/components/MenuItem/MenuEntry.vue +26 -26
- package/dev/src/components/MenuItem/MenuExternal.vue +28 -28
- package/dev/src/components/MenuItem/index.ts +5 -5
- package/dev/src/components/PageFooter.vue +86 -86
- package/dev/src/components/PageHeader.vue +149 -149
- package/dev/src/components/PageModal.vue +95 -95
- package/dev/src/components/PrevNext.vue +144 -144
- package/dev/src/components/ScrollToTop.vue +63 -63
- package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +9 -9
- package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +151 -151
- package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +40 -40
- package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +21 -21
- package/dev/src/composables/config.ts +48 -48
- package/dev/src/i18n/index.ts +51 -51
- package/dev/src/i18n/translation.ts +85 -85
- package/dev/src/locales/de.json +15 -15
- package/dev/src/locales/en.json +15 -15
- package/dev/src/main.ts +16 -16
- package/dev/src/router/index.ts +47 -47
- package/dev/src/types/nswow.d.ts +73 -73
- package/dev/src/views/ArticleView.vue +77 -77
- package/dev/src/views/DownloadsView.vue +88 -88
- package/dev/src/views/HomeView.vue +35 -35
- package/dev/src/views/PageNotFound.vue +73 -73
- package/dev/src/views/SearchView.vue +126 -126
- package/dev/tsconfig.app.json +16 -16
- package/dev/tsconfig.node.json +19 -19
- package/dev/vite.config.ts +27 -27
- package/dev/word.ts +1 -1
- package/livingdocs/Buttons/button/app.scss +1 -1
- package/livingdocs/Buttons/button/button.html +18 -18
- package/livingdocs/Buttons/button/general.scss +33 -33
- package/livingdocs/Buttons/button/ldd.scss +1 -1
- package/livingdocs/Buttons/button/pdf.scss +1 -1
- package/livingdocs/Buttons/button/word.scss +1 -1
- package/livingdocs/Buttons/button-container/app.scss +1 -1
- package/livingdocs/Buttons/button-container/button-container.html +31 -31
- package/livingdocs/Buttons/button-container/general.scss +12 -12
- package/livingdocs/Buttons/button-container/ldd.scss +1 -1
- package/livingdocs/Buttons/button-container/pdf.scss +3 -3
- package/livingdocs/Buttons/button-container/properties.json +19 -19
- package/livingdocs/Buttons/button-container/word.scss +3 -3
- package/livingdocs/CV/cv-timeline/app.scss +1 -1
- package/livingdocs/CV/cv-timeline/cv-timeline.html +19 -19
- package/livingdocs/CV/cv-timeline/general.scss +1 -1
- package/livingdocs/CV/cv-timeline/ldd.scss +1 -1
- package/livingdocs/CV/cv-timeline/pdf.scss +1 -1
- package/livingdocs/CV/cv-timeline/print.scss +35 -35
- package/livingdocs/CV/cv-timeline/web.scss +27 -27
- package/livingdocs/CV/cv-timeline/word.scss +1 -1
- package/livingdocs/Container/column-container/column-container.html +44 -44
- package/livingdocs/Container/column-container/general.scss +105 -105
- package/livingdocs/Container/column-container/properties.json +83 -83
- package/livingdocs/Lists/alphanumeric-list-group/alphanumeric-list-group.html +25 -25
- package/livingdocs/Lists/alphanumeric-list-group/app.scss +1 -1
- package/livingdocs/Lists/alphanumeric-list-group/general.scss +5 -5
- package/livingdocs/Lists/alphanumeric-list-group/ldd.scss +1 -1
- package/livingdocs/Lists/alphanumeric-list-group/pdf.scss +1 -1
- package/livingdocs/Lists/alphanumeric-list-group/word.scss +1 -1
- package/livingdocs/Lists/list-item/app.scss +1 -1
- package/livingdocs/Lists/list-item/general.scss +4 -4
- package/livingdocs/Lists/list-item/ldd.scss +1 -1
- package/livingdocs/Lists/list-item/list-item.html +17 -17
- package/livingdocs/Lists/list-item/pdf.scss +1 -1
- package/livingdocs/Lists/list-item/word.scss +1 -1
- package/livingdocs/Lists/ordered-list-group/app.scss +1 -1
- package/livingdocs/Lists/ordered-list-group/general.scss +5 -5
- package/livingdocs/Lists/ordered-list-group/ldd.scss +1 -1
- package/livingdocs/Lists/ordered-list-group/ordered-list-group.html +25 -25
- package/livingdocs/Lists/ordered-list-group/pdf.scss +1 -1
- package/livingdocs/Lists/ordered-list-group/word.scss +1 -1
- package/livingdocs/Lists/unordered-list-group/app.scss +1 -1
- package/livingdocs/Lists/unordered-list-group/general.scss +5 -5
- package/livingdocs/Lists/unordered-list-group/ldd.scss +1 -1
- package/livingdocs/Lists/unordered-list-group/pdf.scss +1 -1
- package/livingdocs/Lists/unordered-list-group/unordered-list-group.html +25 -25
- package/livingdocs/Lists/unordered-list-group/word.scss +1 -1
- package/livingdocs/Media/chart/app.scss +19 -19
- package/livingdocs/Media/chart/chart.html +29 -29
- package/livingdocs/Media/chart/general.scss +11 -11
- package/livingdocs/Media/chart/ldd.scss +1 -1
- package/livingdocs/Media/chart/pdf.scss +9 -9
- package/livingdocs/Media/chart/properties.json +41 -41
- package/livingdocs/Media/chart/word.scss +1 -1
- package/livingdocs/Media/graphic/app.scss +1 -1
- package/livingdocs/Media/graphic/general.scss +18 -18
- package/livingdocs/Media/graphic/graphic.html +29 -29
- package/livingdocs/Media/graphic/ldd.scss +1 -1
- package/livingdocs/Media/graphic/pdf.scss +1 -1
- package/livingdocs/Media/graphic/properties.json +36 -36
- package/livingdocs/Media/graphic/word.scss +1 -1
- package/livingdocs/Media/image/app.scss +25 -25
- package/livingdocs/Media/image/general.scss +11 -11
- package/livingdocs/Media/image/image.html +55 -55
- package/livingdocs/Media/image/ldd.scss +1 -1
- package/livingdocs/Media/image/pdf.scss +1 -1
- package/livingdocs/Media/image/print.scss +7 -7
- package/livingdocs/Media/image/properties.json +41 -41
- package/livingdocs/Media/image/word.scss +1 -1
- package/livingdocs/Media/nswow-table/app.scss +2 -2
- package/livingdocs/Media/nswow-table/app.ts +35 -35
- package/livingdocs/Media/nswow-table/general.scss +281 -281
- package/livingdocs/Media/nswow-table/ldd.scss +2 -2
- package/livingdocs/Media/nswow-table/nswow-table.html +30 -30
- package/livingdocs/Media/nswow-table/pdf.scss +8 -8
- package/livingdocs/Media/nswow-table/properties.json +66 -66
- package/livingdocs/Media/nswow-table/web.scss +23 -23
- package/livingdocs/Media/nswow-table/word.scss +2 -2
- package/livingdocs/Media/video/app.scss +1 -1
- package/livingdocs/Media/video/general.scss +7 -7
- package/livingdocs/Media/video/ldd.scss +1 -1
- package/livingdocs/Media/video/pdf.scss +1 -1
- package/livingdocs/Media/video/print.scss +5 -5
- package/livingdocs/Media/video/properties.json +41 -41
- package/livingdocs/Media/video/video.html +26 -26
- package/livingdocs/Media/video/word.scss +1 -1
- package/livingdocs/Misc/accordion/accordion.html +56 -56
- package/livingdocs/Misc/accordion/app.scss +63 -63
- package/livingdocs/Misc/accordion/app.ts +10 -10
- package/livingdocs/Misc/accordion/general.scss +44 -44
- package/livingdocs/Misc/accordion/ldd.scss +36 -36
- package/livingdocs/Misc/accordion/pdf.scss +39 -39
- package/livingdocs/Misc/accordion/word.scss +39 -39
- package/livingdocs/Misc/anchor/anchor.html +15 -15
- package/livingdocs/Misc/anchor/app.scss +10 -10
- package/livingdocs/Misc/anchor/app.ts +11 -11
- package/livingdocs/Misc/anchor/general.scss +1 -1
- package/livingdocs/Misc/anchor/pdf.scss +1 -1
- package/livingdocs/Misc/anchor/print.scss +3 -3
- package/livingdocs/Misc/anchor/word.scss +1 -1
- package/livingdocs/Misc/spacer/app.scss +1 -1
- package/livingdocs/Misc/spacer/general.scss +8 -8
- package/livingdocs/Misc/spacer/ldd.scss +1 -1
- package/livingdocs/Misc/spacer/pdf.scss +1 -1
- package/livingdocs/Misc/spacer/print.scss +18 -18
- package/livingdocs/Misc/spacer/properties.json +52 -52
- package/livingdocs/Misc/spacer/spacer.html +12 -12
- package/livingdocs/Misc/spacer/web.scss +18 -18
- package/livingdocs/Misc/spacer/word.scss +1 -1
- package/livingdocs/PDF_only/pdf-cover/ldd.scss +42 -42
- package/livingdocs/PDF_only/pdf-cover/pdf-cover.html +29 -29
- package/livingdocs/PDF_only/pdf-cover/pdf.scss +1 -1
- package/livingdocs/PDF_only/pdf-cover/word.scss +1 -1
- package/livingdocs/PDF_only/pdf-cover-chapter/ldd.scss +19 -19
- package/livingdocs/PDF_only/pdf-cover-chapter/pdf-chapter-cover.html +18 -18
- package/livingdocs/PDF_only/pdf-cover-chapter/pdf.scss +1 -1
- package/livingdocs/PDF_only/pdf-cover-chapter/print.scss +19 -19
- package/livingdocs/PDF_only/pdf-cover-chapter/word.scss +1 -1
- package/livingdocs/PDF_only/pdf-pagebreak/general.scss +4 -4
- package/livingdocs/PDF_only/pdf-pagebreak/ldd.scss +5 -5
- package/livingdocs/PDF_only/pdf-pagebreak/pdf-pagebreak.html +8 -8
- package/livingdocs/PDF_only/pdf-publication-title/general.scss +5 -5
- package/livingdocs/PDF_only/pdf-publication-title/pdf-publication-title.html +15 -15
- package/livingdocs/PDF_only/pdf-toc-item/general.scss +41 -41
- package/livingdocs/PDF_only/pdf-toc-item/pdf-toc-item.html +33 -33
- package/livingdocs/PDF_only/pdf-toc-item/properties.json +7 -7
- package/livingdocs/PDF_only/pdf-toc-item-blank/general.scss +5 -5
- package/livingdocs/PDF_only/pdf-toc-item-blank/pdf-toc-item-blank.html +11 -11
- package/livingdocs/PDF_only/pdf-toc-item-title/general.scss +5 -5
- package/livingdocs/PDF_only/pdf-toc-item-title/pdf-toc-item-title.html +11 -11
- package/livingdocs/PDF_only/pdf-toc-page/app.scss +1 -1
- package/livingdocs/PDF_only/pdf-toc-page/general.scss +1 -1
- package/livingdocs/PDF_only/pdf-toc-page/ldd.scss +1 -1
- package/livingdocs/PDF_only/pdf-toc-page/pdf-toc-page.html +33 -33
- package/livingdocs/PDF_only/pdf-toc-page/pdf.scss +1 -1
- package/livingdocs/PDF_only/pdf-toc-page/properties.json +12 -12
- package/livingdocs/PDF_only/pdf-toc-page/word.scss +1 -1
- package/livingdocs/PDF_only/pdf-video-link/ldd.scss +16 -16
- package/livingdocs/PDF_only/pdf-video-link/pdf-video-link.html +41 -41
- package/livingdocs/PDF_only/pdf-video-link/pdf.scss +1 -1
- package/livingdocs/PDF_only/pdf-video-link/print.scss +12 -12
- package/livingdocs/PDF_only/pdf-video-link/word.scss +1 -1
- package/livingdocs/Properties/grid/app.scss +1 -1
- package/livingdocs/Properties/grid/general.scss +95 -95
- package/livingdocs/Properties/grid/ldd.scss +1 -1
- package/livingdocs/Properties/grid/pdf.scss +1 -1
- package/livingdocs/Properties/grid/print.scss +94 -94
- package/livingdocs/Properties/grid/properties.json +68 -68
- package/livingdocs/Properties/grid/web.scss +98 -98
- package/livingdocs/Properties/grid/word.scss +1 -1
- package/livingdocs/Signatures/signature-container/app.scss +1 -1
- package/livingdocs/Signatures/signature-container/general.scss +7 -7
- package/livingdocs/Signatures/signature-container/ldd.scss +1 -1
- package/livingdocs/Signatures/signature-container/pdf.scss +1 -1
- package/livingdocs/Signatures/signature-container/signature-container.html +30 -30
- package/livingdocs/Signatures/signature-container/word.scss +1 -1
- package/livingdocs/Signatures/signature-item/app.scss +1 -1
- package/livingdocs/Signatures/signature-item/general.scss +53 -53
- package/livingdocs/Signatures/signature-item/ldd.scss +1 -1
- package/livingdocs/Signatures/signature-item/pdf.scss +1 -1
- package/livingdocs/Signatures/signature-item/signature-item.html +23 -23
- package/livingdocs/Signatures/signature-item/word.scss +1 -1
- package/livingdocs/Text/footnote/app.scss +1 -1
- package/livingdocs/Text/footnote/footnote.html +14 -14
- package/livingdocs/Text/footnote/general.scss +12 -12
- package/livingdocs/Text/footnote/ldd.scss +1 -1
- package/livingdocs/Text/footnote/pdf.scss +1 -1
- package/livingdocs/Text/footnote/print.scss +36 -36
- package/livingdocs/Text/footnote/web.scss +27 -27
- package/livingdocs/Text/footnote/word.scss +1 -1
- package/livingdocs/Text/lead/general.scss +9 -9
- package/livingdocs/Text/lead/lead.html +23 -23
- package/livingdocs/Text/paragraph/general.scss +9 -9
- package/livingdocs/Text/paragraph/paragraph.html +24 -24
- package/livingdocs/Text/quote/general.scss +43 -43
- package/livingdocs/Text/quote/properties.json +7 -7
- package/livingdocs/Text/quote/quote.html +29 -29
- package/livingdocs/Text/quote-with-portrait/general.scss +81 -81
- package/livingdocs/Text/quote-with-portrait/properties.json +12 -12
- package/livingdocs/Text/quote-with-portrait/quote-with-portrait.html +49 -49
- package/livingdocs/Titles/title-h1/general.scss +10 -10
- package/livingdocs/Titles/title-h1/title-h1.html +16 -16
- package/livingdocs/Titles/title-h2/app.scss +1 -1
- package/livingdocs/Titles/title-h2/general.scss +13 -13
- package/livingdocs/Titles/title-h2/ldd.scss +1 -1
- package/livingdocs/Titles/title-h2/pdf.scss +1 -1
- package/livingdocs/Titles/title-h2/print.scss +36 -36
- package/livingdocs/Titles/title-h2/title-h2.html +26 -26
- package/livingdocs/Titles/title-h2/web.scss +27 -27
- package/livingdocs/Titles/title-h2/word.scss +1 -1
- package/livingdocs/Titles/title-h3/app.scss +1 -1
- package/livingdocs/Titles/title-h3/general.scss +13 -13
- package/livingdocs/Titles/title-h3/ldd.scss +1 -1
- package/livingdocs/Titles/title-h3/pdf.scss +1 -1
- package/livingdocs/Titles/title-h3/print.scss +34 -34
- package/livingdocs/Titles/title-h3/title-h3.html +26 -26
- package/livingdocs/Titles/title-h3/web.scss +27 -27
- package/livingdocs/Titles/title-h3/word.scss +1 -1
- package/livingdocs/Titles/title-h4/app.scss +1 -1
- package/livingdocs/Titles/title-h4/general.scss +13 -13
- package/livingdocs/Titles/title-h4/ldd.scss +1 -1
- package/livingdocs/Titles/title-h4/pdf.scss +1 -1
- package/livingdocs/Titles/title-h4/print.scss +34 -34
- package/livingdocs/Titles/title-h4/title-h4.html +26 -26
- package/livingdocs/Titles/title-h4/web.scss +27 -27
- package/livingdocs/Titles/title-h4/word.scss +1 -1
- package/livingdocs/Titles/title-h5/general.scss +10 -10
- package/livingdocs/Titles/title-h5/title-h5.html +16 -16
- package/livingdocs/Titles/title-h6/general.scss +10 -10
- package/livingdocs/Titles/title-h6/title-h6.html +16 -16
- package/package.json +50 -50
- package/preparePublish.cjs +95 -95
- package/scripts/beaver.js +316 -316
- package/scripts/build.js +812 -812
- package/scripts/components.js +566 -566
- package/scripts/doPublish.js +43 -43
- package/scripts/init.js +45 -45
- package/scripts/migrate-livingdocs-build/LICENSE +21 -21
- package/scripts/migrate-livingdocs-build/bin/build.js +53 -53
- package/scripts/migrate-livingdocs-build/bin/migrate.js +43 -43
- package/scripts/migrate-livingdocs-build/dev/build/v1.js +51 -51
- package/scripts/migrate-livingdocs-build/dev/build/v2.js +44 -44
- package/scripts/migrate-livingdocs-build/dev/build/zip-archive.js +39 -39
- package/scripts/migrate-livingdocs-build/dev/build.js +7 -7
- package/scripts/migrate-livingdocs-build/dev/configuration-defaults.js +18 -18
- package/scripts/migrate-livingdocs-build/dev/configuration.js +34 -34
- package/scripts/migrate-livingdocs-build/dev/lib.d.ts +1 -1
- package/scripts/migrate-livingdocs-build/dev/lib.js +251 -251
- package/scripts/migrate-livingdocs-build/dev/livingdocs-design.d.ts +2 -2
- package/scripts/migrate-livingdocs-build/dev/livingdocs-design.js +80 -80
- package/scripts/migrate-livingdocs-build/dev/logger.js +16 -16
- package/scripts/migrate-livingdocs-build/dev/migrate.js +241 -241
- package/scripts/migrate-livingdocs-build/readme.md +62 -62
- package/scripts/preparePublish.js +88 -88
- package/scripts/renamePackage.d.ts +1 -1
- package/scripts/renamePackage.js +48 -48
- package/scripts/utils.js +106 -106
- package/scripts/vite.js +58 -58
- package/scss/colors/functions.scss +18 -18
- package/scss/colors/index.scss +3 -3
- package/scss/colors/mixins.scss +45 -45
- package/scss/colors/variables.scss +6 -6
- package/scss/config.scss +7 -7
- package/scss/core-styles.scss +22 -22
- package/scss/fonts/functions.scss +21 -21
- package/scss/fonts/index.scss +3 -3
- package/scss/fonts/mixins.scss +31 -31
- package/scss/fonts/variables.scss +8 -8
- package/scss/grid/functions.scss +29 -29
- package/scss/grid/index.scss +3 -3
- package/scss/grid/mixins.scss +388 -388
- package/scss/grid/variables.scss +10 -10
- package/scss/helpers/index.scss +3 -3
- package/scss/helpers/mixins.scss +87 -87
- package/scss/helpers/variables.scss +7 -7
- package/scss/index.scss +8 -8
- package/scss/meta/functions.scss +64 -64
- package/scss/meta/index.scss +3 -3
- package/scss/meta/mixins.scss +6 -6
- package/scss/meta/variables.scss +8 -8
- package/scss/spacer/functions.scss +9 -9
- package/scss/spacer/index.scss +3 -3
- package/scss/spacer/mixins.scss +236 -236
- package/scss/spacer/variables.scss +6 -6
- package/scss/system/functions.scss +77 -77
- package/scss/system/index.scss +3 -3
- package/scss/system/mixins.scss +27 -27
- package/scss/system/root.scss +39 -39
- package/scss/system/variables.scss +13 -13
- package/scss/typography/functions.scss +63 -63
- package/scss/typography/index.scss +3 -3
- package/scss/typography/mixins.scss +262 -262
- package/scss/typography/variables.scss +11 -11
package/scripts/beaver.js
CHANGED
|
@@ -1,316 +1,316 @@
|
|
|
1
|
-
import { writeFileSync, readFileSync } from 'node:fs';
|
|
2
|
-
import { resolve, relative } from 'node:path';
|
|
3
|
-
import { colors } from './colors.js';
|
|
4
|
-
import { readNsWowJson } from './utils.js';
|
|
5
|
-
import colorPalette from '@kne/color-palette';
|
|
6
|
-
/**
|
|
7
|
-
* Maps the values of an object or array recursively.
|
|
8
|
-
*
|
|
9
|
-
* @param {Object|Array} values - The object or array of values to map.
|
|
10
|
-
* @returns {Object|Array} - The mapped object or array.
|
|
11
|
-
*/
|
|
12
|
-
function mapValues(values) {
|
|
13
|
-
let r = {};
|
|
14
|
-
if (Array.isArray(values)) {
|
|
15
|
-
for (let x = 0; x < values.length; x++) {
|
|
16
|
-
if (typeof values[x].name === 'undefined') {
|
|
17
|
-
if (!Array.isArray(r)) {
|
|
18
|
-
r = [];
|
|
19
|
-
}
|
|
20
|
-
r.push(mapValues(values[x]));
|
|
21
|
-
} else {
|
|
22
|
-
r[values[x].name] = mapValues(values[x]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
} else if (typeof values === 'object') {
|
|
26
|
-
for (const label in values) {
|
|
27
|
-
if (label !== 'name') {
|
|
28
|
-
r[label] = mapValues(values[label]);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
} else {
|
|
32
|
-
if (values === '') {
|
|
33
|
-
return `""`;
|
|
34
|
-
}
|
|
35
|
-
return values;
|
|
36
|
-
}
|
|
37
|
-
return r;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Generates SCSS code to import and write typography mixins.
|
|
42
|
-
*
|
|
43
|
-
* @param {Object} typography - The typography configuration object.
|
|
44
|
-
* @param {Object} typography.typography - The typography mixin definitions.
|
|
45
|
-
* @returns {string} - The generated SCSS code.
|
|
46
|
-
*/
|
|
47
|
-
function writeTypographyScss(typography) {
|
|
48
|
-
let r = [`@use "config";`, `@forward "@simple-reporting/base/scss/typography";`];
|
|
49
|
-
if (typography) {
|
|
50
|
-
if (typography.typography) {
|
|
51
|
-
let o = [];
|
|
52
|
-
|
|
53
|
-
for (const typo in typography.typography) {
|
|
54
|
-
o.push(`@mixin ${typo}($margins: false) {`);
|
|
55
|
-
o.push(` @include typography.get("${typo}", $margins);`);
|
|
56
|
-
o.push(`}\n`);
|
|
57
|
-
}
|
|
58
|
-
if (o.length) {
|
|
59
|
-
r.push(`@use "@simple-reporting/base/scss/typography";\n`);
|
|
60
|
-
r.push(o.join(`\n`));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return r.join(`\n`);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Writes SCSS code for importing and forwarding colors from a config file.
|
|
69
|
-
*
|
|
70
|
-
* @param {Object} colors - The colors object containing color keys and their values.
|
|
71
|
-
* @returns {string} - The SCSS code for importing and forwarding colors.
|
|
72
|
-
*/
|
|
73
|
-
function writeColorsScss(colors) {
|
|
74
|
-
let r = [`@use "config";`, `@forward "@simple-reporting/base/scss/colors";`];
|
|
75
|
-
if (colors) {
|
|
76
|
-
if (colors.colors) {
|
|
77
|
-
let o = [];
|
|
78
|
-
|
|
79
|
-
for (const color in colors.colors) {
|
|
80
|
-
o.push(`@function ${color}() {`);
|
|
81
|
-
o.push(` @return colors.get("${color}");`);
|
|
82
|
-
o.push(`}\n`);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (o.length) {
|
|
86
|
-
r.push(`@use "@simple-reporting/base/scss/colors";\n`);
|
|
87
|
-
r.push(o.join(`\n`));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return r.join(`\n`);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Checks if there are any commas outside of parentheses in the given text.
|
|
96
|
-
*
|
|
97
|
-
* @param {string} text - The text to be checked.
|
|
98
|
-
* @return {boolean} - True if there is at least one comma outside of parentheses, false otherwise.
|
|
99
|
-
*/
|
|
100
|
-
function hasCommasOutsideOfParentheses(text) {
|
|
101
|
-
let depth = 0;
|
|
102
|
-
for (let char of text) {
|
|
103
|
-
if (char === '(') depth++;
|
|
104
|
-
else if (char === ')') depth--;
|
|
105
|
-
else if (char === ',' && depth === 0) return true;
|
|
106
|
-
}
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Determines if there are points outside of parentheses in the given text.
|
|
112
|
-
*
|
|
113
|
-
* @param {string} text - The text to check.
|
|
114
|
-
* @return {boolean} - True if there are points outside of parentheses, false otherwise.
|
|
115
|
-
*/
|
|
116
|
-
function hasPointsOutsideOfParentheses(text) {
|
|
117
|
-
let depth = 0;
|
|
118
|
-
for (let char of text) {
|
|
119
|
-
if (char === '(') depth++;
|
|
120
|
-
else if (char === ')') depth--;
|
|
121
|
-
else if (char === '.' && depth === 0) return true;
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Converts a JavaScript object into SCSS variables.
|
|
128
|
-
*
|
|
129
|
-
* @param {object} values - The JavaScript object containing the variable names and values.
|
|
130
|
-
* @param {number} indent - The number of spaces to indent each line of the generated SCSS. Default is 2.
|
|
131
|
-
* @returns {string} - The SCSS variables as a string.
|
|
132
|
-
*/
|
|
133
|
-
function makeScssVariables(values, indent = 2) {
|
|
134
|
-
let r = [];
|
|
135
|
-
if (typeof values === 'object') {
|
|
136
|
-
r.push(`(`);
|
|
137
|
-
let v = [];
|
|
138
|
-
for (const variables in values) {
|
|
139
|
-
if (Array.isArray(values)) {
|
|
140
|
-
v.push(
|
|
141
|
-
`${' '.repeat(indent + 2)}var${variables}: ${makeScssVariables(values[variables], indent + 2)}`,
|
|
142
|
-
);
|
|
143
|
-
} else {
|
|
144
|
-
v.push(
|
|
145
|
-
`${' '.repeat(indent + 2)}${variables}: ${makeScssVariables(values[variables], indent + 2)}`,
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
r.push(v.join(`,\n`));
|
|
150
|
-
r.push(`${' '.repeat(indent)})`);
|
|
151
|
-
} else {
|
|
152
|
-
if (
|
|
153
|
-
typeof values === 'string' &&
|
|
154
|
-
values !== `""` &&
|
|
155
|
-
(hasPointsOutsideOfParentheses(values) ||
|
|
156
|
-
hasCommasOutsideOfParentheses(values))
|
|
157
|
-
) {
|
|
158
|
-
values = `\"${values.replaceAll('"', '\\"')}\"`;
|
|
159
|
-
}
|
|
160
|
-
return values;
|
|
161
|
-
}
|
|
162
|
-
return r.join(`\n`);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Generates configuration files for nswow.
|
|
167
|
-
* @param {number} [verbose=0] - The verbosity level. Default is 0.
|
|
168
|
-
* @returns {Promise<void>} - A promise that resolves once the files have been generated.
|
|
169
|
-
*/
|
|
170
|
-
async function beaver(verbose = 0) {
|
|
171
|
-
const configJson = await readNsWowJson();
|
|
172
|
-
const nswowPath = resolve(process.cwd(), './nswow');
|
|
173
|
-
|
|
174
|
-
if (typeof verbose === 'boolean') {
|
|
175
|
-
verbose = verbose ? 1 : 0;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if (typeof configJson.system === 'undefined') {
|
|
179
|
-
configJson.system = {};
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (typeof configJson.system.environment === 'undefined') {
|
|
183
|
-
configJson.system.environment = process.env.NODE_ENV;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (typeof configJson.fonts !== 'undefined') {
|
|
187
|
-
const fontBasePath = configJson.fonts['font-base-path'] ?? '';
|
|
188
|
-
if (fontBasePath.length) {
|
|
189
|
-
configJson.fonts['font-base-path'] = '.' + fontBasePath;
|
|
190
|
-
}
|
|
191
|
-
if (typeof configJson.fonts.fonts !== 'undefined') {
|
|
192
|
-
for (let x = 0; x < configJson.fonts.fonts.length; x++) {
|
|
193
|
-
let font = configJson.fonts.fonts[x];
|
|
194
|
-
if (typeof font === 'string') {
|
|
195
|
-
configJson.fonts.fonts[x] = JSON.parse(
|
|
196
|
-
readFileSync(
|
|
197
|
-
resolve(process.cwd(), `${fontBasePath}/${font}/styles.json`),
|
|
198
|
-
),
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
const map = {};
|
|
206
|
-
|
|
207
|
-
for (const file in configJson) {
|
|
208
|
-
map[file] = {};
|
|
209
|
-
for (const variable in configJson[file]) {
|
|
210
|
-
map[file][variable] = mapValues(configJson[file][variable]);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
if (map?.colors?.colors?.shade) {
|
|
215
|
-
const shade = map.colors.colors.shade.color;
|
|
216
|
-
if (!map.colors.colors['shade-50']) {
|
|
217
|
-
map.colors.colors['shade-50'] = { color: colorPalette(shade, 0.5) };
|
|
218
|
-
}
|
|
219
|
-
if (!map.colors.colors['shade-100']) {
|
|
220
|
-
map.colors.colors['shade-100'] = { color: colorPalette(shade, 1) };
|
|
221
|
-
}
|
|
222
|
-
if (!map.colors.colors['shade-200']) {
|
|
223
|
-
map.colors.colors['shade-200'] = { color: colorPalette(shade, 2) };
|
|
224
|
-
}
|
|
225
|
-
if (!map.colors.colors['shade-300']) {
|
|
226
|
-
map.colors.colors['shade-300'] = { color: colorPalette(shade, 3) };
|
|
227
|
-
}
|
|
228
|
-
if (!map.colors.colors['shade-400']) {
|
|
229
|
-
map.colors.colors['shade-400'] = { color: colorPalette(shade, 4) };
|
|
230
|
-
}
|
|
231
|
-
if (!map.colors.colors['shade-500']) {
|
|
232
|
-
map.colors.colors['shade-500'] = { color: colorPalette(shade, 5) };
|
|
233
|
-
}
|
|
234
|
-
if (!map.colors.colors['shade-600']) {
|
|
235
|
-
map.colors.colors['shade-600'] = { color: colorPalette(shade, 6) };
|
|
236
|
-
}
|
|
237
|
-
if (!map.colors.colors['shade-700']) {
|
|
238
|
-
map.colors.colors['shade-700'] = { color: colorPalette(shade, 7) };
|
|
239
|
-
}
|
|
240
|
-
if (!map.colors.colors['shade-800']) {
|
|
241
|
-
map.colors.colors['shade-800'] = { color: colorPalette(shade, 8) };
|
|
242
|
-
}
|
|
243
|
-
if (!map.colors.colors['shade-900']) {
|
|
244
|
-
map.colors.colors['shade-900'] = { color: colorPalette(shade, 9) };
|
|
245
|
-
}
|
|
246
|
-
if (!map.colors.colors['shade-950']) {
|
|
247
|
-
map.colors.colors['shade-950'] = { color: colorPalette(shade, 9.5) };
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
let configOutput = [];
|
|
252
|
-
[
|
|
253
|
-
'system',
|
|
254
|
-
'fonts',
|
|
255
|
-
'meta',
|
|
256
|
-
'grid',
|
|
257
|
-
'colors',
|
|
258
|
-
'typography',
|
|
259
|
-
'spacer',
|
|
260
|
-
'helpers',
|
|
261
|
-
].forEach((file) => {
|
|
262
|
-
if (typeof map[file] !== 'undefined') {
|
|
263
|
-
const o = [];
|
|
264
|
-
o.push(
|
|
265
|
-
`@use "@simple-reporting/base/scss/${file}/variables.scss" as ${file}Variables with (`,
|
|
266
|
-
);
|
|
267
|
-
let v = [];
|
|
268
|
-
for (const variable in map[file]) {
|
|
269
|
-
v.push(` $${variable}: ${makeScssVariables(map[file][variable])}`);
|
|
270
|
-
}
|
|
271
|
-
o.push(v.join(`,\n`));
|
|
272
|
-
o.push(');\n');
|
|
273
|
-
configOutput.push(o.join(`\n`));
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
configOutput = configOutput.join(`\n`);
|
|
278
|
-
const configFile = `${nswowPath}/config.scss`;
|
|
279
|
-
writeFileSync(configFile, configOutput);
|
|
280
|
-
|
|
281
|
-
const typographyFile = `${nswowPath}/typography.scss`;
|
|
282
|
-
const typographyOutput = writeTypographyScss(map.typography);
|
|
283
|
-
writeFileSync(typographyFile, typographyOutput);
|
|
284
|
-
|
|
285
|
-
const colorsFile = `${nswowPath}/colors.scss`;
|
|
286
|
-
const colorsOutput = writeColorsScss(map.colors);
|
|
287
|
-
writeFileSync(colorsFile, colorsOutput);
|
|
288
|
-
|
|
289
|
-
if (verbose > 0) {
|
|
290
|
-
console.log(colors.info(`\nThe following files has been written.\n`));
|
|
291
|
-
|
|
292
|
-
console.log(
|
|
293
|
-
colors.bgWhite(colors.file(relative(process.cwd(), configFile))),
|
|
294
|
-
);
|
|
295
|
-
if (verbose > 1) {
|
|
296
|
-
console.log(colors.prompt(`\n` + configOutput + `\n`));
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
console.log(
|
|
300
|
-
colors.bgWhite(colors.file(relative(process.cwd(), typographyFile))),
|
|
301
|
-
);
|
|
302
|
-
if (verbose > 1) {
|
|
303
|
-
console.log(colors.prompt(`\n` + typographyOutput + `\n`));
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
console.log(
|
|
307
|
-
colors.bgWhite(colors.file(relative(process.cwd(), colorsFile))),
|
|
308
|
-
);
|
|
309
|
-
if (verbose > 1) {
|
|
310
|
-
console.log(colors.prompt(`\n` + colorsOutput + `\n`));
|
|
311
|
-
}
|
|
312
|
-
console.log('');
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
export { beaver };
|
|
1
|
+
import { writeFileSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve, relative } from 'node:path';
|
|
3
|
+
import { colors } from './colors.js';
|
|
4
|
+
import { readNsWowJson } from './utils.js';
|
|
5
|
+
import colorPalette from '@kne/color-palette';
|
|
6
|
+
/**
|
|
7
|
+
* Maps the values of an object or array recursively.
|
|
8
|
+
*
|
|
9
|
+
* @param {Object|Array} values - The object or array of values to map.
|
|
10
|
+
* @returns {Object|Array} - The mapped object or array.
|
|
11
|
+
*/
|
|
12
|
+
function mapValues(values) {
|
|
13
|
+
let r = {};
|
|
14
|
+
if (Array.isArray(values)) {
|
|
15
|
+
for (let x = 0; x < values.length; x++) {
|
|
16
|
+
if (typeof values[x].name === 'undefined') {
|
|
17
|
+
if (!Array.isArray(r)) {
|
|
18
|
+
r = [];
|
|
19
|
+
}
|
|
20
|
+
r.push(mapValues(values[x]));
|
|
21
|
+
} else {
|
|
22
|
+
r[values[x].name] = mapValues(values[x]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
} else if (typeof values === 'object') {
|
|
26
|
+
for (const label in values) {
|
|
27
|
+
if (label !== 'name') {
|
|
28
|
+
r[label] = mapValues(values[label]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
if (values === '') {
|
|
33
|
+
return `""`;
|
|
34
|
+
}
|
|
35
|
+
return values;
|
|
36
|
+
}
|
|
37
|
+
return r;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Generates SCSS code to import and write typography mixins.
|
|
42
|
+
*
|
|
43
|
+
* @param {Object} typography - The typography configuration object.
|
|
44
|
+
* @param {Object} typography.typography - The typography mixin definitions.
|
|
45
|
+
* @returns {string} - The generated SCSS code.
|
|
46
|
+
*/
|
|
47
|
+
function writeTypographyScss(typography) {
|
|
48
|
+
let r = [`@use "config";`, `@forward "@simple-reporting/base/scss/typography";`];
|
|
49
|
+
if (typography) {
|
|
50
|
+
if (typography.typography) {
|
|
51
|
+
let o = [];
|
|
52
|
+
|
|
53
|
+
for (const typo in typography.typography) {
|
|
54
|
+
o.push(`@mixin ${typo}($margins: false) {`);
|
|
55
|
+
o.push(` @include typography.get("${typo}", $margins);`);
|
|
56
|
+
o.push(`}\n`);
|
|
57
|
+
}
|
|
58
|
+
if (o.length) {
|
|
59
|
+
r.push(`@use "@simple-reporting/base/scss/typography";\n`);
|
|
60
|
+
r.push(o.join(`\n`));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return r.join(`\n`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Writes SCSS code for importing and forwarding colors from a config file.
|
|
69
|
+
*
|
|
70
|
+
* @param {Object} colors - The colors object containing color keys and their values.
|
|
71
|
+
* @returns {string} - The SCSS code for importing and forwarding colors.
|
|
72
|
+
*/
|
|
73
|
+
function writeColorsScss(colors) {
|
|
74
|
+
let r = [`@use "config";`, `@forward "@simple-reporting/base/scss/colors";`];
|
|
75
|
+
if (colors) {
|
|
76
|
+
if (colors.colors) {
|
|
77
|
+
let o = [];
|
|
78
|
+
|
|
79
|
+
for (const color in colors.colors) {
|
|
80
|
+
o.push(`@function ${color}() {`);
|
|
81
|
+
o.push(` @return colors.get("${color}");`);
|
|
82
|
+
o.push(`}\n`);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (o.length) {
|
|
86
|
+
r.push(`@use "@simple-reporting/base/scss/colors";\n`);
|
|
87
|
+
r.push(o.join(`\n`));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return r.join(`\n`);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Checks if there are any commas outside of parentheses in the given text.
|
|
96
|
+
*
|
|
97
|
+
* @param {string} text - The text to be checked.
|
|
98
|
+
* @return {boolean} - True if there is at least one comma outside of parentheses, false otherwise.
|
|
99
|
+
*/
|
|
100
|
+
function hasCommasOutsideOfParentheses(text) {
|
|
101
|
+
let depth = 0;
|
|
102
|
+
for (let char of text) {
|
|
103
|
+
if (char === '(') depth++;
|
|
104
|
+
else if (char === ')') depth--;
|
|
105
|
+
else if (char === ',' && depth === 0) return true;
|
|
106
|
+
}
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Determines if there are points outside of parentheses in the given text.
|
|
112
|
+
*
|
|
113
|
+
* @param {string} text - The text to check.
|
|
114
|
+
* @return {boolean} - True if there are points outside of parentheses, false otherwise.
|
|
115
|
+
*/
|
|
116
|
+
function hasPointsOutsideOfParentheses(text) {
|
|
117
|
+
let depth = 0;
|
|
118
|
+
for (let char of text) {
|
|
119
|
+
if (char === '(') depth++;
|
|
120
|
+
else if (char === ')') depth--;
|
|
121
|
+
else if (char === '.' && depth === 0) return true;
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Converts a JavaScript object into SCSS variables.
|
|
128
|
+
*
|
|
129
|
+
* @param {object} values - The JavaScript object containing the variable names and values.
|
|
130
|
+
* @param {number} indent - The number of spaces to indent each line of the generated SCSS. Default is 2.
|
|
131
|
+
* @returns {string} - The SCSS variables as a string.
|
|
132
|
+
*/
|
|
133
|
+
function makeScssVariables(values, indent = 2) {
|
|
134
|
+
let r = [];
|
|
135
|
+
if (typeof values === 'object') {
|
|
136
|
+
r.push(`(`);
|
|
137
|
+
let v = [];
|
|
138
|
+
for (const variables in values) {
|
|
139
|
+
if (Array.isArray(values)) {
|
|
140
|
+
v.push(
|
|
141
|
+
`${' '.repeat(indent + 2)}var${variables}: ${makeScssVariables(values[variables], indent + 2)}`,
|
|
142
|
+
);
|
|
143
|
+
} else {
|
|
144
|
+
v.push(
|
|
145
|
+
`${' '.repeat(indent + 2)}${variables}: ${makeScssVariables(values[variables], indent + 2)}`,
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
r.push(v.join(`,\n`));
|
|
150
|
+
r.push(`${' '.repeat(indent)})`);
|
|
151
|
+
} else {
|
|
152
|
+
if (
|
|
153
|
+
typeof values === 'string' &&
|
|
154
|
+
values !== `""` &&
|
|
155
|
+
(hasPointsOutsideOfParentheses(values) ||
|
|
156
|
+
hasCommasOutsideOfParentheses(values))
|
|
157
|
+
) {
|
|
158
|
+
values = `\"${values.replaceAll('"', '\\"')}\"`;
|
|
159
|
+
}
|
|
160
|
+
return values;
|
|
161
|
+
}
|
|
162
|
+
return r.join(`\n`);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Generates configuration files for nswow.
|
|
167
|
+
* @param {number} [verbose=0] - The verbosity level. Default is 0.
|
|
168
|
+
* @returns {Promise<void>} - A promise that resolves once the files have been generated.
|
|
169
|
+
*/
|
|
170
|
+
async function beaver(verbose = 0) {
|
|
171
|
+
const configJson = await readNsWowJson();
|
|
172
|
+
const nswowPath = resolve(process.cwd(), './nswow');
|
|
173
|
+
|
|
174
|
+
if (typeof verbose === 'boolean') {
|
|
175
|
+
verbose = verbose ? 1 : 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (typeof configJson.system === 'undefined') {
|
|
179
|
+
configJson.system = {};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (typeof configJson.system.environment === 'undefined') {
|
|
183
|
+
configJson.system.environment = process.env.NODE_ENV;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (typeof configJson.fonts !== 'undefined') {
|
|
187
|
+
const fontBasePath = configJson.fonts['font-base-path'] ?? '';
|
|
188
|
+
if (fontBasePath.length) {
|
|
189
|
+
configJson.fonts['font-base-path'] = '.' + fontBasePath;
|
|
190
|
+
}
|
|
191
|
+
if (typeof configJson.fonts.fonts !== 'undefined') {
|
|
192
|
+
for (let x = 0; x < configJson.fonts.fonts.length; x++) {
|
|
193
|
+
let font = configJson.fonts.fonts[x];
|
|
194
|
+
if (typeof font === 'string') {
|
|
195
|
+
configJson.fonts.fonts[x] = JSON.parse(
|
|
196
|
+
readFileSync(
|
|
197
|
+
resolve(process.cwd(), `${fontBasePath}/${font}/styles.json`),
|
|
198
|
+
),
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const map = {};
|
|
206
|
+
|
|
207
|
+
for (const file in configJson) {
|
|
208
|
+
map[file] = {};
|
|
209
|
+
for (const variable in configJson[file]) {
|
|
210
|
+
map[file][variable] = mapValues(configJson[file][variable]);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (map?.colors?.colors?.shade) {
|
|
215
|
+
const shade = map.colors.colors.shade.color;
|
|
216
|
+
if (!map.colors.colors['shade-50']) {
|
|
217
|
+
map.colors.colors['shade-50'] = { color: colorPalette(shade, 0.5) };
|
|
218
|
+
}
|
|
219
|
+
if (!map.colors.colors['shade-100']) {
|
|
220
|
+
map.colors.colors['shade-100'] = { color: colorPalette(shade, 1) };
|
|
221
|
+
}
|
|
222
|
+
if (!map.colors.colors['shade-200']) {
|
|
223
|
+
map.colors.colors['shade-200'] = { color: colorPalette(shade, 2) };
|
|
224
|
+
}
|
|
225
|
+
if (!map.colors.colors['shade-300']) {
|
|
226
|
+
map.colors.colors['shade-300'] = { color: colorPalette(shade, 3) };
|
|
227
|
+
}
|
|
228
|
+
if (!map.colors.colors['shade-400']) {
|
|
229
|
+
map.colors.colors['shade-400'] = { color: colorPalette(shade, 4) };
|
|
230
|
+
}
|
|
231
|
+
if (!map.colors.colors['shade-500']) {
|
|
232
|
+
map.colors.colors['shade-500'] = { color: colorPalette(shade, 5) };
|
|
233
|
+
}
|
|
234
|
+
if (!map.colors.colors['shade-600']) {
|
|
235
|
+
map.colors.colors['shade-600'] = { color: colorPalette(shade, 6) };
|
|
236
|
+
}
|
|
237
|
+
if (!map.colors.colors['shade-700']) {
|
|
238
|
+
map.colors.colors['shade-700'] = { color: colorPalette(shade, 7) };
|
|
239
|
+
}
|
|
240
|
+
if (!map.colors.colors['shade-800']) {
|
|
241
|
+
map.colors.colors['shade-800'] = { color: colorPalette(shade, 8) };
|
|
242
|
+
}
|
|
243
|
+
if (!map.colors.colors['shade-900']) {
|
|
244
|
+
map.colors.colors['shade-900'] = { color: colorPalette(shade, 9) };
|
|
245
|
+
}
|
|
246
|
+
if (!map.colors.colors['shade-950']) {
|
|
247
|
+
map.colors.colors['shade-950'] = { color: colorPalette(shade, 9.5) };
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
let configOutput = [];
|
|
252
|
+
[
|
|
253
|
+
'system',
|
|
254
|
+
'fonts',
|
|
255
|
+
'meta',
|
|
256
|
+
'grid',
|
|
257
|
+
'colors',
|
|
258
|
+
'typography',
|
|
259
|
+
'spacer',
|
|
260
|
+
'helpers',
|
|
261
|
+
].forEach((file) => {
|
|
262
|
+
if (typeof map[file] !== 'undefined') {
|
|
263
|
+
const o = [];
|
|
264
|
+
o.push(
|
|
265
|
+
`@use "@simple-reporting/base/scss/${file}/variables.scss" as ${file}Variables with (`,
|
|
266
|
+
);
|
|
267
|
+
let v = [];
|
|
268
|
+
for (const variable in map[file]) {
|
|
269
|
+
v.push(` $${variable}: ${makeScssVariables(map[file][variable])}`);
|
|
270
|
+
}
|
|
271
|
+
o.push(v.join(`,\n`));
|
|
272
|
+
o.push(');\n');
|
|
273
|
+
configOutput.push(o.join(`\n`));
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
configOutput = configOutput.join(`\n`);
|
|
278
|
+
const configFile = `${nswowPath}/config.scss`;
|
|
279
|
+
writeFileSync(configFile, configOutput);
|
|
280
|
+
|
|
281
|
+
const typographyFile = `${nswowPath}/typography.scss`;
|
|
282
|
+
const typographyOutput = writeTypographyScss(map.typography);
|
|
283
|
+
writeFileSync(typographyFile, typographyOutput);
|
|
284
|
+
|
|
285
|
+
const colorsFile = `${nswowPath}/colors.scss`;
|
|
286
|
+
const colorsOutput = writeColorsScss(map.colors);
|
|
287
|
+
writeFileSync(colorsFile, colorsOutput);
|
|
288
|
+
|
|
289
|
+
if (verbose > 0) {
|
|
290
|
+
console.log(colors.info(`\nThe following files has been written.\n`));
|
|
291
|
+
|
|
292
|
+
console.log(
|
|
293
|
+
colors.bgWhite(colors.file(relative(process.cwd(), configFile))),
|
|
294
|
+
);
|
|
295
|
+
if (verbose > 1) {
|
|
296
|
+
console.log(colors.prompt(`\n` + configOutput + `\n`));
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
console.log(
|
|
300
|
+
colors.bgWhite(colors.file(relative(process.cwd(), typographyFile))),
|
|
301
|
+
);
|
|
302
|
+
if (verbose > 1) {
|
|
303
|
+
console.log(colors.prompt(`\n` + typographyOutput + `\n`));
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
console.log(
|
|
307
|
+
colors.bgWhite(colors.file(relative(process.cwd(), colorsFile))),
|
|
308
|
+
);
|
|
309
|
+
if (verbose > 1) {
|
|
310
|
+
console.log(colors.prompt(`\n` + colorsOutput + `\n`));
|
|
311
|
+
}
|
|
312
|
+
console.log('');
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export { beaver };
|