react-cosmos-core 6.0.0-alpha.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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/dist/fixture/FixtureContext.d.ts +7 -0
  3. package/dist/fixture/FixtureContext.js +5 -0
  4. package/dist/fixture/Viewport.d.ts +8 -0
  5. package/dist/fixture/Viewport.js +19 -0
  6. package/dist/fixture/types.d.ts +13 -0
  7. package/dist/fixture/types.js +1 -0
  8. package/dist/fixture/useSelect/index.d.ts +2 -0
  9. package/dist/fixture/useSelect/index.js +11 -0
  10. package/dist/fixture/useSelect/shared.d.ts +6 -0
  11. package/dist/fixture/useSelect/shared.js +3 -0
  12. package/dist/fixture/useSelect/useCreateFixtureState.d.ts +2 -0
  13. package/dist/fixture/useSelect/useCreateFixtureState.js +32 -0
  14. package/dist/fixture/useSelect/useCurrentValue.d.ts +2 -0
  15. package/dist/fixture/useSelect/useCurrentValue.js +11 -0
  16. package/dist/fixture/useSelect/useSetValue.d.ts +2 -0
  17. package/dist/fixture/useSelect/useSetValue.js +25 -0
  18. package/dist/fixture/useValue/index.d.ts +7 -0
  19. package/dist/fixture/useValue/index.js +9 -0
  20. package/dist/fixture/useValue/shared.d.ts +3 -0
  21. package/dist/fixture/useValue/shared.js +1 -0
  22. package/dist/fixture/useValue/useCreateFixtureState.d.ts +2 -0
  23. package/dist/fixture/useValue/useCreateFixtureState.js +35 -0
  24. package/dist/fixture/useValue/useCurrentValue.d.ts +2 -0
  25. package/dist/fixture/useValue/useCurrentValue.js +13 -0
  26. package/dist/fixture/useValue/useSetValue.d.ts +3 -0
  27. package/dist/fixture/useValue/useSetValue.js +36 -0
  28. package/dist/fixtureState/classState.d.ts +22 -0
  29. package/dist/fixtureState/classState.js +40 -0
  30. package/dist/fixtureState/controls.d.ts +2 -0
  31. package/dist/fixtureState/controls.js +4 -0
  32. package/dist/fixtureState/createValues.d.ts +3 -0
  33. package/dist/fixtureState/createValues.js +39 -0
  34. package/dist/fixtureState/extendWithValues.d.ts +3 -0
  35. package/dist/fixtureState/extendWithValues.js +22 -0
  36. package/dist/fixtureState/props.d.ts +30 -0
  37. package/dist/fixtureState/props.js +49 -0
  38. package/dist/fixtureState/shared.d.ts +9 -0
  39. package/dist/fixtureState/shared.js +30 -0
  40. package/dist/fixtureState/types.d.ts +59 -0
  41. package/dist/fixtureState/types.js +1 -0
  42. package/dist/fixtureTree/createFixtureTree/collapseFixtureDirs.d.ts +2 -0
  43. package/dist/fixtureTree/createFixtureTree/collapseFixtureDirs.js +33 -0
  44. package/dist/fixtureTree/createFixtureTree/collapseIndexes.d.ts +2 -0
  45. package/dist/fixtureTree/createFixtureTree/collapseIndexes.js +15 -0
  46. package/dist/fixtureTree/createFixtureTree/collapseNamedIndexes.d.ts +2 -0
  47. package/dist/fixtureTree/createFixtureTree/collapseNamedIndexes.js +30 -0
  48. package/dist/fixtureTree/createFixtureTree/collapseOuterDirs.d.ts +2 -0
  49. package/dist/fixtureTree/createFixtureTree/collapseOuterDirs.js +13 -0
  50. package/dist/fixtureTree/createFixtureTree/createRawFixtureTree.d.ts +3 -0
  51. package/dist/fixtureTree/createFixtureTree/createRawFixtureTree.js +66 -0
  52. package/dist/fixtureTree/createFixtureTree/hideFixtureSuffix.d.ts +2 -0
  53. package/dist/fixtureTree/createFixtureTree/hideFixtureSuffix.js +24 -0
  54. package/dist/fixtureTree/createFixtureTree/index.d.ts +7 -0
  55. package/dist/fixtureTree/createFixtureTree/index.js +16 -0
  56. package/dist/fixtureTree/flattenFixtureTree.d.ts +10 -0
  57. package/dist/fixtureTree/flattenFixtureTree.js +28 -0
  58. package/dist/fixtureTree/types.d.ts +11 -0
  59. package/dist/fixtureTree/types.js +1 -0
  60. package/dist/index.d.ts +34 -0
  61. package/dist/index.js +34 -0
  62. package/dist/playground/playgroundUrl.d.ts +13 -0
  63. package/dist/playground/playgroundUrl.js +36 -0
  64. package/dist/renderer/FixtureLoader/FixtureCapture/classState/decorateFixtureRefs/index.d.ts +5 -0
  65. package/dist/renderer/FixtureLoader/FixtureCapture/classState/decorateFixtureRefs/index.js +46 -0
  66. package/dist/renderer/FixtureLoader/FixtureCapture/classState/decorateFixtureRefs/isRefSupported.d.ts +4 -0
  67. package/dist/renderer/FixtureLoader/FixtureCapture/classState/decorateFixtureRefs/isRefSupported.js +19 -0
  68. package/dist/renderer/FixtureLoader/FixtureCapture/classState/index.d.ts +3 -0
  69. package/dist/renderer/FixtureLoader/FixtureCapture/classState/index.js +13 -0
  70. package/dist/renderer/FixtureLoader/FixtureCapture/classState/shared.d.ts +18 -0
  71. package/dist/renderer/FixtureLoader/FixtureCapture/classState/shared.js +14 -0
  72. package/dist/renderer/FixtureLoader/FixtureCapture/classState/useFixtureState.d.ts +4 -0
  73. package/dist/renderer/FixtureLoader/FixtureCapture/classState/useFixtureState.js +156 -0
  74. package/dist/renderer/FixtureLoader/FixtureCapture/classState/useReadClassState.d.ts +4 -0
  75. package/dist/renderer/FixtureLoader/FixtureCapture/classState/useReadClassState.js +60 -0
  76. package/dist/renderer/FixtureLoader/FixtureCapture/index.d.ts +7 -0
  77. package/dist/renderer/FixtureLoader/FixtureCapture/index.js +9 -0
  78. package/dist/renderer/FixtureLoader/FixtureCapture/props/index.d.ts +3 -0
  79. package/dist/renderer/FixtureLoader/FixtureCapture/props/index.js +77 -0
  80. package/dist/renderer/FixtureLoader/FixtureCapture/props/useFixtureProps.d.ts +3 -0
  81. package/dist/renderer/FixtureLoader/FixtureCapture/props/useFixtureProps.js +70 -0
  82. package/dist/renderer/FixtureLoader/FixtureCapture/shared/findRelevantElementPaths.d.ts +2 -0
  83. package/dist/renderer/FixtureLoader/FixtureCapture/shared/findRelevantElementPaths.js +23 -0
  84. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/findElementPaths.d.ts +2 -0
  85. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/findElementPaths.js +22 -0
  86. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/getElementAtPath.d.ts +3 -0
  87. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/getElementAtPath.js +26 -0
  88. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/index.d.ts +11 -0
  89. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/index.js +11 -0
  90. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/setElementAtPath.d.ts +2 -0
  91. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/setElementAtPath.js +35 -0
  92. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/shared.d.ts +2 -0
  93. package/dist/renderer/FixtureLoader/FixtureCapture/shared/nodeTree/shared.js +6 -0
  94. package/dist/renderer/FixtureLoader/FixtureLoader.d.ts +52 -0
  95. package/dist/renderer/FixtureLoader/FixtureLoader.js +226 -0
  96. package/dist/renderer/FixtureLoader/FixtureProvider.d.ts +18 -0
  97. package/dist/renderer/FixtureLoader/FixtureProvider.js +18 -0
  98. package/dist/renderer/FixtureLoader/fixtureHelpers.d.ts +2 -0
  99. package/dist/renderer/FixtureLoader/fixtureHelpers.js +15 -0
  100. package/dist/renderer/FixtureLoader/getDecoratedFixtureElement/FixtureElement.d.ts +9 -0
  101. package/dist/renderer/FixtureLoader/getDecoratedFixtureElement/FixtureElement.js +5 -0
  102. package/dist/renderer/FixtureLoader/getDecoratedFixtureElement/index.d.ts +2 -0
  103. package/dist/renderer/FixtureLoader/getDecoratedFixtureElement/index.js +15 -0
  104. package/dist/renderer/FixtureLoader/postMessage.d.ts +2 -0
  105. package/dist/renderer/FixtureLoader/postMessage.js +22 -0
  106. package/dist/renderer/FixtureLoader/webSockets.d.ts +2 -0
  107. package/dist/renderer/FixtureLoader/webSockets.js +32 -0
  108. package/dist/renderer/getFixtureList.d.ts +8 -0
  109. package/dist/renderer/getFixtureList.js +19 -0
  110. package/dist/renderer/getSortedDecoratorsForFixturePath.d.ts +2 -0
  111. package/dist/renderer/getSortedDecoratorsForFixturePath.js +25 -0
  112. package/dist/renderer/isMultiFixture.d.ts +2 -0
  113. package/dist/renderer/isMultiFixture.js +6 -0
  114. package/dist/renderer/reactTypes.d.ts +28 -0
  115. package/dist/renderer/reactTypes.js +1 -0
  116. package/dist/renderer/registerPlaygroundShortcuts.d.ts +1 -0
  117. package/dist/renderer/registerPlaygroundShortcuts.js +40 -0
  118. package/dist/renderer/rendererConfig.d.ts +3 -0
  119. package/dist/renderer/rendererConfig.js +1 -0
  120. package/dist/renderer/types.d.ts +69 -0
  121. package/dist/renderer/types.js +1 -0
  122. package/dist/server/cosmosPluginConfig.d.ts +16 -0
  123. package/dist/server/cosmosPluginConfig.js +1 -0
  124. package/dist/server/serverMessage.d.ts +10 -0
  125. package/dist/server/serverMessage.js +1 -0
  126. package/dist/server/socketMessage.d.ts +10 -0
  127. package/dist/server/socketMessage.js +6 -0
  128. package/dist/utils/array.d.ts +3 -0
  129. package/dist/utils/array.js +21 -0
  130. package/dist/utils/keys.d.ts +6 -0
  131. package/dist/utils/keys.js +6 -0
  132. package/dist/utils/react/areNodesEqual.d.ts +2 -0
  133. package/dist/utils/react/areNodesEqual.js +38 -0
  134. package/dist/utils/react/getComponentName.d.ts +2 -0
  135. package/dist/utils/react/getComponentName.js +11 -0
  136. package/dist/utils/react/isReactElement.d.ts +2 -0
  137. package/dist/utils/react/isReactElement.js +4 -0
  138. package/dist/utils/string.d.ts +5 -0
  139. package/dist/utils/string.js +9 -0
  140. package/dist/utils/tree.d.ts +6 -0
  141. package/dist/utils/tree.js +21 -0
  142. package/dist/utils/types.d.ts +1 -0
  143. package/dist/utils/types.js +1 -0
  144. package/dist/utils/uuid.d.ts +1 -0
  145. package/dist/utils/uuid.js +6 -0
  146. package/package.json +15 -0
@@ -0,0 +1,10 @@
1
+ export type MessageType = {
2
+ type: string;
3
+ payload?: {};
4
+ };
5
+ export type SocketMessage<T extends MessageType = MessageType> = {
6
+ channel: 'renderer' | 'server';
7
+ message: T;
8
+ };
9
+ export declare function serverSocketMessage(message: MessageType): SocketMessage;
10
+ export declare function rendererSocketMessage(message: MessageType): SocketMessage;
@@ -0,0 +1,6 @@
1
+ export function serverSocketMessage(message) {
2
+ return { channel: 'server', message };
3
+ }
4
+ export function rendererSocketMessage(message) {
5
+ return { channel: 'renderer', message };
6
+ }
@@ -0,0 +1,3 @@
1
+ export declare function updateItem<T>(items: Readonly<T[]>, item: T, update: Partial<T>): T[];
2
+ export declare function replaceOrAddItem<T>(items: Readonly<T[]>, matcher: (item: T) => boolean, item: T): T[];
3
+ export declare function removeItemMatch<T>(items: Readonly<T[]>, matcher: (item: T) => boolean): T[];
@@ -0,0 +1,21 @@
1
+ import { findIndex } from 'lodash-es';
2
+ export function updateItem(items, item, update) {
3
+ const index = items.indexOf(item);
4
+ return [
5
+ ...items.slice(0, index),
6
+ { ...item, ...update },
7
+ ...items.slice(index + 1),
8
+ ];
9
+ }
10
+ export function replaceOrAddItem(items, matcher, item) {
11
+ const index = findIndex(items, matcher);
12
+ return index !== -1
13
+ ? [...items.slice(0, index), item, ...items.slice(index + 1)]
14
+ : [...items, item];
15
+ }
16
+ export function removeItemMatch(items, matcher) {
17
+ const index = findIndex(items, matcher);
18
+ return index === -1
19
+ ? [...items]
20
+ : [...items.slice(0, index), ...items.slice(index + 1)];
21
+ }
@@ -0,0 +1,6 @@
1
+ export declare const KEY_DOWN = 40;
2
+ export declare const KEY_ENTER = 13;
3
+ export declare const KEY_ESC = 27;
4
+ export declare const KEY_FWD_SLASH = 191;
5
+ export declare const KEY_TAB = 9;
6
+ export declare const KEY_UP = 38;
@@ -0,0 +1,6 @@
1
+ export const KEY_DOWN = 40;
2
+ export const KEY_ENTER = 13;
3
+ export const KEY_ESC = 27;
4
+ export const KEY_FWD_SLASH = 191;
5
+ export const KEY_TAB = 9;
6
+ export const KEY_UP = 38;
@@ -0,0 +1,2 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function areNodesEqual(node1: ReactNode, node2: ReactNode, strictTypeCheck: boolean): boolean;
@@ -0,0 +1,38 @@
1
+ import { isEqual, isEqualWith } from 'lodash-es';
2
+ import { getComponentName } from './getComponentName.js';
3
+ import { isReactElement } from './isReactElement.js';
4
+ export function areNodesEqual(node1, node2, strictTypeCheck) {
5
+ if (isReactElement(node1) && isReactElement(node2))
6
+ return areElementsEqual(node1, node2, strictTypeCheck);
7
+ if (Array.isArray(node1) && Array.isArray(node2))
8
+ return areArrayNodesEqual(node1, node2, strictTypeCheck);
9
+ return isEqual(node1, node2);
10
+ }
11
+ function areElementsEqual(element1, element2, strictTypeCheck) {
12
+ if (!areElementTypesEqual(element1.type, element2.type, strictTypeCheck))
13
+ return false;
14
+ // Don't compare private element attrs like _owner and _store, which hold
15
+ // internal details and have auto increment-type attrs
16
+ return (element1.key === element2.key &&
17
+ // @ts-ignore
18
+ element1.ref === element2.ref &&
19
+ // Children (and props in general) can contain Elements and other Nodes
20
+ arePropsEqual(element1.props, element2.props));
21
+ }
22
+ function areElementTypesEqual(type1, type2, strictTypeCheck) {
23
+ return strictTypeCheck
24
+ ? type1 === type2
25
+ : getComponentName(type1) === getComponentName(type2);
26
+ }
27
+ function areArrayNodesEqual(node1, node2, strictTypeCheck) {
28
+ if (node1.length !== node2.length)
29
+ return false;
30
+ return node1.every((node, nodeIndex) => areNodesEqual(node, node2[nodeIndex], strictTypeCheck));
31
+ }
32
+ function arePropsEqual(object1, object2) {
33
+ if (!isEqual(Object.keys(object1), Object.keys(object2)))
34
+ return false;
35
+ return Object.keys(object1).every(key => isEqualWith(object1[key], object2[key], (value1, value2) => typeof value1 === 'function' && typeof value2 === 'function'
36
+ ? value1 === value2 || value1.toString() === value2.toString()
37
+ : isEqual(value1, value2)));
38
+ }
@@ -0,0 +1,2 @@
1
+ import { ComponentType } from 'react';
2
+ export declare function getComponentName(type: string | ComponentType): string;
@@ -0,0 +1,11 @@
1
+ const componentNames = new WeakMap();
2
+ export function getComponentName(type) {
3
+ if (typeof type === 'string') {
4
+ return type;
5
+ }
6
+ if (!componentNames.has(type)) {
7
+ const name = type.displayName || type.name || '';
8
+ componentNames.set(type, name);
9
+ }
10
+ return componentNames.get(type);
11
+ }
@@ -0,0 +1,2 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ export declare function isReactElement(node: ReactNode): node is ReactElement;
@@ -0,0 +1,4 @@
1
+ import { isElement } from 'react-is';
2
+ export function isReactElement(node) {
3
+ return isElement(node);
4
+ }
@@ -0,0 +1,5 @@
1
+ export declare function replaceKeys(str: string, map: {
2
+ [key: string]: string;
3
+ }): string;
4
+ export declare function removeLeadingSlash(fromPath: string): string;
5
+ export declare function removeLeadingDot(fromPath: string): string;
@@ -0,0 +1,9 @@
1
+ export function replaceKeys(str, map) {
2
+ return Object.keys(map).reduce((res, key) => res.replace(key, map[key]), str);
3
+ }
4
+ export function removeLeadingSlash(fromPath) {
5
+ return fromPath.replace(/^\/+/, '');
6
+ }
7
+ export function removeLeadingDot(fromPath) {
8
+ return fromPath.indexOf('.') === 0 ? fromPath.slice(1) : fromPath;
9
+ }
@@ -0,0 +1,6 @@
1
+ export type TreeNode<T> = {
2
+ data: T;
3
+ children?: Record<string, TreeNode<T>>;
4
+ };
5
+ export declare function addTreeNodeChild<T>(parentNode: TreeNode<T>, childName: string, childNode: TreeNode<T>): void;
6
+ export declare function sortTreeChildren<T>(node: TreeNode<T>): TreeNode<T>;
@@ -0,0 +1,21 @@
1
+ export function addTreeNodeChild(parentNode, childName, childNode) {
2
+ if (!parentNode.children)
3
+ parentNode.children = {};
4
+ parentNode.children[childName] = childNode;
5
+ }
6
+ export function sortTreeChildren(node) {
7
+ const { children } = node;
8
+ if (!children)
9
+ return node;
10
+ // Group by parent and leaf nodes, and sort alphabetically within each group
11
+ const childNames = Object.keys(children);
12
+ const parentNames = childNames.filter(n => children[n].children);
13
+ const leafNames = childNames.filter(n => !children[n].children);
14
+ return {
15
+ ...node,
16
+ children: [...parentNames.sort(), ...leafNames.sort()].reduce((sortedChildren, childName) => ({
17
+ ...sortedChildren,
18
+ [childName]: sortTreeChildren(children[childName]),
19
+ }), {}),
20
+ };
21
+ }
@@ -0,0 +1 @@
1
+ export type StateUpdater<T> = (prevState: T) => T;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function uuid(a?: string): string;
@@ -0,0 +1,6 @@
1
+ // From here https://gist.github.com/jed/982883
2
+ export function uuid(a) {
3
+ return a
4
+ ? (Number(a) ^ ((Math.random() * 16) >> (Number(a) / 4))).toString(16)
5
+ : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);
6
+ }
package/package.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "react-cosmos-core",
3
+ "version": "6.0.0-alpha.0",
4
+ "description": "React Cosmos Core",
5
+ "repository": "https://github.com/react-cosmos/react-cosmos/tree/main/packages/react-cosmos-core",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "sideEffects": false,
10
+ "dependencies": {
11
+ "lodash-es": "^4.17.21",
12
+ "react-is": "^18.0.0"
13
+ },
14
+ "gitHead": "b021231584639f3028fe08deacd418f0ec4cc002"
15
+ }