diff --git a/core/.build/copy-libs.mjs b/core/.build/copy-libs.mjs new file mode 100644 index 000000000..88d692ebe --- /dev/null +++ b/core/.build/copy-libs.mjs @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +'use strict' + +import { existsSync, mkdirSync, lstatSync } from 'fs' +import { emptyDirSync, copySync } from 'fs-extra/esm' +import libs from '../libs.json' with { type: 'json' } +import { fileURLToPath } from 'url' +import { join, dirname } from 'node:path'; + +const __dirname = dirname(fileURLToPath(import.meta.url)) + +emptyDirSync(join(__dirname, '..', 'dist/libs')) + +for(const name in libs) { + const { npm } = libs[name] + + if (npm) { + const from = join(__dirname, '..', `node_modules/${npm}`) + const to = join(__dirname, '..', `dist/libs/${npm}`) + + // create dir in dist/libs + if (!existsSync(to)) { + mkdirSync(to, { recursive: true }) + } + + copySync(from, to, { + dereference: true, + }) + + console.log(`Successfully copied ${npm}`) + } +} \ No newline at end of file diff --git a/core/libs.json b/core/libs.json new file mode 100644 index 000000000..4c77b518f --- /dev/null +++ b/core/libs.json @@ -0,0 +1,164 @@ +{ + "imask": { + "npm": "imask", + "js": [ + "dist/imask.min.js" + ] + }, + "autosize": { + "npm": "autosize", + "js": [ + "dist/autosize.min.js" + ] + }, + "apexcharts": { + "npm": "apexcharts", + "js": [ + "dist/apexcharts.min.js" + ] + }, + "nouislider": { + "npm": "nouislider", + "js": [ + "dist/nouislider.min.js" + ], + "css": [ + "dist/nouislider.min.css" + ] + }, + "countup": { + "npm": "countup.js", + "js": [ + "dist/countUp.umd.js" + ] + }, + "lists": { + "npm": "list.js", + "js": [ + "dist/list.min.js" + ] + }, + "masonry": { + "js": [ + "https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" + ] + }, + "mapbox": { + "js": [ + "https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js" + ], + "css": [ + "https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css" + ] + }, + "google-maps": { + "js": [ + "https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_KEY" + ] + }, + "litepicker": { + "npm": "litepicker", + "js": [ + "dist/litepicker.js" + ] + }, + "tom-select": { + "npm": "tom-select", + "js": [ + "dist/js/tom-select.base.min.js" + ], + "css": [ + "dist/css/tom-select.bootstrap5.min.css" + ] + }, + "jsvectormap": { + "npm": "jsvectormap", + "js": [ + "dist/jsvectormap.min.js", + "dist/maps/world.js", + "dist/maps/world-merc.js" + ], + "css": [ + "dist/jsvectormap.css" + ] + }, + "fslightbox": { + "npm": "fslightbox", + "js": [ + "index.js" + ] + }, + "hugerte": { + "npm": "hugerte", + "js": [ + "hugerte.min.js" + ] + }, + "plyr": { + "npm": "plyr", + "js": [ + "dist/plyr.min.js" + ], + "css": [ + "dist/plyr.css" + ] + }, + "dropzone": { + "npm": "dropzone", + "js": [ + "dist/dropzone-min.js" + ], + "css": [ + "dist/dropzone.css" + ] + }, + "star-rating.js": { + "npm": "star-rating.js", + "js": [ + "dist/star-rating.min.js" + ], + "css": [ + "dist/star-rating.min.css" + ] + }, + "coloris.js": { + "npm": "@melloware/coloris", + "js": [ + "dist/umd/coloris.min.js" + ], + "css": [ + "dist/coloris.min.css" + ] + }, + "typed.js": { + "npm": "typed.js", + "js": [ + "dist/typed.umd.js" + ] + }, + "signature_pad": { + "npm": "signature_pad", + "js": [ + "dist/signature_pad.umd.min.js" + ] + }, + "clipboard": { + "npm": "clipboard", + "js": [ + "dist/clipboard.min.js" + ] + }, + "fullcalendar": { + "npm": "fullcalendar", + "js": [ + "index.global.min.js" + ] + }, + "turbo": { + "npm": "@hotwired/turbo", + "js": [ + "dist/turbo.es2017-umd.js" + ], + "head": true + } +} diff --git a/core/package.json b/core/package.json index 0d86d9e17..c08f3350e 100644 --- a/core/package.json +++ b/core/package.json @@ -4,7 +4,7 @@ "description": "Premium and Open Source dashboard template with responsive and high quality UI.", "homepage": "https://tabler.io", "scripts": { - "dev": "pnpm run watch", + "dev": "pnpm run clean && pnpm run copy && pnpm run watch", "build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri", "clean": "shx rm -rf dist demo", "css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner", @@ -26,8 +26,9 @@ "js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.esm.js.map,includeSources,url=tabler.esm.min.js.map\" --output dist/js/tabler.esm.min.js dist/js/tabler.esm.js", "js-minify-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.js.map,includeSources,url=tabler-theme.min.js.map\" --output dist/js/tabler-theme.min.js dist/js/tabler-theme.js", "js-minify-theme-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.esm.js.map,includeSources,url=tabler-theme.esm.min.js.map\" --output dist/js/tabler-theme.esm.min.js dist/js/tabler-theme.esm.js", - "copy": "pnpm run copy-img", + "copy": "pnpm run copy-img && pnpm run copy-libs", "copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img", + "copy-libs": "node .build/copy-libs.mjs", "watch": "concurrently \"pnpm run watch-css\" \"pnpm run watch-js\"", "watch-css": "nodemon --watch scss/ --ext scss --exec \"pnpm run css-compile && pnpm run css-prefix\"", "watch-js": "nodemon --watch js/ --ext js --exec \"pnpm run js-compile\"", @@ -66,7 +67,8 @@ "dist/**/*", "js/**/*.{js,map}", "img/**/*.{svg}", - "scss/**/*.scss" + "scss/**/*.scss", + "libs.json" ], "style": "dist/css/tabler.css", "sass": "scss/tabler.scss", @@ -146,6 +148,30 @@ "@popperjs/core": "^2.11.8", "bootstrap": "5.3.6" }, + "devDependencies": { + "@hotwired/turbo": "^8.0.13", + "@melloware/coloris": "^0.24.2", + "apexcharts": "3.54.1", + "autosize": "^6.0.1", + "choices.js": "^11.1.0", + "clipboard": "^2.0.11", + "countup.js": "^2.8.2", + "dropzone": "^6.0.0-beta.2", + "flatpickr": "^4.6.13", + "fslightbox": "^3.6.0", + "fullcalendar": "^6.1.17", + "hugerte": "^1.0.9", + "imask": "^7.6.1", + "jsvectormap": "^1.6.0", + "list.js": "^2.3.1", + "litepicker": "^2.0.12", + "nouislider": "^15.8.1", + "plyr": "^3.7.8", + "signature_pad": "^5.0.7", + "star-rating.js": "^4.3.1", + "tom-select": "^2.4.3", + "typed.js": "^2.1.0" + }, "directories": { "doc": "docs" } diff --git a/docs/content/ui/components/vector-maps.md b/docs/content/ui/components/vector-maps.md index 6cf5650d0..b50f299c1 100644 --- a/docs/content/ui/components/vector-maps.md +++ b/docs/content/ui/components/vector-maps.md @@ -1,6 +1,6 @@ --- title: Vector Maps -docs-libs: [jsvectormap, jsvectormap-world, jsvectormap-world-merc] +docs-libs: [jsvectormap] description: Interactive guide to creating vector maps with jsVectorMap. summary: Vector maps are a great way to display geographical data in an interactive and visually appealing way. Learn how to create vector maps with jsVectorMap. --- diff --git a/docs/eleventy.config.mjs b/docs/eleventy.config.mjs index cb20535b0..5a74b8bbe 100644 --- a/docs/eleventy.config.mjs +++ b/docs/eleventy.config.mjs @@ -1,5 +1,5 @@ import { appFilters } from "../shared/e11ty/filters.mjs" -import { appData, getCopyList } from "../shared/e11ty/data.mjs"; +import { appData } from "../shared/e11ty/data.mjs"; import { readFileSync, existsSync } from 'node:fs'; import { fileURLToPath } from 'node:url' import { join, dirname } from 'node:path'; @@ -17,7 +17,7 @@ export default function (eleventyConfig) { appData(eleventyConfig); eleventyConfig.addPassthroughCopy({ - ...getCopyList(), + "node_modules/@tabler/core/dist": "dist", "public": "/", "static": "static", }); diff --git a/docs/package.json b/docs/package.json index 8167dbdf0..0512bd66b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -24,36 +24,14 @@ "keywords": [], "author": "", "license": "ISC", - "dependencies": { - "@hotwired/turbo": "^8.0.13", - "@melloware/coloris": "^0.24.0", - "@tabler/core": "workspace:*", - "@tabler/icons": "^3.31.0", - "apexcharts": "3.54.1", - "autosize": "^6.0.1", - "choices.js": "^11.1.0", - "clipboard": "^2.0.11", - "countup.js": "^2.8.0", - "dropzone": "^6.0.0-beta.2", - "flatpickr": "^4.6.13", - "fslightbox": "^3.5.1", - "hugerte": "^1.0.9", - "imask": "^7.6.1", - "jsvectormap": "^1.6.0", - "list.js": "^2.3.1", - "litepicker": "^2.0.12", - "nouislider": "^15.8.1", - "plyr": "^3.7.8", - "signature_pad": "^5.0.7", - "star-rating.js": "^4.3.1", - "tom-select": "^2.4.3", - "typed.js": "^2.1.0" - }, "devDependencies": { "@11ty/eleventy": "^3.1.0", "@docsearch/css": "^3.9.0", "@docsearch/js": "^3.9.0", "flat-cache": "^6.1.8", "shiki": "^3.2.2" + }, + "dependencies": { + "@tabler/core": "workspace:*" } } \ No newline at end of file diff --git a/package.json b/package.json index e451c9950..ca6270f0f 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "clean-css-cli": "^5.6.3", "concurrently": "^9.1.2", "cross-env": "^7.0.3", + "fs-extra": "^11.3.0", "glob": "^11.0.2", "js-beautify": "^1.15.4", "nodemon": "^3.1.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f6a50c88..f77e17e8b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 + fs-extra: + specifier: ^11.3.0 + version: 11.3.0 glob: specifier: ^11.0.2 version: 11.0.2 @@ -104,109 +107,13 @@ importers: bootstrap: specifier: 5.3.6 version: 5.3.6(@popperjs/core@2.11.8) - - docs: - dependencies: - '@hotwired/turbo': - specifier: ^8.0.13 - version: 8.0.13 - '@melloware/coloris': - specifier: ^0.24.0 - version: 0.24.0 - '@tabler/core': - specifier: workspace:* - version: link:../core - '@tabler/icons': - specifier: ^3.31.0 - version: 3.31.0 - apexcharts: - specifier: 3.54.1 - version: 3.54.1 - autosize: - specifier: ^6.0.1 - version: 6.0.1 - choices.js: - specifier: ^11.1.0 - version: 11.1.0 - clipboard: - specifier: ^2.0.11 - version: 2.0.11 - countup.js: - specifier: ^2.8.0 - version: 2.8.2 - dropzone: - specifier: ^6.0.0-beta.2 - version: 6.0.0-beta.2 - flatpickr: - specifier: ^4.6.13 - version: 4.6.13 - fslightbox: - specifier: ^3.5.1 - version: 3.5.1 - hugerte: - specifier: ^1.0.9 - version: 1.0.9 - imask: - specifier: ^7.6.1 - version: 7.6.1 - jsvectormap: - specifier: ^1.6.0 - version: 1.6.0 - list.js: - specifier: ^2.3.1 - version: 2.3.1 - litepicker: - specifier: ^2.0.12 - version: 2.0.12 - nouislider: - specifier: ^15.8.1 - version: 15.8.1 - plyr: - specifier: ^3.7.8 - version: 3.7.8 - signature_pad: - specifier: ^5.0.7 - version: 5.0.7 - star-rating.js: - specifier: ^4.3.1 - version: 4.3.1 - tom-select: - specifier: ^2.4.3 - version: 2.4.3 - typed.js: - specifier: ^2.1.0 - version: 2.1.0 devDependencies: - '@11ty/eleventy': - specifier: ^3.1.0 - version: 3.1.0 - '@docsearch/css': - specifier: ^3.9.0 - version: 3.9.0 - '@docsearch/js': - specifier: ^3.9.0 - version: 3.9.0(@algolia/client-search@5.24.0)(search-insights@2.17.3) - flat-cache: - specifier: ^6.1.8 - version: 6.1.8 - shiki: - specifier: ^3.2.2 - version: 3.2.2 - - preview: - dependencies: '@hotwired/turbo': specifier: ^8.0.13 version: 8.0.13 '@melloware/coloris': specifier: ^0.24.2 version: 0.24.2 - '@tabler/core': - specifier: workspace:* - version: link:../core - '@tabler/icons': - specifier: ^3.31.0 - version: 3.31.0 apexcharts: specifier: 3.54.1 version: 3.54.1 @@ -267,6 +174,37 @@ importers: typed.js: specifier: ^2.1.0 version: 2.1.0 + + docs: + dependencies: + '@tabler/core': + specifier: workspace:* + version: link:../core + devDependencies: + '@11ty/eleventy': + specifier: ^3.1.0 + version: 3.1.0 + '@docsearch/css': + specifier: ^3.9.0 + version: 3.9.0 + '@docsearch/js': + specifier: ^3.9.0 + version: 3.9.0(@algolia/client-search@5.24.0)(search-insights@2.17.3) + flat-cache: + specifier: ^6.1.8 + version: 6.1.8 + shiki: + specifier: ^3.2.2 + version: 3.2.2 + + preview: + dependencies: + '@tabler/core': + specifier: workspace:* + version: link:../core + '@tabler/icons': + specifier: ^3.31.0 + version: 3.31.0 devDependencies: '@11ty/eleventy': specifier: ^3.1.0 @@ -741,9 +679,6 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@melloware/coloris@0.24.0': - resolution: {integrity: sha512-9RGKHqZJsUSsxb/0xaBCK5OKywobiK/xRtV8f4KQDmviqmVfkMLR3kK4DRuTTLSFdSOqkV0OQ/Niitu+rlXXYw==} - '@melloware/coloris@0.24.2': resolution: {integrity: sha512-6IhdPOBIc922jRMx2p6Sl6mRzqjGF7x67q0ZziA5e4NTqWoSPHBEnSmiUCcsXiNHZJ6zdOQt+6Z/eZxpxcHjDA==} @@ -1660,9 +1595,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - fslightbox@3.5.1: - resolution: {integrity: sha512-HFADNFHjo26XGiGpIZeoJZ3RE3RaZItc2jmqim63zlu3GTmnd5TUkj6ZpMrdU1S4g5pbbKG2cpG2ekqtaM1Spg==} - fslightbox@3.6.0: resolution: {integrity: sha512-ZQFlDDy0BLTbcoKss9KIcNv5g2IJ8vxFzuSIqRZe0iL7cYq9yyPXpnRYey/+jznN0DN3KanYQb+G+ncH7qz3XA==} @@ -3787,8 +3719,6 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 - '@melloware/coloris@0.24.0': {} - '@melloware/coloris@0.24.2': {} '@nodelib/fs.scandir@2.1.5': @@ -4665,8 +4595,6 @@ snapshots: fsevents@2.3.3: optional: true - fslightbox@3.5.1: {} - fslightbox@3.6.0: {} fullcalendar@6.1.17: diff --git a/preview/eleventy.config.mjs b/preview/eleventy.config.mjs index 4288bbf3d..2938b82e8 100644 --- a/preview/eleventy.config.mjs +++ b/preview/eleventy.config.mjs @@ -3,7 +3,7 @@ import { EleventyRenderPlugin } from "@11ty/eleventy"; import { join } from 'node:path'; import { sync } from 'glob'; import { appFilters } from "../shared/e11ty/filters.mjs"; -import { appData, getCopyList } from "../shared/e11ty/data.mjs" +import { appData } from "../shared/e11ty/data.mjs" /** @type {import('@11ty/eleventy').LocalConfig} */ export default function (eleventyConfig) { @@ -20,7 +20,7 @@ export default function (eleventyConfig) { eleventyConfig.setDataDirectory("../../shared/data"); eleventyConfig.addPassthroughCopy({ - ...getCopyList(), + "node_modules/@tabler/core/dist": "dist", "pages/favicon.ico": "favicon.ico", "static": "static", }); @@ -33,11 +33,8 @@ export default function (eleventyConfig) { * Data */ eleventyConfig.addGlobalData("environment", environment); - - eleventyConfig.addGlobalData("package", JSON.parse(readFileSync(join("..", "core", "package.json"), "utf-8"))); eleventyConfig.addGlobalData("readme", readFileSync(join("..", "README.md"), "utf-8")); eleventyConfig.addGlobalData("license", readFileSync(join("..", "LICENSE"), "utf-8")); - eleventyConfig.addGlobalData("changelog", readFileSync(join("..", "core", "CHANGELOG.md"), "utf-8")); eleventyConfig.addGlobalData("pages", () => { return sync('pages/**/*.html').filter((file) => { diff --git a/preview/package.json b/preview/package.json index 5cee18e9d..c0079ce90 100644 --- a/preview/package.json +++ b/preview/package.json @@ -20,7 +20,7 @@ "clean": "shx rm -rf dist demo", "html": "pnpm run html-build && pnpm run html-prettify", "html-build": "eleventy", - "html-prettify": "prettier --write \"dist/**/*.html\"", + "html-prettify": "prettier --write \"dist/**/*.html\" \"!dist/dist/**\"", "svg-optimize": "svgo -f svg/brand --pretty", "unused-files": "node .build/unused-files.mjs", "download-images": "node .build/download-images.mjs", @@ -30,37 +30,15 @@ "import-icons": "git checkout dev && BRANCH_NAME=\"dev-tabler-icons-`pnpm info @tabler/icons version`\" && git branch $BRANCH_NAME && git checkout $BRANCH_NAME && ncu -u @tabler/icons && pnpm install && pnpm run svg-icons && git add . && git commit -am \"update icons to v`pnpm info @tabler/icons version`\" && git push origin $BRANCH_NAME && git checkout dev", "zip": "mkdir -p packages-zip && zip -r packages-zip/tabler-$(node -p \"require('./package.json').version\").zip demo/*" }, - "dependencies": { - "@hotwired/turbo": "^8.0.13", - "@melloware/coloris": "^0.24.2", - "@tabler/core": "workspace:*", - "@tabler/icons": "^3.31.0", - "apexcharts": "3.54.1", - "autosize": "^6.0.1", - "choices.js": "^11.1.0", - "clipboard": "^2.0.11", - "countup.js": "^2.8.2", - "dropzone": "^6.0.0-beta.2", - "flatpickr": "^4.6.13", - "fslightbox": "^3.6.0", - "fullcalendar": "^6.1.17", - "hugerte": "^1.0.9", - "imask": "^7.6.1", - "jsvectormap": "^1.6.0", - "list.js": "^2.3.1", - "litepicker": "^2.0.12", - "nouislider": "^15.8.1", - "plyr": "^3.7.8", - "signature_pad": "^5.0.7", - "star-rating.js": "^4.3.1", - "tom-select": "^2.4.3", - "typed.js": "^2.1.0" - }, "devDependencies": { "@11ty/eleventy": "^3.1.0", "imageoptim-cli": "^3.1.9", "request": "^2.88.2" }, + "dependencies": { + "@tabler/core": "workspace:*", + "@tabler/icons": "^3.31.0" + }, "prettier": { "tabWidth": 2, "useTabs": false, diff --git a/preview/pages/maps-vector.html b/preview/pages/maps-vector.html index a43b03298..cdaa40b0c 100644 --- a/preview/pages/maps-vector.html +++ b/preview/pages/maps-vector.html @@ -2,7 +2,7 @@ title: Vector Maps page-header: Vector Maps page-menu: plugins.maps-vector -page-libs: [jsvectormap, jsvectormap-world, jsvectormap-world-merc] +page-libs: [jsvectormap] layout: default permalink: maps-vector.html --- diff --git a/preview/pages/turbo-loader.html b/preview/pages/turbo-loader.html index 6a53a1d28..f60de2b93 100644 --- a/preview/pages/turbo-loader.html +++ b/preview/pages/turbo-loader.html @@ -2,6 +2,7 @@ permalink: turbo-loader.html layout: default page-libs: [turbo] +page-menu: plugins.turbo ---
diff --git a/shared/data/libs.json b/shared/data/libs.json deleted file mode 100644 index ca6613f8b..000000000 --- a/shared/data/libs.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "js": { - "imask": "imask/dist/imask.min.js", - "autosize": "autosize/dist/autosize.min.js", - "apexcharts": "apexcharts/dist/apexcharts.min.js", - "nouislider": "nouislider/dist/nouislider.min.js", - "countup": "countup.js/dist/countUp.umd.js", - "lists": "list.js/dist/list.min.js", - "masonry": "https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js", - "mapbox": "https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js", - "google-maps": "https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_KEY", - "litepicker": "litepicker/dist/litepicker.js", - "tom-select": "tom-select/dist/js/tom-select.base.min.js", - "jsvectormap": "jsvectormap/dist/jsvectormap.min.js", - "jsvectormap-world": "jsvectormap/dist/maps/world.js", - "jsvectormap-world-merc": "jsvectormap/dist/maps/world-merc.js", - "fslightbox": "fslightbox/index.js", - "hugerte": "hugerte/hugerte.min.js", - "plyr": "plyr/dist/plyr.min.js", - "dropzone": "dropzone/dist/dropzone-min.js", - "star-rating.js": "star-rating.js/dist/star-rating.min.js", - "coloris.js": "@melloware/coloris/dist/umd/coloris.min.js", - "typed.js": "typed.js/dist/typed.umd.js", - "signature_pad": "signature_pad/dist/signature_pad.umd.min.js", - "clipboard": "clipboard/dist/clipboard.min.js", - "fullcalendar": "fullcalendar/index.global.min.js" - }, - "js-head": { - "turbo": "@hotwired/turbo/dist/turbo.es2017-umd.js" - }, - "css": { - "mapbox": "https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css", - "jsvectormap": "jsvectormap/dist/jsvectormap.css", - "dropzone": "dropzone/dist/dropzone.css", - "plyr": "plyr/dist/plyr.css", - "star-rating.js": "star-rating.js/dist/star-rating.min.css", - "coloris.js": "@melloware/coloris/dist/coloris.min.css", - "tom-select": "tom-select/dist/css/tom-select.bootstrap5.min.css", - "nouislider": "nouislider/dist/nouislider.min.css" - }, - "js-copy": { - "hugerte" :"hugerte/*" - } -} diff --git a/shared/data/menu.json b/shared/data/menu.json index 4bd973dc7..d4d526f30 100644 --- a/shared/data/menu.json +++ b/shared/data/menu.json @@ -434,6 +434,10 @@ "url": "maps-vector.html", "title": "Map vector" }, + "turbo": { + "url": "turbo-loader.html", + "title": "Turbo loader" + }, "wysiwyg": { "url": "wysiwyg.html", "title": "WYSIWYG editor" diff --git a/shared/data/sri.json b/shared/data/sri.json index 402aaff2b..348f5286e 100644 --- a/shared/data/sri.json +++ b/shared/data/sri.json @@ -1,6 +1,6 @@ { - "css": "sha384-n8Eaco6KCZ5R99jiJnSTWVUOh41zdxwpENxWBHB9xlBwbIsFL5G419uHHwsKUD4W", - "css-rtl": "sha384-0IlPjO9Km+IBC2msQbdJOsf9C8RlaoBVjhb0Znk+OpFw7G9Q2PcyaksnJxy9oqa5", + "css": "sha384-p5xrK2AiivdjrNPtu162Vv179cyFHJY2I4Mb0NZVR8Wn2aqSGUm7zlFFjM8jAzeD", + "css-rtl": "sha384-22IGd0xp1gk5BQwuhYqr8qUmsv65cwTzenvc19bvq5PYduXkWE8gUUruxIr/ZPsn", "css-flags": "sha384-fStl5MKxnUStSlpPiHGSFmUTTzr2KEY7jtgmvTswVDaQJ+sLbmEF+26m57M2sbCm", "css-flags-rtl": "sha384-i8KVpZYtpnZDkTYzaYlaeiF91VNnmyORipMLZh6hKGh5Jj80QN6962xlHQPkx/xr", "css-marketing": "sha384-IILX0Nea/+/hbVhEsrQ/djsqtSJmb4CM9hPzWd7Yh8hzbyYp4N/4hWMQL5kIPEuZ", @@ -13,8 +13,8 @@ "css-props-rtl": "sha384-Voq7oikM1MGBKKotIvWP3THYoINUMEQurBmKseurzXaiMzL3KPlbQXhbI4tHPKHU", "css-themes": "sha384-o3qxqNUMd6NW7wethAfo4ur0TF8cgmbdTRrUHwryoxEpy3DNmt5MWoCHRlJlX/zD", "css-themes-rtl": "sha384-er5SohDm2dJxg5UhUf1RI96jOlVA7RwgVm5++ribGoWmjds4MntkV6Mxg66xCQQg", - "css-vendors-rtl": "sha384-pmqjDmyHCjDzKM/ggLDh4+XLOp41n8d7z1/QxB3TEnz/yg7B0nV3yBKqx/O+buIU", - "css-vendors": "sha384-IHXMAokwkmX7RM5ureM6x8sBDwkSgYw3OWYboGb+CQZH7xzu7nYjodKx5WFatxIf", + "css-vendors-rtl": "sha384-tHbMgNpCKXcS6jHEZNTL3D8vphnCwUbnP37Mu3sihnvXRk47xUWU6VYDIO8kMyr3", + "css-vendors": "sha384-Fo//Kmhz1EIFHbqRN5ZnLePKoXW3c4MjGg1DVOrvwTlQNfC2rKRflTBS1degq6n6", "js": "sha384-PHMhDo1ZcalIgfBhQzaXnIBa6xdPJ8iQTzHd+WVAeoI/O2Xq3OuElAo7PyEYTqMg", "js-theme": "sha384-3Z3TIkq5YSKOncCfiURX/S03AUHfI0nVzd39uRc9KLhtLi7M228qgWBjnRXwt2j0", "demo-css": "sha384-BUDq2P684xwRBf0GDlySvob+KJg4ko8y2K7njgvYBscmEuqoVVqJ75zcTDozwkFA", diff --git a/shared/e11ty/data.mjs b/shared/e11ty/data.mjs index b5bc556e3..79ca40f51 100644 --- a/shared/e11ty/data.mjs +++ b/shared/e11ty/data.mjs @@ -1,41 +1,8 @@ import { readFileSync } from "fs"; -import { dirname } from "path"; -import { fileURLToPath } from "url"; import { join } from "path"; -const __dirname = dirname(fileURLToPath(import.meta.url)) - -export function getCopyList () { - let copy = { - "node_modules/@tabler/core/dist": "dist", - } - - const libs = JSON.parse(readFileSync(join(__dirname, '../data/libs.json'))); - - let files = [] - - Object.keys(libs.js).forEach((lib) => { - files.push(Array.isArray(libs.js[lib]) ? libs.js[lib] : [libs.js[lib]]) - }) - - Object.keys(libs.css).forEach((lib) => { - files.push(Array.isArray(libs.css[lib]) ? libs.css[lib] : [libs.css[lib]]) - }) - - Object.keys(libs['js-copy']).forEach((lib) => { - files.push(libs['js-copy'][lib]) - }) - - files = files.flat() - - files.forEach((file) => { - if (!file.match(/^https?/)) { - copy[`node_modules/${dirname(file)}`] = `libs/${dirname(file)}`; - } - }) - - return copy; -} - export function appData(eleventyConfig) { + eleventyConfig.addGlobalData("package", JSON.parse(readFileSync(join("..", "core", "package.json"), "utf-8"))); + eleventyConfig.addGlobalData("changelog", readFileSync(join("..", "core", "CHANGELOG.md"), "utf-8")); + eleventyConfig.addGlobalData("libs", JSON.parse(readFileSync(join("..", "core", "libs.json"), "utf-8"))); } \ No newline at end of file diff --git a/shared/includes/layout/css.html b/shared/includes/layout/css.html index 5b2ed2534..f845ff05c 100644 --- a/shared/includes/layout/css.html +++ b/shared/includes/layout/css.html @@ -6,13 +6,13 @@ {% if page-libs -%} - {% for lib in libs.css -%} - {% if page-libs contains lib[0] -%} - {% for file in lib[1] -%} - - {% endfor -%} - {% endif -%} - {% endfor -%} +{% for lib in libs -%} +{% if page-libs contains lib[0] -%} +{% for file in lib[1].css -%} + +{% endfor -%} +{% endif -%} +{% endfor -%} {% endif %} diff --git a/shared/includes/layout/js-libs.html b/shared/includes/layout/js-libs.html index e16002d68..b1993f2ea 100644 --- a/shared/includes/layout/js-libs.html +++ b/shared/includes/layout/js-libs.html @@ -1,14 +1,15 @@ {% if page-libs -%} {% capture libs-code -%} -{% for lib in include.libs -%} -{% if page-libs contains lib[0] -%} -{% for file in lib[1] -%} - +{% for lib in libs -%} +{% if page-libs contains lib[0] and lib[1].head == include.head -%} +{% for file in lib[1].js -%} + {% endfor -%} {% endif -%} {% endfor -%} {% endcapture -%} + {% assign libs-code = libs-code | strip -%} {% if libs-code != "" -%} diff --git a/shared/includes/layout/js.html b/shared/includes/layout/js.html index 78faca460..84d1863e0 100644 --- a/shared/includes/layout/js.html +++ b/shared/includes/layout/js.html @@ -3,7 +3,7 @@ {% assign google-maps-key = site.googleMapsKey -%} {% endif -%} -{% include "layout/js-libs.html" libs=libs.js %} +{% include "layout/js-libs.html" %} diff --git a/shared/layouts/base.html b/shared/layouts/base.html index f851bf3ec..530acec47 100644 --- a/shared/layouts/base.html +++ b/shared/layouts/base.html @@ -31,7 +31,7 @@ {% endif %} {% include "layout/css.html" %} - {% include "layout/js-libs.html" libs=libs.js-head %} + {% include "layout/js-libs.html" head %}