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

Compare commits

..

16 Commits

Author SHA1 Message Date
github-actions[bot]
543c2f7488 Version Packages (beta) 2024-12-03 18:25:56 +00:00
codecalm
1b04679c2d release script update 2024-12-03 19:24:07 +01:00
codecalm
54454f71d1 Merge https://github.com/tabler/tabler into dev-changesets 2024-12-03 19:19:28 +01:00
codecalm
914bc6a21a PR fixes 2024-09-16 20:50:04 +02:00
codecalm
5be3c0e236 build fix 2024-09-16 20:46:01 +02:00
codecalm
3dd6b3b8bc build fix 2024-09-16 20:40:42 +02:00
codecalm
58a5b4c2bd gitignore 2024-09-16 20:37:23 +02:00
codecalm
a2cbd50187 ruby version file 2024-09-16 20:34:47 +02:00
codecalm
4fe9407a19 build fix 2024-09-16 20:33:40 +02:00
codecalm
80dd505973 bundler init 2024-09-16 20:32:48 +02:00
codecalm
191b5f0636 enable provenance 2024-09-16 20:30:31 +02:00
codecalm
5330aaea52 enable pnpm 2024-09-16 20:28:47 +02:00
codecalm
df593d2b05 build fix 2024-09-16 20:27:34 +02:00
codecalm
e357ab4e4d test package release 2024-09-16 20:26:35 +02:00
codecalm
3388a68447 pre release build 2024-09-16 20:14:41 +02:00
codecalm
b0d759f328 init pre release 2024-09-16 20:12:38 +02:00
3298 changed files with 40092 additions and 53385 deletions

89
.all-contributorsrc Normal file
View 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
}

View File

@@ -1,6 +1,11 @@
>= 1% >= 1%
last 2 versions last 1 major version
Firefox ESR
not dead not dead
safari >= 15.4 Chrome >= 60
iOS >= 15.4 Firefox >= 60
Edge >= 15.15063
Explorer 11
iOS >= 10
Safari >= 10
Android >= 6
not ExplorerMobile <= 11

28
.build/changelog.js Normal file
View 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
View 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
View 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))

View 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)
)

View File

@@ -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}`)
}
}

View 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}`);

4
.bundle/config Normal file
View File

@@ -0,0 +1,4 @@
---
BUNDLE_PATH: "/home/runner/work/tabler/tabler/vendor/bundle"
BUNDLE_DEPLOYMENT: "true"
BUNDLE_JOBS: "4"

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Change Twitter to X brand

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated link to icons documentation

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Dependencies update

View File

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

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Initialize Visual Studio Code config

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new `Tag` component

View File

@@ -3,18 +3,9 @@
"changelog": "@changesets/cli/changelog", "changelog": "@changesets/cli/changelog",
"commit": false, "commit": false,
"fixed": [], "fixed": [],
"linked": [ "linked": [],
[ "access": "restricted",
"@tabler/core", "baseBranch": "main",
"@tabler/preview", "updateInternalDependencies": "patch",
"@tabler/docs" "ignore": []
]
],
"access": "public",
"baseBranch": "dev",
"ignore": [],
"privatePackages": {
"version": true,
"tag": false
}
} }

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add customizable Star Ratings component using `star-rating.js` library

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Dependencies update

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update TinyMCE to v7.0

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix text color in dark version of navbar

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.21 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Init changelog script

5
.changeset/flags.md Normal file
View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add `flags.html` page with list of all flags

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Adding Two-Step Verification Pages

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Bump pnpm/action-setup from 2 to 3

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
`Dockerfile` fix

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.20 with 37 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add Tabler Illustrations

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Adding `alerts.html` page with example of alerts.

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Unify size of avatar, flag and payment components

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update icons to v2.42.0

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Dependencies update

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix `rgba` color values in `_variables.scss`

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Resolve map page issues

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Introduce Docker Compose Config to build and run Ttabler locally

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update `_navbar.scss` with disabled dropdown menu items color

View File

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

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update `@tabler/icons` to v3.0

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Adding punctuation to `SECURITY.md`

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix form controls bugs in dark mode

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Change primary color value to new Tabler branding

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Unified Box Shadows with Bootstrap Compatibility

69
.changeset/pre.json Normal file
View File

@@ -0,0 +1,69 @@
{
"mode": "pre",
"tag": "beta",
"initialVersions": {
"@tabler/core": "0.0.1"
},
"changesets": [
"afraid-geese-sin",
"beige-hats-prove",
"blue-pots-trade",
"chilly-mayflies-ring",
"clean-carrots-sort",
"curvy-fishes-lie",
"curvy-mails-burn",
"dirty-ravens-greet",
"dull-kiwis-notice",
"eight-pumas-fry",
"eleven-flies-sing",
"flags",
"fluffy-insects-lay",
"gorgeous-windows-study",
"great-carrots-lie",
"healthy-bikes-cry",
"heavy-chicken-cover",
"heavy-ladybugs-grab",
"hip-jobs-double",
"itchy-bottles-cheat",
"khaki-gorillas-push",
"khaki-wasps-provide",
"kind-poets-fetch",
"late-zoos-sparkle",
"long-eggs-work",
"lucky-impalas-smash",
"mighty-mirrors-drum",
"modern-dogs-wonder",
"moody-bobcats-chew",
"ninety-dancers-doubt",
"odd-terms-tap",
"olive-cars-admire",
"orange-donuts-cough",
"rare-pumpkins-pull",
"rare-snails-matter",
"red-coins-jump",
"red-vans-doubt",
"rich-dingos-promise",
"sharp-colts-grab",
"shiny-dolls-shop",
"shy-rockets-deliver",
"silver-drinks-yell",
"slimy-queens-pull",
"slow-buses-breathe",
"soft-mangos-tie",
"sour-pets-raise",
"sour-teachers-collect",
"spotty-avocados-doubt",
"stupid-dingos-train",
"tabler-icons",
"tasty-boats-work",
"tender-jars-reply",
"thick-apples-punch",
"thick-poems-battle",
"thin-eagles-mix",
"thirty-tomatoes-end",
"twenty-tables-judge",
"unlucky-eels-vanish",
"violet-moles-sparkle",
"wet-games-float"
]
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Unify dark mode with latest Bootstrap API and improve dark mode elements

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Bump `pnpm/action-setup` from 3 to 4

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update dependencies

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.22 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add All Contributions package to project for easy contribution tracking

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Resolved light dropdown issue on dark theme

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
New Chat component

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.19 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Adjusting form element sizes for enhanced mobile devices compatibility

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Switch from `npm` to `pnpm` for faster package installation

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add variable to configure `avatar-list` spacing

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add Tabler Illustrations

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update required Node.js version to 18 and add `.nvmrc` file

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix table default background color

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Avoid SCSS color dependency on `:focus`

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated Tabler Icons to v3.24.0

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.18 with 18 new icons added

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add Prettier to project for consistent code formatting

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.25 with 48 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new color picker component using `coloris.js` library

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix responsiveness issue in Settings menu

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add new Filled section to Icons page

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update `bootstrap` to v5.3.1

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Update Tabler Icons to version 2.23 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add support for changeset tool for more efficient and organized code changes

View File

@@ -1,100 +0,0 @@
---
description: Cursor Rules for Tabler Changesets
globs:
alwaysApply: true
---
### File Structure
- Each change must be in a separate changeset file in `.changeset/` directory
- Use descriptive kebab-case filenames (e.g., `progress-sizes.md`, `button-ghost.md`)
- Follow the standard changeset format with frontmatter and description
### Change Description Format
- **One sentence per changeset** - keep descriptions concise and focused
- Use **backticks for code elements**: classes (`.btn-ghost`), properties (`stroke-width`), values (`1.5`), icons (`arrow-up`)
- Start with action verbs: "Added", "Updated", "Fixed", "Removed"
- Be specific about what was changed
### Version Bump Guidelines
- **Major**: Breaking changes, complete rewrites
- **Minor**: New features, new components, new pages, significant enhancements
- **Patch**: Bug fixes, small improvements, style updates, accessibility fixes
### Package Selection
- `"@tabler/core"`: Changes to SCSS, core functionality, CSS classes
- `"@tabler/preview"`: New pages, demo updates, preview-specific changes
- `"@tabler/docs"`: Documentation updates
- Use multiple packages when change affects multiple areas
### Examples
#### New Feature (Minor)
```md
---
"@tabler/core": minor
"@tabler/preview": minor
---
Added Progress Steps component for step-by-step navigation indicators.
```
#### Bug Fix (Patch)
```md
---
"@tabler/core": patch
---
Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
```
#### New Page (Minor)
```md
---
"@tabler/preview": minor
---
Added new onboarding page with progress indicator and navigation layout.
```
#### Style Enhancement (Patch)
```md
---
"@tabler/core": patch
---
Added smooth transitions for progress bar width and background color changes.
```
### Code Formatting Rules
- Class names: `.btn-ghost`, `.progress-lg`, `.icon-sm`
- CSS properties: `stroke-width`, `background-color`, `width`
- Values: `1.5`, `transparent`, `100%`
- Icon names: `arrow-up`, `arrow-down`, `trending-up`
- HTML attributes: `aria-label`, `role`, `data-*`
- JavaScript functions: `addEventListener()`, `querySelector()`
### Common Patterns
- **Component additions**: "Added [ComponentName] component for [purpose]"
- **Size variants**: "Added [size] size variant for [component] (`.class-size`)"
- **Style fixes**: "Fixed [issue] in [component/element]"
- **Icon updates**: "Updated [component] to use `new-icon` instead of `old-icon`"
- **Accessibility**: "Improved accessibility by [specific change]"
### Commit Message Format
Use English for commit messages following conventional commit format when possible:
- `feat: add progress steps component`
- `fix: update icon stroke width for better visibility`
- `style: add smooth transitions to progress bars`

View File

@@ -1,171 +0,0 @@
---
description: Tabler Project HTML Elements Guidelines
globs: ["**/*.html", "**/*.liquid", "**/*.md"]
alwaysApply: true
---
## HTML Elements Guidelines
### 1. Icons
When you need to use an icon, always use the Tabler icon include syntax:
```html
{% include "ui/icon.html" icon="ICON_NAME" %}
```
**Examples:**
- `{% include "ui/icon.html" icon="home" %}`
- `{% include "ui/icon.html" icon="building-community" %}`
- `{% include "ui/icon.html" icon="map-pin" %}`
### 2. Page Links
When linking to other pages, always use the relative page syntax:
```html
href="{{ page | relative }}/url.html"
```
**Examples:**
- `href="{{ page | relative }}/job-post.html"`
- `href="{{ page | relative }}/job-listing.html"`
- `href="{{ page | relative }}/marketing/index.html"`
### 3. Static Generation
All pages are statically generated to HTML using Eleventy (11ty). Keep this in mind when:
- Writing frontmatter (must be static YAML, no Liquid templating)
- Creating dynamic content (use Liquid templating in the body, not frontmatter)
- Linking between pages (use relative paths)
### 4. Additional Guidelines
#### Frontmatter Rules
- Frontmatter must be static YAML
- Cannot use Liquid templating in frontmatter
- Use static values for title, permalink, etc.
#### Liquid Templating
- Use Liquid templating only in the HTML body
- Access data using `{{ variable }}` syntax
- Use `{% for %}` loops for dynamic content
- Use `{% if %}` conditions for conditional rendering
#### File Structure
- Pages go in `preview/pages/`
- Includes go in `shared/includes/`
- Data files go in `shared/data/`
- Documentation goes in `docs/content/`
#### CSS Classes
- Use Bootstrap 5 classes
- Use Tabler's custom CSS classes
- Follow the pattern: `--#{$prefix}component-property`
#### Accessibility
- Include proper ARIA labels
- Use semantic HTML elements
- Ensure proper heading hierarchy
- Add alt text for images
### 5. Component Usage
#### Cards
- Use `card` class for main containers
- Use `card-body` for content areas
- Use `card-header` for card headers
- Use `card-title` for card title
#### Buttons
- Use `btn` class for all buttons
- Use `btn-primary` for primary actions
- Use `btn` for secondary actions, don't use `btn-outline-secondary`
- Use `btn-sm` for smaller buttons
- Use `w-100` for full-width buttons
#### Forms
- Use `form-control` for input fields
- Use `form-label` for labels
- Use `form-check` for checkboxes/radio buttons
- Use `form-select` for dropdowns
#### Layout
- Use Bootstrap grid system (`row`, `col-*`)
- Use `container-xl` for main containers
- Use `page-wrapper` for page structure
- Use `page-body` for main content area
#### Badges
- Use `badge` class for badges
- Don't use `badge-outline` for badges, use `badge` class instead
- Don't use `badge-primary` for badges, use `badge` class instead
- Don't change the text color of badges
#### Markdown
- Use `markdown` class for markdown content
- Apply to containers that render markdown content
- Example: `<div class="markdown">...</div>`
#### Rest of the rules
- Read the rest of the rules in the `docs/content/ui/` folder
### 6. Data Integration
#### Using JSON Data
```liquid
{% for item in items %}
<div>{{ item.name }}</div>
{% endfor %}
```
#### Conditional Rendering
```liquid
{% if condition %}
<div>Content</div>
{% endif %}
```
#### Including Components
```liquid
{% include "ui/button.html" color="primary" text="Click me" %}
```
### 7. Best Practices
#### Performance
- Minimize nested loops
- Use `limit` filters when iterating large datasets
- Optimize images for web use
#### Code Organization
- Keep components modular and reusable
- Use consistent naming conventions
- Comment complex logic
- Group related functionality together
#### Error Handling
- Always check if data exists before using it
- Provide fallback content for missing data
- Use `{% if %}` guards for optional content

View File

@@ -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

View File

@@ -1,68 +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@v5
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Install PNPM
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: "${{ env.NODE }}"
cache: 'pnpm'
- 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

View File

@@ -9,7 +9,7 @@ on:
env: env:
FORCE_COLOR: 2 FORCE_COLOR: 2
NODE: 20 NODE: 18
jobs: jobs:
bundlewatch: bundlewatch:
@@ -17,24 +17,17 @@ jobs:
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v5 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: Install PNPM
uses: pnpm/action-setup@v4
- name: Set up Node.js - name: Set up Node.js
uses: actions/setup-node@v5 uses: actions/setup-node@v4
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
cache: 'pnpm'
- name: Install PNPM
uses: pnpm/action-setup@v4
with:
version: 8
- name: Set up Bundler - name: Set up Bundler
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
@@ -45,6 +38,9 @@ jobs:
- name: Install pnpm dependencies - name: Install pnpm dependencies
run: pnpm install --no-frozen-lockfile run: pnpm install --no-frozen-lockfile
- name: Run build
run: pnpm run build
- name: Run bundlewatch - name: Run bundlewatch
run: pnpm run bundlewatch run: pnpm run bundlewatch
env: env:

View File

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

View File

@@ -11,7 +11,7 @@ jobs:
pull-requests: write pull-requests: write
issues: write issues: write
steps: steps:
- uses: actions/stale@v10 - uses: actions/stale@v9
with: with:
days-before-issue-stale: 360 days-before-issue-stale: 360
days-before-issue-close: 14 days-before-issue-close: 14

View File

@@ -1,7 +1,6 @@
name: Changed lock files name: Changed lock files
on: on:
pull_request_target: pull_request: null
types: [opened, reopened]
permissions: permissions:
pull-requests: read pull-requests: read
@@ -12,10 +11,11 @@ jobs:
name: Verify lock file integrity name: Verify lock file integrity
steps: steps:
- name: Clone Tabler - name: Clone Tabler
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: Prevent lock file change - name: Prevent lock file change
uses: xalvarez/prevent-file-change-action@v2 uses: xalvarez/prevent-file-change-action@v1
with: with:
githubToken: ${{ secrets.GITHUB_TOKEN }} githubToken: ${{ secrets.GITHUB_TOKEN }}
pattern: Gemfile.lock|pnpm-lock.json|pnpm-lock.yaml pattern: Gemfile.lock|pnpm-lock.json
trustedAuthors: codecalm, BG-Software-BG, dependabot trustedAuthors: codecalm, dependabot

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