@bug-on/m3-expressive 1.0.0 → 1.2.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/README.md +20 -18
  3. package/dist/assets/material-symbols-self-hosted.css +27 -26
  4. package/dist/buttons.d.mts +2 -2
  5. package/dist/buttons.d.ts +2 -2
  6. package/dist/buttons.js +30 -1
  7. package/dist/buttons.js.map +1 -1
  8. package/dist/buttons.mjs +30 -1
  9. package/dist/buttons.mjs.map +1 -1
  10. package/dist/core-Bc5Wj_pc.d.ts +497 -0
  11. package/dist/core-D4048_K5.d.mts +497 -0
  12. package/dist/core.d.mts +6 -422
  13. package/dist/core.d.ts +6 -422
  14. package/dist/core.js +137 -68
  15. package/dist/core.js.map +1 -1
  16. package/dist/core.mjs +138 -69
  17. package/dist/core.mjs.map +1 -1
  18. package/dist/feedback.d.mts +54 -54
  19. package/dist/feedback.d.ts +54 -54
  20. package/dist/feedback.js.map +1 -1
  21. package/dist/feedback.mjs.map +1 -1
  22. package/dist/index.css +9 -1
  23. package/dist/index.d.mts +66 -4
  24. package/dist/index.d.ts +66 -4
  25. package/dist/index.js +214 -94
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +214 -95
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/layout.d.mts +40 -40
  30. package/dist/layout.d.ts +40 -40
  31. package/dist/layout.js +34 -5
  32. package/dist/layout.js.map +1 -1
  33. package/dist/layout.mjs +34 -5
  34. package/dist/layout.mjs.map +1 -1
  35. package/dist/material-symbols-self-hosted.css +27 -26
  36. package/dist/{md3-DFhj-NZj.d.mts → md3-Dty-Qcad.d.mts} +7 -1
  37. package/dist/{md3-DFhj-NZj.d.ts → md3-Dty-Qcad.d.ts} +7 -1
  38. package/dist/navigation.js.map +1 -1
  39. package/dist/navigation.mjs.map +1 -1
  40. package/dist/overlays.d.mts +2 -2
  41. package/dist/overlays.d.ts +2 -2
  42. package/dist/overlays.js +2 -2
  43. package/dist/overlays.js.map +1 -1
  44. package/dist/overlays.mjs +2 -2
  45. package/dist/overlays.mjs.map +1 -1
  46. package/dist/pickers.d.mts +241 -243
  47. package/dist/pickers.d.ts +241 -243
  48. package/dist/pickers.js +1 -1
  49. package/dist/pickers.js.map +1 -1
  50. package/dist/pickers.mjs +1 -1
  51. package/dist/pickers.mjs.map +1 -1
  52. package/dist/{side-sheet-modal-BY6VCC8p.d.mts → side-sheet-modal-64FGhDxL.d.mts} +20 -21
  53. package/dist/{side-sheet-modal-CglP6KYA.d.ts → side-sheet-modal-Bd5Qqvp9.d.ts} +20 -21
  54. package/dist/{split-button-trailing-uncheckable-C5CLCIKP.d.ts → split-button-trailing-uncheckable-BkPbiBo3.d.ts} +169 -152
  55. package/dist/{split-button-trailing-uncheckable-MXj_kyNt.d.mts → split-button-trailing-uncheckable-D_PLPb-u.d.mts} +169 -152
  56. package/dist/typography.css +5 -0
  57. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,16 +1,41 @@
1
1
  # @bug-on/m3-expressive
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - fffe0ac: Color system upgrade to Exxpressive
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [fffe0ac]
12
+ - @bug-on/m3-tailwind@1.2.0
13
+ - @bug-on/m3-tokens@1.2.0
14
+
15
+ ## 1.1.0
16
+
17
+ ### Minor Changes
18
+
19
+ - 72c3aec: Standardize the language, rewrite the instruction manual, and address known minor issues.
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [72c3aec]
24
+ - @bug-on/m3-tailwind@1.1.0
25
+ - @bug-on/m3-tokens@1.1.0
26
+
3
27
  ## 1.0.0
4
28
 
5
29
  ### 🎉 Initial Release
6
30
 
7
- First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressive React component library by Bug Ổn.
31
+ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressive React component library by Bug On.
8
32
 
9
- > **Note:** This package was previously published as `@bug-on/md3-react`. All functionality has been carried over with a fresh version reset.
33
+ > **Note:** This package was previously published as `@bug-on/m3-expressive`. All functionality has been carried over with a fresh version reset.
10
34
 
11
35
  #### Components
12
36
 
13
37
  **Buttons**
38
+
14
39
  - `Button` — Filled, Outlined, Tonal, Elevated, Text variants
15
40
  - `IconButton` — Standard, Filled, Tonal, Outlined variants with toggle support
16
41
  - `FAB` — Floating Action Button (Small, Medium, Large)
@@ -20,6 +45,7 @@ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressi
20
45
  - `ButtonGroup` — Grouped buttons with shared styling
21
46
 
22
47
  **Forms & Inputs**
48
+
23
49
  - `TextField` — Filled and Outlined variants with leading/trailing icons
24
50
  - `Checkbox` — Standard and TriState checkbox
25
51
  - `RadioButton` — Radio button with MD3 styling
@@ -27,12 +53,14 @@ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressi
27
53
  - `Slider` / `RangeSlider` — Single and range slider with discrete/continuous modes
28
54
 
29
55
  **Navigation**
56
+
30
57
  - `NavigationBar` — Bottom navigation bar with animated icons
31
58
  - `NavigationRail` — Side navigation rail
32
59
  - `Tabs` / `Tab` / `TabsList` / `TabsContent` — Primary and Secondary tab variants
33
60
  - `Drawer` — Navigation drawer (standard, modal)
34
61
 
35
62
  **Feedback**
63
+
36
64
  - `Dialog` — Alert and full-screen dialog
37
65
  - `Snackbar` / `SnackbarProvider` / `useSnackbar` — Toast notifications
38
66
  - `ProgressIndicator` — Linear and Circular (determinate, indeterminate, wavy)
@@ -40,6 +68,7 @@ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressi
40
68
  - `Tooltip` — Plain and Rich tooltip with caret
41
69
 
42
70
  **Layout & Surfaces**
71
+
43
72
  - `Card` — Elevated, Filled, Outlined variants
44
73
  - `Divider` — Full-width and inset dividers
45
74
  - `List` / `ListItem` / `ListDivider` — Lists with leading/trailing elements
@@ -47,12 +76,14 @@ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressi
47
76
  - `SideSheet` / `BottomSheet` — Sheet overlays
48
77
 
49
78
  **App Bars & Toolbars**
79
+
50
80
  - `SmallAppBar` / `MediumFlexibleAppBar` / `LargeFlexibleAppBar` — Top app bars
51
81
  - `BottomAppBar` — Bottom app bar with FAB integration
52
82
  - `SearchAppBar` / `SearchView` — Expandable search
53
83
  - `Toolbar` / `FloatingToolbar` / `DockedToolbar` — Contextual toolbars
54
84
 
55
85
  **Data & Display**
86
+
56
87
  - `Badge` / `BadgedBox` — Notification badges
57
88
  - `Chip` — Assist, Filter, Input, Suggestion variants
58
89
  - `Icon` — Material Symbols integration with fill/weight/grade/size control
@@ -60,44 +91,52 @@ First stable release of **@bug-on/m3-expressive** — Material Design 3 Expressi
60
91
  - `CodeBlock` — Code display with syntax highlighting
61
92
 
62
93
  **Date & Time Pickers**
94
+
63
95
  - `DatePicker` / `DatePickerDialog` / `DatePickerInput` — Date selection
64
96
  - `DateRangePicker` — Date range selection
65
97
  - `TimePicker` / `TimePickerDialog` / `TimeInput` — Time selection
66
98
 
67
99
  **Shapes & Media**
100
+
68
101
  - `ShapeMedia` / `ShapeMediaServer` — MD3 Expressive shape containers
69
102
  - `ShapeSvg` / `ShapeIcon` — SVG-based shapes
70
103
  - `useShapeMorph` — Shape morphing animation hook
71
104
  - MD3 shape catalog with all expressive corner variants
72
105
 
73
106
  **Search**
107
+
74
108
  - `Search` / `SearchBar` — Inline search
75
109
  - `SearchViewDocked` / `SearchViewFullscreen` — Expanded search views
76
110
 
77
111
  **Menu**
112
+
78
113
  - `Menu` / `MenuItem` / `MenuDivider` / `MenuGroup` — Dropdown menus
79
114
  - `SubMenu` — Nested submenus
80
115
  - `ContextMenu` — Right-click context menu
81
116
  - `VerticalMenu` — Vertical navigation menu
82
117
 
83
118
  **Theme & Providers**
119
+
84
120
  - `MD3ThemeProvider` — Dynamic color theming (Material You)
85
121
  - `useTheme` / `useThemeMode` — Theme hooks
86
122
  - `MaterialSymbolsPreconnect` — Font preconnect helper
87
123
 
88
124
  **Utilities**
125
+
89
126
  - `Ripple` — Touch ripple effect
90
127
  - `StateLayer` — Hover/focus/press state layer
91
128
  - `TouchTarget` — Accessible touch target sizing
92
129
  - `useAppBarScroll` — Scroll-aware app bar behavior
93
130
 
94
131
  #### CSS Exports
132
+
95
133
  - `@bug-on/m3-expressive/index.css` — MD3 tokens + Tailwind `@theme` + resets
96
134
  - `@bug-on/m3-expressive/typography.css` — Google Sans Flex font-face
97
135
  - `@bug-on/m3-expressive/material-symbols-cdn.css` — Material Symbols via CDN
98
136
  - `@bug-on/m3-expressive/material-symbols-self-hosted.css` — Self-hosted icons
99
137
 
100
138
  #### Sub-path Exports
139
+
101
140
  - `@bug-on/m3-expressive/core` — Theme providers and hooks only
102
141
  - `@bug-on/m3-expressive/buttons` — Button components only
103
142
  - `@bug-on/m3-expressive/forms` — Form components only
package/README.md CHANGED
@@ -2,31 +2,31 @@
2
2
 
3
3
  > ⚠️ **Work in progress** — Material Design 3 Expressive React Component Library.
4
4
 
5
- Thư viện UI component hiệu năng cao cho React được thiết kế theo ngôn ngữ thiết kế [Material Design 3 Expressive](https://m3.material.io/). Mang đến hiệu ứng mượt mà, khả năng hỗ trợ tiếp cận (a11y) mạnh mẽ tương thích hoàn hảo với SSR / Next.js App Router.
5
+ High-performance React component library designed following the [Material Design 3 Expressive](https://m3.material.io/) design system. Featuring smooth motion, robust accessibility (a11y) support, and seamless compatibility with SSR and Next.js App Router.
6
6
 
7
7
  ---
8
8
 
9
- ## 📖 Tài liệu hướng dẫn & Demo
10
- Để xem hướng dẫn chi tiết về API của từng Component, các thuộc tính chỉnh sửa cũng như xem demo tương tác trực quan nhất, vui lòng truy cập:
11
- 👉 **[Tài liệu & Demo chính thức (GitHub Repository)](https://github.com/nguyentruongton/bug-on-md3-expressive)**
9
+ ## 📖 Documentation & Demos
10
+ For component API guides, customization options, and interactive component previews, please visit:
11
+ 👉 **[Official Documentation & Demos (GitHub Repository)](https://github.com/nguyentruongton/bug-on-md3-expressive)**
12
12
 
13
13
  ---
14
14
 
15
- ## 📦 Cài đặt
15
+ ## 📦 Installation
16
16
 
17
- Cài đặt gói React component cùng với các package cốt lõi đi kèm trong hệ sinh thái:
17
+ Install the React component package alongside core ecosystem packages:
18
18
 
19
19
  ```bash
20
20
  npm install @bug-on/m3-expressive @bug-on/m3-tailwind @bug-on/m3-tokens
21
- # hoặc
21
+ # or
22
22
  pnpm add @bug-on/m3-expressive @bug-on/m3-tailwind @bug-on/m3-tokens
23
23
  ```
24
24
 
25
- ### Peer Dependencies thiết yếu
26
- Đảm bảo bạn đã cài đặt đầy đủ các peer dependencies sau trong dự án:
25
+ ### Essential Peer Dependencies
26
+ Ensure the following peer dependencies are installed in your project:
27
27
  ```bash
28
28
  npm install react react-dom
29
- # Yêu cầu cài đặt thêm thư viện motion cho các component có hiệu ứng động (Fab, Tabs, Dialog...):
29
+ # Required for animated components (Fab, Tabs, Dialog, etc.):
30
30
  npm install motion
31
31
  ```
32
32
 
@@ -55,11 +55,11 @@ This system is designed around the CSS-first architecture of **Tailwind CSS v4**
55
55
 
56
56
  > **Zero Config:** Once `@bug-on/m3-expressive/index.css` is imported, basic MD3 utility classes (`bg-m3-primary`, `text-m3-on-surface`, `rounded-m3-xl`, etc.) work immediately. For the full set of utilities like depth shadows (`elevation-3`), icon axis control (`icon-fill-1`), or physics-based transitions (`transition-m3-fast-spatial`), import `@bug-on/m3-tailwind` as well. Do NOT use JS plugins in Tailwind v4.
57
57
 
58
- ### Cấu hình Icons (Material Symbols)
59
- Thư viện tích hợp sẵn component `<Icon />` sử dụng font `Material Symbols Outlined`. Bạn cần import stylesheet của icon tại root của ứng dụng ( dụ `layout.tsx` hoặc `main.tsx`):
58
+ ### Icons Configuration (Material Symbols)
59
+ The library includes a built-in `<Icon />` component using the `Material Symbols Outlined` font. Import the icon stylesheet at your application root (e.g., `layout.tsx` or `main.tsx`):
60
60
 
61
61
  ```tsx
62
- // app/layout.tsx hoặc src/main.tsx
62
+ // app/layout.tsx or src/main.tsx
63
63
  import '@bug-on/m3-expressive/material-symbols-cdn.css';
64
64
  import { MaterialSymbolsPreconnect } from '@bug-on/m3-expressive';
65
65
 
@@ -67,7 +67,7 @@ export default function RootLayout({ children }) {
67
67
  return (
68
68
  <html>
69
69
  <head>
70
- {/* Hỗ trợ tải trước font giúp hiển thị icon cực nhanh */}
70
+ {/* Preconnect helper to accelerate font loading */}
71
71
  <MaterialSymbolsPreconnect />
72
72
  </head>
73
73
  <body>{children}</body>
@@ -75,7 +75,8 @@ export default function RootLayout({ children }) {
75
75
  );
76
76
  }
77
77
  ```
78
- Nếu cần hỗ trợ offline hoặc không gửi request font tới CDN, cài package font opt-in:
78
+
79
+ For offline support or self-hosted font deployments:
79
80
 
80
81
  ```bash
81
82
  pnpm add @bug-on/m3-fonts
@@ -86,11 +87,11 @@ pnpm add @bug-on/m3-fonts
86
87
  @import "@bug-on/m3-fonts/typography.css";
87
88
  ```
88
89
 
89
- `@bug-on/m3-expressive/material-symbols-self-hosted.css` vẫn hoạt động để tương thích ngược, nhưng đã deprecated sẽ bị xoá major version tiếp theo.
90
+ `@bug-on/m3-expressive/material-symbols-self-hosted.css` remains active for backward compatibility, but is deprecated and will be removed in the next major version.
90
91
 
91
92
  ---
92
93
 
93
- ## 🚀 Sử dụng cơ bản
94
+ ## 🚀 Basic Usage
94
95
 
95
96
  ```tsx
96
97
  import { Button, Icon } from '@bug-on/m3-expressive';
@@ -106,5 +107,6 @@ export default function Page() {
106
107
  }
107
108
  ```
108
109
 
109
- ## ⚖️ Giấy phép
110
+ ## ⚖️ License
110
111
  MIT
112
+
@@ -4,56 +4,57 @@
4
4
  * SETUP STEPS:
5
5
  *
6
6
  * Step 1 — Download font files
7
- * Truy cập: https://github.com/google/material-design-icons/tree/master/variablefont
7
+ * Visit: https://github.com/google/material-design-icons/tree/master/variablefont
8
8
  * Download file: MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].woff2
9
- * ( Rounded / Sharp nếu cần)
9
+ * (and Rounded / Sharp if needed)
10
10
  *
11
11
  * Step 2 — Place font files in your app
12
- * Recommended location: public/fonts/ hoặc src/assets/fonts/
12
+ * Recommended location: public/fonts/ or src/assets/fonts/
13
13
  * Example: public/fonts/MaterialSymbolsOutlined.woff2
14
14
  *
15
- * Step 3 — Copy điều chỉnh @font-face block bên dưới
16
- * Thay đổi src url() để trỏ đúng đường dẫn trong project của bạn
15
+ * Step 3 — Copy and adjust @font-face block below
16
+ * Change src url() to point to the correct path in your project
17
17
  *
18
- * @deprecated New integrations should install `@bug-on/m3-fonts` and import
19
- * `@bug-on/m3-fonts/material-symbols.css`. This legacy export remains only
18
+ * @deprecated New integrations should install `@bug-on/md3-fonts` and import
19
+ * `@bug-on/md3-fonts/material-symbols.css`. This legacy export remains only
20
20
  * for backwards compatibility and will be removed in the next major version.
21
21
  *
22
- * Step 4 — Import file này:
22
+ * Step 4 — Import this file:
23
23
  * import '@bug-on/m3-expressive/material-symbols-self-hosted.css'
24
24
  *
25
25
  * PERFORMANCE NOTES:
26
- * - Self-hosting tốt hơn CDN khi bạn dùng CDN + HTTP/2 cho static assets
27
- * - Nếu không CDN, Google Fonts CDN thể nhanh hơn do cache sharing
28
- * - Dùng font-display: block cho icon fonts (xem do file CDN)
29
- * - WOFF2 format duy nhất cần thiết (100% modern browser support, Brotli compression)
30
- * - Không cần WOFF fallback nữa
26
+ * - Self-hosting is better than CDN when using HTTP/2 CDN for static assets
27
+ * - Without a CDN, Google Fonts CDN may be faster due to cache sharing
28
+ * - Use font-display: block for icon fonts (see reasons in CDN file)
29
+ * - WOFF2 is the only format needed (100% modern browser support, Brotli compression)
30
+ * - WOFF fallback is no longer required
31
31
  *
32
- * SUBSETTING (QUAN TRỌNG để giảm file size):
33
- * Full variable font ~295 KB. Sau khi subset còn ~1-2 KB cho vài chục icons.
34
- * Dùng tool: https://everythingfonts.com/subsetter
35
- * Hoặc dùng Google Fonts text parameter để subset trên CDN:
32
+
33
+ * SUBSETTING (IMPORTANT for reducing file size):
34
+ * Full variable font ~295 KB. After subsetting ~1-2 KB for a few dozen icons.
35
+ * Use tool: https://everythingfonts.com/subsetter
36
+ * Or use Google Fonts text parameter to subset on CDN:
36
37
  * ?family=Material+Symbols+Outlined&text=home%20search%20settings
37
38
  *
38
39
  * GDPR NOTE:
39
- * Self-hosting loại bỏ việc gửi user IP đến Google servers,
40
- * giải quyết GDPR compliance requirement.
40
+ * Self-hosting eliminates sending user IP addresses to Google servers,
41
+ * resolving GDPR compliance requirements.
41
42
  */
42
43
 
43
44
  @font-face {
44
45
  font-family: "Material Symbols Outlined";
45
46
  font-style: normal;
46
- /* Khai báo full axis range để browser biết đây là variable font */
47
+ /* Declare full axis range so browser recognizes variable font */
47
48
  font-weight: 100 700;
48
- /* font-display: block bắt buộc cho icon fonts:
49
- * - Tránh render text thô "arrow_forward" thay icon
50
- * - Max 3s block, sau đó icon xuất hiện
51
- * Tham khảo: https://web.dev/articles/font-best-practices#icon_fonts */
49
+ /* font-display: block is required for icon fonts:
50
+ * - Prevents rendering raw text "arrow_forward" instead of icon
51
+ * - Max 3s block, then icon appears
52
+ * Reference: https://web.dev/articles/font-best-practices#icon_fonts */
52
53
  font-display: block;
53
54
  src: url("/fonts/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].woff2")
54
55
  format("woff2");
55
- /* unicode-range: chỉ load font khi page chứa tự trong range này.
56
- * Material Symbols dùng PUA (Private Use Area) cho ligatures. */
56
+ /* unicode-range: loads font only when page contains characters in range.
57
+ * Material Symbols uses PUA (Private Use Area) for ligatures. */
57
58
  }
58
59
 
59
60
  /*
@@ -1,5 +1,5 @@
1
- export { B as BUTTON_COLOR_TOKENS, a as BUTTON_SIZE_TOKENS, b as BaseButtonProps, c as Button, d as ButtonGroup, e as ButtonGroupOrientation, f as ButtonGroupProps, g as ButtonGroupVariant, h as ButtonProps, E as ElevatedSplitButtonLeading, i as ElevatedSplitButtonTrailing, j as ElevatedSplitButtonTrailingUncheckable, k as ExtendedFAB, l as ExtendedFABProps, F as FAB, m as FABMenu, n as FABMenuItem, o as FABMenuItemData, p as FABMenuItemProps, q as FABMenuProps, r as FABPosition, s as FABPositionProps, t as FABProps, u as FilledSplitButtonLeading, v as FilledSplitButtonTrailing, w as FilledSplitButtonTrailingUncheckable, O as OutlinedSplitButtonLeading, x as OutlinedSplitButtonTrailing, y as OutlinedSplitButtonTrailingUncheckable, S as SplitButtonLayout, z as SplitButtonLayoutProps, A as SplitButtonLeading, C as SplitButtonLeadingProps, D as SplitButtonSize, Q as SplitButtonSizeTokens, G as SplitButtonTrailing, H as SplitButtonTrailingProps, I as SplitButtonTrailingUncheckable, J as SplitButtonTrailingUncheckableProps, K as SplitButtonVariant, T as ToggleFAB, L as ToggleFABProps, M as TonalSplitButtonLeading, N as TonalSplitButtonTrailing, P as TonalSplitButtonTrailingUncheckable } from './split-button-trailing-uncheckable-MXj_kyNt.mjs';
2
- import { b as MD3Size } from './md3-DFhj-NZj.mjs';
1
+ export { B as BUTTON_COLOR_TOKENS, a as BUTTON_SIZE_TOKENS, b as BaseButtonProps, c as Button, d as ButtonGroup, e as ButtonGroupOrientation, f as ButtonGroupProps, g as ButtonGroupVariant, h as ButtonProps, E as ElevatedSplitButtonLeading, i as ElevatedSplitButtonTrailing, j as ElevatedSplitButtonTrailingUncheckable, k as ExtendedFAB, l as ExtendedFABProps, F as FAB, m as FABMenu, n as FABMenuItem, o as FABMenuItemData, p as FABMenuItemProps, q as FABMenuProps, r as FABPosition, s as FABPositionProps, t as FABProps, u as FilledSplitButtonLeading, v as FilledSplitButtonTrailing, w as FilledSplitButtonTrailingUncheckable, O as OutlinedSplitButtonLeading, x as OutlinedSplitButtonTrailing, y as OutlinedSplitButtonTrailingUncheckable, S as SplitButtonLayout, z as SplitButtonLayoutProps, A as SplitButtonLeading, C as SplitButtonLeadingProps, D as SplitButtonSize, Q as SplitButtonSizeTokens, G as SplitButtonTrailing, H as SplitButtonTrailingProps, I as SplitButtonTrailingUncheckable, J as SplitButtonTrailingUncheckableProps, K as SplitButtonVariant, T as ToggleFAB, L as ToggleFABProps, M as TonalSplitButtonLeading, N as TonalSplitButtonTrailing, P as TonalSplitButtonTrailingUncheckable } from './split-button-trailing-uncheckable-D_PLPb-u.mjs';
2
+ import { b as MD3Size } from './md3-Dty-Qcad.mjs';
3
3
  export { B as BaseIconButtonProps, I as IconButton, a as IconButtonProps } from './icon-button-D-gs0gfj.mjs';
4
4
  import { Transition } from 'motion/react';
5
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
package/dist/buttons.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { B as BUTTON_COLOR_TOKENS, a as BUTTON_SIZE_TOKENS, b as BaseButtonProps, c as Button, d as ButtonGroup, e as ButtonGroupOrientation, f as ButtonGroupProps, g as ButtonGroupVariant, h as ButtonProps, E as ElevatedSplitButtonLeading, i as ElevatedSplitButtonTrailing, j as ElevatedSplitButtonTrailingUncheckable, k as ExtendedFAB, l as ExtendedFABProps, F as FAB, m as FABMenu, n as FABMenuItem, o as FABMenuItemData, p as FABMenuItemProps, q as FABMenuProps, r as FABPosition, s as FABPositionProps, t as FABProps, u as FilledSplitButtonLeading, v as FilledSplitButtonTrailing, w as FilledSplitButtonTrailingUncheckable, O as OutlinedSplitButtonLeading, x as OutlinedSplitButtonTrailing, y as OutlinedSplitButtonTrailingUncheckable, S as SplitButtonLayout, z as SplitButtonLayoutProps, A as SplitButtonLeading, C as SplitButtonLeadingProps, D as SplitButtonSize, Q as SplitButtonSizeTokens, G as SplitButtonTrailing, H as SplitButtonTrailingProps, I as SplitButtonTrailingUncheckable, J as SplitButtonTrailingUncheckableProps, K as SplitButtonVariant, T as ToggleFAB, L as ToggleFABProps, M as TonalSplitButtonLeading, N as TonalSplitButtonTrailing, P as TonalSplitButtonTrailingUncheckable } from './split-button-trailing-uncheckable-C5CLCIKP.js';
2
- import { b as MD3Size } from './md3-DFhj-NZj.js';
1
+ export { B as BUTTON_COLOR_TOKENS, a as BUTTON_SIZE_TOKENS, b as BaseButtonProps, c as Button, d as ButtonGroup, e as ButtonGroupOrientation, f as ButtonGroupProps, g as ButtonGroupVariant, h as ButtonProps, E as ElevatedSplitButtonLeading, i as ElevatedSplitButtonTrailing, j as ElevatedSplitButtonTrailingUncheckable, k as ExtendedFAB, l as ExtendedFABProps, F as FAB, m as FABMenu, n as FABMenuItem, o as FABMenuItemData, p as FABMenuItemProps, q as FABMenuProps, r as FABPosition, s as FABPositionProps, t as FABProps, u as FilledSplitButtonLeading, v as FilledSplitButtonTrailing, w as FilledSplitButtonTrailingUncheckable, O as OutlinedSplitButtonLeading, x as OutlinedSplitButtonTrailing, y as OutlinedSplitButtonTrailingUncheckable, S as SplitButtonLayout, z as SplitButtonLayoutProps, A as SplitButtonLeading, C as SplitButtonLeadingProps, D as SplitButtonSize, Q as SplitButtonSizeTokens, G as SplitButtonTrailing, H as SplitButtonTrailingProps, I as SplitButtonTrailingUncheckable, J as SplitButtonTrailingUncheckableProps, K as SplitButtonVariant, T as ToggleFAB, L as ToggleFABProps, M as TonalSplitButtonLeading, N as TonalSplitButtonTrailing, P as TonalSplitButtonTrailingUncheckable } from './split-button-trailing-uncheckable-BkPbiBo3.js';
2
+ import { b as MD3Size } from './md3-Dty-Qcad.js';
3
3
  export { B as BaseIconButtonProps, I as IconButton, a as IconButtonProps } from './icon-button-D-gs0gfj.js';
4
4
  import { Transition } from 'motion/react';
5
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
package/dist/buttons.js CHANGED
@@ -1231,6 +1231,35 @@ var BUTTON_COLOR_TOKENS = {
1231
1231
  default: "bg-transparent text-m3-primary",
1232
1232
  selected: "bg-transparent text-m3-primary",
1233
1233
  unselected: "bg-transparent text-m3-primary"
1234
+ },
1235
+ // ── MD3 Expressive accent variants ──────────────────────────────────────
1236
+ /**
1237
+ * High-chroma tertiary tone. Use for hero CTAs and expressive moments where
1238
+ * a distinct accent beyond primary is needed (e.g., hero chip, highlight fab).
1239
+ */
1240
+ tertiary: {
1241
+ default: "bg-m3-tertiary text-m3-on-tertiary",
1242
+ selected: "bg-m3-tertiary text-m3-on-tertiary",
1243
+ unselected: "bg-m3-tertiary-container text-m3-on-tertiary-container"
1244
+ },
1245
+ /**
1246
+ * Brand-stable primary fixed. Hue stays consistent across light and dark modes.
1247
+ * Ideal for badges, pill chips, and elements that must carry the brand color
1248
+ * regardless of the active theme.
1249
+ */
1250
+ "primary-fixed": {
1251
+ default: "bg-m3-primary-fixed text-m3-on-primary-fixed",
1252
+ selected: "bg-m3-primary-fixed text-m3-on-primary-fixed",
1253
+ unselected: "bg-m3-primary-fixed text-m3-on-primary-fixed-variant"
1254
+ },
1255
+ /**
1256
+ * Brand-stable tertiary fixed. Use for special-state indicators, achievement
1257
+ * badges, or accent pills that need a fixed tertiary hue across themes.
1258
+ */
1259
+ "tertiary-fixed": {
1260
+ default: "bg-m3-tertiary-fixed text-m3-on-tertiary-fixed",
1261
+ selected: "bg-m3-tertiary-fixed text-m3-on-tertiary-fixed",
1262
+ unselected: "bg-m3-tertiary-fixed text-m3-on-tertiary-fixed-variant"
1234
1263
  }
1235
1264
  };
1236
1265
  var MOTION_PROP_KEYS = [
@@ -1687,7 +1716,7 @@ var PILL_BORDER_RADIUS = 9999;
1687
1716
  var MIN_FLEX_GROW = 0.01;
1688
1717
  var PADDING_EXPAND_MULTIPLIER = 4;
1689
1718
  var CHECK_ICON_SIZE = 24;
1690
- var CHECK_ICON = /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "check", size: CHECK_ICON_SIZE, weight: 700 });
1719
+ var CHECK_ICON = /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "check", variant: "rounded", size: CHECK_ICON_SIZE, weight: 700 });
1691
1720
  var CHECK_ICON_GAP_MAP = {
1692
1721
  xs: 6,
1693
1722
  sm: 8,