1
0
mirror of https://github.com/tabler/tabler.git synced 2025-12-21 17:34:25 +04:00

Compare commits

...

176 Commits

Author SHA1 Message Date
codecalm
8abd2a8d20 chore: update package versions to 1.2.0 2025-04-16 14:38:26 +02:00
codecalm
226f9bd202 Update SRI integrity keys for CSS and JS assets 2025-04-16 14:34:05 +02:00
Paweł Kuna
255bea88b1 Update config.json 2025-04-16 14:25:14 +02:00
github-actions[bot]
8525276984 chore: update versions (#2195)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-16 14:19:47 +02:00
Paweł Kuna
f3182c6538 Update dull-kings-type.md 2025-04-16 14:16:14 +02:00
Paweł Kuna
6d6d1bde4c Add responsive font size for form controls on mobile devices (#2248) 2025-04-16 14:14:30 +02:00
codecalm
2b6d6b184b Add SRI integrity keys for RTL CSS plugins 2025-04-16 00:15:45 +02:00
codecalm
5b2ee97aa7 Rename tablerCssPlugins to cssPlugins for consistency 2025-04-16 00:06:27 +02:00
codecalm
681f7a5fed Add SRI hashes to scripts and styles 2025-04-16 00:02:08 +02:00
BG-Software
9910dd0dde Add text features menu item (#2256)
Co-authored-by: codecalm <codecalm@gmail.com>
2025-04-16 00:00:24 +02:00
Paweł Kuna
8d4f8d07c3 Add documentation App (#2219) 2025-04-15 23:18:49 +02:00
Paweł Kuna
199f39a52e Update bootstrap dependency to version 5.3.5 (#2263) 2025-04-15 23:12:32 +02:00
AEonAX
94bea005a4 Make scrollbar track transparent (#2260) 2025-04-15 20:00:47 +02:00
carlosmintfan
0d501e9017 Correct aria-label of app menu link (#2261)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-04-15 20:00:35 +02:00
codecalm
00e9c06f11 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-04-15 19:55:13 +02:00
codecalm
52710a339a Add .env to .gitignore to prevent environment file from being tracked 2025-04-15 19:55:11 +02:00
Mikołaj Sojka
6c566cf7b1 Add new advanced table example (#2243)
Co-authored-by: codecalm <codecalm@gmail.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-30 21:19:55 +02:00
codecalm
523f288c8f Remove preview patch from changeset and update avatars page description 2025-03-30 21:19:19 +02:00
Paweł Kuna
864619201e Add avatars page with various demos of avatars (#2254) 2025-03-30 20:14:38 +02:00
codecalm
f9e4da2fb0 Replace Font Awesome icon with GitHub and add GitLab icon to brands 2025-03-30 20:04:25 +02:00
Paweł Kuna
c70806a9db Add dropdown enhancements and new apps card with brand icons (#2249) 2025-03-30 19:59:30 +02:00
Paweł Kuna
44250db908 Update avatar size variable to support list size configuration (#2253) 2025-03-29 21:51:43 +01:00
codecalm
137e5be8f2 Remove default padding from body for consistent layout 2025-03-26 23:27:49 +01:00
codecalm
ffdf712f8a Refactor border-radius CSS variable handling for improved clarity 2025-03-26 23:18:50 +01:00
Paweł Kuna
4846828f39 Fix scrollbar color mixin to use body color variable instead of RGB (#2246) 2025-03-26 22:35:20 +01:00
Paweł Kuna
e8e3857b00 Update pull request trigger for lockfiles workflow (#2247) 2025-03-26 22:32:08 +01:00
codecalm
91b026507b Dependencies update 2025-03-26 00:44:06 +01:00
dependabot[bot]
f9013873b9 Bump xalvarez/prevent-file-change-action from 1 to 2 (#2192)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-26 00:08:59 +01:00
Paweł Kuna
ddcd3a79e1 Refactor SCSS for alerts and close button styles (#2239) 2025-03-26 00:06:21 +01:00
Paweł Kuna
c20d076b74 Refactor border-radius in components to use CSS variables (#2240) 2025-03-26 00:06:08 +01:00
Paweł Kuna
042e50f979 Refactor disabled color variables in navbars (#2238) 2025-03-26 00:05:50 +01:00
Paweł Kuna
e14e4921b5 Fix scrollbar jumps when content is higher than screen (#2237) 2025-03-26 00:05:28 +01:00
codecalm
d61cddb3d6 Update icon for Addons section in menu.json 2025-03-24 20:06:25 +01:00
codecalm
0accf60a63 Update SRI generation script to reference tabler-theme.min.js 2025-03-24 01:42:41 +01:00
codecalm
d3daf7a5db Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-03-24 01:28:09 +01:00
codecalm
8ac0742cc7 Update @tabler/core version to minor and add steps light colors 2025-03-24 01:28:08 +01:00
Paweł Kuna
f94b153f7f Add SRI generation script (#2104) 2025-03-24 01:26:53 +01:00
Paweł Kuna
74e5d26c20 Fix color badge in navbar menu (#2236) 2025-03-24 00:29:59 +01:00
codecalm
9a9dedf1b4 Add "New" badge to settings link in navbar 2025-03-24 00:27:06 +01:00
dependabot[bot]
e704a5a946 Bump @babel/helpers from 7.26.9 to 7.26.10 (#2218)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 00:17:15 +01:00
Paweł Kuna
dd26b62607 Create theme support script in core (#2234) 2025-03-24 00:13:50 +01:00
Paweł Kuna
9fceadd422 Fix tooltip colors in vector maps (#2235) 2025-03-23 23:19:10 +01:00
codecalm
9c368702b4 Refactor settings layout and include JavaScript capture script 2025-03-23 22:36:26 +01:00
Mikołaj Sojka
3fc7b84fc4 add space between page numbers (#2232)
Co-authored-by: codecalm <codecalm@gmail.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-23 22:24:51 +01:00
Mikołaj Sojka
b17b488c96 Add steps light colors (#2230)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-23 21:08:05 +01:00
Paweł Kuna
9bbcb99b90 Add theme settings (#2054) 2025-03-23 20:52:06 +01:00
Paweł Kuna
215eaa4acb Add Turbo library integration and update dependencies (#2223) 2025-03-23 20:51:10 +01:00
Paweł Kuna
92a3afe492 Replaced TinyMCE with Hugerte to address license violation (#2008) 2025-03-23 20:50:54 +01:00
Mikołaj Sojka
19a3d20fad Delete missing demo RTL style (#2231)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-23 20:48:50 +01:00
Yami Odymel
8cd7b186b7 Add missing "tw" entry to flags.mdx (#2226)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-23 20:48:11 +01:00
Yami Odymel
be1f3d1c1f Fix broken shape in kr.svg (#2227)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-23 20:45:10 +01:00
Mikołaj Sojka
2f8a37252d 1865-export-bootstrap-js-components (#2214)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-17 22:44:00 +01:00
Yami Odymel
d73d78e76f Add missing "tw" entry in flags.json for tw.svg (#2217)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
Co-authored-by: codecalm <codecalm@gmail.com>
2025-03-17 22:41:49 +01:00
Paweł Kuna
f84e88116c Update package dependencies to latest versions (#2222) 2025-03-17 22:32:36 +01:00
Abdelrhman Said
473fa3850b Apply border radius to tom-select on focus (#2189)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-17 22:20:16 +01:00
Paweł Kuna
f336275476 Add initial package.json for docs with build script (#2221) 2025-03-17 22:17:01 +01:00
Paweł Kuna
982bc5a09b Refactor script and modal captures (#2220) 2025-03-16 21:39:14 +01:00
codecalm
5fe99e0510 Remove unused preview patch from changesets and rollback accordion component structure 2025-03-16 20:48:38 +01:00
codecalm
1527157bfe Disable test job for draft pull requests in Argos workflow 2025-03-16 20:45:37 +01:00
ethancrawford
922bb0346a Minor spelling and grammar improvements to emails docs (#2191)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-10 21:55:52 +01:00
Paweł Kuna
e3d68d6aab Refactor autosize and input mask plugins to use window scope (#2208) 2025-03-10 21:54:01 +01:00
Paweł Kuna
aea3b0a614 Rollback accordion component structure (#2207) 2025-03-10 21:53:44 +01:00
Robin1-23
cd592b4743 Replace HTML alt attribute to aria-title used on SVG element (#2196)
Co-authored-by: robin0556 <roobinxyz@gmail.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-06 18:07:51 +01:00
codecalm
c59bc9d977 Add gradient background utilities to core package 2025-03-06 18:07:25 +01:00
Paweł Kuna
bc443ff4aa Add gradient background utilities (#2164) 2025-03-06 18:06:02 +01:00
codecalm
afd024f0b1 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-03-06 18:01:56 +01:00
codecalm
d29b6f5675 Add zip script to package.json build process 2025-03-06 18:01:54 +01:00
ethancrawford
6b6617aae6 Improve README.md (#2165)
Co-authored-by: BG-Software <73077398+BG-Software-BG@users.noreply.github.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-04 19:16:36 +01:00
Bartłomiej Gawęda
636fed5fe9 Remove wrong image from Tabler Emails docs 2025-03-02 16:39:15 +01:00
Paweł Kuna
d7f4f50986 Refactor modal component structure and update modal examples (#2138)
Co-authored-by: Kevin Papst <kevinpapst@users.noreply.github.com>
2025-03-02 13:16:17 +01:00
github-actions[bot]
6d0271ad57 chore: update versions (#2187)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-01 14:53:46 +01:00
Paweł Kuna
f29c911032 Fix Documentation structure (#2186) 2025-03-01 14:50:35 +01:00
BG-Software
01ee740535 Documentation for Tabler Emails (#2163)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-01 14:44:16 +01:00
codecalm
7d5d9bc847 chore: mark banner package as private 2025-03-01 14:30:41 +01:00
codecalm
776a85cf1a chore: remove obsolete changeset files for layout and styling updates 2025-03-01 14:25:42 +01:00
github-actions[bot]
ac10f55405 chore: update versions (#2131)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-01 14:19:38 +01:00
codecalm
d0f45a41f8 update changes pririties 2025-03-01 14:08:28 +01:00
codecalm
16a42ba330 Fix signature component with styling and update canvas dimensions 2025-03-01 13:46:18 +01:00
codecalm
f7d5b6a05e Add Playwright configuration and visual regression tests; refactor SCSS files and update component naming 2025-03-01 13:03:42 +01:00
Paweł Kuna
4376968bca add Signature Pad feature (#2183)
Co-authored-by: ethancrawford <ethan_jc@hotmail.com>
2025-03-01 12:36:41 +01:00
Paweł Kuna
dee2b8ad64 Replace Playwright workflow with Argos workflow for testing (#2185) 2025-03-01 12:27:51 +01:00
BG-Software
2c9a4dfb37 Decrease padding of form-control input in 2-step-verification-code (#2181) 2025-02-28 10:19:37 +01:00
Paweł Kuna
e46fec5050 Update twelve-shirts-mix.md 2025-02-28 00:11:53 +01:00
Paweł Kuna
f3c409ffc2 Refactor alert component styles and markup, remove Bootstrap styles (#2141) 2025-02-28 00:04:50 +01:00
codecalm
309ff40a48 Update package versions in package.json 2025-02-26 19:37:25 +01:00
codecalm
eea2d38f39 Remove unused dependencies from pnpm-lock.yaml 2025-02-26 19:33:40 +01:00
codecalm
876bec9db3 Remove console log from HTML formatting in reformat-mdx script 2025-02-26 19:22:41 +01:00
codecalm
f06cce0300 Clean up HTML syntax and remove unused dependencies in documentation and package.json 2025-02-26 19:20:37 +01:00
codecalm
e1931f8c37 Refactor accordion component styles and markup, remove preview dependency 2025-02-26 18:55:53 +01:00
Paweł Kuna
c240b5ad21 Refactor accordion component styles and markup, remove Bootstrap styles (#2139) 2025-02-26 18:53:01 +01:00
codecalm
baafe08d6e Add condition to skip tests for draft pull requests in Playwright workflow 2025-02-26 18:38:27 +01:00
codecalm
cba487f5b7 build fix 2025-02-19 03:19:27 +01:00
Paweł Kuna
edbaa1eddd Add selectable table functionality with active background color (#2171) 2025-02-19 03:16:53 +01:00
Paweł Kuna
378fba89f5 Refactor badge styles, remove Bootstrap styles (#2169) 2025-02-19 02:20:25 +01:00
codecalm
b0a62b7cf5 Add threshold option to argosScreenshot for improved visual comparison 2025-02-19 02:09:48 +01:00
codecalm
1415820cb1 Fix screenshot filename in visual regression tests to use the correct HTML file name 2025-02-19 01:49:58 +01:00
codecalm
81a8738823 Remove limit on visual regression tests to include all HTML files for comprehensive comparison 2025-02-19 01:45:59 +01:00
codecalm
417d0bc444 Fix Playwright version retrieval in workflow to use devDependencies from package.json 2025-02-19 01:31:54 +01:00
codecalm
22e10d4dba Refactor Playwright workflow by removing unnecessary artifact upload step 2025-02-19 01:22:17 +01:00
codecalm
57f6219f7c Integrate Argos CI for visual regression testing and streamline screenshot comparison 2025-02-19 01:18:22 +01:00
codecalm
fbe3680142 Limit visual regression tests to the first 10 HTML files for improved performance 2025-02-19 01:14:53 +01:00
codecalm
c2b446c209 Enhance Playwright workflow with version retrieval and caching for improved performance 2025-02-19 01:13:48 +01:00
codecalm
09844ab64b Remove snapshot update flag from Playwright test command 2025-02-19 01:09:11 +01:00
codecalm
cea1c87c21 Update Playwright test command to include snapshot updates 2025-02-19 01:06:31 +01:00
Paweł Kuna
a2640e2147 Add Playwright configuration and visual regression tests (#2170) 2025-02-19 00:58:10 +01:00
Paweł Kuna
9cd532745a Update border radius variables for consistency across components (#2167) 2025-02-15 13:33:39 +01:00
Paweł Kuna
063bdc28ab Update and simplify main menu (#2166) 2025-02-15 13:20:29 +01:00
Luca Sabato
5d8392366c Fixed missing images in the README and getting started page + minor formatting changes (#2161)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-14 14:14:28 +01:00
Paweł Kuna
2d05b5d5d3 Fix chart styling with border-radius (#2160) 2025-02-14 00:17:37 +01:00
Paweł Kuna
ca4ba14718 Enhance navbar styles with new hover effects and color variables (#2159) 2025-02-14 00:01:41 +01:00
codecalm
9755e1e9e9 Update changelog to consolidate payment provider support details 2025-02-13 23:07:24 +01:00
codecalm
954e42f9c0 Update changelog texts 2025-02-13 23:06:57 +01:00
BG-Software
b47815d530 Fix instruction for CDN icons version (#2157) 2025-02-13 23:00:18 +01:00
oksuzgil
1edaff454b New payment provider (TROY) (#2146)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
Co-authored-by: codecalm <codecalm@gmail.com>
2025-02-13 22:59:45 +01:00
Paweł Kuna
b47725dcc2 New text features page (#2152) 2025-02-13 22:49:42 +01:00
Luca Sabato
b85ef1a95e added "start" command to package.json scripts as alias for dev (#2156)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-13 22:49:29 +01:00
Paweł Kuna
eff95dc033 Add section comments and format HTML for improved readability (#2158) 2025-02-13 22:41:46 +01:00
ethancrawford
846c48d140 Add various spelling fixes and grammar improvements (#2153)
Co-authored-by: BG-Software <73077398+BG-Software-BG@users.noreply.github.com>
2025-02-13 22:29:45 +01:00
codecalm
ee3862fcf4 Enhance Markdown styling by adding image support in paragraphs and updating image reference in example 2025-02-13 21:41:08 +01:00
codecalm
2fe9e70b54 Update layout for Markdown page to use 'markdown' layout 2025-02-13 21:37:55 +01:00
codecalm
002528fadd Refactor colorpicker to use dynamic color values from site.colors 2025-02-13 21:34:08 +01:00
codecalm
ee5e25a52b Bump @tabler/core version to minor 2025-02-12 21:14:35 +01:00
Paweł Kuna
bd3d959cea Refactor SCSS files to replace divide function with calc (#2150) 2025-02-12 21:12:52 +01:00
BG-Software
afd070012d Fix apexcharts heatmap example in docs (#2147) 2025-02-12 21:12:25 +01:00
ethancrawford
d6a10938e3 Fix broken 'top pages' table (#2144)
Co-authored-by: BG-Software <73077398+BG-Software-BG@users.noreply.github.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-12 21:09:14 +01:00
Paweł Kuna
f95f2509c7 Update color utility classes and fix colors in pricing page (#2122) 2025-02-12 21:01:04 +01:00
codecalm
3dea9de29c Add "preview" to ignore list in changeset configuration 2025-02-12 19:48:41 +01:00
codecalm
3b0623fc42 build fix 2025-02-12 19:44:43 +01:00
Bartłomiej Gawęda
f38fac3508 Remove rimraf in preview 2025-02-12 19:36:55 +01:00
Paweł Kuna
b4b4d1a816 Add Scroll Spy page (#2142) 2025-02-12 19:21:31 +01:00
Bartłomiej Gawęda
821a1c5405 Use shx for mkdir and rm commands, remove rimraf 2025-02-12 19:11:04 +01:00
codecalm
1b0266e612 Enhance copy-img script to ensure destination directory exists and use shx for cross-platform compatibility 2025-02-12 18:59:23 +01:00
codecalm
3320246d0f Fix clean script in package.json to remove only the dist directory 2025-02-12 18:45:59 +01:00
codecalm
55f467c945 Replace background tasks with concurrently for improved script execution in package.json 2025-02-12 18:37:16 +01:00
codecalm
958ad128ad Refactor package.json scripts for improved readability and consistency 2025-02-12 18:31:04 +01:00
codecalm
06c3b5dd65 Update pnpm to version 9.15.4 in package.json and pnpm-lock.yaml 2025-02-11 20:00:05 +01:00
codecalm
cac2606016 Use cross-env for setting NODE_ENV in watch-html script for better compatibility 2025-02-11 19:52:00 +01:00
codecalm
bc3a8360a7 Add pnpm as a dependency in package.json and update pnpm-lock.yaml 2025-02-11 19:50:52 +01:00
codecalm
6b3bf15c4c Replace 'rm -rf' with 'rimraf' for cross-platform compatibility in clean scripts 2025-02-11 19:15:43 +01:00
Paweł Kuna
76f5de44e7 Update timeline card layout and profile header styles (#2140)
* Update timeline card layout and profile header styles

* Create large-walls-wave.md
2025-02-08 14:14:38 +01:00
Paweł Kuna
24b944cbdc Remove box-shadow from avatar styles for a cleaner appearance (#2137)
* Remove box-shadow from avatar styles for a cleaner appearance

* Create ten-houses-punch.md
2025-02-08 13:58:39 +01:00
BG-Software
687267de38 Fix overflow of label in a floating-input (#2072)
* Fix overflow of label in a floating-input

Temporary fix for the bug in twbs/bootstrap v5.3.3.

* Create dry-rice-march.md

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-02-08 13:57:11 +01:00
Paweł Kuna
ea144622a1 Add documentation for segmented control component (#2134)
* Add documentation for segmented control component

* Enhance documentation for segmented control component with additional examples and usage guidelines

* Create stale-pianos-crash.md

* Add changeset for @tabler/core minor update
2025-02-06 21:59:04 +01:00
codecalm
52fa8658ea Update package dependencies to latest versions 2025-02-06 21:28:25 +01:00
codecalm
ffa095f981 Update asset paths from 'core' to 'dist' in configuration and layout files 2025-02-06 18:45:17 +01:00
codecalm
6b7a761fd4 Update robots.txt handling and improve sitemap URL generation 2025-02-06 18:24:17 +01:00
codecalm
3b85669999 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-06 18:24:00 +01:00
codecalm
ffaf92b67b Update changeset for segmented control component 2025-02-06 18:23:58 +01:00
falsulaiman
78383ef568 Update _nav.scss (#2133)
* Update _nav.scss

### Issue: Dash (`-`) causing W3C validator error and CSS issues

**Problem**:
The use of a dash (`-`) in certain areas is triggering errors in the W3C validator and affecting the proper functioning of CSS.

1. **HTML Issue**: The dash might be incorrectly placed in attribute names or element IDs, causing validation errors.
   - Example: `data-name` is fine, but ensure it's used correctly and within the valid context.

2. **CSS Issue**: If the dash is used improperly in class or ID names, it can cause selector issues in CSS.
   - Example: `.my-class-name` is correct, but make sure that the class is correctly applied to the element and styled properly in CSS.

**Proposed Fix**:
- Ensure that any attribute or class names are formatted correctly. For example, `data-name` is valid, but check for any spelling mistakes or misplaced dashes.
- In CSS, ensure proper selector syntax like:
   ```css
   .my-class-name {
       /* Styles here */
   }

* Fix margin calculation for nav links in _nav.scss

* Create red-pens-punch.md

---------

Co-authored-by: codecalm <codecalm@gmail.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-06 18:23:13 +01:00
Paweł Kuna
cb278c762d Add segmented control component (#2087)
* Add segmented control component and update related files

* Implement segmented navigation component and update related styles

* Create grumpy-flowers-act.md

* Refactor .gitignore and move playground pages to preview directory

* Enhance segmented navigation with hover state and class support

* Refactor segmented control layout for improved responsiveness and alignment
2025-02-06 18:02:46 +01:00
codecalm
117fbbb2d5 Update .gitignore to include preview directory files 2025-02-06 00:07:17 +01:00
codecalm
60699ed9c3 Remove "New" badges from menu items in menu.json 2025-02-05 23:06:31 +01:00
codecalm
54f0802f72 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-05 22:52:38 +01:00
codecalm
c2afa77258 update changesets 2025-02-05 22:52:37 +01:00
BG-Software
c079e646ef Improve documentation for buttons (#2129)
* Fix background-image of buttons with avatars

* Remove duplicated code blocks in buttons docs

+ Fix links to tabler.io/icons.
+ Replace Twitter with X on icon button.

* Create silly-lobsters-move.md
2025-02-05 22:51:34 +01:00
codecalm
1394c3420c Merge branch 'main' of https://github.com/tabler/tabler into dev 2025-02-05 22:51:16 +01:00
codecalm
92275670f5 Add styles for tom-select and nouislider to libs.json 2025-02-05 22:50:23 +01:00
codecalm
37af5425ff Enhance autosize and input mask initialization with conditional checks; update Eleventy config to set server passthrough copy behavior 2025-02-05 22:19:18 +01:00
codecalm
d40dc60cd8 Update environment variable handling in Eleventy configuration 2025-02-05 22:12:30 +01:00
codecalm
0689fa2abf Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-05 22:05:42 +01:00
codecalm
4268994034 Change release workflow trigger branch from main to dev 2025-02-05 22:05:40 +01:00
Paweł Kuna
8dffb4e345 Update robots.txt handling and improve sitemap URL generation (#2130)
* Update robots.txt handling and improve sitemap URL generation

* Add dynamic page data handling and update sitemap generation

* Remove debug output from sitemap generation

* Create thin-clouds-glow.md
2025-02-05 22:04:57 +01:00
codecalm
bc5951b50d Add build step to bundlewatch workflow 2025-02-03 23:04:41 +01:00
codecalm
f8a7a13f6b Remove unnecessary dependency on bundlewatch in turbo configuration 2025-02-03 03:00:27 +01:00
carlosmintfan
b28ce9f2e8 Fix vertical alignment in single page and error layouts (#2114)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
Co-authored-by: codecalm <codecalm@gmail.com>
2025-02-03 02:56:29 +01:00
Paweł Kuna
a370919ebe Refactor bundlewatch workflow to use Turbo (#2119) 2025-02-03 02:54:15 +01:00
codecalm
09a7e10ef1 Remove PNPM version specification from workflow files 2025-02-03 02:49:59 +01:00
codecalm
0afaaf2348 Add banner generation to CSS files and update package metadata 2025-02-01 22:50:26 +01:00
codecalm
f04cf51047 Update output paths in build configuration and HTML templates to use 'preview' directory 2025-02-01 22:06:08 +01:00
Paweł Kuna
eaa7f81604 Monorepo structure, remove Gulp, new build process (#2116) 2025-02-01 21:05:00 +01:00
carlosmintfan
ce98145fb2 Make marketing pages fully support dark mode (#2081) 2025-02-01 21:03:09 +01:00
carlosmintfan
d3ae77cf8b Enable scrollSpy in countup module (#2113)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-01 21:01:29 +01:00
carlosmintfan
28131f42df Remove mention of bundler from README (#2076) 2025-02-01 20:56:49 +01:00
BG-Software
06b1dec645 Fix size of apexcharts tooltip marker (#2115) 2025-02-01 11:40:48 +01:00
codecalm
9a46a8fbf9 fix: update payment methods to use 'logo' instead of 'code' 2025-01-30 00:26:06 +01:00
codecalm
9237d12cac chore: remove 'dev' branch from release workflow triggers 2025-01-29 22:57:24 +01:00
2388 changed files with 21271 additions and 16256 deletions

View File

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

View File

@@ -1,57 +0,0 @@
#!/usr/bin/env node
'use strict'
const fs = require('node:fs')
const path = require('node:path')
const request = require('request')
const filePath = path.join(__dirname, '../src/pages/_data/photos.json')
const photos = JSON.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, JSON.stringify(photos))
}
downloadPhotos();

View File

@@ -1,37 +0,0 @@
#!/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

@@ -1,44 +0,0 @@
#!/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)
)
// let i = {}
// const dirs = ['light', 'dark', 'autodark']
// const ilustrations = ['not-found', 'computer-fix', 'boy-with-key', 'boy-girl']
// for(const dir of dirs) {
// i[dir] = {}
// for(const ilustration of ilustrations) {
// let svg = fs.readFileSync(path.join(__dirname, `../src/pages/_free-illustrations/${dir}/${ilustration}.svg`), 'utf8')
// svg = svg
// .replace(/\n+/g, ' ')
// .replace(/>\s+</g, '><')
// .replace(/\s+/g, ' ')
// .replace(/^[\n\s-]+/, '')
// i[dir][ilustration] = svg
// }
// }
// fs.writeFileSync(
// path.join(__dirname, `../src/pages/_data/free-illustrations.json`),
// JSON.stringify(i)
// )

View File

@@ -1,36 +0,0 @@
#!/usr/bin/env node
'use strict'
const fs = require('fs'),
path = require('path'),
glob = require('glob'),
beautifyHtml = require('js-beautify').html;
const docs = glob
.sync(path.join(__dirname, `../docs/**/*.mdx`))
docs.forEach((file, i) => {
const oldContent = fs.readFileSync(file, 'utf8')
// get codeblocks from markdown
const content = oldContent.replace(/(```([a-z0-9]+).*?\n)(.*?)(```)/gs, (m, m1, m2, m3, m4) => {
if (m2 === 'html') {
let m3m = beautifyHtml(m3, {
"indent_size": 2,
"indent_char": " ",
}).trim();
// remove empty lines
m3m = m3m.replace(/^\s*[\r\n]/gm, '');
return m1 + m3m + "\n" + m4;
}
return m
})
if (content !== oldContent) {
fs.writeFileSync(file, content, 'utf8')
console.log(`Reformatted ${file}`)
}
})

63
.build/reformat-mdx.mjs Normal file
View File

@@ -0,0 +1,63 @@
#!/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,26 +0,0 @@
const glob = require('glob');
const fs = require('fs')
const path = require('path')
const srcDir = path.join(__dirname, '../src')
let foundFiles = []
glob.sync(`${srcDir}/pages/**/*.{html,md}`).forEach((file) => {
let fileContent = fs.readFileSync(file)
fileContent.toString().replace(/\{% include(_cached)? "([a-z0-9\/_-]+\.html)"/g, (f, c, filename) => {
filename = `${srcDir}/pages/_includes/${filename}`
if (!foundFiles.includes(filename)) {
foundFiles.push(filename)
}
})
})
let includeFiles = glob.sync(`${srcDir}/pages/_includes/**/*.html`)
includeFiles.forEach((file) => {
if (!foundFiles.includes(file)) {
console.log('file', file)
}
})

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Add SRI hashes to scripts and styles

View File

@@ -5,6 +5,6 @@
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"baseBranch": "dev",
"ignore": []
}

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Add "text features" menu item

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Correct `aria-label` of app menu link

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Fix color badge in navbar menu

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Add missing `tw` entry in `flags.json`

View File

@@ -0,0 +1,5 @@
---
"@tabler/preview": patch
---
Delete missing demo RTL style

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Use the full license agreement for illustrations in docs

67
.github/workflows/argos.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: Argos Tests
on:
push:
branches:
- dev
pull_request:
paths:
- 'preview/**/*.js'
- 'preview/**/*.html'
- 'preview/**/*.scss'
- 'core/**/*.js'
- 'core/**/*.scss'
env:
NODE: 20
permissions:
contents: read
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
# if: github.event.pull_request.draft == false
if: false
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE }}"
- name: Install PNPM
uses: pnpm/action-setup@v4
- name: Get installed Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
- name: Cache playwright binaries
uses: actions/cache@v4
id: playwright-cache
with:
path: |
~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: Install pnpm dependencies
run: pnpm install
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Run Playwright tests
run: pnpm run playwright

View File

@@ -19,6 +19,14 @@ jobs:
- name: Clone repository
uses: actions/checkout@v4
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Set up Node.js
uses: actions/setup-node@v4
with:
@@ -26,8 +34,6 @@ jobs:
- name: Install PNPM
uses: pnpm/action-setup@v4
with:
version: 8
- name: Set up Bundler
uses: ruby/setup-ruby@v1
@@ -38,9 +44,6 @@ jobs:
- name: Install pnpm dependencies
run: pnpm install --no-frozen-lockfile
- name: Run build
run: pnpm run build
- name: Run bundlewatch
run: pnpm run bundlewatch
env:

View File

@@ -1,6 +1,7 @@
name: Changed lock files
on:
pull_request: null
pull_request_target:
types: [opened, reopened]
permissions:
pull-requests: read
@@ -14,7 +15,7 @@ jobs:
uses: actions/checkout@v4
- name: Prevent lock file change
uses: xalvarez/prevent-file-change-action@v1
uses: xalvarez/prevent-file-change-action@v2
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
pattern: Gemfile.lock|pnpm-lock.json

View File

@@ -3,7 +3,6 @@ name: Release
on:
push:
branches:
- main
- dev
permissions:
@@ -31,8 +30,6 @@ jobs:
- name: Install PNPM
uses: pnpm/action-setup@v4
with:
version: 8
- name: Install Dependencies
run: pnpm install

View File

@@ -1,8 +1,7 @@
name: Test build
on:
pull_request:
types: [ opened, reopened ]
pull_request: null
env:
NODE: 20
@@ -17,6 +16,14 @@ jobs:
- name: Clone repository
uses: actions/checkout@v4
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Set up Node.js
uses: actions/setup-node@v4
with:
@@ -24,8 +31,6 @@ jobs:
- name: Install PNPM
uses: pnpm/action-setup@v4
with:
version: 8
- run: node --version

12
.gitignore vendored
View File

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

View File

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

16
.vscode/settings.json vendored
View File

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

229
README.md
View File

@@ -1,5 +1,5 @@
<p align="center">
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/preview/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
A premium and open source dashboard template with a responsive and high-quality UI.
</p>
@@ -15,34 +15,53 @@ A premium and open source dashboard template with a responsive and high-quality
## Sponsors
**If you want to support our project and help me grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
**If you want to support our project and help us grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
<p align="center">
<a href="https://github.com/sponsors/codecalm">
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
</a>
<a href="https://github.com/sponsors/codecalm">
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
</a>
</p>
<p align="center">
<a href="https://github.com/sponsors/codecalm" target="_blank">
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/sponsor-banner-homepage.svg" alt="Sponsor Banner">
</a>
</p>
## 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">
<a href="https://www.lambdatest.com/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/14dd2a0a-bafe-436e-a6cb-29636278c781">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83">
<img src="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83" alt="Tabler Icons preview" width="296">
</picture>
</a>
<a href="https://www.lambdatest.com/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/14dd2a0a-bafe-436e-a6cb-29636278c781">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83">
<img src="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83" alt="labmdatest" width="296">
</picture>
</a>
</p>
## 🔎 Preview
Tabler is fully responsive and compatible with all modern browsers. Thanks to its modern and user-friendly design you can create a fully functional interface that users will love! Choose the layouts and components you need and customize them to make your design consistent and eye-catching. Every component has been created with attention to detail to make your interface beautiful! <a href="https://preview.tabler.io">Show me a demo</a>
<a href="https://preview.tabler.io" target="_blank"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/static/tabler-preview.png" alt="Tabler preview"></a>
<p align="center">
<a href="https://preview.tabler.io" target="_blank">
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/tabler-preview.png" alt="Tabler Preview">
</a>
</p>
## 🚀 Features
@@ -53,110 +72,30 @@ We've created this admin panel for everyone who wants to create templates based
* **HTML5 & CSS3:** We use only modern web technologies, such as HTML5 and CSS3. Our theme includes some subtle CSS3 animations, which will help you attract attention.
* **Clean Code:** We followed Bootstraps guidelines carefully to make your integration as easy as possible. All code is handwritten and W3C valid.
* **Demo pages**: Tabler features over 20 individual pages using various components, which gives you the freedom to choose and combine. All components can vary in color and styling that you can easily modify using Sass. Sky is the limit!
* **Single Page Application versions:** [Tabler React](https://github.com/tabler/tabler-react) has React components for Tabler.
## 📖 Documentation
Documentation is available as a part of Tabler preview: https://tabler.io/docs/
To run the documentation site locally, follow instructions in the [Documentation README](https://github.com/tabler/tabler/blob/dev/site/README.md).
The documentation is available at https://tabler.io/docs/
## 🪴 Project Activity
![Alt](https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg "Repobeats analytics image")
## 💕 Sponsor Tabler
<a href="https://github.com/sponsors/codecalm" target="_blank"><img src="/src/static/sponsor-banner-readme.png?raw=true" alt="Sponsor Tabler" /></a>
### Sponsors
Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. [Become a sponsor!](https://opencollective.com/tabler#sponsor)
<a href="https://opencollective.com/tabler/tiers/sponsor/0/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/0/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/1/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/1/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/2/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/2/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/3/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/3/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/4/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/4/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/5/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/5/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/6/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/6/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/7/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/7/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/8/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/8/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/9/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/9/avatar.svg" /></a>
## 📦 Setup environment
To use our build system and run our documentation locally, you'll need a copy of Tabler's source files. Follow the steps below:
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
2. Navigate to the root `/tabler` directory and run `pnpm install` to install our local dependencies listed in `package.json`.
**OSX users**:
```pnpm install```
and then
```npm run start```
**Windows users**:
[Install Git](https://git-scm.com/download/win) in `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
Once you complete the setup, you'll be able to run the various commands provided from the command line.
## Build locally
You need to have `pnpm` and `bundler` installed.
1. From the root `/tabler` directory, run installation in the command line: `pnpm install`
2. Then execute `pnpm run start` to start up the application stack.
3. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
4. Any change in the `/src` directory will build the application and refresh the page.
**Note**:
Run `pnpm run build` for reforms a one off build application without refresh.
Open [http://localhost:3001](http://localhost:3001) to configure the Web server.
<p align="center">
<img src="https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg" alt="Repobeats analytics image" />
</p>
## Installation
Tabler is distributed via npm.
### Package Managers
Tabler is distributed via npm. You can install it with this or your preferred JavaScript package manager:
```sh
npm install --save @tabler/core
```
## Running with Docker
**Plain Docker**
If you don't want to install node/npm and the dependencies on your local environment, you can use the provided Dockerfile to build a docker image.
This Dockerfile is provided as an example to spin-up a container running Tabler.
Example of how to use this image:
1. Build the tabler image : `docker build -t tabler .`
2. Run the tabler image while mounting the `src` directory as well as the `_config.yml` file into the container.
Don't forget to expose the port 3000 so you can browse the website locally.
You can also expose the port 3001 to have access to BrowserSync
```sh
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src -v $(pwd)/_config.yml:/app/_config.yml tabler
```
Now open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
**Docker Compose**
You can also use the docker compose config from this repo. Use `docker compose build && docker compose up` or `docker compose up --build` to build and start the container. Edit anything in the `src/` folder the same way as with plain docker and access the same URLs and ports in your browser.
### CDN support
All files included in `@tabler/core` npm package are available over a CDN.
All files included in `@tabler/core` npm package are also available over a CDN.
#### Javascript
@@ -170,24 +109,84 @@ All files included in `@tabler/core` npm package are available over a CDN.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css">
```
## Feature requests
## Building locally
https://tabler.canny.io/feature-requests
To build a copy of Tabler locally, you have two options. You can either set up your device directly with the development tools required to build Tabler, or if you would prefer not to install all the development dependencies directly onto your device, you can use a Dockerfile that Tabler provides to build a docker image. Instructions follow below.
### First steps: Downloading the Tabler source files
With either method, the first thing you'll want to do is download a copy of the Tabler source files to your device.
#### From the Tabler GitHub releases page
If you don't want to edit the source code once you've downloaded it, and aren't interested in merging future project updates into your copy, you can just download the source files straight from the [Tabler releases on GitHub](https://github.com/tabler/tabler/releases) and extract the contents to a directory called `tabler`.
#### Cloning with Git
If you **do** wish to edit the source code after downloading it, for example to contribute changes back to the Tabler project, you'll want to do this by cloning it with Git:
1. If you don't have Git installed on your device, download and install it. You can find instructions at [https://git-scm.com/downloads](https://git-scm.com/downloads).
2. (Optional) **Windows users:** you could optionally install Git in the `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
3. Clone the Tabler project into a folder on your device. Instructions can be found at [cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
### Installing and running development tools directly
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
2. [Install pnpm](https://pnpm.io/installation) (We recommend either by [Using Corepack](https://pnpm.io/installation#using-corepack) or by [Using npm](https://pnpm.io/installation#using-npm))
3. From the root `/tabler` directory where you downloaded the Tabler source files, run installation on the command line:
```sh
pnpm install
```
4. Then execute the following to start up the application stack:
```sh
pnpm run start
```
5. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
Any change in the `/src` directory will rebuild the application and refresh the page.
**Note**:
If you wish to perform a one-off build without auto-refresh on any changes, you can run:
```sh
pnpm run build
```
You can open [http://localhost:3001](http://localhost:3001) to configure the Web server.
### Installing and running development tools with Docker
**Plain Docker**
Here is an example of how to use this image:
1. From the root `/tabler` directory where you downloaded the Tabler source files, build the tabler image:
```sh
docker build -t tabler .
```
2. Run the tabler image. The following command mounts the `src` directory into the container, exposes port 3000 to browse the website locally, and exposes port 3001 to automatically sync changes:
```sh
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src tabler
```
3. Open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
**Docker Compose**
You can also use the docker compose config from this repo. From the root `/tabler` directory where you downloaded the Tabler source files, use `docker compose build && docker compose up` or `docker compose up --build` to build and start the container. Edit anything in the `src/` folder the same way as with plain docker and access the same URLs and ports in your browser.
## Bugs and feature requests
Found a bug or have a feature request? [Please open a new issue](https://github.com/tabler/tabler/issues/new).
## 🤓 Creators
**Paweł Kuna**
- <https://twitter.com/codecalm>
- <https://x.com/codecalm>
- <https://github.com/codecalm>
- <https://codecalm.net>
**Bartłomiej Gawęda**
- <https://x.com/B_Gaweda>
- <https://github.com/BG-Software-BG>
## 👨‍🚀 Contributors
@@ -195,25 +194,11 @@ This project exists thanks to all the people who contribute.
<img src="https://opencollective.com/tabler/contributors.svg?width=890&button=false" />
## 🌸 Backers
## Social media
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/tabler#backer)
<a href="https://opencollective.com/tabler#backers" target="_blank"><img src="https://opencollective.com/tabler/tiers/backer.svg?width=890&button=false" /></a>
Stay up to date by joining our community on <a href="https://x.com/tabler_io" >X</a> and <a href="https://www.facebook.com/tabler.io">Facebook</a>
## License
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

View File

@@ -0,0 +1,46 @@
#!/usr/bin/env node
'use strict'
import { readFileSync, writeFileSync } from 'node:fs';
import { join, dirname, basename } from 'node:path';
import { fileURLToPath } from 'node:url'
import { sync } from 'glob';
import banner from '../../shared/banner/index.mjs';
const __dirname = dirname(fileURLToPath(import.meta.url))
const styles = sync(join(__dirname, '..', 'dist', 'css', '*.css'))
const plugins = {
'tabler-flags': 'Flags',
'tabler-flags.rtl': 'Flags RTL',
'tabler-marketing': 'Marketing',
'tabler-marketing.rtl': 'Marketing RTL',
'tabler-payments': 'Payments',
'tabler-payments.rtl': 'Payments RTL',
'tabler-socials': 'Socials',
'tabler-socials.rtl': 'Socials RTL',
'tabler-vendors': 'Vendors',
'tabler-vendors.rtl': 'Vendors RTL',
}
styles.forEach((file, i) => {
const content = readFileSync(file, 'utf8')
const filename = basename(file)
const pluginKey = Object.keys(plugins).find(plugin => filename.includes(plugin))
const plugin = plugins[pluginKey]
const regex = /^(@charset ['"][a-zA-Z0-9-]+['"];?)\n?/i
let newContent = ''
if (content.match(regex)) {
newContent = content.replace(regex, (m, m1) => {
return `${m1}\n${banner(plugin)}\n`
})
} else {
newContent = `${banner(plugin)}\n${content}`
}
writeFileSync(file, newContent, 'utf8')
})

107
core/.build/generate-sri.js Normal file
View File

@@ -0,0 +1,107 @@
const crypto = require('node:crypto');
const fs = require('node:fs');
const path = require('node:path');
const sh = require('shelljs');
sh.config.fatal = true
const configFile = path.join(__dirname, '../../shared/data/sri.json')
const files = [
{
file: 'dist/css/tabler.min.css',
configPropertyName: 'css'
},
{
file: 'dist/css/tabler.rtl.min.css',
configPropertyName: 'css-rtl'
},
{
file: 'dist/css/tabler-flags.min.css',
configPropertyName: 'css-flags'
},
{
file: 'dist/css/tabler-flags.rtl.min.css',
configPropertyName: 'css-flags-rtl'
},
{
file: 'dist/css/tabler-marketing.min.css',
configPropertyName: 'css-marketing'
},
{
file: 'dist/css/tabler-marketing.rtl.min.css',
configPropertyName: 'css-marketing-rtl'
},
{
file: 'dist/css/tabler-payments.min.css',
configPropertyName: 'css-payments'
},
{
file: 'dist/css/tabler-payments.rtl.min.css',
configPropertyName: 'css-payments-rtl'
},
{
file: 'dist/css/tabler-props.min.css',
configPropertyName: 'css-props'
},
{
file: 'dist/css/tabler-props.rtl.min.css',
configPropertyName: 'css-props-rtl'
},
{
file: 'dist/css/tabler-themes.min.css',
configPropertyName: 'css-themes'
},
{
file: 'dist/css/tabler-themes.rtl.min.css',
configPropertyName: 'css-themes-rtl'
},
{
file: 'dist/css/tabler-socials.min.css',
configPropertyName: 'css-socials'
},
{
file: 'dist/css/tabler-socials.rtl.min.css',
configPropertyName: 'css-socials-rtl'
},
{
file: 'dist/css/tabler-vendors.min.css',
configPropertyName: 'css-vendors'
},
{
file: 'dist/css/tabler-vendors.rtl.min.css',
configPropertyName: 'css-vendors-rtl'
},
{
file: 'dist/js/tabler.min.js',
configPropertyName: 'js'
},
{
file: 'dist/js/tabler-theme.min.js',
configPropertyName: 'js-theme'
},
// {
// file: 'dist/preview/css/demo.min.css',
// configPropertyName: 'demo-css'
// },
// {
// file: 'dist/preview/js/demo.min.js',
// configPropertyName: 'demo-js'
// },
]
for (const { file, configPropertyName } of files) {
fs.readFile(path.join(__dirname, '..', file), 'utf8', (error, data) => {
if (error) {
throw error
}
const algorithm = 'sha384'
const hash = crypto.createHash(algorithm).update(data, 'utf8').digest('base64')
const integrity = `${algorithm}-${hash}`
console.log(`${configPropertyName}: ${integrity}`)
sh.sed('-i', new RegExp(`^(\\s+"${configPropertyName}":\\s+["'])\\S*(["'])`), `$1${integrity}$2`, configFile)
})
}

View File

@@ -0,0 +1,15 @@
export default context => {
return {
map: {
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
},
rtlcss: context.env === 'RTL'
}
}
}

View File

@@ -0,0 +1,47 @@
import path from 'node:path'
import process from 'node:process'
import { fileURLToPath } from 'node:url'
import { babel } from '@rollup/plugin-babel'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import replace from '@rollup/plugin-replace'
import banner from '../../shared/banner/index.mjs'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
const ESM = process.env.ESM === 'true'
const THEME = process.env.THEME === 'true'
const external = []
const plugins = [
babel({
exclude: 'node_modules/**',
babelHelpers: 'bundled'
})
]
plugins.push(
replace({
'process.env.NODE_ENV': '"production"',
preventAssignment: true
}),
nodeResolve()
)
const destinationFile = `tabler${THEME ? '-theme' : ''}${ESM ? '.esm' : ''}`
const rollupConfig = {
input: path.resolve(__dirname, `../js/tabler${THEME ? '-theme' : ''}.js`),
output: {
banner: banner(),
file: path.resolve(__dirname, `../dist/js/${destinationFile}.js`),
format: ESM ? 'esm' : 'umd',
generatedCode: 'es2015'
},
external,
plugins
}
if (!ESM) {
rollupConfig.output.name = `tabler${THEME ? '-theme' : ''}`
}
export default rollupConfig

View File

@@ -1,4 +1,77 @@
# Changelog
# @tabler/core
## 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
@@ -16,8 +89,8 @@
- 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
- 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
### Patch Changes

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 507 B

After

Width:  |  Height:  |  Size: 507 B

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 877 B

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 611 B

After

Width:  |  Height:  |  Size: 611 B

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 584 B

After

Width:  |  Height:  |  Size: 584 B

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 572 B

After

Width:  |  Height:  |  Size: 572 B

View File

Before

Width:  |  Height:  |  Size: 992 B

After

Width:  |  Height:  |  Size: 992 B

View File

Before

Width:  |  Height:  |  Size: 970 B

After

Width:  |  Height:  |  Size: 970 B

View File

Before

Width:  |  Height:  |  Size: 842 B

After

Width:  |  Height:  |  Size: 842 B

View File

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 384 B

View File

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 387 B

View File

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 711 B

View File

Before

Width:  |  Height:  |  Size: 611 B

After

Width:  |  Height:  |  Size: 611 B

View File

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 450 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 426 B

View File

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 387 B

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 577 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 407 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 634 B

View File

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 633 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 849 B

After

Width:  |  Height:  |  Size: 849 B

View File

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 633 B

View File

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 437 B

View File

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 620 B

View File

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 542 B

View File

Before

Width:  |  Height:  |  Size: 532 B

After

Width:  |  Height:  |  Size: 532 B

View File

Before

Width:  |  Height:  |  Size: 950 B

After

Width:  |  Height:  |  Size: 950 B

View File

Before

Width:  |  Height:  |  Size: 611 B

After

Width:  |  Height:  |  Size: 611 B

View File

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 565 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 666 B

View File

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 387 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 584 B

After

Width:  |  Height:  |  Size: 584 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 573 B

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 609 B

After

Width:  |  Height:  |  Size: 609 B

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 658 B

After

Width:  |  Height:  |  Size: 658 B

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

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