@buoy-gg/shared-ui 7.0.16 → 7.0.17

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 (77) hide show
  1. package/lib/commonjs/hooks/index.js +7 -0
  2. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  3. package/lib/commonjs/hooks/usePersistedState.js +71 -0
  4. package/lib/commonjs/icons/index.js +14 -0
  5. package/lib/commonjs/index.js +42 -0
  6. package/lib/commonjs/storage/devToolsStorageKeys.js +22 -0
  7. package/lib/commonjs/ui/components/ModalHeader.js +69 -0
  8. package/lib/commonjs/ui/components/ToolButton.js +90 -0
  9. package/lib/commonjs/ui/components/index.js +7 -0
  10. package/lib/commonjs/ui/index.js +8 -0
  11. package/lib/commonjs/ui/toolTheme.js +96 -0
  12. package/lib/commonjs/utils/index.js +38 -0
  13. package/lib/commonjs/utils/stateSnapshotRegistry.js +62 -0
  14. package/lib/module/hooks/index.js +1 -0
  15. package/lib/module/hooks/safe-area-impl.js +1 -1
  16. package/lib/module/hooks/usePersistedState.js +68 -0
  17. package/lib/module/icons/index.js +1 -0
  18. package/lib/module/index.js +4 -0
  19. package/lib/module/storage/devToolsStorageKeys.js +22 -0
  20. package/lib/module/ui/components/ModalHeader.js +70 -2
  21. package/lib/module/ui/components/ToolButton.js +86 -0
  22. package/lib/module/ui/components/index.js +1 -0
  23. package/lib/module/ui/index.js +3 -0
  24. package/lib/module/ui/toolTheme.js +93 -0
  25. package/lib/module/utils/index.js +2 -0
  26. package/lib/module/utils/stateSnapshotRegistry.js +55 -0
  27. package/lib/typescript/commonjs/hooks/index.d.ts +1 -0
  28. package/lib/typescript/commonjs/hooks/index.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  30. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts +16 -0
  31. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts.map +1 -0
  32. package/lib/typescript/commonjs/icons/index.d.ts +1 -0
  33. package/lib/typescript/commonjs/icons/index.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/index.d.ts +1 -1
  35. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +19 -0
  37. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts +13 -1
  39. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/ui/components/ToolButton.d.ts +24 -0
  41. package/lib/typescript/commonjs/ui/components/ToolButton.d.ts.map +1 -0
  42. package/lib/typescript/commonjs/ui/components/index.d.ts +4 -0
  43. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/ui/index.d.ts +1 -0
  45. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/ui/toolTheme.d.ts +68 -0
  47. package/lib/typescript/commonjs/ui/toolTheme.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/utils/index.d.ts +2 -0
  49. package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts +67 -0
  51. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts.map +1 -0
  52. package/lib/typescript/module/hooks/index.d.ts +1 -0
  53. package/lib/typescript/module/hooks/index.d.ts.map +1 -1
  54. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  55. package/lib/typescript/module/hooks/usePersistedState.d.ts +16 -0
  56. package/lib/typescript/module/hooks/usePersistedState.d.ts.map +1 -0
  57. package/lib/typescript/module/icons/index.d.ts +1 -0
  58. package/lib/typescript/module/icons/index.d.ts.map +1 -1
  59. package/lib/typescript/module/index.d.ts +1 -1
  60. package/lib/typescript/module/index.d.ts.map +1 -1
  61. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +19 -0
  62. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
  63. package/lib/typescript/module/ui/components/ModalHeader.d.ts +13 -1
  64. package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +1 -1
  65. package/lib/typescript/module/ui/components/ToolButton.d.ts +24 -0
  66. package/lib/typescript/module/ui/components/ToolButton.d.ts.map +1 -0
  67. package/lib/typescript/module/ui/components/index.d.ts +4 -0
  68. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  69. package/lib/typescript/module/ui/index.d.ts +1 -0
  70. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  71. package/lib/typescript/module/ui/toolTheme.d.ts +68 -0
  72. package/lib/typescript/module/ui/toolTheme.d.ts.map +1 -0
  73. package/lib/typescript/module/utils/index.d.ts +2 -0
  74. package/lib/typescript/module/utils/index.d.ts.map +1 -1
  75. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts +67 -0
  76. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts.map +1 -0
  77. package/package.json +4 -4
@@ -29,6 +29,25 @@ export declare const devToolsStorageKeys: {
29
29
  readonly dimensions: () => "@react_buoy_modal_dimensions";
30
30
  readonly hintAcknowledged: () => "@react_buoy_modal_hint_acknowledged";
31
31
  };
32
+ /**
33
+ * Namespace factory for third-party custom tools. Keys share the
34
+ * `@react_buoy` prefix, so `isDevToolsStorageKey` filtering (and the Storage
35
+ * tool's internal-key handling) covers custom-tool persistence for free.
36
+ *
37
+ * ```ts
38
+ * const keys = devToolsStorageKeys.custom("feature-flags");
39
+ * keys.modal(); // "@react_buoy_custom_feature-flags_modal"
40
+ * keys.key("overrides"); // "@react_buoy_custom_feature-flags_overrides"
41
+ * ```
42
+ */
43
+ readonly custom: (toolId: string) => {
44
+ root: () => string;
45
+ /** JsModal `persistenceKey` for this tool's window dimensions. */
46
+ modal: () => string;
47
+ settings: () => string;
48
+ /** Arbitrary tool-scoped key. */
49
+ key: (suffix: string) => string;
50
+ };
32
51
  /**
33
52
  * Settings-related storage keys
34
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
1
+ {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
  interface ModalHeaderProps {
3
3
  children: ReactNode;
4
4
  }
@@ -7,6 +7,7 @@ export declare namespace ModalHeader {
7
7
  var Navigation: typeof import("./ModalHeader").Navigation;
8
8
  var Content: typeof import("./ModalHeader").Content;
9
9
  var Actions: typeof import("./ModalHeader").Actions;
10
+ var Search: typeof HeaderSearch;
10
11
  }
11
12
  interface NavigationProps {
12
13
  onBack?: () => void;
@@ -30,5 +31,16 @@ export declare function Actions({ children }: ActionsProps): import("react").JSX
30
31
  export declare namespace Actions {
31
32
  var displayName: string;
32
33
  }
34
+ interface SearchProps {
35
+ value: string;
36
+ onChangeText: (text: string) => void;
37
+ /** Called when the user dismisses search (the inline ✕). Clear your query
38
+ * and flip your `isSearchActive` state here. */
39
+ onCancel: () => void;
40
+ placeholder?: string;
41
+ /** Focus the input as soon as it appears (default true). */
42
+ autoFocus?: boolean;
43
+ }
44
+ export declare function HeaderSearch({ value, onChangeText, onCancel, placeholder, autoFocus, }: SearchProps): import("react").JSX.Element;
33
45
  export {};
34
46
  //# sourceMappingURL=ModalHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ModalHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAEzD;yBAFe,WAAW;;;;;AAK3B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,sCAiCnF;AAGD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,YAAY,+BAoCd;AAID,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,+BAMjD;yBANe,OAAO"}
1
+ {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ModalHeader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM1D,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAEzD;yBAFe,WAAW;;;;;;AAK3B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,sCAiCnF;AAGD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,YAAY,+BAoCd;AAID,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,+BAMjD;yBANe,OAAO;;;AAYvB,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;oDACgD;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,WAAyB,EACzB,SAAgB,GACjB,EAAE,WAAW,+BAyBb"}
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from "react";
2
+ import { type ViewStyle } from "react-native";
3
+ export interface ToolButtonProps {
4
+ label: string;
5
+ onPress: () => void;
6
+ /**
7
+ * - primary: filled teal — the screen's main action
8
+ * - danger: outlined red — destructive actions (clear, delete)
9
+ * - warning: outlined amber — revert/override actions
10
+ * - ghost: borderless — secondary actions
11
+ */
12
+ variant?: "primary" | "danger" | "warning" | "ghost";
13
+ size?: "small" | "medium";
14
+ disabled?: boolean;
15
+ /** Optional leading icon element. */
16
+ icon?: ReactNode;
17
+ style?: ViewStyle;
18
+ }
19
+ /**
20
+ * The shared action button for dev-tool surfaces. Fills the gap where every
21
+ * tool hand-styled its own TouchableOpacity for "Clear", "Apply", "Reset".
22
+ */
23
+ export declare function ToolButton({ label, onPress, variant, size, disabled, icon, style, }: ToolButtonProps): import("react").JSX.Element;
24
+ //# sourceMappingURL=ToolButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ToolButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,OAAmB,EACnB,IAAe,EACf,QAAgB,EAChB,IAAI,EACJ,KAAK,GACN,EAAE,eAAe,+BAgCjB"}
@@ -12,9 +12,13 @@ export { CompactFilterChips, } from "./CompactFilterChips";
12
12
  export type { FilterChipGroup } from "./CompactFilterChips";
13
13
  export { Badge, StatusBadge, CountBadge, TypeBadge, MethodBadge, } from "./Badge";
14
14
  export { TabSelector } from "./TabSelector";
15
+ export type { Tab } from "./TabSelector";
16
+ export { ToolButton } from "./ToolButton";
17
+ export type { ToolButtonProps } from "./ToolButton";
15
18
  export { EventListItem } from "./EventListItem";
16
19
  export { StatsCard } from "./StatsCard";
17
20
  export { CompactRow } from "./CompactRow";
21
+ export type { CompactRowProps } from "./CompactRow";
18
22
  export { DevToolsCard, DEVTOOLS_CARD_CONSTANTS } from "./DevToolsCard";
19
23
  export type { DevToolsCardProps } from "./DevToolsCard";
20
24
  export { HeaderSearchButton } from "./HeaderSearchButton";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./components";
2
+ export { toolTheme, type ToolTheme } from "./toolTheme";
2
3
  export { CyberpunkSectionButton } from "./console/CyberpunkSectionButton";
3
4
  export * from "./gameUI";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,cAAc,UAAU,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { TextStyle } from "react-native";
2
+ /**
3
+ * Semantic design tokens for dev-tool surfaces — the single documented entry
4
+ * point for custom-tool authors (and, over time, internal tools).
5
+ *
6
+ * Buoy historically grew three color systems (`buoyColors`, `gameUIColors`,
7
+ * `macOSColors`) with tribal knowledge about which to use where. `toolTheme`
8
+ * encodes that knowledge: surfaces/text come from the brand palette, semantic
9
+ * status colors from the gameUI palette. Consumers should not need to know
10
+ * that split exists.
11
+ */
12
+ export declare const toolTheme: {
13
+ readonly colors: {
14
+ /** Modal/page background. */
15
+ readonly surface: "#121212";
16
+ /** Card / row background, one step above surface. */
17
+ readonly card: "#1A1A1A";
18
+ /** Pressed/hover background. */
19
+ readonly hover: "#242424";
20
+ /** Text-input background. */
21
+ readonly input: "#2A2A2A";
22
+ readonly border: "#333333";
23
+ readonly borderStrong: "#444444";
24
+ readonly text: "#E0E0E0";
25
+ readonly textSecondary: "#A0A0A0";
26
+ readonly textMuted: "#888888";
27
+ /** Buoy teal — primary accent. */
28
+ readonly accent: "#20C997";
29
+ readonly success: string;
30
+ readonly warning: string;
31
+ readonly error: string;
32
+ readonly info: string;
33
+ };
34
+ /**
35
+ * Text presets matching the styles internal tools re-declare per file.
36
+ * Spread into a style: `style={[toolTheme.text.label, { color: ... }]}`.
37
+ */
38
+ readonly text: {
39
+ /** Modal/section titles. */
40
+ readonly title: TextStyle;
41
+ /** Default body copy. */
42
+ readonly body: TextStyle;
43
+ /** Secondary copy under a primary line. */
44
+ readonly subtitle: TextStyle;
45
+ /** ALL-CAPS section labels ("LOCAL OVERRIDES"). */
46
+ readonly label: TextStyle;
47
+ /** Monospace values (keys, ids, payload snippets). */
48
+ readonly mono: TextStyle;
49
+ /** Timestamps and fine print. */
50
+ readonly small: TextStyle;
51
+ };
52
+ /** 4-based spacing scale used across tool surfaces. */
53
+ readonly spacing: {
54
+ readonly xs: 4;
55
+ readonly sm: 8;
56
+ readonly md: 12;
57
+ readonly lg: 16;
58
+ readonly xl: 24;
59
+ };
60
+ readonly radius: {
61
+ readonly sm: 6;
62
+ readonly md: 8;
63
+ readonly lg: 12;
64
+ readonly pill: 9999;
65
+ };
66
+ };
67
+ export type ToolTheme = typeof toolTheme;
68
+ //# sourceMappingURL=toolTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolTheme.d.ts","sourceRoot":"","sources":["../../../../src/ui/toolTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;QAElB,6BAA6B;;QAE7B,qDAAqD;;QAErD,gCAAgC;;QAEhC,6BAA6B;;;;;;;QAS7B,kCAAkC;;;;;;;IAQpC;;;OAGG;;QAED,4BAA4B;wBAKvB,SAAS;QACd,yBAAyB;uBAIpB,SAAS;QACd,2CAA2C;2BAItC,SAAS;QACd,mDAAmD;wBAO9C,SAAS;QACd,sDAAsD;uBAKjD,SAAS;QACd,iCAAiC;wBAK5B,SAAS;;IAGhB,uDAAuD;;;;;;;;;;;;;;CAe/C,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
@@ -7,6 +7,8 @@ export { getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstruc
7
7
  export { parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, } from "./valueFormatting";
8
8
  export { loadOptionalModule, getCachedOptionalModule } from "./loadOptionalModule";
9
9
  export { setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, } from "./renderCaptureRegistry";
10
+ export { registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, } from "./stateSnapshotRegistry";
11
+ export { serialize as superJsonSerialize, deserialize as superJsonDeserialize, type SuperJSONResult, } from "./minimalSuperJSON";
10
12
  export { reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, } from "./reloadApp";
11
13
  export { Subscribable, type SubscribableListener } from "./subscribable";
12
14
  export { subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, } from "./subscriberCountNotifier";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,WAAW,IAAI,oBAAoB,EACnC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Cross-package bridge for app-state snapshot & restore (Time Machine).
3
+ *
4
+ * Each state tool (`@buoy-gg/storage`, `@buoy-gg/redux`, `@buoy-gg/zustand`,
5
+ * `@buoy-gg/jotai`, `@buoy-gg/react-query`) registers a provider here at
6
+ * module init (or from its app-lifetime sync hook); `@buoy-gg/time-machine`
7
+ * consumes the registry. Neither side imports the other — same
8
+ * optional-capability pattern as renderCaptureRegistry.
9
+ *
10
+ * Apps can also register custom providers for state Buoy doesn't know about.
11
+ */
12
+ export interface StateSnapshotProviderStatus {
13
+ canCapture: boolean;
14
+ canRestore: boolean;
15
+ /** Human-actionable reason when a capability is unavailable. */
16
+ detail?: string;
17
+ }
18
+ export interface StateSnapshotCapture {
19
+ /**
20
+ * Raw JS value tree. May contain Date/Map/Set/etc. (the vault serializes
21
+ * with superjson) but MUST NOT contain functions — providers strip them
22
+ * and record how to re-graft on restore inside their own data envelope.
23
+ */
24
+ data: unknown;
25
+ warnings: string[];
26
+ }
27
+ export interface StateSnapshotRestoreResult {
28
+ /** True when the state verifiably changed (or was verified already-equal). */
29
+ ok: boolean;
30
+ /** Keys / stores / atoms / queries written. */
31
+ applied: number;
32
+ /** Items that could not be restored, with a reason each. */
33
+ skipped: {
34
+ id: string;
35
+ reason: string;
36
+ }[];
37
+ warnings: string[];
38
+ }
39
+ export interface StateSnapshotProvider {
40
+ /** Stable source id, e.g. "storage" | "redux" | "zustand" | "jotai" | "query". */
41
+ id: string;
42
+ /** Display name, e.g. "Storage", "React Query". */
43
+ label: string;
44
+ /** Cheap capability probe — drives UI gating and restore-mode suggestions. */
45
+ status(): StateSnapshotProviderStatus;
46
+ capture(): Promise<StateSnapshotCapture>;
47
+ restore(data: unknown): Promise<StateSnapshotRestoreResult>;
48
+ /**
49
+ * Optional: wipe this source to fresh-install state. Used by the
50
+ * "restore baseline" flow (typically followed by a JS reload so in-memory
51
+ * stores rebuild themselves from the wiped persisted state).
52
+ */
53
+ clear?(): Promise<StateSnapshotRestoreResult>;
54
+ }
55
+ type Listener = () => void;
56
+ /**
57
+ * Register a provider. Last registration wins for a given id.
58
+ * Returns an unregister function (only removes the provider if it is still
59
+ * the registered one for that id).
60
+ */
61
+ export declare function registerStateSnapshotProvider(provider: StateSnapshotProvider): () => void;
62
+ export declare function getStateSnapshotProviders(): StateSnapshotProvider[];
63
+ export declare function getStateSnapshotProvider(id: string): StateSnapshotProvider | null;
64
+ /** Notifies when providers register/unregister (query registers late). */
65
+ export declare function subscribeToStateSnapshotProviders(listener: Listener): () => void;
66
+ export {};
67
+ //# sourceMappingURL=stateSnapshotRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateSnapshotRegistry.d.ts","sourceRoot":"","sources":["../../../../src/utils/stateSnapshotRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,IAAI,2BAA2B,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5D;;;;OAIG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/C;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAe3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CASZ;AAED,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAEnE;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAE9B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAKZ"}
@@ -1,4 +1,5 @@
1
1
  export { useFilterManager } from "./useFilterManager";
2
+ export { usePersistedState } from "./usePersistedState";
2
3
  export { useSafeAreaInsets } from "./useSafeAreaInsets";
3
4
  export { getSafeAreaInsets } from "./useSafeAreaInsets";
4
5
  export { useDeviceInfo, getDeviceInfo, logDeviceInfo, type DeviceInfo, type PlatformInfo, type DisplayInfo, type AccessibilitySettings, type AppearanceInfo, type LocaleInfo, type StatusBarInfo, type KeyboardInfo, type AppStateInfo, type UniqueIdentifiers, type SettingsInfo, } from "./useDeviceInfo";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-08-06T20:33:57.771Z
4
+ * Generated at: 2026-08-07T14:32:36.664Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `useState` persisted through `persistentStorage` (FileSystem → AsyncStorage
3
+ * → memory). Replaces the load-then-`hasLoaded`-guard `useEffect` pattern
4
+ * every tool used to hand-roll.
5
+ *
6
+ * Values are JSON-serialized; the default is returned until hydration
7
+ * completes (subsequent mounts of the same key hydrate synchronously from an
8
+ * in-memory cache). The third tuple element reports hydration so callers can
9
+ * defer writes that must not clobber a not-yet-loaded value.
10
+ *
11
+ * ```tsx
12
+ * const [tab, setTab, tabHydrated] = usePersistedState("@react_buoy_custom_flags_tab", "flags");
13
+ * ```
14
+ */
15
+ export declare function usePersistedState<T>(key: string, defaultValue: T): [T, (next: T | ((prev: T) => T)) => void, boolean];
16
+ //# sourceMappingURL=usePersistedState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePersistedState.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePersistedState.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,CAoDpD"}
@@ -2,6 +2,7 @@ export * from "./primitives";
2
2
  export { NetworkIcon, NETWORK_ICON_COLOR } from "@buoy-gg/floating-tools-core";
3
3
  export { EnvIcon, ENV_ICON_COLOR } from "@buoy-gg/floating-tools-core";
4
4
  export { ConsoleIcon, CONSOLE_ICON_COLOR } from "@buoy-gg/floating-tools-core";
5
+ export { TimeMachineIcon, TIME_MACHINE_ICON_COLOR } from "@buoy-gg/floating-tools-core";
5
6
  export { ImagesIcon, IMAGES_ICON_COLOR } from "@buoy-gg/floating-tools-core";
6
7
  export { AssetsIcon, ASSETS_ICON_COLOR } from "@buoy-gg/floating-tools-core";
7
8
  export { ImpersonateIcon, IMPERSONATE_ICON_COLOR } from "@buoy-gg/floating-tools-core";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/index.tsx"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKvE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/index.tsx"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKvE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,cAAc,gBAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export * from "./ui";
2
2
  export * from "./stores";
3
- export { absoluteFill, displayValue, parseDisplayValue, getSafeAreaInsets, persistentStorage, isUsingPersistentStorage, getStorageBackendType, safeStringify, getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstructorName, isEmpty, getValueSize, parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, loadOptionalModule, getCachedOptionalModule, setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, Subscribable, type SubscribableListener, subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, getSafeCurrentPathname, isExpoRouterAvailable, } from "./utils";
3
+ export { absoluteFill, displayValue, parseDisplayValue, getSafeAreaInsets, persistentStorage, isUsingPersistentStorage, getStorageBackendType, safeStringify, getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstructorName, isEmpty, getValueSize, parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, loadOptionalModule, getCachedOptionalModule, setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, superJsonSerialize, superJsonDeserialize, type SuperJSONResult, reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, Subscribable, type SubscribableListener, subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, getSafeCurrentPathname, isExpoRouterAvailable, } from "./utils";
4
4
  export * from "./utils/formatting";
5
5
  export * from "./utils/time";
6
6
  export { isPlainObject as isPlainObjectUtil } from "./utils/typeHelpers";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,25 @@ export declare const devToolsStorageKeys: {
29
29
  readonly dimensions: () => "@react_buoy_modal_dimensions";
30
30
  readonly hintAcknowledged: () => "@react_buoy_modal_hint_acknowledged";
31
31
  };
32
+ /**
33
+ * Namespace factory for third-party custom tools. Keys share the
34
+ * `@react_buoy` prefix, so `isDevToolsStorageKey` filtering (and the Storage
35
+ * tool's internal-key handling) covers custom-tool persistence for free.
36
+ *
37
+ * ```ts
38
+ * const keys = devToolsStorageKeys.custom("feature-flags");
39
+ * keys.modal(); // "@react_buoy_custom_feature-flags_modal"
40
+ * keys.key("overrides"); // "@react_buoy_custom_feature-flags_overrides"
41
+ * ```
42
+ */
43
+ readonly custom: (toolId: string) => {
44
+ root: () => string;
45
+ /** JsModal `persistenceKey` for this tool's window dimensions. */
46
+ modal: () => string;
47
+ settings: () => string;
48
+ /** Arbitrary tool-scoped key. */
49
+ key: (suffix: string) => string;
50
+ };
32
51
  /**
33
52
  * Settings-related storage keys
34
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
1
+ {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
  interface ModalHeaderProps {
3
3
  children: ReactNode;
4
4
  }
@@ -7,6 +7,7 @@ export declare namespace ModalHeader {
7
7
  var Navigation: typeof import("./ModalHeader").Navigation;
8
8
  var Content: typeof import("./ModalHeader").Content;
9
9
  var Actions: typeof import("./ModalHeader").Actions;
10
+ var Search: typeof HeaderSearch;
10
11
  }
11
12
  interface NavigationProps {
12
13
  onBack?: () => void;
@@ -30,5 +31,16 @@ export declare function Actions({ children }: ActionsProps): import("react").JSX
30
31
  export declare namespace Actions {
31
32
  var displayName: string;
32
33
  }
34
+ interface SearchProps {
35
+ value: string;
36
+ onChangeText: (text: string) => void;
37
+ /** Called when the user dismisses search (the inline ✕). Clear your query
38
+ * and flip your `isSearchActive` state here. */
39
+ onCancel: () => void;
40
+ placeholder?: string;
41
+ /** Focus the input as soon as it appears (default true). */
42
+ autoFocus?: boolean;
43
+ }
44
+ export declare function HeaderSearch({ value, onChangeText, onCancel, placeholder, autoFocus, }: SearchProps): import("react").JSX.Element;
33
45
  export {};
34
46
  //# sourceMappingURL=ModalHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ModalHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAEzD;yBAFe,WAAW;;;;;AAK3B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,sCAiCnF;AAGD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,YAAY,+BAoCd;AAID,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,+BAMjD;yBANe,OAAO"}
1
+ {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ModalHeader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM1D,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAEzD;yBAFe,WAAW;;;;;;AAK3B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,sCAiCnF;AAGD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,YAAY,+BAoCd;AAID,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,+BAMjD;yBANe,OAAO;;;AAYvB,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;oDACgD;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,WAAyB,EACzB,SAAgB,GACjB,EAAE,WAAW,+BAyBb"}
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from "react";
2
+ import { type ViewStyle } from "react-native";
3
+ export interface ToolButtonProps {
4
+ label: string;
5
+ onPress: () => void;
6
+ /**
7
+ * - primary: filled teal — the screen's main action
8
+ * - danger: outlined red — destructive actions (clear, delete)
9
+ * - warning: outlined amber — revert/override actions
10
+ * - ghost: borderless — secondary actions
11
+ */
12
+ variant?: "primary" | "danger" | "warning" | "ghost";
13
+ size?: "small" | "medium";
14
+ disabled?: boolean;
15
+ /** Optional leading icon element. */
16
+ icon?: ReactNode;
17
+ style?: ViewStyle;
18
+ }
19
+ /**
20
+ * The shared action button for dev-tool surfaces. Fills the gap where every
21
+ * tool hand-styled its own TouchableOpacity for "Clear", "Apply", "Reset".
22
+ */
23
+ export declare function ToolButton({ label, onPress, variant, size, disabled, icon, style, }: ToolButtonProps): import("react").JSX.Element;
24
+ //# sourceMappingURL=ToolButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ToolButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,OAAmB,EACnB,IAAe,EACf,QAAgB,EAChB,IAAI,EACJ,KAAK,GACN,EAAE,eAAe,+BAgCjB"}
@@ -12,9 +12,13 @@ export { CompactFilterChips, } from "./CompactFilterChips";
12
12
  export type { FilterChipGroup } from "./CompactFilterChips";
13
13
  export { Badge, StatusBadge, CountBadge, TypeBadge, MethodBadge, } from "./Badge";
14
14
  export { TabSelector } from "./TabSelector";
15
+ export type { Tab } from "./TabSelector";
16
+ export { ToolButton } from "./ToolButton";
17
+ export type { ToolButtonProps } from "./ToolButton";
15
18
  export { EventListItem } from "./EventListItem";
16
19
  export { StatsCard } from "./StatsCard";
17
20
  export { CompactRow } from "./CompactRow";
21
+ export type { CompactRowProps } from "./CompactRow";
18
22
  export { DevToolsCard, DEVTOOLS_CARD_CONSTANTS } from "./DevToolsCard";
19
23
  export type { DevToolsCardProps } from "./DevToolsCard";
20
24
  export { HeaderSearchButton } from "./HeaderSearchButton";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./components";
2
+ export { toolTheme, type ToolTheme } from "./toolTheme";
2
3
  export { CyberpunkSectionButton } from "./console/CyberpunkSectionButton";
3
4
  export * from "./gameUI";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,cAAc,UAAU,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { TextStyle } from "react-native";
2
+ /**
3
+ * Semantic design tokens for dev-tool surfaces — the single documented entry
4
+ * point for custom-tool authors (and, over time, internal tools).
5
+ *
6
+ * Buoy historically grew three color systems (`buoyColors`, `gameUIColors`,
7
+ * `macOSColors`) with tribal knowledge about which to use where. `toolTheme`
8
+ * encodes that knowledge: surfaces/text come from the brand palette, semantic
9
+ * status colors from the gameUI palette. Consumers should not need to know
10
+ * that split exists.
11
+ */
12
+ export declare const toolTheme: {
13
+ readonly colors: {
14
+ /** Modal/page background. */
15
+ readonly surface: "#121212";
16
+ /** Card / row background, one step above surface. */
17
+ readonly card: "#1A1A1A";
18
+ /** Pressed/hover background. */
19
+ readonly hover: "#242424";
20
+ /** Text-input background. */
21
+ readonly input: "#2A2A2A";
22
+ readonly border: "#333333";
23
+ readonly borderStrong: "#444444";
24
+ readonly text: "#E0E0E0";
25
+ readonly textSecondary: "#A0A0A0";
26
+ readonly textMuted: "#888888";
27
+ /** Buoy teal — primary accent. */
28
+ readonly accent: "#20C997";
29
+ readonly success: string;
30
+ readonly warning: string;
31
+ readonly error: string;
32
+ readonly info: string;
33
+ };
34
+ /**
35
+ * Text presets matching the styles internal tools re-declare per file.
36
+ * Spread into a style: `style={[toolTheme.text.label, { color: ... }]}`.
37
+ */
38
+ readonly text: {
39
+ /** Modal/section titles. */
40
+ readonly title: TextStyle;
41
+ /** Default body copy. */
42
+ readonly body: TextStyle;
43
+ /** Secondary copy under a primary line. */
44
+ readonly subtitle: TextStyle;
45
+ /** ALL-CAPS section labels ("LOCAL OVERRIDES"). */
46
+ readonly label: TextStyle;
47
+ /** Monospace values (keys, ids, payload snippets). */
48
+ readonly mono: TextStyle;
49
+ /** Timestamps and fine print. */
50
+ readonly small: TextStyle;
51
+ };
52
+ /** 4-based spacing scale used across tool surfaces. */
53
+ readonly spacing: {
54
+ readonly xs: 4;
55
+ readonly sm: 8;
56
+ readonly md: 12;
57
+ readonly lg: 16;
58
+ readonly xl: 24;
59
+ };
60
+ readonly radius: {
61
+ readonly sm: 6;
62
+ readonly md: 8;
63
+ readonly lg: 12;
64
+ readonly pill: 9999;
65
+ };
66
+ };
67
+ export type ToolTheme = typeof toolTheme;
68
+ //# sourceMappingURL=toolTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolTheme.d.ts","sourceRoot":"","sources":["../../../../src/ui/toolTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;QAElB,6BAA6B;;QAE7B,qDAAqD;;QAErD,gCAAgC;;QAEhC,6BAA6B;;;;;;;QAS7B,kCAAkC;;;;;;;IAQpC;;;OAGG;;QAED,4BAA4B;wBAKvB,SAAS;QACd,yBAAyB;uBAIpB,SAAS;QACd,2CAA2C;2BAItC,SAAS;QACd,mDAAmD;wBAO9C,SAAS;QACd,sDAAsD;uBAKjD,SAAS;QACd,iCAAiC;wBAK5B,SAAS;;IAGhB,uDAAuD;;;;;;;;;;;;;;CAe/C,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}