@bug-on/m3-expressive 1.3.2 → 1.3.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @bug-on/m3-expressive
2
2
 
3
+ ## 1.3.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 2190cac: Remove `cn` utility from public exports (`.` and `./core`).
8
+
9
+ `cn` is an internal helper for component implementation and is not part of the Material Design 3 Expressive public API. If you need `cn` in your application, please install `clsx` and `tailwind-merge` directly in your project.
10
+
11
+ ## 1.3.3
12
+
13
+ ### Patch Changes
14
+
15
+ - 719c20f: Add AI docs and TOC hierarchy
16
+
3
17
  ## 1.3.2
4
18
 
5
19
  ### Patch Changes
package/README.md CHANGED
@@ -221,6 +221,31 @@ export default function App() {
221
221
 
222
222
  ---
223
223
 
224
+ ## 🤖 AI Agent Integration
225
+
226
+ This package ships with machine-readable LLM documentation (`llms.txt` and `llms-full.txt`) adhering to the [llmstxt.org](https://llmstxt.org/) standard. When installed in your project, AI coding assistants (Cursor, GitHub Copilot, Claude Code, ChatGPT Codex) can read the bundled specification directly to understand APIs and avoid hallucinating props.
227
+
228
+ ### 📚 Locating LLM Documentation
229
+
230
+ - **Local (in your project after install)**:
231
+ - `node_modules/@bug-on/m3-expressive/llms-full.txt` *(Full API & Gotchas reference - Recommended)*
232
+ - `node_modules/@bug-on/m3-expressive/llms.txt` *(Quick overview)*
233
+ - **Remote CDN**:
234
+ - `https://unpkg.com/@bug-on/m3-expressive/llms-full.txt`
235
+ - `https://cdn.jsdelivr.net/npm/@bug-on/m3-expressive/llms-full.txt`
236
+ - `https://raw.githubusercontent.com/nguyentruongton/bug-on-md3-expressive/main/llms-full.txt`
237
+
238
+ ### 💡 Suggested Prompt for your AI Assistant
239
+ Add this instruction to your project's `CLAUDE.md`, `.cursorrules`, or system prompt:
240
+
241
+ ```markdown
242
+ Before generating or modifying UI components using @bug-on/m3-expressive, read:
243
+ - Local: node_modules/@bug-on/m3-expressive/llms-full.txt
244
+ - CDN: https://unpkg.com/@bug-on/m3-expressive/llms-full.txt
245
+ ```
246
+
247
+ ---
248
+
224
249
  ## ⚖️ License
225
250
 
226
251
  [MIT](./LICENSE)
@@ -1,7 +1,6 @@
1
1
  import * as React$1 from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { ClassValue } from 'clsx';
5
4
  import './md3-BQhRygSi.js';
6
5
  import { a as Typography, F as FontVariationAxes } from './typography-339RV6v7.js';
7
6
 
@@ -212,8 +211,6 @@ interface MaterialSymbolsPreconnectProps {
212
211
  }
213
212
  declare function MaterialSymbolsPreconnect({ variants, }: MaterialSymbolsPreconnectProps): react_jsx_runtime.JSX.Element;
214
213
 
215
- declare function cn(...inputs: ClassValue[]): string;
216
-
217
214
  /**
218
215
  * Props cho component {@link Icon}.
219
216
  *
@@ -494,4 +491,4 @@ declare function MD3ThemeProvider({ children, sourceColor: initialSourceColor, d
494
491
  declare function useTheme(): ThemeContextValue;
495
492
  declare function useThemeMode(): Pick<ThemeContextValue, "mode" | "setMode" | "effectiveMode">;
496
493
 
497
- export { type ContrastLevel as C, type GenerateM3ThemeOptions as G, Icon as I, type MD3ColorScheme as M, Ripple as R, type SchemeVariant as S, type ThemeMode as T, type UseRippleStateOptions as U, type IconProps as a, MD3ThemeProvider as b, type MD3ThemeProviderProps as c, MaterialSymbolsPreconnect as d, type RippleOrigin as e, type RippleProps as f, applyTheme as g, cn as h, generateM3Theme as i, useMediaQuery as j, useRipple as k, useRippleState as l, useTheme as m, useThemeMode as n, resolveMode as r, useRipple$1 as u };
494
+ export { type ContrastLevel as C, type GenerateM3ThemeOptions as G, Icon as I, type MD3ColorScheme as M, Ripple as R, type SchemeVariant as S, type ThemeMode as T, type UseRippleStateOptions as U, type IconProps as a, MD3ThemeProvider as b, type MD3ThemeProviderProps as c, MaterialSymbolsPreconnect as d, type RippleOrigin as e, type RippleProps as f, applyTheme as g, generateM3Theme as h, useMediaQuery as i, useRipple as j, useRippleState as k, useTheme as l, useThemeMode as m, resolveMode as r, useRipple$1 as u };
@@ -1,7 +1,6 @@
1
1
  import * as React$1 from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { ClassValue } from 'clsx';
5
4
  import './md3-BQhRygSi.mjs';
6
5
  import { a as Typography, F as FontVariationAxes } from './typography-339RV6v7.mjs';
7
6
 
@@ -212,8 +211,6 @@ interface MaterialSymbolsPreconnectProps {
212
211
  }
213
212
  declare function MaterialSymbolsPreconnect({ variants, }: MaterialSymbolsPreconnectProps): react_jsx_runtime.JSX.Element;
214
213
 
215
- declare function cn(...inputs: ClassValue[]): string;
216
-
217
214
  /**
218
215
  * Props cho component {@link Icon}.
219
216
  *
@@ -494,4 +491,4 @@ declare function MD3ThemeProvider({ children, sourceColor: initialSourceColor, d
494
491
  declare function useTheme(): ThemeContextValue;
495
492
  declare function useThemeMode(): Pick<ThemeContextValue, "mode" | "setMode" | "effectiveMode">;
496
493
 
497
- export { type ContrastLevel as C, type GenerateM3ThemeOptions as G, Icon as I, type MD3ColorScheme as M, Ripple as R, type SchemeVariant as S, type ThemeMode as T, type UseRippleStateOptions as U, type IconProps as a, MD3ThemeProvider as b, type MD3ThemeProviderProps as c, MaterialSymbolsPreconnect as d, type RippleOrigin as e, type RippleProps as f, applyTheme as g, cn as h, generateM3Theme as i, useMediaQuery as j, useRipple as k, useRippleState as l, useTheme as m, useThemeMode as n, resolveMode as r, useRipple$1 as u };
494
+ export { type ContrastLevel as C, type GenerateM3ThemeOptions as G, Icon as I, type MD3ColorScheme as M, Ripple as R, type SchemeVariant as S, type ThemeMode as T, type UseRippleStateOptions as U, type IconProps as a, MD3ThemeProvider as b, type MD3ThemeProviderProps as c, MaterialSymbolsPreconnect as d, type RippleOrigin as e, type RippleProps as f, applyTheme as g, generateM3Theme as h, useMediaQuery as i, useRipple as j, useRippleState as k, useTheme as l, useThemeMode as m, resolveMode as r, useRipple$1 as u };
package/dist/core.d.mts CHANGED
@@ -1,6 +1,5 @@
1
- export { I as Icon, a as IconProps, M as MD3ColorScheme, b as MD3ThemeProvider, c as MD3ThemeProviderProps, d as MaterialSymbolsPreconnect, R as Ripple, e as RippleOrigin, f as RippleProps, T as ThemeMode, U as UseRippleStateOptions, g as applyTheme, h as cn, i as generateM3Theme, r as resolveMode, u as useDOMRipple, j as useMediaQuery, k as useRipple, l as useRippleState, m as useTheme, n as useThemeMode } from './core-D8FdHY6I.mjs';
1
+ export { I as Icon, a as IconProps, M as MD3ColorScheme, b as MD3ThemeProvider, c as MD3ThemeProviderProps, d as MaterialSymbolsPreconnect, R as Ripple, e as RippleOrigin, f as RippleProps, T as ThemeMode, U as UseRippleStateOptions, g as applyTheme, h as generateM3Theme, r as resolveMode, u as useDOMRipple, i as useMediaQuery, j as useRipple, k as useRippleState, l as useTheme, m as useThemeMode } from './core-CRkixy1y.mjs';
2
2
  export { M as MD3ColorStyle, a as MD3Shape, b as MD3Size, P as PolymorphicProps, c as PolymorphicRef } from './md3-BQhRygSi.mjs';
3
3
  import 'react';
4
4
  import 'react/jsx-runtime';
5
- import 'clsx';
6
5
  import './typography-339RV6v7.mjs';
package/dist/core.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- export { I as Icon, a as IconProps, M as MD3ColorScheme, b as MD3ThemeProvider, c as MD3ThemeProviderProps, d as MaterialSymbolsPreconnect, R as Ripple, e as RippleOrigin, f as RippleProps, T as ThemeMode, U as UseRippleStateOptions, g as applyTheme, h as cn, i as generateM3Theme, r as resolveMode, u as useDOMRipple, j as useMediaQuery, k as useRipple, l as useRippleState, m as useTheme, n as useThemeMode } from './core-DyEy8H9Z.js';
1
+ export { I as Icon, a as IconProps, M as MD3ColorScheme, b as MD3ThemeProvider, c as MD3ThemeProviderProps, d as MaterialSymbolsPreconnect, R as Ripple, e as RippleOrigin, f as RippleProps, T as ThemeMode, U as UseRippleStateOptions, g as applyTheme, h as generateM3Theme, r as resolveMode, u as useDOMRipple, i as useMediaQuery, j as useRipple, k as useRippleState, l as useTheme, m as useThemeMode } from './core-COvZHQ_k.js';
2
2
  export { M as MD3ColorStyle, a as MD3Shape, b as MD3Size, P as PolymorphicProps, c as PolymorphicRef } from './md3-BQhRygSi.js';
3
3
  import 'react';
4
4
  import 'react/jsx-runtime';
5
- import 'clsx';
6
5
  import './typography-339RV6v7.js';
package/dist/core.js CHANGED
@@ -4,9 +4,9 @@
4
4
  var React4 = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var materialColorUtilities = require('@material/material-color-utilities');
7
+ var react = require('motion/react');
7
8
  var clsx = require('clsx');
8
9
  var tailwindMerge = require('tailwind-merge');
9
- var react = require('motion/react');
10
10
  var reactSlot = require('@radix-ui/react-slot');
11
11
 
12
12
  function _interopNamespace(e) {
@@ -2150,11 +2150,13 @@ var Snackbar = React4__namespace.memo(function Snackbar2({
2150
2150
  type: "button",
2151
2151
  onClick: handleAction,
2152
2152
  className: cn(
2153
- "text-sm font-medium",
2154
- "px-2 py-1 rounded-sm",
2155
- "focus-visible:outline-none focus-visible:ring-2",
2156
- "transition-colors whitespace-nowrap",
2157
- "text-m3-inverse-primary"
2153
+ "inline-flex items-center justify-center",
2154
+ "h-10 px-3 py-2.5 rounded-sm",
2155
+ "text-sm font-medium leading-5 whitespace-nowrap",
2156
+ "text-m3-inverse-primary",
2157
+ "hover:bg-m3-inverse-primary/8 focus-visible:bg-m3-inverse-primary/12 active:bg-m3-inverse-primary/12",
2158
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-m3-inverse-primary",
2159
+ "transition-colors select-none cursor-pointer"
2158
2160
  ),
2159
2161
  children: actionLabel
2160
2162
  }
@@ -2163,10 +2165,10 @@ var Snackbar = React4__namespace.memo(function Snackbar2({
2163
2165
  IconButton,
2164
2166
  {
2165
2167
  size: "sm",
2166
- colorStyle: "filled",
2168
+ colorStyle: "standard",
2167
2169
  "aria-label": "Dismiss notification",
2168
2170
  onClick: handleDismiss,
2169
- className: "text-m3-inverse-on-surface bg-m3-inverse-surface",
2171
+ className: "text-m3-inverse-on-surface hover:bg-m3-inverse-on-surface/8 active:bg-m3-inverse-on-surface/12 focus-visible:ring-m3-inverse-primary",
2170
2172
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "close", "aria-hidden": "true" })
2171
2173
  }
2172
2174
  )
@@ -2994,7 +2996,6 @@ exports.MD3ThemeProvider = MD3ThemeProvider;
2994
2996
  exports.MaterialSymbolsPreconnect = MaterialSymbolsPreconnect;
2995
2997
  exports.Ripple = Ripple;
2996
2998
  exports.applyTheme = applyTheme;
2997
- exports.cn = cn;
2998
2999
  exports.generateM3Theme = generateM3Theme;
2999
3000
  exports.resolveMode = resolveMode;
3000
3001
  exports.useDOMRipple = useRipple;