react-reinspect 0.1.7 → 0.1.9

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 (66) hide show
  1. package/README.md +35 -41
  2. package/dist/lib/autoWrap.d.ts +1 -8
  3. package/dist/lib/autoWrap.d.ts.map +1 -1
  4. package/dist/lib/constants.d.ts +3 -2
  5. package/dist/lib/constants.d.ts.map +1 -1
  6. package/dist/lib/context.d.ts +1 -3
  7. package/dist/lib/context.d.ts.map +1 -1
  8. package/dist/lib/core/renderCounter.d.ts +11 -0
  9. package/dist/lib/core/renderCounter.d.ts.map +1 -0
  10. package/dist/lib/core/state.d.ts +67 -0
  11. package/dist/lib/core/state.d.ts.map +1 -0
  12. package/dist/lib/dom/styleInjection.d.ts +2 -0
  13. package/dist/lib/dom/styleInjection.d.ts.map +1 -0
  14. package/dist/lib/index.cjs +1 -1
  15. package/dist/lib/index.d.ts +2 -5
  16. package/dist/lib/index.d.ts.map +1 -1
  17. package/dist/lib/index.js +781 -1199
  18. package/dist/lib/injectStyles.d.ts +1 -1
  19. package/dist/lib/injectStyles.d.ts.map +1 -1
  20. package/dist/lib/internal/auto-wrap.cjs +1 -0
  21. package/dist/lib/internal/auto-wrap.d.ts +9 -0
  22. package/dist/lib/internal/auto-wrap.d.ts.map +1 -0
  23. package/dist/lib/internal/auto-wrap.js +12 -0
  24. package/dist/lib/propsInspector.d.ts +8 -2
  25. package/dist/lib/propsInspector.d.ts.map +1 -1
  26. package/dist/lib/react/context.d.ts +3 -0
  27. package/dist/lib/react/context.d.ts.map +1 -0
  28. package/dist/lib/react/focusTrap.d.ts +3 -0
  29. package/dist/lib/react/focusTrap.d.ts.map +1 -0
  30. package/dist/lib/react/overlay.d.ts +14 -0
  31. package/dist/lib/react/overlay.d.ts.map +1 -0
  32. package/dist/lib/react/provider.d.ts +4 -0
  33. package/dist/lib/react/provider.d.ts.map +1 -0
  34. package/dist/lib/react/wrap.d.ts +11 -0
  35. package/dist/lib/react/wrap.d.ts.map +1 -0
  36. package/dist/lib/store.d.ts +1 -2
  37. package/dist/lib/store.d.ts.map +1 -1
  38. package/dist/lib/style.css +1 -1
  39. package/dist/lib/syntaxHighlight.d.ts +6 -0
  40. package/dist/lib/syntaxHighlight.d.ts.map +1 -0
  41. package/dist/lib/types.d.ts +70 -18
  42. package/dist/lib/types.d.ts.map +1 -1
  43. package/dist/lib/utils.d.ts +33 -4
  44. package/dist/lib/utils.d.ts.map +1 -1
  45. package/dist/lib/withReinspect.d.ts +1 -6
  46. package/dist/lib/withReinspect.d.ts.map +1 -1
  47. package/dist/lib/wrap-Cc3mMcCA.cjs +2 -0
  48. package/dist/lib/wrap-DkOzTshV.js +2456 -0
  49. package/dist/lib/wrapInspectableMap.d.ts +1 -1
  50. package/dist/lib/wrapInspectableMap.d.ts.map +1 -1
  51. package/dist/lib/wrapMarker.d.ts +6 -3
  52. package/dist/lib/wrapMarker.d.ts.map +1 -1
  53. package/dist/plugin/internal/autoDiscoverTransform.d.ts +26 -0
  54. package/dist/plugin/internal/autoDiscoverTransform.d.ts.map +1 -0
  55. package/dist/plugin/internal/autoDiscoverTransform.js +397 -0
  56. package/dist/plugin/reinspectAutoDiscoverPlugin.d.ts +5 -8
  57. package/dist/plugin/reinspectAutoDiscoverPlugin.d.ts.map +1 -1
  58. package/dist/plugin/reinspectAutoDiscoverPlugin.js +11 -358
  59. package/dist/plugin/reinspectNextAutoDiscoverLoader.d.ts +1 -0
  60. package/dist/plugin/reinspectNextAutoDiscoverLoader.d.ts.map +1 -1
  61. package/dist/plugin/reinspectNextAutoDiscoverLoader.js +5 -27
  62. package/dist/plugin/reinspectNextPlugin.d.ts +2 -0
  63. package/dist/plugin/reinspectNextPlugin.d.ts.map +1 -1
  64. package/dist/plugin/reinspectNextPlugin.js +19 -15
  65. package/docs/assets/screenshot-example.png +0 -0
  66. package/package.json +32 -3
package/README.md CHANGED
@@ -37,8 +37,7 @@ React DevTools is excellent for component trees and profiling.
37
37
  - Capture mode: `attempts` | `commits` | `both`
38
38
  - Flexible wrapping:
39
39
  - `withReinspect(...)`
40
- - `wrapInspectableMap(...)`
41
- - `autoWrapInspectable(...)` (for auto-discovery pipelines)
40
+ - auto-discovery wrapping via `reinspectAutoDiscoverPlugin(...)` / `withReinspectAutoDiscover(...)`
42
41
 
43
42
  ## Install
44
43
 
@@ -66,7 +65,7 @@ import react from '@vitejs/plugin-react'
66
65
  import { reinspectAutoDiscoverPlugin } from 'react-reinspect/vite-plugin'
67
66
 
68
67
  export default defineConfig({
69
- plugins: [reinspectAutoDiscoverPlugin(), react()],
68
+ plugins: [reinspectAutoDiscoverPlugin({ include: 'first-party' }), react()],
70
69
  })
71
70
  ```
72
71
 
@@ -88,7 +87,13 @@ If your Next dev server runs with Turbopack, switch to webpack mode for this tra
88
87
 
89
88
  ## Example
90
89
 
91
- ![screen shot example showing react-reinspect](docs/assets/screenshot-example.png)
90
+ ![react-reinspect runtime inspector example](https://cdn.jsdelivr.net/npm/react-reinspect@latest/docs/assets/screenshot-example.png)
91
+
92
+ ## Screenshots
93
+
94
+ ### Runtime inspector in-app
95
+
96
+ ![react-reinspect overlay, props editor, and rerender badge](https://cdn.jsdelivr.net/npm/react-reinspect@latest/docs/assets/screenshot-example.png)
92
97
 
93
98
 
94
99
  ## Agentic Quick Start
@@ -177,7 +182,9 @@ export default defineConfig({
177
182
  import { withReinspectAutoDiscover } from 'react-reinspect/next-plugin'
178
183
 
179
184
  const nextConfig = {}
180
- export default withReinspectAutoDiscover(nextConfig)
185
+ export default withReinspectAutoDiscover(nextConfig, {
186
+ includeThirdParty: false,
187
+ })
181
188
 
182
189
  // Next.js dev script for auto-discovery:
183
190
  // package.json -> "dev": "next dev --webpack"
@@ -205,7 +212,8 @@ const reinspectConfig: ReinspectConfig = {
205
212
  // startActive: true, // start with inspector active when page loads
206
213
  // showFloatingToggle: true, // show floating react-reinspect settings button
207
214
  // inspectMode: 'wrapped', // wrapped: only wrapped components, first-party: wrapped + components with inspectable metadata, all: all components
208
- // editableProps: DEFAULT_EDITABLE_PROPS, // change the CSS props you can edit
215
+ // propsSerializationMode: 'distilled', // distilled hides React element internals in JSON previews/raw editor
216
+ // editableProps: ['padding', 'margin'], // change the CSS props you can edit
209
217
  }
210
218
 
211
219
  export function AppProviders({ children }: { children: React.ReactNode }) {
@@ -333,16 +341,28 @@ Wrap your app root.
333
341
 
334
342
  | Option | Type | Default | Notes |
335
343
  |---|---|---|---|
336
- | `enabled` | `boolean` | `import.meta.env.DEV` | Master on/off. |
344
+ | `enabled` | `boolean` | `false` | Master on/off. |
337
345
  | `startActive` | `boolean` | `true` | Initial inspector active state. |
338
346
  | `showFloatingToggle` | `boolean` | `enabled` | Show built-in settings button. |
339
347
  | `inspectMode` | `'wrapped' \| 'first-party' \| 'all'` | `'wrapped'` | Auto-wrap visibility behavior. |
340
- | `editableProps` | `EditableStyleProp[]` | `DEFAULT_EDITABLE_PROPS` | CSS props editable in inspector. |
341
- | `palette` | `string[]` | `DEFAULT_PALETTE` | Component outline/badge colors. |
348
+ | `inspectWhitelist` | `InspectFilter` | `{ patterns: [], regex: false, wholeWord: false, matchCase: false }` | Optional include filter by component name. |
349
+ | `inspectBlacklist` | `InspectFilter` | `{ patterns: [], regex: false, wholeWord: false, matchCase: false }` | Optional exclude filter by component name. |
350
+ | `editableProps` | `EditableStyleProp[]` | built-in defaults | CSS props editable in inspector. |
351
+ | `propsSerializationMode` | `'distilled' \| 'complete'` | `'distilled'` | JSON view mode for props/value serialization in inspector menus. |
342
352
  | `zIndexBase` | `number` | `2147483000` | Overlay stacking baseline. |
343
- | `shouldCountRenders` | `boolean` | `false` | Global rerender counting. |
344
- | `countRendersForComponents` | `string[]` | `[]` | Enable counting for specific names. |
345
- | `renderCaptureMode` | `'attempts' \| 'commits' \| 'both'` | `'attempts'` | Counter mode shown in badges. |
353
+ | `renderCounters` | `'off' \| 'attempts' \| 'commits' \| 'both'` | `'off'` | Global render-counter mode. |
354
+ | `countRendersForComponents` | `string[]` | `[]` | Component-specific counting when global mode is `off`. |
355
+
356
+ ### `InspectFilter`
357
+
358
+ ```ts
359
+ type InspectFilter = {
360
+ patterns: string[]
361
+ regex: boolean
362
+ wholeWord: boolean
363
+ matchCase: boolean
364
+ }
365
+ ```
346
366
 
347
367
  ### `withReinspect(Component, options?)`
348
368
 
@@ -350,30 +370,14 @@ Wrap a component manually.
350
370
 
351
371
  `options`:
352
372
  - `name?: string`
353
- - `fallbackName?: string`
354
- - `source?: 'manual' | 'auto'`
355
- - `scope?: 'first-party' | 'third-party'`
356
-
357
- ### `wrapInspectableMap(componentMap, options?)`
358
-
359
- Batch-wrap a map of components while preserving prop types.
360
-
361
- ### `autoWrapInspectable(Component, metadata)`
362
-
363
- Helper for auto-discovery transforms.
364
373
 
365
- `metadata`:
366
- - `scope: 'first-party' | 'third-party'`
367
- - `componentName?: string`
368
- - `fallbackName?: string`
374
+ `wrapInspectableMap` remains available as an internal utility (`react-reinspect/dist` deep-import), but is no longer part of the stable public runtime API.
369
375
 
370
- ### `useReinspect()`
371
-
372
- Hook to read/update runtime inspector state from your own UI.
376
+ `autoWrapInspectable` is now internal-only and used by the transform plugins via `react-reinspect/internal/auto-wrap`.
373
377
 
374
378
  ## Production Guidance
375
379
 
376
- - Default behavior is dev-friendly (`enabled` resolves from `import.meta.env.DEV`).
380
+ - Default behavior is production-safe (`enabled` defaults to `false`).
377
381
  - If you want zero wrapper markup in production, gate wrapping at definition time:
378
382
 
379
383
  ```tsx
@@ -401,13 +405,3 @@ pnpm pack:check
401
405
  npm login
402
406
  pnpm publish:npm
403
407
  ```
404
-
405
- ## Screenshots To Add (Recommended)
406
-
407
- If you want, share screenshots and I will wire them into this README.
408
-
409
- Suggested captures:
410
- - Floating settings panel open.
411
- - Right-click CSS editor on a real component.
412
- - Props inspector `Detected` tab with object/function props.
413
- - Rerender badges in `both` mode (`attempts | commits`).
@@ -1,9 +1,2 @@
1
- import type { ComponentType } from 'react';
2
- import type { AutoDiscoverScope } from './types';
3
- export interface AutoWrapInspectableMetadata {
4
- componentName?: string;
5
- fallbackName?: string;
6
- scope: AutoDiscoverScope;
7
- }
8
- export declare function autoWrapInspectable<P extends object>(Component: ComponentType<P>, metadata: AutoWrapInspectableMetadata): ComponentType<P>;
1
+ export { autoWrapInspectable, type AutoWrapInspectableMetadata, } from './internal/auto-wrap';
9
2
  //# sourceMappingURL=autoWrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autoWrap.d.ts","sourceRoot":"","sources":["../../src/reinspect/autoWrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAIhD,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,iBAAiB,CAAA;CACzB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,2BAA2B,GACpC,aAAa,CAAC,CAAC,CAAC,CAYlB"}
1
+ {"version":3,"file":"autoWrap.d.ts","sourceRoot":"","sources":["../../src/reinspect/autoWrap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import type { EditableStyleProp } from './types';
2
- export declare const DEFAULT_EDITABLE_PROPS: EditableStyleProp[];
3
- export declare const DEFAULT_PALETTE: string[];
2
+ export declare const DEFAULT_EDITABLE_PROPS: readonly EditableStyleProp[];
3
+ export declare const REINSPECT_DEFAULT_RUNTIME_COLOR = "var(--reinspect-brand-500)";
4
+ export declare const REINSPECT_FALLBACK_COLOR_INPUT_HEX = "#1f2937";
4
5
  export declare const COLOR_STYLE_PROPS: Set<EditableStyleProp>;
5
6
  export declare const NUMERIC_STYLE_PROPS: Set<EditableStyleProp>;
6
7
  export declare const OPACITY_STYLE_PROP: EditableStyleProp;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/reinspect/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,EAarD,CAAA;AAED,eAAO,MAAM,eAAe,UAO3B,CAAA;AAED,eAAO,MAAM,iBAAiB,wBAI5B,CAAA;AAEF,eAAO,MAAM,mBAAmB,wBAS9B,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAA6B,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/reinspect/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAAE,SAAS,iBAAiB,EAa9D,CAAA;AAED,eAAO,MAAM,+BAA+B,+BAA+B,CAAA;AAC3E,eAAO,MAAM,kCAAkC,YAAY,CAAA;AAE3D,eAAO,MAAM,iBAAiB,wBAI5B,CAAA;AAEF,eAAO,MAAM,mBAAmB,wBAS9B,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAA6B,CAAA"}
@@ -1,4 +1,2 @@
1
- import type { ReinspectProviderProps } from './types';
2
- export declare function ReinspectProvider({ children, config, }: ReinspectProviderProps): import("react/jsx-runtime").JSX.Element;
3
- export declare function ReinspectFloatingToggle(): import("react/jsx-runtime").JSX.Element | null;
1
+ export { ReinspectProvider, ReinspectFloatingToggle } from './react/provider';
4
2
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/reinspect/context.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAKV,sBAAsB,EAEvB,MAAM,SAAS,CAAA;AAyChB,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,MAAM,GACP,EAAE,sBAAsB,2CAmJxB;AAED,wBAAgB,uBAAuB,mDA4OtC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/reinspect/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { RenderCounterMode } from '../types';
2
+ export interface RenderCounts {
3
+ attempts: number;
4
+ commits: number;
5
+ }
6
+ export declare function incrementRenderCounts(instanceId: string): void;
7
+ export declare function readRenderCounts(instanceId: string): RenderCounts;
8
+ export declare function resetRenderCounts(instanceId: string): void;
9
+ export declare function useRenderCounts(instanceId: string): RenderCounts;
10
+ export declare function formatRenderCountLabel(counts: RenderCounts, counterMode: RenderCounterMode): string;
11
+ //# sourceMappingURL=renderCounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderCounter.d.ts","sourceRoot":"","sources":["../../../src/reinspect/core/renderCounter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAsCD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAO9D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1D;AA0BD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAWhE;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,iBAAiB,GAC7B,MAAM,CAUR"}
@@ -0,0 +1,67 @@
1
+ import type { ComponentStyleOverrides, EditableStyleProp, InspectFilter, InspectMode, MenuOpenGesture, MenuTheme, PropsSerializationMode, RenderCounterMode, ResolvedReinspectConfig, StyleOverrideValue } from '../types';
2
+ export interface ReinspectState {
3
+ isActive: boolean;
4
+ inspectMode: InspectMode;
5
+ pendingInspectMode: InspectMode;
6
+ inspectWhitelist: InspectFilter;
7
+ inspectBlacklist: InspectFilter;
8
+ renderCounterMode: RenderCounterMode;
9
+ propsSerializationMode: PropsSerializationMode;
10
+ menuTheme: MenuTheme;
11
+ menuOpenGesture: MenuOpenGesture;
12
+ renderCountComponents: Record<string, true>;
13
+ overrides: Record<string, ComponentStyleOverrides>;
14
+ }
15
+ interface HydrateConfigAction {
16
+ type: 'hydrate-config';
17
+ config: ResolvedReinspectConfig;
18
+ }
19
+ interface SetIsActiveAction {
20
+ type: 'set-is-active';
21
+ value: boolean;
22
+ }
23
+ interface SetPendingInspectModeAction {
24
+ type: 'set-pending-inspect-mode';
25
+ value: InspectMode;
26
+ }
27
+ interface SetInspectWhitelistAction {
28
+ type: 'set-inspect-whitelist';
29
+ value: InspectFilter;
30
+ }
31
+ interface SetInspectBlacklistAction {
32
+ type: 'set-inspect-blacklist';
33
+ value: InspectFilter;
34
+ }
35
+ interface SetRenderCounterModeAction {
36
+ type: 'set-render-counter-mode';
37
+ value: RenderCounterMode;
38
+ }
39
+ interface SetPropsSerializationModeAction {
40
+ type: 'set-props-serialization-mode';
41
+ value: PropsSerializationMode;
42
+ }
43
+ interface SetMenuThemeAction {
44
+ type: 'set-menu-theme';
45
+ value: MenuTheme;
46
+ }
47
+ interface SetMenuOpenGestureAction {
48
+ type: 'set-menu-open-gesture';
49
+ value: MenuOpenGesture;
50
+ }
51
+ interface SetRenderCountingForComponentAction {
52
+ type: 'set-render-counting-for-component';
53
+ componentName: string;
54
+ enabled: boolean;
55
+ }
56
+ interface UpdateOverrideAction {
57
+ type: 'update-override';
58
+ componentId: string;
59
+ prop: EditableStyleProp;
60
+ value: StyleOverrideValue | undefined;
61
+ }
62
+ export type ReinspectStateAction = HydrateConfigAction | SetIsActiveAction | SetPendingInspectModeAction | SetInspectWhitelistAction | SetInspectBlacklistAction | SetRenderCounterModeAction | SetPropsSerializationModeAction | SetMenuThemeAction | SetMenuOpenGestureAction | SetRenderCountingForComponentAction | UpdateOverrideAction;
63
+ export declare function buildRenderCountComponentMap(componentNames: readonly string[]): Record<string, true>;
64
+ export declare function buildInitialReinspectState(config: ResolvedReinspectConfig): ReinspectState;
65
+ export declare function reinspectStateReducer(state: ReinspectState, action: ReinspectStateAction): ReinspectState;
66
+ export {};
67
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/reinspect/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAEjB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,gBAAgB,EAAE,aAAa,CAAA;IAC/B,gBAAgB,EAAE,aAAa,CAAA;IAC/B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CACnD;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,gBAAgB,CAAA;IACtB,MAAM,EAAE,uBAAuB,CAAA;CAChC;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,0BAA0B,CAAA;IAChC,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,uBAAuB,CAAA;IAC7B,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,uBAAuB,CAAA;IAC7B,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,UAAU,0BAA0B;IAClC,IAAI,EAAE,yBAAyB,CAAA;IAC/B,KAAK,EAAE,iBAAiB,CAAA;CACzB;AAED,UAAU,+BAA+B;IACvC,IAAI,EAAE,8BAA8B,CAAA;IACpC,KAAK,EAAE,sBAAsB,CAAA;CAC9B;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;CACjB;AAED,UAAU,wBAAwB;IAChC,IAAI,EAAE,uBAAuB,CAAA;IAC7B,KAAK,EAAE,eAAe,CAAA;CACvB;AAED,UAAU,mCAAmC;IAC3C,IAAI,EAAE,mCAAmC,CAAA;IACzC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,iBAAiB,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAA;CACtC;AAED,MAAM,MAAM,oBAAoB,GAC5B,mBAAmB,GACnB,iBAAiB,GACjB,2BAA2B,GAC3B,yBAAyB,GACzB,yBAAyB,GACzB,0BAA0B,GAC1B,+BAA+B,GAC/B,kBAAkB,GAClB,wBAAwB,GACxB,mCAAmC,GACnC,oBAAoB,CAAA;AAExB,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAOtB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,GAC9B,cAAc,CAgBhB;AAgDD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CA4LhB"}
@@ -0,0 +1,2 @@
1
+ export declare function injectReinspectStyles(styleText: string): void;
2
+ //# sourceMappingURL=styleInjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styleInjection.d.ts","sourceRoot":"","sources":["../../../src/reinspect/dom/styleInjection.ts"],"names":[],"mappings":"AAUA,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAmB7D"}
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`react`),t=require(`react/jsx-runtime`),n=require(`react-dom`);var r=`.reinspect-shell{border-radius:14px;transition:outline-color .12s;position:relative}.reinspect-shell[data-reinspect-active=true]{outline:2px dashed var(--reinspect-color);outline-offset:2px}.reinspect-content{border-radius:inherit}.reinspect-name-badge{z-index:calc(var(--reinspect-z-base) + 5);letter-spacing:.04em;color:#0f172a;background:color-mix(in srgb, var(--reinspect-color) 25%, white);border:1px solid color-mix(in srgb, var(--reinspect-color) 45%, white);pointer-events:none;white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:11px;line-height:1;position:absolute;top:-14px;left:10px}.reinspect-menu{z-index:2147483647;background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:min(300px,100vw - 24px);max-height:min(420px,70vh);padding:12px;position:fixed;overflow:auto;box-shadow:0 20px 25px -5px #0f172a33,0 8px 10px -6px #0f172a33}.reinspect-menu-title{color:#0f172a;margin:0 0 10px;font-size:13px;font-weight:600}.reinspect-menu-component-setting{color:#1e293b;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:grid}.reinspect-menu-component-setting input[type=checkbox]{width:15px;height:15px}.reinspect-setting-note{color:#64748b;margin:0 0 10px;font-size:11px}.reinspect-submenu{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.reinspect-submenu button{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;font-size:12px}.reinspect-submenu button[data-state=active]{background:#e0f2fe;border-color:#0284c7}.reinspect-menu-grid{gap:9px;display:grid}.reinspect-menu-filter{margin-bottom:10px;position:relative}.reinspect-menu-filter-icon{color:#64748b;pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.reinspect-menu-filter-icon svg{width:100%;height:100%;display:block}.reinspect-menu-filter input{border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:5px 7px 5px 30px;font-size:12px}.reinspect-menu-empty-state{color:#64748b;margin:8px 0 0;font-size:12px}.reinspect-field{gap:4px;display:grid}.reinspect-field label{color:#334155;font-size:12px}.reinspect-inline-controls{grid-template-columns:1fr auto;gap:6px;display:grid}.reinspect-inline-controls input,.reinspect-inline-controls button,.reinspect-inline-controls output{font-size:12px}.reinspect-inline-controls input[type=number],.reinspect-inline-controls input[type=text]{border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:5px 7px}.reinspect-inline-controls button{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:5px 7px}.reinspect-inline-controls button:disabled{opacity:.45;cursor:default}.reinspect-opacity-controls{grid-template-columns:1fr auto auto;align-items:center}.reinspect-opacity-controls output{color:#475569;text-align:right;min-width:36px}.reinspect-props-panel{gap:8px;display:grid}.reinspect-props-submenu{grid-template-columns:1fr 1fr;gap:6px;display:grid}.reinspect-props-submenu button{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;font-size:12px}.reinspect-props-submenu button[data-state=active]{background:#e0f2fe;border-color:#0284c7}.reinspect-props-panel label{color:#334155;font-size:12px}.reinspect-props-table{gap:6px;display:grid}.reinspect-props-header{color:#475569;text-transform:uppercase;letter-spacing:.04em;grid-template-columns:.85fr 1.15fr;gap:8px;font-size:11px;display:grid}.reinspect-props-row{border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:.85fr 1.15fr;align-items:start;gap:8px;padding:6px;display:grid}.reinspect-prop-key{color:#0f172a;word-break:break-word;font-size:12px}.reinspect-prop-cell{min-width:0}.reinspect-prop-cell code{color:#0f172a;word-break:break-word;font-size:11px}.reinspect-prop-missing{color:#94a3b8;font-size:11px}.reinspect-prop-scalar{gap:4px;display:grid}.reinspect-prop-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.reinspect-prop-scalar button,.reinspect-prop-function button,.reinspect-prop-tree summary button{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:7px;justify-self:start;padding:3px 6px;font-size:11px}.reinspect-prop-actions button,.reinspect-prop-json-preview button{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:7px;padding:3px 6px;font-size:11px}.reinspect-prop-tree{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:5px}.reinspect-prop-tree summary{cursor:pointer;color:#1e293b;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.reinspect-prop-tree-children{gap:6px;margin-top:6px;display:grid}.reinspect-prop-tree-row{grid-template-columns:.8fr 1.2fr;align-items:start;gap:6px;display:grid}.reinspect-prop-tree-row>code{color:#334155;word-break:break-word;font-size:10px}.reinspect-prop-function{gap:4px;display:grid}.reinspect-prop-function pre{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:0;padding:6px;font-size:11px;line-height:1.3}.reinspect-prop-json-preview{gap:6px;margin-top:6px;display:grid}.reinspect-prop-json-preview pre{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;max-height:180px;margin:0;padding:6px;font-size:11px;line-height:1.3;overflow:auto}.reinspect-modal-backdrop{z-index:2147483647;background:#0f172a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reinspect-modal{background:#fff;border:1px solid #cbd5e1;border-radius:12px;gap:8px;width:min(560px,100%);padding:12px;display:grid;box-shadow:0 24px 28px -12px #0f172a40,0 10px 16px -10px #0f172a38}.reinspect-modal textarea,.reinspect-props-panel textarea{resize:vertical;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:8px;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:12px}.reinspect-error{color:#b91c1c;margin:0;font-size:12px}.reinspect-floating-toggle{z-index:2147483647;color:#f8fafc;letter-spacing:.03em;cursor:pointer;background:linear-gradient(120deg,#0f172a,#334155);border:none;border-radius:999px;padding:10px 15px;font-size:13px;font-weight:600;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 18px #0f172a47}.reinspect-floating-root{z-index:2147483645;position:fixed;bottom:18px;right:18px}.reinspect-floating-root .reinspect-floating-toggle{position:static}.reinspect-settings-menu{background:#fff;border:1px solid #cbd5e1;border-radius:12px;gap:10px;width:min(360px,100vw - 24px);max-height:min(540px,75vh);padding:12px;display:grid;position:absolute;bottom:calc(100% + 10px);right:0;overflow:auto;box-shadow:0 24px 28px -12px #0f172a40,0 10px 16px -10px #0f172a38}.reinspect-settings-title{color:#0f172a;margin:0;font-size:13px;font-weight:700}.reinspect-settings-toggle-row{color:#1e293b;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.reinspect-settings-select-row{gap:6px;font-size:12px;display:grid}.reinspect-settings-select-row select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:6px 8px;font-size:12px}.reinspect-settings-toggle-label{line-height:1.35}.reinspect-settings-toggle-row input[type=checkbox]{width:16px;height:16px}.reinspect-settings-divider{background:#e2e8f0;height:1px}.reinspect-setting-block{gap:8px;display:grid}.reinspect-apply-button{color:#f8fafc;cursor:pointer;background:#0f172a;border:1px solid #0f172a;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:600}.reinspect-apply-button:disabled{opacity:.4;cursor:default}.reinspect-setting-header{grid-template-columns:1fr auto;align-items:start;gap:8px;display:grid}.reinspect-setting-name{color:#0f172a;letter-spacing:.02em;margin:0;font-size:12px;font-weight:700}.reinspect-setting-short-description{color:#475569;margin:3px 0 0;font-size:12px;line-height:1.35}.reinspect-tooltip-host{display:inline-flex;position:relative}.reinspect-tooltip-trigger{color:#334155;cursor:help;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:12px;font-weight:700;display:inline-flex}.reinspect-tooltip-content{color:#f8fafc;opacity:0;pointer-events:none;background:#0f172a;border:1px solid #cbd5e1;border-radius:8px;width:240px;padding:8px;font-size:11px;line-height:1.4;transition:opacity .12s;position:absolute;top:calc(100% + 6px);right:0}.reinspect-tooltip-host:hover .reinspect-tooltip-content,.reinspect-tooltip-host:focus-within .reinspect-tooltip-content{opacity:1;pointer-events:auto}.reinspect-setting-subheading{color:#334155;margin:2px 0 0;font-size:12px;font-weight:600}.reinspect-setting-empty-state{color:#64748b;margin:0;font-size:12px}.reinspect-component-settings-list{gap:6px;display:grid}.reinspect-component-setting-row{color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:grid}.reinspect-component-setting-row input[type=checkbox]{width:15px;height:15px}`,i=`reinspect-runtime-styles`;function a(){return typeof document>`u`?null:document}function o(e){if(!e)return;let t=a();if(!t||t.getElementById(i))return;let n=t.createElement(`style`);n.id=i,n.textContent=e,(t.head??t.documentElement).appendChild(n)}var s=(0,e.createContext)(null);function c(){let t=(0,e.useContext)(s);if(!t)throw Error(`useReinspect must be used within ReinspectProvider`);return t}var l=[`backgroundColor`,`color`,`fontSize`,`padding`,`margin`,`borderRadius`,`borderWidth`,`borderColor`,`opacity`,`width`,`height`,`gap`],u=[`#f97316`,`#2563eb`,`#16a34a`,`#db2777`,`#ca8a04`,`#0f766e`],d=new Set([`backgroundColor`,`color`,`borderColor`]),ee=new Set([`fontSize`,`padding`,`margin`,`borderRadius`,`borderWidth`,`width`,`height`,`gap`]),f=2147483e3,p=`reinspect.inspectMode`,m=[`wrapped`,`first-party`,`all`],h=[`attempts`,`commits`,`both`];function g(){return!1}function _(e){return typeof e==`string`&&m.includes(e)}function v(e){return typeof e==`string`&&h.includes(e)}function y(){if(!(typeof window>`u`))try{let e=window.sessionStorage.getItem(p);return _(e)?e:void 0}catch{return}}function b(e){return y()||(_(e)?e:`wrapped`)}function te(e){if(!(typeof window>`u`))try{window.sessionStorage.setItem(p,e)}catch{}}function x(){if(!(typeof window>`u`))try{window.location.reload()}catch{}}function S(e={}){let t=e.enabled??g(),n=e.editableProps&&e.editableProps.length>0?e.editableProps:l,r=e.palette&&e.palette.length>0?e.palette:u;return{enabled:t,startActive:e.startActive??!0,showFloatingToggle:e.showFloatingToggle??t,inspectMode:b(e.inspectMode),editableProps:n,palette:r,zIndexBase:e.zIndexBase??f,shouldCountRenders:e.shouldCountRenders??!1,countRendersForComponents:e.countRendersForComponents??[],renderCaptureMode:v(e.renderCaptureMode)?e.renderCaptureMode:`attempts`}}function C(e){let t=0;for(let n=0;n<e.length;n+=1)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)}function ne(e,t){return t.length===0?u[0]:t[C(e)%t.length]}function w(e,t){if(!e)return{};let n={};for(let r of t){let t=e[r];t==null||t===``||(n[r]=t)}return n}function T(e){if(!e)return`#1f2937`;if(/^#[0-9a-fA-F]{6}$/.test(e))return e;if(/^#[0-9a-fA-F]{3}$/.test(e)){let[,t,n,r]=e;return`#${t}${t}${n}${n}${r}${r}`}return`#1f2937`}function re(e){let t=Number(e);if(Number.isFinite(t))return t}var E=`Capture rerenders and show totals next to component badges.`,D=`Tracks every rerender after initial mount for wrapped components. Use this toggle to capture for all components, or enable a specific component from its right-click inspector menu.`,O=`Choose whether to count render attempts, committed renders, or both.`,ie=`Render attempts track render-phase executions (includes Strict Mode extra passes). Committed renders track completed DOM commits. Both shows both counters together.`,ae=`Controls which components are automatically discoverable by Reinspect.`,k=`Only wrapped components uses explicit withReinspect wrappers only. All 1st-party components auto-discovers components under your source tree. All components also attempts dependency components (with safety skips).`;function A(e){let t={};for(let n of e)t[n]=!0;return t}function oe({children:n,config:r}){let i=(0,e.useMemo)(()=>S(r),[r]),[a,o]=(0,e.useState)(i.startActive),[c]=(0,e.useState)(i.inspectMode),[l,u]=(0,e.useState)(i.inspectMode),[d,ee]=(0,e.useState)(i.shouldCountRenders),[f,p]=(0,e.useState)(i.renderCaptureMode),[m,h]=(0,e.useState)(()=>A(i.countRendersForComponents)),[g,_]=(0,e.useState)({}),v=(0,e.useCallback)((e,t,n)=>{_(r=>{let i={...r[e]??{}};if(n==null||n===``?delete i[t]:i[t]=n,Object.keys(i).length===0){let t={...r};return delete t[e],t}return{...r,[e]:i}})},[]),y=(0,e.useCallback)((e,t)=>{h(n=>{if(t)return{...n,[e]:!0};if(!n[e])return n;let r={...n};return delete r[e],r})},[]),b=(0,e.useCallback)(e=>d||!!m[e],[d,m]),C=l!==c,w=(0,e.useCallback)(()=>{C&&(te(l),x())},[C,l]),T=(0,e.useCallback)(e=>ne(e,i.palette),[i.palette]),re=(0,e.useMemo)(()=>({config:i,isActive:i.enabled&&a,setIsActive:o,inspectMode:c,pendingInspectMode:l,setPendingInspectMode:u,hasPendingInspectModeChange:C,applyInspectMode:w,shouldCountRenders:d,setShouldCountRenders:ee,renderCaptureMode:f,setRenderCaptureMode:p,renderCountComponents:m,setRenderCountingForComponent:y,isRenderCountingEnabledFor:b,overrides:g,updateOverride:v,getBorderColor:T}),[i,a,c,l,u,C,w,d,f,m,y,b,g,v,T]);return(0,t.jsxs)(s.Provider,{value:re,children:[n,i.enabled&&i.showFloatingToggle?(0,t.jsx)(j,{}):null]})}function j(){let{config:n,isActive:r,setIsActive:i,inspectMode:a,pendingInspectMode:o,setPendingInspectMode:s,hasPendingInspectModeChange:l,applyInspectMode:u,shouldCountRenders:d,setShouldCountRenders:ee,renderCaptureMode:f,setRenderCaptureMode:p}=c(),[m,h]=(0,e.useState)(!1),g=(0,e.useRef)(null);return(0,e.useEffect)(()=>{if(!m)return;let e=e=>{let t=e.target;g.current?.contains(t)||h(!1)},t=e=>{e.key===`Escape`&&h(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[m]),n.enabled?(0,t.jsxs)(`div`,{className:`reinspect-floating-root`,ref:g,children:[(0,t.jsx)(`button`,{type:`button`,className:`reinspect-floating-toggle`,"data-testid":`reinspect-floating-toggle`,onClick:()=>h(e=>!e),"aria-expanded":m,"aria-controls":`reinspect-settings-menu`,children:`Reinspect settings`}),m?(0,t.jsxs)(`div`,{id:`reinspect-settings-menu`,className:`reinspect-settings-menu`,role:`dialog`,"aria-label":`Reinspect settings`,"data-testid":`reinspect-settings-menu`,children:[(0,t.jsx)(`p`,{className:`reinspect-settings-title`,children:`Reinspect settings`}),(0,t.jsxs)(`label`,{className:`reinspect-settings-toggle-row`,children:[(0,t.jsx)(`span`,{className:`reinspect-settings-toggle-label`,children:`Inspector enabled`}),(0,t.jsx)(`input`,{"data-testid":`reinspect-setting-inspector-active`,type:`checkbox`,checked:r,onChange:e=>i(e.currentTarget.checked)})]}),(0,t.jsx)(`div`,{className:`reinspect-settings-divider`}),(0,t.jsxs)(`section`,{className:`reinspect-setting-block`,children:[(0,t.jsxs)(`header`,{className:`reinspect-setting-header`,children:[(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`p`,{className:`reinspect-setting-name`,children:`INSPECT_MODE`}),(0,t.jsx)(`p`,{className:`reinspect-setting-short-description`,children:ae})]}),(0,t.jsxs)(`span`,{className:`reinspect-tooltip-host`,children:[(0,t.jsx)(`button`,{type:`button`,className:`reinspect-tooltip-trigger`,"aria-label":`Explain INSPECT_MODE`,children:`?`}),(0,t.jsx)(`span`,{className:`reinspect-tooltip-content`,role:`tooltip`,children:k})]})]}),(0,t.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,t.jsx)(`span`,{className:`reinspect-settings-toggle-label`,children:`Inspect Mode`}),(0,t.jsxs)(`select`,{"data-testid":`reinspect-setting-inspect-mode`,value:o,onChange:e=>{let t=e.currentTarget.value;_(t)&&s(t)},children:[(0,t.jsx)(`option`,{value:`wrapped`,children:`Only wrapped components`}),(0,t.jsx)(`option`,{value:`first-party`,children:`All 1st-party components`}),(0,t.jsx)(`option`,{value:`all`,children:`All components`})]})]}),(0,t.jsx)(`button`,{type:`button`,className:`reinspect-apply-button`,"data-testid":`reinspect-apply-inspect-mode`,onClick:u,disabled:!l,children:`Apply & Reload`}),l?(0,t.jsx)(`p`,{className:`reinspect-setting-note`,"data-testid":`reinspect-inspect-mode-reload-note`,children:`Inspect mode changes are applied after reload.`}):(0,t.jsxs)(`p`,{className:`reinspect-setting-note`,children:[`Current mode: `,a]})]}),(0,t.jsx)(`div`,{className:`reinspect-settings-divider`}),(0,t.jsxs)(`section`,{className:`reinspect-setting-block`,children:[(0,t.jsxs)(`header`,{className:`reinspect-setting-header`,children:[(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`p`,{className:`reinspect-setting-name`,children:`SHOULD_COUNT_RENDERS`}),(0,t.jsx)(`p`,{className:`reinspect-setting-short-description`,children:E})]}),(0,t.jsxs)(`span`,{className:`reinspect-tooltip-host`,children:[(0,t.jsx)(`button`,{type:`button`,className:`reinspect-tooltip-trigger`,"aria-label":`Explain SHOULD_COUNT_RENDERS`,children:`?`}),(0,t.jsx)(`span`,{className:`reinspect-tooltip-content`,role:`tooltip`,children:D})]})]}),(0,t.jsxs)(`label`,{className:`reinspect-settings-toggle-row`,children:[(0,t.jsx)(`span`,{className:`reinspect-settings-toggle-label`,children:`Capture render for all components`}),(0,t.jsx)(`input`,{"data-testid":`reinspect-setting-should-count-renders`,type:`checkbox`,checked:d,onChange:e=>ee(e.currentTarget.checked)})]}),(0,t.jsxs)(`header`,{className:`reinspect-setting-header`,children:[(0,t.jsxs)(`div`,{children:[(0,t.jsx)(`p`,{className:`reinspect-setting-name`,children:`RENDER_CAPTURE_MODE`}),(0,t.jsx)(`p`,{className:`reinspect-setting-short-description`,children:O})]}),(0,t.jsxs)(`span`,{className:`reinspect-tooltip-host`,children:[(0,t.jsx)(`button`,{type:`button`,className:`reinspect-tooltip-trigger`,"aria-label":`Explain RENDER_CAPTURE_MODE`,children:`?`}),(0,t.jsx)(`span`,{className:`reinspect-tooltip-content`,role:`tooltip`,children:ie})]})]}),(0,t.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,t.jsx)(`span`,{className:`reinspect-settings-toggle-label`,children:`Capture mode`}),(0,t.jsxs)(`select`,{"data-testid":`reinspect-setting-render-capture-mode`,value:f,onChange:e=>{let t=e.currentTarget.value;v(t)&&p(t)},children:[(0,t.jsx)(`option`,{value:`attempts`,children:`Render attempts`}),(0,t.jsx)(`option`,{value:`commits`,children:`Committed renders`}),(0,t.jsx)(`option`,{value:`both`,children:`Both`})]})]})]})]}):null]}):null}var M=4,N=40,P=40,F=`__reinspect_placeholder__`;function I(e,t){return{[F]:e,display:t}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){if(!L(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function se(e){return L(e)&&typeof e.__reinspect_placeholder__==`string`&&typeof e.display==`string`}function z(e){try{return JSON.stringify(e,null,2)}catch{return null}}function ce(e){try{let t=Function.prototype.toString.call(e);return typeof t!=`string`||t.trim().length===0?`[Function source unavailable]`:t}catch{return`[Function source unavailable]`}}function le(e){let t=e.replace(/\s+/g,` `).trim();return t.length<=120?t:`${t.slice(0,117)}...`}function B(e,t,n){if(n>M)return I(`truncated`,`[Max depth reached]`);if(e===null)return null;let r=typeof e;if(r===`string`||r===`boolean`)return e;if(r===`number`)return Number.isFinite(e)?e:I(`non-finite-number`,String(e));if(r===`undefined`)return I(`undefined`,`undefined`);if(r===`bigint`)return I(`bigint`,`${String(e)}n`);if(r===`symbol`)return I(`symbol`,String(e));if(r===`function`)return I(`function`,`[Function ${e.name||`anonymous`}]`);if(e instanceof Date)return I(`date`,Number.isNaN(e.getTime())?`Invalid Date`:e.toISOString());if(e instanceof RegExp)return I(`regexp`,e.toString());if(r===`object`){let r=e;if(t.has(r))return I(`circular`,`[Circular]`);if(t.add(r),Array.isArray(e)){let i=[],a=Math.min(e.length,P);for(let r=0;r<a;r+=1)i.push(B(e[r],t,n+1));return e.length>P&&i.push(I(`truncated`,`${e.length-P} more items`)),t.delete(r),i}let i={},a=Object.entries(e),o=Math.min(a.length,N);for(let e=0;e<o;e+=1){let[r,o]=a[e];i[r]=B(o,t,n+1)}return a.length>N&&(i.__reinspect_truncated__=I(`truncated`,`${a.length-N} more keys`)),t.delete(r),i}return I(`unsupported`,`[Unsupported value]`)}function V(e){if(e===null)return{kind:`null`,summary:`null`,copyText:`null`};let t=typeof e;if(t===`undefined`)return{kind:`undefined`,summary:`undefined`,copyText:`undefined`};if(t===`boolean`)return{kind:`boolean`,summary:String(e),copyText:String(e)};if(t===`number`)return{kind:`number`,summary:String(e),copyText:String(e)};if(t===`string`)return{kind:`string`,summary:JSON.stringify(e),copyText:String(e)};if(t===`bigint`)return{kind:`bigint`,summary:`${String(e)}n`,copyText:`${String(e)}n`};if(t===`symbol`){let t=String(e);return{kind:`symbol`,summary:t,copyText:t}}if(t===`function`){let t=e,n=ce(t),r=t.name||`anonymous`;return{kind:`function`,summary:`Function ${r}(${t.length})`,copyText:n,functionMeta:{name:r,arity:t.length,preview:le(n),source:n}}}if(e instanceof Date){let t=Number.isNaN(e.getTime())?`Invalid Date`:e.toISOString();return{kind:`date`,summary:`Date ${t}`,copyText:t}}if(e instanceof RegExp){let t=e.toString();return{kind:`regexp`,summary:t,copyText:t}}return Array.isArray(e)?{kind:`array`,summary:`Array(${e.length})`}:L(e)?{kind:`object`,summary:`Object(${Object.keys(e).length})`}:{kind:`unknown`,summary:String(e)}}function H(e){if(!se(e)){if(Array.isArray(e)){let t=[];for(let n of e){let e=H(n);if(e===void 0)return;t.push(e)}return t}if(L(e)){let t={};for(let[n,r]of Object.entries(e)){let e=H(r);e!==void 0&&(t[n]=e)}return t}return e}}function ue(e){return Object.keys(e).map(t=>({key:t,value:V(e[t])}))}function de(e){return z(B(e,new WeakSet,0))??`{}`}function fe(e){return z(B(e,new WeakSet,0))}function U(e){if(e===null)return!0;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||Array.isArray(e)?!0:R(e)}function pe(e){let t=e.trim();if(t.length===0)return{parsed:null,error:`Value JSON cannot be empty.`};try{let e=H(JSON.parse(t));return e===void 0||!U(e)?{parsed:null,error:`Only objects, arrays, and primitive JSON values are editable.`}:{parsed:e,error:null}}catch{return{parsed:null,error:`Invalid JSON. Fix syntax and try Apply again.`}}}function me(e){let t=e.trim();if(t.length===0)return{parsed:{},error:null};try{let e=JSON.parse(t);if(typeof e!=`object`||!e||Array.isArray(e))return{parsed:null,error:`Props JSON must be an object (example: {"title":"Demo"}).`};let n={};for(let[t,r]of Object.entries(e)){let e=H(r);e!==void 0&&(n[t]=e)}return{parsed:n,error:null}}catch{return{parsed:null,error:`Invalid JSON. Fix syntax and try Apply again.`}}}var W=Symbol.for(`reinspect.wrapped`);function G(e){return e[W]}var he={enabled:!1,startActive:!1,showFloatingToggle:!1,inspectMode:`wrapped`,editableProps:[],palette:[],zIndexBase:0,shouldCountRenders:!1,countRendersForComponents:[],renderCaptureMode:`attempts`},K=new Map;function q(e){let t=K.get(e);if(t)return t;let n={attempts:0,commits:0,hasCommitted:!1,wasCountingEnabled:!1,shouldCountCommit:!1};return K.set(e,n),n}function ge(e,t){let n=q(e);if(!t)return n.wasCountingEnabled=!1,n.shouldCountCommit=!1,{attempts:n.attempts,commits:n.commits};let r=n.hasCommitted&&n.wasCountingEnabled;return r&&(n.attempts+=1),n.wasCountingEnabled=!0,n.shouldCountCommit=r,{attempts:n.attempts,commits:n.commits+ +!!r}}function _e(e){let t=q(e);t.hasCommitted&&t.shouldCountCommit&&(t.commits+=1),t.hasCommitted=!0,t.shouldCountCommit=!1}function ve(e,t){return t===`commits`?`${e.commits} commits`:t===`both`?`${e.attempts} attempts | ${e.commits} commits`:`${e.attempts} attempts`}function ye(e){let t=e.replace(/([A-Z])/g,` $1`).trim();return t.length>0?t[0].toUpperCase()+t.slice(1):e}function be(e){return e.trim().toLowerCase().replace(/[\s_-]+/g,``)}function J(e){return e!=null&&e!==``}function xe(e){return e.replace(/[^a-zA-Z0-9_-]/g,`-`)}async function Se(e){if(typeof navigator>`u`||!navigator.clipboard?.writeText)return!1;try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function Ce({value:e,onCopy:n}){if(e.kind===`function`&&e.functionMeta){let r=e.functionMeta;return(0,t.jsxs)(`div`,{className:`reinspect-prop-function`,children:[(0,t.jsx)(`code`,{children:e.summary}),(0,t.jsx)(`pre`,{children:r.preview}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>n(r.source,`Function source`),disabled:!r.source,children:`Copy function source`})]})}return(0,t.jsxs)(`div`,{className:`reinspect-prop-scalar`,children:[(0,t.jsx)(`code`,{children:e.summary}),e.copyText?(0,t.jsx)(`button`,{type:`button`,onClick:()=>n(e.copyText??``,`Value`),children:`Copy`}):null]})}function we(e,t){return t?.name?.trim()||e.displayName?.trim()||e.name?.trim()||t?.fallbackName?.trim()||`Component`}function Te(e,t,n){return e===`manual`||n===`all`||n===`first-party`&&t===`first-party`}function Y(r,i){let a=i?.source??`manual`,o=i?.scope??`first-party`,c=G(r);if(c&&a===`auto`)return r;let l=c&&a===`manual`?c.original:r,u=we(l,i);function f(r){let i=(0,e.useId)(),c=(0,e.useRef)(null),f=(0,e.useRef)(null),[p,m]=(0,e.useState)(null),[h,g]=(0,e.useState)(`css`),[_,v]=(0,e.useState)(`detected`),[y,b]=(0,e.useState)(``),[te,x]=(0,e.useState)({}),[S,C]=(0,e.useState)(`{}`),[ne,E]=(0,e.useState)(null),[D,O]=(0,e.useState)(null),[ie,ae]=(0,e.useState)({}),[k,A]=(0,e.useState)({}),[oe,j]=(0,e.useState)({}),[M,N]=(0,e.useState)(null),[P,F]=(0,e.useState)(``),[I,L]=(0,e.useState)(null),R=(0,e.useContext)(s),se=!!R,z=R?.config??he,ce=R?.getBorderColor??(()=>`#f97316`),le=R?.isActive??!1,B=R?.inspectMode??`wrapped`,V=R?.shouldCountRenders??!1,H=R?.renderCaptureMode??he.renderCaptureMode,W=R?.overrides??{},G=R?.updateOverride??(()=>void 0),q=R?.renderCountComponents??{},we=R?.setRenderCountingForComponent??(()=>void 0),Y=R?.isRenderCountingEnabledFor??(()=>!1),X=`${u}-${i}`,Ee=ce(u),De=Te(a,o,B),Z=z.enabled&&le&&De,Oe=De&&Y(u),ke=!!q[u],Ae=ge(X,Oe),je=W[X],Me=Z?w(je,z.editableProps):{},Q={...r,...te},Ne=Q,$=Z&&p!==null,Pe=be(y),Fe=Pe.length===0?z.editableProps:z.editableProps.filter(e=>be(e).includes(Pe)),Ie=$&&h===`props`&&_===`detected`?ue(Ne):[];(0,e.useEffect)(()=>(_e(X),()=>{K.delete(X)}),[X]),(0,e.useEffect)(()=>{if(!$)return;let e=e=>{let t=e.target;c.current?.contains(t)||f.current?.contains(t)||(m(null),N(null),F(``),L(null))},t=e=>{if(e.key===`Escape`){if(M){N(null),F(``),L(null);return}m(null)}};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[M,$]),(0,e.useEffect)(()=>{if(!D)return;let e=globalThis.setTimeout(()=>{O(null)},1400);return()=>{globalThis.clearTimeout(e)}},[D]);let Le={"--reinspect-color":Ee,"--reinspect-z-base":z.zIndexBase},Re=e=>{Z&&(e.preventDefault(),g(`css`),v(`detected`),b(``),E(null),O(null),ae({}),A({}),j({}),N(null),F(``),L(null),C(`{}`),m({x:e.clientX,y:e.clientY}))},ze=()=>{let{parsed:e,error:t}=me(S);if(t||!e){E(t);return}x(e),E(null)},Be=()=>{x({}),_===`raw`&&C(de(r)),E(null)},Ve=(e,t)=>{Se(e).then(e=>{O(e?`${t} copied.`:`Clipboard access is unavailable.`)})},He=(e,t)=>{if(oe[e]){j(t=>({...t,[e]:!1}));return}if(!(e in ie)&&!(e in k)){let n=fe(t);n===null?A(t=>({...t,[e]:`JSON preview is unavailable for this value.`})):ae(t=>({...t,[e]:n}))}j(t=>({...t,[e]:!0}))},Ue=(e,t)=>{if(!U(t))return;let n=fe(t);if(n===null){O(`Unable to open editor for this value.`);return}N(e),F(n),L(null)},We=()=>{if(!M)return;let{parsed:e,error:t}=pe(P);if(t||e===null){L(t);return}x(t=>({...t,[M]:e})),N(null),F(``),L(null)},Ge=$?(0,t.jsxs)(`div`,{ref:c,className:`reinspect-menu`,role:`dialog`,"aria-label":`${u} inspector controls`,style:{top:`${p.y}px`,left:`${p.x}px`},children:[(0,t.jsxs)(`p`,{className:`reinspect-menu-title`,children:[u,` inspector`]}),(0,t.jsxs)(`label`,{className:`reinspect-menu-component-setting`,children:[(0,t.jsx)(`span`,{children:`Capture renders for this component`}),(0,t.jsx)(`input`,{type:`checkbox`,checked:V?!0:ke,onChange:e=>we(u,e.currentTarget.checked),disabled:V,"aria-label":`Capture renders for ${u}`,"data-testid":`reinspect-component-render-toggle-${u}`})]}),V?(0,t.jsx)(`p`,{className:`reinspect-setting-note`,children:`Global capture is enabled from Reinspect settings.`}):null,(0,t.jsxs)(`div`,{className:`reinspect-submenu`,children:[(0,t.jsx)(`button`,{type:`button`,"data-state":h===`css`?`active`:`idle`,onClick:()=>g(`css`),children:`CSS`}),(0,t.jsx)(`button`,{type:`button`,"data-state":h===`props`?`active`:`idle`,onClick:()=>g(`props`),children:`Props`})]}),h===`css`?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(`div`,{className:`reinspect-menu-filter`,children:[(0,t.jsx)(`span`,{className:`reinspect-menu-filter-icon`,"aria-hidden":`true`,children:(0,t.jsx)(`svg`,{viewBox:`0 0 24 24`,focusable:`false`,children:(0,t.jsx)(`path`,{d:`M10.5 3a7.5 7.5 0 015.92 12.1l4.24 4.23a1 1 0 01-1.42 1.42l-4.23-4.24A7.5 7.5 0 1110.5 3zm0 2a5.5 5.5 0 100 11 5.5 5.5 0 000-11z`,fill:`currentColor`})})}),(0,t.jsx)(`input`,{id:`${X}-css-filter`,"data-testid":`reinspect-css-filter-input`,type:`search`,value:y,placeholder:`Filter`,"aria-label":`Filter CSS properties`,onChange:e=>b(e.currentTarget.value)})]}),(0,t.jsx)(`div`,{className:`reinspect-menu-grid`,children:Fe.map(e=>{let n=je?.[e],r=`${X}-${e}`;if(d.has(e)){let i=typeof n==`string`?T(n):`#1f2937`;return(0,t.jsxs)(`div`,{className:`reinspect-field`,children:[(0,t.jsx)(`label`,{htmlFor:r,children:ye(e)}),(0,t.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,t.jsx)(`input`,{id:r,type:`color`,value:i,onChange:t=>G(X,e,t.currentTarget.value)}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>G(X,e,void 0),disabled:!J(n),children:`reset`})]})]},e)}if(e===`opacity`){let i=typeof n==`number`?n:1;return(0,t.jsxs)(`div`,{className:`reinspect-field`,children:[(0,t.jsx)(`label`,{htmlFor:r,children:`Opacity`}),(0,t.jsxs)(`div`,{className:`reinspect-inline-controls reinspect-opacity-controls`,children:[(0,t.jsx)(`input`,{id:r,type:`range`,min:`0`,max:`1`,step:`0.05`,value:i,onChange:t=>{let n=re(t.currentTarget.value);n!==void 0&&G(X,e,n)}}),(0,t.jsx)(`output`,{children:i.toFixed(2)}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>G(X,e,void 0),disabled:!J(n),children:`reset`})]})]},e)}if(ee.has(e)){let i=typeof n==`number`?n:``;return(0,t.jsxs)(`div`,{className:`reinspect-field`,children:[(0,t.jsxs)(`label`,{htmlFor:r,children:[ye(e),` (px)`]}),(0,t.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,t.jsx)(`input`,{id:r,type:`number`,step:`1`,value:i,onChange:t=>{if(t.currentTarget.value===``){G(X,e,void 0);return}let n=re(t.currentTarget.value);n!==void 0&&G(X,e,n)}}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>G(X,e,void 0),disabled:!J(n),children:`reset`})]})]},e)}return(0,t.jsxs)(`div`,{className:`reinspect-field`,children:[(0,t.jsx)(`label`,{htmlFor:r,children:ye(e)}),(0,t.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,t.jsx)(`input`,{id:r,type:`text`,value:typeof n==`string`?n:``,onChange:t=>G(X,e,t.currentTarget.value||void 0)}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>G(X,e,void 0),disabled:!J(n),children:`reset`})]})]},e)})}),Fe.length===0?(0,t.jsxs)(`p`,{className:`reinspect-menu-empty-state`,children:[`No CSS properties match "`,y.trim(),`".`]}):null]}):(0,t.jsxs)(`div`,{className:`reinspect-props-panel`,children:[(0,t.jsxs)(`div`,{className:`reinspect-props-submenu`,children:[(0,t.jsx)(`button`,{type:`button`,"data-state":_===`detected`?`active`:`idle`,onClick:()=>v(`detected`),children:`Detected`}),(0,t.jsx)(`button`,{type:`button`,"data-state":_===`raw`?`active`:`idle`,onClick:()=>{v(`raw`),E(null),C(de(Ne))},children:`Raw`})]}),_===`detected`?Ie.length>0?(0,t.jsxs)(`div`,{className:`reinspect-props-table`,children:[(0,t.jsxs)(`div`,{className:`reinspect-props-header`,children:[(0,t.jsx)(`span`,{children:`Key`}),(0,t.jsx)(`span`,{children:`Value`})]}),Ie.map(e=>{let n=xe(e.key),r=Ne[e.key],i=e.value.kind===`object`||e.value.kind===`array`,a=!!oe[e.key],o=ie[e.key],s=k[e.key],c=U(r);return(0,t.jsxs)(`div`,{className:`reinspect-props-row`,"data-testid":`reinspect-prop-row-${n}`,children:[(0,t.jsx)(`code`,{className:`reinspect-prop-key`,children:e.key}),(0,t.jsxs)(`div`,{className:`reinspect-prop-cell`,"data-testid":`reinspect-prop-value-${n}`,children:[Ce({value:e.value,onCopy:Ve}),i||c?(0,t.jsxs)(`div`,{className:`reinspect-prop-actions`,children:[i?(0,t.jsx)(`button`,{type:`button`,"data-testid":`reinspect-prop-show-json-${n}`,onClick:()=>He(e.key,r),children:a?`Hide JSON`:`Show JSON`}):null,c?(0,t.jsx)(`button`,{type:`button`,"data-testid":`reinspect-prop-edit-${n}`,onClick:()=>Ue(e.key,r),children:`Edit`}):null]}):null,a?(0,t.jsx)(`div`,{className:`reinspect-prop-json-preview`,"data-testid":`reinspect-prop-json-preview-${n}`,children:s?(0,t.jsx)(`p`,{className:`reinspect-error`,children:s}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`pre`,{children:o}),o?(0,t.jsx)(`button`,{type:`button`,"data-testid":`reinspect-prop-copy-json-${n}`,onClick:()=>Ve(o,`JSON value`),children:`Copy JSON`}):null]})}):null]})]},e.key)})]}):(0,t.jsx)(`p`,{className:`reinspect-menu-empty-state`,children:`No props detected.`}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`label`,{htmlFor:`${X}-props-json`,children:`Props JSON`}),(0,t.jsx)(`textarea`,{id:`${X}-props-json`,value:S,onChange:e=>{C(e.currentTarget.value),E(null)},rows:9}),ne?(0,t.jsx)(`p`,{className:`reinspect-error`,children:ne}):null,(0,t.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,t.jsx)(`button`,{type:`button`,onClick:ze,children:`apply`}),(0,t.jsx)(`button`,{type:`button`,onClick:Be,children:`reset`})]})]}),D?(0,t.jsx)(`p`,{className:`reinspect-setting-note`,"data-testid":`reinspect-props-copy-status`,children:D}):null]})]}):null,Ke=M?(0,n.createPortal)((0,t.jsx)(`div`,{className:`reinspect-modal-backdrop`,role:`dialog`,"aria-modal":`true`,"aria-label":`Edit ${M} prop`,"data-testid":`reinspect-prop-edit-modal`,children:(0,t.jsxs)(`div`,{className:`reinspect-modal`,ref:f,children:[(0,t.jsxs)(`p`,{className:`reinspect-menu-title`,children:[`Edit prop: `,M]}),(0,t.jsx)(`label`,{htmlFor:`${X}-prop-edit-json`,children:`JSON value`}),(0,t.jsx)(`textarea`,{id:`${X}-prop-edit-json`,"data-testid":`reinspect-prop-edit-textarea`,value:P,onChange:e=>{F(e.currentTarget.value),L(null)},rows:10}),I?(0,t.jsx)(`p`,{className:`reinspect-error`,"data-testid":`reinspect-prop-edit-error`,children:I}):null,(0,t.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,t.jsx)(`button`,{type:`button`,onClick:We,children:`apply`}),(0,t.jsx)(`button`,{type:`button`,onClick:()=>{N(null),F(``),L(null)},children:`cancel`})]})]})}),document.body):null;if(!se){if(a===`manual`)throw Error(`useReinspect must be used within ReinspectProvider`);return(0,t.jsx)(l,{...Q})}return a===`auto`&&!De?(0,t.jsx)(l,{...Q}):(0,t.jsxs)(`div`,{className:`reinspect-shell`,"data-reinspect-component":u,"data-reinspect-active":Z,"data-testid":`reinspect-shell-${u}`,style:Le,onContextMenu:Re,children:[Z?(0,t.jsxs)(`span`,{className:`reinspect-name-badge`,children:[u,Oe?` | ${ve(Ae,H)}`:``]}):null,Ge?(0,n.createPortal)(Ge,document.body):null,Ke,(0,t.jsx)(`div`,{className:`reinspect-content`,"data-reinspect-content":`true`,style:Me,children:(0,t.jsx)(l,{...Q})})]})}return f.displayName=`withReinspect(${u})`,f[W]={source:a,scope:o,original:l},f}function X(e,t){return G(e)?.source===`manual`?e:Y(e,{source:`auto`,scope:t.scope,name:t.componentName,fallbackName:t.fallbackName})}function Ee(e,t){let n={};for(let r of Object.keys(e)){let i=e[r];n[r]=Y(i,typeof t==`function`?t(r,i):t?.[r])}return n}o(r),exports.DEFAULT_EDITABLE_PROPS=l,exports.DEFAULT_PALETTE=u,exports.ReinspectFloatingToggle=j,exports.ReinspectProvider=oe,exports.autoWrapInspectable=X,exports.useReinspect=c,exports.withReinspect=Y,exports.wrapInspectableMap=Ee;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./wrap-Cc3mMcCA.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=`:root{--reinspect-font-sans:"Geist Sans", "Geist", "Segoe UI", "SF Pro Text", system-ui, -apple-system, sans-serif;--reinspect-font-mono:"Geist Mono", "IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, monospace;--reinspect-menu-bg:oklch(98.2% .014 252);--reinspect-menu-surface:oklch(96.5% .018 252);--reinspect-menu-surface-strong:oklch(93.6% .024 252);--reinspect-menu-surface-stronger:oklch(90.2% .03 252);--reinspect-menu-text:oklch(20.5% .028 252);--reinspect-menu-text-muted:oklch(36.5% .024 252);--reinspect-menu-text-soft:oklch(49% .02 252);--reinspect-menu-border:oklch(66% .024 252/.52);--reinspect-menu-border-strong:oklch(57% .03 252/.65);--reinspect-menu-border-subtle:oklch(73% .02 252/.5);--reinspect-brand-400:oklch(73% .145 254);--reinspect-brand-500:oklch(66% .165 254);--reinspect-brand-600:oklch(58% .165 254);--reinspect-brand-700:oklch(51% .153 254);--reinspect-brand-soft:color-mix(in oklch, var(--reinspect-brand-500) 18%, var(--reinspect-menu-surface));--reinspect-brand-soft-strong:color-mix(in oklch, var(--reinspect-brand-500) 28%, var(--reinspect-menu-surface));--reinspect-brand-soft-hover:color-mix(in oklch, var(--reinspect-brand-500) 36%, var(--reinspect-menu-surface));--reinspect-on-brand:oklch(98.5% .008 252);--reinspect-interactive-bg:var(--reinspect-menu-surface);--reinspect-interactive-bg-hover:var(--reinspect-menu-surface-strong);--reinspect-interactive-bg-active:var(--reinspect-brand-soft-hover);--reinspect-interactive-border:var(--reinspect-menu-border);--reinspect-interactive-border-hover:var(--reinspect-brand-400);--reinspect-interactive-border-active:var(--reinspect-brand-500);--reinspect-interactive-text:var(--reinspect-menu-text);--reinspect-interactive-text-active:var(--reinspect-brand-700);--reinspect-prism-bg:color-mix(in oklch, var(--reinspect-menu-surface-strong) 74%, white);--reinspect-prism-text:var(--reinspect-menu-text);--reinspect-prism-comment:var(--reinspect-menu-text-soft);--reinspect-prism-keyword:var(--reinspect-brand-700);--reinspect-prism-string:color-mix(in oklch, var(--reinspect-semantic-error) 70%, var(--reinspect-menu-text));--reinspect-prism-number:color-mix(in oklch, var(--reinspect-semantic-success) 76%, var(--reinspect-menu-text));--reinspect-prism-boolean:var(--reinspect-prism-keyword);--reinspect-prism-function:color-mix(in oklch, var(--reinspect-semantic-warning) 72%, var(--reinspect-menu-text));--reinspect-prism-property:color-mix(in oklch, var(--reinspect-brand-600) 74%, var(--reinspect-menu-text));--reinspect-prism-operator:var(--reinspect-menu-text);--reinspect-prism-punctuation:var(--reinspect-menu-text);--reinspect-prism-constant:color-mix(in oklch, var(--reinspect-brand-500) 78%, var(--reinspect-menu-text));--reinspect-semantic-error:oklch(62% .165 20);--reinspect-semantic-success:oklch(67% .115 158);--reinspect-semantic-warning:oklch(76% .12 78);--reinspect-focus-ring:color-mix(in oklch, var(--reinspect-brand-500) 70%, white);--reinspect-runtime-soft-mix:22%;--reinspect-runtime-border-mix:54%;--reinspect-runtime-strong-mix:78%;--reinspect-runtime-border-base:var(--reinspect-menu-border-strong);--reinspect-runtime-strong-base:var(--reinspect-menu-text);--reinspect-overlay-backdrop:oklch(24.5% .02 248/.44);--reinspect-shadow-popover:0 28px 44px -18px oklch(25.5% .02 248/.38), 0 10px 20px -12px oklch(25.5% .02 248/.3);--reinspect-shadow-modal:0 24px 28px -12px oklch(25.5% .02 248/.25), 0 10px 16px -10px oklch(25.5% .02 248/.22)}.reinspect-menu[data-reinspect-theme=dark],.reinspect-settings-menu[data-reinspect-theme=dark],.reinspect-modal-backdrop[data-reinspect-theme=dark],.reinspect-modal[data-reinspect-theme=dark],.reinspect-toast[data-reinspect-theme=dark],.reinspect-floating-root[data-reinspect-theme=dark],.reinspect-floating-toggle[data-reinspect-theme=dark]{--reinspect-menu-bg:oklch(19% .018 252);--reinspect-menu-surface:oklch(22.8% .022 252);--reinspect-menu-surface-strong:oklch(27.2% .025 252);--reinspect-menu-surface-stronger:oklch(32.2% .028 252);--reinspect-menu-text:oklch(96.5% .012 252);--reinspect-menu-text-muted:oklch(84% .018 252);--reinspect-menu-text-soft:oklch(73% .017 252);--reinspect-menu-border:oklch(54% .022 252/.55);--reinspect-menu-border-strong:oklch(63% .022 252/.72);--reinspect-menu-border-subtle:oklch(48% .018 252/.52);--reinspect-focus-ring:color-mix(in oklch, var(--reinspect-brand-400) 82%, black);--reinspect-runtime-soft-mix:28%;--reinspect-runtime-border-mix:48%;--reinspect-runtime-strong-mix:74%;--reinspect-runtime-border-base:var(--reinspect-menu-border);--reinspect-runtime-strong-base:var(--reinspect-menu-text);--reinspect-overlay-backdrop:oklch(14.5% .01 248/.58);--reinspect-shadow-popover:0 28px 44px -18px oklch(11% .01 248/.68), 0 10px 20px -12px oklch(11% .01 248/.58);--reinspect-shadow-modal:0 24px 28px -12px oklch(11% .01 248/.62), 0 10px 16px -10px oklch(11% .01 248/.54);--reinspect-interactive-bg:oklch(25.8% .023 252);--reinspect-interactive-bg-hover:oklch(31% .03 252);--reinspect-interactive-bg-active:color-mix(in oklch, var(--reinspect-brand-500) 42%, var(--reinspect-menu-surface-stronger));--reinspect-interactive-border:var(--reinspect-menu-border-strong);--reinspect-interactive-border-hover:var(--reinspect-brand-400);--reinspect-interactive-border-active:var(--reinspect-brand-400);--reinspect-interactive-text:var(--reinspect-menu-text);--reinspect-interactive-text-active:oklch(96.6% .014 252);--reinspect-prism-bg:color-mix(in oklch, var(--reinspect-menu-surface) 88%, black);--reinspect-prism-text:var(--reinspect-menu-text);--reinspect-prism-comment:color-mix(in oklch, var(--reinspect-menu-text-soft) 82%, white);--reinspect-prism-keyword:var(--reinspect-brand-400);--reinspect-prism-string:color-mix(in oklch, var(--reinspect-semantic-warning) 56%, var(--reinspect-menu-text));--reinspect-prism-number:color-mix(in oklch, var(--reinspect-semantic-success) 62%, var(--reinspect-menu-text));--reinspect-prism-boolean:var(--reinspect-prism-keyword);--reinspect-prism-function:color-mix(in oklch, var(--reinspect-semantic-warning) 64%, var(--reinspect-menu-text));--reinspect-prism-property:color-mix(in oklch, var(--reinspect-brand-400) 70%, var(--reinspect-menu-text));--reinspect-prism-operator:var(--reinspect-menu-text);--reinspect-prism-punctuation:var(--reinspect-menu-text);--reinspect-prism-constant:color-mix(in oklch, var(--reinspect-brand-400) 84%, var(--reinspect-menu-text))}.reinspect-shell,.reinspect-menu{--reinspect-runtime-color:var(--reinspect-color,var(--reinspect-brand-500));--reinspect-runtime-soft:color-mix(in oklch, var(--reinspect-runtime-color) var(--reinspect-runtime-soft-mix), var(--reinspect-menu-surface));--reinspect-runtime-border:color-mix(in oklch, var(--reinspect-runtime-color) var(--reinspect-runtime-border-mix), var(--reinspect-runtime-border-base));--reinspect-runtime-strong:color-mix(in oklch, var(--reinspect-runtime-color) var(--reinspect-runtime-strong-mix), var(--reinspect-runtime-strong-base))}.reinspect-menu,.reinspect-settings-menu,.reinspect-modal,.reinspect-floating-toggle{font-family:var(--reinspect-font-sans)}.reinspect-menu,.reinspect-settings-menu,.reinspect-modal{color:var(--reinspect-menu-text)}.reinspect-menu[data-reinspect-theme=light],.reinspect-settings-menu[data-reinspect-theme=light],.reinspect-modal-backdrop[data-reinspect-theme=light],.reinspect-modal[data-reinspect-theme=light],.reinspect-toast[data-reinspect-theme=light],.reinspect-floating-root[data-reinspect-theme=light],.reinspect-floating-toggle[data-reinspect-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.reinspect-menu[data-reinspect-theme=dark],.reinspect-settings-menu[data-reinspect-theme=dark],.reinspect-modal-backdrop[data-reinspect-theme=dark],.reinspect-modal[data-reinspect-theme=dark],.reinspect-toast[data-reinspect-theme=dark],.reinspect-floating-root[data-reinspect-theme=dark],.reinspect-floating-toggle[data-reinspect-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.reinspect-shell{will-change:box-shadow;border-radius:14px;transition:box-shadow .18s ease-out,filter .18s ease-out;position:relative}.reinspect-shell[data-reinspect-active=true]{box-shadow:0 0 0 1px color-mix(in oklch, var(--reinspect-runtime-color) 62%, var(--reinspect-menu-bg)), 0 0 0 4px color-mix(in oklch, var(--reinspect-runtime-color) 16%, transparent), 0 10px 18px -16px color-mix(in oklch, var(--reinspect-runtime-color) 48%, var(--reinspect-menu-text));filter:saturate(1.03)}.reinspect-shell[data-reinspect-active=true]:hover{box-shadow:0 0 0 1px color-mix(in oklch, var(--reinspect-runtime-color) 74%, var(--reinspect-menu-bg)), 0 0 0 5px color-mix(in oklch, var(--reinspect-runtime-color) 22%, transparent), 0 14px 24px -18px color-mix(in oklch, var(--reinspect-runtime-color) 52%, var(--reinspect-menu-text))}.reinspect-shell[data-reinspect-active=true]:focus-within{box-shadow:0 0 0 1px color-mix(in oklch, var(--reinspect-runtime-color) 78%, var(--reinspect-menu-bg)), 0 0 0 2px color-mix(in oklch, var(--reinspect-runtime-color) 34%, transparent), 0 0 0 6px color-mix(in oklch, var(--reinspect-runtime-color) 20%, transparent), 0 16px 28px -20px color-mix(in oklch, var(--reinspect-runtime-color) 52%, var(--reinspect-menu-text))}.reinspect-content{border-radius:inherit}.reinspect-name-badge{z-index:calc(var(--reinspect-z-base) + 5);letter-spacing:.04em;color:var(--reinspect-runtime-strong);background:var(--reinspect-runtime-soft);border:1px solid var(--reinspect-runtime-border);opacity:.9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:11px;line-height:1;position:absolute;top:-13px;left:10px;box-shadow:0 8px 16px -14px oklch(25.5% .02 248/.45)}.reinspect-menu{z-index:2147483647;border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:min(560px,100vw - 24px);max-height:min(620px,82vh);box-shadow:var(--reinspect-shadow-popover);overscroll-behavior:contain;border-radius:16px;gap:10px;padding:12px;display:grid;position:fixed;overflow:auto}.reinspect-menu-title{color:var(--reinspect-menu-text);letter-spacing:-.014em;margin:0;font-size:19px;font-weight:760;line-height:1.1}.reinspect-menu-title-row{align-items:center;gap:8px;min-width:0;display:inline-flex}.reinspect-menu-title-color-chip{border:1px solid color-mix(in oklab, var(--reinspect-color) 65%, black 35%);background:var(--reinspect-color);border-radius:3px;flex:none;width:10px;height:10px}.reinspect-menu-title-wrap{gap:3px;min-width:0;display:grid}.reinspect-menu-subtitle{color:var(--reinspect-menu-text-soft);margin:0;font-size:12px;font-weight:560;line-height:1.2}.reinspect-menu-header{grid-template-columns:1fr auto;align-items:start;gap:10px;display:grid}.reinspect-menu-close{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-surface);width:32px;height:32px;color:var(--reinspect-menu-text);cursor:pointer;border-radius:10px;place-items:center;padding:0;font-size:20px;line-height:1;display:grid}.reinspect-menu-close:hover{background:var(--reinspect-menu-surface-strong);border-color:var(--reinspect-menu-border-strong)}.reinspect-menu-close:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-setting-note{color:var(--reinspect-menu-text-muted);margin:0 0 10px;font-size:12px}.reinspect-setting-helper-text{color:var(--reinspect-menu-text-muted);margin:0;font-size:12px;line-height:1.4}.reinspect-submenu{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-menu-surface);isolation:isolate;border-radius:11px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid;overflow:hidden}.reinspect-submenu button{border:1px solid var(--reinspect-interactive-border);background:var(--reinspect-interactive-bg);color:var(--reinspect-interactive-text);cursor:pointer;white-space:nowrap;opacity:1;border-radius:8px;padding:7px 8px;font-size:12px;font-weight:640;transition:opacity .14s ease-out,transform .14s ease-out,box-shadow .14s ease-out,border-color .14s ease-out,background-color .14s ease-out}.reinspect-submenu button:hover{border-color:var(--reinspect-interactive-border-hover);background:var(--reinspect-interactive-bg-hover)}.reinspect-submenu button[data-state=active]{border-color:var(--reinspect-interactive-border-active);background:var(--reinspect-interactive-bg-active);color:var(--reinspect-interactive-text-active);box-shadow:0 0 0 1px color-mix(in oklch, var(--reinspect-brand-500) 35%, transparent), 0 8px 14px -14px oklch(25.5% .02 248/.38);z-index:1;transform:translateY(-1px)}.reinspect-submenu button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:0}@media (prefers-reduced-motion:reduce){.reinspect-shell,.reinspect-submenu button,.reinspect-menu-action-card{transition:none}.reinspect-menu-action-card[data-state=active]:after{animation:none}}.reinspect-menu-shortcuts{gap:8px;margin-bottom:0;display:grid}.reinspect-menu-action-card{border:1px solid var(--reinspect-interactive-border);background:var(--reinspect-interactive-bg);color:var(--reinspect-interactive-text);text-align:left;cursor:pointer;border-radius:12px;gap:4px;padding:9px 10px;font-size:12px;transition:border-color .12s,box-shadow .12s,background-color .12s,transform .12s;display:grid;position:relative}.reinspect-menu-action-card:hover{border-color:var(--reinspect-interactive-border-hover);background:var(--reinspect-interactive-bg-hover);box-shadow:0 1px oklch(25.5% .02 248/.08)}.reinspect-menu-action-card:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-menu-action-card[data-state=active]{border-color:var(--reinspect-interactive-border-active);background:var(--reinspect-interactive-bg-active);color:var(--reinspect-interactive-text-active);box-shadow:0 0 0 1px color-mix(in oklch, var(--reinspect-brand-500) 40%, transparent), 0 8px 18px -14px oklch(25.5% .02 248/.35);transform:translateY(-1px)}.reinspect-menu-action-card[data-state=active]:after{content:"Selected";border:1px solid var(--reinspect-interactive-border-active);background:color-mix(in oklch, var(--reinspect-brand-500) 20%, var(--reinspect-menu-surface));color:var(--reinspect-interactive-text-active);letter-spacing:.01em;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:700;line-height:1;animation:.56s cubic-bezier(.22,1,.36,1) reinspect-selected-pulse;position:absolute;top:8px;right:10px}@keyframes reinspect-selected-pulse{0%{opacity:.72;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.reinspect-menu-action-title{font-weight:700}.reinspect-menu-action-description{color:var(--reinspect-menu-text-muted);font-size:11px;line-height:1.35}.reinspect-menu-action-target{font-family:var(--reinspect-font-mono);color:var(--reinspect-menu-text-muted);white-space:normal;word-break:break-word;font-size:11px}.reinspect-general-panel{gap:10px;display:grid}.reinspect-general-panel .reinspect-setting-note{margin:0}.reinspect-menu-section{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);border-radius:12px;gap:7px;padding:10px;display:grid}.reinspect-menu-section-header,.reinspect-menu-panel-header{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.reinspect-menu-section-title{color:var(--reinspect-menu-text);letter-spacing:.01em;margin:0;font-size:13px;font-weight:700}.reinspect-menu-section-description{color:var(--reinspect-menu-text-muted);margin:0;font-size:12px;line-height:1.4}.reinspect-menu-section-caption{color:var(--reinspect-menu-text-muted);font-family:var(--reinspect-font-mono);margin:0;font-size:10px}.reinspect-menu-switch{justify-self:end}.reinspect-menu-switch:disabled{opacity:.7;cursor:default}.reinspect-menu-divider{background:var(--reinspect-menu-border);height:1px}.reinspect-menu-inline-setting{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.reinspect-menu-inline-copy{gap:2px;display:grid}.reinspect-menu-inline-title{color:var(--reinspect-menu-text);margin:0;font-size:12px;font-weight:700}.reinspect-menu-inline-description{color:var(--reinspect-menu-text-muted);margin:0;font-size:12px;line-height:1.35}.reinspect-css-panel{gap:9px;display:grid}.reinspect-menu-grid{gap:8px;display:grid}.reinspect-menu-filter{align-items:center;display:grid;position:relative}.reinspect-menu-filter-icon{color:var(--reinspect-menu-text-soft);pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.reinspect-menu-filter-icon svg{width:100%;height:100%;display:block}.reinspect-menu-filter input{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:100%;color:var(--reinspect-menu-text);border-radius:10px;padding:7px 52px 7px 30px;font-size:12px}.reinspect-menu-filter input::placeholder,.reinspect-filter-search-input::placeholder{color:var(--reinspect-menu-text-soft);opacity:1}.reinspect-menu-filter input:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:0}.reinspect-menu-filter-clear{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-surface);color:var(--reinspect-menu-text);cursor:pointer;border-radius:7px;padding:4px 6px;font-size:10px;font-weight:600;line-height:1;position:absolute;right:6px}.reinspect-menu-filter-clear:hover{border-color:var(--reinspect-brand-400);background:var(--reinspect-brand-soft)}.reinspect-menu-filter-clear:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-menu-empty-state{border:1px dashed var(--reinspect-menu-border);background:var(--reinspect-brand-soft);color:var(--reinspect-menu-text-muted);border-radius:10px;margin:0;padding:8px 10px;font-size:11px}.reinspect-field{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);border-radius:10px;gap:5px;padding:8px;display:grid}.reinspect-field label{color:var(--reinspect-menu-text);font-size:11px;font-weight:640}.reinspect-inline-controls{grid-template-columns:1fr auto;gap:6px;display:grid}.reinspect-inline-controls input,.reinspect-inline-controls button,.reinspect-inline-controls output{font-size:12px}.reinspect-inline-controls input[type=number],.reinspect-inline-controls input[type=text]{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:100%;color:var(--reinspect-menu-text);border-radius:8px;padding:6px 8px}.reinspect-inline-controls input[type=color]{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);border-radius:8px;width:100%;min-height:32px;padding:2px}.reinspect-inline-controls input[type=range]{width:100%}.reinspect-inline-controls input:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:0}.reinspect-inline-controls button{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-surface);color:var(--reinspect-menu-text);cursor:pointer;border-radius:8px;padding:6px 8px;font-weight:600}.reinspect-inline-controls button:hover{border-color:var(--reinspect-brand-400);background:var(--reinspect-brand-soft-strong)}.reinspect-inline-controls button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-inline-controls button:disabled{opacity:.45;cursor:default}.reinspect-opacity-controls{grid-template-columns:1fr auto auto;align-items:center}.reinspect-opacity-controls output{color:var(--reinspect-menu-text);text-align:right;min-width:36px}.reinspect-props-panel{gap:6px;display:grid}.reinspect-props-submenu{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-menu-surface);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.reinspect-props-submenu button{border:1px solid var(--reinspect-interactive-border);background:var(--reinspect-interactive-bg);color:var(--reinspect-interactive-text);cursor:pointer;opacity:1;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:600;transition:opacity .12s ease-out,background-color .12s ease-out,border-color .12s ease-out}.reinspect-props-submenu button:hover{border-color:var(--reinspect-interactive-border-hover);background:var(--reinspect-interactive-bg-hover)}.reinspect-props-submenu button[data-state=active]{border-color:var(--reinspect-interactive-border-active);background:var(--reinspect-interactive-bg-active);color:var(--reinspect-interactive-text-active)}.reinspect-props-submenu button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:0}.reinspect-props-panel label{color:var(--reinspect-menu-text-muted);font-size:12px}.reinspect-props-table{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-menu-bg);border-radius:10px;display:grid;overflow:hidden}.reinspect-props-row{grid-template-columns:minmax(90px,.55fr) minmax(0,1.45fr);align-items:start;gap:10px;padding:8px 9px;display:grid}.reinspect-props-row+.reinspect-props-row{border-top:1px solid var(--reinspect-menu-border-subtle)}.reinspect-prop-key{color:var(--reinspect-menu-text);word-break:break-word;font-size:12px;font-weight:600}.reinspect-prop-cell{gap:4px;min-width:0;display:grid}.reinspect-prop-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.reinspect-prop-value-render{min-width:0}.reinspect-prop-cell code{font-size:11px;font-family:var(--reinspect-font-mono);color:var(--reinspect-menu-text);word-break:normal;overflow-wrap:break-word}.reinspect-prop-missing{color:var(--reinspect-menu-text-soft);font-size:11px}.reinspect-prop-scalar{gap:3px;display:grid}.reinspect-prop-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:4px;margin-top:0;display:flex}.reinspect-prop-scalar button,.reinspect-prop-function button,.reinspect-prop-tree summary button{color:var(--reinspect-menu-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-self:start;padding:2px 4px;font-size:11px;font-weight:600}.reinspect-prop-action-text-button{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-brand-soft);color:var(--reinspect-brand-700);letter-spacing:.01em;cursor:pointer;white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.4}.reinspect-prop-action-text-button:hover{border-color:var(--reinspect-brand-400);background:var(--reinspect-brand-soft-strong);color:var(--reinspect-brand-700)}.reinspect-prop-action-text-button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-prop-actions button,.reinspect-prop-json-preview button{color:var(--reinspect-menu-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:11px;font-weight:600}.reinspect-icon-button{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-brand-soft);width:24px;height:24px;color:var(--reinspect-brand-700);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.reinspect-icon-button svg{width:14px;height:14px;display:block}.reinspect-prop-scalar button:hover,.reinspect-prop-function button:hover,.reinspect-prop-tree summary button:hover,.reinspect-prop-actions button:hover,.reinspect-prop-json-preview button:hover{background:var(--reinspect-brand-soft);color:var(--reinspect-brand-700)}.reinspect-icon-button:hover{border-color:var(--reinspect-brand-400);background:var(--reinspect-brand-soft-strong)}.reinspect-prop-scalar button:focus-visible,.reinspect-prop-function button:focus-visible,.reinspect-prop-tree summary button:focus-visible,.reinspect-prop-actions button:focus-visible,.reinspect-prop-json-preview button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-icon-button:disabled{opacity:.45;cursor:default}.reinspect-prop-tree{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-brand-soft);border-radius:8px;padding:5px}.reinspect-prop-tree summary{cursor:pointer;color:var(--reinspect-menu-text);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.reinspect-prop-tree-children{gap:6px;margin-top:6px;display:grid}.reinspect-prop-tree-row{grid-template-columns:.8fr 1.2fr;align-items:start;gap:6px;display:grid}.reinspect-prop-tree-row>code{font-size:10px;font-family:var(--reinspect-font-mono);color:var(--reinspect-menu-text-muted);word-break:break-word}.reinspect-prop-function{gap:4px;display:grid}.reinspect-prop-function pre{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-prism-bg);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:0;padding:6px;font-size:11px;line-height:1.3}.reinspect-prop-json-preview{gap:6px;margin-top:6px;display:grid}.reinspect-json-editor{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-prism-bg);border-radius:8px;display:grid;overflow:hidden}.reinspect-json-editor pre,.reinspect-json-editor textarea{font-size:12px;line-height:1.4;font-family:var(--reinspect-font-mono);white-space:pre;word-break:normal;grid-area:1/1;margin:0;padding:8px}.reinspect-json-editor pre{pointer-events:none;overflow:auto}.reinspect-props-panel .reinspect-json-editor .reinspect-json-editor-textarea{color:#0000;width:100%;caret-color:var(--reinspect-prism-text);resize:vertical;tab-size:2;background:0 0;border:none;border-radius:0;overflow:auto}.reinspect-props-panel .reinspect-json-editor .reinspect-json-editor-textarea:focus-visible{outline:none}.reinspect-json-editor:focus-within{box-shadow:0 0 0 2px var(--reinspect-focus-ring)}.reinspect-prop-json-preview pre{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-prism-bg);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:180px;margin:0;padding:6px;font-size:11px;line-height:1.3;overflow:auto}.reinspect-prop-function pre code.reinspect-code-block,.reinspect-prop-json-preview pre code.reinspect-code-block,.reinspect-json-editor pre code.reinspect-code-block{color:var(--reinspect-prism-text);font-family:var(--reinspect-font-mono);white-space:inherit;word-break:inherit;display:block}.reinspect-prop-function pre code.reinspect-code-block .token.comment,.reinspect-prop-function pre code.reinspect-code-block .token.prolog,.reinspect-prop-function pre code.reinspect-code-block .token.doctype,.reinspect-prop-function pre code.reinspect-code-block .token.cdata,.reinspect-prop-json-preview pre code.reinspect-code-block .token.comment,.reinspect-prop-json-preview pre code.reinspect-code-block .token.prolog,.reinspect-prop-json-preview pre code.reinspect-code-block .token.doctype,.reinspect-prop-json-preview pre code.reinspect-code-block .token.cdata,.reinspect-json-editor pre code.reinspect-code-block .token.comment,.reinspect-json-editor pre code.reinspect-code-block .token.prolog,.reinspect-json-editor pre code.reinspect-code-block .token.doctype,.reinspect-json-editor pre code.reinspect-code-block .token.cdata{color:var(--reinspect-prism-comment);font-style:italic}.reinspect-prop-function pre code.reinspect-code-block .token.punctuation,.reinspect-prop-json-preview pre code.reinspect-code-block .token.punctuation,.reinspect-json-editor pre code.reinspect-code-block .token.punctuation{color:var(--reinspect-prism-punctuation)}.reinspect-prop-function pre code.reinspect-code-block .token.property,.reinspect-prop-json-preview pre code.reinspect-code-block .token.property,.reinspect-json-editor pre code.reinspect-code-block .token.property{color:var(--reinspect-prism-property)}.reinspect-prop-function pre code.reinspect-code-block .token.string,.reinspect-prop-json-preview pre code.reinspect-code-block .token.string,.reinspect-prop-function pre code.reinspect-code-block .token.char,.reinspect-prop-json-preview pre code.reinspect-code-block .token.char,.reinspect-prop-function pre code.reinspect-code-block .token.regex,.reinspect-prop-json-preview pre code.reinspect-code-block .token.regex,.reinspect-json-editor pre code.reinspect-code-block .token.string,.reinspect-json-editor pre code.reinspect-code-block .token.char,.reinspect-json-editor pre code.reinspect-code-block .token.regex{color:var(--reinspect-prism-string)}.reinspect-prop-function pre code.reinspect-code-block .token.number,.reinspect-prop-json-preview pre code.reinspect-code-block .token.number,.reinspect-json-editor pre code.reinspect-code-block .token.number{color:var(--reinspect-prism-number)}.reinspect-prop-function pre code.reinspect-code-block .token.boolean,.reinspect-prop-json-preview pre code.reinspect-code-block .token.boolean,.reinspect-json-editor pre code.reinspect-code-block .token.boolean{color:var(--reinspect-prism-boolean)}.reinspect-prop-function pre code.reinspect-code-block .token.keyword,.reinspect-prop-json-preview pre code.reinspect-code-block .token.keyword,.reinspect-json-editor pre code.reinspect-code-block .token.keyword{color:var(--reinspect-prism-keyword)}.reinspect-prop-function pre code.reinspect-code-block .token.function,.reinspect-prop-json-preview pre code.reinspect-code-block .token.function,.reinspect-prop-function pre code.reinspect-code-block .token.function-variable,.reinspect-prop-json-preview pre code.reinspect-code-block .token.function-variable,.reinspect-json-editor pre code.reinspect-code-block .token.function,.reinspect-json-editor pre code.reinspect-code-block .token.function-variable{color:var(--reinspect-prism-function)}.reinspect-prop-function pre code.reinspect-code-block .token.operator,.reinspect-prop-json-preview pre code.reinspect-code-block .token.operator,.reinspect-json-editor pre code.reinspect-code-block .token.operator{color:var(--reinspect-prism-operator)}.reinspect-prop-function pre code.reinspect-code-block .token.constant,.reinspect-prop-json-preview pre code.reinspect-code-block .token.constant,.reinspect-json-editor pre code.reinspect-code-block .token.constant{color:var(--reinspect-prism-constant)}@media (width<=520px){.reinspect-props-row{grid-template-columns:1fr;gap:4px}.reinspect-prop-main{grid-template-columns:1fr;gap:6px}.reinspect-prop-actions{flex-wrap:wrap;justify-content:flex-start}}.reinspect-modal-backdrop{z-index:2147483647;background:var(--reinspect-overlay-backdrop);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reinspect-modal{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:min(560px,100%);box-shadow:var(--reinspect-shadow-modal);border-radius:12px;gap:8px;padding:12px;display:grid}.reinspect-modal textarea,.reinspect-props-panel textarea{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:100%;color:var(--reinspect-menu-text);font-size:12px;font-family:var(--reinspect-font-mono);resize:vertical;border-radius:8px;padding:8px}.reinspect-modal textarea::placeholder,.reinspect-props-panel textarea::placeholder{color:var(--reinspect-menu-text-soft);opacity:1}.reinspect-toast{z-index:2147483647;border:1px solid var(--reinspect-menu-border-strong);background:color-mix(in oklch, var(--reinspect-menu-bg) 88%, var(--reinspect-brand-500));width:min(460px,100vw - 20px);box-shadow:var(--reinspect-shadow-modal);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.reinspect-toast-copy{gap:3px;display:grid}.reinspect-toast-title{color:var(--reinspect-menu-text);margin:0;font-size:12px;font-weight:700}.reinspect-toast-description{color:var(--reinspect-menu-text-muted);margin:0;font-size:11px}.reinspect-toast-undo,.reinspect-toast-dismiss{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);color:var(--reinspect-menu-text);cursor:pointer;border-radius:8px}.reinspect-toast-undo{padding:6px 10px;font-size:11px;font-weight:700}.reinspect-toast-dismiss{place-items:center;width:28px;height:28px;padding:0;font-size:16px;line-height:1;display:grid}.reinspect-toast-undo:hover,.reinspect-toast-dismiss:hover{border-color:var(--reinspect-brand-400);background:var(--reinspect-brand-soft)}.reinspect-toast-undo:focus-visible,.reinspect-toast-dismiss:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-error{color:var(--reinspect-semantic-error);margin:0;font-size:12px}.reinspect-floating-toggle{z-index:2147483647;border:1px solid color-mix(in oklch, var(--reinspect-brand-500) 56%, var(--reinspect-menu-border-strong));background:var(--reinspect-brand-soft);color:var(--reinspect-interactive-text-active);letter-spacing:.03em;cursor:pointer;border-radius:999px;padding:10px 15px;font-size:13px;font-weight:650;transition:background-color .14s,border-color .14s,box-shadow .14s;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 18px -12px oklch(25.5% .02 248/.4),0 2px 8px -6px oklch(25.5% .02 248/.34)}.reinspect-floating-toggle:hover{background:var(--reinspect-brand-soft-hover);border-color:var(--reinspect-brand-500)}.reinspect-floating-toggle:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:2px}.reinspect-floating-root{z-index:2147483645;position:fixed;bottom:18px;right:18px}.reinspect-floating-root .reinspect-floating-toggle{position:static}.reinspect-settings-menu{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:min(420px,100vw - 22px);max-height:min(560px,78vh);box-shadow:var(--reinspect-shadow-modal);border-radius:12px;gap:8px;padding:10px;display:grid;position:absolute;bottom:calc(100% + 10px);right:0;overflow:auto}.reinspect-settings-header-row{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.reinspect-settings-title{color:var(--reinspect-menu-text);margin:0;font-size:14px;font-weight:760}.reinspect-settings-tabs{grid-template-columns:1fr 1fr;gap:6px;display:grid}.reinspect-settings-tabs button{border:1px solid var(--reinspect-interactive-border);background:var(--reinspect-interactive-bg);color:var(--reinspect-interactive-text);cursor:pointer;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:600;transition:border-color .12s ease-out,background-color .12s ease-out,color .12s ease-out}.reinspect-settings-tabs button:hover{border-color:var(--reinspect-interactive-border-hover);background:var(--reinspect-interactive-bg-hover)}.reinspect-settings-tabs button[data-state=active]{border-color:var(--reinspect-interactive-border-active);background:var(--reinspect-interactive-bg-active);color:var(--reinspect-interactive-text-active)}.reinspect-settings-tab-panel{gap:9px;display:grid}.reinspect-settings-toggle-row{color:var(--reinspect-menu-text);grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.reinspect-settings-select-row{gap:5px;font-size:12px;display:grid}.reinspect-settings-select-row select{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:100%;color:var(--reinspect-menu-text);border-radius:8px;padding:6px 8px;font-size:12px}.reinspect-settings-toggle-label{font-weight:600;line-height:1.35}.reinspect-settings-inline-switch{grid-template-columns:1fr auto;align-items:center;gap:8px;margin:0;display:grid}.reinspect-settings-toggle-row input[type=checkbox]{width:16px;height:16px}.reinspect-inline-hint{border:1px solid var(--reinspect-menu-border);width:14px;height:14px;color:var(--reinspect-menu-text-soft);vertical-align:text-top;cursor:help;border-radius:999px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.reinspect-settings-divider{background:var(--reinspect-menu-border-subtle);height:1px}.reinspect-setting-block{gap:6px;display:grid}.reinspect-macro-setting{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-menu-surface);border-radius:8px;padding:8px}.reinspect-macro-setting .reinspect-setting-note{margin:0}.reinspect-macro-setting .reinspect-setting-note code{font-family:var(--reinspect-font-mono);font-size:11px}.reinspect-macro-setting .reinspect-inline-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.reinspect-macro-setting .reinspect-inline-controls button[data-state=active]{border-color:var(--reinspect-brand-600);background:var(--reinspect-brand-soft-strong);color:var(--reinspect-brand-700)}.reinspect-apply-button{border:1px solid var(--reinspect-brand-500);background:var(--reinspect-brand-500);color:var(--reinspect-on-brand);cursor:pointer;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:600}.reinspect-apply-button:hover:not(:disabled){border-color:var(--reinspect-brand-600);background:var(--reinspect-brand-600)}.reinspect-apply-button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-apply-button:disabled{opacity:.4;cursor:default}.reinspect-filter-title{color:var(--reinspect-menu-text);margin:0;font-size:12px;font-weight:600}.reinspect-setting-empty-state{color:var(--reinspect-menu-text-muted);margin:0;font-size:12px}.reinspect-inspect-mode-actions{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.reinspect-filter-section{border-top:1px solid var(--reinspect-menu-border-subtle);gap:6px;padding-top:8px;display:grid}.reinspect-filter-row-header{grid-template-columns:1fr auto;align-items:center;gap:6px;display:grid}.reinspect-filter-toolbar{grid-template-columns:1fr auto auto auto auto;align-items:center;gap:6px;display:grid;position:relative}.reinspect-filter-search-icon{width:14px;height:14px;color:var(--reinspect-menu-text-soft);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.reinspect-filter-search-icon svg{width:100%;height:100%;display:block}.reinspect-filter-search-input{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);width:100%;color:var(--reinspect-menu-text);font-size:12px;font-family:var(--reinspect-font-mono);border-radius:8px;padding:5px 8px 5px 31px}.reinspect-filter-search-input:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:0}.reinspect-filter-add-button{border:1px solid var(--reinspect-brand-500);background:var(--reinspect-brand-500);color:var(--reinspect-on-brand);cursor:pointer;border-radius:8px;padding:5px 10px;font-size:11px}.reinspect-filter-add-button:hover:not(:disabled){border-color:var(--reinspect-brand-600);background:var(--reinspect-brand-600)}.reinspect-filter-add-button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-filter-add-button:disabled{opacity:.4;cursor:default}.reinspect-filter-modifier{border:1px solid var(--reinspect-interactive-border);background:var(--reinspect-interactive-bg);color:var(--reinspect-interactive-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:3px;padding:5px 7px;font-size:11px;font-weight:600;display:inline-flex}.reinspect-filter-modifier:hover{border-color:var(--reinspect-interactive-border-hover);background:var(--reinspect-interactive-bg-hover)}.reinspect-filter-modifier[data-state=active]{border-color:var(--reinspect-interactive-border-active);background:var(--reinspect-interactive-bg-active);color:var(--reinspect-interactive-text-active)}.reinspect-filter-chip-list{flex-wrap:wrap;gap:6px;display:flex}.reinspect-filter-chip{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);color:var(--reinspect-menu-text);border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;display:inline-flex}.reinspect-filter-chip code{font-family:var(--reinspect-font-mono);font-size:11px}.reinspect-filter-chip-remove{color:var(--reinspect-menu-text-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.reinspect-filter-clear-button{border:1px solid var(--reinspect-menu-border);background:var(--reinspect-menu-bg);color:var(--reinspect-menu-text);cursor:pointer;border-radius:8px;padding:2px 7px;font-size:11px}.reinspect-filter-clear-button:disabled{opacity:.45;cursor:default}.reinspect-switch-button{border:1px solid var(--reinspect-menu-border-strong);background:var(--reinspect-menu-surface-stronger);cursor:pointer;border-radius:999px;width:34px;height:20px;padding:0;transition:background-color .12s,border-color .12s;display:inline-block;position:relative}.reinspect-switch-button:after{content:"";background:var(--reinspect-menu-bg);border-radius:999px;width:16px;height:16px;transition:transform .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px oklch(25.5% .02 248/.2)}.reinspect-switch-button[data-state=on]{background:var(--reinspect-brand-500);border-color:var(--reinspect-brand-600)}.reinspect-switch-button[data-state=on]:after{transform:translate(14px)}.reinspect-switch-button:focus-visible{outline:2px solid var(--reinspect-focus-ring);outline-offset:1px}.reinspect-component-settings-list{gap:6px;display:grid}.reinspect-component-setting-row{border:1px solid var(--reinspect-menu-border-subtle);background:var(--reinspect-menu-surface);color:var(--reinspect-menu-text);border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:grid}.reinspect-component-setting-row input[type=checkbox]{width:15px;height:15px}`,i=`reinspect-runtime-styles`;function a(){return typeof document>`u`?null:document}function o(e){if(!e)return;let t=a();if(!t||t.getElementById(i))return;let n=t.createElement(`style`);n.id=i,n.textContent=e,(t.head??t.documentElement).appendChild(n)}function s(e){let t={};for(let n of e)t[n]=!0;return t}function c(e){return{isActive:e.startActive,inspectMode:e.inspectMode,pendingInspectMode:e.inspectMode,inspectWhitelist:e.inspectWhitelist,inspectBlacklist:e.inspectBlacklist,renderCounterMode:e.renderCounters,propsSerializationMode:e.propsSerializationMode,menuTheme:e.menuTheme,menuOpenGesture:e.menuOpenGesture,renderCountComponents:s(e.countRendersForComponents),overrides:{}}}function l(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function u(e,t){return e.regex===t.regex&&e.wholeWord===t.wholeWord&&e.matchCase===t.matchCase&&l(e.patterns,t.patterns)}function d(e,t){return e.mode===t.mode&&e.modifiers.ctrl===t.modifiers.ctrl&&e.modifiers.alt===t.modifiers.alt&&e.modifiers.shift===t.modifiers.shift&&e.modifiers.meta===t.modifiers.meta}function f(e,t){switch(t.type){case`hydrate-config`:{let n=s(t.config.countRendersForComponents),r={...e,isActive:t.config.enabled?e.isActive:!1,inspectMode:t.config.inspectMode,pendingInspectMode:t.config.inspectMode,inspectWhitelist:t.config.inspectWhitelist,inspectBlacklist:t.config.inspectBlacklist,renderCounterMode:t.config.renderCounters,propsSerializationMode:t.config.propsSerializationMode,menuTheme:t.config.menuTheme,menuOpenGesture:t.config.menuOpenGesture,renderCountComponents:n};return r.isActive===e.isActive&&r.inspectMode===e.inspectMode&&r.pendingInspectMode===e.pendingInspectMode&&u(r.inspectWhitelist,e.inspectWhitelist)&&u(r.inspectBlacklist,e.inspectBlacklist)&&r.renderCounterMode===e.renderCounterMode&&r.propsSerializationMode===e.propsSerializationMode&&r.menuTheme===e.menuTheme&&d(r.menuOpenGesture,e.menuOpenGesture)&&l(Object.keys(r.renderCountComponents),Object.keys(e.renderCountComponents))?e:r}case`set-is-active`:return e.isActive===t.value?e:{...e,isActive:t.value};case`set-pending-inspect-mode`:return e.pendingInspectMode===t.value&&e.inspectMode===t.value?e:{...e,inspectMode:t.value,pendingInspectMode:t.value};case`set-inspect-whitelist`:return u(e.inspectWhitelist,t.value)?e:{...e,inspectWhitelist:t.value};case`set-inspect-blacklist`:return u(e.inspectBlacklist,t.value)?e:{...e,inspectBlacklist:t.value};case`set-render-counter-mode`:return e.renderCounterMode===t.value?e:{...e,renderCounterMode:t.value};case`set-props-serialization-mode`:return e.propsSerializationMode===t.value?e:{...e,propsSerializationMode:t.value};case`set-menu-theme`:return e.menuTheme===t.value?e:{...e,menuTheme:t.value};case`set-menu-open-gesture`:return d(e.menuOpenGesture,t.value)?e:{...e,menuOpenGesture:t.value};case`set-render-counting-for-component`:{if(t.enabled)return e.renderCountComponents[t.componentName]?e:{...e,renderCountComponents:{...e.renderCountComponents,[t.componentName]:!0}};if(!e.renderCountComponents[t.componentName])return e;let n={...e.renderCountComponents};return delete n[t.componentName],{...e,renderCountComponents:n}}case`update-override`:{let n={...e.overrides[t.componentId]??{}};if(t.value===void 0||t.value===null||t.value===``?delete n[t.prop]:n[t.prop]=t.value,Object.keys(n).length===0){if(!e.overrides[t.componentId])return e;let n={...e.overrides};return delete n[t.componentId],{...e,overrides:n}}return{...e,overrides:{...e.overrides,[t.componentId]:n}}}default:return e}}function p(){let n=(0,t.useContext)(e.x);if(!n)throw Error(`useReinspect must be used within ReinspectProvider`);return n}var m=new Map;function h(e){let t=m.get(e);if(t!==void 0)return t;let n=0;for(let t=0;t<e.length;t+=1)n=Math.imul(31,n)+e.charCodeAt(t),n|=0;let r=n>>>0;return m.set(e,r),r}function g(e){let t=h(e);return`hsl(${t%360} ${60+(t>>>8)%14}% ${52+(t>>>16)%8}%)`}function _({label:e,description:t}){return(0,n.jsx)(`span`,{className:`reinspect-inline-hint`,title:t,"aria-label":t,children:e})}function v(e){return e.split(/[\r\n,]+/g).map(e=>e.trim()).filter(e=>e.length>0)}function y(e,t){let n=[...e],r=new Set(e);for(let e of t)r.has(e)||(r.add(e),n.push(e));return n}function b(e){let t=[];return e.ctrl&&t.push(`Ctrl`),e.alt&&t.push(`Alt`),e.shift&&t.push(`Shift`),e.meta&&t.push(`Meta`),t.join(` + `)}function x(e){return e.ctrl||e.alt||e.shift||e.meta}function S(e){return{ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}}function C({title:e,info:r,filter:i,setFilter:a,invalidPatterns:o,patternsInputTestId:s,regexTestId:c,wholeWordTestId:l,matchCaseTestId:u,invalidMessageTestId:d}){let[f,p]=(0,t.useState)(``),m=(0,t.useRef)([]),h=(0,t.useCallback)(()=>{v(f).length!==0&&(m.current=[],p(``))},[f]),g=(0,t.useCallback)(e=>{a(t=>({...t,patterns:t.patterns.filter(t=>t!==e)}))},[a]),b=(0,t.useCallback)(()=>{a(e=>({...e,patterns:[]})),m.current=[],p(``)},[a]),x=e=>{e.key===`Enter`&&(e.preventDefault(),h())},S=e=>{let t=v(e);p(e),a(e=>{let n=e.patterns.filter(e=>!m.current.includes(e));return{...e,patterns:y(n,t)}}),m.current=t};return(0,n.jsxs)(`section`,{className:`reinspect-filter-section`,children:[(0,n.jsxs)(`div`,{className:`reinspect-filter-row-header`,children:[(0,n.jsxs)(`p`,{className:`reinspect-filter-title`,children:[e,` `,(0,n.jsx)(_,{label:`?`,description:r})]}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-clear-button`,onClick:b,disabled:i.patterns.length===0,"data-testid":`${s}-clear`,children:`Clear`})]}),(0,n.jsxs)(`div`,{className:`reinspect-filter-toolbar`,children:[(0,n.jsx)(`span`,{className:`reinspect-filter-search-icon`,"aria-hidden":`true`,children:(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,focusable:`false`,children:(0,n.jsx)(`path`,{d:`M10.5 3a7.5 7.5 0 015.92 12.1l4.24 4.23a1 1 0 01-1.42 1.42l-4.23-4.24A7.5 7.5 0 1110.5 3zm0 2a5.5 5.5 0 100 11 5.5 5.5 0 000-11z`,fill:`currentColor`})})}),(0,n.jsx)(`input`,{"data-testid":s,className:`reinspect-filter-search-input`,type:`search`,"aria-label":`${e} patterns`,value:f,placeholder:`Add ${e.toLowerCase()} pattern`,onChange:e=>S(e.currentTarget.value),onKeyDown:x}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-modifier`,"data-state":i.regex?`active`:`idle`,"data-testid":c,title:`Regex`,"aria-label":`${e} regex modifier`,onClick:()=>a(e=>({...e,regex:!e.regex})),children:`.*`}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-modifier`,"data-state":i.wholeWord?`active`:`idle`,"data-testid":l,title:`Whole word`,"aria-label":`${e} whole-word modifier`,onClick:()=>a(e=>({...e,wholeWord:!e.wholeWord})),children:`W`}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-modifier`,"data-state":i.matchCase?`active`:`idle`,"data-testid":u,title:`Match case`,"aria-label":`${e} case-sensitive modifier`,onClick:()=>a(e=>({...e,matchCase:!e.matchCase})),children:`Aa`}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-add-button`,onClick:h,disabled:v(f).length===0,"data-testid":`${s}-add`,children:`Add`})]}),i.patterns.length>0?(0,n.jsx)(`div`,{className:`reinspect-filter-chip-list`,children:i.patterns.map(e=>(0,n.jsxs)(`span`,{className:`reinspect-filter-chip`,children:[(0,n.jsx)(`code`,{children:e}),(0,n.jsx)(`button`,{type:`button`,className:`reinspect-filter-chip-remove`,"aria-label":`Remove ${e}`,onClick:()=>g(e),children:`×`})]},e))}):(0,n.jsx)(`p`,{className:`reinspect-setting-empty-state`,children:`No patterns configured.`}),o.length>0?(0,n.jsxs)(`p`,{className:`reinspect-error`,"data-testid":d,children:[`Invalid regex patterns ignored: `,o.join(`, `)]}):null]})}function w({children:r,config:i}){let a=(0,t.useMemo)(()=>e.v(i),[i]),o=(0,t.useRef)({}),[s,l]=(0,t.useReducer)(f,a,c);(0,t.useEffect)(()=>{l({type:`hydrate-config`,config:a})},[a]);let u=(0,t.useCallback)(e=>{l({type:`set-is-active`,value:typeof e==`function`?e(s.isActive):e})},[s.isActive]),d=(0,t.useCallback)(t=>{let n=typeof t==`function`?t(s.pendingInspectMode):t;l({type:`set-pending-inspect-mode`,value:n}),e.p(n)},[s.pendingInspectMode]),p=(0,t.useCallback)(t=>{let n=e.d(typeof t==`function`?t(s.inspectWhitelist):t);l({type:`set-inspect-whitelist`,value:n}),e.m(n)},[s.inspectWhitelist]),m=(0,t.useCallback)(t=>{let n=e.d(typeof t==`function`?t(s.inspectBlacklist):t);l({type:`set-inspect-blacklist`,value:n}),e.f(n)},[s.inspectBlacklist]),h=(0,t.useCallback)(e=>{l({type:`set-render-counter-mode`,value:typeof e==`function`?e(s.renderCounterMode):e})},[s.renderCounterMode]),_=(0,t.useCallback)(t=>{let n=typeof t==`function`?t(s.propsSerializationMode):t;l({type:`set-props-serialization-mode`,value:n}),e._(n)},[s.propsSerializationMode]),v=(0,t.useCallback)(t=>{let n=typeof t==`function`?t(s.menuTheme):t;l({type:`set-menu-theme`,value:n}),e.g(n)},[s.menuTheme]),y=(0,t.useCallback)(t=>{let n=typeof t==`function`?t(s.menuOpenGesture):t;l({type:`set-menu-open-gesture`,value:n}),e.h(n)},[s.menuOpenGesture]),b=(0,t.useCallback)((e,t,n)=>{l({type:`update-override`,componentId:e,prop:t,value:n})},[]),x=(0,t.useCallback)((e,t)=>{l({type:`set-render-counting-for-component`,componentName:e,enabled:t})},[]),S=(0,t.useCallback)(e=>s.renderCounterMode!==`off`||!!s.renderCountComponents[e],[s.renderCounterMode,s.renderCountComponents]),C=s.pendingInspectMode!==s.inspectMode,w=(0,t.useCallback)(()=>{},[]),E=(0,t.useMemo)(()=>e.i(s.inspectWhitelist),[s.inspectWhitelist]),D=(0,t.useMemo)(()=>e.i(s.inspectBlacklist),[s.inspectBlacklist]),O=E.invalidPatterns,k=D.invalidPatterns,A=(0,t.useCallback)(t=>e.a(t,E,D),[E,D]),j=(0,t.useCallback)(e=>{let t=o.current[e];if(t)return t;let n=g(e);return o.current[e]=n,n},[]),M=(0,t.useMemo)(()=>({config:a,isActive:a.enabled&&s.isActive,setIsActive:u,inspectMode:s.inspectMode,pendingInspectMode:s.pendingInspectMode,setPendingInspectMode:d,hasPendingInspectModeChange:C,applyInspectMode:w,inspectWhitelist:s.inspectWhitelist,setInspectWhitelist:p,inspectWhitelistInvalidPatterns:O,inspectBlacklist:s.inspectBlacklist,setInspectBlacklist:m,inspectBlacklistInvalidPatterns:k,isComponentInspectableByFilters:A,renderCounterMode:s.renderCounterMode,setRenderCounterMode:h,propsSerializationMode:s.propsSerializationMode,setPropsSerializationMode:_,menuTheme:s.menuTheme,setMenuTheme:v,menuOpenGesture:s.menuOpenGesture,setMenuOpenGesture:y,renderCountComponents:s.renderCountComponents,setRenderCountingForComponent:x,isRenderCountingEnabledFor:S,overrides:s.overrides,updateOverride:b,getColor:j}),[a,s.isActive,u,s.inspectMode,s.pendingInspectMode,d,C,w,s.inspectWhitelist,p,O,s.inspectBlacklist,m,k,A,s.renderCounterMode,h,s.propsSerializationMode,_,s.menuTheme,v,s.menuOpenGesture,y,s.renderCountComponents,x,S,s.overrides,b,j]);return(0,n.jsxs)(e.x.Provider,{value:M,children:[r,a.enabled&&a.showFloatingToggle?(0,n.jsx)(T,{}):null]})}function T(){let{config:r,isActive:i,setIsActive:a,pendingInspectMode:o,setPendingInspectMode:s,inspectWhitelist:c,setInspectWhitelist:l,inspectWhitelistInvalidPatterns:u,inspectBlacklist:d,setInspectBlacklist:f,inspectBlacklistInvalidPatterns:m,renderCounterMode:h,setRenderCounterMode:g,propsSerializationMode:v,setPropsSerializationMode:y,menuTheme:w,setMenuTheme:T,menuOpenGesture:E,setMenuOpenGesture:D}=p(),[O,k]=(0,t.useState)(!1),[A,j]=(0,t.useState)(`filter`),[M,N]=(0,t.useState)(!1),P=(0,t.useRef)(null),F=(0,t.useRef)(null),I=(0,t.useRef)(null),L=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{if(!O)return;let e=e=>{let t=e.target;t instanceof Node&&(F.current?.contains(t)||k(!1))},t=e=>{e.key===`Escape`&&k(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[O]),(0,t.useEffect)(()=>{if(!O||!I.current)return;let t=I.current;e.y(t);let n=n=>{e.b(n,t)};return document.addEventListener(`keydown`,n),()=>{document.removeEventListener(`keydown`,n)}},[O]),(0,t.useEffect)(()=>{L.current&&!O&&P.current?.focus(),L.current=O},[O]),(0,t.useEffect)(()=>{if(!M)return;let e=e=>{let t=S(e);x(t)&&(e.preventDefault(),e.stopPropagation(),D(e=>({...e,mode:`modifier-right-click`,modifiers:t})),N(!1))};return document.addEventListener(`keydown`,e,!0),()=>{document.removeEventListener(`keydown`,e,!0)}},[M,D]),r.enabled?(0,n.jsxs)(`div`,{className:`reinspect-floating-root`,ref:F,"data-reinspect-theme":w,children:[(0,n.jsx)(`button`,{type:`button`,ref:P,className:`reinspect-floating-toggle`,"data-reinspect-theme":w,"data-testid":`reinspect-floating-toggle`,onClick:()=>k(e=>!e),"aria-expanded":O,"aria-controls":`reinspect-settings-menu`,children:`Reinspect settings`}),O?(0,n.jsxs)(`div`,{id:`reinspect-settings-menu`,ref:I,className:`reinspect-settings-menu`,"data-reinspect-theme":w,role:`dialog`,"aria-modal":`true`,"aria-label":`Reinspect settings`,tabIndex:-1,"data-testid":`reinspect-settings-menu`,children:[(0,n.jsxs)(`div`,{className:`reinspect-settings-header-row`,children:[(0,n.jsx)(`p`,{className:`reinspect-settings-title`,children:`Reinspect settings`}),(0,n.jsxs)(`div`,{className:`reinspect-settings-inline-switch`,children:[(0,n.jsx)(`span`,{className:`reinspect-settings-toggle-label`,children:i?`Enabled`:`Disabled`}),(0,n.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":i,"aria-label":`Toggle inspector enabled`,"data-testid":`reinspect-setting-inspector-active`,className:`reinspect-switch-button`,"data-state":i?`on`:`off`,title:i?`Disable inspector`:`Enable inspector`,onClick:()=>a(!i)})]})]}),(0,n.jsxs)(`div`,{className:`reinspect-settings-tabs`,role:`tablist`,"aria-label":`Reinspect settings categories`,children:[(0,n.jsx)(`button`,{type:`button`,role:`tab`,id:`reinspect-settings-tab-filter`,"data-testid":`reinspect-settings-tab-filter`,"data-state":A===`filter`?`active`:`idle`,"aria-selected":A===`filter`,"aria-controls":`reinspect-settings-panel-filter`,onClick:()=>j(`filter`),children:`Filter`}),(0,n.jsx)(`button`,{type:`button`,role:`tab`,id:`reinspect-settings-tab-settings`,"data-testid":`reinspect-settings-tab-settings`,"data-state":A===`settings`?`active`:`idle`,"aria-selected":A===`settings`,"aria-controls":`reinspect-settings-panel-settings`,onClick:()=>j(`settings`),children:`Settings`})]}),(0,n.jsx)(`div`,{className:`reinspect-settings-divider`}),A===`filter`?(0,n.jsxs)(`div`,{className:`reinspect-settings-tab-panel`,role:`tabpanel`,id:`reinspect-settings-panel-filter`,"aria-labelledby":`reinspect-settings-tab-filter`,children:[(0,n.jsx)(C,{title:`Include`,info:`Only matching component names remain inspectable.`,filter:c,setFilter:l,invalidPatterns:u,patternsInputTestId:`reinspect-setting-inspect-whitelist-patterns`,regexTestId:`reinspect-setting-inspect-whitelist-regex`,wholeWordTestId:`reinspect-setting-inspect-whitelist-whole-word`,matchCaseTestId:`reinspect-setting-inspect-whitelist-match-case`,invalidMessageTestId:`reinspect-setting-inspect-whitelist-invalid`}),(0,n.jsx)(C,{title:`Exclude`,info:`Matching component names are hidden from inspection.`,filter:d,setFilter:f,invalidPatterns:m,patternsInputTestId:`reinspect-setting-inspect-blacklist-patterns`,regexTestId:`reinspect-setting-inspect-blacklist-regex`,wholeWordTestId:`reinspect-setting-inspect-blacklist-whole-word`,matchCaseTestId:`reinspect-setting-inspect-blacklist-match-case`,invalidMessageTestId:`reinspect-setting-inspect-blacklist-invalid`}),(0,n.jsx)(`p`,{className:`reinspect-setting-note`,children:`Exclude patterns override include patterns.`}),(0,n.jsx)(`section`,{className:`reinspect-setting-block`,children:(0,n.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,n.jsxs)(`span`,{className:`reinspect-settings-toggle-label`,children:[`Component scope`,` `,(0,n.jsx)(_,{label:`?`,description:`Choose which component groups can be inspected.`})]}),(0,n.jsxs)(`select`,{"data-testid":`reinspect-setting-inspect-mode`,value:o,onChange:t=>{let n=t.currentTarget.value;e.o(n)&&s(n)},children:[(0,n.jsx)(`option`,{value:`wrapped`,children:`Only wrapped components`}),(0,n.jsx)(`option`,{value:`first-party`,children:`All 1st-party components`}),(0,n.jsx)(`option`,{value:`all`,children:`All components`})]})]})})]}):(0,n.jsx)(`div`,{className:`reinspect-settings-tab-panel`,role:`tabpanel`,id:`reinspect-settings-panel-settings`,"aria-labelledby":`reinspect-settings-tab-settings`,children:(0,n.jsxs)(`section`,{className:`reinspect-setting-block`,children:[(0,n.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,n.jsxs)(`span`,{className:`reinspect-settings-toggle-label`,children:[`Render counter mode`,` `,(0,n.jsx)(_,{label:`?`,description:`Pick whether render attempts, commits, both, or no counters are shown.`})]}),(0,n.jsxs)(`select`,{"data-testid":`reinspect-setting-render-counters`,value:h,onChange:t=>{let n=t.currentTarget.value;e.u(n)&&g(n)},children:[(0,n.jsx)(`option`,{value:`off`,children:`Off`}),(0,n.jsx)(`option`,{value:`attempts`,children:`Render attempts`}),(0,n.jsx)(`option`,{value:`commits`,children:`Committed renders`}),(0,n.jsx)(`option`,{value:`both`,children:`Both`})]})]}),(0,n.jsx)(`p`,{className:`reinspect-setting-note`,children:`Per-component capture can be toggled from each component menu.`}),(0,n.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,n.jsxs)(`span`,{className:`reinspect-settings-toggle-label`,children:[`Menu theme`,` `,(0,n.jsx)(_,{label:`?`,description:`Choose the Reinspect menu appearance.`})]}),(0,n.jsxs)(`select`,{"data-testid":`reinspect-setting-menu-theme`,value:w,onChange:t=>{let n=t.currentTarget.value;e.c(n)&&T(n)},children:[(0,n.jsx)(`option`,{value:`light`,children:`Light`}),(0,n.jsx)(`option`,{value:`dark`,children:`Dark`})]})]}),(0,n.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,n.jsxs)(`span`,{className:`reinspect-settings-toggle-label`,children:[`Menu open trigger`,` `,(0,n.jsx)(_,{label:`?`,description:`Choose how to open the inspector menu on components.`})]}),(0,n.jsxs)(`select`,{"data-testid":`reinspect-setting-menu-open-trigger`,value:E.mode,onChange:t=>{let n=t.currentTarget.value;e.s(n)&&D(e=>({...e,mode:n}))},children:[(0,n.jsx)(`option`,{value:`right-click`,children:`Right click`}),(0,n.jsx)(`option`,{value:`modifier-right-click`,children:`Right click + modifier macro`})]})]}),E.mode===`modifier-right-click`?(0,n.jsxs)(`section`,{className:`reinspect-setting-block reinspect-macro-setting`,children:[(0,n.jsxs)(`p`,{className:`reinspect-setting-note`,"data-testid":`reinspect-setting-menu-open-modifier-label`,children:[`Current macro:`,` `,(0,n.jsx)(`code`,{children:b(E.modifiers)})]}),(0,n.jsxs)(`div`,{className:`reinspect-inline-controls`,children:[(0,n.jsx)(`button`,{type:`button`,"data-testid":`reinspect-setting-menu-open-modifier-record`,onClick:()=>{N(e=>!e)},"data-state":M?`active`:`idle`,children:M?`Press modifier keys...`:`Record macro`}),(0,n.jsx)(`button`,{type:`button`,"data-testid":`reinspect-setting-menu-open-modifier-reset`,onClick:()=>D(t=>({...t,modifiers:{...e.r}})),children:`Reset to Shift`})]}),(0,n.jsx)(`p`,{className:`reinspect-setting-helper-text`,children:`Hold one or more modifier keys (Ctrl, Alt, Shift, Meta), then press any key to save the macro.`})]}):null,(0,n.jsxs)(`label`,{className:`reinspect-settings-select-row`,children:[(0,n.jsxs)(`span`,{className:`reinspect-settings-toggle-label`,children:[`Props JSON detail`,` `,(0,n.jsx)(_,{label:`?`,description:`Choose how much data appears in JSON previews and the Raw props editor.`})]}),(0,n.jsxs)(`select`,{"data-testid":`reinspect-setting-props-serialization-mode`,value:v,onChange:t=>{let n=t.currentTarget.value;e.l(n)&&y(n)},children:[(0,n.jsx)(`option`,{value:`distilled`,children:`Distilled (recommended)`}),(0,n.jsx)(`option`,{value:`complete`,children:`Complete (includes internals)`})]})]}),(0,n.jsx)(`p`,{className:`reinspect-setting-helper-text`,children:v===`distilled`?`Shows app-level props first and hides React internals like _owner.`:`Shows the full object graph, including React internals and metadata.`})]})})]}):null]}):null}function E(t,n){let r={source:`manual`,scope:`first-party`};return n?.name&&(r.componentName=n.name),e.t(t,r)}o(r),exports.ReinspectProvider=w,exports.useReinspect=p,exports.withReinspect=E;
@@ -1,10 +1,7 @@
1
1
  import './reinspect.css';
2
- export { ReinspectProvider, ReinspectFloatingToggle } from './context';
2
+ export { ReinspectProvider } from './context';
3
3
  export { useReinspect } from './useReinspect';
4
- export { autoWrapInspectable } from './autoWrap';
5
4
  export { withReinspect } from './withReinspect';
6
- export { wrapInspectableMap } from './wrapInspectableMap';
7
- export { DEFAULT_EDITABLE_PROPS, DEFAULT_PALETTE } from './constants';
8
- export type { EditableStyleProp, InspectMode, AutoDiscoverScope, RenderCaptureMode, ReinspectConfig, ResolvedReinspectConfig, ComponentStyleOverrides, } from './types';
5
+ export type { InspectFilter, InspectFilterConfig, InspectMode, MenuOpenGesture, MenuOpenGestureConfig, MenuOpenModifiers, MenuOpenTriggerMode, PropsSerializationMode, RenderCounterMode, ReinspectConfig, ResolvedReinspectConfig, } from './types';
9
6
  export type { WithReinspectOptions } from './withReinspect';
10
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reinspect/index.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,CAAA;AAMxB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reinspect/index.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,CAAA;AAMxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}