mirror of
https://github.com/tabler/tabler.git
synced 2025-12-22 01:44:25 +04:00
Compare commits
15 Commits
dev-depend
...
dev-change
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b04679c2d | ||
|
|
54454f71d1 | ||
|
|
914bc6a21a | ||
|
|
5be3c0e236 | ||
|
|
3dd6b3b8bc | ||
|
|
58a5b4c2bd | ||
|
|
a2cbd50187 | ||
|
|
4fe9407a19 | ||
|
|
80dd505973 | ||
|
|
191b5f0636 | ||
|
|
5330aaea52 | ||
|
|
df593d2b05 | ||
|
|
e357ab4e4d | ||
|
|
3388a68447 | ||
|
|
b0d759f328 |
89
.all-contributorsrc
Normal file
89
.all-contributorsrc
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"projectName": "tabler",
|
||||
"projectOwner": "tabler",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"files": [
|
||||
"CONTRIBUTORS.md"
|
||||
],
|
||||
"imageSize": 100,
|
||||
"commit": true,
|
||||
"commitConvention": "angular",
|
||||
"contributors": [
|
||||
{
|
||||
"login": "codecalm",
|
||||
"name": "Paweł Kuna",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1282324?v=4",
|
||||
"profile": "https://tabler.io/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "martynaaj",
|
||||
"name": "Martyna",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/60158888?v=4",
|
||||
"profile": "https://github.com/martynaaj",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "deralaxo",
|
||||
"name": "Dawid Harat",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/40028795?v=4",
|
||||
"profile": "https://github.com/deralaxo",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rjd22",
|
||||
"name": "Robert-Jan de Dreu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/160743?v=4",
|
||||
"profile": "https://codersopinion.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "FreexD",
|
||||
"name": "Michał Wolny",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7117869?v=4",
|
||||
"profile": "https://github.com/FreexD",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "wangkanai",
|
||||
"name": "Sarin Na Wangkanai",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/10666633?v=4",
|
||||
"profile": "https://www.wangkanai.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "WinterSilence",
|
||||
"name": "Anton",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3521094?v=4",
|
||||
"profile": "https://ensostudio.ru/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dheineman",
|
||||
"name": "Dave Heineman",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/516028?v=4",
|
||||
"profile": "https://github.com/dheineman",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"linkToUsage": false
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
>= 1%
|
||||
last 2 versions
|
||||
Firefox ESR
|
||||
last 1 major version
|
||||
not dead
|
||||
safari >= 15.4
|
||||
iOS >= 15.4
|
||||
Chrome >= 60
|
||||
Firefox >= 60
|
||||
Edge >= 15.15063
|
||||
Explorer 11
|
||||
iOS >= 10
|
||||
Safari >= 10
|
||||
Android >= 6
|
||||
not ExplorerMobile <= 11
|
||||
|
||||
28
.build/changelog.js
Normal file
28
.build/changelog.js
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
const fs = require('fs'),
|
||||
path = require('path'),
|
||||
YAML = require('yaml');
|
||||
|
||||
const content = YAML.parse(fs.readFileSync(path.join(__dirname, '../src/pages/_data/changelog.yml'), 'utf8')).reverse()
|
||||
let readme = `# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.\n`
|
||||
|
||||
content.forEach((change) => {
|
||||
readme += `\n\n## \`${change.version}\` - ${change.date}\n\n`
|
||||
|
||||
if (change.description) {
|
||||
readme += `**${change.description}**\n\n`
|
||||
}
|
||||
|
||||
change.changes.forEach((line) => {
|
||||
readme += `- ${line}\n`
|
||||
})
|
||||
|
||||
console.log(change.version);
|
||||
})
|
||||
|
||||
fs.writeFileSync(path.join(__dirname, '../CHANGELOG.md'), readme)
|
||||
58
.build/download-images.js
Normal file
58
.build/download-images.js
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
const YAML = require('yaml')
|
||||
const fs = require('node:fs')
|
||||
const path = require('node:path')
|
||||
const request = require('request')
|
||||
const filePath = path.join(__dirname, '../src/pages/_data/photos.yml')
|
||||
|
||||
const photos = YAML.parse(fs.readFileSync(filePath, 'utf8'))
|
||||
|
||||
const urlTitle = (str) => {
|
||||
str = str
|
||||
.toLowerCase()
|
||||
.replaceAll('&', 'and')
|
||||
.replace(/[^[a-z0-9-]/g, '-')
|
||||
.replace(/-+/g, '-')
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
const download = function(uri, filename, callback, error) {
|
||||
request.head(uri, function(err, res, body) {
|
||||
request(uri).pipe(fs.createWriteStream(filename))
|
||||
.on('close', callback)
|
||||
.on('error', error)
|
||||
})
|
||||
}
|
||||
|
||||
async function downloadPhotos() {
|
||||
for (const key in photos) {
|
||||
const photo = photos[key]
|
||||
|
||||
let filename, i = 1;
|
||||
|
||||
do {
|
||||
filename = `${urlTitle(photo['title'])}${i > 1 ? `-${i}` : ''}.jpg`
|
||||
i++
|
||||
} while (fs.existsSync(path.join(__dirname, `../src/static/photos/${filename}`)))
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
download(photo['path'], path.join(__dirname, `../src/static/photos/${filename}`), function(){
|
||||
resolve()
|
||||
}, function() {
|
||||
reject()
|
||||
});
|
||||
})
|
||||
|
||||
photos[key]['file'] = filename
|
||||
photos[key]['horizontal'] = photo['width'] > photo['height']
|
||||
}
|
||||
|
||||
fs.writeFileSync(filePath, YAML.stringify(photos))
|
||||
}
|
||||
|
||||
downloadPhotos();
|
||||
|
||||
37
.build/import-icons.js
Normal file
37
.build/import-icons.js
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
const fs = require('fs'),
|
||||
path = require('path');
|
||||
|
||||
const iconsTags = require('../node_modules/@tabler/icons/icons.json'),
|
||||
iconsPkg = require('../node_modules/@tabler/icons/package.json');
|
||||
|
||||
const prepareSvgFile = (svg) => {
|
||||
return svg.replace(/\n/g, '').replace(/>\s+</g, '><').replace(/\s+/g, ' ')
|
||||
}
|
||||
|
||||
let svgList = {}
|
||||
for (let iconName in iconsTags) {
|
||||
let iconData = iconsTags[iconName]
|
||||
svgList[iconName] = {
|
||||
name: iconName,
|
||||
svg: {
|
||||
outline: iconData.styles.outline ? prepareSvgFile(fs.readFileSync(path.join(__dirname, `../node_modules/@tabler/icons/icons/outline/${iconName}.svg`), 'utf8')) : null,
|
||||
filled: iconData.styles.filled ? prepareSvgFile(fs.readFileSync(path.join(__dirname, `../node_modules/@tabler/icons/icons/filled/${iconName}.svg`), 'utf8')) : null,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(__dirname, `../src/pages/_data/icons-info.json`),
|
||||
JSON.stringify({
|
||||
version: iconsPkg.version,
|
||||
count: Object.values(svgList).reduce((acc, icon) => {
|
||||
return acc + (icon.svg.outline ? 1 : 0) + (icon.svg.filled ? 1 : 0)
|
||||
}, 0)
|
||||
})
|
||||
)
|
||||
|
||||
fs.writeFileSync(path.join(__dirname, `../src/pages/_data/icons.json`), JSON.stringify(svgList))
|
||||
19
.build/import-illustrations.js
Normal file
19
.build/import-illustrations.js
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
const fs = require('fs'),
|
||||
path = require('path'),
|
||||
glob = require('glob');
|
||||
|
||||
const illustrations = glob
|
||||
.sync(path.join(__dirname, `../src/static/illustrations/light/*.png`))
|
||||
.map((file) => {
|
||||
return path.basename(file, '.png')
|
||||
})
|
||||
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(__dirname, `../src/pages/_data/illustrations.json`),
|
||||
JSON.stringify(illustrations)
|
||||
)
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
import { readFileSync, writeFileSync } from 'node:fs';
|
||||
import { join, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { sync } from 'glob';
|
||||
import * as prettier from "prettier";
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const docs = sync(join(__dirname, '..', 'docs', '**', '*.md'))
|
||||
|
||||
async function formatHTML(htmlString) {
|
||||
try {
|
||||
const formattedHtml = await prettier.format(htmlString, {
|
||||
parser: "html",
|
||||
printWidth: 100,
|
||||
});
|
||||
return formattedHtml;
|
||||
} catch (error) {
|
||||
console.error("Error formatting HTML:", error);
|
||||
return htmlString; // Return original in case of an error
|
||||
}
|
||||
}
|
||||
|
||||
async function replaceAsync(str, regex, asyncFn) {
|
||||
const matches = [...str.matchAll(regex)];
|
||||
|
||||
const replacements = await Promise.all(
|
||||
matches.map(async (match) => asyncFn(...match))
|
||||
);
|
||||
|
||||
let result = str;
|
||||
matches.forEach((match, i) => {
|
||||
result = result.replace(match[0], replacements[i]);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
for (const file of docs) {
|
||||
const oldContent = readFileSync(file, 'utf8')
|
||||
|
||||
// get codeblocks from markdown
|
||||
const content = await replaceAsync(oldContent, /(```([a-z0-9]+).*?\n)(.*?)(```)/gs, async (m, m1, m2, m3, m4) => {
|
||||
if (m2 === 'html') {
|
||||
m3 = await formatHTML(m3);
|
||||
|
||||
// remove empty lines
|
||||
m3 = m3.replace(/^\s*[\r\n]/gm, '');
|
||||
|
||||
return m1 + m3.trim() + "\n" + m4;
|
||||
}
|
||||
return m.trim();
|
||||
})
|
||||
|
||||
if (content !== oldContent) {
|
||||
writeFileSync(file, content, 'utf8')
|
||||
console.log(`Reformatted ${file}`)
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import AdmZip from 'adm-zip';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { readFileSync } from 'fs';
|
||||
|
||||
// Get __dirname in ESM
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const pkg = JSON.parse(
|
||||
readFileSync(path.join(__dirname, '../core', 'package.json'), 'utf8')
|
||||
)
|
||||
|
||||
// Create zip instance and add folder
|
||||
const zip = new AdmZip();
|
||||
zip.addLocalFolder(path.join(__dirname, '../preview/dist'), 'dashboard');
|
||||
|
||||
zip.addLocalFile(path.join(__dirname, '../preview/static', 'og.png'), '.', 'preview.png');
|
||||
|
||||
zip.addFile("documentation.url", Buffer.from("[InternetShortcut]\nURL = https://tabler.io/docs"));
|
||||
|
||||
|
||||
// Folder to zip and output path
|
||||
const outputZipPath = path.join(__dirname, '../packages-zip', `tabler-${pkg.version}.zip`);
|
||||
|
||||
// Write the zip file
|
||||
zip.writeZip(outputZipPath);
|
||||
|
||||
console.log(`Zipped folder to ${outputZipPath}`);
|
||||
5
.changeset/afraid-geese-sin.md
Normal file
5
.changeset/afraid-geese-sin.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Change Twitter to X brand
|
||||
5
.changeset/beige-hats-prove.md
Normal file
5
.changeset/beige-hats-prove.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Updated link to icons documentation
|
||||
5
.changeset/blue-pots-trade.md
Normal file
5
.changeset/blue-pots-trade.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Dependencies update
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": minor
|
||||
---
|
||||
|
||||
Add a color palette in the signing component
|
||||
5
.changeset/chilly-mayflies-ring.md
Normal file
5
.changeset/chilly-mayflies-ring.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Initialize Visual Studio Code config
|
||||
5
.changeset/clean-carrots-sort.md
Normal file
5
.changeset/clean-carrots-sort.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Add new `Tag` component
|
||||
@@ -3,18 +3,9 @@
|
||||
"changelog": "@changesets/cli/changelog",
|
||||
"commit": false,
|
||||
"fixed": [],
|
||||
"linked": [
|
||||
[
|
||||
"@tabler/core",
|
||||
"@tabler/preview",
|
||||
"@tabler/docs"
|
||||
]
|
||||
],
|
||||
"access": "public",
|
||||
"baseBranch": "dev",
|
||||
"ignore": [],
|
||||
"privatePackages": {
|
||||
"version": true,
|
||||
"tag": false
|
||||
}
|
||||
"linked": [],
|
||||
"access": "restricted",
|
||||
"baseBranch": "main",
|
||||
"updateInternalDependencies": "patch",
|
||||
"ignore": []
|
||||
}
|
||||
|
||||
5
.changeset/curvy-fishes-lie.md
Normal file
5
.changeset/curvy-fishes-lie.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Add customizable Star Ratings component using `star-rating.js` library
|
||||
5
.changeset/curvy-mails-burn.md
Normal file
5
.changeset/curvy-mails-burn.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Dependencies update
|
||||
5
.changeset/dirty-ravens-greet.md
Normal file
5
.changeset/dirty-ravens-greet.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update TinyMCE to v7.0
|
||||
5
.changeset/dull-kiwis-notice.md
Normal file
5
.changeset/dull-kiwis-notice.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix text color in dark version of navbar
|
||||
5
.changeset/eight-pumas-fry.md
Normal file
5
.changeset/eight-pumas-fry.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.21 with 18 new icons added
|
||||
5
.changeset/eleven-flies-sing.md
Normal file
5
.changeset/eleven-flies-sing.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Init changelog script
|
||||
5
.changeset/flags.md
Normal file
5
.changeset/flags.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Add `flags.html` page with list of all flags
|
||||
5
.changeset/fluffy-insects-lay.md
Normal file
5
.changeset/fluffy-insects-lay.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Adding Two-Step Verification Pages
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix mixed declarations in SCSS
|
||||
5
.changeset/gorgeous-windows-study.md
Normal file
5
.changeset/gorgeous-windows-study.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
|
||||
5
.changeset/great-carrots-lie.md
Normal file
5
.changeset/great-carrots-lie.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Bump pnpm/action-setup from 2 to 3
|
||||
5
.changeset/healthy-bikes-cry.md
Normal file
5
.changeset/healthy-bikes-cry.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
`Dockerfile` fix
|
||||
5
.changeset/heavy-chicken-cover.md
Normal file
5
.changeset/heavy-chicken-cover.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.20 with 37 new icons added
|
||||
5
.changeset/heavy-ladybugs-grab.md
Normal file
5
.changeset/heavy-ladybugs-grab.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add Tabler Illustrations
|
||||
5
.changeset/hip-jobs-double.md
Normal file
5
.changeset/hip-jobs-double.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Adding `alerts.html` page with example of alerts.
|
||||
5
.changeset/itchy-bottles-cheat.md
Normal file
5
.changeset/itchy-bottles-cheat.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Unify size of avatar, flag and payment components
|
||||
5
.changeset/khaki-gorillas-push.md
Normal file
5
.changeset/khaki-gorillas-push.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update icons to v2.42.0
|
||||
5
.changeset/khaki-wasps-provide.md
Normal file
5
.changeset/khaki-wasps-provide.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Bootstrap to v5.3.0
|
||||
5
.changeset/kind-poets-fetch.md
Normal file
5
.changeset/kind-poets-fetch.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Dependencies update
|
||||
5
.changeset/late-zoos-sparkle.md
Normal file
5
.changeset/late-zoos-sparkle.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix `rgba` color values in `_variables.scss`
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Update icons to v3.34.1 (75 new icons)
|
||||
5
.changeset/long-eggs-work.md
Normal file
5
.changeset/long-eggs-work.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Resolve map page issues
|
||||
5
.changeset/lucky-impalas-smash.md
Normal file
5
.changeset/lucky-impalas-smash.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Introduce Docker Compose Config to build and run Ttabler locally
|
||||
5
.changeset/mighty-mirrors-drum.md
Normal file
5
.changeset/mighty-mirrors-drum.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update `_navbar.scss` with disabled dropdown menu items color
|
||||
5
.changeset/modern-dogs-wonder.md
Normal file
5
.changeset/modern-dogs-wonder.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to v3.17.0
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Update activity messages
|
||||
5
.changeset/moody-bobcats-chew.md
Normal file
5
.changeset/moody-bobcats-chew.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update `@tabler/icons` to v3.0
|
||||
5
.changeset/ninety-dancers-doubt.md
Normal file
5
.changeset/ninety-dancers-doubt.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Adding punctuation to `SECURITY.md`
|
||||
5
.changeset/odd-terms-tap.md
Normal file
5
.changeset/odd-terms-tap.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix form controls bugs in dark mode
|
||||
5
.changeset/olive-cars-admire.md
Normal file
5
.changeset/olive-cars-admire.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Change primary color value to new Tabler branding
|
||||
5
.changeset/orange-donuts-cough.md
Normal file
5
.changeset/orange-donuts-cough.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Unified Box Shadows with Bootstrap Compatibility
|
||||
5
.changeset/rare-pumpkins-pull.md
Normal file
5
.changeset/rare-pumpkins-pull.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Unify dark mode with latest Bootstrap API and improve dark mode elements
|
||||
5
.changeset/rare-snails-matter.md
Normal file
5
.changeset/rare-snails-matter.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Bump `pnpm/action-setup` from 3 to 4
|
||||
5
.changeset/red-coins-jump.md
Normal file
5
.changeset/red-coins-jump.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update dependencies
|
||||
5
.changeset/red-vans-doubt.md
Normal file
5
.changeset/red-vans-doubt.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.22 with 18 new icons added
|
||||
5
.changeset/rich-dingos-promise.md
Normal file
5
.changeset/rich-dingos-promise.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add All Contributions package to project for easy contribution tracking
|
||||
5
.changeset/sharp-colts-grab.md
Normal file
5
.changeset/sharp-colts-grab.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Resolved light dropdown issue on dark theme
|
||||
5
.changeset/shiny-dolls-shop.md
Normal file
5
.changeset/shiny-dolls-shop.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
New Chat component
|
||||
5
.changeset/shy-rockets-deliver.md
Normal file
5
.changeset/shy-rockets-deliver.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.19 with 18 new icons added
|
||||
5
.changeset/silver-drinks-yell.md
Normal file
5
.changeset/silver-drinks-yell.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Adjusting form element sizes for enhanced mobile devices compatibility
|
||||
5
.changeset/slimy-queens-pull.md
Normal file
5
.changeset/slimy-queens-pull.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
|
||||
5
.changeset/slow-buses-breathe.md
Normal file
5
.changeset/slow-buses-breathe.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Switch from `npm` to `pnpm` for faster package installation
|
||||
5
.changeset/soft-mangos-tie.md
Normal file
5
.changeset/soft-mangos-tie.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add variable to configure `avatar-list` spacing
|
||||
5
.changeset/sour-pets-raise.md
Normal file
5
.changeset/sour-pets-raise.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add Tabler Illustrations
|
||||
5
.changeset/sour-teachers-collect.md
Normal file
5
.changeset/sour-teachers-collect.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update required Node.js version to 18 and add `.nvmrc` file
|
||||
5
.changeset/spotty-avocados-doubt.md
Normal file
5
.changeset/spotty-avocados-doubt.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix table default background color
|
||||
5
.changeset/stupid-dingos-train.md
Normal file
5
.changeset/stupid-dingos-train.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Avoid SCSS color dependency on `:focus`
|
||||
5
.changeset/tabler-icons.md
Normal file
5
.changeset/tabler-icons.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Updated Tabler Icons to v3.24.0
|
||||
5
.changeset/tasty-boats-work.md
Normal file
5
.changeset/tasty-boats-work.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.18 with 18 new icons added
|
||||
5
.changeset/tender-jars-reply.md
Normal file
5
.changeset/tender-jars-reply.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to v3.14.0
|
||||
5
.changeset/thick-apples-punch.md
Normal file
5
.changeset/thick-apples-punch.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add Prettier to project for consistent code formatting
|
||||
5
.changeset/thick-poems-battle.md
Normal file
5
.changeset/thick-poems-battle.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.25 with 48 new icons added
|
||||
5
.changeset/thin-eagles-mix.md
Normal file
5
.changeset/thin-eagles-mix.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Add new color picker component using `coloris.js` library
|
||||
5
.changeset/thirty-tomatoes-end.md
Normal file
5
.changeset/thirty-tomatoes-end.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Fix responsiveness issue in Settings menu
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/docs": patch
|
||||
---
|
||||
|
||||
Fix Docs search in dark mode
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Fix responsive layputs in 'Form Elements' page
|
||||
5
.changeset/twenty-tables-judge.md
Normal file
5
.changeset/twenty-tables-judge.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add new Filled section to Icons page
|
||||
5
.changeset/unlucky-eels-vanish.md
Normal file
5
.changeset/unlucky-eels-vanish.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Update `bootstrap` to v5.3.1
|
||||
5
.changeset/violet-moles-sparkle.md
Normal file
5
.changeset/violet-moles-sparkle.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": minor
|
||||
---
|
||||
|
||||
Update Tabler Icons to version 2.23 with 18 new icons added
|
||||
5
.changeset/wet-games-float.md
Normal file
5
.changeset/wet-games-float.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Add support for changeset tool for more efficient and organized code changes
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
description: Tabler Project Rules
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
## Documentation Standards
|
||||
|
||||
- Always write documentation in English (not Polish) for technical content
|
||||
- Use clear, descriptive headings with proper hierarchy (##, ###)
|
||||
- Include practical examples with code snippets
|
||||
- Add explanations for each component's purpose and usage
|
||||
- Use consistent formatting for code blocks and examples
|
||||
|
||||
## CSS/SCSS Guidelines
|
||||
|
||||
- Follow Tabler's CSS custom properties pattern: `--#{$prefix}component-property`
|
||||
- Use semantic class names that describe purpose, not appearance
|
||||
- Maintain consistent spacing and indentation in SCSS files
|
||||
- Group related styles together with clear comments
|
||||
- Use Bootstrap-compatible class naming conventions
|
||||
|
||||
## Component Documentation Structure
|
||||
|
||||
- Start with a brief description of the component's purpose
|
||||
- Show basic usage examples first
|
||||
- Include variations and modifiers
|
||||
- Add accessibility considerations where relevant
|
||||
- Provide code examples that are copy-paste ready
|
||||
|
||||
## File Organization
|
||||
|
||||
- Keep documentation files in `docs/content/ui/components/`
|
||||
- Use consistent naming: lowercase with hyphens
|
||||
- Include frontmatter with title, summary, and description
|
||||
- Link to Bootstrap documentation when relevant
|
||||
|
||||
## Code Examples
|
||||
|
||||
- Use Liquid templating syntax for dynamic examples
|
||||
- Include both HTML and rendered output
|
||||
- Show responsive behavior where applicable
|
||||
- Demonstrate proper accessibility attributes
|
||||
|
||||
## Git Commit Messages
|
||||
|
||||
- Use English for commit messages
|
||||
- Follow conventional commit format when possible
|
||||
- Be descriptive about what was changed and why
|
||||
|
||||
## Project-Specific Conventions
|
||||
|
||||
- Tabler uses Bootstrap 5 as a foundation
|
||||
- Custom components extend Bootstrap functionality
|
||||
- Documentation should be comprehensive but concise
|
||||
- Examples should be practical and immediately usable
|
||||
67
.github/workflows/argos.yml
vendored
67
.github/workflows/argos.yml
vendored
@@ -1,67 +0,0 @@
|
||||
name: Argos Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
pull_request:
|
||||
paths:
|
||||
- 'preview/**/*.js'
|
||||
- 'preview/**/*.html'
|
||||
- 'preview/**/*.scss'
|
||||
- 'core/**/*.js'
|
||||
- 'core/**/*.scss'
|
||||
|
||||
env:
|
||||
NODE: 20
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
test:
|
||||
timeout-minutes: 60
|
||||
runs-on: ubuntu-latest
|
||||
# if: github.event.pull_request.draft == false
|
||||
if: false
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-turbo-
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "${{ env.NODE }}"
|
||||
|
||||
- name: Install PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Get installed Playwright version
|
||||
id: playwright-version
|
||||
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache playwright binaries
|
||||
uses: actions/cache@v4
|
||||
id: playwright-cache
|
||||
with:
|
||||
path: |
|
||||
~/.cache/ms-playwright
|
||||
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
|
||||
|
||||
- name: Install pnpm dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Install Playwright Browsers
|
||||
run: pnpm exec playwright install --with-deps
|
||||
if: steps.playwright-cache.outputs.cache-hit != 'true'
|
||||
|
||||
- name: Run Playwright tests
|
||||
run: pnpm run playwright
|
||||
15
.github/workflows/bundlewatch.yml
vendored
15
.github/workflows/bundlewatch.yml
vendored
@@ -9,7 +9,7 @@ on:
|
||||
|
||||
env:
|
||||
FORCE_COLOR: 2
|
||||
NODE: 20
|
||||
NODE: 18
|
||||
|
||||
jobs:
|
||||
bundlewatch:
|
||||
@@ -19,14 +19,6 @@ jobs:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-turbo-
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
@@ -34,6 +26,8 @@ jobs:
|
||||
|
||||
- name: Install PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: Set up Bundler
|
||||
uses: ruby/setup-ruby@v1
|
||||
@@ -44,6 +38,9 @@ jobs:
|
||||
- name: Install pnpm dependencies
|
||||
run: pnpm install --no-frozen-lockfile
|
||||
|
||||
- name: Run build
|
||||
run: pnpm run build
|
||||
|
||||
- name: Run bundlewatch
|
||||
run: pnpm run bundlewatch
|
||||
env:
|
||||
|
||||
10
.github/workflows/lockfiles.yaml
vendored
10
.github/workflows/lockfiles.yaml
vendored
@@ -1,7 +1,6 @@
|
||||
name: Changed lock files
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened]
|
||||
pull_request: null
|
||||
|
||||
permissions:
|
||||
pull-requests: read
|
||||
@@ -13,9 +12,10 @@ jobs:
|
||||
steps:
|
||||
- name: Clone Tabler
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Prevent lock file change
|
||||
uses: xalvarez/prevent-file-change-action@v2
|
||||
uses: xalvarez/prevent-file-change-action@v1
|
||||
with:
|
||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
pattern: Gemfile.lock|pnpm-lock.json|pnpm-lock.yaml
|
||||
trustedAuthors: codecalm, BG-Software-BG, dependabot
|
||||
pattern: Gemfile.lock|pnpm-lock.json
|
||||
trustedAuthors: codecalm, dependabot
|
||||
|
||||
63
.github/workflows/release-beta.yml
vendored
Normal file
63
.github/workflows/release-beta.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
name: Pre-release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- beta
|
||||
- dev-changesets
|
||||
|
||||
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: PR or Release
|
||||
if: ${{ github.repository_owner == 'tabler' }}
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
bundler-cache: true
|
||||
|
||||
- name: Enable corepack
|
||||
run: corepack enable pnpm
|
||||
|
||||
- name: Setup Node.js 18
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
cache: 'pnpm'
|
||||
node-version: 18
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Install Dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Build Package
|
||||
run: pnpm run build
|
||||
|
||||
- name: Enable Pre-release
|
||||
run: pnpm changeset pre enter beta
|
||||
|
||||
- name: Creating .npmrc
|
||||
run: |
|
||||
cat << EOF > "$HOME/.npmrc"
|
||||
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
||||
EOF
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Create Release Pull Request
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
# Note: pnpm install after versioning is necessary to refresh lockfile
|
||||
version: pnpm run version
|
||||
publish: pnpm release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NPM_CONFIG_PROVENANCE: true
|
||||
40
.github/workflows/release.yml
vendored
40
.github/workflows/release.yml
vendored
@@ -3,7 +3,7 @@ name: Release
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
- main
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -15,36 +15,42 @@ jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write # to create release
|
||||
issues: write # to post issue comments
|
||||
pull-requests: write # to create pull request
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
bundler-cache: true
|
||||
|
||||
- name: Enable corepack
|
||||
run: corepack enable pnpm
|
||||
|
||||
- name: Setup Node.js 18
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
cache: 'pnpm'
|
||||
node-version: 18
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Install Dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Build
|
||||
- name: Build Package
|
||||
run: pnpm run build
|
||||
|
||||
- name: Create release Pull Request or publish to NPM
|
||||
- name: Creating .npmrc
|
||||
run: |
|
||||
cat << EOF > "$HOME/.npmrc"
|
||||
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
||||
EOF
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Create Release Pull Request
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
version: pnpm run version
|
||||
publish: pnpm run publish
|
||||
commit: "chore: update versions"
|
||||
title: "chore: update versions"
|
||||
publish: pnpm release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
22
.github/workflows/test.yml
vendored
22
.github/workflows/test.yml
vendored
@@ -1,10 +1,11 @@
|
||||
name: Test build
|
||||
|
||||
on:
|
||||
pull_request: null
|
||||
pull_request:
|
||||
types: [ opened, reopened ]
|
||||
|
||||
env:
|
||||
NODE: 20
|
||||
NODE: 18
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -16,14 +17,6 @@ jobs:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache turbo build setup
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .turbo
|
||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-turbo-
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
@@ -31,7 +24,16 @@ jobs:
|
||||
|
||||
- name: Install PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3.2
|
||||
bundler-cache: true
|
||||
|
||||
- run: ruby --version
|
||||
- run: node --version
|
||||
|
||||
- name: Install pnpm dependencies
|
||||
|
||||
14
.gitignore
vendored
14
.gitignore
vendored
@@ -19,21 +19,17 @@ node_modules/
|
||||
/svg-tmp/
|
||||
/components/
|
||||
/percy.sh
|
||||
/preview/pages/playground.html
|
||||
/preview/pages/screenshot.html
|
||||
/preview/pages/screenshot-*.html
|
||||
/preview/pages/playground-*.html
|
||||
/preview/pages/features.html
|
||||
/src/pages/playground.html
|
||||
/src/pages/playground-*.html
|
||||
/src/pages/features.html
|
||||
vendor/
|
||||
|
||||
.pnp.loader.mjs
|
||||
.pnp.cjs
|
||||
.yarn
|
||||
.next
|
||||
.vercel
|
||||
.turbo
|
||||
package-lock.json
|
||||
|
||||
demo/
|
||||
dist/
|
||||
packages-zip/
|
||||
.env
|
||||
dist/
|
||||
3
.percy.yml
Normal file
3
.percy.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
version: 1
|
||||
snapshot:
|
||||
widths: [1440]
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"bracketSpacing": true,
|
||||
"jsxSingleQuote": false,
|
||||
"printWidth": 320,
|
||||
"printWidth": 240,
|
||||
"proseWrap": "always",
|
||||
"semi": false,
|
||||
"singleQuote": false,
|
||||
|
||||
1
.ruby-version
Normal file
1
.ruby-version
Normal file
@@ -0,0 +1 @@
|
||||
3.2.2
|
||||
16
.vscode/settings.json
vendored
16
.vscode/settings.json
vendored
@@ -1,12 +1,14 @@
|
||||
{
|
||||
"files.exclude": {
|
||||
"**/.git": true,
|
||||
"**/.svn": true,
|
||||
"**/.hg": true,
|
||||
"**/CVS": true,
|
||||
"**/.DS_Store": true,
|
||||
"**/Thumbs.db": true,
|
||||
"**/.idea/": true
|
||||
"**/.git": false,
|
||||
"**/.svn": false,
|
||||
"**/.hg": false,
|
||||
"**/CVS": false,
|
||||
"**/.DS_Store": false,
|
||||
"**/Thumbs.db": false,
|
||||
"**/.idea/": false,
|
||||
"dist": false,
|
||||
"demo": false
|
||||
},
|
||||
"explorerExclude.backup": {}
|
||||
}
|
||||
317
CHANGELOG.md
Normal file
317
CHANGELOG.md
Normal file
@@ -0,0 +1,317 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
|
||||
## `1.0.0-beta20` - 2023-08-24
|
||||
|
||||
- Update `bootstrap` to v5.3.1
|
||||
- Add new `Chat` component
|
||||
- Add new `Tag` component
|
||||
- Add customizable Star Ratings component using `star-rating.js` library
|
||||
- Add new color picker component using `coloris.js` library
|
||||
- Add `alerts.html` page with example of alerts.
|
||||
- Add `flags.html` page with list of all flags
|
||||
- Add Two-Step Verification Pages
|
||||
- Add variable to configure `avatar-list` spacing
|
||||
- Unify dark mode with latest Bootstrap API and improve dark mode elements
|
||||
- Unify Box Shadows with Bootstrap Compatibility
|
||||
- Avoid SCSS color dependency on `:focus`
|
||||
- Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
|
||||
- Fix text color in dark version of navbar
|
||||
- Adjusting form element sizes for enhanced mobile devices compatibility
|
||||
- Resolved light dropdown issue on dark theme
|
||||
- Update Tabler Icons to version 2.32 with 48 new icons added
|
||||
- Fix table default background color
|
||||
- Fix responsiveness issue in Settings menu
|
||||
- Update required Node.js version to 18 and add `.nvmrc` file
|
||||
- Add support for changeset tool for more efficient and organized code changes
|
||||
- `Dockerfile` fix
|
||||
- Switch from `npm` to `pnpm` for faster package installation
|
||||
|
||||
|
||||
## `1.0.0-beta19` - 2023-05-15
|
||||
|
||||
- Add customizable Star Ratings component using `star-rating.js` library (#1571)
|
||||
- Add new "Filled" section to Icons page (#1574)
|
||||
- Fix form controls bugs in dark mode (#1573)
|
||||
- Fix text color in dark version of navbar (#1569)
|
||||
- Changelog update
|
||||
|
||||
|
||||
## `1.0.0-beta18` - 2023-05-14
|
||||
|
||||
- new page: Cookie banner
|
||||
- Unify dark mode with latest Bootstrap API and improve dark mode elements (#1561)
|
||||
- Update Tabler Icons to version 2.18 with 18 new icons added (#1560)
|
||||
- Switch from `npm` to `pnpm` for faster package installation (#1559)
|
||||
- Add Prettier to project for consistent code formatting (#1558)
|
||||
- Update required Node.js version to 18 and add `.nvmrc` file (#1555)
|
||||
- Add All Contributions package to project for easy contribution tracking (#1556)
|
||||
- Add support for changeset tool for more efficient and organized code changes (#1553)
|
||||
- Fix bug where `border-1`, `border-2`, etc don't work (#1526)
|
||||
- Fix indeterminate input background color (#1536)
|
||||
- Update Bootstrap to `5.3.0-alpha3` (#1543)
|
||||
- `tom-select` dark mode styling fixes
|
||||
- Advanced udage of `tom-select` (#1480)
|
||||
- Fix Dropdown menu in rtl mode (#801)
|
||||
- Fix `tom-select` dropdown will be shaded in table-responsive (#1409)
|
||||
- Remove overflow scroll from body
|
||||
- Fix avatars overlap transparently (#1464)
|
||||
- Fix TinyMCE dropdown icon list transparent (#1426)
|
||||
- Dark mode lite colors improvement
|
||||
- Fix non full width selects (#1392)
|
||||
|
||||
|
||||
## `1.0.0-beta17` - 2023-01-28
|
||||
|
||||
- update `bootstrap` to v5.3.0
|
||||
- update icons to v2.1.2
|
||||
- add 72 new brands, browsers logos update
|
||||
- new `Trial ended` page
|
||||
- new `Page loader` page
|
||||
- new `Profile` page
|
||||
- headings fix
|
||||
- dropdown background color fix
|
||||
- fix rgba conversion bug
|
||||
- fix autofill text color, not matching in dark mode
|
||||
- update license
|
||||
- header html5 tags
|
||||
- add input with appended `<kbd>`
|
||||
- `bootstrap` import fix
|
||||
- font improvements
|
||||
- change `$body-color` to CSS variable
|
||||
- scrollbars improvements
|
||||
- move `@tabler/icons` to `dev-dependencies`
|
||||
- fix #1370: avatar stacked list is not stacked anymore
|
||||
|
||||
|
||||
## `1.0.0-beta16` - 2022-11-12
|
||||
|
||||
- new `Photogrid` page
|
||||
- `Steps` component improvements
|
||||
- fix #1348: Make job listing responsive for smaller devices
|
||||
- fix #1357: buttons group not active
|
||||
- fix #1352: fix deprecation warning
|
||||
- fix #1180: number input with `form-control-sm` looks weird
|
||||
- fix #1328: color input should show different color for inner check symbol on white ellipse
|
||||
- fix #1355 - missing font sizes
|
||||
- update icons to v1.111.0
|
||||
- homepage navbar fix
|
||||
- fix #1262 - `.bg-opacity-xx` class is not functioning properly
|
||||
|
||||
|
||||
## `1.0.0-beta15` - 2022-11-01
|
||||
|
||||
- new `badges` page
|
||||
- `<kbd>` styling
|
||||
- update icons to v1.109.0
|
||||
- `tom-select` border fix
|
||||
- exclude `playgrounds` from build
|
||||
- update jekyll to v4.3.1
|
||||
- fix: facebook color update
|
||||
- navbar aria atributes fixes
|
||||
- fix #808 - `navbar-menu` and `sidebar-menu` has the same `id`
|
||||
- fix #1335 - missing color variables usage in `alert` and `btn-ghost-*`
|
||||
- move border style to CSS variables
|
||||
- add missing forms
|
||||
- `btn-actions` fixes
|
||||
- replace `$text-muted` to css variable
|
||||
|
||||
|
||||
## `1.0.0-beta14` - 2022-10-21
|
||||
|
||||
- fix active items in dark mode
|
||||
- update Jekyll to newest version
|
||||
|
||||
|
||||
## `1.0.0-beta13` - 2022-10-18
|
||||
|
||||
- update Bootstrap to 5.2.1, update dependencies
|
||||
- new `tracking` component
|
||||
- new radio button version of `form-imagecheck`
|
||||
- update icons to v1.105.0
|
||||
- dark mode improvements
|
||||
- corrects the spelling of New Zealand (#1318)
|
||||
- remove `$border-color-dark`
|
||||
- fix #1301 - code snippets in docs look bad in dark mode
|
||||
- fix #1305 - different default link color for dark mode
|
||||
- fix popover background in dark mode
|
||||
- fix button default border color
|
||||
- fix `form-imagecheck` bg in dark mode
|
||||
- navbar logo fix
|
||||
- move card ribbons config to variables
|
||||
- navbar border fix
|
||||
- dark mode active fix
|
||||
- using globalThis instead of window (#1315)
|
||||
- fix #1210 - lastmod not generated for pages in `sitemap.xml`
|
||||
- fix card border in dark mode
|
||||
- fix #895 - background color overwrites background image
|
||||
- fix #1302 - wrong card header in dark mode
|
||||
- fix #1303 - wrong color when hovering over `selectgroup` in dark mode
|
||||
- fix #1308 - bad coloring in table in dark mode
|
||||
- fix #1273 - datepicker background color broken
|
||||
- fix `$prefix` hard coded `layout/_dark.scss`
|
||||
- fix #1275 - remove last border-right on progress bar
|
||||
- fix #1261 - broken offcanvas bg
|
||||
|
||||
|
||||
## `1.0.0-beta12` - 2022-09-19
|
||||
|
||||
- new "Job listing" page
|
||||
- new "Sign in with cover" page
|
||||
- new "Logs" page
|
||||
- new `progressbg` component
|
||||
- add a lot of CSS variables
|
||||
- add Dockerfile with alpine base
|
||||
- add icon pulse/tada/rotate animations
|
||||
- use `:host` in selectors to support Web Components
|
||||
- use dark table variant colors in dark mode (#1200)
|
||||
- update Tabler Icons to v1.96
|
||||
- change `space-y` component
|
||||
- headings, shadows and borders unify
|
||||
- toggle TinyMCE dark mode and skin based on the set Tabler theme
|
||||
- fix `card-footer` background
|
||||
- fix headers weight
|
||||
- fix transparent hover background in pagination
|
||||
- fix dark mode card text color
|
||||
- fix `--#{$prefix}card-bg` is undefined
|
||||
- fix global variable for `.card` and `.btn`
|
||||
- fix code sample in the customize tabler docs
|
||||
- fix form elements demo page radio buttons
|
||||
- replace `gulp-minify` with `gulp-terser`
|
||||
|
||||
|
||||
## `1.0.0-beta11` - 2022-07-05
|
||||
|
||||
- new `Dropzone` component
|
||||
- new `Lightbox` component
|
||||
- new `TinyMCS` component
|
||||
- new `Inline Player` component
|
||||
- new `Pricing table` component
|
||||
- new `Datagrid` component
|
||||
- new optgroup form examples
|
||||
- new settings page
|
||||
- update Tabler Icons to v1.78
|
||||
- added popover docs page
|
||||
- fix: #1125 incorrect chart display in the mobile version
|
||||
- update Bootstrap to 5.2.0
|
||||
|
||||
|
||||
## `1.0.0-beta10` - 2022-04-29
|
||||
|
||||
- new `datatable` component
|
||||
- update Tabler Icons to v1.67
|
||||
- fix: #1024 - fix Tom-select in dark mode
|
||||
- new carousel indicators: dots, vertical, thumbs (#1101)
|
||||
- replace !important modifier with more specific selectors (#1100)
|
||||
- new `FAQ` page
|
||||
|
||||
|
||||
## `1.0.0-beta9` - 2022-02-26
|
||||
|
||||
- fix: #1061 - list group item colors in light and dark modes
|
||||
- new `tasks` dashboard
|
||||
- fix: #1059 - upload button in form element in dark view has problem
|
||||
- fix: #1052 - card background icon is practically invisible
|
||||
- remove Inter font and use default font system stack
|
||||
- fix: #1018 - vector map not working
|
||||
- fix: #1035 - wrong background color of hovered list group items in dark mode
|
||||
- dependencies update
|
||||
- add `font-display: swap;` to improve font loading
|
||||
- new `Boxed` layout
|
||||
|
||||
|
||||
## `1.0.0-beta8` - 2022-02-05
|
||||
|
||||
- update dependencies
|
||||
- new vector maps demos
|
||||
- fixes update map on resize
|
||||
- docs improvement
|
||||
- replace `badge` with `status-dot` in `navbar-notifications.html`
|
||||
- map tooltip fixes
|
||||
|
||||
|
||||
## `1.0.0-beta7` - 2022-02-05
|
||||
|
||||
- fix: #1019 - project-overview.html link not working
|
||||
- fix: #1010 - card with bottom tabs has incorrect border radius
|
||||
- uptime monitor mobile fixes
|
||||
- navbar dark button fix
|
||||
- `tabler-icons` link
|
||||
- autoloading webfonts
|
||||
- cards fixes, new cards demos
|
||||
- ruby dependencies update
|
||||
- RTL stylesheet fixes
|
||||
- new card action demos
|
||||
|
||||
|
||||
## `1.0.0-beta6` - 2022-01-18
|
||||
|
||||
- pricing cards fix
|
||||
- fix bug `fw-...`, `.fs-...` is missed (#987)
|
||||
- avatar class fix
|
||||
- fix bug #903 `litepicker` with date range not having correct border
|
||||
- page wrapper fix
|
||||
- fix #900 `is-invalid-lite` class is not working under `was-validated` form class
|
||||
- update `@tabler/icons` to version 1.48
|
||||
- fix #960 - Badges not honoring font sizes
|
||||
- fix #959 - `node-sass` does not properly compile nested media queries
|
||||
- update package dependencies to newest version
|
||||
|
||||
|
||||
## `1.0.0-beta5` - 2021-12-07
|
||||
|
||||
**Tabler has finally lived to see dark mode! 🌝🌚**
|
||||
|
||||
- **Dark mode enabled!**
|
||||
- add more cursors (#947)
|
||||
- fix #892 - media queries need to be nested when negating
|
||||
- update `@tabler/icons` to newest version
|
||||
- move optional dependencies to peerDependencies (#924)
|
||||
- move deployment to Github Actions (#934)
|
||||
- table border fixes
|
||||
- antialiased fix
|
||||
- update `@tabler/icons` to version 1.42
|
||||
- change default font to 'Inter'
|
||||
- colors unify
|
||||
- add `tom-select` and remove `choices.js`
|
||||
|
||||
|
||||
## `1.0.0-beta4` - 2021-10-24
|
||||
|
||||
- upgrade required node.js version to 14
|
||||
- upgrade Bootstrap to 5.1
|
||||
- upgrade dependencies
|
||||
- fix #775 - litepicker not initializing
|
||||
- fix `nouislider` import in dev
|
||||
|
||||
|
||||
## `1.0.0-beta3` - 2021-05-08
|
||||
|
||||
- upgrade Bootstrap to 5.0
|
||||
- upgrade dependencies
|
||||
- change `$border-radius-pill` variable
|
||||
- badge vertical align fix
|
||||
|
||||
|
||||
## `1.0.0-beta2` - 2021-03-29
|
||||
|
||||
- update dependencies
|
||||
- `li` marker fix
|
||||
- page wrapper, nav fixes
|
||||
- scripts optimize, remove `capture_once`
|
||||
- `page-body` fixes
|
||||
- layout navbar fix
|
||||
- typography fix
|
||||
- ribbon fix
|
||||
- charts label fixes
|
||||
- charts docs
|
||||
|
||||
|
||||
## `1.0.0-beta` - 2021-02-17
|
||||
|
||||
**Initial beta release of Tabler v1.0! Lots more coming soon though 😁**
|
||||
|
||||
- update Bootstrap to 5.0.0-beta2
|
||||
- update other dependencies.
|
||||
@@ -3,6 +3,8 @@ FROM ruby:3.2-alpine
|
||||
WORKDIR /app
|
||||
ADD _config.yml /app/
|
||||
ADD _config_prod.yml /app/
|
||||
ADD Gemfile /app/
|
||||
ADD Gemfile.lock /app/
|
||||
ADD package.json /app/
|
||||
ADD pnpm-lock.yaml /app/
|
||||
ADD gulpfile.js /app/
|
||||
@@ -11,10 +13,11 @@ RUN apk add --virtual build-dependencies build-base npm
|
||||
RUN apk upgrade
|
||||
RUN npm i -g pnpm
|
||||
RUN pnpm install
|
||||
RUN bundle config --global silence_root_warning 1 && bundler install --verbose
|
||||
|
||||
# website
|
||||
EXPOSE 3000
|
||||
# website management (browser auto reload)
|
||||
EXPOSE 3001
|
||||
# run tabler
|
||||
ENTRYPOINT [ "pnpm", "run", "start" ]
|
||||
ENTRYPOINT [ "pnpm", "run", "start-plugins" ]
|
||||
|
||||
14
Gemfile
Normal file
14
Gemfile
Normal file
@@ -0,0 +1,14 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "jekyll", "4.3.3"
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-random"
|
||||
gem "jekyll-tidy"
|
||||
gem "jekyll-timeago"
|
||||
gem 'jekyll-redirect-from'
|
||||
end
|
||||
|
||||
gem 'wdm', '>= 0.1.1' if Gem.win_platform?
|
||||
|
||||
|
||||
92
Gemfile.lock
Normal file
92
Gemfile.lock
Normal file
@@ -0,0 +1,92 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
bigdecimal (3.1.8)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.2.3)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.16.3)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (4.27.5)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
htmlbeautifier (1.4.2)
|
||||
htmlcompressor (0.4.0)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-random (0.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-redirect-from (0.16.0)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-tidy (0.2.2)
|
||||
htmlbeautifier
|
||||
htmlcompressor
|
||||
jekyll
|
||||
jekyll-timeago (0.15.0)
|
||||
mini_i18n (>= 0.8.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
mini_i18n (0.9.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.5)
|
||||
rake (13.2.1)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.3.9)
|
||||
rouge (4.2.1)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.75.0)
|
||||
google-protobuf (>= 3.25, < 5.0)
|
||||
rake (>= 13.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (= 4.3.3)
|
||||
jekyll-random
|
||||
jekyll-redirect-from
|
||||
jekyll-tidy
|
||||
jekyll-timeago
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.19
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018-2025 The Tabler Authors
|
||||
Copyright (c) 2018-2023 The Tabler Authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
230
README.md
230
README.md
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/shared/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
|
||||
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
|
||||
A premium and open source dashboard template with a responsive and high-quality UI.
|
||||
</p>
|
||||
|
||||
@@ -13,39 +13,19 @@ A premium and open source dashboard template with a responsive and high-quality
|
||||
<a href="https://github.com/tabler/tabler" target="__blank"><img alt="GitHub stars" src="https://img.shields.io/github/stars/tabler/tabler?style=social"></a>
|
||||
</p>
|
||||
|
||||
## Sponsors
|
||||
|
||||
**If you want to support our project and help us grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/sponsors/codecalm">
|
||||
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
|
||||
</a>
|
||||
<a href="https://github.com/sponsors/codecalm">
|
||||
<img src='https://raw.githubusercontent.com/tabler/static/main/sponsors.svg'>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Testing
|
||||
|
||||
<p align="center">Browser testing via:</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.lambdatest.com/" target="_blank">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/14dd2a0a-bafe-436e-a6cb-29636278c781">
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83">
|
||||
<img src="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83" alt="labmdatest" width="296">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 🔎 Preview
|
||||
|
||||
Tabler is fully responsive and compatible with all modern browsers. Thanks to its modern and user-friendly design you can create a fully functional interface that users will love! Choose the layouts and components you need and customize them to make your design consistent and eye-catching. Every component has been created with attention to detail to make your interface beautiful! <a href="https://preview.tabler.io">Show me a demo</a>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io" target="_blank">
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview.png" alt="Tabler Preview">
|
||||
</a>
|
||||
</p>
|
||||
<a href="https://preview.tabler.io" target="_blank"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/static/tabler-preview.png" alt="Tabler preview"></a>
|
||||
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
@@ -56,30 +36,126 @@ We've created this admin panel for everyone who wants to create templates based
|
||||
* **HTML5 & CSS3:** We use only modern web technologies, such as HTML5 and CSS3. Our theme includes some subtle CSS3 animations, which will help you attract attention.
|
||||
* **Clean Code:** We followed Bootstrap’s guidelines carefully to make your integration as easy as possible. All code is handwritten and W3C valid.
|
||||
* **Demo pages**: Tabler features over 20 individual pages using various components, which gives you the freedom to choose and combine. All components can vary in color and styling that you can easily modify using Sass. Sky is the limit!
|
||||
* **Single Page Application versions:** [Tabler React](https://github.com/tabler/tabler-react) has React components for Tabler.
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
The documentation is available at https://docs.tabler.io/
|
||||
Documentation is available as a part of Tabler preview: https://tabler.io/docs/
|
||||
|
||||
To run the documentation site locally, follow instructions in the [Documentation README](https://github.com/tabler/tabler/blob/dev/site/README.md).
|
||||
|
||||
## 🪴 Project Activity
|
||||
|
||||
<p align="center">
|
||||
<img src="https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg" alt="Repobeats analytics image" />
|
||||
</p>
|
||||

|
||||
|
||||
## 💕 Sponsor Tabler
|
||||
|
||||
<a href="https://github.com/sponsors/codecalm" target="_blank"><img src="/src/static/sponsor-banner-readme.png?raw=true" alt="Sponsor Tabler" /></a>
|
||||
|
||||
|
||||
### Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. [Become a sponsor!](https://opencollective.com/tabler#sponsor)
|
||||
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/0/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/0/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/1/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/1/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/2/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/2/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/3/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/3/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/4/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/4/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/5/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/5/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/6/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/6/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/7/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/7/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/8/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/8/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/tabler/tiers/sponsor/9/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/9/avatar.svg" /></a>
|
||||
|
||||
|
||||
## 📦 Setup environment
|
||||
|
||||
To use our build system and run our documentation locally, you'll need a copy of Tabler's source files. Follow the steps below:
|
||||
|
||||
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
|
||||
2. Navigate to the root `/tabler` directory and run `pnpm install` to install our local dependencies listed in `package.json`.
|
||||
3. [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) - the recommended version is [2.7.6](https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.6.tar.gz).
|
||||
4. [Install Bundler](https://bundler.io) with `gem install bundler` and finally run `bundle install`. It will install all Ruby dependencies, such as [Jekyll and plugins](https://jekyllrb.com).
|
||||
|
||||
**OSX users**:
|
||||
|
||||
1. NPM ```pnpm install```
|
||||
2. install Ruby (2.5.* recommended)
|
||||
```brew install ruby @2.5```
|
||||
3. install bundler
|
||||
```gem install bundler```
|
||||
4. install
|
||||
```bundle install```
|
||||
- if bundler get any errors try
|
||||
```
|
||||
sudo rm -rf /Library/Developer/CommandLineTools
|
||||
sudo xcode-select --install
|
||||
```
|
||||
5. Run NPM
|
||||
```npm run start```
|
||||
|
||||
|
||||
**Windows users**:
|
||||
|
||||
1. [Install Git](https://git-scm.com/download/win) in `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
|
||||
2. [Install Ruby+Devkit](https://rubyinstaller.org/downloads/) - the recommended version is [2.7.6](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-devkit-2.7.6-1-x64.exe).
|
||||
3. [Read guide](https://jekyllrb.com/docs/installation/windows/) to get Jekyll up and running without problems.
|
||||
|
||||
Once you complete the setup, you'll be able to run the various commands provided from the command line.
|
||||
|
||||
|
||||
## Build locally
|
||||
|
||||
You need to have `pnpm` and `bundler` installed.
|
||||
|
||||
1. From the root `/tabler` directory, run installation in the command line:
|
||||
- `pnpm install`
|
||||
- `bundler install`
|
||||
2. Then execute `pnpm run start-plugins` to start up the application stack.
|
||||
3. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
|
||||
4. Any change in the `/src` directory will build the application and refresh the page.
|
||||
|
||||
**Note**:
|
||||
Run `pnpm run build` for reforms a one off build application without refresh.
|
||||
Open [http://localhost:3001](http://localhost:3001) to configure the Web server.
|
||||
|
||||
## Installation
|
||||
|
||||
### Package Managers
|
||||
|
||||
Tabler is distributed via npm. You can install it with this or your preferred JavaScript package manager:
|
||||
Tabler is distributed via npm.
|
||||
|
||||
```sh
|
||||
npm install --save @tabler/core
|
||||
```
|
||||
|
||||
## Running with Docker
|
||||
|
||||
**Plain Docker**
|
||||
|
||||
If you don't want to install node/npm/ruby and the dependencies on your local environment, you can use the provided Dockerfile to build a docker image.
|
||||
This Dockerfile is provided as an example to spin-up a container running Tabler.
|
||||
|
||||
Example of how to use this image:
|
||||
|
||||
1. Build the tabler image : `docker build -t tabler .`
|
||||
2. Run the tabler image while mounting the `src` directory as well as the `_config.yml` file into the container.
|
||||
|
||||
Don't forget to expose the port 3000 so you can browse the website locally.
|
||||
You can also expose the port 3001 to have access to BrowserSync
|
||||
|
||||
```sh
|
||||
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src -v $(pwd)/_config.yml:/app/_config.yml tabler
|
||||
```
|
||||
|
||||
Now open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
|
||||
|
||||
**Docker Compose**
|
||||
|
||||
You can also use the docker compose config from this repo. Use `docker compose build && docker compose up` or `docker compose up --build` to build and start the container. Edit anything in the `src/` folder the same way as with plain docker and access the same URLs and ports in your browser.
|
||||
|
||||
### CDN support
|
||||
|
||||
All files included in `@tabler/core` npm package are also available over a CDN.
|
||||
All files included in `@tabler/core` npm package are available over a CDN.
|
||||
|
||||
#### Javascript
|
||||
|
||||
@@ -93,84 +169,24 @@ All files included in `@tabler/core` npm package are also available over a CDN.
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css">
|
||||
```
|
||||
|
||||
## Building locally
|
||||
## Feature requests
|
||||
|
||||
To build a copy of Tabler locally, you have two options. You can either set up your device directly with the development tools required to build Tabler, or if you would prefer not to install all the development dependencies directly onto your device, you can use a Dockerfile that Tabler provides to build a docker image. Instructions follow below.
|
||||
https://tabler.canny.io/feature-requests
|
||||
|
||||
### First steps: Downloading the Tabler source files
|
||||
|
||||
With either method, the first thing you'll want to do is download a copy of the Tabler source files to your device.
|
||||
|
||||
#### From the Tabler GitHub releases page
|
||||
|
||||
If you don't want to edit the source code once you've downloaded it, and aren't interested in merging future project updates into your copy, you can just download the source files straight from the [Tabler releases on GitHub](https://github.com/tabler/tabler/releases) and extract the contents to a directory called `tabler`.
|
||||
|
||||
#### Cloning with Git
|
||||
|
||||
If you **do** wish to edit the source code after downloading it, for example to contribute changes back to the Tabler project, you'll want to do this by cloning it with Git:
|
||||
1. If you don't have Git installed on your device, download and install it. You can find instructions at [https://git-scm.com/downloads](https://git-scm.com/downloads).
|
||||
2. (Optional) **Windows users:** you could optionally install Git in the `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
|
||||
3. Clone the Tabler project into a folder on your device. Instructions can be found at [cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
|
||||
|
||||
### Installing and running development tools directly
|
||||
|
||||
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
|
||||
2. [Install pnpm](https://pnpm.io/installation) (We recommend either by [Using Corepack](https://pnpm.io/installation#using-corepack) or by [Using npm](https://pnpm.io/installation#using-npm))
|
||||
3. From the root `/tabler` directory where you downloaded the Tabler source files, run installation on the command line:
|
||||
```sh
|
||||
pnpm install
|
||||
```
|
||||
4. Then execute the following to start up the application stack:
|
||||
```sh
|
||||
pnpm run start
|
||||
```
|
||||
5. Open [http://localhost:3000](http://localhost:3000) to view the preview website in your browser, or [http://localhost:3010](http://localhost:3010) to view the documentation website - and voilà.
|
||||
Changes to most of the source files of Tabler core, preview and docs will rebuild the application and refresh the page.
|
||||
|
||||
**Note**:
|
||||
If you wish to perform a one-off build without auto-refresh on any changes, you can run:
|
||||
```sh
|
||||
pnpm run build
|
||||
```
|
||||
You can open [http://localhost:3001](http://localhost:3001) to configure the Web server.
|
||||
|
||||
|
||||
### Installing and running development tools with Docker
|
||||
|
||||
**Plain Docker**
|
||||
|
||||
Here is an example of how to use this image:
|
||||
|
||||
1. From the root `/tabler` directory where you downloaded the Tabler source files, build the tabler image:
|
||||
```sh
|
||||
docker build -t tabler .
|
||||
```
|
||||
2. Run the tabler image. The following command mounts the `src` directory into the container, exposes port 3000 to browse the website locally, and exposes port 3001 to automatically sync changes:
|
||||
```sh
|
||||
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src tabler
|
||||
```
|
||||
3. Open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
|
||||
|
||||
**Docker Compose**
|
||||
|
||||
You can also use the docker compose config from this repo. From the root `/tabler` directory where you downloaded the Tabler source files, use `docker compose build && docker compose up` or `docker compose up --build` to build and start the container. Edit anything in the `src/` folder the same way as with plain docker and access the same URLs and ports in your browser.
|
||||
|
||||
## Bugs and feature requests
|
||||
|
||||
Found a bug or have a feature request? [Please open a new issue](https://github.com/tabler/tabler/issues/new).
|
||||
|
||||
|
||||
## 🤓 Creators
|
||||
|
||||
**Paweł Kuna**
|
||||
|
||||
- <https://x.com/codecalm>
|
||||
- <https://twitter.com/codecalm>
|
||||
- <https://github.com/codecalm>
|
||||
- <https://codecalm.net>
|
||||
|
||||
**Bartłomiej Gawęda**
|
||||
|
||||
- <https://x.com/B_Gaweda>
|
||||
- <https://github.com/BG-Software-BG>
|
||||
|
||||
## 👨🚀 Contributors
|
||||
|
||||
@@ -178,11 +194,25 @@ This project exists thanks to all the people who contribute.
|
||||
|
||||
<img src="https://opencollective.com/tabler/contributors.svg?width=890&button=false" />
|
||||
|
||||
## Social media
|
||||
## 🌸 Backers
|
||||
|
||||
Stay up to date by joining our community on <a href="https://x.com/tabler_io" >X</a> and <a href="https://www.facebook.com/tabler.io">Facebook</a>
|
||||
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/tabler#backer)
|
||||
|
||||
<a href="https://opencollective.com/tabler#backers" target="_blank"><img src="https://opencollective.com/tabler/tiers/backer.svg?width=890&button=false" /></a>
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
279
_config.yml
Normal file
279
_config.yml
Normal file
@@ -0,0 +1,279 @@
|
||||
source: src/pages
|
||||
destination: tmp
|
||||
|
||||
keep_files:
|
||||
- css
|
||||
- js
|
||||
- img
|
||||
- dist
|
||||
- static
|
||||
- playground.html
|
||||
|
||||
use-iconfont: false
|
||||
rtl: false
|
||||
|
||||
title: Tabler
|
||||
description: Premium and Open Source dashboard template with responsive and high quality UI.
|
||||
theme-color: "#066fd1"
|
||||
|
||||
email: support@tabler.io
|
||||
homepage: https://tabler.io
|
||||
github-url: https://github.com/tabler/tabler
|
||||
github-sponsors-url: https://github.com/sponsors/codecalm
|
||||
changelog-url: https://github.com/tabler/tabler/releases
|
||||
sponsor-url: https://github.com/sponsors/codecalm
|
||||
preview-url: https://tabler.io/demo
|
||||
docs-url: https://tabler.io/docs
|
||||
|
||||
mapbox-key: pk.eyJ1IjoidGFibGVyIiwiYSI6ImNscHh3dnhndjB2M3QycW85bGd0NXRmZ3YifQ.9LfHPsNoEXQH-xzz-81Ffw
|
||||
google-maps-key: AIzaSyAr5mRB4U1KRkVznIrDWEvZjroYcD202DI
|
||||
google-maps-dev-key: AIzaSyCL-BY8-sq12m0S9H-S_yMqDmcun3A9znw
|
||||
npm-package: "@tabler/core"
|
||||
|
||||
random-date-from: "2018-01-01"
|
||||
random-date-to: "2022-01-01"
|
||||
|
||||
debug: false
|
||||
|
||||
layout-dark: false
|
||||
|
||||
plugins:
|
||||
- jekyll-random
|
||||
- jekyll-tidy
|
||||
- jekyll-timeago
|
||||
- jekyll-redirect-from
|
||||
|
||||
tabler-css-plugins:
|
||||
- tabler-flags
|
||||
- tabler-payments
|
||||
- tabler-vendors
|
||||
|
||||
exclude:
|
||||
- .jekyll-cache
|
||||
- redirects.json
|
||||
|
||||
markdown: kramdown
|
||||
kramdown:
|
||||
input: GFM
|
||||
syntax_highlighter: rouge
|
||||
|
||||
jekyll_tidy:
|
||||
compress_html: false
|
||||
ignore_env: development
|
||||
|
||||
collections:
|
||||
- free-illustrations
|
||||
|
||||
defaults:
|
||||
- scope:
|
||||
type: "pages"
|
||||
path: "*.md"
|
||||
values:
|
||||
layout: markdown
|
||||
- scope:
|
||||
type: "pages"
|
||||
values:
|
||||
layout: default
|
||||
|
||||
colors:
|
||||
blue:
|
||||
class: blue
|
||||
hex: '#066fd1'
|
||||
title: Blue
|
||||
azure:
|
||||
class: azure
|
||||
hex: '#45aaf2'
|
||||
title: Azure
|
||||
indigo:
|
||||
class: indigo
|
||||
hex: '#6574cd'
|
||||
title: Indigo
|
||||
purple:
|
||||
class: purple
|
||||
hex: '#a55eea'
|
||||
title: Purple
|
||||
pink:
|
||||
class: pink
|
||||
hex: '#f66d9b'
|
||||
title: Pink
|
||||
red:
|
||||
class: red
|
||||
hex: '#fa4654'
|
||||
title: Red
|
||||
orange:
|
||||
class: orange
|
||||
hex: '#fd9644'
|
||||
title: Orange
|
||||
yellow:
|
||||
class: yellow
|
||||
hex: '#f1c40f'
|
||||
title: Yellow
|
||||
lime:
|
||||
class: lime
|
||||
hex: '#7bd235'
|
||||
title: Lime
|
||||
green:
|
||||
class: green
|
||||
hex: '#5eba00'
|
||||
title: Green
|
||||
teal:
|
||||
class: teal
|
||||
hex: '#2bcbba'
|
||||
title: Teal
|
||||
cyan:
|
||||
class: cyan
|
||||
hex: '#17a2b8'
|
||||
title: Cyan
|
||||
|
||||
skin-colors:
|
||||
rose:
|
||||
hex: '#FFCB9D'
|
||||
title: Rose
|
||||
class: rose
|
||||
yellow:
|
||||
hex: '#F0BA60'
|
||||
title: Yellow
|
||||
class: yellow
|
||||
skin-1:
|
||||
hex: '#e2c6a7'
|
||||
title: Skin 1
|
||||
class: skin-1
|
||||
skin-2:
|
||||
hex: '#c7a786'
|
||||
title: Skin 2
|
||||
class: skin-2
|
||||
skin-3:
|
||||
hex: '#a68063'
|
||||
title: Skin 3
|
||||
class: skin-3
|
||||
skin-4:
|
||||
hex: '#926241'
|
||||
title: Skin 4
|
||||
class: skin-4
|
||||
skin-5:
|
||||
hex: '#654c45'
|
||||
title: Skin 5
|
||||
class: skin-5
|
||||
gray:
|
||||
hex: '#d5d7dd'
|
||||
title: Gray
|
||||
class: gray
|
||||
|
||||
colors-extra:
|
||||
white:
|
||||
hex: '#ffffff'
|
||||
title: White
|
||||
dark:
|
||||
hex: '#303645'
|
||||
title: Dark
|
||||
gray:
|
||||
hex: '#868e96'
|
||||
title: Gray
|
||||
|
||||
variants:
|
||||
- name: success
|
||||
icon: check
|
||||
- name: info
|
||||
icon: info-circle
|
||||
- name: warning
|
||||
icon: alert-triangle
|
||||
- name: danger
|
||||
icon: alert-circle
|
||||
|
||||
theme-colors:
|
||||
primary:
|
||||
class: primary
|
||||
title: Primary
|
||||
secondary:
|
||||
class: secondary
|
||||
title: Secondary
|
||||
success:
|
||||
class: success
|
||||
title: Success
|
||||
warning:
|
||||
class: warning
|
||||
title: Warning
|
||||
danger:
|
||||
class: danger
|
||||
title: Danger
|
||||
info:
|
||||
class: info
|
||||
title: Info
|
||||
dark:
|
||||
class: dark
|
||||
title: Dark
|
||||
light:
|
||||
class: light
|
||||
title: Light
|
||||
|
||||
button-states:
|
||||
- class:
|
||||
title: Normal
|
||||
- class: active
|
||||
title: Active state
|
||||
- class: disabled
|
||||
title: Disabled
|
||||
|
||||
socials:
|
||||
x:
|
||||
icon: brand-x
|
||||
title: X
|
||||
facebook:
|
||||
icon: brand-facebook
|
||||
title: Facebook
|
||||
twitter:
|
||||
icon: brand-twitter
|
||||
title: Twitter
|
||||
google:
|
||||
icon: brand-google
|
||||
title: Google
|
||||
youtube:
|
||||
icon: brand-youtube
|
||||
title: Youtube
|
||||
vimeo:
|
||||
icon: brand-vimeo
|
||||
title: Vimeo
|
||||
dribbble:
|
||||
icon: brand-dribbble
|
||||
title: Dribbble
|
||||
github:
|
||||
icon: brand-github
|
||||
title: Github
|
||||
instagram:
|
||||
icon: brand-instagram
|
||||
title: Instagram
|
||||
pinterest:
|
||||
icon: brand-pinterest
|
||||
title: Pinterest
|
||||
vk:
|
||||
icon: brand-vk
|
||||
title: VK
|
||||
rss:
|
||||
icon: rss
|
||||
title: RSS
|
||||
flickr:
|
||||
icon: brand-flickr
|
||||
title: Flickr
|
||||
bitbucket:
|
||||
icon: brand-bitbucket
|
||||
title: Bitbucket
|
||||
tabler:
|
||||
icon: brand-tabler
|
||||
title: Tabler
|
||||
|
||||
months-short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
||||
months-long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
||||
|
||||
icons:
|
||||
link: https://tabler-icons.io
|
||||
|
||||
emails:
|
||||
price: "$29"
|
||||
count: 54
|
||||
buy_link: https://r.tabler.io/buy-emails
|
||||
|
||||
illustrations:
|
||||
price: "$59"
|
||||
count: 50
|
||||
buy_link: https://r.tabler.io/buy-illustrations
|
||||
|
||||
4
_config_prod.yml
Normal file
4
_config_prod.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
exclude:
|
||||
- redirects.json
|
||||
- playground.html
|
||||
- playground-*.html
|
||||
@@ -1,46 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
import { readFileSync, writeFileSync } from 'node:fs';
|
||||
import { join, dirname, basename } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { sync } from 'glob';
|
||||
import banner from '../../shared/banner/index.mjs';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const styles = sync(join(__dirname, '..', 'dist', 'css', '*.css'))
|
||||
|
||||
const plugins = {
|
||||
'tabler-flags': 'Flags',
|
||||
'tabler-flags.rtl': 'Flags RTL',
|
||||
'tabler-marketing': 'Marketing',
|
||||
'tabler-marketing.rtl': 'Marketing RTL',
|
||||
'tabler-payments': 'Payments',
|
||||
'tabler-payments.rtl': 'Payments RTL',
|
||||
'tabler-socials': 'Socials',
|
||||
'tabler-socials.rtl': 'Socials RTL',
|
||||
'tabler-vendors': 'Vendors',
|
||||
'tabler-vendors.rtl': 'Vendors RTL',
|
||||
}
|
||||
|
||||
styles.forEach((file, i) => {
|
||||
const content = readFileSync(file, 'utf8')
|
||||
const filename = basename(file)
|
||||
const pluginKey = Object.keys(plugins).find(plugin => filename.includes(plugin))
|
||||
const plugin = plugins[pluginKey]
|
||||
const regex = /^(@charset ['"][a-zA-Z0-9-]+['"];?)\n?/i
|
||||
|
||||
let newContent = ''
|
||||
|
||||
if (content.match(regex)) {
|
||||
newContent = content.replace(regex, (m, m1) => {
|
||||
return `${m1}\n${banner(plugin)}\n`
|
||||
})
|
||||
} else {
|
||||
newContent = `${banner(plugin)}\n${content}`
|
||||
}
|
||||
|
||||
writeFileSync(file, newContent, 'utf8')
|
||||
})
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
import { existsSync, mkdirSync, lstatSync } from 'fs'
|
||||
import { emptyDirSync, copySync } from 'fs-extra/esm'
|
||||
import libs from '../libs.json' with { type: 'json' }
|
||||
import { fileURLToPath } from 'url'
|
||||
import { join, dirname } from 'node:path';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
emptyDirSync(join(__dirname, '..', 'dist/libs'))
|
||||
|
||||
for(const name in libs) {
|
||||
const { npm } = libs[name]
|
||||
|
||||
if (npm) {
|
||||
const from = join(__dirname, '..', `node_modules/${npm}`)
|
||||
const to = join(__dirname, '..', `dist/libs/${npm}`)
|
||||
|
||||
// create dir in dist/libs
|
||||
if (!existsSync(to)) {
|
||||
mkdirSync(to, { recursive: true })
|
||||
}
|
||||
|
||||
copySync(from, to, {
|
||||
dereference: true,
|
||||
})
|
||||
|
||||
console.log(`Successfully copied ${npm}`)
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
const crypto = require('node:crypto');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const sh = require('shelljs');
|
||||
|
||||
sh.config.fatal = true
|
||||
|
||||
const configFile = path.join(__dirname, '../../shared/data/sri.json')
|
||||
|
||||
const files = [
|
||||
{
|
||||
file: 'dist/css/tabler.min.css',
|
||||
configPropertyName: 'css'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler.rtl.min.css',
|
||||
configPropertyName: 'css-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-flags.min.css',
|
||||
configPropertyName: 'css-flags'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-flags.rtl.min.css',
|
||||
configPropertyName: 'css-flags-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-marketing.min.css',
|
||||
configPropertyName: 'css-marketing'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-marketing.rtl.min.css',
|
||||
configPropertyName: 'css-marketing-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-payments.min.css',
|
||||
configPropertyName: 'css-payments'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-payments.rtl.min.css',
|
||||
configPropertyName: 'css-payments-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-props.min.css',
|
||||
configPropertyName: 'css-props'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-props.rtl.min.css',
|
||||
configPropertyName: 'css-props-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-themes.min.css',
|
||||
configPropertyName: 'css-themes'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-themes.rtl.min.css',
|
||||
configPropertyName: 'css-themes-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-socials.min.css',
|
||||
configPropertyName: 'css-socials'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-socials.rtl.min.css',
|
||||
configPropertyName: 'css-socials-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-vendors.min.css',
|
||||
configPropertyName: 'css-vendors'
|
||||
},
|
||||
{
|
||||
file: 'dist/css/tabler-vendors.rtl.min.css',
|
||||
configPropertyName: 'css-vendors-rtl'
|
||||
},
|
||||
{
|
||||
file: 'dist/js/tabler.min.js',
|
||||
configPropertyName: 'js'
|
||||
},
|
||||
{
|
||||
file: 'dist/js/tabler-theme.min.js',
|
||||
configPropertyName: 'js-theme'
|
||||
},
|
||||
// {
|
||||
// file: 'dist/preview/css/demo.min.css',
|
||||
// configPropertyName: 'demo-css'
|
||||
// },
|
||||
// {
|
||||
// file: 'dist/preview/js/demo.min.js',
|
||||
// configPropertyName: 'demo-js'
|
||||
// },
|
||||
]
|
||||
|
||||
for (const { file, configPropertyName } of files) {
|
||||
fs.readFile(path.join(__dirname, '..', file), 'utf8', (error, data) => {
|
||||
if (error) {
|
||||
throw error
|
||||
}
|
||||
|
||||
const algorithm = 'sha384'
|
||||
const hash = crypto.createHash(algorithm).update(data, 'utf8').digest('base64')
|
||||
const integrity = `${algorithm}-${hash}`
|
||||
|
||||
console.log(`${configPropertyName}: ${integrity}`)
|
||||
|
||||
sh.sed('-i', new RegExp(`^(\\s+"${configPropertyName}":\\s+["'])\\S*(["'])`), `$1${integrity}$2`, configFile)
|
||||
})
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
export default context => {
|
||||
return {
|
||||
map: {
|
||||
inline: false,
|
||||
annotation: true,
|
||||
sourcesContent: true
|
||||
},
|
||||
plugins: {
|
||||
autoprefixer: {
|
||||
cascade: false
|
||||
},
|
||||
rtlcss: context.env === 'RTL'
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user