storion 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +705 -573
  2. package/dist/async/async.d.ts +87 -0
  3. package/dist/async/async.d.ts.map +1 -0
  4. package/dist/async/index.d.ts +13 -0
  5. package/dist/async/index.d.ts.map +1 -0
  6. package/dist/async/index.js +451 -0
  7. package/dist/async/types.d.ts +275 -0
  8. package/dist/async/types.d.ts.map +1 -0
  9. package/dist/collection.d.ts +42 -0
  10. package/dist/collection.d.ts.map +1 -0
  11. package/dist/core/container.d.ts +33 -2
  12. package/dist/core/container.d.ts.map +1 -1
  13. package/dist/core/createResolver.d.ts +47 -0
  14. package/dist/core/createResolver.d.ts.map +1 -0
  15. package/dist/core/equality.d.ts +23 -3
  16. package/dist/core/equality.d.ts.map +1 -1
  17. package/dist/core/fnWrapper.d.ts +54 -0
  18. package/dist/core/fnWrapper.d.ts.map +1 -0
  19. package/dist/core/pick.d.ts +6 -6
  20. package/dist/core/pick.d.ts.map +1 -1
  21. package/dist/core/store.d.ts +8 -8
  22. package/dist/core/store.d.ts.map +1 -1
  23. package/dist/core/storeContext.d.ts +63 -0
  24. package/dist/core/storeContext.d.ts.map +1 -0
  25. package/dist/devtools/controller.d.ts +4 -0
  26. package/dist/devtools/controller.d.ts.map +1 -0
  27. package/dist/devtools/index.d.ts +16 -0
  28. package/dist/devtools/index.d.ts.map +1 -0
  29. package/dist/devtools/index.js +229 -0
  30. package/dist/devtools/middleware.d.ts +22 -0
  31. package/dist/devtools/middleware.d.ts.map +1 -0
  32. package/dist/devtools/types.d.ts +116 -0
  33. package/dist/devtools/types.d.ts.map +1 -0
  34. package/dist/devtools-panel/DevtoolsPanel.d.ts +17 -0
  35. package/dist/devtools-panel/DevtoolsPanel.d.ts.map +1 -0
  36. package/dist/devtools-panel/components/CompareModal.d.ts +10 -0
  37. package/dist/devtools-panel/components/CompareModal.d.ts.map +1 -0
  38. package/dist/devtools-panel/components/EventEntry.d.ts +14 -0
  39. package/dist/devtools-panel/components/EventEntry.d.ts.map +1 -0
  40. package/dist/devtools-panel/components/EventFilterBar.d.ts +10 -0
  41. package/dist/devtools-panel/components/EventFilterBar.d.ts.map +1 -0
  42. package/dist/devtools-panel/components/EventsTab.d.ts +15 -0
  43. package/dist/devtools-panel/components/EventsTab.d.ts.map +1 -0
  44. package/dist/devtools-panel/components/ResizeHandle.d.ts +8 -0
  45. package/dist/devtools-panel/components/ResizeHandle.d.ts.map +1 -0
  46. package/dist/devtools-panel/components/StoreEntry.d.ts +13 -0
  47. package/dist/devtools-panel/components/StoreEntry.d.ts.map +1 -0
  48. package/dist/devtools-panel/components/StoresTab.d.ts +12 -0
  49. package/dist/devtools-panel/components/StoresTab.d.ts.map +1 -0
  50. package/dist/devtools-panel/components/TabLayout.d.ts +48 -0
  51. package/dist/devtools-panel/components/TabLayout.d.ts.map +1 -0
  52. package/dist/devtools-panel/components/icons.d.ts +27 -0
  53. package/dist/devtools-panel/components/icons.d.ts.map +1 -0
  54. package/dist/devtools-panel/components/index.d.ts +15 -0
  55. package/dist/devtools-panel/components/index.d.ts.map +1 -0
  56. package/dist/devtools-panel/hooks.d.ts +23 -0
  57. package/dist/devtools-panel/hooks.d.ts.map +1 -0
  58. package/dist/devtools-panel/index.d.ts +25 -0
  59. package/dist/devtools-panel/index.d.ts.map +1 -0
  60. package/dist/devtools-panel/index.js +3326 -0
  61. package/dist/devtools-panel/mount.d.ts +41 -0
  62. package/dist/devtools-panel/mount.d.ts.map +1 -0
  63. package/dist/devtools-panel/styles.d.ts +50 -0
  64. package/dist/devtools-panel/styles.d.ts.map +1 -0
  65. package/dist/devtools-panel/types.d.ts +15 -0
  66. package/dist/devtools-panel/types.d.ts.map +1 -0
  67. package/dist/devtools-panel/utils.d.ts +21 -0
  68. package/dist/devtools-panel/utils.d.ts.map +1 -0
  69. package/dist/index.d.ts +6 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/is.d.ts +69 -0
  72. package/dist/is.d.ts.map +1 -0
  73. package/dist/react/create.d.ts +1 -1
  74. package/dist/react/index.d.ts +1 -0
  75. package/dist/react/index.d.ts.map +1 -1
  76. package/dist/react/index.js +209 -33
  77. package/dist/react/useLocalStore.d.ts.map +1 -1
  78. package/dist/react/useStore.d.ts +2 -2
  79. package/dist/react/useStore.d.ts.map +1 -1
  80. package/dist/react/withStore.d.ts +140 -0
  81. package/dist/react/withStore.d.ts.map +1 -0
  82. package/dist/{index-rLf6DusB.js → store-XP2pujaJ.js} +537 -740
  83. package/dist/storion.js +740 -9
  84. package/dist/trigger.d.ts +40 -0
  85. package/dist/trigger.d.ts.map +1 -0
  86. package/dist/types.d.ts +516 -50
  87. package/dist/types.d.ts.map +1 -1
  88. package/package.json +13 -1
@@ -0,0 +1,48 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ interface SearchBarProps {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ placeholder?: string;
7
+ autoFocus?: boolean;
8
+ }
9
+ export declare const SearchBar: import('react').NamedExoticComponent<SearchBarProps>;
10
+ interface FilterItem {
11
+ key: string;
12
+ label: string;
13
+ count?: number;
14
+ active?: boolean;
15
+ }
16
+ interface FilterBarProps {
17
+ filters: FilterItem[];
18
+ onToggle: (key: string) => void;
19
+ }
20
+ export declare const FilterBar: import('react').NamedExoticComponent<FilterBarProps>;
21
+ interface ActionItem {
22
+ key: string;
23
+ label: string;
24
+ icon?: ReactNode;
25
+ onClick: () => void;
26
+ disabled?: boolean;
27
+ }
28
+ interface ActionBarProps {
29
+ actions: ActionItem[];
30
+ }
31
+ export declare const ActionBar: import('react').NamedExoticComponent<ActionBarProps>;
32
+ interface MainContentProps {
33
+ children: ReactNode;
34
+ isEmpty?: boolean;
35
+ emptyIcon?: string;
36
+ emptyMessage?: string;
37
+ emptyHint?: string;
38
+ }
39
+ export declare const MainContent: import('react').NamedExoticComponent<MainContentProps>;
40
+ interface TabContentProps {
41
+ searchBar?: ReactNode;
42
+ filterBar?: ReactNode;
43
+ actionBar?: ReactNode;
44
+ children: ReactNode;
45
+ }
46
+ export declare const TabContent: import('react').NamedExoticComponent<TabContentProps>;
47
+ export {};
48
+ //# sourceMappingURL=TabLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabLayout.d.ts","sourceRoot":"","sources":["../../../src/devtools-panel/components/TabLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA0C1D,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,sDAmCpB,CAAC;AAMH,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,SAAS,sDAsBpB,CAAC;AAMH,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,sDAmBpB,CAAC;AAMH,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,wDAoBtB,CAAC;AAMH,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,uDAcrB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Devtools Icons
3
+ *
4
+ * Inline SVG icons for the devtools panel.
5
+ */
6
+ export declare const IconChevron: ({ open }: {
7
+ open: boolean;
8
+ }) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const IconStore: () => import("react/jsx-runtime").JSX.Element;
10
+ export declare const IconMinimize: () => import("react/jsx-runtime").JSX.Element;
11
+ export declare const IconTransparency: () => import("react/jsx-runtime").JSX.Element;
12
+ export declare const IconDockLeft: () => import("react/jsx-runtime").JSX.Element;
13
+ export declare const IconDockBottom: () => import("react/jsx-runtime").JSX.Element;
14
+ export declare const IconDockRight: () => import("react/jsx-runtime").JSX.Element;
15
+ export declare const IconCopy: () => import("react/jsx-runtime").JSX.Element;
16
+ export declare const IconClear: () => import("react/jsx-runtime").JSX.Element;
17
+ export declare const IconActivity: () => import("react/jsx-runtime").JSX.Element;
18
+ export declare const IconExpandAll: () => import("react/jsx-runtime").JSX.Element;
19
+ export declare const IconCollapseAll: () => import("react/jsx-runtime").JSX.Element;
20
+ export declare const IconReplay: () => import("react/jsx-runtime").JSX.Element;
21
+ export declare const IconEdit: () => import("react/jsx-runtime").JSX.Element;
22
+ export declare const IconSave: () => import("react/jsx-runtime").JSX.Element;
23
+ export declare const IconCancel: () => import("react/jsx-runtime").JSX.Element;
24
+ export declare const IconEvents: () => import("react/jsx-runtime").JSX.Element;
25
+ export declare const IconCompare: () => import("react/jsx-runtime").JSX.Element;
26
+ export declare const IconRevert: () => import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/devtools-panel/components/icons.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,WAAW,GAAI,UAAU;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,4CAetD,CAAC;AAEF,eAAO,MAAM,SAAS,+CAarB,CAAC;AAEF,eAAO,MAAM,YAAY,+CAWxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAY5B,CAAC;AAEF,eAAO,MAAM,YAAY,+CAYxB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAY1B,CAAC;AAEF,eAAO,MAAM,aAAa,+CAYzB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAYpB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAWrB,CAAC;AAEF,eAAO,MAAM,YAAY,+CAYxB,CAAC;AAEF,eAAO,MAAM,aAAa,+CAczB,CAAC;AAEF,eAAO,MAAM,eAAe,+CAc3B,CAAC;AAEF,eAAO,MAAM,UAAU,+CAWtB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAYpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAWpB,CAAC;AAEF,eAAO,MAAM,UAAU,+CAYtB,CAAC;AAEF,eAAO,MAAM,UAAU,+CAgBtB,CAAC;AAEF,eAAO,MAAM,WAAW,+CAavB,CAAC;AAEF,eAAO,MAAM,UAAU,+CAYtB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Devtools Components Index
3
+ *
4
+ * Re-exports all components for easy importing.
5
+ */
6
+ export * from './icons';
7
+ export * from './TabLayout';
8
+ export * from './StoreEntry';
9
+ export * from './EventEntry';
10
+ export * from './EventFilterBar';
11
+ export * from './CompareModal';
12
+ export * from './ResizeHandle';
13
+ export * from './StoresTab';
14
+ export * from './EventsTab';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/devtools-panel/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { DevtoolsEventType } from '../devtools/types';
2
+
3
+ export type TabId = "stores" | "events";
4
+ export interface DevtoolsSettings {
5
+ activeTab: TabId;
6
+ collapsed: boolean;
7
+ size: number;
8
+ position: "left" | "bottom";
9
+ storeSearchQuery: string;
10
+ eventSearchQuery: string;
11
+ eventFilters: DevtoolsEventType[] | null;
12
+ sortByActivity: boolean;
13
+ }
14
+ /** Clear all devtools settings from localStorage */
15
+ export declare function clearDevtoolsSettings(): void;
16
+ /**
17
+ * Hook to persist a single setting to localStorage
18
+ */
19
+ export declare function usePersistentState<T>(key: keyof DevtoolsSettings, initialValue: T, transform?: {
20
+ toStorage?: (value: T) => unknown;
21
+ fromStorage?: (stored: unknown) => T;
22
+ }): [T, (value: T | ((prev: T) => T)) => void];
23
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/devtools-panel/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQ3D,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,OAAO,CAAC;CACzB;AAwBD,oDAAoD;AACpD,wBAAgB,qBAAqB,IAAI,IAAI,CAM5C;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,gBAAgB,EAC3B,YAAY,EAAE,CAAC,EACf,SAAS,CAAC,EAAE;IACV,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC;CACtC,GACA,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAwB5C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Storion Devtools Panel
3
+ *
4
+ * UI components for the devtools panel.
5
+ * Renders in its own React root, separate from the main app.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { mountDevtoolsPanel } from "storion/devtools-panel";
10
+ *
11
+ * // Mount devtools panel
12
+ * mountDevtoolsPanel();
13
+ *
14
+ * // Or with options
15
+ * mountDevtoolsPanel({
16
+ * position: "right", // "left" | "right" | "bottom"
17
+ * size: 400,
18
+ * });
19
+ * ```
20
+ */
21
+ export { DevtoolsPanel, clearDevtoolsSettings, type DevtoolsPanelProps, type PanelPosition, } from './DevtoolsPanel';
22
+ export { mountDevtoolsPanel, unmountDevtoolsPanel, toggleDevtoolsPanel, type MountOptions, } from './mount';
23
+ export { SearchBar, FilterBar, ActionBar, MainContent, TabContent, } from './components/TabLayout';
24
+ export type { Tab, PanelState } from './types';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools-panel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}