@fabio.caffarello/react-design-system 3.7.0 → 3.8.0

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.
@@ -5,6 +5,12 @@ export interface AccordionItem {
5
5
  title: string;
6
6
  content: ReactNode;
7
7
  disabled?: boolean;
8
+ /** Extra classes for the item wrapper (the bordered card). Merged after the defaults, so conflicting Tailwind classes win. */
9
+ className?: string;
10
+ /** Extra classes for the header button — overrides the default `label` typography (e.g. `font-semibold text-base`). */
11
+ triggerClassName?: string;
12
+ /** Extra classes for the content padding wrapper inside the panel. */
13
+ contentClassName?: string;
8
14
  }
9
15
  export interface AccordionProps {
10
16
  items: AccordionItem[];
@@ -18,7 +24,9 @@ export interface AccordionProps {
18
24
  *
19
25
  * A collapsible content component that can display multiple items.
20
26
  * Supports single and multiple selection modes.
21
- * Follows Atomic Design principles as an Atom component.
27
+ *
28
+ * Open panels animate via `grid-template-rows: 0fr → 1fr`, so content of
29
+ * any height expands fully — there is no max-height clamp (issue #202).
22
30
  *
23
31
  * @example
24
32
  * ```tsx
@@ -0,0 +1,2 @@
1
+ export { useScrollSpy } from "./hooks/useScrollSpy";
2
+ export type { UseScrollSpyOptions } from "./hooks/useScrollSpy";
@@ -32,7 +32,9 @@ export declare const TAILWIND_SAFELIST: readonly [RegExp, RegExp, RegExp, RegExp
32
32
  * Documentation for Tailwind v4 configuration
33
33
  *
34
34
  * In Tailwind v4, safelist is configured via CSS using @theme or @source directives.
35
- * Since we're using @tailwindcss/postcss, we can add safelist in the CSS file.
35
+ * Since we're using the @tailwindcss/vite plugin (see vite.config.ts and
36
+ * .claude/rules/tokens.md — the PostCSS pipeline is banned), we can add
37
+ * safelist in the CSS file.
36
38
  *
37
39
  * For dynamic classes, we should ensure they're:
38
40
  * 1. Used in component code (so Tailwind detects them)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fabio.caffarello/react-design-system",
3
3
  "private": false,
4
- "version": "3.7.0",
4
+ "version": "3.8.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -19,6 +19,11 @@
19
19
  "import": "./dist/server/index.js",
20
20
  "require": "./dist/server/index.cjs"
21
21
  },
22
+ "./hooks": {
23
+ "types": "./dist/ui/hooks-entry.d.ts",
24
+ "import": "./dist/hooks/index.js",
25
+ "require": "./dist/hooks/index.cjs"
26
+ },
22
27
  "./styles": "./dist/react-design-system.css",
23
28
  "./styles.css": "./dist/react-design-system.css"
24
29
  },
@@ -31,7 +36,7 @@
31
36
  "access": "public"
32
37
  },
33
38
  "scripts": {
34
- "build": "npx tsc --project tsconfig.app.json --declaration --emitDeclarationOnly --outDir dist && vite build && vite build --config vite.config.server.ts && npm run build:validate",
39
+ "build": "npx tsc --project tsconfig.app.json --declaration --emitDeclarationOnly --outDir dist && vite build && vite build --config vite.config.server.ts && vite build --config vite.config.hooks.ts && npm run build:validate",
35
40
  "build:validate": "tsx scripts/validate-build-exports.ts && node scripts/validate-use-client-in-dist.mjs && node scripts/validate-server-entry.mjs",
36
41
  "lint": "eslint .",
37
42
  "typecheck": "tsc --build --force tsconfig.json",
@@ -50,7 +55,7 @@
50
55
  "lucide-react": "^0.552.0 || ^1.0.0",
51
56
  "react": ">=19",
52
57
  "react-dom": ">=19",
53
- "react-hook-form": "^7.77.0"
58
+ "react-hook-form": "^7.78.0"
54
59
  },
55
60
  "overrides": {
56
61
  "handlebars": "^4.7.9",
@@ -77,8 +82,7 @@
77
82
  }
78
83
  },
79
84
  "dependencies": {
80
- "@radix-ui/react-slot": "^1.2.4",
81
- "@tailwindcss/postcss": "^4.1.16",
85
+ "@radix-ui/react-slot": "^1.2.5",
82
86
  "class-variance-authority": "^0.7.1",
83
87
  "clsx": "^2.1.1",
84
88
  "react": ">=19",
@@ -86,8 +90,8 @@
86
90
  "tailwind-merge": "^3.6.0"
87
91
  },
88
92
  "devDependencies": {
89
- "@commitlint/cli": "^20.3.1",
90
- "@commitlint/config-conventional": "^20.3.1",
93
+ "@commitlint/cli": "^21.0.2",
94
+ "@commitlint/config-conventional": "^21.0.2",
91
95
  "@eslint/js": "^10.0.1",
92
96
  "@playwright/test": "^1.60.0",
93
97
  "@storybook/addon-a11y": "^10.4.2",
@@ -99,19 +103,19 @@
99
103
  "@storybook/addon-vitest": "^10.4.2",
100
104
  "@storybook/react-vite": "^10.4.2",
101
105
  "@storybook/test": "^8.6.15",
102
- "@tailwindcss/vite": "^4.1.16",
106
+ "@tailwindcss/vite": "^4.3.0",
103
107
  "@testing-library/dom": "^10.4.1",
104
108
  "@testing-library/jest-dom": "^6.9.1",
105
109
  "@testing-library/react": "^16.3.2",
106
110
  "@types/bun": "^1.3.7",
107
- "@types/node": "^24.6.0",
108
- "@types/react": "^19.2.16",
111
+ "@types/node": "^25.9.2",
112
+ "@types/react": "^19.2.17",
109
113
  "@types/react-dom": "^19.2.3",
110
114
  "@vitejs/plugin-react": "^5.0.4",
111
115
  "@vitest/browser-playwright": "^4.1.8",
112
116
  "@vitest/coverage-v8": "^4.1.8",
113
- "autoprefixer": "^10.4.21",
114
- "baseline-browser-mapping": "^2.10.32",
117
+ "autoprefixer": "^10.5.0",
118
+ "baseline-browser-mapping": "^2.10.34",
115
119
  "culori": "^4.0.2",
116
120
  "dependency-cruiser": "^17.3.6",
117
121
  "eslint": "^10.4.1",
@@ -127,7 +131,7 @@
127
131
  "plop": "^4.0.4",
128
132
  "postcss": "^8.5.6",
129
133
  "prettier": "^3.8.3",
130
- "react-hook-form": "^7.77.0",
134
+ "react-hook-form": "^7.78.0",
131
135
  "remark-gfm": "^4.0.1",
132
136
  "storybook": "^10.4.2",
133
137
  "storybook-addon-performance": "^0.17.3",