mirror of
https://github.com/tabler/tabler.git
synced 2025-12-22 01:44:25 +04:00
Compare commits
18 Commits
dev-docs-i
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a4899a8ce | ||
|
|
63a35a849c | ||
|
|
94e1a95ffb | ||
|
|
83ec6f8bcc | ||
|
|
e3d86c519b | ||
|
|
f9d6076014 | ||
|
|
f264470d8f | ||
|
|
ec9469332e | ||
|
|
deb887b4aa | ||
|
|
f9551c3b8e | ||
|
|
3aba62e652 | ||
|
|
059bae1cf6 | ||
|
|
41ed22a128 | ||
|
|
e206d7a908 | ||
|
|
2dc7edae36 | ||
|
|
8bc6fa7fd1 | ||
|
|
a198b0c7c5 | ||
|
|
b1f711635b |
5
.changeset/bootstrap-exports-cleanup.md
Normal file
5
.changeset/bootstrap-exports-cleanup.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Refactored Bootstrap exports to use single source of truth in `bootstrap.js` and removed duplicate exports from `tabler.js` for better maintainability.
|
||||
6
.changeset/card-gradient-components.md
Normal file
6
.changeset/card-gradient-components.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Added `.card-gradient` component with gradient variants, direction modifiers, and animated backgrounds.
|
||||
|
||||
6
.changeset/card-gradients-page.md
Normal file
6
.changeset/card-gradients-page.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@tabler/preview": minor
|
||||
---
|
||||
|
||||
Added new `card-gradients.html` page showcasing various gradient card styles and components.
|
||||
|
||||
5
.changeset/fix-border-color-translucent-dark.md
Normal file
5
.changeset/fix-border-color-translucent-dark.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
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.
|
||||
5
.changeset/fix-status-colors-variables.md
Normal file
5
.changeset/fix-status-colors-variables.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fixed status color classes to use CSS variables instead of hardcoded values and include social colors (bitbucket, facebook, etc.) in status class generation.
|
||||
5
.changeset/fix-white-space-scrollbar.md
Normal file
5
.changeset/fix-white-space-scrollbar.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
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.
|
||||
7
.changeset/geist-fonts.md
Normal file
7
.changeset/geist-fonts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
"@tabler/docs": patch
|
||||
---
|
||||
|
||||
Added Geist font family integration.
|
||||
|
||||
6
.changeset/many-dogs-rest.md
Normal file
6
.changeset/many-dogs-rest.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Added `border-top-left-radius` and `border-top-right-radius` to first and last child elements in `.card-table` for proper corner rounding.
|
||||
|
||||
6
.changeset/redundant-nullish-operator.md
Normal file
6
.changeset/redundant-nullish-operator.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Removed redundant nullish coalescing operator from `html` option in popover and tooltip initialization.
|
||||
|
||||
7
.changeset/silly-crabs-walk.md
Normal file
7
.changeset/silly-crabs-walk.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Added Driver.js library integration and Tour demo page for interactive product tours and onboarding guides.
|
||||
|
||||
7
.changeset/upgrade-apexcharts.md
Normal file
7
.changeset/upgrade-apexcharts.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
"@tabler/preview": minor
|
||||
---
|
||||
|
||||
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.
|
||||
|
||||
6
.github/workflows/argos.yml
vendored
6
.github/workflows/argos.yml
vendored
@@ -26,10 +26,10 @@ jobs:
|
||||
if: false
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache playwright binaries
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
id: playwright-cache
|
||||
with:
|
||||
path: |
|
||||
|
||||
4
.github/workflows/bundlewatch.yml
vendored
4
.github/workflows/bundlewatch.yml
vendored
@@ -17,10 +17,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
2
.github/workflows/lockfiles.yaml
vendored
2
.github/workflows/lockfiles.yaml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
name: Verify lock file integrity
|
||||
steps:
|
||||
- name: Clone Tabler
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
- name: Prevent lock file change
|
||||
uses: xalvarez/prevent-file-change-action@v3
|
||||
with:
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
pull-requests: write # to create pull request
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -14,10 +14,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<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>
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.2 KiB |
19
core/js/src/bootstrap.js
vendored
19
core/js/src/bootstrap.js
vendored
@@ -1,3 +1,20 @@
|
||||
export * as Popper from '@popperjs/core'
|
||||
|
||||
export { Dropdown, Tooltip, Popover, Tab, Toast } from 'bootstrap'
|
||||
// Export all Bootstrap components directly for consistent usage
|
||||
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'
|
||||
|
||||
@@ -7,7 +7,7 @@ let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggl
|
||||
popoverTriggerList.map(function (popoverTriggerEl) {
|
||||
let options = {
|
||||
delay: { show: 50, hide: 50 },
|
||||
html: popoverTriggerEl.getAttribute('data-bs-html') === 'true' ?? false,
|
||||
html: popoverTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||
}
|
||||
return new Popover(popoverTriggerEl, options)
|
||||
|
||||
@@ -4,7 +4,7 @@ let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggl
|
||||
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
||||
let options = {
|
||||
delay: { show: 50, hide: 50 },
|
||||
html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true' ?? false,
|
||||
html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||
}
|
||||
return new Tooltip(tooltipTriggerEl, options)
|
||||
|
||||
@@ -9,7 +9,8 @@ import './src/tab'
|
||||
import './src/toast'
|
||||
import './src/sortable'
|
||||
|
||||
export * as bootstrap from 'bootstrap'
|
||||
export * as tabler from './src/tabler'
|
||||
// Re-export everything from bootstrap.js (single source of truth)
|
||||
export * from './src/bootstrap'
|
||||
|
||||
export { Alert, Modal, Toast, Tooltip, Tab, Button, Carousel, Collapse, Dropdown, Popover, ScrollSpy, Offcanvas } from 'bootstrap'
|
||||
// Re-export tabler namespace
|
||||
export * as tabler from './src/tabler'
|
||||
|
||||
@@ -166,5 +166,14 @@
|
||||
"dist/turbo.es2017-umd.js"
|
||||
],
|
||||
"head": true
|
||||
},
|
||||
"driver.js": {
|
||||
"npm": "driver.js",
|
||||
"js": [
|
||||
"dist/driver.js.iife.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/driver.css"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,30 +5,31 @@
|
||||
"homepage": "https://tabler.io",
|
||||
"scripts": {
|
||||
"dev": "pnpm run clean && pnpm run copy && pnpm run watch",
|
||||
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri",
|
||||
"build": "pnpm run clean && pnpm run build-assets && pnpm run copy && pnpm run generate-sri",
|
||||
"build-assets": "concurrently \"pnpm run css\" \"pnpm run js\"",
|
||||
"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-compile": "sass --no-source-map --load-path=node_modules --style expanded scss/:dist/css/",
|
||||
"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-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": "pnpm run css-minify-main && pnpm run css-minify-rtl",
|
||||
"css-minify": "concurrently \"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-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-variables": "find-unused-sass-variables scss/ node_modules/bootstrap/scss/",
|
||||
"js": "pnpm run js-compile && pnpm run js-minify",
|
||||
"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": "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-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-standalone": "rollup --config .build/rollup.config.mjs --sourcemap",
|
||||
"js-compile-standalone-esm": "rollup --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
|
||||
"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": "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-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-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.js.map,includeSources,url=tabler-theme.min.js.map\" --output dist/js/tabler-theme.min.js dist/js/tabler-theme.js",
|
||||
"js-minify-theme-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.esm.js.map,includeSources,url=tabler-theme.esm.min.js.map\" --output dist/js/tabler-theme.esm.min.js dist/js/tabler-theme.esm.js",
|
||||
"copy": "pnpm run copy-img && pnpm run copy-libs && pnpm run copy-fonts",
|
||||
"copy": "concurrently \"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-libs": "node .build/copy-libs.mjs",
|
||||
"copy-fonts": "shx mkdir -p dist/fonts && shx cp -rf fonts/* dist/fonts",
|
||||
@@ -150,13 +151,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"bootstrap": "5.3.8",
|
||||
"geist": "^1.5.1"
|
||||
"bootstrap": "5.3.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hotwired/turbo": "^8.0.18",
|
||||
"@melloware/coloris": "^0.25.0",
|
||||
"apexcharts": "3.54.1",
|
||||
"apexcharts": "^5.3.6",
|
||||
"autosize": "^6.0.1",
|
||||
"choices.js": "^11.1.0",
|
||||
"clipboard": "^2.0.11",
|
||||
@@ -166,6 +166,7 @@
|
||||
"flatpickr": "^4.6.13",
|
||||
"fslightbox": "^3.7.4",
|
||||
"fullcalendar": "^6.1.19",
|
||||
"geist": "^1.5.1",
|
||||
"hugerte": "^1.0.9",
|
||||
"imask": "^7.6.1",
|
||||
"jsvectormap": "^1.7.0",
|
||||
@@ -177,7 +178,8 @@
|
||||
"sortablejs": "^1.15.6",
|
||||
"star-rating.js": "^4.3.1",
|
||||
"tom-select": "^2.4.3",
|
||||
"typed.js": "^2.1.0"
|
||||
"typed.js": "^2.1.0",
|
||||
"driver.js": "^1.0.0"
|
||||
},
|
||||
"directories": {
|
||||
"doc": "docs"
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
/** Theme 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}-rgb: #{to-rgb($color)};
|
||||
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color) > $min-contrast-ratio, var(--#{$prefix}light), var(--#{$prefix}dark))};
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
$darken-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-translucent-dark: rgba(72, 110, 149, 0.14) !default;
|
||||
$border-color-translucent-dark: rgba(128, 150, 172, 0.2) !default;
|
||||
$border-dark-color-dark: color.adjust($dark, $lightness: 4%) !default;
|
||||
$border-active-color-dark: color.adjust($dark, $lightness: 12%) !default;
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ $colors: (
|
||||
'gray-dark': $gray-800,
|
||||
) !default;
|
||||
|
||||
$min-contrast-ratio: 4.5 !default;
|
||||
$min-contrast-ratio: 2 !default;
|
||||
$color-contrast-dark: $black !default;
|
||||
$color-contrast-light: $white !default;
|
||||
|
||||
@@ -444,7 +444,7 @@ $headings-font-style: null !default;
|
||||
$headings-line-height: 1.2 !default;
|
||||
$headings-font-weight: var(--#{$prefix}font-weight-semibold) !default;
|
||||
$headings-margin-bottom: var(--#{$prefix}spacer) !default;
|
||||
$headings-color: inherit !default;
|
||||
$headings-color: light-dark(var(--#{$prefix}gray-900), var(--#{$prefix}white)) !default;
|
||||
|
||||
$font-weights: (
|
||||
'light': $font-weight-light,
|
||||
@@ -528,7 +528,7 @@ $initialism-font-size: $small-font-size !default;
|
||||
|
||||
$sub-sup-font-size: 0.75em !default;
|
||||
|
||||
$dt-font-weight: $font-weight-bold !default;
|
||||
$dt-font-weight: $font-weight-semibold !default;
|
||||
|
||||
$list-inline-padding: 0.5rem !default;
|
||||
|
||||
@@ -556,7 +556,6 @@ $zindex-levels: (
|
||||
3: 3,
|
||||
) !default;
|
||||
|
||||
$min-contrast-ratio: 1.5 !default;
|
||||
$text-secondary-opacity: 0.7 !default;
|
||||
$text-secondary-light-opacity: 0.4 !default;
|
||||
$text-secondary-dark-opacity: 0.8 !default;
|
||||
@@ -805,8 +804,8 @@ $icon-color: var(--#{$prefix}gray-400) !default;
|
||||
// Code
|
||||
$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-font-size: $font-size-reative-md !default;
|
||||
$code-line-height: 1.7142857em !default;
|
||||
$code-font-size: $font-size-reative-sm !default;
|
||||
$code-line-height: 1.25rem !default;
|
||||
|
||||
$pre-padding: 1rem !default;
|
||||
$pre-bg: var(--#{$prefix}bg-surface-dark) !default;
|
||||
@@ -1040,7 +1039,7 @@ $alert-padding-y: 0.75rem !default;
|
||||
$alert-padding-x: 1rem !default;
|
||||
$alert-margin-bottom: 1rem !default;
|
||||
$alert-border-radius: var(--#{$prefix}border-radius) !default;
|
||||
$alert-link-font-weight: var(--#{$prefix}font-weight-bold) !default;
|
||||
$alert-link-font-weight: var(--#{$prefix}font-weight-semibold) !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-border-color: var(--#{$prefix}border-color-translucent) !default;
|
||||
@@ -1062,7 +1061,7 @@ $breadcrumb-divider: string.quote('/') !default;
|
||||
$breadcrumb-divider-flipped: $breadcrumb-divider !default;
|
||||
$breadcrumb-border-radius: null !default;
|
||||
$breadcrumb-link-color: var(--#{$prefix}link-color) !default;
|
||||
$breadcrumb-active-font-weight: var(--#{$prefix}font-weight-bold) !default;
|
||||
$breadcrumb-active-font-weight: var(--#{$prefix}font-weight-semibold) !default;
|
||||
$breadcrumb-disabled-color: var(--#{$prefix}disabled-color) !default;
|
||||
|
||||
$breadcrumb-variants: (
|
||||
@@ -1540,7 +1539,7 @@ $navbar-brand-padding-y: $nav-link-padding-y !default;
|
||||
$navbar-brand-image-height: 2rem !default;
|
||||
$navbar-brand-margin-right: 0 !default;
|
||||
$navbar-brand-margin-end: 1rem !default;
|
||||
$navbar-brand-font-weight: var(--#{$prefix}font-weight-bold) !default;
|
||||
$navbar-brand-font-weight: var(--#{$prefix}font-weight-semibold) !default;
|
||||
|
||||
$navbar-toggler-padding-y: 0.25rem !default;
|
||||
$navbar-toggler-padding-x: 0.75rem !default;
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
@use 'sass:map';
|
||||
|
||||
html {
|
||||
scrollbar-gutter: stable;
|
||||
|
||||
@supports not (scrollbar-gutter: stable) {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
}
|
||||
|
||||
// stylelint-disable property-no-vendor-prefix
|
||||
body {
|
||||
letter-spacing: $body-letter-spacing;
|
||||
|
||||
@@ -2,11 +2,6 @@
|
||||
:host {
|
||||
font-size: 16px;
|
||||
height: 100%;
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
margin-inline-start: calc(100vw - 100%);
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
}
|
||||
|
||||
:root,
|
||||
|
||||
@@ -79,7 +79,7 @@ $pricing-card-width: 22rem;
|
||||
justify-content: center;
|
||||
font-size: 2.5rem;
|
||||
line-height: 1;
|
||||
font-weight: $font-weight-bold;
|
||||
font-weight: $font-weight-semibold;
|
||||
margin: 0.75rem 0;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ $pricing-card-width: 22rem;
|
||||
font-size: $h2-font-size;
|
||||
line-height: 1.5;
|
||||
margin-inline-end: 0.25rem;
|
||||
font-weight: $font-weight-bold;
|
||||
font-weight: $font-weight-semibold;
|
||||
}
|
||||
|
||||
.pricing-price-description {
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
.section-title {
|
||||
font-size: var(--#{$prefix}font-size-h1);
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
|
||||
@@ -207,6 +207,10 @@
|
||||
@include elements-list;
|
||||
}
|
||||
|
||||
.btn-list-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
//
|
||||
// Button floating
|
||||
//
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
@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 {
|
||||
@include transition(transform $transition-time ease-out, opacity $transition-time ease-out, box-shadow $transition-time ease-out);
|
||||
|
||||
@@ -22,6 +40,7 @@
|
||||
|
||||
// Card borderless
|
||||
.card-borderless {
|
||||
|
||||
&,
|
||||
.card-header,
|
||||
.card-footer {
|
||||
@@ -122,7 +141,7 @@
|
||||
background: $active-bg;
|
||||
}
|
||||
|
||||
& + & {
|
||||
&+& {
|
||||
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
|
||||
}
|
||||
}
|
||||
@@ -137,8 +156,8 @@ Stacked card
|
||||
&:after {
|
||||
position: absolute;
|
||||
top: calc(-1 * var(--#{$prefix}card-stacked-offset));
|
||||
inset-inline-end: var(--#{$prefix}card-stacked-offset);
|
||||
inset-inline-start: var(--#{$prefix}card-stacked-offset);
|
||||
inset-inline-end: var(--#{$prefix}card-stacked-offset);
|
||||
inset-inline-start: var(--#{$prefix}card-stacked-offset);
|
||||
height: var(--#{$prefix}card-stacked-offset);
|
||||
content: '';
|
||||
background: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
|
||||
@@ -155,9 +174,9 @@ Stacked card
|
||||
&:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
inset-inline-end: 0;
|
||||
inset-inline-end: 0;
|
||||
bottom: 0;
|
||||
inset-inline-start: 0;
|
||||
inset-inline-start: 0;
|
||||
content: '';
|
||||
background: rgba($dark, 0.48);
|
||||
}
|
||||
@@ -287,7 +306,7 @@ Stacked card
|
||||
margin: 0 0 1rem;
|
||||
font-size: $h3-font-size;
|
||||
font-weight: var(--#{$prefix}font-weight-medium);
|
||||
color: $headings-color;
|
||||
color: var(--#{$prefix}heading-color);
|
||||
line-height: 1.5rem;
|
||||
|
||||
@at-root a#{&}:hover {
|
||||
@@ -321,17 +340,17 @@ Stacked card
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.card-sm > & {
|
||||
.card-sm>& {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.card-md > & {
|
||||
.card-md>& {
|
||||
@include media-breakpoint-up(md) {
|
||||
padding: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.card-lg > & {
|
||||
.card-lg>& {
|
||||
@include media-breakpoint-up(md) {
|
||||
padding: 2rem;
|
||||
}
|
||||
@@ -345,7 +364,7 @@ Stacked card
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
& + & {
|
||||
&+& {
|
||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
|
||||
}
|
||||
}
|
||||
@@ -408,9 +427,19 @@ Card table
|
||||
margin-bottom: 0 !important;
|
||||
|
||||
tr {
|
||||
|
||||
td,
|
||||
th {
|
||||
&: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;
|
||||
border-inline-start: 0;
|
||||
}
|
||||
@@ -427,11 +456,11 @@ Card table
|
||||
tfoot {
|
||||
&:last-child {
|
||||
tr:last-child {
|
||||
> *:last-child {
|
||||
>*:last-child {
|
||||
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));
|
||||
}
|
||||
}
|
||||
@@ -467,7 +496,7 @@ Card table
|
||||
}
|
||||
}
|
||||
|
||||
.card-body + & {
|
||||
.card-body+& {
|
||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color);
|
||||
}
|
||||
}
|
||||
@@ -512,7 +541,7 @@ Card avatar
|
||||
Card list group
|
||||
*/
|
||||
.card-list-group {
|
||||
.card-body + & {
|
||||
.card-body+& {
|
||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
|
||||
}
|
||||
|
||||
@@ -571,7 +600,7 @@ Card list group
|
||||
}
|
||||
}
|
||||
|
||||
+ .nav-item {
|
||||
+.nav-item {
|
||||
margin-inline-start: calc(-1 * #{$card-border-width});
|
||||
}
|
||||
}
|
||||
@@ -611,7 +640,7 @@ Card list group
|
||||
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-start-start-radius: 0;
|
||||
}
|
||||
@@ -624,3 +653,83 @@ Card note
|
||||
--#{$prefix}card-bg: #fff7dd;
|
||||
--#{$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;
|
||||
}
|
||||
@@ -139,7 +139,7 @@ Form help
|
||||
*/
|
||||
.form-help {
|
||||
display: inline-flex;
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 1.125rem;
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
color: inherit;
|
||||
background: $list-group-active-bg;
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
|
||||
.nav-link.active,
|
||||
.nav-item.show .nav-link {
|
||||
font-weight: var(--#{$prefix}nav-link-font-weight);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
color: var(--#{$prefix}nav-link-active-color);
|
||||
}
|
||||
|
||||
&.nav-pills {
|
||||
margin: 0 calc(-1 * var(--#{$prefix}nav-link-padding-x));
|
||||
margin: 0 calc(-1 * $nav-link-padding-x);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
vertical-align: bottom;
|
||||
font-style: normal;
|
||||
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 2px;
|
||||
border-radius: var(--#{config.$prefix}border-radius);
|
||||
}
|
||||
|
||||
@each $payment in config.$payment-providers {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
z-index: 1;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: $card-ribbon-font-size;
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
line-height: 1;
|
||||
color: $white;
|
||||
text-align: center;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
@use 'sass:map';
|
||||
|
||||
@keyframes status-pulsate-main {
|
||||
40% {
|
||||
transform: scale(1.25, 1.25);
|
||||
@@ -74,10 +76,10 @@
|
||||
color: var(--#{$prefix}body-color) !important;
|
||||
}
|
||||
|
||||
@each $name, $color in $theme-colors {
|
||||
@each $name, $color in map.merge($theme-colors, $social-colors) {
|
||||
.status-#{$name} {
|
||||
--#{$prefix}status-color: #{$color};
|
||||
--#{$prefix}status-color-rgb: #{to-rgb($color)};
|
||||
--#{$prefix}status-color: var(--#{$prefix}#{$name});
|
||||
--#{$prefix}status-color-rgb: var(--#{$prefix}#{$name}-rgb);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
|
||||
&:after {
|
||||
background: var(--#{$prefix}steps-inactive-color);
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
.table {
|
||||
font: inherit;
|
||||
|
||||
thead {
|
||||
th {
|
||||
background: $table-th-bg;
|
||||
|
||||
@@ -122,7 +122,7 @@ pre {
|
||||
background: $pre-bg;
|
||||
color: $pre-color;
|
||||
border-radius: var(--#{$prefix}border-radius);
|
||||
line-height: $code-line-height;
|
||||
line-height: $line-height-base;
|
||||
|
||||
@include scrollbar;
|
||||
|
||||
@@ -307,7 +307,7 @@ $text-variants: (
|
||||
border-radius: var(--#{$prefix}border-radius);
|
||||
line-height: calc(var(--#{$prefix}steps-item-size) - 2px);
|
||||
font-size: var(--#{$prefix}font-size-h4);
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,9 +82,4 @@ Form switch
|
||||
.form-check-label {
|
||||
padding-top: 0.125rem;
|
||||
}
|
||||
}
|
||||
|
||||
/*Correction of Form-check position*/
|
||||
.form-check-input:checked {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
2
core/scss/vendor/_apexcharts.scss
vendored
2
core/scss/vendor/_apexcharts.scss
vendored
@@ -10,7 +10,7 @@
|
||||
background: transparent !important;
|
||||
border: 0 !important;
|
||||
margin: 0 !important;
|
||||
font-weight: var(--#{$prefix}font-weight-bold);
|
||||
font-weight: var(--#{$prefix}font-weight-semibold);
|
||||
padding: 0.25rem 0.5rem !important;
|
||||
}
|
||||
|
||||
|
||||
2
core/scss/vendor/_fullcalendar.scss
vendored
2
core/scss/vendor/_fullcalendar.scss
vendored
@@ -36,7 +36,7 @@
|
||||
}
|
||||
|
||||
.fc-event-time {
|
||||
font-weight: var(--#{$prefix}font-weight-bold) !important;
|
||||
font-weight: var(--#{$prefix}font-weight-semibold) !important;
|
||||
}
|
||||
|
||||
.fc-col-header-cell-cushion {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
title: Tabler Emails
|
||||
menu-title: Emails
|
||||
seoTitle: Tabler Emails - premium email templates
|
||||
icon: mail
|
||||
order: 4
|
||||
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.
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
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.
|
||||
icon: ghost
|
||||
order: 2
|
||||
description: Over 5000 pixel-perfect icons for web design and development
|
||||
---
|
||||
@@ -11,5 +9,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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
title: Tabler Illustrations
|
||||
menu-title: Illustrations
|
||||
order: 3
|
||||
icon: paint
|
||||
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.
|
||||
---
|
||||
|
||||
@@ -10,10 +10,11 @@ To create an offcanvas, add the `.offcanvas` class to a container element. You c
|
||||
|
||||
{% capture html -%}
|
||||
<div
|
||||
class="offcanvas offcanvas-start show"
|
||||
class="offcanvas offcanvas-start"
|
||||
tabindex="-1"
|
||||
id="offcanvas"
|
||||
aria-labelledby="offcanvasLabel"
|
||||
data-bs-scroll="true"
|
||||
>
|
||||
<div class="offcanvas-body">
|
||||
Content for the offcanvas goes here. You can place just about any Tabler component or custom
|
||||
@@ -29,11 +30,12 @@ The offcanvas component is used to display a cookies banner. It is a great way t
|
||||
|
||||
{% capture html -%}
|
||||
<div
|
||||
class="offcanvas offcanvas-bottom h-auto show"
|
||||
class="offcanvas offcanvas-bottom h-auto"
|
||||
tabindex="-1"
|
||||
id="offcanvasBottom"
|
||||
aria-modal="true"
|
||||
role="dialog"
|
||||
data-bs-scroll="true"
|
||||
>
|
||||
<div class="offcanvas-body">
|
||||
<div class="container">
|
||||
@@ -58,4 +60,12 @@ The offcanvas component is used to display a cookies banner. It is a great way t
|
||||
</div>
|
||||
</div>
|
||||
{%- 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>
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
title: Tabler UI
|
||||
menu-title: Admin Template
|
||||
order: 1
|
||||
icon: layout
|
||||
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.
|
||||
---
|
||||
|
||||
@@ -274,9 +274,9 @@ export default function (eleventyConfig) {
|
||||
eleventyConfig.addGlobalData("posthogHost", process.env.POSTHOG_HOST || "https://us.i.posthog.com");
|
||||
|
||||
const data = {
|
||||
iconsCount: () => 5963,
|
||||
emailsCount: () => 80,
|
||||
illustrationsCount: () => 105
|
||||
iconsCount: () => 123,
|
||||
emailsCount: () => 123,
|
||||
illustrationsCount: () => 123
|
||||
};
|
||||
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
"description": "",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "pnpm run clean && pnpm run js && pnpm run css && pnpm run html ",
|
||||
"build": "pnpm run clean && pnpm run build-assets && pnpm run html",
|
||||
"build-assets": "concurrently \"pnpm run js\" \"pnpm run css\"",
|
||||
"html": "eleventy",
|
||||
"js": "pnpm run js-compile && pnpm run js-minify",
|
||||
"js-compile": "rollup --config .build/rollup.config.mjs --sourcemap",
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
|
||||
:root {
|
||||
--docsearch-primary-color: var(--tblr-primary);
|
||||
--docsearch-searchbox-background: var(--tblr-bg-surface-secondary);
|
||||
--docsearch-searchbox-focus-background: var(--tblr-bg-surface-secondary);
|
||||
--docsearch-searchbox-background: var(--tblr-bg-surface);
|
||||
--docsearch-searchbox-focus-background: var(--tblr-bg-surface);
|
||||
--docsearch-text-color: var(--tblr-body-text);
|
||||
--docsearch-key-shadow: none;
|
||||
--docsearch-key-shadow: 0 0 0 1px var(--tblr-border-color);
|
||||
--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 {
|
||||
@@ -26,11 +24,6 @@
|
||||
box-shadow: 0 0 0 1px var(--tblr-border-color);
|
||||
font-weight: var(--tblr-font-weight-normal);
|
||||
transition: all 0.2s ease-in-out;
|
||||
border-radius: var(--tblr-border-radius);
|
||||
}
|
||||
|
||||
.DocSearch-Button-Placeholder {
|
||||
font-size: var(--tblr-font-size);
|
||||
}
|
||||
|
||||
.DocSearch-SearchBar {
|
||||
@@ -39,11 +32,6 @@
|
||||
background-color: var(--tblr-bg-surface) !important;
|
||||
}
|
||||
|
||||
.DocSearch-Search-Icon {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-source {
|
||||
background: none !important;
|
||||
}
|
||||
@@ -57,7 +45,7 @@
|
||||
border: 1px solid var(--tblr-border-color) !important;
|
||||
color: var(--tblr-body-color) !important;
|
||||
box-shadow: none !important;
|
||||
|
||||
|
||||
&:hover {
|
||||
background-color: var(--tblr-bg-surface-tertiary) !important;
|
||||
border-color: var(--tblr-border-color-active) !important;
|
||||
@@ -100,7 +88,7 @@
|
||||
|
||||
.DocSearch-Input {
|
||||
color: var(--tblr-body-color) !important;
|
||||
|
||||
|
||||
&::placeholder {
|
||||
color: var(--tblr-muted) !important;
|
||||
}
|
||||
@@ -112,20 +100,8 @@
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Keys {
|
||||
min-width: 0;
|
||||
gap: .25rem;
|
||||
margin-right: .25rem;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Key {
|
||||
top: 0;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: auto;
|
||||
font-size: var(--tblr-font-size);
|
||||
}
|
||||
|
||||
.DocSearch-Container {
|
||||
@@ -138,13 +114,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
.example>.modal,
|
||||
.example>.offcanvas {
|
||||
.example > .modal,
|
||||
.example > .offcanvas {
|
||||
display: block !important;
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
.example>.offcanvas-backdrop {
|
||||
.example > .offcanvas-backdrop {
|
||||
position: absolute !important;
|
||||
}
|
||||
|
||||
@@ -157,4 +133,4 @@ code {
|
||||
::selection {
|
||||
background: var(--tblr-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
{
|
||||
"trailingSlash": false,
|
||||
"redirects": [
|
||||
{
|
||||
"source": "/",
|
||||
"destination": "/ui",
|
||||
"permanent": false
|
||||
}
|
||||
],
|
||||
"rewrites": [
|
||||
{
|
||||
"source": "/stats/js/script.js",
|
||||
@@ -24,7 +17,6 @@
|
||||
"source": "/eat/:path(.*)",
|
||||
"destination": "https://eu.i.posthog.com/:path*"
|
||||
},
|
||||
|
||||
{
|
||||
"source": "/(.*)",
|
||||
"destination": "/error-404.html"
|
||||
|
||||
151
pnpm-lock.yaml
generated
151
pnpm-lock.yaml
generated
@@ -108,9 +108,6 @@ importers:
|
||||
bootstrap:
|
||||
specifier: 5.3.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:
|
||||
'@hotwired/turbo':
|
||||
specifier: ^8.0.18
|
||||
@@ -119,8 +116,8 @@ importers:
|
||||
specifier: ^0.25.0
|
||||
version: 0.25.0
|
||||
apexcharts:
|
||||
specifier: 3.54.1
|
||||
version: 3.54.1
|
||||
specifier: ^5.3.6
|
||||
version: 5.3.6
|
||||
autosize:
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1
|
||||
@@ -133,6 +130,9 @@ importers:
|
||||
countup.js:
|
||||
specifier: ^2.9.0
|
||||
version: 2.9.0
|
||||
driver.js:
|
||||
specifier: ^1.0.0
|
||||
version: 1.4.0
|
||||
dropzone:
|
||||
specifier: ^6.0.0-beta.2
|
||||
version: 6.0.0-beta.2
|
||||
@@ -148,6 +148,9 @@ importers:
|
||||
fullcalendar:
|
||||
specifier: ^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:
|
||||
specifier: ^1.0.9
|
||||
version: 1.0.9
|
||||
@@ -1265,6 +1268,31 @@ packages:
|
||||
resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==}
|
||||
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':
|
||||
resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==}
|
||||
|
||||
@@ -1360,8 +1388,8 @@ packages:
|
||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
apexcharts@3.54.1:
|
||||
resolution: {integrity: sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==}
|
||||
apexcharts@5.3.6:
|
||||
resolution: {integrity: sha512-sVEPw+J0Gp0IHQabKu8cfdsxlfME0e36Wid7RIaPclGM2OUt+O7O4+6mfAmTUYhy5bDk8cNHzEhPfVtLCIXEJA==}
|
||||
|
||||
argparse@1.0.10:
|
||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||
@@ -1767,6 +1795,9 @@ packages:
|
||||
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
driver.js@1.4.0:
|
||||
resolution: {integrity: sha512-Gm64jm6PmcU+si21sQhBrTAM1JvUrR0QhNmjkprNLxohOBzul9+pNHXgQaT9lW84gwg9GMLB3NZGuGolsz5uew==}
|
||||
|
||||
dropzone@6.0.0-beta.2:
|
||||
resolution: {integrity: sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ==}
|
||||
|
||||
@@ -1794,8 +1825,8 @@ packages:
|
||||
electron-to-chromium@1.5.149:
|
||||
resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==}
|
||||
|
||||
electron-to-chromium@1.5.259:
|
||||
resolution: {integrity: sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==}
|
||||
electron-to-chromium@1.5.262:
|
||||
resolution: {integrity: sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==}
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
@@ -3263,37 +3294,6 @@ packages:
|
||||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
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:
|
||||
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -4695,6 +4695,25 @@ snapshots:
|
||||
dependencies:
|
||||
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.5.15':
|
||||
@@ -4781,15 +4800,14 @@ snapshots:
|
||||
normalize-path: 3.0.0
|
||||
picomatch: 2.3.1
|
||||
|
||||
apexcharts@3.54.1:
|
||||
apexcharts@5.3.6:
|
||||
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
|
||||
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:
|
||||
dependencies:
|
||||
@@ -4906,7 +4924,7 @@ snapshots:
|
||||
dependencies:
|
||||
baseline-browser-mapping: 2.8.31
|
||||
caniuse-lite: 1.0.30001757
|
||||
electron-to-chromium: 1.5.259
|
||||
electron-to-chromium: 1.5.262
|
||||
node-releases: 2.0.27
|
||||
update-browserslist-db: 1.1.4(browserslist@4.28.0)
|
||||
|
||||
@@ -5179,6 +5197,8 @@ snapshots:
|
||||
|
||||
dotenv@8.6.0: {}
|
||||
|
||||
driver.js@1.4.0: {}
|
||||
|
||||
dropzone@6.0.0-beta.2:
|
||||
dependencies:
|
||||
'@swc/helpers': 0.2.14
|
||||
@@ -5210,7 +5230,7 @@ snapshots:
|
||||
|
||||
electron-to-chromium@1.5.149: {}
|
||||
|
||||
electron-to-chromium@1.5.259: {}
|
||||
electron-to-chromium@1.5.262: {}
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
@@ -5942,7 +5962,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@next/env': 16.0.4
|
||||
'@swc/helpers': 0.5.15
|
||||
caniuse-lite: 1.0.30001757
|
||||
caniuse-lite: 1.0.30001717
|
||||
postcss: 8.4.31
|
||||
react: 19.2.0
|
||||
react-dom: 19.2.0(react@19.2.0)
|
||||
@@ -6689,37 +6709,6 @@ snapshots:
|
||||
|
||||
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: {}
|
||||
|
||||
terser@5.44.0:
|
||||
|
||||
@@ -11,6 +11,7 @@ const illustrations = sync(join(__dirname, `../../shared/static/illustrations/li
|
||||
.map((file) => {
|
||||
return basename(file, '.png')
|
||||
})
|
||||
.sort((a, b) => a.localeCompare(b));
|
||||
|
||||
writeFileSync(
|
||||
join(__dirname, `../../shared/data/illustrations.json`),
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"version": "1.4.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run html",
|
||||
"build": "pnpm run clean && pnpm run build-assets && pnpm run html",
|
||||
"build-assets": "concurrently \"pnpm run css\" \"pnpm run js\"",
|
||||
"dev": "pnpm run clean && pnpm run watch",
|
||||
"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",
|
||||
|
||||
97
preview/pages/card-gradients.html
Normal file
97
preview/pages/card-gradients.html
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
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>
|
||||
@@ -13,17 +13,7 @@ permalink: charts.html
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<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>
|
||||
{% include "cards/charts/social-referrals.html" %}
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
223
preview/pages/tour.html
Normal file
223
preview/pages/tour.html
Normal file
@@ -0,0 +1,223 @@
|
||||
---
|
||||
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>
|
||||
|
||||
@@ -1 +1 @@
|
||||
["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"]
|
||||
["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"]
|
||||
@@ -105,6 +105,11 @@
|
||||
"title": "Card actions",
|
||||
"badge": "New"
|
||||
},
|
||||
"gradients": {
|
||||
"url": "card-gradients.html",
|
||||
"title": "Card gradients",
|
||||
"badge": "New"
|
||||
},
|
||||
"masonry": {
|
||||
"url": "cards-masonry.html",
|
||||
"title": "Cards Masonry"
|
||||
@@ -474,6 +479,10 @@
|
||||
"url": "maps-vector.html",
|
||||
"title": "Map vector"
|
||||
},
|
||||
"tour": {
|
||||
"url": "tour.html",
|
||||
"title": "Tour"
|
||||
},
|
||||
"turbo": {
|
||||
"url": "turbo-loader.html",
|
||||
"title": "Turbo loader"
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"css": "sha384-b08Yxo9kzlsLLcHA4bMBkC8EAIBeP3G8rhhIT584owzLn88bcWJkSVtGZMc78Rax",
|
||||
"css-rtl": "sha384-EVH/sV9+QVa/y7Vl1JFsVYjru0/gKkqDf8zBqdfu2R8t84BwCBeV7jsu7kQ93abg",
|
||||
"css-flags": "sha384-kmvP0hkBXZ2hMSZlbvE1Q2HIXzPCQRL3ijUeqNiwaPd2nl2Aks+s3gW+V5fAHOX9",
|
||||
"css-flags-rtl": "sha384-Q/h6koANGclsGnwB8rvF8h84H54NKHDeNWFj6yiE4WLLEXyHcz+Zu6Afkh2ssYTC",
|
||||
"css-marketing": "sha384-4dAlYnPzCom9yeC/5++PFq2FG/szJRlUPsDSrjZ3EWP8IAzK7g7rrsnSfqrS67Se",
|
||||
"css-marketing-rtl": "sha384-c6gNhuNYjp+lqluSdArbL8ciLEBq7IVU00XnPM2Eogj8RAjMapccvOM/pGhk3vV6",
|
||||
"css": "sha384-8CTJ1aEYI+cbgqgYVub8YVfKOnKa/men0DZ4qZqmwvgzNGG1/anW0L4o7/8G171h",
|
||||
"css-rtl": "sha384-c4pkMIjCDw9LwOOYLU2NkDMg4rsDpqEj+xqDXhrTVRtDiAvk2083ZRDsxMOl9Qpw",
|
||||
"css-flags": "sha384-Z+NVuLczJm4wqbXhRrVWeCqKJzY3VmwtOZTMpek7tjmZJU9Yqu+6F7aPT0KDBTvS",
|
||||
"css-flags-rtl": "sha384-9zdt+TQAk+aAdQAyWQ158584Cr9KDLcgJMDG5iDvrYE2Ha/sZdG6l3FcjWyHAFx8",
|
||||
"css-marketing": "sha384-O1oTT08rQgRZEq0WgPfYFyGadtTu90+tM9zTv+9yYv1qgNw8ldbGTr6levIIXXNl",
|
||||
"css-marketing-rtl": "sha384-jU6iDpXSyHHkiqBvDtPRuDWr+4ccgr3SNjNYMN0FtyaDaIi4Qe6WNn5Ir1+jr/aZ",
|
||||
"css-payments": "sha384-xWIXbKxPLGG/ZEGUKxDjJn3xmUgd2PC2CSZUKJ4PyTse49DiuvJx2WT5wSNJRyw9",
|
||||
"css-payments-rtl": "sha384-69CxgA+uEPtM07SLA8MMAdnBmwtVGndDJf8nIPdfvNrDayBfPqOK3wS3nvV5yyk+",
|
||||
"css-socials": "sha384-eWmz8gyiLzrDw3JcT/PJxjGyKizQjvByfHqocjrMMkIrbKFCnOuP/qMwAz3bHmsC",
|
||||
"css-socials-rtl": "sha384-yobKDIyTOxB1z7t/uZ2ImuXrcKWF24vDYg2vR1n7x2msF09iWnvyIxQtfEl9+OFl",
|
||||
"css-props": "sha384-HpzBfAj1xJcNLtdedYZunJBHqgdO12KqrCrc6/7pmKDiP8YmUF71cm+iGBtVawWM",
|
||||
"css-props-rtl": "sha384-/vKK+yuQsAI8lJmR4uothydKQAHFK+fp1QrbJnfk2deAzII9WUj3h5rXUxZPyUAo",
|
||||
"css-props": "sha384-41GCSlvwCdfsb6AHZx7QXQq17CAqXvvToJCecMxqvUUsap3aYqIvR3ARxb5ug/o7",
|
||||
"css-props-rtl": "sha384-JgFdeK5dAxT/nZPtUTt3cnBng9TLxoF6ZetumffFIzqF/4XXLEQIemFDshpleF/f",
|
||||
"css-themes": "sha384-jTe/MdN6BlY4S3eYe6Qw++yTjuezmVnxWp/l7GAG1qXGC+jttphHqsAN/bGPvJOk",
|
||||
"css-themes-rtl": "sha384-WTp4aZ+OGqnkNR6Xe0sJwwfd0JHGq3dZTLU2ITKxTK2zjcJTBUMY/+Z4eXgm8ipF",
|
||||
"css-vendors-rtl": "sha384-V555LUGE2xyN4wNbzdVMgsajsKmJdlLFm20Ws72jEyPiSsTXXITV0PebNzVeBjnb",
|
||||
"css-vendors": "sha384-+X7+c/noY2B9ieq9daEaVStkUhIFyJTO5T6Occ6jZisx57sbECetvloLqcvGahUv",
|
||||
"js": "sha384-pku3birjgGovaJ9ngF7SaxKkF/eYUvBjiMJ+jTtWbNesIj2Rud2K63+4JD7EF4gk",
|
||||
"css-vendors-rtl": "sha384-fHhTRXlGYaUjLAbSnADjVs2DrSBSKbnTDhjiOgVT0+aWDjKbwtPZU6y54bLo2FCm",
|
||||
"css-vendors": "sha384-9R1luLy+gN6Ob3LEWsGiGo3nyPVDzVGyEBcDlat6sH2lF7zHZhnpDILTEgEvalsh",
|
||||
"js": "sha384-dUqGQ2Iu2WGMnF+glqmZxV78vxbRuwGaM3diaq+Wp0a6mek1k5samXVe60XqZcTT",
|
||||
"js-theme": "sha384-SoDJmj40r6f9Rfxi6Fq+bNS8ofhlZMyxHk9dq9Y8e1M17PZGkBRN/XUpx8swn0i5",
|
||||
"demo-css": "sha384-BUDq2P684xwRBf0GDlySvob+KJg4ko8y2K7njgvYBscmEuqoVVqJ75zcTDozwkFA",
|
||||
"demo-js": "sha384-UcTgbM9IZSOPHHuFa0R9H4TegQWoZkJKpeTjLV5hjem2k0CZ67Q4/bW2rT/Edf4Z"
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
import { readFileSync } from "fs";
|
||||
import { join } from "path";
|
||||
import { join, dirname } from "path";
|
||||
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
export function appData(eleventyConfig) {
|
||||
eleventyConfig.addGlobalData("package", JSON.parse(readFileSync(join("..", "core", "package.json"), "utf-8")));
|
||||
eleventyConfig.addGlobalData("changelog", readFileSync(join("..", "core", "CHANGELOG.md"), "utf-8"));
|
||||
eleventyConfig.addGlobalData("libs", JSON.parse(readFileSync(join("..", "core", "libs.json"), "utf-8")));
|
||||
const currentDir = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
console.log('currentDir', currentDir);
|
||||
|
||||
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
|
||||
eleventyConfig.addGlobalData("posthogApiKey", process.env.NEXT_PUBLIC_POSTHOG_KEY);
|
||||
|
||||
@@ -29,14 +29,6 @@ export function appFilters(eleventyConfig) {
|
||||
.replace(/[\r\n]/g, ' ');
|
||||
});
|
||||
|
||||
eleventyConfig.addFilter("strip_trailing_slash", (text) => {
|
||||
return text?.replace(/\/$/, '');
|
||||
});
|
||||
|
||||
eleventyConfig.addFilter("strip_leading_slash", (text) => {
|
||||
return text?.replace(/^\//, '');
|
||||
});
|
||||
|
||||
eleventyConfig.addFilter("contains", (items, item) => {
|
||||
return items && Array.isArray(items) && items.includes(item);
|
||||
});
|
||||
@@ -146,11 +138,6 @@ export function appFilters(eleventyConfig) {
|
||||
return 0;
|
||||
})
|
||||
|
||||
eleventyConfig.addFilter("debug", function (elem) {
|
||||
console.log(elem);
|
||||
return elem;
|
||||
})
|
||||
|
||||
eleventyConfig.addFilter("first", function (elem) {
|
||||
if (elem instanceof Object) {
|
||||
return elem[Object.keys(elem)[0]];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% assign width = include.width | default: 400 %}
|
||||
{% assign height = include.height | default: 200 %}
|
||||
<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" %}
|
||||
<div class="card-body{% if include.class %} {{ include.class }}{% endif %}">
|
||||
{% include "ui/svg.html" width=width height=height ratio=include.ratio class="w-100 border rounded" %}
|
||||
</div>
|
||||
13
shared/includes/cards/charts/active-users-2.html
Normal file
13
shared/includes/cards/charts/active-users-2.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<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>
|
||||
|
||||
12
shared/includes/cards/charts/social-referrals.html
Normal file
12
shared/includes/cards/charts/social-referrals.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<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>
|
||||
|
||||
14
shared/includes/cards/charts/total-users.html
Normal file
14
shared/includes/cards/charts/total-users.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<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>
|
||||
|
||||
12
shared/includes/cards/delete-confirm.html
Normal file
12
shared/includes/cards/delete-confirm.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<div class="card card-gradient card-gradient-danger">
|
||||
<div class="card-body p-5 text-center">
|
||||
<h3 class="card-title">Are you sure to delete this card?</h3>
|
||||
<p class="text-secondary">If you delete this card, you will not be able to recover it.</p>
|
||||
|
||||
<div class="btn-list btn-list-center mt-5">
|
||||
{% include "ui/button.html" text="Yes, delete it" color="danger" %}
|
||||
{% include "ui/button.html" text="Cancel" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
12
shared/includes/cards/happy-birthday.html
Normal file
12
shared/includes/cards/happy-birthday.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<div class="card card-gradient card-gradient-rainbow">
|
||||
<div class="card-body text-center p-5">
|
||||
<div class="display-5 leading-none mb-2">🍾 🎉</div>
|
||||
<h1>Happy Birthday, Andrew!</h1>
|
||||
<p class="text-secondary">We truly hope your day is brimming with joy, laughter, and countless moments that bring a smile to your face!</p>
|
||||
<p class="text-secondary">To celebrate your special day, here's a discount code just for you: <strong class="text-body">NWYR20</strong>. Enjoy <strong class="text-body">20% off</strong> your next purchase!</p>
|
||||
<div class="mt-5">
|
||||
{% include "ui/button.html" text="Grab my special deal" icon="gift" color="primary" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% assign icons-count = icons-info.count %}
|
||||
|
||||
<div class="card card-md sticky-top{% if include.class %} {{ include.class }}{% endif %}">
|
||||
<div class="card card-md{% if include.class %} {{ include.class }}{% endif %}">
|
||||
<div class="card-stamp card-stamp-lg">
|
||||
<div class="card-stamp-icon bg-primary">
|
||||
{% include "ui/icon.html" icon="ghost" %}
|
||||
|
||||
@@ -84,8 +84,8 @@
|
||||
<td class="text-end">$5.000,00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="font-weight-bold text-uppercase text-end">Total Due</td>
|
||||
<td class="font-weight-bold text-end">$30.000,00</td>
|
||||
<td colspan="4" class="font-weight-semibold text-uppercase text-end">Total Due</td>
|
||||
<td class="font-weight-semibold text-end">$30.000,00</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
37
shared/includes/cards/pricing-plan.html
Normal file
37
shared/includes/cards/pricing-plan.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="card card-gradient card-gradient-love">
|
||||
<div class="ribbon bg-pink">
|
||||
Featured
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="h-subheader text-pink">
|
||||
Professional
|
||||
</div>
|
||||
<div class="d-flex align-items-baseline mt-5">
|
||||
<div class="display-5">$199</div>
|
||||
<div class="fs-1 text-secondary">/ month</div>
|
||||
</div>
|
||||
<ul class="list-unstyled mt-6 space-y space-y-2">
|
||||
<li class="d-flex gap-2">
|
||||
<div>{% include "ui/icon.html" icon="check" color="success" %}</div>
|
||||
<div><strong>Unlimited</strong> Target Audience</div>
|
||||
</li>
|
||||
<li class="d-flex gap-2">
|
||||
<div>{% include "ui/icon.html" icon="check" color="success" %}</div>
|
||||
<div><strong>1</strong> User Account</div>
|
||||
</li>
|
||||
<li class="d-flex gap-2">
|
||||
<div>{% include "ui/icon.html" icon="check" color="success" %}</div>
|
||||
<div><strong>100+</strong> Video Tuts</div>
|
||||
</li>
|
||||
<li class="d-flex gap-2">
|
||||
<div>{% include "ui/icon.html" icon="x" color="secondary" %}</div>
|
||||
<div class="text-secondary">Public Displays</div>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="mt-4 text-muted">This plan is perfect for small businesses and startups. It includes all the features you need to get started.</p>
|
||||
<div class="mt-6">
|
||||
{% include "ui/button.html" text="Purchase Now" color="pink" block %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
20
shared/includes/cards/profile-contact.html
Normal file
20
shared/includes/cards/profile-contact.html
Normal file
@@ -0,0 +1,20 @@
|
||||
{% assign person = include.person | default: people[1] %}
|
||||
<div class="card card-gradient card-gradient-{{ include.color | default: 'yellow' }}">
|
||||
<div class="card-body text-center py-6">
|
||||
<div class="position-absolute top-0 end-0 p-1">
|
||||
<div class="btn btn-action">{% include "ui/icon.html" icon="star" color="yellow" type="filled" %}</div>
|
||||
</div>
|
||||
<div>
|
||||
{% include "ui/avatar.html" size="2xl" person=person shape="rounded-circle" %}
|
||||
</div>
|
||||
<div class="h1 mt-4 mb-1">{{ person.full_name }}</div>
|
||||
<div class="text-secondary">{{ person.job_title }}</div>
|
||||
|
||||
<div class="btn-list justify-content-center mt-3">
|
||||
<a href="#" class="btn btn-icon btn-pill" title="Message" data-bs-toggle="tooltip" data-bs-placement="top">{% include "ui/icon.html" icon="message" %}</a>
|
||||
<a href="#" class="btn btn-icon btn-pill" title="Phone" data-bs-toggle="tooltip" data-bs-placement="top">{% include "ui/icon.html" icon="phone" %}</a>
|
||||
<a href="#" class="btn btn-icon btn-pill" title="Email" data-bs-toggle="tooltip" data-bs-placement="top">{% include "ui/icon.html" icon="mail" %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% assign chart-type = include.chart-type | default: 'line' %}
|
||||
{% assign chart-position = include.chart-position | default: 'right' %}
|
||||
<div class="card card-sm">
|
||||
<div class="card card-sm{% if include.class %} {{ include.class }}{% endif %}">
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
{% if include.icon %}
|
||||
|
||||
23
shared/includes/cards/stat-gradient.html
Normal file
23
shared/includes/cards/stat-gradient.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% assign card-color = include.color | default: 'primary' %}
|
||||
{% assign card-icon = include.icon | default: 'trending-up' %}
|
||||
{% assign card-title = include.title | default: 'Total' %}
|
||||
{% assign card-value = include.value | default: '0' %}
|
||||
{% assign card-progress = include.progress | default: 0 %}
|
||||
|
||||
<div class="card card-gradient card-gradient-{{ card-color }} card-gradient-start">
|
||||
<div class="card-body">
|
||||
<div class="row g-3">
|
||||
<div class="col">
|
||||
<h4 class="subheader mb-1">{{ card-title }}</h4>
|
||||
<div class="h3 m-0">{{ card-value }}</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
{% include "ui/avatar.html" icon=card-icon color=card-color %}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
{% include "ui/progress.html" value=card-progress color=card-color size="sm" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
33
shared/includes/cards/storage-usage.html
Normal file
33
shared/includes/cards/storage-usage.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<p class="mb-3">Using Storage <strong>6854.45 MB </strong>of 8 GB</p>
|
||||
<div class="progress progress-separated mb-3">
|
||||
<div class="progress-bar bg-primary" role="progressbar" style="width: 44%" aria-label="Regular"></div>
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 19%" aria-label="System"></div>
|
||||
<div class="progress-bar bg-success" role="progressbar" style="width: 9%" aria-label="Shared"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-auto d-flex align-items-center pe-2">
|
||||
<span class="legend me-2 bg-primary"></span>
|
||||
<span>Regular</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">915MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-info"></span>
|
||||
<span>System</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">415MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-success"></span>
|
||||
<span>Shared</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">201MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center ps-2">
|
||||
<span class="legend me-2"></span>
|
||||
<span>Free</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">612MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="mb-4 text-center">
|
||||
<img src="{{ page | relative }}/img/products/{{ product.image }}" alt="Apple iPhone 7 128GB" class="img-fluid">
|
||||
<img src="{{ page | relative }}/static/products/{{ product.image }}" alt="{{ product.name }}" class="img-fluid">
|
||||
</div>
|
||||
<h4 class="card-title"><a href="#">{{ product.name }}</a></h4>
|
||||
<div class="mt-5 d-flex align-items-center">
|
||||
@@ -11,7 +11,7 @@
|
||||
<strong>{{ product.price }}</strong>
|
||||
</div>
|
||||
<div class="ms-auto">
|
||||
<a href="#" class="btn btn-primary">{% include "ui/icon.html" icon='plus' %} Add to cart</a>
|
||||
<a href="#" class="btn btn-primary">{% include "ui/icon.html" icon='shopping-cart' %} Buy</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
14
shared/includes/cards/success-message.html
Normal file
14
shared/includes/cards/success-message.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="card card-gradient card-gradient-success">
|
||||
<div class="card-body p-5 text-center">
|
||||
<div class="mb-3">
|
||||
{% include "ui/icon.html" icon="circle-check" class="icon-lg" color="success" %}
|
||||
</div>
|
||||
<h3 class="card-title">Success!</h3>
|
||||
<p class="text-secondary">Your changes have been saved successfully.</p>
|
||||
|
||||
<div class="btn-list btn-list-center mt-5">
|
||||
{% include "ui/button.html" text="Continue" color="success" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
24
shared/includes/cards/weather.html
Normal file
24
shared/includes/cards/weather.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% assign icon = include.icon | default: 'cloud-rain' %}
|
||||
<div class="card card-gradient card-gradient-{{ include.color | default: 'blue' }} card-gradient-end">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<h3 class="card-title mb-2">{{ include.city | default: 'Warsaw' }}</h3>
|
||||
</div>
|
||||
<div class="col">
|
||||
{% include "ui/icon.html" icon=icon %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-secondary">
|
||||
{{ include.description | default: 'Cloudy morning' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="display-5 lh-1 fw-lighter">{{ include.temperature | default: 20 }}°</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<div class="card">
|
||||
<div class="card card-gradient">
|
||||
<div class="card-body">
|
||||
<div class="row gy-3">
|
||||
<div class="col-12 col-sm d-flex flex-column">
|
||||
<h3 class="h2">Welcome back, Paweł</h3>
|
||||
<p class="text-muted">You have 5 new messages and 2 new notifications.</p>
|
||||
<p class="text-secondary">You have 5 new messages and 2 new notifications.</p>
|
||||
|
||||
<div class="row g-5 mt-auto">
|
||||
<div class="col-auto">
|
||||
|
||||
11
shared/includes/cards/you-win.html
Normal file
11
shared/includes/cards/you-win.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="card card-gradient card-gradient-gold">
|
||||
<div class="card-body text-center p-5">
|
||||
<div class="display-3 leading-none mb-2">🏆</div>
|
||||
<h1>You are winner!</h1>
|
||||
<p class="text-secondary">You've been selected as our lucky winner for completing <strong class="text-body">100 orders</strong> this month! Click below to claim your exclusive prize and enjoy the benefits!</p>
|
||||
<div class="mt-5">
|
||||
{% include "ui/button.html" text="Claim Your Prize" icon="gift" color="primary" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,33 +1,22 @@
|
||||
{% assign menu = collections.docs | collection-tree %}
|
||||
{% assign current-section = page.url | split: '/' | slice: 1, 1 | prepend: '/' | append: '/' %}
|
||||
{% for level1 in menu %}
|
||||
{% if current-section == level1.url %}
|
||||
{% assign current-menu = level1.children %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if current-menu %}
|
||||
<nav class="space-y space-y-5" id="menu">
|
||||
{% for level1 in current-menu %}
|
||||
{% for level1 in menu %}
|
||||
<div>
|
||||
<div class="subheader mb-2">
|
||||
{{ level1.data.title }}
|
||||
</div>
|
||||
{% if level1.children %}
|
||||
<nav class="nav nav-vertical">
|
||||
{% for level2 in level1.children %}
|
||||
<div>
|
||||
<a class="nav-link{% if page.url contains level2.url %} active{% endif %}" {% if level2.children %}
|
||||
href="{{ level2.url }}" data-bs-toggle="collapse" data-bs-target="#collapse-{{ level2.url | slug }}"
|
||||
aria-expanded="{% if page.url contains level2.url %}true{% else %}false{% endif %}" {% endif
|
||||
%}>{{ level2.data.title }}{% if level2.children %} <span class="nav-link-toggle"></span>{% endif %}</a>
|
||||
|
||||
<a class="nav-link{% if page.url contains level2.url %} active{% endif %}"{% if level2.children %} href="{{ level2.url }}" data-bs-toggle="collapse" data-bs-target="#collapse-{{ level2.url | slug }}" aria-expanded="{% if page.url contains level2.url %}true{% else %}false{% endif %}"{% endif %}>{{ level2.data.title }}{% if level2.children %} <span class="nav-link-toggle"></span>{% endif %}</a>
|
||||
|
||||
{% if level2.children %}
|
||||
<nav class="nav nav-vertical collapse{% if page.url contains level2.url %} show{% endif %}"
|
||||
id="collapse-{{ level2.url | slug }}">
|
||||
<nav class="nav nav-vertical collapse{% if page.url contains level2.url %} show{% endif %}" id="collapse-{{ level2.url | slug }}">
|
||||
{% for level3 in level2.children %}
|
||||
<div>
|
||||
<a class="nav-link{% if page.url == level3.url %} active{% endif %}"
|
||||
href="{{ level3.url }}">{{ level3.data.title }}</a>
|
||||
<a class="nav-link{% if page.url == level3.url %} active{% endif %}" href="{{ level3.url }}">{{ level3.data.title }}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
@@ -35,7 +24,7 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
{% endif %}
|
||||
</nav>
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="navbar navbar-expand sticky-top">
|
||||
<div class="container">
|
||||
<div class="row flex-fill align-items-md-center">
|
||||
<div class="col-auto">
|
||||
<div class="col">
|
||||
<div class="d-flex align-items-center gap-4">
|
||||
<a href="{{ page.url | relative }}" class="navbar-brand navbar-brand-autodark gap-4">
|
||||
{% include "docs/logo.html" %}
|
||||
@@ -11,7 +11,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-none d-md-block col-3">
|
||||
<div class="d-none d-md-block col">
|
||||
<div id="docsearch"></div>
|
||||
</div>
|
||||
<div class="col d-flex">
|
||||
@@ -46,42 +46,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% assign menu = collections.docs | collection-tree %}
|
||||
<div class="navbar-expand-md">
|
||||
<div class="container">
|
||||
<div class="navbar">
|
||||
<div class="row flex-column flex-md-row flex-fill align-items-center">
|
||||
<div class="col">
|
||||
<nav>
|
||||
<ul class="navbar-nav">
|
||||
{% for level1 in menu %}
|
||||
<li class="nav-item{% if page.url contains level1.url %} active{% endif %}">
|
||||
<a href="{{ level1.url }}" class="nav-link">
|
||||
{% if level1.data.icon %}<span class="nav-link-icon">{% include "ui/icon.html" icon=level1.data.icon %}</span>{% endif %}
|
||||
<span class="nav-link-title">{{ level1.data.menu-title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav>
|
||||
<ul class="navbar-nav">
|
||||
{% for link in docs-links %}
|
||||
<li class="nav-item">
|
||||
<a href="{{ link.url }}" class="nav-link" target="_blank">
|
||||
<span class="nav-link-icon">{% include "ui/icon.html" icon=link.icon %}</span>
|
||||
<span class="nav-link-title">{{ link.title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -3,33 +3,10 @@
|
||||
{% include "cards/welcome.html" %}
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-3">
|
||||
<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>
|
||||
{% include "cards/charts/total-users.html" %}
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-3">
|
||||
<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>
|
||||
{% include "cards/charts/active-users-2.html" %}
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-3">
|
||||
{% include "cards/charts/sales.html" %}
|
||||
@@ -97,38 +74,7 @@
|
||||
<div class="col-lg-6">
|
||||
<div class="row row-cards">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<p class="mb-3">Using Storage <strong>6854.45 MB </strong>of 8 GB</p>
|
||||
<div class="progress progress-separated mb-3">
|
||||
<div class="progress-bar bg-primary" role="progressbar" style="width: 44%" aria-label="Regular"></div>
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 19%" aria-label="System"></div>
|
||||
<div class="progress-bar bg-success" role="progressbar" style="width: 9%" aria-label="Shared"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-auto d-flex align-items-center pe-2">
|
||||
<span class="legend me-2 bg-primary"></span>
|
||||
<span>Regular</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">915MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-info"></span>
|
||||
<span>System</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">415MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-success"></span>
|
||||
<span>Shared</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">201MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center ps-2">
|
||||
<span class="legend me-2"></span>
|
||||
<span>Free</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">612MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "cards/storage-usage.html" %}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
{% include "cards/activity.html" %}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
{% endif %}
|
||||
|
||||
{% assign e = include.element | default: 'a' %}
|
||||
<{{ e }}{% if e == 'a' %} href="{{ href }}"{% endif %}{% if include.type %} type="{{ include.type }}"{% endif %} class="btn{% if include.height %} btn-{{ include.height }}{% endif %}{% if color %} btn-{% if include.outline %}outline-{% elsif include.ghost %}ghost-{% endif %}{{ color }}{% endif %}{% if include.disabled %} disabled{% endif %}{% if include.square %} btn-square{% endif %}{% if include.loading %} btn-loading{% endif %}{% if include.pill %} btn-pill{% endif %}{% if include['size'] %} btn-{{ include['size'] }}{% endif %}{% if include.class %} {{ include.class }}{% endif %}{% if include.block %} w-100{% endif %}{% if include.link %} btn-link{% endif %}{% if include.icon-only %} btn-icon{% endif %}"{% if include.external %} target="_blank" rel="noreferrer"{% endif %}{% if include.modal-id %} data-bs-toggle="modal" data-bs-target="#modal-{{ include.modal-id }}"{% endif %}{% if include.toast-id %} data-bs-toggle="toast" data-bs-target="#toast-{{ include.toast-id }}"{% endif %}{% if include.icon-only %} aria-label="{{ include.text | default: "Button" }}"{% endif %}{% if include.dismiss %} data-bs-dismiss="modal"{% endif %}>
|
||||
<{{ e }}{% if e == 'a' %} href="{{ href }}"{% endif %}{% if include.type %} type="{{ include.type }}"{% endif %}{% if include.id %} id="{{ include.id }}"{% endif %} class="btn{% if include.height %} btn-{{ include.height }}{% endif %}{% if color %} btn-{% if include.outline %}outline-{% elsif include.ghost %}ghost-{% endif %}{{ color }}{% endif %}{% if include.disabled %} disabled{% endif %}{% if include.square %} btn-square{% endif %}{% if include.loading %} btn-loading{% endif %}{% if include.pill %} btn-pill{% endif %}{% if include['size'] %} btn-{{ include['size'] }}{% endif %}{% if include.class %} {{ include.class }}{% endif %}{% if include.block %} w-100{% endif %}{% if include.link %} btn-link{% endif %}{% if include.icon-only %} btn-icon{% endif %}"{% if include.external %} target="_blank" rel="noreferrer"{% endif %}{% if include.modal-id %} data-bs-toggle="modal" data-bs-target="#modal-{{ include.modal-id }}"{% endif %}{% if include.toast-id %} data-bs-toggle="toast" data-bs-target="#toast-{{ include.toast-id }}"{% endif %}{% if include.icon-only %} aria-label="{{ include.text | default: "Button" }}"{% endif %}{% if include.dismiss %} data-bs-dismiss="modal"{% endif %}>
|
||||
{% if include.spinner %}
|
||||
{% include "ui/spinner.html" color=false size="sm" class=spinner-class element="span" %}{% endif %}
|
||||
{% if include.icon %}{% include "ui/icon.html" icon=include.icon color=include.icon-color %}{% endif %}
|
||||
|
||||
@@ -21,6 +21,24 @@
|
||||
{% capture script %}
|
||||
{% assign chart-type = data.type | default: 'bar' -%}
|
||||
{% removeemptylines %}
|
||||
|
||||
<style>
|
||||
:root {
|
||||
{% if data.series %}
|
||||
{% for serie in data.series %}
|
||||
{% assign color = serie.color | default: data.color | default: 'primary' %}
|
||||
{% assign opacity = serie.color-opacity | default: '100%' %}
|
||||
--chart-{{ id }}-color-{{ forloop.index0 }}: color-mix(in srgb, transparent, var(--tblr-{{ color }}) {{ opacity }});
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if chart-type == 'area' %}
|
||||
--chart-{{ id }}-fill-0: color-mix(in srgb, transparent, var(--tblr-primary) 16%);
|
||||
--chart-{{ id }}-fill-1: color-mix(in srgb, transparent, var(--tblr-primary) 16%);
|
||||
{% endif %}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
{% if environment == 'development' %}
|
||||
@@ -97,8 +115,8 @@
|
||||
{% if chart-type == 'area' %}
|
||||
fill: {
|
||||
colors: [
|
||||
'color-mix(in srgb, transparent, var(--tblr-primary) {% if chart-type == 'area' %}16%{% else %}100%{% endif %})',
|
||||
'color-mix(in srgb, transparent, var(--tblr-primary) {% if chart-type == 'area' %}16%{% else %}80%{% endif %})',
|
||||
'var(--chart-{{ id }}-fill-0)',
|
||||
'var(--chart-{{ id }}-fill-1)',
|
||||
],
|
||||
type: 'solid'
|
||||
},
|
||||
@@ -234,9 +252,7 @@
|
||||
{% endif %}
|
||||
|
||||
{% if data.series %}
|
||||
colors: [{% for serie in data.series %}{% assign color = serie.color | default: data.color | default: 'primary' %}
|
||||
'color-mix(in srgb, transparent, var(--tblr-{{ color }}) {% if serie.color-opacity %}{{ serie.color-opacity }}{% else %}100%{% endif %})'{% unless forloop.last %}, {% endunless %}{% endfor %}
|
||||
],
|
||||
colors: [{% for serie in data.series %}'var(--chart-{{ id }}-color-{{ forloop.index0 }})'{% unless forloop.last %}, {% endunless %}{% endfor %}],
|
||||
{% endif %}
|
||||
|
||||
legend: {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<div{% if include.class %} class="{{ include.class }}"{% endif %}>
|
||||
<div class="d-flex mb-1 align-items-center lh-1">
|
||||
<div class="fs-5 font-weight-bolder m-0">{{ include.label | default: 'Label' }}</div>
|
||||
<div class="fs-5 font-weight-semibold m-0">{{ include.label | default: 'Label' }}</div>
|
||||
{% if include.description %}
|
||||
<div class="fs-6 text-secondary ms-2">{{ include.description }}</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<link rel="stylesheet" href="/css/docs{% if environment != 'development' %}.min{% endif %}.css" />
|
||||
</head>
|
||||
|
||||
<body class="d-flex flex-column bg-surface">
|
||||
<body class="d-flex flex-column" style="background: var(--tblr-bg-surface)">
|
||||
<script src="/dist/js/tabler-theme{% if environment != 'development' %}.min{% endif %}.js"></script>
|
||||
<!-- BEGIN NAVBAR -->
|
||||
<header role="banner">
|
||||
@@ -93,8 +93,16 @@
|
||||
<div class="container">
|
||||
<div class="row g-0">
|
||||
<div class="col-docs d-none d-lg-block border-end">
|
||||
<div class="py-4 pe-2">
|
||||
<div class="py-4">
|
||||
<div class="space-y space-y-5">
|
||||
<div class="nav nav-vertical">
|
||||
{% for link in docs-links %}
|
||||
<a href="{{ link.url }}" class="nav-link" target="_blank">
|
||||
<span class="border me-2 rounded p-1">{% include "ui/icon.html" icon=link.icon %}</span>
|
||||
{{ link.title }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="flex-fill">
|
||||
{% include "docs/menu.html" %}
|
||||
</div>
|
||||
|
||||
26
turbo.json
26
turbo.json
@@ -11,17 +11,32 @@
|
||||
"^build"
|
||||
],
|
||||
"inputs": [
|
||||
"core/scss/**",
|
||||
"core/js/**",
|
||||
"core/img/**",
|
||||
"core/fonts/**",
|
||||
"core/.build/**",
|
||||
"preview/pages/**",
|
||||
"preview/scss/**",
|
||||
"preview/js/**",
|
||||
"preview/.build/**",
|
||||
"docs/content/**",
|
||||
"docs/scss/**",
|
||||
"docs/js/**",
|
||||
"docs/.build/**",
|
||||
"shared/**",
|
||||
"preview/**"
|
||||
"package.json",
|
||||
"pnpm-lock.yaml"
|
||||
],
|
||||
"outputs": [
|
||||
"dist/**"
|
||||
"dist/**",
|
||||
"demo/**"
|
||||
],
|
||||
"cache": false
|
||||
"cache": true
|
||||
},
|
||||
"dev": {
|
||||
"cache": false,
|
||||
"persistent": false
|
||||
"persistent": true
|
||||
},
|
||||
"clean": {
|
||||
"dependsOn": [
|
||||
@@ -32,7 +47,8 @@
|
||||
"bundlewatch": {
|
||||
"dependsOn": [
|
||||
"build"
|
||||
]
|
||||
],
|
||||
"cache": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user