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

Compare commits

..

15 Commits

Author SHA1 Message Date
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
3300 changed files with 40262 additions and 54392 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}`);

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 new "Pay" page with dedicated layout, navigation link, and payment form (card + PayPal).

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/preview": minor
---
Add a color palette in the 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
---
Fix 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
---
Fix 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

@@ -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
---
Introduced `bg-blur` utility for backdrop blur effects 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
---
Update icons to v3.34.1 (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
---
Update 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

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

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

@@ -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 functions (`map-merge`, `str-slice`, `percentage`, etc.) with their module-based equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).

View File

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

View File

@@ -1,5 +0,0 @@
---
"@tabler/preview": patch
---
Fix responsive layputs in '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,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,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@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: Set up Node.js
uses: actions/setup-node@v5
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

View File

@@ -9,7 +9,7 @@ on:
env: env:
FORCE_COLOR: 2 FORCE_COLOR: 2
NODE: 20 NODE: 18
jobs: jobs:
bundlewatch: bundlewatch:
@@ -17,23 +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: 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 }}"
- name: Install PNPM - name: Install PNPM
uses: pnpm/action-setup@v4 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
@@ -44,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

63
.github/workflows/release-beta.yml vendored Normal file
View 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

View File

@@ -3,7 +3,7 @@ name: Release
on: on:
push: push:
branches: branches:
- dev - main
permissions: permissions:
contents: read contents: read
@@ -15,36 +15,42 @@ jobs:
release: release:
name: Release name: Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write # to create release
issues: write # to post issue comments
pull-requests: write # to create pull request
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v5 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 - name: Setup Node.js 18
uses: actions/setup-node@v5 uses: actions/setup-node@v4
with: with:
node-version: 20 cache: 'pnpm'
node-version: 18
- name: Install PNPM registry-url: 'https://registry.npmjs.org'
uses: pnpm/action-setup@v4
- name: Install Dependencies - name: Install Dependencies
run: pnpm install run: pnpm install
- name: Build - name: Build Package
run: pnpm run build 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 uses: changesets/action@v1
with: with:
version: pnpm run version publish: pnpm release
publish: pnpm run publish
commit: "chore: update versions"
title: "chore: update versions"
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -1,10 +1,11 @@
name: Test build name: Test build
on: on:
pull_request: null pull_request:
types: [ opened, reopened ]
env: env:
NODE: 20 NODE: 18
permissions: permissions:
contents: read contents: read
@@ -14,24 +15,25 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
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: 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 }}"
- name: Install PNPM - name: Install PNPM
uses: pnpm/action-setup@v4 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 - run: node --version
- name: Install pnpm dependencies - name: Install pnpm dependencies

12
.gitignore vendored
View File

@@ -19,21 +19,17 @@ node_modules/
/svg-tmp/ /svg-tmp/
/components/ /components/
/percy.sh /percy.sh
/preview/pages/playground.html /src/pages/playground.html
/preview/pages/screenshot.html /src/pages/playground-*.html
/preview/pages/screenshot-*.html /src/pages/features.html
/preview/pages/playground-*.html vendor/
/preview/pages/features.html
.pnp.loader.mjs .pnp.loader.mjs
.pnp.cjs .pnp.cjs
.yarn .yarn
.next .next
.vercel .vercel
.turbo
package-lock.json package-lock.json
demo/ demo/
dist/ dist/
packages-zip/
.env

2
.nvmrc
View File

@@ -1 +1 @@
20 18

3
.percy.yml Normal file
View File

@@ -0,0 +1,3 @@
version: 1
snapshot:
widths: [1440]

View File

@@ -1,7 +1,7 @@
{ {
"bracketSpacing": true, "bracketSpacing": true,
"jsxSingleQuote": false, "jsxSingleQuote": false,
"printWidth": 320, "printWidth": 240,
"proseWrap": "always", "proseWrap": "always",
"semi": false, "semi": false,
"singleQuote": false, "singleQuote": false,

1
.ruby-version Normal file
View File

@@ -0,0 +1 @@
3.2.2

16
.vscode/settings.json vendored
View File

@@ -1,12 +1,14 @@
{ {
"files.exclude": { "files.exclude": {
"**/.git": true, "**/.git": false,
"**/.svn": true, "**/.svn": false,
"**/.hg": true, "**/.hg": false,
"**/CVS": true, "**/CVS": false,
"**/.DS_Store": true, "**/.DS_Store": false,
"**/Thumbs.db": true, "**/Thumbs.db": false,
"**/.idea/": true "**/.idea/": false,
"dist": false,
"demo": false
}, },
"explorerExclude.backup": {} "explorerExclude.backup": {}
} }

317
CHANGELOG.md Normal file
View 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.

View File

@@ -3,6 +3,8 @@ FROM ruby:3.2-alpine
WORKDIR /app WORKDIR /app
ADD _config.yml /app/ ADD _config.yml /app/
ADD _config_prod.yml /app/ ADD _config_prod.yml /app/
ADD Gemfile /app/
ADD Gemfile.lock /app/
ADD package.json /app/ ADD package.json /app/
ADD pnpm-lock.yaml /app/ ADD pnpm-lock.yaml /app/
ADD gulpfile.js /app/ ADD gulpfile.js /app/
@@ -11,10 +13,11 @@ RUN apk add --virtual build-dependencies build-base npm
RUN apk upgrade RUN apk upgrade
RUN npm i -g pnpm RUN npm i -g pnpm
RUN pnpm install RUN pnpm install
RUN bundle config --global silence_root_warning 1 && bundler install --verbose
# website # website
EXPOSE 3000 EXPOSE 3000
# website management (browser auto reload) # website management (browser auto reload)
EXPOSE 3001 EXPOSE 3001
# run tabler # run tabler
ENTRYPOINT [ "pnpm", "run", "start" ] ENTRYPOINT [ "pnpm", "run", "start-plugins" ]

14
Gemfile Normal file
View 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
View 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

View File

@@ -1,6 +1,6 @@
The MIT License (MIT) 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 Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

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