react-cosmos-core 6.0.0-canary.fe0c7d1.0 → 6.0.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 (158) hide show
  1. package/dist/fixtureState/classState.d.ts +11 -10
  2. package/dist/fixtureState/classState.js +16 -25
  3. package/dist/fixtureState/classStateTypes.d.ts +7 -0
  4. package/dist/fixtureState/controlsTypes.d.ts +14 -0
  5. package/dist/fixtureState/fixtureState.d.ts +6 -0
  6. package/dist/fixtureState/fixtureState.js +21 -0
  7. package/dist/fixtureState/props.d.ts +15 -14
  8. package/dist/fixtureState/props.js +20 -25
  9. package/dist/fixtureState/propsTypes.d.ts +9 -0
  10. package/dist/fixtureState/types.d.ts +2 -31
  11. package/dist/fixtureState/viewport.d.ts +5 -0
  12. package/dist/fixtureTree/createFixtureTree/collapseNamedIndexes.js +6 -2
  13. package/dist/fixtureTree/createFixtureTree/createRawFixtureTree.d.ts +1 -1
  14. package/dist/fixtureTree/createFixtureTree/createRawFixtureTree.js +1 -1
  15. package/dist/fixtureTree/createFixtureTree/index.d.ts +1 -1
  16. package/dist/fixtureTree/flattenFixtureTree.d.ts +1 -1
  17. package/dist/index.d.ts +28 -20
  18. package/dist/index.js +28 -20
  19. package/dist/playground/playgroundParams.d.ts +4 -0
  20. package/dist/playground/playgroundQueryString.d.ts +3 -0
  21. package/dist/playground/playgroundQueryString.js +21 -0
  22. package/dist/{renderer → playground}/registerPlaygroundShortcuts.js +10 -6
  23. package/dist/renderer/rendererConfig.d.ts +1 -0
  24. package/dist/renderer/{rendererConnectTypes.d.ts → rendererConnect.d.ts} +11 -14
  25. package/dist/renderer/rendererConnect.js +1 -0
  26. package/dist/renderer/rendererQueryString.d.ts +12 -0
  27. package/dist/renderer/rendererQueryString.js +27 -0
  28. package/dist/renderer/rendererUrl.d.ts +9 -0
  29. package/dist/renderer/rendererUrl.js +42 -0
  30. package/dist/server/serverTypes.d.ts +1 -0
  31. package/dist/server/serverTypes.js +1 -0
  32. package/dist/userModules/fixtureTypes.js +1 -0
  33. package/dist/userModules/getFixtureFromExport.d.ts +2 -0
  34. package/dist/{renderer/getFixture.js → userModules/getFixtureFromExport.js} +1 -1
  35. package/dist/{renderer → userModules}/getFixtureList.d.ts +1 -1
  36. package/dist/userModules/stringifyFixtureId.d.ts +2 -0
  37. package/dist/userModules/stringifyFixtureId.js +4 -0
  38. package/dist/{renderer → userModules}/userModuleTypes.d.ts +0 -5
  39. package/dist/userModules/userModuleTypes.js +1 -0
  40. package/dist/utils/queryString.d.ts +2 -0
  41. package/dist/utils/queryString.js +7 -0
  42. package/dist/utils/react/ClassStateMock.d.ts +2 -1
  43. package/dist/utils/react/ClassStateMock.js +1 -2
  44. package/dist/utils/react/DelayRender.d.ts +7 -0
  45. package/dist/utils/react/DelayRender.js +10 -0
  46. package/dist/utils/state.js +1 -0
  47. package/dist/utils/string.d.ts +0 -2
  48. package/dist/utils/string.js +0 -6
  49. package/dist/utils/window.d.ts +1 -0
  50. package/dist/utils/window.js +8 -0
  51. package/package.json +6 -5
  52. package/dist/fixture/FixtureContext.d.ts +0 -7
  53. package/dist/fixture/FixtureContext.js +0 -5
  54. package/dist/fixture/Viewport.d.ts +0 -8
  55. package/dist/fixture/Viewport.js +0 -19
  56. package/dist/fixture/useSelect/index.d.ts +0 -2
  57. package/dist/fixture/useSelect/index.js +0 -11
  58. package/dist/fixture/useSelect/shared.d.ts +0 -6
  59. package/dist/fixture/useSelect/shared.js +0 -3
  60. package/dist/fixture/useSelect/useCreateFixtureState.d.ts +0 -2
  61. package/dist/fixture/useSelect/useCreateFixtureState.js +0 -32
  62. package/dist/fixture/useSelect/useCurrentValue.d.ts +0 -2
  63. package/dist/fixture/useSelect/useCurrentValue.js +0 -11
  64. package/dist/fixture/useSelect/useSetValue.d.ts +0 -2
  65. package/dist/fixture/useSelect/useSetValue.js +0 -25
  66. package/dist/fixture/useValue/index.d.ts +0 -7
  67. package/dist/fixture/useValue/index.js +0 -9
  68. package/dist/fixture/useValue/shared.d.ts +0 -3
  69. package/dist/fixture/useValue/useCreateFixtureState.d.ts +0 -2
  70. package/dist/fixture/useValue/useCreateFixtureState.js +0 -35
  71. package/dist/fixture/useValue/useCurrentValue.d.ts +0 -2
  72. package/dist/fixture/useValue/useCurrentValue.js +0 -13
  73. package/dist/fixture/useValue/useSetValue.d.ts +0 -3
  74. package/dist/fixture/useValue/useSetValue.js +0 -36
  75. package/dist/fixtureState/controls.d.ts +0 -2
  76. package/dist/fixtureState/controls.js +0 -4
  77. package/dist/playground/playgroundUrl.d.ts +0 -13
  78. package/dist/playground/playgroundUrl.js +0 -36
  79. package/dist/renderer/DecoratedFixture.d.ts +0 -14
  80. package/dist/renderer/DecoratedFixture.js +0 -33
  81. package/dist/renderer/FixtureCapture/classState/decorateFixtureRefs/index.d.ts +0 -5
  82. package/dist/renderer/FixtureCapture/classState/decorateFixtureRefs/index.js +0 -46
  83. package/dist/renderer/FixtureCapture/classState/decorateFixtureRefs/isRefSupported.d.ts +0 -4
  84. package/dist/renderer/FixtureCapture/classState/decorateFixtureRefs/isRefSupported.js +0 -19
  85. package/dist/renderer/FixtureCapture/classState/index.d.ts +0 -3
  86. package/dist/renderer/FixtureCapture/classState/index.js +0 -13
  87. package/dist/renderer/FixtureCapture/classState/shared.d.ts +0 -18
  88. package/dist/renderer/FixtureCapture/classState/shared.js +0 -14
  89. package/dist/renderer/FixtureCapture/classState/useFixtureState.d.ts +0 -4
  90. package/dist/renderer/FixtureCapture/classState/useFixtureState.js +0 -156
  91. package/dist/renderer/FixtureCapture/classState/useReadClassState.d.ts +0 -4
  92. package/dist/renderer/FixtureCapture/classState/useReadClassState.js +0 -60
  93. package/dist/renderer/FixtureCapture/index.d.ts +0 -7
  94. package/dist/renderer/FixtureCapture/index.js +0 -9
  95. package/dist/renderer/FixtureCapture/props/index.d.ts +0 -3
  96. package/dist/renderer/FixtureCapture/props/index.js +0 -77
  97. package/dist/renderer/FixtureCapture/props/useFixtureProps.d.ts +0 -3
  98. package/dist/renderer/FixtureCapture/props/useFixtureProps.js +0 -70
  99. package/dist/renderer/FixtureCapture/shared/findRelevantElementPaths.d.ts +0 -2
  100. package/dist/renderer/FixtureCapture/shared/findRelevantElementPaths.js +0 -23
  101. package/dist/renderer/FixtureCapture/shared/nodeTree/findElementPaths.d.ts +0 -2
  102. package/dist/renderer/FixtureCapture/shared/nodeTree/findElementPaths.js +0 -22
  103. package/dist/renderer/FixtureCapture/shared/nodeTree/getElementAtPath.d.ts +0 -3
  104. package/dist/renderer/FixtureCapture/shared/nodeTree/getElementAtPath.js +0 -26
  105. package/dist/renderer/FixtureCapture/shared/nodeTree/index.d.ts +0 -11
  106. package/dist/renderer/FixtureCapture/shared/nodeTree/index.js +0 -11
  107. package/dist/renderer/FixtureCapture/shared/nodeTree/setElementAtPath.d.ts +0 -2
  108. package/dist/renderer/FixtureCapture/shared/nodeTree/setElementAtPath.js +0 -35
  109. package/dist/renderer/FixtureCapture/shared/nodeTree/shared.d.ts +0 -2
  110. package/dist/renderer/FixtureCapture/shared/nodeTree/shared.js +0 -6
  111. package/dist/renderer/FixtureConnect.d.ts +0 -17
  112. package/dist/renderer/FixtureConnect.js +0 -27
  113. package/dist/renderer/FixtureLoader.d.ts +0 -17
  114. package/dist/renderer/FixtureLoader.js +0 -16
  115. package/dist/renderer/FixtureStateChangeResponse.d.ts +0 -11
  116. package/dist/renderer/FixtureStateChangeResponse.js +0 -34
  117. package/dist/renderer/LazyFixtureListItemUpdate.d.ts +0 -10
  118. package/dist/renderer/LazyFixtureListItemUpdate.js +0 -15
  119. package/dist/renderer/LazyFixtureLoader.d.ts +0 -20
  120. package/dist/renderer/LazyFixtureLoader.js +0 -22
  121. package/dist/renderer/createPostMessageConnect.d.ts +0 -2
  122. package/dist/renderer/createPostMessageConnect.js +0 -22
  123. package/dist/renderer/createWebSocketsConnect.d.ts +0 -2
  124. package/dist/renderer/createWebSocketsConnect.js +0 -32
  125. package/dist/renderer/getDecoratedFixtureElement/FixtureElement.d.ts +0 -9
  126. package/dist/renderer/getDecoratedFixtureElement/FixtureElement.js +0 -5
  127. package/dist/renderer/getDecoratedFixtureElement/index.d.ts +0 -3
  128. package/dist/renderer/getDecoratedFixtureElement/index.js +0 -15
  129. package/dist/renderer/getFixture.d.ts +0 -2
  130. package/dist/renderer/useFixtureModules.d.ts +0 -2
  131. package/dist/renderer/useFixtureModules.js +0 -10
  132. package/dist/renderer/useLazyFixtureModules.d.ts +0 -2
  133. package/dist/renderer/useLazyFixtureModules.js +0 -24
  134. package/dist/renderer/useRendererRequest.d.ts +0 -5
  135. package/dist/renderer/useRendererRequest.js +0 -81
  136. package/dist/renderer/useRendererResponse.d.ts +0 -4
  137. package/dist/renderer/useRendererResponse.js +0 -23
  138. package/dist/renderer/useSelectedFixture.d.ts +0 -14
  139. package/dist/renderer/useSelectedFixture.js +0 -31
  140. package/dist/{fixture/types.js → fixtureState/classStateTypes.js} +0 -0
  141. package/dist/{fixture/useValue/shared.js → fixtureState/controlsTypes.js} +0 -0
  142. package/dist/{renderer/rendererConnectTypes.js → fixtureState/propsTypes.js} +0 -0
  143. package/dist/{renderer/userModuleTypes.js → fixtureState/viewport.js} +0 -0
  144. package/dist/{server → message}/serverMessage.d.ts +0 -0
  145. package/dist/{server → message}/serverMessage.js +0 -0
  146. package/dist/{server → message}/socketMessage.d.ts +0 -0
  147. package/dist/{server → message}/socketMessage.js +0 -0
  148. package/dist/{server/cosmosPluginConfig.js → playground/playgroundParams.js} +0 -0
  149. package/dist/{renderer → playground}/registerPlaygroundShortcuts.d.ts +0 -0
  150. package/dist/{server → plugin}/cosmosPluginConfig.d.ts +2 -2
  151. /package/dist/{utils/types.js → plugin/cosmosPluginConfig.js} +0 -0
  152. /package/dist/{fixture/types.d.ts → userModules/fixtureTypes.d.ts} +0 -0
  153. /package/dist/{renderer → userModules}/getFixtureList.js +0 -0
  154. /package/dist/{renderer → userModules}/getSortedDecoratorsForFixturePath.d.ts +0 -0
  155. /package/dist/{renderer → userModules}/getSortedDecoratorsForFixturePath.js +0 -0
  156. /package/dist/{renderer → userModules}/isMultiFixture.d.ts +0 -0
  157. /package/dist/{renderer → userModules}/isMultiFixture.js +0 -0
  158. /package/dist/utils/{types.d.ts → state.d.ts} +0 -0
@@ -1,22 +1,23 @@
1
- import { FixtureDecoratorId, FixtureElementId, FixtureState, FixtureStateClassState, FixtureStateValues } from './types.js';
2
- export declare function getFixtureStateClassState(fixtureState: FixtureState, decoratorId: FixtureDecoratorId): FixtureStateClassState[];
3
- export declare function findFixtureStateClassState(fixtureState: FixtureState, elementId: FixtureElementId): void | FixtureStateClassState;
4
- type CreateFixtureStateClassStateArgs = {
5
- fixtureState: FixtureState;
1
+ import { ClassStateFixtureState, ClassStateFixtureStateItem } from './classStateTypes.js';
2
+ import { FixtureDecoratorId, FixtureElementId, FixtureStateValues } from './types.js';
3
+ export declare function filterClassStateFixtureState(classStateFs: ClassStateFixtureState | undefined, decoratorId: FixtureDecoratorId): ClassStateFixtureState;
4
+ export declare function findClassStateFixtureStateItem(classStateFs: ClassStateFixtureState | undefined, elementId: FixtureElementId): void | ClassStateFixtureStateItem;
5
+ type CreateClassStateFixtureStateArgs = {
6
+ classStateFs: ClassStateFixtureState | undefined;
6
7
  elementId: FixtureElementId;
7
8
  values: FixtureStateValues;
8
9
  componentName: string;
9
10
  };
10
- export declare function createFixtureStateClassState({ fixtureState, elementId, values, componentName, }: CreateFixtureStateClassStateArgs): {
11
+ export declare function createClassStateFixtureStateItem({ classStateFs, elementId, values, componentName, }: CreateClassStateFixtureStateArgs): {
11
12
  elementId: FixtureElementId;
12
13
  values: FixtureStateValues;
13
14
  componentName: string;
14
15
  }[];
15
- type UpdateFixtureStateClassStateArgs = {
16
- fixtureState: FixtureState;
16
+ type UpdateClassStateFixtureStateArgs = {
17
+ classStateFs: ClassStateFixtureState | undefined;
17
18
  elementId: FixtureElementId;
18
19
  values: FixtureStateValues;
19
20
  };
20
- export declare function updateFixtureStateClassState({ fixtureState, elementId, values, }: UpdateFixtureStateClassStateArgs): FixtureStateClassState[];
21
- export declare function removeFixtureStateClassState(fixtureState: FixtureState, elementId: FixtureElementId): FixtureStateClassState[];
21
+ export declare function updateClassStateFixtureStateItem({ classStateFs, elementId, values, }: UpdateClassStateFixtureStateArgs): ClassStateFixtureStateItem[];
22
+ export declare function removeClassStateFixtureStateItem(classStateFs: ClassStateFixtureState | undefined, elementId: FixtureElementId): ClassStateFixtureStateItem[];
22
23
  export {};
@@ -1,40 +1,31 @@
1
1
  import { find, isEqual } from 'lodash-es';
2
2
  import { removeItemMatch, replaceOrAddItem, updateItem, } from '../utils/array.js';
3
- export function getFixtureStateClassState(fixtureState, decoratorId) {
4
- const { classState } = fixtureState;
5
- return classState
6
- ? classState.filter(s => s.elementId.decoratorId === decoratorId)
3
+ export function filterClassStateFixtureState(classStateFs, decoratorId) {
4
+ return classStateFs
5
+ ? classStateFs.filter(s => s.elementId.decoratorId === decoratorId)
7
6
  : [];
8
7
  }
9
- export function findFixtureStateClassState(fixtureState, elementId) {
10
- const { classState } = fixtureState;
11
- return classState && find(classState, s => isEqual(s.elementId, elementId));
8
+ export function findClassStateFixtureStateItem(classStateFs, elementId) {
9
+ return (classStateFs && find(classStateFs, s => isEqual(s.elementId, elementId)));
12
10
  }
13
- export function createFixtureStateClassState({ fixtureState, elementId, values, componentName, }) {
14
- const { classState = [] } = fixtureState;
15
- return replaceOrAddItem(classState, createClassStateMatcher(elementId), {
16
- elementId,
17
- values,
18
- componentName,
19
- });
11
+ export function createClassStateFixtureStateItem({ classStateFs, elementId, values, componentName, }) {
12
+ return replaceOrAddItem(classStateFs ?? [], createClassStateMatcher(elementId), { elementId, values, componentName });
20
13
  }
21
- export function updateFixtureStateClassState({ fixtureState, elementId, values, }) {
22
- const classStateItem = expectFixtureStateClassState(fixtureState, elementId);
23
- return updateItem(fixtureState.classState, classStateItem, {
24
- values,
25
- });
14
+ export function updateClassStateFixtureStateItem({ classStateFs, elementId, values, }) {
15
+ const item = expectClassStateItem(classStateFs, elementId);
16
+ return updateItem(classStateFs, item, { values });
26
17
  }
27
- export function removeFixtureStateClassState(fixtureState, elementId) {
28
- return removeItemMatch(fixtureState.classState || [], createClassStateMatcher(elementId));
18
+ export function removeClassStateFixtureStateItem(classStateFs, elementId) {
19
+ return removeItemMatch(classStateFs ?? [], createClassStateMatcher(elementId));
29
20
  }
30
21
  function createClassStateMatcher(elementId) {
31
22
  return (p) => isEqual(p.elementId, elementId);
32
23
  }
33
- function expectFixtureStateClassState(fixtureState, elementId) {
34
- const classStateItem = findFixtureStateClassState(fixtureState, elementId);
35
- if (!classStateItem) {
24
+ function expectClassStateItem(classStateFs, elementId) {
25
+ const item = findClassStateFixtureStateItem(classStateFs, elementId);
26
+ if (!item) {
36
27
  const elId = JSON.stringify(elementId);
37
28
  throw new Error(`Fixture state class state missing for element "${elId}"`);
38
29
  }
39
- return classStateItem;
30
+ return item;
40
31
  }
@@ -0,0 +1,7 @@
1
+ import { FixtureElementId, FixtureStateValues } from './types.js';
2
+ export type ClassStateFixtureStateItem = {
3
+ elementId: FixtureElementId;
4
+ values: FixtureStateValues;
5
+ componentName: string;
6
+ };
7
+ export type ClassStateFixtureState = ClassStateFixtureStateItem[];
@@ -0,0 +1,14 @@
1
+ import { FixtureStateValue } from './types.js';
2
+ export type StandardControlFixtureState = {
3
+ type: 'standard';
4
+ defaultValue: FixtureStateValue;
5
+ currentValue: FixtureStateValue;
6
+ };
7
+ export type SelectControlFixtureState = {
8
+ type: 'select';
9
+ options: string[];
10
+ defaultValue: string;
11
+ currentValue: string;
12
+ };
13
+ export type ControlFixtureState = StandardControlFixtureState | SelectControlFixtureState;
14
+ export type ControlsFixtureState = Record<string, ControlFixtureState>;
@@ -0,0 +1,6 @@
1
+ import { FixtureState } from './types.js';
2
+ export type FixtureStateUpdater<T> = (prevState: T | undefined) => T;
3
+ export type FixtureStateChange<T> = T | FixtureStateUpdater<T>;
4
+ export declare function fixtureStateByName<T>(fixtureState: FixtureState, name: string): T | undefined;
5
+ export declare function updateFixtureState<T>(fixtureState: FixtureState, name: string, change: FixtureStateChange<T>): FixtureState;
6
+ export declare function applyFixtureStateChange<T>(prevState: T | undefined, change: FixtureStateChange<T>): T;
@@ -0,0 +1,21 @@
1
+ export function fixtureStateByName(fixtureState, name) {
2
+ return fixtureState[name];
3
+ }
4
+ export function updateFixtureState(fixtureState, name, change) {
5
+ const prevFs = fixtureStateByName(fixtureState, name);
6
+ const nextFs = applyFixtureStateChange(prevFs, change);
7
+ // Avoid unnecessary state updates
8
+ if (nextFs === prevFs) {
9
+ return fixtureState;
10
+ }
11
+ return {
12
+ ...fixtureState,
13
+ [name]: nextFs,
14
+ };
15
+ }
16
+ export function applyFixtureStateChange(prevState, change) {
17
+ return isStateUpdater(change) ? change(prevState) : change;
18
+ }
19
+ function isStateUpdater(change) {
20
+ return typeof change === 'function';
21
+ }
@@ -1,30 +1,31 @@
1
- import { FixtureDecoratorId, FixtureElementId, FixtureRenderKey, FixtureState, FixtureStateProps, FixtureStateValues } from './types.js';
2
- export declare const DEFAULT_RENDER_KEY: FixtureRenderKey;
3
- export declare function getFixtureStateProps(fixtureState: FixtureState, decoratorId: FixtureDecoratorId): FixtureStateProps[];
4
- export declare function findFixtureStateProps(fixtureState: FixtureState, elementId: FixtureElementId): void | FixtureStateProps;
5
- type CreateFixtureStatePropsArgs = {
6
- fixtureState: FixtureState;
1
+ import { PropsFixtureState, PropsFixtureStateItem, PropsFixtureStateRenderKey } from './propsTypes.js';
2
+ import { FixtureDecoratorId, FixtureElementId, FixtureStateValues } from './types.js';
3
+ export declare const DEFAULT_RENDER_KEY: PropsFixtureStateRenderKey;
4
+ export declare function filterPropsFixtureState(propsFs: PropsFixtureState | undefined, decoratorId: FixtureDecoratorId): PropsFixtureState;
5
+ export declare function findPropsFixtureStateItem(propsFs: PropsFixtureState | undefined, elementId: FixtureElementId): void | PropsFixtureStateItem;
6
+ type CreatePropsFixtureStateArgs = {
7
+ propsFs: PropsFixtureState | undefined;
7
8
  elementId: FixtureElementId;
8
9
  values: FixtureStateValues;
9
10
  componentName: string;
10
11
  };
11
- export declare function createFixtureStateProps({ fixtureState, elementId, values, componentName, }: CreateFixtureStatePropsArgs): {
12
+ export declare function createPropsFixtureStateItem({ propsFs, elementId, values, componentName, }: CreatePropsFixtureStateArgs): {
12
13
  elementId: FixtureElementId;
13
14
  values: FixtureStateValues;
14
15
  renderKey: number;
15
16
  componentName: string;
16
17
  }[];
17
- type ResetFixtureStatePropsArgs = {
18
- fixtureState: FixtureState;
18
+ type ResetPropsFixtureStateItemArgs = {
19
+ propsFs: PropsFixtureState | undefined;
19
20
  elementId: FixtureElementId;
20
21
  values: FixtureStateValues;
21
22
  };
22
- export declare function resetFixtureStateProps({ fixtureState, elementId, values, }: ResetFixtureStatePropsArgs): FixtureStateProps[];
23
- type UpdateFixtureStatePropsArgs = {
24
- fixtureState: FixtureState;
23
+ export declare function resetPropsFixtureStateItem({ propsFs, elementId, values, }: ResetPropsFixtureStateItemArgs): PropsFixtureStateItem[];
24
+ type UpdatePropsFixtureStateItemArgs = {
25
+ propsFs: PropsFixtureState | undefined;
25
26
  elementId: FixtureElementId;
26
27
  values: FixtureStateValues;
27
28
  };
28
- export declare function updateFixtureStateProps({ fixtureState, elementId, values, }: UpdateFixtureStatePropsArgs): FixtureStateProps[];
29
- export declare function removeFixtureStateProps(fixtureState: FixtureState, elementId: FixtureElementId): FixtureStateProps[];
29
+ export declare function updatePropsFixtureStateItem({ propsFs, elementId, values, }: UpdatePropsFixtureStateItemArgs): PropsFixtureStateItem[];
30
+ export declare function removePropsFixtureStateItem(propsFs: PropsFixtureState | undefined, elementId: FixtureElementId): PropsFixtureStateItem[];
30
31
  export {};
@@ -1,49 +1,44 @@
1
1
  import { find, isEqual } from 'lodash-es';
2
2
  import { removeItemMatch, replaceOrAddItem, updateItem, } from '../utils/array.js';
3
3
  export const DEFAULT_RENDER_KEY = 0;
4
- export function getFixtureStateProps(fixtureState, decoratorId) {
5
- const { props } = fixtureState;
6
- return props
7
- ? props.filter(p => p.elementId.decoratorId === decoratorId)
4
+ export function filterPropsFixtureState(propsFs, decoratorId) {
5
+ return propsFs
6
+ ? propsFs.filter(p => p.elementId.decoratorId === decoratorId)
8
7
  : [];
9
8
  }
10
- export function findFixtureStateProps(fixtureState, elementId) {
11
- const { props } = fixtureState;
12
- return props && find(props, p => isEqual(p.elementId, elementId));
9
+ export function findPropsFixtureStateItem(propsFs, elementId) {
10
+ return propsFs && find(propsFs, p => isEqual(p.elementId, elementId));
13
11
  }
14
- export function createFixtureStateProps({ fixtureState, elementId, values, componentName, }) {
15
- const { props = [] } = fixtureState;
16
- return replaceOrAddItem(props, createPropsMatcher(elementId), {
12
+ export function createPropsFixtureStateItem({ propsFs, elementId, values, componentName, }) {
13
+ return replaceOrAddItem(propsFs ?? [], createPropsMatcher(elementId), {
17
14
  elementId,
18
15
  values,
19
16
  renderKey: DEFAULT_RENDER_KEY,
20
17
  componentName,
21
18
  });
22
19
  }
23
- export function resetFixtureStateProps({ fixtureState, elementId, values, }) {
24
- const propsItem = expectFixtureStateProps(fixtureState, elementId);
25
- return updateItem(fixtureState.props, propsItem, {
20
+ export function resetPropsFixtureStateItem({ propsFs, elementId, values, }) {
21
+ const item = expectPropsItem(propsFs, elementId);
22
+ return updateItem(propsFs, item, {
26
23
  values,
27
- renderKey: propsItem.renderKey + 1,
24
+ renderKey: item.renderKey + 1,
28
25
  });
29
26
  }
30
- export function updateFixtureStateProps({ fixtureState, elementId, values, }) {
31
- const propsItem = expectFixtureStateProps(fixtureState, elementId);
32
- return updateItem(fixtureState.props, propsItem, {
33
- values,
34
- });
27
+ export function updatePropsFixtureStateItem({ propsFs, elementId, values, }) {
28
+ const item = expectPropsItem(propsFs, elementId);
29
+ return updateItem(propsFs, item, { values });
35
30
  }
36
- export function removeFixtureStateProps(fixtureState, elementId) {
37
- return removeItemMatch(fixtureState.props || [], createPropsMatcher(elementId));
31
+ export function removePropsFixtureStateItem(propsFs, elementId) {
32
+ return removeItemMatch(propsFs ?? [], createPropsMatcher(elementId));
38
33
  }
39
34
  function createPropsMatcher(elementId) {
40
35
  return (p) => isEqual(p.elementId, elementId);
41
36
  }
42
- function expectFixtureStateProps(fixtureState, elementId) {
43
- const propsItem = findFixtureStateProps(fixtureState, elementId);
44
- if (!propsItem) {
37
+ function expectPropsItem(propsFs, elementId) {
38
+ const item = findPropsFixtureStateItem(propsFs, elementId);
39
+ if (!item) {
45
40
  const elId = JSON.stringify(elementId);
46
41
  throw new Error(`Fixture state props missing for element "${elId}"`);
47
42
  }
48
- return propsItem;
43
+ return item;
49
44
  }
@@ -0,0 +1,9 @@
1
+ import { FixtureElementId, FixtureStateValues } from './types.js';
2
+ export type PropsFixtureStateRenderKey = number;
3
+ export type PropsFixtureStateItem = {
4
+ elementId: FixtureElementId;
5
+ values: FixtureStateValues;
6
+ renderKey: PropsFixtureStateRenderKey;
7
+ componentName: string;
8
+ };
9
+ export type PropsFixtureState = PropsFixtureStateItem[];
@@ -1,4 +1,4 @@
1
- import { StateUpdater } from '../utils/types.js';
1
+ import { StateUpdater } from '../utils/state.js';
2
2
  export type FixtureDecoratorId = string;
3
3
  export type FixtureElementId = {
4
4
  decoratorId: string;
@@ -26,34 +26,5 @@ export type FixtureStateArrayValue = {
26
26
  };
27
27
  export type FixtureStateValue = FixtureStateUnserializableValue | FixtureStatePrimitiveValue | FixtureStateObjectValue | FixtureStateArrayValue;
28
28
  export type FixtureStateValues = Record<string, FixtureStateValue>;
29
- export type FixtureRenderKey = number;
30
- export type FixtureStateProps = {
31
- elementId: FixtureElementId;
32
- values: FixtureStateValues;
33
- renderKey: FixtureRenderKey;
34
- componentName: string;
35
- };
36
- export type FixtureStateClassState = {
37
- elementId: FixtureElementId;
38
- values: FixtureStateValues;
39
- componentName: string;
40
- };
41
- export type FixtureStateStandardControl = {
42
- type: 'standard';
43
- defaultValue: FixtureStateValue;
44
- currentValue: FixtureStateValue;
45
- };
46
- export type FixtureStateSelectControl = {
47
- type: 'select';
48
- options: string[];
49
- defaultValue: string;
50
- currentValue: string;
51
- };
52
- export type FixtureStateControl = FixtureStateStandardControl | FixtureStateSelectControl;
53
- export type FixtureStateControls = Record<string, FixtureStateControl>;
54
- export type FixtureState = {
55
- props?: FixtureStateProps[];
56
- classState?: FixtureStateClassState[];
57
- controls?: FixtureStateControls;
58
- } & Record<string, unknown>;
29
+ export type FixtureState = Record<string, unknown>;
59
30
  export type SetFixtureState = (update: StateUpdater<FixtureState>) => unknown;
@@ -0,0 +1,5 @@
1
+ export type Viewport = {
2
+ width: number;
3
+ height: number;
4
+ };
5
+ export type ViewportFixtureState = Viewport | null;
@@ -18,9 +18,13 @@ export function collapseNamedIndexes(treeNode) {
18
18
  return next();
19
19
  const [firstGrandchildName] = grandchildNames;
20
20
  const firstGrandchildNode = grandchildren[firstGrandchildName];
21
+ const isUnnamed = firstGrandchildName === 'fixture';
21
22
  if (firstGrandchildNode.data.type !== 'fileDir' &&
22
- noCaseEqual(childName, firstGrandchildName))
23
- return { ...newChildren, [firstGrandchildName]: firstGrandchildNode };
23
+ (noCaseEqual(childName, firstGrandchildName) || isUnnamed))
24
+ return {
25
+ ...newChildren,
26
+ [isUnnamed ? childName : firstGrandchildName]: firstGrandchildNode,
27
+ };
24
28
  return next();
25
29
  }, {}),
26
30
  };
@@ -1,3 +1,3 @@
1
- import { FixtureList } from '../../fixture/types.js';
1
+ import { FixtureList } from '../../userModules/fixtureTypes.js';
2
2
  import { FixtureTreeNode } from '../types.js';
3
3
  export declare function createRawFixtureTree(fixtures: FixtureList): FixtureTreeNode;
@@ -38,7 +38,7 @@ function parseFixturePath(fixturePath) {
38
38
  };
39
39
  }
40
40
  function removeFixtureNameExtension(fixtureName) {
41
- return fixtureName.replace(/\.(j|t)sx?$/, '');
41
+ return fixtureName.replace(/\.(js|jsx|ts|tsx|md|mdx)$/, '');
42
42
  }
43
43
  function injectNode(rootNode, parents, childName, childNode) {
44
44
  if (parents.length === 0)
@@ -1,4 +1,4 @@
1
- import { FixtureList } from '../../fixture/types.js';
1
+ import { FixtureList } from '../../userModules/fixtureTypes.js';
2
2
  import { FixtureTreeNode } from '../types.js';
3
3
  export declare function createFixtureTree({ fixtures, fixturesDir, fixtureFileSuffix, }: {
4
4
  fixtures: FixtureList;
@@ -1,4 +1,4 @@
1
- import { FixtureId } from '../fixture/types.js';
1
+ import { FixtureId } from '../userModules/fixtureTypes.js';
2
2
  import { FixtureTreeNode } from './types.js';
3
3
  export type FlatFixtureTreeItem = {
4
4
  fileName: string;
package/dist/index.d.ts CHANGED
@@ -1,35 +1,43 @@
1
- export * from './fixture/FixtureContext.js';
2
- export * from './fixture/types.js';
3
- export * from './fixture/useSelect/index.js';
4
- export * from './fixture/useValue/index.js';
5
- export * from './fixture/Viewport.js';
6
1
  export * from './fixtureState/classState.js';
2
+ export * from './fixtureState/classStateTypes.js';
3
+ export * from './fixtureState/controlsTypes.js';
4
+ export * from './fixtureState/createValues.js';
5
+ export * from './fixtureState/extendWithValues.js';
6
+ export * from './fixtureState/fixtureState.js';
7
7
  export * from './fixtureState/props.js';
8
+ export * from './fixtureState/propsTypes.js';
8
9
  export * from './fixtureState/types.js';
10
+ export * from './fixtureState/viewport.js';
9
11
  export * from './fixtureTree/createFixtureTree/index.js';
10
12
  export * from './fixtureTree/flattenFixtureTree.js';
11
13
  export * from './fixtureTree/types.js';
12
- export * from './playground/playgroundUrl.js';
13
- export * from './renderer/createPostMessageConnect.js';
14
- export * from './renderer/createWebSocketsConnect.js';
15
- export * from './renderer/FixtureConnect.js';
16
- export * from './renderer/getDecoratedFixtureElement/index.js';
17
- export * from './renderer/getFixtureList.js';
18
- export * from './renderer/getSortedDecoratorsForFixturePath.js';
19
- export * from './renderer/registerPlaygroundShortcuts.js';
14
+ export * from './message/serverMessage.js';
15
+ export * from './message/socketMessage.js';
16
+ export * from './playground/playgroundParams.js';
17
+ export * from './playground/playgroundQueryString.js';
18
+ export * from './playground/registerPlaygroundShortcuts.js';
19
+ export * from './plugin/cosmosPluginConfig.js';
20
20
  export * from './renderer/rendererConfig.js';
21
- export * from './renderer/rendererConnectTypes.js';
22
- export * from './renderer/userModuleTypes.js';
23
- export * from './server/cosmosPluginConfig.js';
24
- export * from './server/serverMessage.js';
25
- export * from './server/socketMessage.js';
21
+ export * from './renderer/rendererConnect.js';
22
+ export * from './renderer/rendererQueryString.js';
23
+ export * from './renderer/rendererUrl.js';
24
+ export * from './server/serverTypes.js';
25
+ export * from './userModules/fixtureTypes.js';
26
+ export * from './userModules/getFixtureFromExport.js';
27
+ export * from './userModules/getFixtureList.js';
28
+ export * from './userModules/getSortedDecoratorsForFixturePath.js';
29
+ export * from './userModules/stringifyFixtureId.js';
30
+ export * from './userModules/userModuleTypes.js';
26
31
  export * from './utils/array.js';
27
32
  export * from './utils/keys.js';
28
- export * from './utils/react/areNodesEqual.js';
33
+ export * from './utils/queryString.js';
29
34
  export * from './utils/react/ClassStateMock.js';
35
+ export * from './utils/react/DelayRender.js';
36
+ export * from './utils/react/areNodesEqual.js';
30
37
  export * from './utils/react/getComponentName.js';
31
38
  export * from './utils/react/isReactElement.js';
39
+ export * from './utils/state.js';
32
40
  export * from './utils/string.js';
33
41
  export * from './utils/tree.js';
34
- export * from './utils/types.js';
35
42
  export * from './utils/uuid.js';
43
+ export * from './utils/window.js';
package/dist/index.js CHANGED
@@ -1,35 +1,43 @@
1
- export * from './fixture/FixtureContext.js';
2
- export * from './fixture/types.js';
3
- export * from './fixture/useSelect/index.js';
4
- export * from './fixture/useValue/index.js';
5
- export * from './fixture/Viewport.js';
6
1
  export * from './fixtureState/classState.js';
2
+ export * from './fixtureState/classStateTypes.js';
3
+ export * from './fixtureState/controlsTypes.js';
4
+ export * from './fixtureState/createValues.js';
5
+ export * from './fixtureState/extendWithValues.js';
6
+ export * from './fixtureState/fixtureState.js';
7
7
  export * from './fixtureState/props.js';
8
+ export * from './fixtureState/propsTypes.js';
8
9
  export * from './fixtureState/types.js';
10
+ export * from './fixtureState/viewport.js';
9
11
  export * from './fixtureTree/createFixtureTree/index.js';
10
12
  export * from './fixtureTree/flattenFixtureTree.js';
11
13
  export * from './fixtureTree/types.js';
12
- export * from './playground/playgroundUrl.js';
13
- export * from './renderer/createPostMessageConnect.js';
14
- export * from './renderer/createWebSocketsConnect.js';
15
- export * from './renderer/FixtureConnect.js';
16
- export * from './renderer/getDecoratedFixtureElement/index.js';
17
- export * from './renderer/getFixtureList.js';
18
- export * from './renderer/getSortedDecoratorsForFixturePath.js';
19
- export * from './renderer/registerPlaygroundShortcuts.js';
14
+ export * from './message/serverMessage.js';
15
+ export * from './message/socketMessage.js';
16
+ export * from './playground/playgroundParams.js';
17
+ export * from './playground/playgroundQueryString.js';
18
+ export * from './playground/registerPlaygroundShortcuts.js';
19
+ export * from './plugin/cosmosPluginConfig.js';
20
20
  export * from './renderer/rendererConfig.js';
21
- export * from './renderer/rendererConnectTypes.js';
22
- export * from './renderer/userModuleTypes.js';
23
- export * from './server/cosmosPluginConfig.js';
24
- export * from './server/serverMessage.js';
25
- export * from './server/socketMessage.js';
21
+ export * from './renderer/rendererConnect.js';
22
+ export * from './renderer/rendererQueryString.js';
23
+ export * from './renderer/rendererUrl.js';
24
+ export * from './server/serverTypes.js';
25
+ export * from './userModules/fixtureTypes.js';
26
+ export * from './userModules/getFixtureFromExport.js';
27
+ export * from './userModules/getFixtureList.js';
28
+ export * from './userModules/getSortedDecoratorsForFixturePath.js';
29
+ export * from './userModules/stringifyFixtureId.js';
30
+ export * from './userModules/userModuleTypes.js';
26
31
  export * from './utils/array.js';
27
32
  export * from './utils/keys.js';
28
- export * from './utils/react/areNodesEqual.js';
33
+ export * from './utils/queryString.js';
29
34
  export * from './utils/react/ClassStateMock.js';
35
+ export * from './utils/react/DelayRender.js';
36
+ export * from './utils/react/areNodesEqual.js';
30
37
  export * from './utils/react/getComponentName.js';
31
38
  export * from './utils/react/isReactElement.js';
39
+ export * from './utils/state.js';
32
40
  export * from './utils/string.js';
33
41
  export * from './utils/tree.js';
34
- export * from './utils/types.js';
35
42
  export * from './utils/uuid.js';
43
+ export * from './utils/window.js';
@@ -0,0 +1,4 @@
1
+ import { FixtureId } from '../userModules/fixtureTypes.js';
2
+ export type PlaygroundParams = {
3
+ fixtureId?: FixtureId;
4
+ };
@@ -0,0 +1,3 @@
1
+ import { PlaygroundParams } from './playgroundParams.js';
2
+ export declare function buildPlaygroundQueryString(params: PlaygroundParams): string;
3
+ export declare function parsePlaygroundQueryString(query: string): PlaygroundParams;
@@ -0,0 +1,21 @@
1
+ import { buildQueryString, parseQueryString } from '../utils/queryString.js';
2
+ export function buildPlaygroundQueryString(params) {
3
+ return buildQueryString(encodePlaygroundSearchParams(params));
4
+ }
5
+ export function parsePlaygroundQueryString(query) {
6
+ return decodePlaygroundSearchParams(parseQueryString(query));
7
+ }
8
+ function encodePlaygroundSearchParams(params) {
9
+ const stringParams = {};
10
+ if (params.fixtureId) {
11
+ stringParams.fixtureId = JSON.stringify(params.fixtureId);
12
+ }
13
+ return stringParams;
14
+ }
15
+ function decodePlaygroundSearchParams(stringParams) {
16
+ const params = {};
17
+ if (stringParams.fixtureId) {
18
+ params.fixtureId = JSON.parse(stringParams.fixtureId);
19
+ }
20
+ return params;
21
+ }
@@ -5,26 +5,30 @@ export function registerPlaygroundShortcuts(runCommand) {
5
5
  runCommand(command);
6
6
  }
7
7
  function handleWindowKeyDown(e) {
8
- if (isEditing()) {
8
+ // Allow meta key shortcuts to work when focused on input fields
9
+ if (isEditing() && !e.metaKey) {
9
10
  return;
10
11
  }
11
12
  const keyChar = String.fromCharCode(e.keyCode);
12
13
  const metaKey = e.metaKey || e.ctrlKey;
13
- if (keyChar === 'P' && metaKey) {
14
+ if (keyChar === 'K' && metaKey) {
14
15
  run(e, 'searchFixtures');
15
16
  }
16
- else if (keyChar === 'L' && metaKey && e.shiftKey) {
17
+ else if (keyChar === 'L') {
17
18
  run(e, 'toggleFixtureList');
18
19
  }
19
- else if (keyChar === 'K' && metaKey && e.shiftKey) {
20
+ else if (keyChar === 'P') {
20
21
  run(e, 'toggleControlPanel');
21
22
  }
22
- else if (keyChar === 'F' && metaKey && e.shiftKey) {
23
+ else if (keyChar === 'F') {
23
24
  run(e, 'goFullScreen');
24
25
  }
25
- else if (keyChar === 'E' && metaKey && e.shiftKey) {
26
+ else if (keyChar === 'E') {
26
27
  run(e, 'editFixture');
27
28
  }
29
+ else if (keyChar === 'R') {
30
+ run(e, 'reloadRenderer');
31
+ }
28
32
  }
29
33
  return () => {
30
34
  window.removeEventListener('keydown', handleWindowKeyDown);
@@ -1,3 +1,4 @@
1
1
  export type RendererConfig = {
2
2
  playgroundUrl: string;
3
+ rendererUrl?: null | string;
3
4
  };