1
0
mirror of https://github.com/tabler/tabler.git synced 2025-12-22 18:04:26 +04:00

Compare commits

..

6 Commits

Author SHA1 Message Date
codecalm
fa8fff6ed5 Enhance build scripts, update SCSS variables for typography, and improve documentation navigation 2025-11-25 00:29:28 +01:00
codecalm
ae2f15183c Init Geist font 2025-11-24 23:43:49 +01:00
codecalm
c3fa9524ea Remove old vercel.json configuration and migrate redirects to docs/vercel.json 2025-11-24 23:14:11 +01:00
codecalm
49e766da8b update package-lock.json 2025-11-24 23:12:28 +01:00
codecalm
5c8a98788c Update icon counts, enhance menu navigation, and add new filters 2025-11-24 23:11:04 +01:00
codecalm
2a474ef935 docs: docs improvements 2025-11-24 22:42:21 +01:00
122 changed files with 605 additions and 1124 deletions

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": minor
"@tabler/preview": minor
---
Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixed `.btn-icon` to be square by aligning `min-width` calculation with base `.btn` formula.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Added `.btn-ghost` button variant with transparent background and hover effects.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added Change Password modal with current password, new password with strength indicator, confirm password validation, and show/hide password toggles.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": minor
---
Added color palette to signing component.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added Confirm Delete modal with warning icon, confirmation checkbox, and JavaScript validation to enable delete button only when confirmed.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added new Crypto Dashboard page with cryptocurrency portfolio overview, market data, and order history.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": patch
---
Added crypto markets and orders data files (`crypto-markets.json`, `crypto-orders.json`) for cryptocurrency dashboard functionality.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixed icon alignment for `.btn-sm` and `.btn-xl` sizes.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added Edit Profile modal with avatar upload, personal information fields, social links, and date of birth.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Update Tabler Icons to v3.35.0

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixed `.input-icon-addon` z-index issue with form validation feedback and added default height.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": patch
---
Updated flags and avatars styling for better visual consistency.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixed mixed declarations in SCSS.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update SCSS to use logical properties

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": minor
"@tabler/preview": minor
---
Added language selector dropdown to navbar with flag indicators for multilingual support.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": patch
"@tabler/preview": patch
---
Added `bg-blur` utility and increased `container-tight` width for layout flexibility.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Updated icons to v3.34.1 with 75 new icons.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Added `media-print` mixin and print styles to hide interactive components during printing.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Refactored page-menu structure for dashboards and updated navigation menu organization.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Updated activity messages.

View File

@@ -0,0 +1,7 @@
---
"@tabler/core": minor
"@tabler/preview": minor
---
Refactored navbar-side component by consolidating separate include files (apps, language, notifications, theme, user) into a single `navbar-side.html` file for better maintainability.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added New Task modal with fields for task name, description, assigned user, priority, due date, and category tags.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": minor
---
Added new onboarding page with progress indicator and navigation layout.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixed double bottom border in tables.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": minor
"@tabler/preview": minor
---
Added Progress Background component with text labels and value display.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Added `.progress-lg` and `.progress-xl` size variants for the progress component.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": minor
"@tabler/preview": minor
---
Added Progress Steps component for step-by-step navigation indicators.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Added smooth transitions for progress bar `width` and `background-color` changes.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated skip-link to use `visually-hidden` for improved accessibility.

View File

@@ -0,0 +1,6 @@
---
"@tabler/preview": minor
---
Added new Task List page with tables showing tasks organized by status (Upcoming, In Progress, Completed) and modal dialog for adding new tasks.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated deprecated global Sass functions to module equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated Bootstrap to v5.3.8.

View File

@@ -0,0 +1,6 @@
---
"@tabler/core": patch
"@tabler/preview": patch
---
Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.

View File

@@ -0,0 +1,5 @@
---
"@tabler/docs": patch
---
Fixed Docs search display in dark mode.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Fixed responsive layouts on the Form Elements page.

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Added comprehensive All Elements page with all UI components and Bootstrap elements

View File

@@ -26,7 +26,7 @@ jobs:
if: false if: false
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Cache turbo build setup - name: Cache turbo build setup
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -17,7 +17,7 @@ jobs:
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Cache turbo build setup - name: Cache turbo build setup
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v6 uses: actions/checkout@v5
with: with:
persist-credentials: false persist-credentials: false

View File

@@ -12,7 +12,7 @@ jobs:
name: Verify lock file integrity name: Verify lock file integrity
steps: steps:
- name: Clone Tabler - name: Clone Tabler
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Prevent lock file change - name: Prevent lock file change
uses: xalvarez/prevent-file-change-action@v3 uses: xalvarez/prevent-file-change-action@v3
with: with:

View File

@@ -21,7 +21,7 @@ jobs:
pull-requests: write # to create pull request pull-requests: write # to create pull request
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Install PNPM - name: Install PNPM
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Cache turbo build setup - name: Cache turbo build setup
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -1,45 +1,5 @@
# @tabler/core # @tabler/core
## 1.5.0
### Minor Changes
- 5e119d4: Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.
- 9c5d729: Added `.btn-ghost` button variant with transparent background and hover effects.
- ec94693: Added `.card-gradient` component with gradient variants, direction modifiers, and animated backgrounds.
- a198b0c: Added Geist font family integration.
- 8d8727f: Added language selector dropdown to navbar with flag indicators for multilingual support.
- 4ce08ca: Refactored navbar-side component by consolidating separate include files (apps, language, notifications, theme, user) into a single `navbar-side.html` file for better maintainability.
- 9c5d729: Added Progress Background component with text labels and value display.
- 9c5d729: Added `.progress-lg` and `.progress-xl` size variants for the progress component.
- 9c5d729: Added Progress Steps component for step-by-step navigation indicators.
- e3d86c5: Upgraded `apexcharts` from `3.54.1` to `5.3.6` and added CSS variables (`--chart-{id}-color-{index}`) for dynamic chart colors to fix compatibility with the new version.
### Patch Changes
- 059bae1: Refactored Bootstrap exports to use single source of truth in `bootstrap.js` and removed duplicate exports from `tabler.js` for better maintainability.
- 5018aa9: Fixed `.btn-icon` to be square by aligning `min-width` calculation with base `.btn` formula.
- c860288: Fixed icon alignment for `.btn-sm` and `.btn-xl` sizes.
- 2dc7eda: Updated `$border-color-translucent-dark` from `rgba(72, 110, 149, 0.14)` to `rgba(128, 150, 172, 0.2)` to improve visibility of form checkboxes and other form elements in dark mode.
- 6e656ad: Fixed `.input-icon-addon` z-index issue with form validation feedback and added default height.
- 8bc6fa7: Fixed status color classes to use CSS variables instead of hardcoded values and include social colors (bitbucket, facebook, etc.) in status class generation.
- e206d7a: Fixed white space on left side when scrollbar is present by replacing `margin-inline-start: calc(100vw - 100%)` with `scrollbar-gutter: stable` on `html` element, with `overflow-y: scroll` fallback for unsupported browsers.
- 4ce08ca: Updated flags and avatars styling for better visual consistency.
- b8b63d7: Fixed mixed declarations in SCSS.
- 0106d6b: Update SCSS to use logical properties
- 9c5d729: Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
- 5e119d4: Added `bg-blur` utility and increased `container-tight` width for layout flexibility.
- 3aba62e: Added `border-top-left-radius` and `border-top-right-radius` to first and last child elements in `.card-table` for proper corner rounding.
- 0c79963: Added `media-print` mixin and print styles to hide interactive components during printing.
- 9a3361f: Fixed double bottom border in tables.
- 9c5d729: Added smooth transitions for progress bar `width` and `background-color` changes.
- 41ed22a: Removed redundant nullish coalescing operator from `html` option in popover and tooltip initialization.
- 83ec6f8: Added Driver.js library integration and Tour demo page for interactive product tours and onboarding guides.
- 9c5d729: Updated skip-link to use `visually-hidden` for improved accessibility.
- 736e604: Updated deprecated global Sass functions to module equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).
- f8dee0a: Updated Bootstrap to v5.3.8.
- 9c5d729: Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.
## 1.4.0 ## 1.4.0
### Minor Changes ### Minor Changes

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="15" fill="none" viewBox="0 0 20 15"><path fill="#3d58db" fill-rule="evenodd" d="M0 0v15h20V0z" clip-rule="evenodd"/><path fill="#ffd018" fill-rule="evenodd" d="m9.407 2.442-.14.818.733-.385.735.386-.14-.818.594-.64h-.821L10 1l-.367.804h-.822zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 11.855l-.367.804h-.822l.595.64zM3.484 8.743l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821L5.43 9.07l-.367.804H4.24zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.66 12.595l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.52 3.971l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387zM15.14 7.85l-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821z" clip-rule="evenodd"/></svg> <svg xmlns="http://www.w3.org/2000/svg" width="21" height="16" fill="none"><mask id="a" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" d="M.001.927h20v15h-20z"/></mask><g mask="url(#a)"><path fill="#F7FCFF" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/><mask id="b" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/></mask><g fill-rule="evenodd" clip-rule="evenodd" mask="url(#b)"><path fill="#3D58DB" d="M.001.927v15h20v-15h-20Z"/><path fill="#FFD018" d="m9.407 3.137-.14.818L10 3.57l.735.386-.14-.818.594-.64h-.821L10 1.695l-.367.804h-.822l.595.639Zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 12.55l-.367.804h-.822l.595.64ZM3.484 9.438l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386-.735.386Zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821l-.368-.803-.367.804H4.24l.595.639Zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386-.734.386Zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24l.595.64Zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.66 13.29l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821l.594.64Zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.52 4.666l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64-.14.818Zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387-.734.387Zm3.062 3.879-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821l.594.639Z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,20 +1,3 @@
export * as Popper from '@popperjs/core' export * as Popper from '@popperjs/core'
// Export all Bootstrap components directly for consistent usage export { Dropdown, Tooltip, Popover, Tab, Toast } from 'bootstrap'
export {
Alert,
Button,
Carousel,
Collapse,
Dropdown,
Modal,
Offcanvas,
Popover,
ScrollSpy,
Tab,
Toast,
Tooltip
} from 'bootstrap'
// Re-export everything as namespace for backward compatibility
export * as bootstrap from 'bootstrap'

View File

@@ -7,7 +7,7 @@ let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggl
popoverTriggerList.map(function (popoverTriggerEl) { popoverTriggerList.map(function (popoverTriggerEl) {
let options = { let options = {
delay: { show: 50, hide: 50 }, delay: { show: 50, hide: 50 },
html: popoverTriggerEl.getAttribute('data-bs-html') === 'true', html: popoverTriggerEl.getAttribute('data-bs-html') === 'true' ?? false,
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto', placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
} }
return new Popover(popoverTriggerEl, options) return new Popover(popoverTriggerEl, options)

View File

@@ -4,7 +4,7 @@ let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggl
tooltipTriggerList.map(function (tooltipTriggerEl) { tooltipTriggerList.map(function (tooltipTriggerEl) {
let options = { let options = {
delay: { show: 50, hide: 50 }, delay: { show: 50, hide: 50 },
html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true', html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true' ?? false,
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto', placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
} }
return new Tooltip(tooltipTriggerEl, options) return new Tooltip(tooltipTriggerEl, options)

View File

@@ -9,8 +9,7 @@ import './src/tab'
import './src/toast' import './src/toast'
import './src/sortable' import './src/sortable'
// Re-export everything from bootstrap.js (single source of truth) export * as bootstrap from 'bootstrap'
export * from './src/bootstrap'
// Re-export tabler namespace
export * as tabler from './src/tabler' export * as tabler from './src/tabler'
export { Alert, Modal, Toast, Tooltip, Tab, Button, Carousel, Collapse, Dropdown, Popover, ScrollSpy, Offcanvas } from 'bootstrap'

View File

@@ -166,14 +166,5 @@
"dist/turbo.es2017-umd.js" "dist/turbo.es2017-umd.js"
], ],
"head": true "head": true
},
"driver.js": {
"npm": "driver.js",
"js": [
"dist/driver.js.iife.js"
],
"css": [
"dist/driver.css"
]
} }
} }

View File

@@ -1,35 +1,34 @@
{ {
"name": "@tabler/core", "name": "@tabler/core",
"version": "1.5.0", "version": "1.4.0",
"description": "Premium and Open Source dashboard template with responsive and high quality UI.", "description": "Premium and Open Source dashboard template with responsive and high quality UI.",
"homepage": "https://tabler.io", "homepage": "https://tabler.io",
"scripts": { "scripts": {
"dev": "pnpm run clean && pnpm run copy && pnpm run watch", "dev": "pnpm run clean && pnpm run copy && pnpm run watch",
"build": "pnpm run clean && pnpm run build-assets && pnpm run copy && pnpm run generate-sri", "build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri",
"build-assets": "concurrently \"pnpm run css\" \"pnpm run js\"",
"clean": "shx rm -rf dist demo", "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", "css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner",
"css-compile": "sass --no-source-map --load-path=node_modules --style expanded scss/:dist/css/", "css-compile": "sass --no-source-map --load-path=node_modules --style expanded scss/:dist/css/",
"css-banner": "node .build/add-banner.mjs", "css-banner": "node .build/add-banner.mjs",
"css-prefix": "postcss --config .build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"", "css-prefix": "postcss --config .build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
"css-rtl": "cross-env NODE_ENV=RTL postcss --config .build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"", "css-rtl": "cross-env NODE_ENV=RTL postcss --config .build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"",
"css-minify": "concurrently \"pnpm run css-minify-main\" \"pnpm run css-minify-rtl\"", "css-minify": "pnpm run css-minify-main && pnpm run css-minify-rtl",
"css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"", "css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
"css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"", "css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
"css-lint": "pnpm run css-lint-variables", "css-lint": "pnpm run css-lint-variables",
"css-lint-variables": "find-unused-sass-variables scss/ node_modules/bootstrap/scss/", "css-lint-variables": "find-unused-sass-variables scss/ node_modules/bootstrap/scss/",
"js": "pnpm run js-compile && pnpm run js-minify", "js": "pnpm run js-compile && pnpm run js-minify",
"js-compile": "concurrently \"pnpm run js-compile-standalone\" \"pnpm run js-compile-standalone-esm\" \"pnpm run js-compile-theme\" \"pnpm run js-compile-theme-esm\"", "js-compile": "pnpm run js-compile-standalone && pnpm run js-compile-standalone-esm && pnpm run js-compile-theme && pnpm run js-compile-theme-esm",
"js-compile-theme-esm": "rollup --environment THEME:true --environment ESM:true --config .build/rollup.config.mjs --sourcemap", "js-compile-theme-esm": "rollup --environment THEME:true --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
"js-compile-theme": "rollup --environment THEME:true --config .build/rollup.config.mjs --sourcemap", "js-compile-theme": "rollup --environment THEME:true --config .build/rollup.config.mjs --sourcemap",
"js-compile-standalone": "rollup --config .build/rollup.config.mjs --sourcemap", "js-compile-standalone": "rollup --config .build/rollup.config.mjs --sourcemap",
"js-compile-standalone-esm": "rollup --environment ESM:true --config .build/rollup.config.mjs --sourcemap", "js-compile-standalone-esm": "rollup --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
"js-minify": "concurrently \"pnpm run js-minify-standalone\" \"pnpm run js-minify-standalone-esm\" \"pnpm run js-minify-theme\" \"pnpm run js-minify-theme-esm\"", "js-minify": "pnpm run js-minify-standalone && pnpm run js-minify-standalone-esm && pnpm run js-minify-theme && pnpm run js-minify-theme-esm",
"js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map\" --output dist/js/tabler.min.js dist/js/tabler.js", "js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map\" --output dist/js/tabler.min.js dist/js/tabler.js",
"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-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": "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", "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": "concurrently \"pnpm run copy-img\" \"pnpm run copy-libs\" \"pnpm run copy-fonts\"", "copy": "pnpm run copy-img && pnpm run copy-libs && pnpm run copy-fonts",
"copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img", "copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img",
"copy-libs": "node .build/copy-libs.mjs", "copy-libs": "node .build/copy-libs.mjs",
"copy-fonts": "shx mkdir -p dist/fonts && shx cp -rf fonts/* dist/fonts", "copy-fonts": "shx mkdir -p dist/fonts && shx cp -rf fonts/* dist/fonts",
@@ -151,12 +150,13 @@
}, },
"dependencies": { "dependencies": {
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"bootstrap": "5.3.8" "bootstrap": "5.3.8",
"geist": "^1.5.1"
}, },
"devDependencies": { "devDependencies": {
"@hotwired/turbo": "^8.0.18", "@hotwired/turbo": "^8.0.18",
"@melloware/coloris": "^0.25.0", "@melloware/coloris": "^0.25.0",
"apexcharts": "^5.3.6", "apexcharts": "3.54.1",
"autosize": "^6.0.1", "autosize": "^6.0.1",
"choices.js": "^11.1.0", "choices.js": "^11.1.0",
"clipboard": "^2.0.11", "clipboard": "^2.0.11",
@@ -166,7 +166,6 @@
"flatpickr": "^4.6.13", "flatpickr": "^4.6.13",
"fslightbox": "^3.7.4", "fslightbox": "^3.7.4",
"fullcalendar": "^6.1.19", "fullcalendar": "^6.1.19",
"geist": "^1.5.1",
"hugerte": "^1.0.9", "hugerte": "^1.0.9",
"imask": "^7.6.1", "imask": "^7.6.1",
"jsvectormap": "^1.7.0", "jsvectormap": "^1.7.0",
@@ -178,8 +177,7 @@
"sortablejs": "^1.15.6", "sortablejs": "^1.15.6",
"star-rating.js": "^4.3.1", "star-rating.js": "^4.3.1",
"tom-select": "^2.4.3", "tom-select": "^2.4.3",
"typed.js": "^2.1.0", "typed.js": "^2.1.0"
"driver.js": "^1.0.0"
}, },
"directories": { "directories": {
"doc": "docs" "doc": "docs"

View File

@@ -32,7 +32,6 @@
/** Theme colors */ /** Theme colors */
@each $name, $color in map.merge($theme-colors, $social-colors) { @each $name, $color in map.merge($theme-colors, $social-colors) {
@debug contrast-ratio($color, white), $name, $min-contrast-ratio;
--#{$prefix}#{$name}: #{$color}; --#{$prefix}#{$name}: #{$color};
--#{$prefix}#{$name}-rgb: #{to-rgb($color)}; --#{$prefix}#{$name}-rgb: #{to-rgb($color)};
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color) > $min-contrast-ratio, var(--#{$prefix}light), var(--#{$prefix}dark))}; --#{$prefix}#{$name}-fg: #{if(contrast-ratio($color) > $min-contrast-ratio, var(--#{$prefix}light), var(--#{$prefix}dark))};

View File

@@ -6,7 +6,7 @@
$darken-dark: color.adjust($dark, $lightness: -2%) !default; $darken-dark: color.adjust($dark, $lightness: -2%) !default;
$lighten-dark: color.adjust($dark, $lightness: 2%) !default; $lighten-dark: color.adjust($dark, $lightness: 2%) !default;
$border-color-dark: color.adjust($dark, $lightness: 8%) !default; $border-color-dark: color.adjust($dark, $lightness: 8%) !default;
$border-color-translucent-dark: rgba(128, 150, 172, 0.2) !default; $border-color-translucent-dark: rgba(72, 110, 149, 0.14) !default;
$border-dark-color-dark: color.adjust($dark, $lightness: 4%) !default; $border-dark-color-dark: color.adjust($dark, $lightness: 4%) !default;
$border-active-color-dark: color.adjust($dark, $lightness: 12%) !default; $border-active-color-dark: color.adjust($dark, $lightness: 12%) !default;

View File

@@ -106,7 +106,7 @@ $colors: (
'gray-dark': $gray-800, 'gray-dark': $gray-800,
) !default; ) !default;
$min-contrast-ratio: 2 !default; $min-contrast-ratio: 4.5 !default;
$color-contrast-dark: $black !default; $color-contrast-dark: $black !default;
$color-contrast-light: $white !default; $color-contrast-light: $white !default;
@@ -444,7 +444,7 @@ $headings-font-style: null !default;
$headings-line-height: 1.2 !default; $headings-line-height: 1.2 !default;
$headings-font-weight: var(--#{$prefix}font-weight-semibold) !default; $headings-font-weight: var(--#{$prefix}font-weight-semibold) !default;
$headings-margin-bottom: var(--#{$prefix}spacer) !default; $headings-margin-bottom: var(--#{$prefix}spacer) !default;
$headings-color: light-dark(var(--#{$prefix}gray-900), var(--#{$prefix}white)) !default; $headings-color: inherit !default;
$font-weights: ( $font-weights: (
'light': $font-weight-light, 'light': $font-weight-light,
@@ -528,7 +528,7 @@ $initialism-font-size: $small-font-size !default;
$sub-sup-font-size: 0.75em !default; $sub-sup-font-size: 0.75em !default;
$dt-font-weight: $font-weight-semibold !default; $dt-font-weight: $font-weight-bold !default;
$list-inline-padding: 0.5rem !default; $list-inline-padding: 0.5rem !default;
@@ -556,6 +556,7 @@ $zindex-levels: (
3: 3, 3: 3,
) !default; ) !default;
$min-contrast-ratio: 1.5 !default;
$text-secondary-opacity: 0.7 !default; $text-secondary-opacity: 0.7 !default;
$text-secondary-light-opacity: 0.4 !default; $text-secondary-light-opacity: 0.4 !default;
$text-secondary-dark-opacity: 0.8 !default; $text-secondary-dark-opacity: 0.8 !default;
@@ -804,8 +805,8 @@ $icon-color: var(--#{$prefix}gray-400) !default;
// Code // Code
$code-color: light-dark(var(--#{$prefix}gray-600), var(--#{$prefix}gray-400)) !default; $code-color: light-dark(var(--#{$prefix}gray-600), var(--#{$prefix}gray-400)) !default;
$code-bg: light-dark(var(--#{$prefix}gray-100), var(--#{$prefix}gray-900)) !default; $code-bg: light-dark(var(--#{$prefix}gray-100), var(--#{$prefix}gray-900)) !default;
$code-font-size: $font-size-reative-sm !default; $code-font-size: $font-size-reative-md !default;
$code-line-height: 1.25rem !default; $code-line-height: 1.7142857em !default;
$pre-padding: 1rem !default; $pre-padding: 1rem !default;
$pre-bg: var(--#{$prefix}bg-surface-dark) !default; $pre-bg: var(--#{$prefix}bg-surface-dark) !default;
@@ -1039,7 +1040,7 @@ $alert-padding-y: 0.75rem !default;
$alert-padding-x: 1rem !default; $alert-padding-x: 1rem !default;
$alert-margin-bottom: 1rem !default; $alert-margin-bottom: 1rem !default;
$alert-border-radius: var(--#{$prefix}border-radius) !default; $alert-border-radius: var(--#{$prefix}border-radius) !default;
$alert-link-font-weight: var(--#{$prefix}font-weight-semibold) !default; $alert-link-font-weight: var(--#{$prefix}font-weight-bold) !default;
$alert-border-width: var(--#{$prefix}border-width) !default; $alert-border-width: var(--#{$prefix}border-width) !default;
$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side $alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
$alert-border-color: var(--#{$prefix}border-color-translucent) !default; $alert-border-color: var(--#{$prefix}border-color-translucent) !default;
@@ -1061,7 +1062,7 @@ $breadcrumb-divider: string.quote('/') !default;
$breadcrumb-divider-flipped: $breadcrumb-divider !default; $breadcrumb-divider-flipped: $breadcrumb-divider !default;
$breadcrumb-border-radius: null !default; $breadcrumb-border-radius: null !default;
$breadcrumb-link-color: var(--#{$prefix}link-color) !default; $breadcrumb-link-color: var(--#{$prefix}link-color) !default;
$breadcrumb-active-font-weight: var(--#{$prefix}font-weight-semibold) !default; $breadcrumb-active-font-weight: var(--#{$prefix}font-weight-bold) !default;
$breadcrumb-disabled-color: var(--#{$prefix}disabled-color) !default; $breadcrumb-disabled-color: var(--#{$prefix}disabled-color) !default;
$breadcrumb-variants: ( $breadcrumb-variants: (
@@ -1539,7 +1540,7 @@ $navbar-brand-padding-y: $nav-link-padding-y !default;
$navbar-brand-image-height: 2rem !default; $navbar-brand-image-height: 2rem !default;
$navbar-brand-margin-right: 0 !default; $navbar-brand-margin-right: 0 !default;
$navbar-brand-margin-end: 1rem !default; $navbar-brand-margin-end: 1rem !default;
$navbar-brand-font-weight: var(--#{$prefix}font-weight-semibold) !default; $navbar-brand-font-weight: var(--#{$prefix}font-weight-bold) !default;
$navbar-toggler-padding-y: 0.25rem !default; $navbar-toggler-padding-y: 0.25rem !default;
$navbar-toggler-padding-x: 0.75rem !default; $navbar-toggler-padding-x: 0.75rem !default;

View File

@@ -1,13 +1,5 @@
@use 'sass:map'; @use 'sass:map';
html {
scrollbar-gutter: stable;
@supports not (scrollbar-gutter: stable) {
overflow-y: scroll;
}
}
// stylelint-disable property-no-vendor-prefix // stylelint-disable property-no-vendor-prefix
body { body {
letter-spacing: $body-letter-spacing; letter-spacing: $body-letter-spacing;

View File

@@ -2,6 +2,11 @@
:host { :host {
font-size: 16px; font-size: 16px;
height: 100%; height: 100%;
@include media-breakpoint-up(lg) {
margin-inline-start: calc(100vw - 100%);
margin-inline-end: 0;
}
} }
:root, :root,

View File

@@ -79,7 +79,7 @@ $pricing-card-width: 22rem;
justify-content: center; justify-content: center;
font-size: 2.5rem; font-size: 2.5rem;
line-height: 1; line-height: 1;
font-weight: $font-weight-semibold; font-weight: $font-weight-bold;
margin: 0.75rem 0; margin: 0.75rem 0;
} }
@@ -87,7 +87,7 @@ $pricing-card-width: 22rem;
font-size: $h2-font-size; font-size: $h2-font-size;
line-height: 1.5; line-height: 1.5;
margin-inline-end: 0.25rem; margin-inline-end: 0.25rem;
font-weight: $font-weight-semibold; font-weight: $font-weight-bold;
} }
.pricing-price-description { .pricing-price-description {

View File

@@ -72,7 +72,7 @@
.section-title { .section-title {
font-size: var(--#{$prefix}font-size-h1); font-size: var(--#{$prefix}font-size-h1);
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
line-height: 1.2; line-height: 1.2;
} }

View File

@@ -207,10 +207,6 @@
@include elements-list; @include elements-list;
} }
.btn-list-center {
justify-content: center;
}
// //
// Button floating // Button floating
// //

View File

@@ -1,21 +1,3 @@
@use 'sass:map';
@property --tblr-card-gradient-direction {
syntax: '<angle>';
inherits: true;
initial-value: 180deg;
}
@keyframes gradient-animation {
0% {
--#{$prefix}card-gradient-direction: 180deg;
}
100% {
--#{$prefix}card-gradient-direction: 540deg;
}
}
.card { .card {
@include transition(transform $transition-time ease-out, opacity $transition-time ease-out, box-shadow $transition-time ease-out); @include transition(transform $transition-time ease-out, opacity $transition-time ease-out, box-shadow $transition-time ease-out);
@@ -40,7 +22,6 @@
// Card borderless // Card borderless
.card-borderless { .card-borderless {
&, &,
.card-header, .card-header,
.card-footer { .card-footer {
@@ -141,7 +122,7 @@
background: $active-bg; background: $active-bg;
} }
&+& { & + & {
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color); border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
} }
} }
@@ -156,8 +137,8 @@ Stacked card
&:after { &:after {
position: absolute; position: absolute;
top: calc(-1 * var(--#{$prefix}card-stacked-offset)); top: calc(-1 * var(--#{$prefix}card-stacked-offset));
inset-inline-end: var(--#{$prefix}card-stacked-offset); inset-inline-end: var(--#{$prefix}card-stacked-offset);
inset-inline-start: var(--#{$prefix}card-stacked-offset); inset-inline-start: var(--#{$prefix}card-stacked-offset);
height: var(--#{$prefix}card-stacked-offset); height: var(--#{$prefix}card-stacked-offset);
content: ''; content: '';
background: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface)); background: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
@@ -174,9 +155,9 @@ Stacked card
&:before { &:before {
position: absolute; position: absolute;
top: 0; top: 0;
inset-inline-end: 0; inset-inline-end: 0;
bottom: 0; bottom: 0;
inset-inline-start: 0; inset-inline-start: 0;
content: ''; content: '';
background: rgba($dark, 0.48); background: rgba($dark, 0.48);
} }
@@ -306,7 +287,7 @@ Stacked card
margin: 0 0 1rem; margin: 0 0 1rem;
font-size: $h3-font-size; font-size: $h3-font-size;
font-weight: var(--#{$prefix}font-weight-medium); font-weight: var(--#{$prefix}font-weight-medium);
color: var(--#{$prefix}heading-color); color: $headings-color;
line-height: 1.5rem; line-height: 1.5rem;
@at-root a#{&}:hover { @at-root a#{&}:hover {
@@ -340,17 +321,17 @@ Stacked card
margin-bottom: 0; margin-bottom: 0;
} }
.card-sm>& { .card-sm > & {
padding: 1rem; padding: 1rem;
} }
.card-md>& { .card-md > & {
@include media-breakpoint-up(md) { @include media-breakpoint-up(md) {
padding: 2.5rem; padding: 2.5rem;
} }
} }
.card-lg>& { .card-lg > & {
@include media-breakpoint-up(md) { @include media-breakpoint-up(md) {
padding: 2rem; padding: 2rem;
} }
@@ -364,7 +345,7 @@ Stacked card
padding: 0; padding: 0;
} }
&+& { & + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color); border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
} }
} }
@@ -427,19 +408,9 @@ Card table
margin-bottom: 0 !important; margin-bottom: 0 !important;
tr { tr {
td, td,
th { th {
&:first-child { &:first-child {
padding-left: $card-spacer-x;
border-left: 0;
border-top-left-radius: var(--#{$prefix}card-border-radius);
}
&:last-child {
padding-right: $card-spacer-x;
border-right: 0;
border-top-right-radius: var(--#{$prefix}card-border-radius);
padding-inline-start: $card-spacer-x; padding-inline-start: $card-spacer-x;
border-inline-start: 0; border-inline-start: 0;
} }
@@ -456,11 +427,11 @@ Card table
tfoot { tfoot {
&:last-child { &:last-child {
tr:last-child { tr:last-child {
>*:last-child { > *:last-child {
border-end-end-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width)); border-end-end-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width));
} }
>*:first-child { > *:first-child {
border-end-start-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width)); border-end-start-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width));
} }
} }
@@ -496,7 +467,7 @@ Card table
} }
} }
.card-body+& { .card-body + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color); border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color);
} }
} }
@@ -541,7 +512,7 @@ Card avatar
Card list group Card list group
*/ */
.card-list-group { .card-list-group {
.card-body+& { .card-body + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color); border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
} }
@@ -600,7 +571,7 @@ Card list group
} }
} }
+.nav-item { + .nav-item {
margin-inline-start: calc(-1 * #{$card-border-width}); margin-inline-start: calc(-1 * #{$card-border-width});
} }
} }
@@ -640,7 +611,7 @@ Card list group
border-end-start-radius: 0; border-end-start-radius: 0;
} }
.nav-tabs+.tab-content .card { .nav-tabs + .tab-content .card {
border-end-start-radius: var(--#{$prefix}card-border-radius); border-end-start-radius: var(--#{$prefix}card-border-radius);
border-start-start-radius: 0; border-start-start-radius: 0;
} }
@@ -653,83 +624,3 @@ Card note
--#{$prefix}card-bg: #fff7dd; --#{$prefix}card-bg: #fff7dd;
--#{$prefix}card-border-color: #fff1c9; --#{$prefix}card-border-color: #fff1c9;
} }
/**
Card gradient
*/
.card-gradient {
--#{$prefix}card-gradient-direction: 180deg;
--#{$prefix}card-gradient-opacity: 86%;
--#{$prefix}card-gradient: var(--tblr-primary), var(--tblr-primary);
background: radial-gradient(ellipse at center, var(--#{$prefix}card-bg) 0%, color-mix(in srgb, var(--#{$prefix}card-bg) 0%, transparent) 80%) border-box,
linear-gradient(var(--#{$prefix}card-gradient-direction), color-mix(in srgb, var(--#{$prefix}card-bg) var(--#{$prefix}card-gradient-opacity), transparent) 0%, var(--#{$prefix}card-bg) 40%) border-box,
linear-gradient(calc(270deg + var(--#{$prefix}card-gradient-direction)), var(--#{$prefix}card-gradient)) border-box;
}
@each $name, $color in map.merge($colors, $theme-colors) {
.card-gradient-#{$name} {
--#{$prefix}card-gradient: var(--tblr-#{$name}), var(--tblr-#{$name});
}
}
.card-gradient-rainbow {
--#{$prefix}card-gradient: #78C5D6,
#459BA8,
#79C267,
#C5D647,
#F5D63D,
#F08B33,
#E868A2,
#BE61A5;
}
.card-gradient-sun {
--#{$prefix}card-gradient: #fd1d1d, #fcb045;
}
.card-gradient-snow {
--#{$prefix}card-gradient: #333, #e9ecef;
}
.card-gradient-ocean {
--#{$prefix}card-gradient: #1CB5E0, #000851;
}
.card-gradient-mellow {
--#{$prefix}card-gradient: #f8ff00, #3ad59f;
}
.card-gradient-disco {
--#{$prefix}card-gradient: #FC466B, #3F5EFB;
}
.card-gradient-psychedelic {
--#{$prefix}card-gradient: #fcc5e4, #fda34b, #ff7882, #c8699e, #7046aa, #0c1db8, #020f75;
}
.card-gradient-love {
--#{$prefix}card-gradient: #f235e6, #bc0707;
}
.card-gradient-gold {
--#{$prefix}card-gradient: #9d4100, #bf7122, #f59f00, #FFD700;
}
.card-gradient-animated {
animation: gradient-animation 15s linear infinite;
}
.card-gradient-bottom {
--#{$prefix}card-gradient-direction: 0deg;
}
.card-gradient-end {
--#{$prefix}card-gradient-direction: 270deg;
}
.card-gradient-start {
--#{$prefix}card-gradient-direction: 90deg;
}

View File

@@ -139,7 +139,7 @@ Form help
*/ */
.form-help { .form-help {
display: inline-flex; display: inline-flex;
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
align-items: center; align-items: center;
justify-content: center; justify-content: center;
width: 1.125rem; width: 1.125rem;

View File

@@ -82,7 +82,7 @@
} }
&.active { &.active {
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
color: inherit; color: inherit;
background: $list-group-active-bg; background: $list-group-active-bg;

View File

@@ -17,12 +17,12 @@
.nav-link.active, .nav-link.active,
.nav-item.show .nav-link { .nav-item.show .nav-link {
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}nav-link-font-weight);
color: var(--#{$prefix}nav-link-active-color); color: var(--#{$prefix}nav-link-active-color);
} }
&.nav-pills { &.nav-pills {
margin: 0 calc(-1 * $nav-link-padding-x); margin: 0 calc(-1 * var(--#{$prefix}nav-link-padding-x));
} }
} }

View File

@@ -9,7 +9,7 @@
vertical-align: bottom; vertical-align: bottom;
font-style: normal; font-style: normal;
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1); box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1);
border-radius: var(--#{config.$prefix}border-radius); border-radius: 2px;
} }
@each $payment in config.$payment-providers { @each $payment in config.$payment-providers {

View File

@@ -9,7 +9,7 @@
z-index: 1; z-index: 1;
padding: 0.25rem 0.75rem; padding: 0.25rem 0.75rem;
font-size: $card-ribbon-font-size; font-size: $card-ribbon-font-size;
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
line-height: 1; line-height: 1;
color: $white; color: $white;
text-align: center; text-align: center;

View File

@@ -1,5 +1,3 @@
@use 'sass:map';
@keyframes status-pulsate-main { @keyframes status-pulsate-main {
40% { 40% {
transform: scale(1.25, 1.25); transform: scale(1.25, 1.25);
@@ -76,10 +74,10 @@
color: var(--#{$prefix}body-color) !important; color: var(--#{$prefix}body-color) !important;
} }
@each $name, $color in map.merge($theme-colors, $social-colors) { @each $name, $color in $theme-colors {
.status-#{$name} { .status-#{$name} {
--#{$prefix}status-color: var(--#{$prefix}#{$name}); --#{$prefix}status-color: #{$color};
--#{$prefix}status-color-rgb: var(--#{$prefix}#{$name}-rgb); --#{$prefix}status-color-rgb: #{to-rgb($color)};
} }
} }

View File

@@ -81,7 +81,7 @@
} }
&.active { &.active {
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
&:after { &:after {
background: var(--#{$prefix}steps-inactive-color); background: var(--#{$prefix}steps-inactive-color);

View File

@@ -1,6 +1,4 @@
.table { .table {
font: inherit;
thead { thead {
th { th {
background: $table-th-bg; background: $table-th-bg;

View File

@@ -122,7 +122,7 @@ pre {
background: $pre-bg; background: $pre-bg;
color: $pre-color; color: $pre-color;
border-radius: var(--#{$prefix}border-radius); border-radius: var(--#{$prefix}border-radius);
line-height: $line-height-base; line-height: $code-line-height;
@include scrollbar; @include scrollbar;
@@ -307,7 +307,7 @@ $text-variants: (
border-radius: var(--#{$prefix}border-radius); border-radius: var(--#{$prefix}border-radius);
line-height: calc(var(--#{$prefix}steps-item-size) - 2px); line-height: calc(var(--#{$prefix}steps-item-size) - 2px);
font-size: var(--#{$prefix}font-size-h4); font-size: var(--#{$prefix}font-size-h4);
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
} }
} }

View File

@@ -82,4 +82,9 @@ Form switch
.form-check-label { .form-check-label {
padding-top: 0.125rem; padding-top: 0.125rem;
} }
} }
/*Correction of Form-check position*/
.form-check-input:checked {
border: none;
}

View File

@@ -10,7 +10,7 @@
background: transparent !important; background: transparent !important;
border: 0 !important; border: 0 !important;
margin: 0 !important; margin: 0 !important;
font-weight: var(--#{$prefix}font-weight-semibold); font-weight: var(--#{$prefix}font-weight-bold);
padding: 0.25rem 0.5rem !important; padding: 0.25rem 0.5rem !important;
} }

View File

@@ -36,7 +36,7 @@
} }
.fc-event-time { .fc-event-time {
font-weight: var(--#{$prefix}font-weight-semibold) !important; font-weight: var(--#{$prefix}font-weight-bold) !important;
} }
.fc-col-header-cell-cushion { .fc-col-header-cell-cushion {

View File

@@ -1,45 +1,5 @@
# Tabler Documentation Changelog # Tabler Documentation Changelog
## 1.5.0
### Patch Changes
- a198b0c: Added Geist font family integration.
- ab8009b: Fixed Docs search display in dark mode.
- Updated dependencies [5e119d4]
- Updated dependencies [059bae1]
- Updated dependencies [5018aa9]
- Updated dependencies [9c5d729]
- Updated dependencies [ec94693]
- Updated dependencies [c860288]
- Updated dependencies [2dc7eda]
- Updated dependencies [6e656ad]
- Updated dependencies [8bc6fa7]
- Updated dependencies [e206d7a]
- Updated dependencies [4ce08ca]
- Updated dependencies [b8b63d7]
- Updated dependencies [0106d6b]
- Updated dependencies [a198b0c]
- Updated dependencies [9c5d729]
- Updated dependencies [8d8727f]
- Updated dependencies [5e119d4]
- Updated dependencies [3aba62e]
- Updated dependencies [0c79963]
- Updated dependencies [4ce08ca]
- Updated dependencies [9a3361f]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [41ed22a]
- Updated dependencies [83ec6f8]
- Updated dependencies [9c5d729]
- Updated dependencies [736e604]
- Updated dependencies [f8dee0a]
- Updated dependencies [9c5d729]
- Updated dependencies [e3d86c5]
- @tabler/core@1.5.0
## 1.4.0 ## 1.4.0
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,8 @@
--- ---
title: Tabler Emails title: Tabler Emails
menu-title: Emails
seoTitle: Tabler Emails - premium email templates seoTitle: Tabler Emails - premium email templates
icon: mail
order: 4 order: 4
description: Customizable email templates for over 90 clients and devices. description: Customizable email templates for over 90 clients and devices.
summary: Tabler Emails is a set of 80 eye-catching, customizable HTML templates. They are compatible with over 90 email clients and devices. summary: Tabler Emails is a set of 80 eye-catching, customizable HTML templates. They are compatible with over 90 email clients and devices.

View File

@@ -1,6 +1,8 @@
--- ---
title: Tabler Icons title: Tabler Icons
menu-title: Icons
summary: Tabler Icons is a powerful and versatile icon library that offers a huge collection of high quality icons suitable for a wide range of applications. With its clean and modern aesthetic, extensive customization options, and user-friendly website and plugins, Tabler Icons is an excellent resource for designers and developers looking to enhance their projects with high-quality icons. summary: Tabler Icons is a powerful and versatile icon library that offers a huge collection of high quality icons suitable for a wide range of applications. With its clean and modern aesthetic, extensive customization options, and user-friendly website and plugins, Tabler Icons is an excellent resource for designers and developers looking to enhance their projects with high-quality icons.
icon: ghost
order: 2 order: 2
description: Over 5000 pixel-perfect icons for web design and development description: Over 5000 pixel-perfect icons for web design and development
--- ---
@@ -9,5 +11,5 @@ description: Over 5000 pixel-perfect icons for web design and development
Tabler Icons is a comprehensive icon library that features {{ iconsCount }} high-quality icons. These icons are designed with a clean and modern aesthetic, making them suitable for a wide range of applications. Tabler Icons is a comprehensive icon library that features {{ iconsCount }} high-quality icons. These icons are designed with a clean and modern aesthetic, making them suitable for a wide range of applications.
To use Tabler Icons, you can visit their website at https://tabler-icons.io. From there, you can browse the full collection of icons by category or search for a specific icon using the search bar. Once you have found an icon you like, you can download it in various file formats, including SVG, PNG, and Icon Font. To use Tabler Icons, you can visit their website at [Tabler Icons Official Website]({{ site.icons.link }}). From there, you can browse the full collection of icons by category or search for a specific icon using the search bar. Once you have found an icon you like, you can download it in various file formats, including SVG, PNG, and Icon Font.

View File

@@ -1,6 +1,8 @@
--- ---
title: Tabler Illustrations title: Tabler Illustrations
menu-title: Illustrations
order: 3 order: 3
icon: paint
description: Customizable illustrations for modern web and mobile designs. description: Customizable illustrations for modern web and mobile designs.
summary: Tabler Illustrations is a collection of customizable SVG illustrations for your web project. Explore our library of illustrations to enhance your web development experience. summary: Tabler Illustrations is a collection of customizable SVG illustrations for your web project. Explore our library of illustrations to enhance your web development experience.
--- ---

View File

@@ -10,11 +10,10 @@ To create an offcanvas, add the `.offcanvas` class to a container element. You c
{% capture html -%} {% capture html -%}
<div <div
class="offcanvas offcanvas-start" class="offcanvas offcanvas-start show"
tabindex="-1" tabindex="-1"
id="offcanvas" id="offcanvas"
aria-labelledby="offcanvasLabel" aria-labelledby="offcanvasLabel"
data-bs-scroll="true"
> >
<div class="offcanvas-body"> <div class="offcanvas-body">
Content for the offcanvas goes here. You can place just about any Tabler component or custom Content for the offcanvas goes here. You can place just about any Tabler component or custom
@@ -30,12 +29,11 @@ The offcanvas component is used to display a cookies banner. It is a great way t
{% capture html -%} {% capture html -%}
<div <div
class="offcanvas offcanvas-bottom h-auto" class="offcanvas offcanvas-bottom h-auto show"
tabindex="-1" tabindex="-1"
id="offcanvasBottom" id="offcanvasBottom"
aria-modal="true" aria-modal="true"
role="dialog" role="dialog"
data-bs-scroll="true"
> >
<div class="offcanvas-body"> <div class="offcanvas-body">
<div class="container"> <div class="container">
@@ -60,12 +58,4 @@ The offcanvas component is used to display a cookies banner. It is a great way t
</div> </div>
</div> </div>
{%- endcapture %} {%- endcapture %}
{% include "docs/example.html" html=html raw %} {% include "docs/example.html" html=html raw %}
<script>
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('[data-bs-scroll="true"]').forEach(el => {
new bootstrap.Offcanvas(el, { scroll: true }).show();
});
});
</script>

View File

@@ -1,6 +1,8 @@
--- ---
title: Tabler UI title: Tabler UI
menu-title: Admin Template
order: 1 order: 1
icon: layout
description: Free and open source web application UI kit based on Bootstrap description: Free and open source web application UI kit based on Bootstrap
summary: Tabler UI is a carefully crafted collection of modern and responsive user interface components. Built on top of Bootstrap, it helps developers create stunning and functional web applications quickly and efficiently. summary: Tabler UI is a carefully crafted collection of modern and responsive user interface components. Built on top of Bootstrap, it helps developers create stunning and functional web applications quickly and efficiently.
--- ---

View File

@@ -274,9 +274,9 @@ export default function (eleventyConfig) {
eleventyConfig.addGlobalData("posthogHost", process.env.POSTHOG_HOST || "https://us.i.posthog.com"); eleventyConfig.addGlobalData("posthogHost", process.env.POSTHOG_HOST || "https://us.i.posthog.com");
const data = { const data = {
iconsCount: () => 123, iconsCount: () => 5963,
emailsCount: () => 123, emailsCount: () => 80,
illustrationsCount: () => 123 illustrationsCount: () => 105
}; };
for (const [key, value] of Object.entries(data)) { for (const [key, value] of Object.entries(data)) {

View File

@@ -1,11 +1,10 @@
{ {
"name": "@tabler/docs", "name": "@tabler/docs",
"version": "1.5.0", "version": "1.4.0",
"description": "", "description": "",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "pnpm run clean && pnpm run build-assets && pnpm run html", "build": "pnpm run clean && pnpm run js && pnpm run css && pnpm run html ",
"build-assets": "concurrently \"pnpm run js\" \"pnpm run css\"",
"html": "eleventy", "html": "eleventy",
"js": "pnpm run js-compile && pnpm run js-minify", "js": "pnpm run js-compile && pnpm run js-minify",
"js-compile": "rollup --config .build/rollup.config.mjs --sourcemap", "js-compile": "rollup --config .build/rollup.config.mjs --sourcemap",

View File

@@ -2,11 +2,13 @@
:root { :root {
--docsearch-primary-color: var(--tblr-primary); --docsearch-primary-color: var(--tblr-primary);
--docsearch-searchbox-background: var(--tblr-bg-surface); --docsearch-searchbox-background: var(--tblr-bg-surface-secondary);
--docsearch-searchbox-focus-background: var(--tblr-bg-surface); --docsearch-searchbox-focus-background: var(--tblr-bg-surface-secondary);
--docsearch-text-color: var(--tblr-body-text); --docsearch-text-color: var(--tblr-body-text);
--docsearch-key-shadow: 0 0 0 1px var(--tblr-border-color); --docsearch-key-shadow: none;
--docsearch-key-gradient: var(--tblr-bg-surface-secondary); --docsearch-key-gradient: var(--tblr-bg-surface-secondary);
--docsearch-searchbox-shadow: 0 0 0 1px var(--tblr-border-color);
--docsearch-searchbox-focus-background: var(--tblr-bg-surface-tertiary);
} }
.col-docs { .col-docs {
@@ -24,6 +26,11 @@
box-shadow: 0 0 0 1px var(--tblr-border-color); box-shadow: 0 0 0 1px var(--tblr-border-color);
font-weight: var(--tblr-font-weight-normal); font-weight: var(--tblr-font-weight-normal);
transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
border-radius: var(--tblr-border-radius);
}
.DocSearch-Button-Placeholder {
font-size: var(--tblr-font-size);
} }
.DocSearch-SearchBar { .DocSearch-SearchBar {
@@ -32,6 +39,11 @@
background-color: var(--tblr-bg-surface) !important; background-color: var(--tblr-bg-surface) !important;
} }
.DocSearch-Search-Icon {
width: 1rem;
height: 1rem;
}
.DocSearch-Hit-source { .DocSearch-Hit-source {
background: none !important; background: none !important;
} }
@@ -45,7 +57,7 @@
border: 1px solid var(--tblr-border-color) !important; border: 1px solid var(--tblr-border-color) !important;
color: var(--tblr-body-color) !important; color: var(--tblr-body-color) !important;
box-shadow: none !important; box-shadow: none !important;
&:hover { &:hover {
background-color: var(--tblr-bg-surface-tertiary) !important; background-color: var(--tblr-bg-surface-tertiary) !important;
border-color: var(--tblr-border-color-active) !important; border-color: var(--tblr-border-color-active) !important;
@@ -88,7 +100,7 @@
.DocSearch-Input { .DocSearch-Input {
color: var(--tblr-body-color) !important; color: var(--tblr-body-color) !important;
&::placeholder { &::placeholder {
color: var(--tblr-muted) !important; color: var(--tblr-muted) !important;
} }
@@ -100,8 +112,20 @@
box-shadow: none !important; box-shadow: none !important;
} }
.DocSearch-Button-Keys {
min-width: 0;
gap: .25rem;
margin-right: .25rem;
}
.DocSearch-Button-Key { .DocSearch-Button-Key {
top: 0; top: 0;
box-shadow: none;
background: none;
padding: 0;
margin: 0;
width: auto;
font-size: var(--tblr-font-size);
} }
.DocSearch-Container { .DocSearch-Container {
@@ -114,13 +138,13 @@
} }
} }
.example > .modal, .example>.modal,
.example > .offcanvas { .example>.offcanvas {
display: block !important; display: block !important;
position: relative !important; position: relative !important;
} }
.example > .offcanvas-backdrop { .example>.offcanvas-backdrop {
position: absolute !important; position: absolute !important;
} }
@@ -133,4 +157,4 @@ code {
::selection { ::selection {
background: var(--tblr-primary); background: var(--tblr-primary);
} }
} }

View File

@@ -1,5 +1,12 @@
{ {
"trailingSlash": false, "trailingSlash": false,
"redirects": [
{
"source": "/",
"destination": "/ui",
"permanent": false
}
],
"rewrites": [ "rewrites": [
{ {
"source": "/stats/js/script.js", "source": "/stats/js/script.js",
@@ -17,6 +24,7 @@
"source": "/eat/:path(.*)", "source": "/eat/:path(.*)",
"destination": "https://eu.i.posthog.com/:path*" "destination": "https://eu.i.posthog.com/:path*"
}, },
{ {
"source": "/(.*)", "source": "/(.*)",
"destination": "/error-404.html" "destination": "/error-404.html"

151
pnpm-lock.yaml generated
View File

@@ -108,6 +108,9 @@ importers:
bootstrap: bootstrap:
specifier: 5.3.8 specifier: 5.3.8
version: 5.3.8(@popperjs/core@2.11.8) version: 5.3.8(@popperjs/core@2.11.8)
geist:
specifier: ^1.5.1
version: 1.5.1(next@16.0.4(@babel/core@7.27.1)(@playwright/test@1.53.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.89.2))
devDependencies: devDependencies:
'@hotwired/turbo': '@hotwired/turbo':
specifier: ^8.0.18 specifier: ^8.0.18
@@ -116,8 +119,8 @@ importers:
specifier: ^0.25.0 specifier: ^0.25.0
version: 0.25.0 version: 0.25.0
apexcharts: apexcharts:
specifier: ^5.3.6 specifier: 3.54.1
version: 5.3.6 version: 3.54.1
autosize: autosize:
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.0.1 version: 6.0.1
@@ -130,9 +133,6 @@ importers:
countup.js: countup.js:
specifier: ^2.9.0 specifier: ^2.9.0
version: 2.9.0 version: 2.9.0
driver.js:
specifier: ^1.0.0
version: 1.4.0
dropzone: dropzone:
specifier: ^6.0.0-beta.2 specifier: ^6.0.0-beta.2
version: 6.0.0-beta.2 version: 6.0.0-beta.2
@@ -148,9 +148,6 @@ importers:
fullcalendar: fullcalendar:
specifier: ^6.1.19 specifier: ^6.1.19
version: 6.1.19 version: 6.1.19
geist:
specifier: ^1.5.1
version: 1.5.1(next@16.0.4(@babel/core@7.27.1)(@playwright/test@1.53.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.89.2))
hugerte: hugerte:
specifier: ^1.0.9 specifier: ^1.0.9
version: 1.0.9 version: 1.0.9
@@ -1268,31 +1265,6 @@ packages:
resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==} resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
'@svgdotjs/svg.draggable.js@3.0.6':
resolution: {integrity: sha512-7iJFm9lL3C40HQcqzEfezK2l+dW2CpoVY3b77KQGqc8GXWa6LhhmX5Ckv7alQfUXBuZbjpICZ+Dvq1czlGx7gA==}
peerDependencies:
'@svgdotjs/svg.js': ^3.2.4
'@svgdotjs/svg.filter.js@3.0.9':
resolution: {integrity: sha512-/69XMRCDoam2HgC4ldHIaDgeQf1ViHIsa0Ld4uWgiXtZ+E24DWHe/9Ib6kbNiZ7WRIdlVokUDR1Fg0kjIpkfbw==}
engines: {node: '>= 0.8.0'}
'@svgdotjs/svg.js@3.2.5':
resolution: {integrity: sha512-/VNHWYhNu+BS7ktbYoVGrCmsXDh+chFMaONMwGNdIBcFHrWqk2jY8fNyr3DLdtQUIalvkPfM554ZSFa3dm3nxQ==}
'@svgdotjs/svg.resize.js@2.0.5':
resolution: {integrity: sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==}
engines: {node: '>= 14.18'}
peerDependencies:
'@svgdotjs/svg.js': ^3.2.4
'@svgdotjs/svg.select.js': ^4.0.1
'@svgdotjs/svg.select.js@4.0.3':
resolution: {integrity: sha512-qkMgso1sd2hXKd1FZ1weO7ANq12sNmQJeGDjs46QwDVsxSRcHmvWKL2NDF7Yimpwf3sl5esOLkPqtV2bQ3v/Jg==}
engines: {node: '>= 14.18'}
peerDependencies:
'@svgdotjs/svg.js': ^3.2.4
'@swc/helpers@0.2.14': '@swc/helpers@0.2.14':
resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==} resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==}
@@ -1388,8 +1360,8 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
apexcharts@5.3.6: apexcharts@3.54.1:
resolution: {integrity: sha512-sVEPw+J0Gp0IHQabKu8cfdsxlfME0e36Wid7RIaPclGM2OUt+O7O4+6mfAmTUYhy5bDk8cNHzEhPfVtLCIXEJA==} resolution: {integrity: sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==}
argparse@1.0.10: argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
@@ -1795,9 +1767,6 @@ packages:
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
engines: {node: '>=10'} engines: {node: '>=10'}
driver.js@1.4.0:
resolution: {integrity: sha512-Gm64jm6PmcU+si21sQhBrTAM1JvUrR0QhNmjkprNLxohOBzul9+pNHXgQaT9lW84gwg9GMLB3NZGuGolsz5uew==}
dropzone@6.0.0-beta.2: dropzone@6.0.0-beta.2:
resolution: {integrity: sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ==} resolution: {integrity: sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ==}
@@ -1825,8 +1794,8 @@ packages:
electron-to-chromium@1.5.149: electron-to-chromium@1.5.149:
resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==} resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==}
electron-to-chromium@1.5.262: electron-to-chromium@1.5.259:
resolution: {integrity: sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==} resolution: {integrity: sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==}
emoji-regex@8.0.0: emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -3294,6 +3263,37 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
svg.draggable.js@2.2.2:
resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==}
engines: {node: '>= 0.8.0'}
svg.easing.js@2.0.0:
resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==}
engines: {node: '>= 0.8.0'}
svg.filter.js@2.0.2:
resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==}
engines: {node: '>= 0.8.0'}
svg.js@2.7.1:
resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==}
svg.pathmorphing.js@0.1.3:
resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==}
engines: {node: '>= 0.8.0'}
svg.resize.js@1.4.3:
resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==}
engines: {node: '>= 0.8.0'}
svg.select.js@2.1.2:
resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==}
engines: {node: '>= 0.8.0'}
svg.select.js@3.0.1:
resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==}
engines: {node: '>= 0.8.0'}
term-size@2.2.1: term-size@2.2.1:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -4695,25 +4695,6 @@ snapshots:
dependencies: dependencies:
escape-string-regexp: 5.0.0 escape-string-regexp: 5.0.0
'@svgdotjs/svg.draggable.js@3.0.6(@svgdotjs/svg.js@3.2.5)':
dependencies:
'@svgdotjs/svg.js': 3.2.5
'@svgdotjs/svg.filter.js@3.0.9':
dependencies:
'@svgdotjs/svg.js': 3.2.5
'@svgdotjs/svg.js@3.2.5': {}
'@svgdotjs/svg.resize.js@2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5))':
dependencies:
'@svgdotjs/svg.js': 3.2.5
'@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5)
'@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5)':
dependencies:
'@svgdotjs/svg.js': 3.2.5
'@swc/helpers@0.2.14': {} '@swc/helpers@0.2.14': {}
'@swc/helpers@0.5.15': '@swc/helpers@0.5.15':
@@ -4800,14 +4781,15 @@ snapshots:
normalize-path: 3.0.0 normalize-path: 3.0.0
picomatch: 2.3.1 picomatch: 2.3.1
apexcharts@5.3.6: apexcharts@3.54.1:
dependencies: dependencies:
'@svgdotjs/svg.draggable.js': 3.0.6(@svgdotjs/svg.js@3.2.5)
'@svgdotjs/svg.filter.js': 3.0.9
'@svgdotjs/svg.js': 3.2.5
'@svgdotjs/svg.resize.js': 2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5))
'@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5)
'@yr/monotone-cubic-spline': 1.0.3 '@yr/monotone-cubic-spline': 1.0.3
svg.draggable.js: 2.2.2
svg.easing.js: 2.0.0
svg.filter.js: 2.0.2
svg.pathmorphing.js: 0.1.3
svg.resize.js: 1.4.3
svg.select.js: 3.0.1
argparse@1.0.10: argparse@1.0.10:
dependencies: dependencies:
@@ -4924,7 +4906,7 @@ snapshots:
dependencies: dependencies:
baseline-browser-mapping: 2.8.31 baseline-browser-mapping: 2.8.31
caniuse-lite: 1.0.30001757 caniuse-lite: 1.0.30001757
electron-to-chromium: 1.5.262 electron-to-chromium: 1.5.259
node-releases: 2.0.27 node-releases: 2.0.27
update-browserslist-db: 1.1.4(browserslist@4.28.0) update-browserslist-db: 1.1.4(browserslist@4.28.0)
@@ -5197,8 +5179,6 @@ snapshots:
dotenv@8.6.0: {} dotenv@8.6.0: {}
driver.js@1.4.0: {}
dropzone@6.0.0-beta.2: dropzone@6.0.0-beta.2:
dependencies: dependencies:
'@swc/helpers': 0.2.14 '@swc/helpers': 0.2.14
@@ -5230,7 +5210,7 @@ snapshots:
electron-to-chromium@1.5.149: {} electron-to-chromium@1.5.149: {}
electron-to-chromium@1.5.262: {} electron-to-chromium@1.5.259: {}
emoji-regex@8.0.0: {} emoji-regex@8.0.0: {}
@@ -5962,7 +5942,7 @@ snapshots:
dependencies: dependencies:
'@next/env': 16.0.4 '@next/env': 16.0.4
'@swc/helpers': 0.5.15 '@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001717 caniuse-lite: 1.0.30001757
postcss: 8.4.31 postcss: 8.4.31
react: 19.2.0 react: 19.2.0
react-dom: 19.2.0(react@19.2.0) react-dom: 19.2.0(react@19.2.0)
@@ -6709,6 +6689,37 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {} supports-preserve-symlinks-flag@1.0.0: {}
svg.draggable.js@2.2.2:
dependencies:
svg.js: 2.7.1
svg.easing.js@2.0.0:
dependencies:
svg.js: 2.7.1
svg.filter.js@2.0.2:
dependencies:
svg.js: 2.7.1
svg.js@2.7.1: {}
svg.pathmorphing.js@0.1.3:
dependencies:
svg.js: 2.7.1
svg.resize.js@1.4.3:
dependencies:
svg.js: 2.7.1
svg.select.js: 2.1.2
svg.select.js@2.1.2:
dependencies:
svg.js: 2.7.1
svg.select.js@3.0.1:
dependencies:
svg.js: 2.7.1
term-size@2.2.1: {} term-size@2.2.1: {}
terser@5.44.0: terser@5.44.0:

View File

@@ -11,7 +11,6 @@ const illustrations = sync(join(__dirname, `../../shared/static/illustrations/li
.map((file) => { .map((file) => {
return basename(file, '.png') return basename(file, '.png')
}) })
.sort((a, b) => a.localeCompare(b));
writeFileSync( writeFileSync(
join(__dirname, `../../shared/data/illustrations.json`), join(__dirname, `../../shared/data/illustrations.json`),

View File

@@ -1,71 +1,5 @@
# @tabler/preview # @tabler/preview
## 1.5.0
### Minor Changes
- 5e119d4: Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.
- ec94693: Added new `card-gradients.html` page showcasing various gradient card styles and components.
- b0fa655: Added Change Password modal with current password, new password with strength indicator, confirm password validation, and show/hide password toggles.
- ad22d04: Added color palette to signing component.
- b0fa655: Added Confirm Delete modal with warning icon, confirmation checkbox, and JavaScript validation to enable delete button only when confirmed.
- 4ce08ca: Added new Crypto Dashboard page with cryptocurrency portfolio overview, market data, and order history.
- b0fa655: Added Edit Profile modal with avatar upload, personal information fields, social links, and date of birth.
- 8d8727f: Added language selector dropdown to navbar with flag indicators for multilingual support.
- 4ce08ca: Refactored page-menu structure for dashboards and updated navigation menu organization.
- 4ce08ca: Refactored navbar-side component by consolidating separate include files (apps, language, notifications, theme, user) into a single `navbar-side.html` file for better maintainability.
- b0fa655: Added New Task modal with fields for task name, description, assigned user, priority, due date, and category tags.
- 9c5d729: Added new onboarding page with progress indicator and navigation layout.
- 9c5d729: Added Progress Background component with text labels and value display.
- 9c5d729: Added Progress Steps component for step-by-step navigation indicators.
- 99b9ea4: Added new Task List page with tables showing tasks organized by status (Upcoming, In Progress, Completed) and modal dialog for adding new tasks.
- e3d86c5: Upgraded `apexcharts` from `3.54.1` to `5.3.6` and added CSS variables (`--chart-{id}-color-{index}`) for dynamic chart colors to fix compatibility with the new version.
### Patch Changes
- 4ce08ca: Added crypto markets and orders data files (`crypto-markets.json`, `crypto-orders.json`) for cryptocurrency dashboard functionality.
- cf04a00: Update Tabler Icons to v3.35.0
- 5e119d4: Added `bg-blur` utility and increased `container-tight` width for layout flexibility.
- 399a5c5: Updated icons to v3.34.1 with 75 new icons.
- 8947d7c: Updated activity messages.
- 83ec6f8: Added Driver.js library integration and Tour demo page for interactive product tours and onboarding guides.
- 9c5d729: Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.
- bd35fd3: Fixed responsive layouts on the Form Elements page.
- c707018: Added comprehensive All Elements page with all UI components and Bootstrap elements
- Updated dependencies [5e119d4]
- Updated dependencies [059bae1]
- Updated dependencies [5018aa9]
- Updated dependencies [9c5d729]
- Updated dependencies [ec94693]
- Updated dependencies [c860288]
- Updated dependencies [2dc7eda]
- Updated dependencies [6e656ad]
- Updated dependencies [8bc6fa7]
- Updated dependencies [e206d7a]
- Updated dependencies [4ce08ca]
- Updated dependencies [b8b63d7]
- Updated dependencies [0106d6b]
- Updated dependencies [a198b0c]
- Updated dependencies [9c5d729]
- Updated dependencies [8d8727f]
- Updated dependencies [5e119d4]
- Updated dependencies [3aba62e]
- Updated dependencies [0c79963]
- Updated dependencies [4ce08ca]
- Updated dependencies [9a3361f]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [9c5d729]
- Updated dependencies [41ed22a]
- Updated dependencies [83ec6f8]
- Updated dependencies [9c5d729]
- Updated dependencies [736e604]
- Updated dependencies [f8dee0a]
- Updated dependencies [9c5d729]
- Updated dependencies [e3d86c5]
- @tabler/core@1.5.0
## 1.4.0 ## 1.4.0
### Patch Changes ### Patch Changes

View File

@@ -1,10 +1,9 @@
{ {
"name": "@tabler/preview", "name": "@tabler/preview",
"version": "1.5.0", "version": "1.4.0",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "pnpm run clean && pnpm run build-assets && pnpm run html", "build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run html",
"build-assets": "concurrently \"pnpm run css\" \"pnpm run js\"",
"dev": "pnpm run clean && pnpm run watch", "dev": "pnpm run clean && pnpm run watch",
"watch": "concurrently \"pnpm run watch-html\" \"pnpm run watch-css\" \"pnpm run watch-js\"", "watch": "concurrently \"pnpm run watch-html\" \"pnpm run watch-css\" \"pnpm run watch-js\"",
"watch-html": "cross-env NODE_ENV=development eleventy --serve --port=3000 --watch --incremental", "watch-html": "cross-env NODE_ENV=development eleventy --serve --port=3000 --watch --incremental",

View File

@@ -1,97 +0,0 @@
---
title: Card Gradients
page-header: Card Gradients
page-menu: base.cards.gradients
layout: default
permalink: card-gradients.html
page-libs: [apexcharts]
---
{% assign gradients = 'sunset,rainbow,ocean,mellow,disco,psychedelic' | split: ',' %}
<div class="row row-cards">
<div class="col-md-6">
<div class="row row-cards">
<div class="col-12">
{% include "cards/welcome.html" %}
</div>
<div class="col-12">
<div class="row">
<div class="col-6">
<div class="row row-cards">
<div class="col-12">
{% include "cards/delete-confirm.html" %}
</div>
<div class="col-12">
{% include "cards/success-message.html" %}
</div>
</div>
</div>
<div class="col-6">
<div class="row row-cards">
<div class="col-12">
{% include "cards/pricing-plan.html" %}
</div>
<div class="col-12">
{% include "cards/stat-gradient.html" title="Earned" value="$2,847" icon="credit-card" color="success"
progress=75 %}
</div>
<div class="col-12">
{% include "cards/stat-gradient.html" title="Pending Orders" value="47" icon="clock" color="yellow"
progress=38 %}
</div>
<div class="col-12">
{% include "cards/stat-gradient.html" title="Cancelled Orders" value="12" icon="shopping-cart-x" color="red"
progress=8 %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="row row-cards">
<div class="col-12">
{% include "cards/happy-birthday.html" %}
</div>
<div class="col-12">
{% include "cards/you-win.html" %}
</div>
</div>
</div>
<div class="col-3">
<div class="row row-cards">
<div class="col-12">
{% include "cards/weather.html" city="Warsaw, PL" temperature=3 color="rain" icon="cloud-rain"
description="Cloudy morning" %}
</div>
<div class="col-12">
{% include "cards/weather.html" city="Oslo, NO" temperature="-5" color="snow" icon="cloud"
description="Snowy day" %}
</div>
<div class="col-12">
{% include "cards/weather.html" city="Dubai, AE" temperature="32" color="sun" icon="sun" description="Sunny
day" %}
</div>
<div class="col-12">
{% include "cards/profile-contact.html" person=people[6] %}
</div>
<div class="col-12">
{% include "cards/small-stats.html" chart-type="line" chart-data="11,16,13,20,17,24,19,23,16,20,13,17,11,19"
color="primary" id="chart1" class="card-gradient card-gradient-end card-gradient-primary" %}
</div>
<div class="col-12">
{% include "cards/small-stats.html" id="sales" icon="arrow-up" color="green" title="$5,256.99"
description="Revenue last 30 days" description-value="+4%" class="card-gradient card-gradient-end
card-gradient-green" %}
</div>
<div class="col-12">
{% include "cards/small-stats.html" id="orders" icon="arrow-down" color="red" title="342" description="Sales
last 30 days" description-value="-4.3%" description-value-color="red" class="card-gradient card-gradient-end
card-gradient-red" %}
</div>
</div>
</div>
</div>

View File

@@ -13,7 +13,17 @@ permalink: charts.html
</div> </div>
<div class="col-12"> <div class="col-12">
{% include "cards/charts/social-referrals.html" %} <div class="card">
<div class="card-body">
<div class="d-flex">
<h3 class="card-title">Social referrals</h3>
<div class="ms-auto">
{% include "parts/dropdown/days.html" id="social-referrals" label="Select time range for sales data" %}
</div>
</div>
{% include "ui/chart.html" chart-id="social-referrals" legend=true %}
</div>
</div>
</div> </div>
<div class="col-12"> <div class="col-12">

View File

@@ -1,223 +0,0 @@
---
title: Driver Tour
page-header: Driver Tour
page-libs: [driver.js]
page-menu: plugins.tour
layout: default
permalink: tour.html
---
<div class="row row-cards">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Product Tour Example</h3>
<div class="card-actions">
{% include "ui/button.html" id="start-tour" text="Start Tour" icon="play" color="primary" element="button" %}
</div>
</div>
<div class="card-body">
<p>
Click the "Start Tour" button to begin an interactive tour of this page.
The tour will guide you through different elements and features.
</p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card" id="tour-card-1">
<div class="card-header">
<h3 class="card-title">Welcome Section</h3>
</div>
<div class="card-body">
<p>This is the first card in our tour. It demonstrates how Driver.js highlights elements on the page.</p>
<div class="btn-list">
{% include "ui/button.html" text="Action Button" color="primary" element="button" %}
{% include "ui/button.html" text="Secondary" element="button" %}
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card" id="tour-card-2">
<div class="card-header">
<h3 class="card-title">Features Section</h3>
</div>
<div class="card-body">
<p>This card shows additional features and demonstrates the tour's ability to navigate between different
elements.</p>
<div class="form-selectgroup">
<label class="form-selectgroup-item">
<input type="radio" name="options" value="1" class="form-selectgroup-input" checked>
<span class="form-selectgroup-label">Option 1</span>
</label>
<label class="form-selectgroup-item">
<input type="radio" name="options" value="2" class="form-selectgroup-input">
<span class="form-selectgroup-label">Option 2</span>
</label>
</div>
</div>
</div>
</div>
<div class="col-12">
<div class="card" id="tour-card-3">
<div class="card-header">
<h3 class="card-title">Navigation Example</h3>
</div>
<div class="card-body">
<p>This is a full-width card that demonstrates how the tour works with larger elements.</p>
<div class="table-responsive">
<table class="table table-vcenter">
<thead>
<tr>
<th>Name</th>
<th>Status</th>
<th>Role</th>
<th class="w-1"></th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>{% include "ui/badge.html" text="Active" color="success" %}</td>
<td>Developer</td>
<td>
{% include "ui/button.html" text="Edit" size="sm" href="#" %}
</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>{% include "ui/badge.html" text="Pending" color="warning" %}</td>
<td>Designer</td>
<td>
{% include "ui/button.html" text="Edit" size="sm" href="#" %}
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card" id="tour-card-4">
<div class="card-body text-center">
<div class="mb-3">
{% include "ui/icon.html" icon="settings" size="48" %}
</div>
<h3 class="card-title">Settings</h3>
<p class="text-secondary">Configure your application settings here.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card" id="tour-card-5">
<div class="card-body text-center">
<div class="mb-3">
{% include "ui/icon.html" icon="users" size="48" %}
</div>
<h3 class="card-title">Users</h3>
<p class="text-secondary">Manage your team members and permissions.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card" id="tour-card-6">
<div class="card-body text-center">
<div class="mb-3">
{% include "ui/icon.html" icon="chart-bar" size="48" %}
</div>
<h3 class="card-title">Analytics</h3>
<p class="text-secondary">View your application statistics and reports.</p>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const driverObj = driver.js.driver({
allowClose: true,
overlayClickNext: true,
showButtons: ['next', 'previous', 'close'],
showProgress: true,
steps: [
{
element: '#start-tour',
popover: {
title: 'Welcome to the Tour!',
description: 'This button starts the interactive tour. Click it to begin exploring the page.',
side: 'bottom',
align: 'start'
}
},
{
element: '#tour-card-1',
popover: {
title: 'Welcome Section',
description: 'This is the first card in our tour. It demonstrates how Driver.js highlights elements on the page.',
side: 'right',
align: 'start'
}
},
{
element: '#tour-card-2',
popover: {
title: 'Features Section',
description: 'This card shows additional features and demonstrates the tour\'s ability to navigate between different elements.',
side: 'left',
align: 'start'
}
},
{
element: '#tour-card-3',
popover: {
title: 'Data Table',
description: 'This table shows how Driver.js works with larger elements. You can highlight entire sections of your page.',
side: 'top',
align: 'center'
}
},
{
element: '#tour-card-4',
popover: {
title: 'Settings Card',
description: 'This card demonstrates how the tour works with smaller, centered elements.',
side: 'top',
align: 'center'
}
},
{
element: '#tour-card-5',
popover: {
title: 'Users Card',
description: 'Another example card showing user management features.',
side: 'top',
align: 'center'
}
},
{
element: '#tour-card-6',
popover: {
title: 'Analytics Card',
description: 'The final step of the tour. This card shows analytics features.',
side: 'top',
align: 'center'
}
}
]
});
const startButton = document.getElementById('start-tour');
if (startButton) {
startButton.addEventListener('click', function () {
driverObj.drive();
});
}
});
</script>

View File

@@ -1 +1 @@
["403","500","504","ai","archive","bad-news","bicycle","boy","boy-and-cat","boy-and-laptop","boy-girl","boy-gives-flowers","boy-refresh","boy-with-key","building","calendar","camping","cat","chart","chart-circle","chatbot","chill","chill-sofa","christmas-fireplace","christmas-gifts","christmas-tree","clock-and-cat","computer-fix","contract","conversation","dance","dart","discount","download","easter-bunny","easter-egg","electric-scooter","email","error","exit","fingerprint","flowers","folders","game","ghost","ghost-2","gift","girl-phone","girl-refresh","good-info","good-news","graduation","guitar","halloween","halloween-pumpkin","hybrid-work","ice-skates","icons","icons-drawing","icons-drawing-run","icons-ladder","icons-production","icons-workshop","kite","loading","map-destination","message","mobile-computer","morning","music","neutral-info","new-year","new-year-2","not-found","painting","payment","podcast","printer","project","reading","search","searching-for-a-signal","shield","shopping","snowman","telescope","tiredness","to-do","valentines-day-gift","valentines-day-heart","valentines-day-love","vampire","version-control","video","vr","wait","weightlifting","welcome-on-board","witch","witch-2"] ["weightlifting","wait","vr","video","valentines-day-love","valentines-day-heart","valentines-day-gift","to-do","tiredness","telescope","snowman","shopping","shield","searching-for-a-signal","search","project","printer","podcast","payment","painting","not-found","new-year","new-year-2","neutral-info","music","morning","mobile-computer","message","map-destination","loading","kite","icons","icons-workshop","icons-production","icons-ladder","icons-drawing","icons-drawing-run","ice-skates","hybrid-work","halloween-pumpkin","guitar","good-news","good-info","girl-refresh","girl-phone","gift","ghost","folders","flowers","fingerprint","exit","error","email","electric-scooter","easter-egg","easter-bunny","discount","dart","dance","conversation","computer-fix","clock-and-cat","christmas-tree","christmas-gifts","christmas-fireplace","chill","chill-sofa","chart","chart-circle","cat","calendar","building","boy","boy-with-key","boy-refresh","boy-gives-flowers","boy-girl","boy-and-laptop","boy-and-cat","bicycle","bad-news","archive","ai","500","403"]

View File

@@ -105,11 +105,6 @@
"title": "Card actions", "title": "Card actions",
"badge": "New" "badge": "New"
}, },
"gradients": {
"url": "card-gradients.html",
"title": "Card gradients",
"badge": "New"
},
"masonry": { "masonry": {
"url": "cards-masonry.html", "url": "cards-masonry.html",
"title": "Cards Masonry" "title": "Cards Masonry"
@@ -479,10 +474,6 @@
"url": "maps-vector.html", "url": "maps-vector.html",
"title": "Map vector" "title": "Map vector"
}, },
"tour": {
"url": "tour.html",
"title": "Tour"
},
"turbo": { "turbo": {
"url": "turbo-loader.html", "url": "turbo-loader.html",
"title": "Turbo loader" "title": "Turbo loader"

View File

@@ -1,21 +1,21 @@
{ {
"css": "sha384-8CTJ1aEYI+cbgqgYVub8YVfKOnKa/men0DZ4qZqmwvgzNGG1/anW0L4o7/8G171h", "css": "sha384-b08Yxo9kzlsLLcHA4bMBkC8EAIBeP3G8rhhIT584owzLn88bcWJkSVtGZMc78Rax",
"css-rtl": "sha384-c4pkMIjCDw9LwOOYLU2NkDMg4rsDpqEj+xqDXhrTVRtDiAvk2083ZRDsxMOl9Qpw", "css-rtl": "sha384-EVH/sV9+QVa/y7Vl1JFsVYjru0/gKkqDf8zBqdfu2R8t84BwCBeV7jsu7kQ93abg",
"css-flags": "sha384-Z+NVuLczJm4wqbXhRrVWeCqKJzY3VmwtOZTMpek7tjmZJU9Yqu+6F7aPT0KDBTvS", "css-flags": "sha384-kmvP0hkBXZ2hMSZlbvE1Q2HIXzPCQRL3ijUeqNiwaPd2nl2Aks+s3gW+V5fAHOX9",
"css-flags-rtl": "sha384-9zdt+TQAk+aAdQAyWQ158584Cr9KDLcgJMDG5iDvrYE2Ha/sZdG6l3FcjWyHAFx8", "css-flags-rtl": "sha384-Q/h6koANGclsGnwB8rvF8h84H54NKHDeNWFj6yiE4WLLEXyHcz+Zu6Afkh2ssYTC",
"css-marketing": "sha384-O1oTT08rQgRZEq0WgPfYFyGadtTu90+tM9zTv+9yYv1qgNw8ldbGTr6levIIXXNl", "css-marketing": "sha384-4dAlYnPzCom9yeC/5++PFq2FG/szJRlUPsDSrjZ3EWP8IAzK7g7rrsnSfqrS67Se",
"css-marketing-rtl": "sha384-jU6iDpXSyHHkiqBvDtPRuDWr+4ccgr3SNjNYMN0FtyaDaIi4Qe6WNn5Ir1+jr/aZ", "css-marketing-rtl": "sha384-c6gNhuNYjp+lqluSdArbL8ciLEBq7IVU00XnPM2Eogj8RAjMapccvOM/pGhk3vV6",
"css-payments": "sha384-xWIXbKxPLGG/ZEGUKxDjJn3xmUgd2PC2CSZUKJ4PyTse49DiuvJx2WT5wSNJRyw9", "css-payments": "sha384-xWIXbKxPLGG/ZEGUKxDjJn3xmUgd2PC2CSZUKJ4PyTse49DiuvJx2WT5wSNJRyw9",
"css-payments-rtl": "sha384-69CxgA+uEPtM07SLA8MMAdnBmwtVGndDJf8nIPdfvNrDayBfPqOK3wS3nvV5yyk+", "css-payments-rtl": "sha384-69CxgA+uEPtM07SLA8MMAdnBmwtVGndDJf8nIPdfvNrDayBfPqOK3wS3nvV5yyk+",
"css-socials": "sha384-eWmz8gyiLzrDw3JcT/PJxjGyKizQjvByfHqocjrMMkIrbKFCnOuP/qMwAz3bHmsC", "css-socials": "sha384-eWmz8gyiLzrDw3JcT/PJxjGyKizQjvByfHqocjrMMkIrbKFCnOuP/qMwAz3bHmsC",
"css-socials-rtl": "sha384-yobKDIyTOxB1z7t/uZ2ImuXrcKWF24vDYg2vR1n7x2msF09iWnvyIxQtfEl9+OFl", "css-socials-rtl": "sha384-yobKDIyTOxB1z7t/uZ2ImuXrcKWF24vDYg2vR1n7x2msF09iWnvyIxQtfEl9+OFl",
"css-props": "sha384-41GCSlvwCdfsb6AHZx7QXQq17CAqXvvToJCecMxqvUUsap3aYqIvR3ARxb5ug/o7", "css-props": "sha384-HpzBfAj1xJcNLtdedYZunJBHqgdO12KqrCrc6/7pmKDiP8YmUF71cm+iGBtVawWM",
"css-props-rtl": "sha384-JgFdeK5dAxT/nZPtUTt3cnBng9TLxoF6ZetumffFIzqF/4XXLEQIemFDshpleF/f", "css-props-rtl": "sha384-/vKK+yuQsAI8lJmR4uothydKQAHFK+fp1QrbJnfk2deAzII9WUj3h5rXUxZPyUAo",
"css-themes": "sha384-jTe/MdN6BlY4S3eYe6Qw++yTjuezmVnxWp/l7GAG1qXGC+jttphHqsAN/bGPvJOk", "css-themes": "sha384-jTe/MdN6BlY4S3eYe6Qw++yTjuezmVnxWp/l7GAG1qXGC+jttphHqsAN/bGPvJOk",
"css-themes-rtl": "sha384-WTp4aZ+OGqnkNR6Xe0sJwwfd0JHGq3dZTLU2ITKxTK2zjcJTBUMY/+Z4eXgm8ipF", "css-themes-rtl": "sha384-WTp4aZ+OGqnkNR6Xe0sJwwfd0JHGq3dZTLU2ITKxTK2zjcJTBUMY/+Z4eXgm8ipF",
"css-vendors-rtl": "sha384-fHhTRXlGYaUjLAbSnADjVs2DrSBSKbnTDhjiOgVT0+aWDjKbwtPZU6y54bLo2FCm", "css-vendors-rtl": "sha384-V555LUGE2xyN4wNbzdVMgsajsKmJdlLFm20Ws72jEyPiSsTXXITV0PebNzVeBjnb",
"css-vendors": "sha384-9R1luLy+gN6Ob3LEWsGiGo3nyPVDzVGyEBcDlat6sH2lF7zHZhnpDILTEgEvalsh", "css-vendors": "sha384-+X7+c/noY2B9ieq9daEaVStkUhIFyJTO5T6Occ6jZisx57sbECetvloLqcvGahUv",
"js": "sha384-dUqGQ2Iu2WGMnF+glqmZxV78vxbRuwGaM3diaq+Wp0a6mek1k5samXVe60XqZcTT", "js": "sha384-pku3birjgGovaJ9ngF7SaxKkF/eYUvBjiMJ+jTtWbNesIj2Rud2K63+4JD7EF4gk",
"js-theme": "sha384-SoDJmj40r6f9Rfxi6Fq+bNS8ofhlZMyxHk9dq9Y8e1M17PZGkBRN/XUpx8swn0i5", "js-theme": "sha384-SoDJmj40r6f9Rfxi6Fq+bNS8ofhlZMyxHk9dq9Y8e1M17PZGkBRN/XUpx8swn0i5",
"demo-css": "sha384-BUDq2P684xwRBf0GDlySvob+KJg4ko8y2K7njgvYBscmEuqoVVqJ75zcTDozwkFA", "demo-css": "sha384-BUDq2P684xwRBf0GDlySvob+KJg4ko8y2K7njgvYBscmEuqoVVqJ75zcTDozwkFA",
"demo-js": "sha384-UcTgbM9IZSOPHHuFa0R9H4TegQWoZkJKpeTjLV5hjem2k0CZ67Q4/bW2rT/Edf4Z" "demo-js": "sha384-UcTgbM9IZSOPHHuFa0R9H4TegQWoZkJKpeTjLV5hjem2k0CZ67Q4/bW2rT/Edf4Z"

View File

@@ -1,16 +1,10 @@
import { readFileSync } from "fs"; import { readFileSync } from "fs";
import { join, dirname } from "path"; import { join } from "path";
import { fileURLToPath } from "url";
export function appData(eleventyConfig) { export function appData(eleventyConfig) {
const currentDir = dirname(fileURLToPath(import.meta.url)); eleventyConfig.addGlobalData("package", JSON.parse(readFileSync(join("..", "core", "package.json"), "utf-8")));
eleventyConfig.addGlobalData("changelog", readFileSync(join("..", "core", "CHANGELOG.md"), "utf-8"));
console.log('currentDir', currentDir); eleventyConfig.addGlobalData("libs", JSON.parse(readFileSync(join("..", "core", "libs.json"), "utf-8")));
eleventyConfig.addGlobalData("package", JSON.parse(readFileSync(join(currentDir, "..", "..", "core", "package.json"), "utf-8"))) ;
eleventyConfig.addGlobalData("changelog", readFileSync(join(currentDir, "..", "..", "core", "CHANGELOG.md"), "utf-8"));
eleventyConfig.addGlobalData("libs", JSON.parse(readFileSync(join(currentDir, "..", "..", "core", "libs.json"), "utf-8")));
// Analytics Environment Variables // Analytics Environment Variables
eleventyConfig.addGlobalData("posthogApiKey", process.env.NEXT_PUBLIC_POSTHOG_KEY); eleventyConfig.addGlobalData("posthogApiKey", process.env.NEXT_PUBLIC_POSTHOG_KEY);

View File

@@ -29,6 +29,14 @@ export function appFilters(eleventyConfig) {
.replace(/[\r\n]/g, '&#13;'); .replace(/[\r\n]/g, '&#13;');
}); });
eleventyConfig.addFilter("strip_trailing_slash", (text) => {
return text?.replace(/\/$/, '');
});
eleventyConfig.addFilter("strip_leading_slash", (text) => {
return text?.replace(/^\//, '');
});
eleventyConfig.addFilter("contains", (items, item) => { eleventyConfig.addFilter("contains", (items, item) => {
return items && Array.isArray(items) && items.includes(item); return items && Array.isArray(items) && items.includes(item);
}); });
@@ -138,6 +146,11 @@ export function appFilters(eleventyConfig) {
return 0; return 0;
}) })
eleventyConfig.addFilter("debug", function (elem) {
console.log(elem);
return elem;
})
eleventyConfig.addFilter("first", function (elem) { eleventyConfig.addFilter("first", function (elem) {
if (elem instanceof Object) { if (elem instanceof Object) {
return elem[Object.keys(elem)[0]]; return elem[Object.keys(elem)[0]];

View File

@@ -1,5 +1,5 @@
{% assign width = include.width | default: 400 %} {% assign width = include.width | default: 400 %}
{% assign height = include.height | default: 200 %} {% assign height = include.height | default: 200 %}
<div class="card-body{% if include.class %} {{ include.class }}{% endif %}"> <div class="card-body p-0{% if include.class %} {{ include.class }}{% endif %}">
{% include "ui/svg.html" width=width height=height ratio=include.ratio class="w-100 border rounded" %} {% include "ui/svg.html" width=width height=height ratio=include.ratio class="w-100" %}
</div> </div>

View File

@@ -1,13 +0,0 @@
<div class="card">
<div class="card-body">
<div class="subheader">Active Users</div>
<div class="d-flex align-items-baseline mb-2">
<div class="h1 mb-0 me-2">25,782</div>
<div class="me-auto">
{% include "ui/trending.html" value=-1 %}
</div>
</div>
{% include "ui/chart.html" chart-id="active-users-3" height="12" %}
</div>
</div>

View File

@@ -1,12 +0,0 @@
<div class="card">
<div class="card-body">
<div class="d-flex">
<h3 class="card-title">Social referrals</h3>
<div class="ms-auto">
{% include "parts/dropdown/days.html" id="social-referrals" label="Select time range for sales data" %}
</div>
</div>
{% include "ui/chart.html" chart-id="social-referrals" legend=true %}
</div>
</div>

View File

@@ -1,14 +0,0 @@
<div class="card">
<div class="card-body">
<div class="subheader">Total Users</div>
<div class="d-flex align-items-baseline">
<div class="h1 mb-0 me-2">75,782</div>
<div class="me-auto">
{% include "ui/trending.html" value=2 %}
</div>
</div>
<div class="text-secondary mt-2">24,635 users increased from last month</div>
</div>
{% include "ui/chart.html" chart-id="visitors" height="6" %}
</div>

Some files were not shown because too many files have changed in this diff Show More