frutjam 2.2.3 → 2.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +330 -0
- package/README.md +66 -128
- package/README.npm.md +110 -0
- package/dist/base/reboot/object.js +1 -1
- package/dist/base.css +3 -3
- package/dist/components/accordion.css +2 -2
- package/dist/components/alert.css +2 -2
- package/dist/components/avatar.css +2 -2
- package/dist/components/badge.css +2 -2
- package/dist/components/breadcrumb.css +2 -2
- package/dist/components/button.css +2 -2
- package/dist/components/card.css +2 -2
- package/dist/components/carousel.css +2 -2
- package/dist/components/chat.css +2 -2
- package/dist/components/checkbox.css +2 -2
- package/dist/components/collapsible/object.js +1 -1
- package/dist/components/collapsible.css +2 -2
- package/dist/components/combobox/object.js +1 -1
- package/dist/components/combobox.css +2 -2
- package/dist/components/countdown.css +2 -2
- package/dist/components/diff.css +2 -2
- package/dist/components/divider/object.js +1 -1
- package/dist/components/divider.css +2 -2
- package/dist/components/drawer/object.js +1 -1
- package/dist/components/drawer.css +2 -2
- package/dist/components/footer.css +2 -2
- package/dist/components/header.css +2 -2
- package/dist/components/hero.css +2 -2
- package/dist/components/indicator.css +2 -2
- package/dist/components/input.css +2 -2
- package/dist/components/join.css +2 -2
- package/dist/components/kbd.css +2 -2
- package/dist/components/link.css +2 -2
- package/dist/components/loading.css +2 -2
- package/dist/components/marquee/object.js +1 -1
- package/dist/components/marquee.css +2 -2
- package/dist/components/mask.css +2 -2
- package/dist/components/menu.css +2 -2
- package/dist/components/modal.css +2 -2
- package/dist/components/navbar.css +2 -2
- package/dist/components/popover.css +2 -2
- package/dist/components/progress.css +2 -2
- package/dist/components/radial-progress.css +2 -2
- package/dist/components/radio.css +2 -2
- package/dist/components/range.css +2 -2
- package/dist/components/rating.css +2 -2
- package/dist/components/select.css +2 -2
- package/dist/components/sidebar.css +2 -2
- package/dist/components/skeleton.css +2 -2
- package/dist/components/stat/object.js +1 -1
- package/dist/components/stat.css +2 -2
- package/dist/components/status.css +2 -2
- package/dist/components/steps.css +2 -2
- package/dist/components/surface.css +2 -2
- package/dist/components/swap/object.js +1 -1
- package/dist/components/swap.css +2 -2
- package/dist/components/table/object.js +1 -1
- package/dist/components/table.css +2 -2
- package/dist/components/tabs/object.js +1 -1
- package/dist/components/tabs.css +2 -2
- package/dist/components/tag.css +2 -2
- package/dist/components/textarea.css +2 -2
- package/dist/components/timeline.css +2 -2
- package/dist/components/toast.css +2 -2
- package/dist/components/toggle.css +2 -2
- package/dist/components/tooltip/object.js +1 -1
- package/dist/components/tooltip.css +2 -2
- package/dist/frutjam.min.css +4 -4
- package/dist/plugin.js +4 -4
- package/dist/themes/darkberry.css +1 -1
- package/dist/themes/snowberry.css +1 -1
- package/dist/utilities/headings.css +2 -2
- package/dist/utilities/para.css +2 -2
- package/dist/utilities/typography.css +1 -1
- package/dist/utilities/wrapper.css +2 -2
- package/package.json +8 -7
- package/packages/js/combobox.js +5 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
@layer theme{:is([data-theme=darkberry],[data-theme=dark]){--scheme-color:dark;--border-radius:0.25rem;--color-base:oklch(10.889% 0.00301 17.398);--color-on-base:oklch(98% 0.01 270);--color-neutral:oklch(85% 0 0);--color-on-neutral:oklch(20% 0 0);--color-primary:oklch(66.385% 0.18368 285.592);--color-on-primary:oklch(10% 0.01 270);--color-secondary:oklch(65% 0.18 220);--color-on-secondary:oklch(10% 0.01 220);--color-accent:oklch(75% 0.18 50);--color-on-accent:oklch(10% 0.01 50);--color-info:oklch(91.67% .077 205.04);--color-on-info:oklch(10% 0.01 250);--color-success:oklch(65% 0.18 140);--color-on-success:oklch(10% 0.01 140);--color-warning:oklch(75% 0.20 85);--color-on-warning:oklch(10% 0.01 85);--color-error:oklch(60% 0.22 30);--color-on-error:oklch(10% 0.01 30)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
@layer theme{:is([data-theme=snowberry],[data-theme=light]),:root:not([data-theme]){--scheme-color:light;--border-radius:0.25rem;--color-base:oklch(1 0 0);--color-on-base:oklch(0.22 0 0);--color-neutral:oklch(0.15 0 0);--color-on-neutral:oklch(1 0 0);--color-primary:oklch(51.1% 0.262 276.966);--color-on-primary:oklch(96.2% 0.018 272.314);--color-secondary:oklch(0.591 0.293 322.896);--color-on-secondary:oklch(1 0 0);--color-accent:oklch(0.541 0.281 293.009);--color-on-accent:oklch(1 0 0);--color-info:oklch(0.685 0.169 237.323);--color-on-info:oklch(0.15 0 0);--color-success:oklch(0.792 0.209 151.711);--color-on-success:oklch(0.15 0 0);--color-warning:oklch(0.852 0.199 91.936);--color-on-warning:oklch(0.15 0 0);--color-error:oklch(0.577 0.245 27.325);--color-on-error:oklch(1 0 0)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
2
|
-
/*! tailwindcss v4.3.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */.heading-2xl{--heading-size:1rem;--heading-size:1.5rem}.heading-2xl,.heading-3xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-3xl{--heading-size:1rem;--heading-size:1.875rem}.heading-4xl{--heading-size:1rem;--heading-size:2.25rem}.heading-4xl,.heading-5xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-5xl{--heading-size:1rem;--heading-size:3rem}.heading-6xl{--heading-size:1rem;--heading-size:3.75rem}.heading-6xl,.heading-7xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-7xl{--heading-size:1rem;--heading-size:4.5rem}.heading-8xl{--heading-size:1rem;--heading-size:6rem}.heading-8xl,.heading-9xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-9xl{--heading-size:1rem;--heading-size:8rem}.heading-lg{--heading-size:1rem;--heading-size:1.125rem}.heading-lg,.heading-md{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-md{--heading-size:1rem}.heading-sm{--heading-size:1rem;--heading-size:0.875rem}.heading-sm,.heading-xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-xl{--heading-size:1rem;--heading-size:1.25rem}.heading-xs{--heading-size:1rem;--heading-size:0.75rem}.heading,.heading-xs{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading{--heading-size:1rem}
|
package/dist/utilities/para.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
2
|
-
/*! tailwindcss v4.3.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */.para-2xl{font-size:var(--text-base);font-size:var(--text-2xl)}.para-2xl,.para-3xl{text-wrap-style:pretty;line-height:1.6}.para-3xl{font-size:var(--text-base);font-size:var(--text-3xl)}.para-4xl{font-size:var(--text-base);font-size:var(--text-4xl)}.para-4xl,.para-5xl{text-wrap-style:pretty;line-height:1.6}.para-5xl{font-size:var(--text-base);font-size:var(--text-5xl)}.para-6xl{font-size:var(--text-base);font-size:var(--text-6xl)}.para-6xl,.para-7xl{text-wrap-style:pretty;line-height:1.6}.para-7xl{font-size:var(--text-base);font-size:var(--text-7xl)}.para-8xl{font-size:var(--text-base);font-size:var(--text-8xl)}.para-8xl,.para-9xl{text-wrap-style:pretty;line-height:1.6}.para-9xl{font-size:var(--text-base);font-size:var(--text-9xl)}.para-lg{font-size:var(--text-base);font-size:var(--text-lg)}.para-lg,.para-md{text-wrap-style:pretty;line-height:1.6}.para-md{font-size:var(--text-base)}.para-sm{font-size:var(--text-base);font-size:var(--text-sm)}.para-sm,.para-xl{text-wrap-style:pretty;line-height:1.6}.para-xl{font-size:var(--text-base);font-size:var(--text-xl)}.para-xs{font-size:var(--text-base);font-size:var(--text-xs)}.para,.para-xs{text-wrap-style:pretty;line-height:1.6}.para{font-size:var(--text-base)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
.prose-frutjam{--tw-prose-body:var(--color-body);--tw-prose-headings:var(--color-on-base);--tw-prose-lead:var(--color-on-neutral);--tw-prose-bold:var(--color-on-base);--tw-prose-links:var(--color-primary);--tw-prose-counters:var(--color-neutral);--tw-prose-bullets:var(--color-neutral);--tw-prose-hr:var(--color-base-soft);--tw-prose-quotes:var(--color-on-base);--tw-prose-quote-borders:var(--color-primary);--tw-prose-code:var(--color-on-base);--tw-prose-pre-code:var(--color-on-base);--tw-prose-pre-bg:var(--color-base-soft);--tw-prose-th-borders:var(--color-base-soft);--tw-prose-td-borders:var(--color-base-soft);--tw-prose-captions:var(--color-on-neutral);--tw-prose-kbd:var(--color-body);--tw-prose-invert-body:var(--color-on-neutral);--tw-prose-invert-headings:var(--color-on-base);--tw-prose-invert-links:var(--color-primary)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.2.
|
|
2
|
-
/*! tailwindcss v4.3.
|
|
1
|
+
/*! frutjam v2.2.5 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */.wrapper-full{width:100%;max-width:100%;box-sizing:border-box;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-2xl{box-sizing:border-box;max-width:1536px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-lg{box-sizing:border-box;max-width:1024px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-md{box-sizing:border-box;max-width:768px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-sm{box-sizing:border-box;max-width:640px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-xl{box-sizing:border-box;max-width:1280px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-xs{box-sizing:border-box;max-width:320px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper{box-sizing:border-box;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frutjam",
|
|
3
|
-
"version": "2.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.2.5",
|
|
4
|
+
"description": "CSS-only Tailwind CSS v4 component library. 65+ accessible UI components, zero JavaScript, WCAG AA guaranteed. Free MCP server for AI editors included.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dist/plugin.js",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"build:cdn": "node scripts/build-cdn.mjs",
|
|
31
31
|
"build:plugin": "node scripts/build-plugin.mjs",
|
|
32
32
|
"build": "rimraf ./dist && node scripts/build-cdn.mjs && node scripts/build-plugin.mjs",
|
|
33
|
-
"prepublishOnly": "rimraf ./dist && node scripts/build-cdn.mjs && node scripts/build-plugin.mjs",
|
|
33
|
+
"prepublishOnly": "rimraf ./dist && node scripts/build-cdn.mjs && node scripts/build-plugin.mjs && node -e \"const fs=require('fs');fs.copyFileSync('README.md','README.github.md');fs.copyFileSync('README.npm.md','README.md');\"",
|
|
34
|
+
"postpublish": "node -e \"const fs=require('fs');fs.copyFileSync('README.github.md','README.md');fs.unlinkSync('README.github.md');\"",
|
|
34
35
|
"postversion": "git push origin main --tags"
|
|
35
36
|
},
|
|
36
37
|
"funding": "https://ko-fi.com/nezanuha",
|
|
@@ -92,12 +93,12 @@
|
|
|
92
93
|
}
|
|
93
94
|
},
|
|
94
95
|
"devDependencies": {
|
|
95
|
-
"@tailwindcss/postcss": "^4.3.
|
|
96
|
-
"autoprefixer": "^10.5.
|
|
96
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
97
|
+
"autoprefixer": "^10.5.4",
|
|
97
98
|
"cssnano": "^8.0.2",
|
|
98
|
-
"postcss": "^8.5.
|
|
99
|
+
"postcss": "^8.5.20",
|
|
99
100
|
"postcss-js": "^5.1.0",
|
|
100
101
|
"rimraf": "^6.1.3",
|
|
101
|
-
"tailwindcss": "^4.3.
|
|
102
|
+
"tailwindcss": "^4.3.3"
|
|
102
103
|
}
|
|
103
104
|
}
|
package/packages/js/combobox.js
CHANGED
|
@@ -6,7 +6,7 @@ export function createCombobox(el) {
|
|
|
6
6
|
|
|
7
7
|
const uid = ++_comboboxIdCounter
|
|
8
8
|
const listbox = el.querySelector('[role="listbox"]') ?? el.querySelector('.combobox-dropdown') ?? (() => {
|
|
9
|
-
const found = el.querySelector('.combobox-
|
|
9
|
+
const found = el.querySelector('.combobox-item, [role="option"]')
|
|
10
10
|
return found ? found.parentElement : null
|
|
11
11
|
})()
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@ export function createCombobox(el) {
|
|
|
18
18
|
if (!input.getAttribute('aria-autocomplete')) input.setAttribute('aria-autocomplete', 'list')
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
const allOptions = () => Array.from(el.querySelectorAll('[role="option"], .combobox-
|
|
21
|
+
const allOptions = () => Array.from(el.querySelectorAll('[role="option"], .combobox-item'))
|
|
22
22
|
const visibleOptions = () => allOptions().filter((o) => !o.hidden)
|
|
23
23
|
|
|
24
24
|
function open() {
|
|
@@ -46,11 +46,11 @@ export function createCombobox(el) {
|
|
|
46
46
|
function highlight(index) {
|
|
47
47
|
const opts = visibleOptions()
|
|
48
48
|
opts.forEach((o, i) => {
|
|
49
|
-
o.classList.remove('combobox-
|
|
49
|
+
o.classList.remove('combobox-item-active')
|
|
50
50
|
if (!o.id) o.id = `fj-combobox-option-${uid}-${i}`
|
|
51
51
|
})
|
|
52
52
|
if (index >= 0 && opts[index]) {
|
|
53
|
-
opts[index].classList.add('combobox-
|
|
53
|
+
opts[index].classList.add('combobox-item-active')
|
|
54
54
|
opts[index].scrollIntoView({ block: 'nearest' })
|
|
55
55
|
input?.setAttribute('aria-activedescendant', opts[index].id)
|
|
56
56
|
} else {
|
|
@@ -88,7 +88,7 @@ export function createCombobox(el) {
|
|
|
88
88
|
})
|
|
89
89
|
|
|
90
90
|
el.addEventListener('click', (e) => {
|
|
91
|
-
const opt = e.target.closest('[role="option"], .combobox-
|
|
91
|
+
const opt = e.target.closest('[role="option"], .combobox-item')
|
|
92
92
|
if (opt) { select(opt); return }
|
|
93
93
|
if (e.target === input) open()
|
|
94
94
|
})
|