From 215eaa4acb309a7b062b798adb0ffc17512a3180 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20Kuna?=
<1282324+codecalm@users.noreply.github.com>
Date: Sun, 23 Mar 2025 20:51:10 +0100
Subject: [PATCH] Add Turbo library integration and update dependencies (#2223)
---
.changeset/ten-walls-smell.md | 5 ++
core/scss/tabler-vendors.scss | 2 +
core/scss/vendor/_turbo.scss | 3 +
pnpm-lock.yaml | 9 +++
preview/package.json | 1 +
preview/pages/_data/libs.json | 9 +--
preview/pages/_includes/layout/js-libs.html | 13 +++++
preview/pages/_includes/layout/js.html | 26 +--------
preview/pages/_layouts/base.html | 1 +
preview/pages/turbo-loader.html | 62 +++++++++++++++++++++
10 files changed, 101 insertions(+), 30 deletions(-)
create mode 100644 .changeset/ten-walls-smell.md
create mode 100644 core/scss/vendor/_turbo.scss
create mode 100644 preview/pages/_includes/layout/js-libs.html
create mode 100644 preview/pages/turbo-loader.html
diff --git a/.changeset/ten-walls-smell.md b/.changeset/ten-walls-smell.md
new file mode 100644
index 000000000..d47f98b31
--- /dev/null
+++ b/.changeset/ten-walls-smell.md
@@ -0,0 +1,5 @@
+---
+"@tabler/core": minor
+---
+
+Add Turbo library integration
diff --git a/core/scss/tabler-vendors.scss b/core/scss/tabler-vendors.scss
index acbeac433..df6871f0e 100644
--- a/core/scss/tabler-vendors.scss
+++ b/core/scss/tabler-vendors.scss
@@ -12,3 +12,5 @@
@import "vendor/stars-rating";
@import "vendor/coloris";
@import "vendor/typed";
+@import "vendor/turbo";
+
diff --git a/core/scss/vendor/_turbo.scss b/core/scss/vendor/_turbo.scss
new file mode 100644
index 000000000..60e48df2f
--- /dev/null
+++ b/core/scss/vendor/_turbo.scss
@@ -0,0 +1,3 @@
+.turbo-progress-bar {
+ background: var(--#{$prefix}primary);
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 463a29a47..0fd566d6b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -101,6 +101,9 @@ importers:
preview:
dependencies:
+ '@hotwired/turbo':
+ specifier: ^8.0.13
+ version: 8.0.13
'@melloware/coloris':
specifier: ^0.24.0
version: 0.24.0
@@ -380,6 +383,10 @@ packages:
'@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
+ '@hotwired/turbo@8.0.13':
+ resolution: {integrity: sha512-M7qXUqcGab6G5PKOiwhgbByTtrPgKPFCTMNQ52QhzUEXEqmp0/ApEguUesh/FPiUjrmFec+3lq98KsWnYY2C7g==}
+ engines: {node: '>= 14'}
+
'@img/sharp-darwin-arm64@0.33.5':
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -3005,6 +3012,8 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@hotwired/turbo@8.0.13': {}
+
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.4
diff --git a/preview/package.json b/preview/package.json
index 4d4261c83..89ca4c96f 100644
--- a/preview/package.json
+++ b/preview/package.json
@@ -31,6 +31,7 @@
"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.0",
"@tabler/core": "workspace:*",
"@tabler/icons": "^3.31.0",
diff --git a/preview/pages/_data/libs.json b/preview/pages/_data/libs.json
index 4ca9f10b7..a0f70e90a 100644
--- a/preview/pages/_data/libs.json
+++ b/preview/pages/_data/libs.json
@@ -1,10 +1,4 @@
{
- "global-libs": [
- ],
- "js-files": {
- "countup": "countup",
- "nouislider": "nouislider"
- },
"js": {
"imask": "imask/dist/imask.min.js",
"autosize": "autosize/dist/autosize.min.js",
@@ -29,6 +23,9 @@
"typed.js": "typed.js/dist/typed.umd.js",
"signature_pad": "signature_pad/dist/signature_pad.umd.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",
"dropzone": "dropzone/dist/dropzone.css",
diff --git a/preview/pages/_includes/layout/js-libs.html b/preview/pages/_includes/layout/js-libs.html
new file mode 100644
index 000000000..a9294b9bd
--- /dev/null
+++ b/preview/pages/_includes/layout/js-libs.html
@@ -0,0 +1,13 @@
+{% if page-libs -%}
+
+{% for lib in include.libs -%}
+{% if page-libs contains lib[0] -%}
+{% for file in lib[1] -%}
+
+{% endfor -%}
+{% endif -%}
+{% endfor -%}
+
+{% endif -%}
\ No newline at end of file
diff --git a/preview/pages/_includes/layout/js.html b/preview/pages/_includes/layout/js.html
index e825de966..2e9620b80 100644
--- a/preview/pages/_includes/layout/js.html
+++ b/preview/pages/_includes/layout/js.html
@@ -3,17 +3,7 @@
{% assign google-maps-key = site.googleMapsKey -%}
{% endif -%}
-{% if page-libs -%}
-
- {% for lib in libs.js -%}
- {% if page-libs contains lib[0] or libs.global-libs contains lib[0] -%}
- {% for file in lib[1] -%}
-
- {% endfor -%}
- {% endif -%}
- {% endfor -%}
-
-{% endif -%}
+{% include "layout/js-libs.html" libs=libs.js %}
@@ -23,16 +13,4 @@
-{% scripts %}
-
-{% assign libs = page-libs | default: layout.page-libs %}
-{% for lib in libs.js-files %}
-{% if libs contains lib[0] or libs.global-libs contains lib[0] %}
-{% for file in lib[1] %}
-
-{% assign filename = 'js/' | append: file | append: '.html' %}
-{% include "{{ filename }}" %}
-
-{% endfor %}
-{% endif %}
-{% endfor %}
+{% scripts %}
\ No newline at end of file
diff --git a/preview/pages/_layouts/base.html b/preview/pages/_layouts/base.html
index 1b1c81bfd..c23dafff6 100644
--- a/preview/pages/_layouts/base.html
+++ b/preview/pages/_layouts/base.html
@@ -30,6 +30,7 @@
{% endif %}
{% include "layout/css.html" %}
+ {% include "layout/js-libs.html" libs=libs.js-head %}