mirror of
https://github.com/tabler/tabler.git
synced 2025-12-22 18:04:26 +04:00
Compare commits
156 Commits
dev-doc-ch
...
changeset-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3532976b5e | ||
|
|
63a35a849c | ||
|
|
94e1a95ffb | ||
|
|
83ec6f8bcc | ||
|
|
e3d86c519b | ||
|
|
f9d6076014 | ||
|
|
f264470d8f | ||
|
|
ec9469332e | ||
|
|
deb887b4aa | ||
|
|
f9551c3b8e | ||
|
|
3aba62e652 | ||
|
|
059bae1cf6 | ||
|
|
41ed22a128 | ||
|
|
e206d7a908 | ||
|
|
2dc7edae36 | ||
|
|
8bc6fa7fd1 | ||
|
|
a198b0c7c5 | ||
|
|
b1f711635b | ||
|
|
d0fe913453 | ||
|
|
0106d6b7d2 | ||
|
|
14ed4693a5 | ||
|
|
3bcd82ae9f | ||
|
|
40a9b5ac27 | ||
|
|
99b9ea45f6 | ||
|
|
4ce08cad53 | ||
|
|
b0fa6559da | ||
|
|
c7070180dc | ||
|
|
9a17b72a60 | ||
|
|
0c7996321b | ||
|
|
ba7bb880c4 | ||
|
|
5018aa9113 | ||
|
|
8d8727f587 | ||
|
|
6e656ad1de | ||
|
|
0042472f9a | ||
|
|
21eb18f918 | ||
|
|
cf04a00f8e | ||
|
|
41bcebc0a7 | ||
|
|
7475114ef1 | ||
|
|
8ce84e0f2f | ||
|
|
496704b163 | ||
|
|
e098fdfaa6 | ||
|
|
58417be796 | ||
|
|
a7fccda74c | ||
|
|
dbb5e7d2ed | ||
|
|
5da9078f55 | ||
|
|
1cd1fcaf28 | ||
|
|
b4ab1100ef | ||
|
|
af41699e84 | ||
|
|
6e2e4e3317 | ||
|
|
d8077f438c | ||
|
|
0c07677606 | ||
|
|
14418a1c08 | ||
|
|
7b74fee012 | ||
|
|
9893b11ed2 | ||
|
|
fcb38a4059 | ||
|
|
9c5d729e6d | ||
|
|
f8dee0a4bb | ||
|
|
9a3361f8ba | ||
|
|
f763e3b1dd | ||
|
|
9997893b40 | ||
|
|
58ad1008c9 | ||
|
|
c0e757e252 | ||
|
|
5e119d4c06 | ||
|
|
c860288558 | ||
|
|
596237e8cc | ||
|
|
736e60408b | ||
|
|
212d560a87 | ||
|
|
0ee3c0a3b4 | ||
|
|
bddacee9ad | ||
|
|
2c3efda2bd | ||
|
|
4834022361 | ||
|
|
e16457fd2e | ||
|
|
8b12ba0b01 | ||
|
|
d2c812e023 | ||
|
|
8947d7c7b7 | ||
|
|
399a5c59f9 | ||
|
|
ad22d046c3 | ||
|
|
b8b63d7e94 | ||
|
|
ab8009b771 | ||
|
|
bd35fd39cf | ||
|
|
4b65380293 | ||
|
|
2c73788cd1 | ||
|
|
a967970419 | ||
|
|
64baa141e7 | ||
|
|
49ab9ea931 | ||
|
|
a8c41914c4 | ||
|
|
9951fe9b1d | ||
|
|
cfd4cb6624 | ||
|
|
6fec73a3c4 | ||
|
|
29cc0cd378 | ||
|
|
6c47b5f868 | ||
|
|
6c38a48af1 | ||
|
|
6c4dd3670d | ||
|
|
2a12f72b28 | ||
|
|
f91b0f7cfa | ||
|
|
af816227bc | ||
|
|
59b6f73a06 | ||
|
|
266d5ad773 | ||
|
|
db6200a998 | ||
|
|
70a41e4fc2 | ||
|
|
e96f055238 | ||
|
|
a200d30f04 | ||
|
|
666a296a62 | ||
|
|
545defc852 | ||
|
|
1b0f8206ee | ||
|
|
c2cb3d3255 | ||
|
|
a0377f9752 | ||
|
|
c914ecfb05 | ||
|
|
57afd0bb11 | ||
|
|
8db1c08744 | ||
|
|
08e4919ae1 | ||
|
|
ef9d75f32f | ||
|
|
3e35545edc | ||
|
|
446c34eceb | ||
|
|
90285704e4 | ||
|
|
a7f73d7f7e | ||
|
|
d66c6a70eb | ||
|
|
ad54f61429 | ||
|
|
9007e73cb6 | ||
|
|
0d106a89b7 | ||
|
|
0d59e2f13a | ||
|
|
8850f6128f | ||
|
|
a1af8014e8 | ||
|
|
c8fee60023 | ||
|
|
d8c70a8b94 | ||
|
|
b70cb48e0b | ||
|
|
5b8746c702 | ||
|
|
f2c0c65f98 | ||
|
|
06021fad99 | ||
|
|
bd67b3f82e | ||
|
|
8e2acc82e0 | ||
|
|
85f212293d | ||
|
|
72a1d67709 | ||
|
|
638f36c0c5 | ||
|
|
f769abd70b | ||
|
|
3a02ef9c55 | ||
|
|
38ea9aa4e7 | ||
|
|
acbe4ff35f | ||
|
|
b5e2f54bf8 | ||
|
|
e2411b3518 | ||
|
|
44a1979b78 | ||
|
|
bccdeee779 | ||
|
|
5cb041275d | ||
|
|
27c866b3c3 | ||
|
|
c127d65605 | ||
|
|
f15d2b97f8 | ||
|
|
1f4906cc40 | ||
|
|
f8075f69c0 | ||
|
|
fd0fd47bb2 | ||
|
|
a41c9565f1 | ||
|
|
7fc1d5c11c | ||
|
|
222ddd4b2f | ||
|
|
ddd3753cde | ||
|
|
b9d434dcd4 | ||
|
|
6a3513f8e9 | ||
|
|
21bf92608d |
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Update illustrations to v1.7
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add SRI hashes to scripts and styles
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
fix: improve Introduction, Base, Layout and Plugins sections in documentation
|
|
||||||
@@ -3,8 +3,18 @@
|
|||||||
"changelog": "@changesets/cli/changelog",
|
"changelog": "@changesets/cli/changelog",
|
||||||
"commit": false,
|
"commit": false,
|
||||||
"fixed": [],
|
"fixed": [],
|
||||||
"linked": [],
|
"linked": [
|
||||||
|
[
|
||||||
|
"@tabler/core",
|
||||||
|
"@tabler/preview",
|
||||||
|
"@tabler/docs"
|
||||||
|
]
|
||||||
|
],
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"baseBranch": "dev",
|
"baseBranch": "dev",
|
||||||
"ignore": []
|
"ignore": [],
|
||||||
|
"privatePackages": {
|
||||||
|
"version": true,
|
||||||
|
"tag": false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix input mask example in docs
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Update icons to v3.31.0
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix broken links to other docs section and tabler.io website; improve some labels.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add "text features" menu item
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Correct `aria-label` of app menu link
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix switch icon examples with filled icons in documentation
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Add missing metadata for Tabler Documentation
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix color badge in navbar menu
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix documentation: remove duplicated code examples; increase height of dropdown examples; fix some links
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix ribbon component in the documentation
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": "patch"
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix colour swatches on small screens
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add missing `tw` entry in `flags.json`
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Delete missing demo RTL style
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix broken RTL preview
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix incorrect label text on form elements docs page
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Use tabs-package include to show webfont install steps
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Demonstrate sticky header table more clearly in docs
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add new form layout page
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Replace non-existent Vimeo file and enhance the inline player documentation
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Exclude headings inside `.example` from the Table of Contents
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix missing border-radius to `.card-header-tabs`
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add missing `.steps-vertical` classes in docs
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Use color-input examples in documentation
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Add URL for local dev version of docs app to README
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix `src` links to images in README and getting-started docs page
|
|
||||||
100
.cursor/rules/changelog.mdc
Normal file
100
.cursor/rules/changelog.mdc
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
---
|
||||||
|
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`
|
||||||
171
.cursor/rules/html-elements.mdc
Normal file
171
.cursor/rules/html-elements.mdc
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
56
.cursor/rules/main.mdc
Normal file
56
.cursor/rules/main.mdc
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
13
.github/workflows/argos.yml
vendored
13
.github/workflows/argos.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
if: false
|
if: false
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -36,14 +36,15 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "${{ env.NODE }}"
|
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: "${{ env.NODE }}"
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Get installed Playwright version
|
- name: Get installed Playwright version
|
||||||
id: playwright-version
|
id: playwright-version
|
||||||
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
|
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
|
||||||
|
|||||||
13
.github/workflows/bundlewatch.yml
vendored
13
.github/workflows/bundlewatch.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -27,14 +27,15 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "${{ env.NODE }}"
|
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: "${{ env.NODE }}"
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Set up Bundler
|
- name: Set up Bundler
|
||||||
uses: ruby/setup-ruby@v1
|
uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/close_inactive.yml
vendored
2
.github/workflows/close_inactive.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
issues: write
|
issues: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v9
|
- uses: actions/stale@v10
|
||||||
with:
|
with:
|
||||||
days-before-issue-stale: 360
|
days-before-issue-stale: 360
|
||||||
days-before-issue-close: 14
|
days-before-issue-close: 14
|
||||||
|
|||||||
9
.github/workflows/lockfiles.yaml
vendored
9
.github/workflows/lockfiles.yaml
vendored
@@ -12,11 +12,10 @@ jobs:
|
|||||||
name: Verify lock file integrity
|
name: Verify lock file integrity
|
||||||
steps:
|
steps:
|
||||||
- name: Clone Tabler
|
- name: Clone Tabler
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Prevent lock file change
|
- name: Prevent lock file change
|
||||||
uses: xalvarez/prevent-file-change-action@v2
|
uses: xalvarez/prevent-file-change-action@v3
|
||||||
with:
|
with:
|
||||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
pattern: Gemfile.lock|pnpm-lock.json
|
pattern: Gemfile.lock|pnpm-lock.json|pnpm-lock.yaml
|
||||||
trustedAuthors: codecalm, dependabot
|
trustedAuthors: codecalm, BG-Software-BG, dependabot
|
||||||
|
|||||||
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
@@ -21,16 +21,17 @@ jobs:
|
|||||||
pull-requests: write # to create pull request
|
pull-requests: write # to create pull request
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Setup Node.js 18
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js 18
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: "${{ env.NODE }}"
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
|
|||||||
13
.github/workflows/test.yml
vendored
13
.github/workflows/test.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -24,14 +24,15 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "${{ env.NODE }}"
|
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: "${{ env.NODE }}"
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
- run: node --version
|
- run: node --version
|
||||||
|
|
||||||
- name: Install pnpm dependencies
|
- name: Install pnpm dependencies
|
||||||
|
|||||||
14
.prettierrc
14
.prettierrc
@@ -4,7 +4,17 @@
|
|||||||
"printWidth": 320,
|
"printWidth": 320,
|
||||||
"proseWrap": "always",
|
"proseWrap": "always",
|
||||||
"semi": false,
|
"semi": false,
|
||||||
"singleQuote": false,
|
"singleQuote": true,
|
||||||
|
"quoteProps": "consistent",
|
||||||
"tabWidth": 2,
|
"tabWidth": 2,
|
||||||
"trailingComma": "all"
|
"useTabs": false,
|
||||||
|
"trailingComma": "all",
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "*.scss",
|
||||||
|
"options": {
|
||||||
|
"parser": "scss"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -23,24 +23,8 @@ A premium and open source dashboard template with a responsive and high-quality
|
|||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://github.com/sponsors/codecalm" target="_blank">
|
|
||||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/sponsor-banner-homepage.svg" alt="Sponsor Banner">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
<p align="center">Visual testing with:</p>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://argos-ci.com/" target="_blank">
|
|
||||||
<picture>
|
|
||||||
<img src="https://github.com/user-attachments/assets/7d231a26-eff5-4fc5-8392-b2a679a7c572" alt="Argos-CI" height="164" />
|
|
||||||
</picture>
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">Browser testing via:</p>
|
<p align="center">Browser testing via:</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|||||||
82
core/.build/compare-variables.mjs
Normal file
82
core/.build/compare-variables.mjs
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
// Get __dirname in ES modules
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
// File paths (relative to core/.build directory)
|
||||||
|
const bootstrapPath = path.join(__dirname, '../node_modules/bootstrap/scss/_variables.scss');
|
||||||
|
const tablerPath = path.join(__dirname, '../scss/_variables.scss');
|
||||||
|
|
||||||
|
// Function to extract variable names from SCSS file
|
||||||
|
function extractVariables(filePath) {
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
const variables = new Set();
|
||||||
|
|
||||||
|
// Regex to find SCSS variables
|
||||||
|
// Looks for patterns like: $variable-name: value
|
||||||
|
// Includes variables in maps and lists
|
||||||
|
const variableRegex = /\$([a-zA-Z0-9_-]+)\s*[:=]/g;
|
||||||
|
|
||||||
|
let match;
|
||||||
|
while ((match = variableRegex.exec(content)) !== null) {
|
||||||
|
const varName = match[1];
|
||||||
|
variables.add(varName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return variables;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
function compareVariables() {
|
||||||
|
console.log('Analyzing Bootstrap variables...');
|
||||||
|
const bootstrapVars = extractVariables(bootstrapPath);
|
||||||
|
console.log(`Found ${bootstrapVars.size} variables in Bootstrap\n`);
|
||||||
|
|
||||||
|
console.log('Analyzing Tabler variables...');
|
||||||
|
const tablerVars = extractVariables(tablerPath);
|
||||||
|
console.log(`Found ${tablerVars.size} variables in Tabler\n`);
|
||||||
|
|
||||||
|
// Find variables that are in Bootstrap but not in Tabler
|
||||||
|
const missingInTabler = [];
|
||||||
|
for (const varName of bootstrapVars) {
|
||||||
|
if (!tablerVars.has(varName)) {
|
||||||
|
missingInTabler.push(varName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort alphabetically
|
||||||
|
missingInTabler.sort();
|
||||||
|
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
console.log(`Variables in Bootstrap that are missing in Tabler: ${missingInTabler.length}`);
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
|
||||||
|
if (missingInTabler.length === 0) {
|
||||||
|
console.log('All Bootstrap variables are present in Tabler!');
|
||||||
|
} else {
|
||||||
|
console.log('\nList of missing variables:\n');
|
||||||
|
missingInTabler.forEach((varName, index) => {
|
||||||
|
console.log(`${(index + 1).toString().padStart(4)}. $${varName}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optionally: show statistics
|
||||||
|
console.log('\n' + '='.repeat(60));
|
||||||
|
console.log('Statistics:');
|
||||||
|
console.log(` Bootstrap: ${bootstrapVars.size} variables`);
|
||||||
|
console.log(` Tabler: ${tablerVars.size} variables`);
|
||||||
|
console.log(` Missing: ${missingInTabler.length} variables`);
|
||||||
|
console.log(` Coverage: ${((1 - missingInTabler.length / bootstrapVars.size) * 100).toFixed(1)}%`);
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run analysis
|
||||||
|
try {
|
||||||
|
compareVariables();
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error during analysis:', error.message);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
33
core/.build/copy-libs.mjs
Normal file
33
core/.build/copy-libs.mjs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/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}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
55
core/.build/import-fonts.mjs
Normal file
55
core/.build/import-fonts.mjs
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
import { existsSync, mkdirSync } from 'fs'
|
||||||
|
import { copySync } from 'fs-extra/esm'
|
||||||
|
import { fileURLToPath } from 'url'
|
||||||
|
import { join, dirname } from 'node:path'
|
||||||
|
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
|
const fromDir = join(__dirname, '..', 'node_modules/geist/dist/fonts')
|
||||||
|
const toDir = join(__dirname, '..', 'fonts')
|
||||||
|
|
||||||
|
// Create fonts directory if it doesn't exist
|
||||||
|
if (!existsSync(toDir)) {
|
||||||
|
mkdirSync(toDir, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy geist-mono fonts
|
||||||
|
const monoFrom = join(fromDir, 'geist-mono')
|
||||||
|
const monoTo = join(toDir, 'geist-mono')
|
||||||
|
|
||||||
|
if (existsSync(monoFrom)) {
|
||||||
|
if (!existsSync(monoTo)) {
|
||||||
|
mkdirSync(monoTo, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
copySync(monoFrom, monoTo, {
|
||||||
|
dereference: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(`Successfully copied geist-mono fonts`)
|
||||||
|
} else {
|
||||||
|
console.warn(`Warning: geist-mono fonts not found at ${monoFrom}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy geist-sans fonts
|
||||||
|
const sansFrom = join(fromDir, 'geist-sans')
|
||||||
|
const sansTo = join(toDir, 'geist-sans')
|
||||||
|
|
||||||
|
if (existsSync(sansFrom)) {
|
||||||
|
if (!existsSync(sansTo)) {
|
||||||
|
mkdirSync(sansTo, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
copySync(sansFrom, sansTo, {
|
||||||
|
dereference: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(`Successfully copied geist-sans fonts`)
|
||||||
|
} else {
|
||||||
|
console.warn(`Warning: geist-sans fonts not found at ${sansFrom}`)
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,182 +1,300 @@
|
|||||||
# Changelog
|
# @tabler/core
|
||||||
|
|
||||||
## `1.2.0` - 2025-04-16
|
## 1.5.0
|
||||||
|
|
||||||
- Add gradient background utilities
|
### Minor Changes
|
||||||
- Add new apps card with brand icons in navbar
|
|
||||||
- Replaced TinyMCE with HugeRTE to address license violation
|
|
||||||
- Update Bootstrap to version 5.3.5
|
|
||||||
- Add theme settings wizard
|
|
||||||
- Add steps light colors
|
|
||||||
- Add Turbo library integration
|
|
||||||
- Rollback accordion component structure
|
|
||||||
- Add space between page numbers in pagination
|
|
||||||
- Add Bootstrap components to Tabler JS
|
|
||||||
- Fix tooltip colors in vector maps
|
|
||||||
- Update avatar size variable to support list size configuration
|
|
||||||
- Fix broken shape in South Korea flag
|
|
||||||
- Refactor `border-radius` in components to use CSS variables
|
|
||||||
- Update disabled color variables in navbars
|
|
||||||
- Apply border radius to `tom-select` on focus
|
|
||||||
- Add avatars page with various demos of avatars
|
|
||||||
- Minor spelling and grammar improvements to emails docs
|
|
||||||
- Update avatar size variable to support list size configuration
|
|
||||||
- Refactor SCSS for alerts and close button styles
|
|
||||||
- Fix `autosize` and `input mask` plugins to use window scope
|
|
||||||
- Fix scrollbar color mixin to use body color variable
|
|
||||||
- Improve README
|
|
||||||
- Make scrollbar track transparent
|
|
||||||
- Fix scrollbar jumps when content is higher than screen
|
|
||||||
- Add responsive font size for form controls on mobile devices
|
|
||||||
- Add new advanced table example
|
|
||||||
|
|
||||||
## `1.1.1` - 2025-03-01
|
- 5e119d4: Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.
|
||||||
|
- 9c5d729: Added `.btn-ghost` button variant with transparent background and hover effects.
|
||||||
|
- ec94693: Added `.card-gradient` component with gradient variants, direction modifiers, and animated backgrounds.
|
||||||
|
- a198b0c: Added Geist font family integration.
|
||||||
|
- 8d8727f: Added language selector dropdown to navbar with flag indicators for multilingual support.
|
||||||
|
- 4ce08ca: Refactored navbar-side component by consolidating separate include files (apps, language, notifications, theme, user) into a single `navbar-side.html` file for better maintainability.
|
||||||
|
- 9c5d729: Added Progress Background component with text labels and value display.
|
||||||
|
- 9c5d729: Added `.progress-lg` and `.progress-xl` size variants for the progress component.
|
||||||
|
- 9c5d729: Added Progress Steps component for step-by-step navigation indicators.
|
||||||
|
- e3d86c5: Upgraded `apexcharts` from `3.54.1` to `5.3.6` and added CSS variables (`--chart-{id}-color-{index}`) for dynamic chart colors to fix compatibility with the new version.
|
||||||
|
|
||||||
- Fix Documentation structure
|
### Patch Changes
|
||||||
|
|
||||||
## `1.1.0` - 2025-03-01
|
- 059bae1: Refactored Bootstrap exports to use single source of truth in `bootstrap.js` and removed duplicate exports from `tabler.js` for better maintainability.
|
||||||
|
- 5018aa9: Fixed `.btn-icon` to be square by aligning `min-width` calculation with base `.btn` formula.
|
||||||
|
- c860288: Fixed icon alignment for `.btn-sm` and `.btn-xl` sizes.
|
||||||
|
- 2dc7eda: Updated `$border-color-translucent-dark` from `rgba(72, 110, 149, 0.14)` to `rgba(128, 150, 172, 0.2)` to improve visibility of form checkboxes and other form elements in dark mode.
|
||||||
|
- 6e656ad: Fixed `.input-icon-addon` z-index issue with form validation feedback and added default height.
|
||||||
|
- 8bc6fa7: Fixed status color classes to use CSS variables instead of hardcoded values and include social colors (bitbucket, facebook, etc.) in status class generation.
|
||||||
|
- e206d7a: Fixed white space on left side when scrollbar is present by replacing `margin-inline-start: calc(100vw - 100%)` with `scrollbar-gutter: stable` on `html` element, with `overflow-y: scroll` fallback for unsupported browsers.
|
||||||
|
- 4ce08ca: Updated flags and avatars styling for better visual consistency.
|
||||||
|
- b8b63d7: Fixed mixed declarations in SCSS.
|
||||||
|
- 0106d6b: Update SCSS to use logical properties
|
||||||
|
- 9c5d729: Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
|
||||||
|
- 5e119d4: Added `bg-blur` utility and increased `container-tight` width for layout flexibility.
|
||||||
|
- 3aba62e: Added `border-top-left-radius` and `border-top-right-radius` to first and last child elements in `.card-table` for proper corner rounding.
|
||||||
|
- 0c79963: Added `media-print` mixin and print styles to hide interactive components during printing.
|
||||||
|
- 9a3361f: Fixed double bottom border in tables.
|
||||||
|
- 9c5d729: Added smooth transitions for progress bar `width` and `background-color` changes.
|
||||||
|
- 41ed22a: Removed redundant nullish coalescing operator from `html` option in popover and tooltip initialization.
|
||||||
|
- 83ec6f8: Added Driver.js library integration and Tour demo page for interactive product tours and onboarding guides.
|
||||||
|
- 9c5d729: Updated skip-link to use `visually-hidden` for improved accessibility.
|
||||||
|
- 736e604: Updated deprecated global Sass functions to module equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).
|
||||||
|
- f8dee0a: Updated Bootstrap to v5.3.8.
|
||||||
|
- 9c5d729: Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.
|
||||||
|
|
||||||
- Add Playwright configuration and visual regression tests
|
## 1.4.0
|
||||||
- Enable `scrollSpy` in `countup` module
|
|
||||||
- Refactor SCSS files to replace divide function with calc
|
|
||||||
- Add Segmented Control component
|
|
||||||
- Add new text features page with mentions: user, color and app.
|
|
||||||
- Add Scroll Spy page
|
|
||||||
- Update border radius variables for consistency across components
|
|
||||||
- Add Signature Pad feature and signatures page
|
|
||||||
- Update color utility classes and replace background colors in pricing table
|
|
||||||
- Refactored the project into a monorepo, removed Gulp, and introduced a new, more efficient build process.
|
|
||||||
- Add documentation for segmented control component
|
|
||||||
- Add new payment provider (Troy)
|
|
||||||
- Add selectable table functionality with active background color
|
|
||||||
- Refactor badge styles, remove Bootstrap styles
|
|
||||||
- Refactor alert component styles and markup, remove Bootstrap styles
|
|
||||||
- Refactor accordion component styles and markup, remove Bootstrap styles
|
|
||||||
- Fix overflow of `label` in a `floating-input`
|
|
||||||
- Fix size of `apexcharts` tooltip marker
|
|
||||||
- Fix apexcharts heatmap example in docs
|
|
||||||
- Fix negative margins in `.navbar-bordered` variant
|
|
||||||
- Use the full license agreement for illustrations in docs
|
|
||||||
- Fix vertical alignment in single page and error layouts
|
|
||||||
- Fix `.avatar-upload` double borders
|
|
||||||
- Fixes navbar styles with new hover effects and color variables
|
|
||||||
|
|
||||||
## `1.0.0` - 2025-01-28
|
### Minor Changes
|
||||||
|
|
||||||
- Add new `Tag` component
|
- 9951fe9: Enhance button and hover animations
|
||||||
- Add customizable Star Ratings component using `star-rating.js` library
|
- a200d30: Improve breadcrumb styles
|
||||||
- Add `flags.html` page with list of all flags
|
- 49ab9ea: Add new Tabler Illustrations
|
||||||
- Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
|
|
||||||
- Adding `alerts.html` page with example of alerts.
|
### Patch Changes
|
||||||
- Change primary color value to new Tabler branding
|
|
||||||
- Unify dark mode with latest Bootstrap API and improve dark mode elements
|
- 6c4dd36: Update class names from `*-left`, `*-right` to `*-start`, `*-end`
|
||||||
- New Chat component
|
- 6fec73a: Fix relative line heights in buttons
|
||||||
- Adjusting form element sizes for enhanced mobile devices compatibility
|
- db6200a: Remove `license_key` option from HugeRTE init object
|
||||||
- Add new color picker component using `coloris.js` library
|
- e96f055: Add different favicon to development environment
|
||||||
- Update Tabler Icons to version 2.23 with 18 new icons added
|
- 6c38a48: Update Bootstrap to v5.3.7
|
||||||
- New page with payment providers: `payment-providers.html`
|
- 2a12f72: Update CSS calculations to use `calc()`
|
||||||
- Add support for new payment providers: 2c2p, Adyen, Affirm, Alipay Plus, Allegro Pay, Amazon Pay, Apple Pay, Autopay, Binance USD, Bkash, Cash App, Chime, EasyPaisa, Ethereum, Google Pay, HubSpot, iDeal, Litecoin, Mercado Pago, MetaMask, MoneyGram, OpenSea, Payconiq, Payka, Payline, PayPo, Paysafe, Poli,
|
- 666a296: Fix list group item hoverable only with `.list-group-hoverable` class
|
||||||
|
- cfd4cb6: Fix `.pagination-link` hover styles to non-active items
|
||||||
|
|
||||||
|
## 1.3.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- 446c34e: Fix README file in core package
|
||||||
|
|
||||||
|
## 1.3.1
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- a7f73d7: Fix README file in core package
|
||||||
|
|
||||||
|
## 1.3.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- a1af801: Add FullCalendar integration
|
||||||
|
- b9d434d: Add new charts to dashboard pages
|
||||||
|
- 79bd867: Add new form layout page
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- cac5d92: Update illustrations to v1.7
|
||||||
|
- f94b153: Add SRI hashes to scripts and styles
|
||||||
|
- c127d65: Fix colour picker preview page not displaying correctly
|
||||||
|
- b6e9b18: Update icons to v3.31.0
|
||||||
|
- 8850f61: Enhance pagination component with new styles
|
||||||
|
- 9910dd0: Add "text features" menu item
|
||||||
|
- 638f36c: Refactor SCSS variable names for shadows
|
||||||
|
- 0d501e9: Correct `aria-label` of app menu link
|
||||||
|
- 3a02ef9: Fix some marketing site rows overflowing on mobile
|
||||||
|
- fd0fd47: Improve card footer layout and enhance entry display format in invoices
|
||||||
|
- 74e5d26: Fix color badge in navbar menu
|
||||||
|
- 72a1d67: Add clipboard functionality to Tabler documentation
|
||||||
|
- bb617b8: Fix colour swatches on small screens
|
||||||
|
- d73d78e: Add missing `tw` entry in `flags.json`
|
||||||
|
- 19a3d20: Delete missing demo RTL style
|
||||||
|
- b5e2f54: Enhance dropdown components for better accessibility
|
||||||
|
- a41c956: Remove unnecessary `!important` from body padding
|
||||||
|
- e675389: Fix missing border-radius to `.card-header-tabs`
|
||||||
|
- 9007e73: Fix FAQ accordion structure
|
||||||
|
|
||||||
|
## 1.2.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- c59bc9d: Add gradient background utilities
|
||||||
|
- f9e4da2: Add new apps card with brand icons in navbar
|
||||||
|
- 92a3afe: Replaced TinyMCE with HugeRTE to address license violation
|
||||||
|
- 199f39a: Update Bootstrap to version 5.3.5
|
||||||
|
- 9bbcb99: Add theme settings wizard
|
||||||
|
- b17b488: Add steps light colors
|
||||||
|
- 215eaa4: Add Turbo library integration
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- aea3b0a: Rollback accordion component structure
|
||||||
|
- 3fc7b84: Add space between page numbers in pagination
|
||||||
|
- 2f8a372: Add Bootstrap components to Tabler JS
|
||||||
|
- 9fceadd: Fix tooltip colors in vector maps
|
||||||
|
- 44250db: Update avatar size variable to support list size configuration
|
||||||
|
- be1f3d1: Fix broken shape in South Korea flag
|
||||||
|
- c20d076: Refactor `border-radius` in components to use CSS variables
|
||||||
|
- 042e50f: Update disabled color variables in navbars
|
||||||
|
- 473fa38: Apply border radius to `tom-select` on focus
|
||||||
|
- 8646192: Add avatars page with various demos of avatars
|
||||||
|
- 922bb03: Minor spelling and grammar improvements to emails docs
|
||||||
|
- 44250db: Update avatar size variable to support list size configuration
|
||||||
|
- ddcd3a7: Refactor SCSS for alerts and close button styles
|
||||||
|
- e3d68d6: Fix `autosize` and `input mask` plugins to use window scope
|
||||||
|
- 4846828: Fix scrollbar color mixin to use body color variable
|
||||||
|
- 6b6617a: Improve README
|
||||||
|
- 94bea00: Make scrollbar track transparent
|
||||||
|
- e14e492: Fix scrollbar jumps when content is higher than screen
|
||||||
|
- 6d6d1bd: Add responsive font size for form controls on mobile devices
|
||||||
|
- 6c566cf: Add new advanced table example
|
||||||
|
|
||||||
|
## 1.1.1
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- f29c911: Fix Documentation structure
|
||||||
|
|
||||||
|
## 1.1.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- a2640e2: Add Playwright configuration and visual regression tests
|
||||||
|
- d3ae77c: Enable `scrollSpy` in `countup` module
|
||||||
|
- bd3d959: Refactor SCSS files to replace divide function with calc
|
||||||
|
- cb278c7: Add Segmented Control component
|
||||||
|
- b47725d: Add new text features page with mentions: user, color and app.
|
||||||
|
- b4b4d1a: Add Scroll Spy page
|
||||||
|
- 9cd5327: Update border radius variables for consistency across components
|
||||||
|
- 4376968: Add Signature Pad feature and signatures page
|
||||||
|
- f95f250: Update color utility classes and replace background colors in pricing table
|
||||||
|
- eaa7f81: Refactored the project into a monorepo, removed Gulp, and introduced a new, more efficient build process.
|
||||||
|
- ea14462: Add documentation for segmented control component
|
||||||
|
- 1edaff4: Add new payment provider (Troy)
|
||||||
|
- edbaa1e: Add selectable table functionality with active background color
|
||||||
|
- 378fba8: Refactor badge styles, remove Bootstrap styles
|
||||||
|
- f3c409f: Refactor alert component styles and markup, remove Bootstrap styles
|
||||||
|
- c240b5a: Refactor accordion component styles and markup, remove Bootstrap styles
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- 687267d: Fix overflow of `label` in a `floating-input`
|
||||||
|
- 06b1dec: Fix size of `apexcharts` tooltip marker
|
||||||
|
- afd0700: Fix apexcharts heatmap example in docs
|
||||||
|
- 78383ef: Fix negative margins in `.navbar-bordered` variant
|
||||||
|
- 11f4487: Use the full license agreement for illustrations in docs
|
||||||
|
- b28ce9f: Fix vertical alignment in single page and error layouts
|
||||||
|
- 24b944c: Fix `.avatar-upload` double borders
|
||||||
|
- ca4ba14: Fixes navbar styles with new hover effects and color variables
|
||||||
|
|
||||||
|
## 1.0.0 - 2025-01-28
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- c276a8b: Add new `Tag` component
|
||||||
|
- d380224: Add customizable Star Ratings component using `star-rating.js` library
|
||||||
|
- 47cd6c1: Add `flags.html` page with list of all flags
|
||||||
|
- be67ab6: Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
|
||||||
|
- 080c746: Adding `alerts.html` page with example of alerts.
|
||||||
|
- b381273: Change primary color value to new Tabler branding
|
||||||
|
- 75619dd: Unify dark mode with latest Bootstrap API and improve dark mode elements
|
||||||
|
- cc82dbf: New Chat component
|
||||||
|
- 5a03643: Adjusting form element sizes for enhanced mobile devices compatibility
|
||||||
|
- be14607: Add new color picker component using `coloris.js` library
|
||||||
|
- d046570: Update Tabler Icons to version 2.23 with 18 new icons added
|
||||||
|
- 5488c50: New page with payment providers: `payment-providers.html`
|
||||||
|
- 5488c50: Add support for new payment providers: 2c2p, Adyen, Affirm, Alipay Plus, Allegro Pay, Amazon Pay, Apple Pay, Autopay, Binance USD, Bkash, Cash App, Chime, EasyPaisa, Ethereum, Google Pay, HubSpot, iDeal, Litecoin, Mercado Pago, MetaMask, MoneyGram, OpenSea, Payconiq, Payka, Payline, PayPo, Paysafe, Poli,
|
||||||
Revolut Pay, Samsung Pay, Shop Pay, Solana, Spingo, Stax, Tether, True USD, Venmo, WeChat Pay, Wise, Zelle
|
Revolut Pay, Samsung Pay, Shop Pay, Solana, Spingo, Stax, Tether, True USD, Venmo, WeChat Pay, Wise, Zelle
|
||||||
- Change Twitter to X brand
|
|
||||||
- Updated link to icons documentation
|
### Patch Changes
|
||||||
- Dependencies update
|
|
||||||
- Order menu items alphabetically
|
- 293d0a4: Change Twitter to X brand
|
||||||
- Automatically retrieve and display the changelog from the CHANGELOG.md file.
|
- fd0935a: Updated link to icons documentation
|
||||||
- Initialize Visual Studio Code config
|
- 1cf27dc: Dependencies update
|
||||||
- Make horizontal rule direction aware
|
- 041f4e4: Order menu items alphabetically
|
||||||
- Update Tabler Illustrations to v1.5
|
- 20cad01: Automatically retrieve and display the changelog from the CHANGELOG.md file.
|
||||||
- Update Tabler Icons to v3.29.0
|
- 34f3efc: Initialize Visual Studio Code config
|
||||||
- Remove unused dependencies from `package.json`
|
- 7ba7717: Make horizontal rule direction aware
|
||||||
- Replace Jekyll with Eleventy
|
- 063ef58: Update Tabler Illustrations to v1.5
|
||||||
- Dependencies update
|
- 5e2c975: Update Tabler Icons to v3.29.0
|
||||||
- Update TinyMCE to v7.0
|
- 9d5f7ca: Remove unused dependencies from `package.json`
|
||||||
- Fix text color in dark version of navbar
|
- be69fd6: Replace Jekyll with Eleventy
|
||||||
- Remove invalid `z-index` setting for dropdowns
|
- 2f5fad6: Dependencies update
|
||||||
- Update Tabler Icons to version 2.21 with 18 new icons added
|
- dfd7c88: Update TinyMCE to v7.0
|
||||||
- Update Tabler Emails to v2.0
|
- 056df18: Fix text color in dark version of navbar
|
||||||
- Init changelog script
|
- 17327dc: Remove invalid `z-index` setting for dropdowns
|
||||||
- Adding Two-Step Verification Pages
|
- 4ff077a: Update Tabler Icons to version 2.21 with 18 new icons added
|
||||||
- Replace `.page-center` with `.my-auto` in single page layouts
|
- 867c8dd: Update Tabler Emails to v2.0
|
||||||
- Add border-opacity variable for improved color utility
|
- d8605f2: Init changelog script
|
||||||
- Fix icon display issues in the Star Ratings component
|
- 89c6234: Adding Two-Step Verification Pages
|
||||||
- Fix `color` of disabled `dropdown-item` in Navbar component
|
- f6e885b: Replace `.page-center` with `.my-auto` in single page layouts
|
||||||
- Bump pnpm/action-setup from 2 to 3
|
- 7aa216f: Add border-opacity variable for improved color utility
|
||||||
- Add social icons plugin
|
- 88eb413: Fix icon display issues in the Star Ratings component
|
||||||
- `Dockerfile` fix
|
- 78392b6: Fix `color` of disabled `dropdown-item` in Navbar component
|
||||||
- Update Jekyll to version 4.3.4
|
- 4deb8f4: Bump pnpm/action-setup from 2 to 3
|
||||||
- Update Tabler Icons to version 2.20 with 37 new icons added
|
- 9015472: Add social icons plugin
|
||||||
- Add Tabler Illustrations
|
- 7fe30a1: `Dockerfile` fix
|
||||||
- Update illustrations and enhance SVG handling in HTML
|
- e53942f: Update Jekyll to version 4.3.4
|
||||||
- Fix ids of custom size star ratings
|
- 72f868b: Update Tabler Icons to version 2.20 with 37 new icons added
|
||||||
- Unify size of avatar, flag and payment components
|
- e0443c0: Add Tabler Illustrations
|
||||||
- Update icons to v2.42.0
|
- 5cca710: Update illustrations and enhance SVG handling in HTML
|
||||||
- Update Bootstrap to v5.3.0
|
- 3a4f10f: Fix ids of custom size star ratings
|
||||||
- Set `font-size` of an `i` element with `icon` class in a `button` element
|
- 7896562: Unify size of avatar, flag and payment components
|
||||||
- Dependencies update
|
- 1587905: Update icons to v2.42.0
|
||||||
- Fix icons in `form-elements.html`
|
- d9e00b2: Update Bootstrap to v5.3.0
|
||||||
- Update Tabler Icons to v3.28.1
|
- bc1d1a3: Set `font-size` of an `i` element with `icon` class in a `button` element
|
||||||
- Fix `rgba` color values in `_variables.scss`
|
- 0195f9b: Dependencies update
|
||||||
- Fix description of alerts with a description
|
- a5bf5d3: Fix icons in `form-elements.html`
|
||||||
- Fix colors of disabled `.ts-control`
|
- 736410c: Update Tabler Icons to v3.28.1
|
||||||
- Center content on error and single page layouts
|
- 3f516ea: Fix `rgba` color values in `_variables.scss`
|
||||||
- Resolve map page issues
|
- e91884e: Fix description of alerts with a description
|
||||||
- Improve base font family loading
|
- 90cc744: Fix colors of disabled `.ts-control`
|
||||||
- Introduce Docker Compose Config to build and run Ttabler locally
|
- 1801e41: Center content on error and single page layouts
|
||||||
- Fix `@charset` CSS declaration in bundle.
|
- 45c83ac: Resolve map page issues
|
||||||
- Update `_navbar.scss` with disabled dropdown menu items color
|
- faee63c: Improve base font family loading
|
||||||
- Update Tabler Icons to v3.17.0
|
- 5e7e0dd: Introduce Docker Compose Config to build and run Ttabler locally
|
||||||
- Update `@tabler/icons` to v3.0
|
- c293a66: Fix `@charset` CSS declaration in bundle.
|
||||||
- Refactor data structure by converting YAML files to JSON
|
- cb4a681: Update `_navbar.scss` with disabled dropdown menu items color
|
||||||
- Increase `z-index` of `ts-dropdown` to prevent overlapping by buttons
|
- af41fb3: Update Tabler Icons to v3.17.0
|
||||||
- Adding punctuation to `SECURITY.md`
|
- 6cbe888: Update `@tabler/icons` to v3.0
|
||||||
- Fix form controls bugs in dark mode
|
- 0e4bf5f: Refactor data structure by converting YAML files to JSON
|
||||||
- Fix padding in code blocks
|
- 82cf257: Increase `z-index` of `ts-dropdown` to prevent overlapping by buttons
|
||||||
- Unified Box Shadows with Bootstrap Compatibility
|
- 4b4b4f6: Adding punctuation to `SECURITY.md`
|
||||||
- Remove duplicated setting of color in `th` element
|
- a0a2d52: Fix form controls bugs in dark mode
|
||||||
- Fix layout of search results for small and medium screens
|
- f45b697: Fix padding in code blocks
|
||||||
- Remove `text-decoration` on hovering `a` element with class having `icon` class
|
- 4de166d: Unified Box Shadows with Bootstrap Compatibility
|
||||||
- Fix small typo in tables docs
|
- 87bf2f5: Remove duplicated setting of color in `th` element
|
||||||
- Improve documentation for alerts
|
- 5dc45aa: Fix layout of search results for small and medium screens
|
||||||
- Bump `pnpm/action-setup` from 3 to 4
|
- 4ae0358: Remove `text-decoration` on hovering `a` element with class having `icon` class
|
||||||
- Update dependencies
|
- e798eb6: Fix small typo in tables docs
|
||||||
- Update Tabler Icons to version 2.22 with 18 new icons added
|
- 1c1d0c9: Improve documentation for alerts
|
||||||
- Update devDependencies
|
- 371ef84: Bump `pnpm/action-setup` from 3 to 4
|
||||||
- Add All Contributions package to project for easy contribution tracking
|
- 8421fc2: Update dependencies
|
||||||
- Set value of `$font-family-monospace` as default
|
- 0625f5f: Update Tabler Icons to version 2.22 with 18 new icons added
|
||||||
- Refactor Dockerfile and package.json
|
- ba65fc3: Update devDependencies
|
||||||
- Resolved light dropdown issue on dark theme
|
- a43ded4: Add All Contributions package to project for easy contribution tracking
|
||||||
- Enhance documentation
|
- 2f622c9: Set value of `$font-family-monospace` as default
|
||||||
- Update Tabler Icons to version 2.19 with 18 new icons added
|
- 2c7c448: Refactor Dockerfile and package.json
|
||||||
- Fix cells with inline icons
|
- 5ec7f05: Resolved light dropdown issue on dark theme
|
||||||
- Fix `color` of disabled `nav-link` in `nav-bordered`
|
- b0b07b9: Enhance documentation
|
||||||
- Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
|
- 0f129b1: Update Tabler Icons to version 2.19 with 18 new icons added
|
||||||
- Switch from `npm` to `pnpm` for faster package installation
|
- 507df7b: Fix cells with inline icons
|
||||||
- Increase contrast of active `dropdown-item` in vertical layout
|
- 0e5b44a: Fix `color` of disabled `nav-link` in `nav-bordered`
|
||||||
- Update documentation for Tabler components
|
- 65c1300: Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
|
||||||
- Add variable to configure `avatar-list` spacing
|
- 8552a46: Switch from `npm` to `pnpm` for faster package installation
|
||||||
- Do not display empty `fieldset` element
|
- 4a9e40d: Increase contrast of active `dropdown-item` in vertical layout
|
||||||
- Refactor SCSS variables to use `color.adjust` for improved color manipulation
|
- 17ebdf4: Update documentation for Tabler components
|
||||||
- Add Tabler Illustrations
|
- 4c88481: Add variable to configure `avatar-list` spacing
|
||||||
- Update required Node.js version to 18 and add `.nvmrc` file
|
- df46ee7: Do not display empty `fieldset` element
|
||||||
- Fix table default background color
|
- 875cafa: Refactor SCSS variables to use `color.adjust` for improved color manipulation
|
||||||
- Avoid SCSS color dependency on `:focus`
|
- eb28546: Add Tabler Illustrations
|
||||||
- Update changelog configuration and release scripts
|
- 650d84c: Update required Node.js version to 18 and add `.nvmrc` file
|
||||||
- Update Tabler Icons to v3.26.0
|
- fb659d4: Fix table default background color
|
||||||
- Updated Tabler Icons to v3.24.0
|
- f77c712: Avoid SCSS color dependency on `:focus`
|
||||||
- Update Tabler Icons to version 2.18 with 18 new icons added
|
- 71c68ce: Update changelog configuration and release scripts
|
||||||
- Update Node.js engine requirement to allow versions >=20
|
- 34d124d: Update Tabler Icons to v3.26.0
|
||||||
- Update Tabler Icons to v3.14.0
|
- 4cd9215: Updated Tabler Icons to v3.24.0
|
||||||
- Add Prettier to project for consistent code formatting
|
- 7bb947b: Update Tabler Icons to version 2.18 with 18 new icons added
|
||||||
- Upgrade Node.js from version 18 to version 20 for improved performance, security, and feature updates.
|
- c75cf55: Update Node.js engine requirement to allow versions >=20
|
||||||
- Update Tabler Icons to version 2.25 with 48 new icons added
|
- 1c34e8e: Update Tabler Icons to v3.14.0
|
||||||
- Fix responsiveness issue in Settings menu
|
- 289dd3b: Add Prettier to project for consistent code formatting
|
||||||
- Added 3 new payments from Nepal: Esewa, FonePay, Khalti and Imepay
|
- f83e36c: Upgrade Node.js from version 18 to version 20 for improved performance, security, and feature updates.
|
||||||
- Add new Filled section to Icons page
|
- b885852: Update Tabler Icons to version 2.25 with 48 new icons added
|
||||||
- Update `bootstrap` to v5.3.1
|
- 53a5117: Fix responsiveness issue in Settings menu
|
||||||
- Update package dependencies to latest versions
|
- 38504e5: Added 3 new payments from Nepal: Esewa, FonePay, Khalti and Imepay
|
||||||
- Fix link to webfont version of Tabler Icons
|
- 35ee14d: Add new Filled section to Icons page
|
||||||
- Add support for changeset tool for more efficient and organized code changes
|
- d32f242: Update `bootstrap` to v5.3.1
|
||||||
- Fix colors in date range datepicker
|
- d82f94e: Update package dependencies to latest versions
|
||||||
|
- 54c5ad0: Fix link to webfont version of Tabler Icons
|
||||||
|
- 94b83d4: Add support for changeset tool for more efficient and organized code changes
|
||||||
|
- c51ff28: Fix colors in date range datepicker
|
||||||
|
|
||||||
## `1.0.0-beta24` - 2025-01-11
|
## `1.0.0-beta24` - 2025-01-11
|
||||||
|
|
||||||
|
|||||||
42
core/README.md
Normal file
42
core/README.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Tabler Core
|
||||||
|
|
||||||
|
Tabler Core is a set of components and utilities for building web applications. It provides a collection of pre-designed components, such as buttons, forms, modals, and more, that can be easily customized and integrated into your projects.
|
||||||
|
|
||||||
|
## 🔎 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!
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
To install Tabler Core, you can use npm or yarn. Run one of the following commands in your terminal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install @tabler/core
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm add @tabler/core
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
||||||
BIN
core/fonts/geist-mono/GeistMono-Black.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Black.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Black.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Black.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Bold.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Bold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Bold.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Bold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Light.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Light.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Light.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Light.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Medium.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Medium.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Medium.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Medium.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Regular.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Regular.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Regular.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Regular.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-SemiBold.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-SemiBold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-SemiBold.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-SemiBold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Thin.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Thin.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Thin.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Thin.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraLight.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraLight.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraLight.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraLight.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Variable.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Variable.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Variable.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Variable.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Black.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Black.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Black.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Black.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Bold.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Bold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Bold.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Bold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Light.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Light.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Light.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Light.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Medium.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Medium.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Medium.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Medium.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Regular.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Regular.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Regular.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Regular.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-SemiBold.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-SemiBold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-SemiBold.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-SemiBold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Thin.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Thin.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Thin.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Thin.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraBlack.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-UltraBlack.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraBlack.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-UltraBlack.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraLight.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-UltraLight.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraLight.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-UltraLight.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Variable.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Variable.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Variable.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Variable.woff2
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="16" fill="none"><mask id="a" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" d="M.001.927h20v15h-20z"/></mask><g mask="url(#a)"><path fill="#F7FCFF" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/><mask id="b" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/></mask><g fill-rule="evenodd" clip-rule="evenodd" mask="url(#b)"><path fill="#3D58DB" d="M.001.927v15h20v-15h-20Z"/><path fill="#FFD018" d="m9.407 3.137-.14.818L10 3.57l.735.386-.14-.818.594-.64h-.821L10 1.695l-.367.804h-.822l.595.639Zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 12.55l-.367.804h-.822l.595.64ZM3.484 9.438l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386-.735.386Zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821l-.368-.803-.367.804H4.24l.595.639Zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386-.734.386Zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24l.595.64Zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.66 13.29l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821l.594.64Zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.52 4.666l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64-.14.818Zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387-.734.387Zm3.062 3.879-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821l.594.639Z"/></g></g></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="15" fill="none" viewBox="0 0 20 15"><path fill="#3d58db" fill-rule="evenodd" d="M0 0v15h20V0z" clip-rule="evenodd"/><path fill="#ffd018" fill-rule="evenodd" d="m9.407 2.442-.14.818.733-.385.735.386-.14-.818.594-.64h-.821L10 1l-.367.804h-.822zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 11.855l-.367.804h-.822l.595.64zM3.484 8.743l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821L5.43 9.07l-.367.804H4.24zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.66 12.595l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.52 3.971l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387zM15.14 7.85l-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821z" clip-rule="evenodd"/></svg>
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,7 +1,8 @@
|
|||||||
// Autosize plugin
|
// Autosize plugin
|
||||||
const elements = document.querySelectorAll('[data-bs-toggle="autosize"]');
|
const elements = document.querySelectorAll('[data-bs-toggle="autosize"]')
|
||||||
|
|
||||||
if (elements.length) {
|
if (elements.length) {
|
||||||
elements.forEach(function (element) {
|
elements.forEach(function (element) {
|
||||||
window.autosize && window.autosize(element);
|
window.autosize && window.autosize(element)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
21
core/js/src/bootstrap.js
vendored
21
core/js/src/bootstrap.js
vendored
@@ -1,3 +1,20 @@
|
|||||||
export * as Popper from '@popperjs/core';
|
export * as Popper from '@popperjs/core'
|
||||||
|
|
||||||
export { Dropdown, Tooltip, Popover, Tab, Toast } from 'bootstrap';
|
// Export all Bootstrap components directly for consistent usage
|
||||||
|
export {
|
||||||
|
Alert,
|
||||||
|
Button,
|
||||||
|
Carousel,
|
||||||
|
Collapse,
|
||||||
|
Dropdown,
|
||||||
|
Modal,
|
||||||
|
Offcanvas,
|
||||||
|
Popover,
|
||||||
|
ScrollSpy,
|
||||||
|
Tab,
|
||||||
|
Toast,
|
||||||
|
Tooltip
|
||||||
|
} from 'bootstrap'
|
||||||
|
|
||||||
|
// Re-export everything as namespace for backward compatibility
|
||||||
|
export * as bootstrap from 'bootstrap'
|
||||||
|
|||||||
@@ -1,23 +1,25 @@
|
|||||||
const elements = document.querySelectorAll('[data-countup]');
|
const elements = document.querySelectorAll('[data-countup]')
|
||||||
|
|
||||||
if (elements.length) {
|
if (elements.length) {
|
||||||
elements.forEach(function (element) {
|
elements.forEach(function (element) {
|
||||||
let options = {};
|
let options = {}
|
||||||
try {
|
try {
|
||||||
const dataOptions = element.getAttribute('data-countup') ? JSON.parse(element.getAttribute('data-countup')) : {};
|
const dataOptions = element.getAttribute('data-countup') ? JSON.parse(element.getAttribute('data-countup')) : {}
|
||||||
options = Object.assign({
|
options = Object.assign(
|
||||||
'enableScrollSpy': true
|
{
|
||||||
}, dataOptions);
|
enableScrollSpy: true,
|
||||||
|
},
|
||||||
|
dataOptions,
|
||||||
|
)
|
||||||
|
} catch (error) {}
|
||||||
|
|
||||||
} catch (error) {}
|
const value = parseInt(element.innerHTML, 10)
|
||||||
|
|
||||||
const value = parseInt(element.innerHTML, 10);
|
if (window.countUp && window.countUp.CountUp) {
|
||||||
|
const countUp = new window.countUp.CountUp(element, value, options)
|
||||||
if (window.countUp && window.countUp.CountUp) {
|
if (!countUp.error) {
|
||||||
const countUp = new window.countUp.CountUp(element, value, options);
|
countUp.start()
|
||||||
if (!countUp.error) {
|
}
|
||||||
countUp.start();
|
}
|
||||||
}
|
})
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { Dropdown } from './bootstrap';
|
import { Dropdown } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Core dropdowns
|
Core dropdowns
|
||||||
*/
|
*/
|
||||||
let dropdownTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'));
|
let dropdownTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'))
|
||||||
dropdownTriggerList.map(function (dropdownTriggerEl) {
|
dropdownTriggerList.map(function (dropdownTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
boundary: dropdownTriggerEl.getAttribute('data-bs-boundary') === 'viewport' ? document.querySelector('.btn') : 'clippingParents',
|
boundary: dropdownTriggerEl.getAttribute('data-bs-boundary') === 'viewport' ? document.querySelector('.btn') : 'clippingParents',
|
||||||
}
|
}
|
||||||
return new Dropdown(dropdownTriggerEl, options);
|
return new Dropdown(dropdownTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
// Input mask plugin
|
// Input mask plugin
|
||||||
|
|
||||||
var maskElementList = [].slice.call(document.querySelectorAll('[data-mask]'));
|
var maskElementList = [].slice.call(document.querySelectorAll('[data-mask]'))
|
||||||
maskElementList.map(function (maskEl) {
|
maskElementList.map(function (maskEl) {
|
||||||
window.IMask && new window.IMask(maskEl, {
|
window.IMask &&
|
||||||
mask: maskEl.dataset.mask,
|
new window.IMask(maskEl, {
|
||||||
lazy: maskEl.dataset['mask-visible'] === 'true'
|
mask: maskEl.dataset.mask,
|
||||||
})
|
lazy: maskEl.dataset['mask-visible'] === 'true',
|
||||||
});
|
})
|
||||||
|
})
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { Popover } from './bootstrap';
|
import { Popover } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Core popovers
|
Core popovers
|
||||||
*/
|
*/
|
||||||
let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
|
let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
|
||||||
popoverTriggerList.map(function (popoverTriggerEl) {
|
popoverTriggerList.map(function (popoverTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
delay: {show: 50, hide: 50},
|
delay: { show: 50, hide: 50 },
|
||||||
html: popoverTriggerEl.getAttribute('data-bs-html') === "true" ?? false,
|
html: popoverTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||||
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto'
|
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||||
};
|
}
|
||||||
return new Popover(popoverTriggerEl, options);
|
return new Popover(popoverTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
23
core/js/src/sortable.js
Normal file
23
core/js/src/sortable.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// SortableJS plugin
|
||||||
|
// Initializes Sortable on elements marked with [data-sortable]
|
||||||
|
// Allows options via JSON in data attribute: data-sortable='{"animation":150}'
|
||||||
|
|
||||||
|
const sortableElements = document.querySelectorAll('[data-sortable]')
|
||||||
|
|
||||||
|
if (sortableElements.length) {
|
||||||
|
sortableElements.forEach(function (element) {
|
||||||
|
let options = {}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const rawOptions = element.getAttribute('data-sortable')
|
||||||
|
options = rawOptions ? JSON.parse(rawOptions) : {}
|
||||||
|
} catch (e) {
|
||||||
|
// ignore invalid JSON
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.Sortable) {
|
||||||
|
// eslint-disable-next-line no-new
|
||||||
|
new window.Sortable(element, options)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Switch icons
|
Switch icons
|
||||||
*/
|
*/
|
||||||
let switchesTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'));
|
let switchesTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'))
|
||||||
switchesTriggerList.map(function (switchTriggerEl) {
|
switchesTriggerList.map(function (switchTriggerEl) {
|
||||||
switchTriggerEl.addEventListener('click', (e) => {
|
switchTriggerEl.addEventListener('click', (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation()
|
||||||
|
|
||||||
switchTriggerEl.classList.toggle('active');
|
switchTriggerEl.classList.toggle('active')
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import { Tab } from './bootstrap';
|
import { Tab } from './bootstrap'
|
||||||
|
|
||||||
export const EnableActivationTabsFromLocationHash = () => {
|
export const EnableActivationTabsFromLocationHash = () => {
|
||||||
const locationHash = window.location.hash;
|
const locationHash = window.location.hash
|
||||||
|
|
||||||
if (locationHash) {
|
if (locationHash) {
|
||||||
const tabsList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]'));
|
const tabsList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]'))
|
||||||
const matchedTabs = tabsList.filter(tab => tab.hash === locationHash);
|
const matchedTabs = tabsList.filter((tab) => tab.hash === locationHash)
|
||||||
|
|
||||||
matchedTabs.map(tab => {
|
matchedTabs.map((tab) => {
|
||||||
new Tab(tab).show();
|
new Tab(tab).show()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export const getColor = (color, opacity = 1) => {
|
|||||||
const c = getComputedStyle(document.body).getPropertyValue(`--${prefix}${color}`).trim()
|
const c = getComputedStyle(document.body).getPropertyValue(`--${prefix}${color}`).trim()
|
||||||
|
|
||||||
if (opacity !== 1) {
|
if (opacity !== 1) {
|
||||||
return hexToRgba(c, opacity)
|
return hexToRgba(c, opacity)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c
|
return c
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import { Toast } from './bootstrap';
|
import { Toast } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Toasts
|
Toasts
|
||||||
*/
|
*/
|
||||||
let toastsTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'));
|
let toastsTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'))
|
||||||
toastsTriggerList.map(function (toastTriggerEl) {
|
toastsTriggerList.map(function (toastTriggerEl) {
|
||||||
if (!toastTriggerEl.hasAttribute('data-bs-target')) {
|
if (!toastTriggerEl.hasAttribute('data-bs-target')) {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const toastEl = new Toast(toastTriggerEl.getAttribute('data-bs-target'));
|
const toastEl = new Toast(toastTriggerEl.getAttribute('data-bs-target'))
|
||||||
|
|
||||||
toastTriggerEl.addEventListener('click', () => {
|
toastTriggerEl.addEventListener('click', () => {
|
||||||
toastEl.show()
|
toastEl.show()
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Tooltip } from './bootstrap';
|
import { Tooltip } from './bootstrap'
|
||||||
|
|
||||||
let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||||
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
delay: {show: 50, hide: 50},
|
delay: { show: 50, hide: 50 },
|
||||||
html: tooltipTriggerEl.getAttribute("data-bs-html") === "true" ?? false,
|
html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||||
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto'
|
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||||
};
|
}
|
||||||
return new Tooltip(tooltipTriggerEl, options);
|
return new Tooltip(tooltipTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -4,32 +4,32 @@
|
|||||||
* This will prevent any flashes of the light theme (default) before switching.
|
* This will prevent any flashes of the light theme (default) before switching.
|
||||||
*/
|
*/
|
||||||
const themeConfig = {
|
const themeConfig = {
|
||||||
"theme": "light",
|
'theme': 'light',
|
||||||
"theme-base": "gray",
|
'theme-base': 'gray',
|
||||||
"theme-font": "sans-serif",
|
'theme-font': 'sans-serif',
|
||||||
"theme-primary": "blue",
|
'theme-primary': 'blue',
|
||||||
"theme-radius": "1",
|
'theme-radius': '1',
|
||||||
}
|
}
|
||||||
|
|
||||||
const params = new Proxy(new URLSearchParams(window.location.search), {
|
const params = new Proxy(new URLSearchParams(window.location.search), {
|
||||||
get: (searchParams, prop) => searchParams.get(prop),
|
get: (searchParams, prop) => searchParams.get(prop),
|
||||||
})
|
})
|
||||||
|
|
||||||
for (const key in themeConfig) {
|
for (const key in themeConfig) {
|
||||||
const param = params[key]
|
const param = params[key]
|
||||||
let selectedValue
|
let selectedValue
|
||||||
|
|
||||||
if (!!param) {
|
if (!!param) {
|
||||||
localStorage.setItem('tabler-' + key, param)
|
localStorage.setItem('tabler-' + key, param)
|
||||||
selectedValue = param
|
selectedValue = param
|
||||||
} else {
|
} else {
|
||||||
const storedTheme = localStorage.getItem('tabler-' + key)
|
const storedTheme = localStorage.getItem('tabler-' + key)
|
||||||
selectedValue = storedTheme ? storedTheme : themeConfig[key]
|
selectedValue = storedTheme ? storedTheme : themeConfig[key]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedValue !== themeConfig[key]) {
|
if (selectedValue !== themeConfig[key]) {
|
||||||
document.documentElement.setAttribute('data-bs-' + key, selectedValue)
|
document.documentElement.setAttribute('data-bs-' + key, selectedValue)
|
||||||
} else {
|
} else {
|
||||||
document.documentElement.removeAttribute('data-bs-' + key)
|
document.documentElement.removeAttribute('data-bs-' + key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user