react-resizable-panels 0.0.63 → 1.0.0-rc.2

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 (74) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/CHANGELOG.md +5 -0
  3. package/dist/declarations/src/Panel.d.ts +19 -34
  4. package/dist/declarations/src/PanelGroup.d.ts +9 -13
  5. package/dist/declarations/src/PanelResizeHandle.d.ts +5 -7
  6. package/dist/declarations/src/index.d.ts +2 -2
  7. package/dist/declarations/src/types.d.ts +0 -7
  8. package/dist/declarations/src/utils/assert.d.ts +1 -0
  9. package/dist/declarations/src/vendor/react.d.ts +2 -2
  10. package/dist/react-resizable-panels.browser.cjs.js +253 -518
  11. package/dist/react-resizable-panels.browser.cjs.mjs +2 -1
  12. package/dist/react-resizable-panels.browser.development.cjs.js +279 -574
  13. package/dist/react-resizable-panels.browser.development.cjs.mjs +2 -1
  14. package/dist/react-resizable-panels.browser.development.esm.js +279 -575
  15. package/dist/react-resizable-panels.browser.esm.js +253 -519
  16. package/dist/react-resizable-panels.cjs.d.ts +88 -1
  17. package/dist/react-resizable-panels.cjs.d.ts.map +1 -1
  18. package/dist/react-resizable-panels.cjs.js +1481 -1983
  19. package/dist/react-resizable-panels.cjs.js.map +1 -1
  20. package/dist/react-resizable-panels.cjs.mjs +2 -1
  21. package/dist/react-resizable-panels.development.cjs.js +281 -576
  22. package/dist/react-resizable-panels.development.cjs.mjs +2 -1
  23. package/dist/react-resizable-panels.development.esm.js +281 -577
  24. package/dist/react-resizable-panels.development.node.cjs.js +267 -502
  25. package/dist/react-resizable-panels.development.node.cjs.mjs +2 -1
  26. package/dist/react-resizable-panels.development.node.esm.js +267 -503
  27. package/dist/react-resizable-panels.esm.js +1476 -1959
  28. package/dist/react-resizable-panels.esm.js.map +1 -1
  29. package/dist/react-resizable-panels.node.cjs.js +239 -444
  30. package/dist/react-resizable-panels.node.cjs.mjs +2 -1
  31. package/dist/react-resizable-panels.node.esm.js +239 -445
  32. package/package.json +1 -1
  33. package/src/Panel.test.tsx +74 -73
  34. package/src/Panel.ts +44 -68
  35. package/src/PanelGroup.test.tsx +43 -42
  36. package/src/PanelGroup.ts +221 -411
  37. package/src/PanelGroupContext.ts +2 -3
  38. package/src/PanelResizeHandle.test.tsx +68 -0
  39. package/src/PanelResizeHandle.ts +31 -22
  40. package/src/hooks/useWindowSplitterBehavior.ts +2 -1
  41. package/src/hooks/useWindowSplitterPanelGroupBehavior.ts +22 -33
  42. package/src/index.ts +4 -3
  43. package/src/types.ts +0 -9
  44. package/src/utils/adjustLayoutByDelta.test.ts +206 -336
  45. package/src/utils/adjustLayoutByDelta.ts +59 -51
  46. package/src/utils/assert.ts +1 -1
  47. package/src/utils/calculateAriaValues.test.ts +6 -11
  48. package/src/utils/calculateAriaValues.ts +7 -29
  49. package/src/utils/calculateDeltaPercentage.ts +8 -15
  50. package/src/utils/calculateDragOffsetPercentage.ts +11 -5
  51. package/src/utils/calculateUnsafeDefaultLayout.test.ts +4 -9
  52. package/src/utils/calculateUnsafeDefaultLayout.ts +13 -18
  53. package/src/utils/callPanelCallbacks.ts +11 -46
  54. package/src/utils/getResizeEventCursorPosition.ts +2 -0
  55. package/src/utils/resizePanel.test.ts +6 -52
  56. package/src/utils/resizePanel.ts +24 -46
  57. package/src/utils/test-utils.ts +6 -7
  58. package/src/utils/validatePanelConstraints.test.ts +12 -65
  59. package/src/utils/validatePanelConstraints.ts +26 -67
  60. package/src/utils/validatePanelGroupLayout.test.ts +27 -142
  61. package/src/utils/validatePanelGroupLayout.ts +17 -13
  62. package/src/vendor/react.ts +2 -0
  63. package/src/utils/computePercentagePanelConstraints.test.ts +0 -98
  64. package/src/utils/computePercentagePanelConstraints.ts +0 -56
  65. package/src/utils/convertPercentageToPixels.test.ts +0 -9
  66. package/src/utils/convertPercentageToPixels.ts +0 -6
  67. package/src/utils/convertPixelConstraintsToPercentages.test.ts +0 -47
  68. package/src/utils/convertPixelConstraintsToPercentages.ts +0 -72
  69. package/src/utils/convertPixelsToPercentage.test.ts +0 -9
  70. package/src/utils/convertPixelsToPercentage.ts +0 -6
  71. package/src/utils/getPercentageSizeFromMixedSizes.test.ts +0 -47
  72. package/src/utils/getPercentageSizeFromMixedSizes.ts +0 -15
  73. package/src/utils/shouldMonitorPixelBasedConstraints.test.ts +0 -23
  74. package/src/utils/shouldMonitorPixelBasedConstraints.ts +0 -13
@@ -1,2 +1,89 @@
1
- export * from "./declarations/src/index";
1
+ import { CSSProperties, ElementType, HTMLAttributes, PropsWithChildren } from "react";
2
+ export type PanelOnCollapse = () => void;
3
+ export type PanelOnExpand = () => void;
4
+ export type PanelOnResize = (size: number, prevSize: number | undefined) => void;
5
+ export type ImperativePanelHandle = {
6
+ collapse: () => void;
7
+ expand: () => void;
8
+ getId(): string;
9
+ getSize(): number;
10
+ isCollapsed: () => boolean;
11
+ isExpanded: () => boolean;
12
+ resize: (size: number) => void;
13
+ };
14
+ export type PanelProps = Omit<HTMLAttributes<ElementType>, "id" | "onResize"> & PropsWithChildren<{
15
+ className?: string;
16
+ collapsedSize?: number | undefined;
17
+ collapsible?: boolean | undefined;
18
+ defaultSize?: number | undefined;
19
+ id?: string;
20
+ maxSize?: number | undefined;
21
+ minSize?: number | undefined;
22
+ onCollapse?: PanelOnCollapse;
23
+ onExpand?: PanelOnExpand;
24
+ onResize?: PanelOnResize;
25
+ order?: number;
26
+ style?: object;
27
+ tagName?: ElementType;
28
+ }>;
29
+ export declare namespace PanelWithForwardedRef {
30
+ var displayName: string;
31
+ }
32
+ export const Panel: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<ElementType>, "id" | "onResize"> & {
33
+ className?: string | undefined;
34
+ collapsedSize?: number | undefined;
35
+ collapsible?: boolean | undefined;
36
+ defaultSize?: number | undefined;
37
+ id?: string | undefined;
38
+ maxSize?: number | undefined;
39
+ minSize?: number | undefined;
40
+ onCollapse?: PanelOnCollapse | undefined;
41
+ onExpand?: PanelOnExpand | undefined;
42
+ onResize?: PanelOnResize | undefined;
43
+ order?: number | undefined;
44
+ style?: object | undefined;
45
+ tagName?: ElementType | undefined;
46
+ } & {
47
+ children?: import("react").ReactNode;
48
+ } & import("react").RefAttributes<ImperativePanelHandle>>;
49
+ type Direction = "horizontal" | "vertical";
50
+ export function assert(expectedCondition: any, message?: string): asserts expectedCondition;
51
+ export type ImperativePanelGroupHandle = {
52
+ getId: () => string;
53
+ getLayout: () => number[];
54
+ setLayout: (layout: number[]) => void;
55
+ };
56
+ export type PanelGroupStorage = {
57
+ getItem(name: string): string | null;
58
+ setItem(name: string, value: string): void;
59
+ };
60
+ export type PanelGroupOnLayout = (layout: number[]) => void;
61
+ export type PanelGroupProps = Omit<HTMLAttributes<ElementType>, "id"> & PropsWithChildren<{
62
+ autoSaveId?: string | null;
63
+ className?: string;
64
+ direction: Direction;
65
+ id?: string | null;
66
+ keyboardResizeBy?: number | null;
67
+ onLayout?: PanelGroupOnLayout | null;
68
+ storage?: PanelGroupStorage;
69
+ style?: CSSProperties;
70
+ tagName?: ElementType;
71
+ }>;
72
+ export const PanelGroup: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<ElementType>, "id"> & {
73
+ autoSaveId?: string | null | undefined;
74
+ className?: string | undefined;
75
+ direction: Direction;
76
+ id?: string | null | undefined;
77
+ keyboardResizeBy?: number | null | undefined;
78
+ onLayout?: PanelGroupOnLayout | null | undefined;
79
+ storage?: PanelGroupStorage | undefined;
80
+ style?: CSSProperties | undefined;
81
+ tagName?: ElementType | undefined;
82
+ } & {
83
+ children?: import("react").ReactNode;
84
+ } & import("react").RefAttributes<ImperativePanelGroupHandle>>;
85
+ export declare namespace PanelResizeHandle {
86
+ var displayName: string;
87
+ }
88
+
2
89
  //# sourceMappingURL=react-resizable-panels.cjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-resizable-panels.cjs.d.ts","sourceRoot":"","sources":["./declarations/src/index.d.ts"],"names":[],"mappings":"AAAA"}
1
+ {"mappings":"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","sources":["packages/react-resizable-panels/src/src/vendor/react.ts","packages/react-resizable-panels/src/src/PanelGroupContext.ts","packages/react-resizable-panels/src/src/hooks/useIsomorphicEffect.ts","packages/react-resizable-panels/src/src/hooks/useUniqueId.ts","packages/react-resizable-panels/src/src/Panel.ts","packages/react-resizable-panels/src/src/types.ts","packages/react-resizable-panels/src/src/utils/assert.ts","packages/react-resizable-panels/src/src/constants.ts","packages/react-resizable-panels/src/src/utils/numbers/fuzzyCompareNumbers.ts","packages/react-resizable-panels/src/src/utils/numbers/fuzzyNumbersEqual.ts","packages/react-resizable-panels/src/src/utils/resizePanel.ts","packages/react-resizable-panels/src/src/utils/adjustLayoutByDelta.ts","packages/react-resizable-panels/src/src/utils/calculateAriaValues.ts","packages/react-resizable-panels/src/src/utils/dom/getResizeHandleElementsForGroup.ts","packages/react-resizable-panels/src/src/utils/dom/getResizeHandleElementIndex.ts","packages/react-resizable-panels/src/src/utils/determinePivotIndices.ts","packages/react-resizable-panels/src/src/utils/dom/getPanelGroupElement.ts","packages/react-resizable-panels/src/src/utils/dom/getResizeHandleElement.ts","packages/react-resizable-panels/src/src/utils/dom/getResizeHandlePanelIds.ts","packages/react-resizable-panels/src/src/hooks/useWindowSplitterPanelGroupBehavior.ts","packages/react-resizable-panels/src/src/utils/arrays.ts","packages/react-resizable-panels/src/src/utils/events.ts","packages/react-resizable-panels/src/src/utils/getResizeEventCursorPosition.ts","packages/react-resizable-panels/src/src/utils/calculateDragOffsetPercentage.ts","packages/react-resizable-panels/src/src/utils/calculateDeltaPercentage.ts","packages/react-resizable-panels/src/src/utils/calculateUnsafeDefaultLayout.ts","packages/react-resizable-panels/src/src/utils/callPanelCallbacks.ts","packages/react-resizable-panels/src/src/utils/compareLayouts.ts","packages/react-resizable-panels/src/src/utils/computePanelFlexBoxStyle.ts","packages/react-resizable-panels/src/src/utils/cursor.ts","packages/react-resizable-panels/src/src/utils/debounce.ts","packages/react-resizable-panels/src/src/utils/dom/getPanelElementsForGroup.ts","packages/react-resizable-panels/src/src/utils/initializeDefaultStorage.ts","packages/react-resizable-panels/src/src/utils/serialization.ts","packages/react-resizable-panels/src/src/utils/validatePanelConstraints.ts","packages/react-resizable-panels/src/src/utils/validatePanelGroupLayout.ts","packages/react-resizable-panels/src/src/PanelGroup.ts","packages/react-resizable-panels/src/src/hooks/useWindowSplitterBehavior.ts","packages/react-resizable-panels/src/src/PanelResizeHandle.ts","packages/react-resizable-panels/src/src/index.ts","packages/react-resizable-panels/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { Panel } from \"./Panel\";\nimport { PanelGroup } from \"./PanelGroup\";\nimport { PanelResizeHandle } from \"./PanelResizeHandle\";\nimport { assert } from \"./utils/assert\";\n\nimport type {\n ImperativePanelHandle,\n PanelOnCollapse,\n PanelOnExpand,\n PanelOnResize,\n PanelProps,\n} from \"./Panel\";\nimport type {\n ImperativePanelGroupHandle,\n PanelGroupOnLayout,\n PanelGroupProps,\n PanelGroupStorage,\n} from \"./PanelGroup\";\nimport type {\n PanelResizeHandleOnDragging,\n PanelResizeHandleProps,\n} from \"./PanelResizeHandle\";\n\nexport {\n // TypeScript types\n ImperativePanelGroupHandle,\n ImperativePanelHandle,\n PanelGroupOnLayout,\n PanelGroupProps,\n PanelGroupStorage,\n PanelOnCollapse,\n PanelOnExpand,\n PanelOnResize,\n PanelProps,\n PanelResizeHandleOnDragging,\n PanelResizeHandleProps,\n\n // Utiltiy methods\n assert,\n\n // React components\n Panel,\n PanelGroup,\n PanelResizeHandle,\n};\n"],"names":[],"version":3,"file":"react-resizable-panels.cjs.d.ts.map","sourceRoot":"../../../"}