@aiquants/resize-panels 1.8.1 → 2.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 (81) hide show
  1. package/README.md +213 -108
  2. package/dist/GlobalDebugOverlay-Cf3GOn2A.cjs +1 -0
  3. package/dist/{GlobalDebugOverlay-DYCR0FIu.js → GlobalDebugOverlay-DQtUdNeF.js} +28 -28
  4. package/dist/debugOverlayStore-D7FT6zPE.js +135 -0
  5. package/dist/debugOverlayStore-DY09saU8.cjs +1 -0
  6. package/dist/index-DZ0itiBD.js +1299 -0
  7. package/dist/index-DqATP_BA.cjs +2 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.d.ts +2 -29
  10. package/dist/index.js +25 -13
  11. package/dist/src/GlobalDebugOverlay.d.ts.map +1 -0
  12. package/dist/src/Panel.d.ts +46 -0
  13. package/dist/src/Panel.d.ts.map +1 -0
  14. package/dist/src/PanelDebugInfo.d.ts +34 -0
  15. package/dist/src/PanelDebugInfo.d.ts.map +1 -0
  16. package/dist/src/PanelGroup.d.ts.map +1 -0
  17. package/dist/{PanelResizeHandle.d.ts → src/PanelResizeHandle.d.ts} +1 -1
  18. package/dist/src/PanelResizeHandle.d.ts.map +1 -0
  19. package/dist/src/allocateLayout.d.ts +60 -0
  20. package/dist/src/allocateLayout.d.ts.map +1 -0
  21. package/dist/src/context.d.ts.map +1 -0
  22. package/dist/{debugOverlayStore.d.ts → src/debugOverlayStore.d.ts} +10 -2
  23. package/dist/src/debugOverlayStore.d.ts.map +1 -0
  24. package/dist/src/hooks.d.ts +48 -0
  25. package/dist/src/hooks.d.ts.map +1 -0
  26. package/dist/src/index.d.ts +32 -0
  27. package/dist/src/index.d.ts.map +1 -0
  28. package/dist/src/reducer.d.ts +49 -0
  29. package/dist/src/reducer.d.ts.map +1 -0
  30. package/dist/src/roundHalfToEven.d.ts.map +1 -0
  31. package/dist/src/types.d.ts +481 -0
  32. package/dist/src/types.d.ts.map +1 -0
  33. package/dist/src/utils/simple-logger.d.ts.map +1 -0
  34. package/dist/src/utils.d.ts +164 -0
  35. package/dist/src/utils.d.ts.map +1 -0
  36. package/dist/styles/resize-panels.standalone.css +1 -1
  37. package/dist/tests/support/dom-harness.d.ts +89 -0
  38. package/dist/tests/support/dom-harness.d.ts.map +1 -0
  39. package/package.json +3 -3
  40. package/src/GlobalDebugOverlay.tsx +3 -3
  41. package/src/Panel.tsx +203 -541
  42. package/src/PanelDebugInfo.tsx +52 -106
  43. package/src/PanelGroup.tsx +27 -42
  44. package/src/PanelResizeHandle.tsx +544 -504
  45. package/src/allocateLayout.ts +412 -0
  46. package/src/debugOverlayStore.ts +19 -15
  47. package/src/hooks.ts +187 -779
  48. package/src/index.ts +37 -6
  49. package/src/reducer.ts +364 -1126
  50. package/src/types.ts +282 -65
  51. package/src/utils.ts +205 -164
  52. package/dist/GlobalDebugOverlay-afs0vF-Q.cjs +0 -1
  53. package/dist/GlobalDebugOverlay.d.ts.map +0 -1
  54. package/dist/Panel.d.ts +0 -7
  55. package/dist/Panel.d.ts.map +0 -1
  56. package/dist/PanelDebugInfo.d.ts +0 -26
  57. package/dist/PanelDebugInfo.d.ts.map +0 -1
  58. package/dist/PanelGroup.d.ts.map +0 -1
  59. package/dist/PanelResizeHandle.d.ts.map +0 -1
  60. package/dist/context.d.ts.map +0 -1
  61. package/dist/debugOverlayStore-Cntyxboe.js +0 -141
  62. package/dist/debugOverlayStore-Dkl-fHoa.cjs +0 -1
  63. package/dist/debugOverlayStore.d.ts.map +0 -1
  64. package/dist/hooks.d.ts +0 -45
  65. package/dist/hooks.d.ts.map +0 -1
  66. package/dist/index-BzgId8aQ.js +0 -1972
  67. package/dist/index-xTV-c0PN.cjs +0 -2
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/reducer.d.ts +0 -39
  70. package/dist/reducer.d.ts.map +0 -1
  71. package/dist/roundHalfToEven.d.ts.map +0 -1
  72. package/dist/types.d.ts +0 -253
  73. package/dist/types.d.ts.map +0 -1
  74. package/dist/utils/simple-logger.d.ts.map +0 -1
  75. package/dist/utils.d.ts +0 -61
  76. package/dist/utils.d.ts.map +0 -1
  77. /package/dist/{GlobalDebugOverlay.d.ts → src/GlobalDebugOverlay.d.ts} +0 -0
  78. /package/dist/{PanelGroup.d.ts → src/PanelGroup.d.ts} +0 -0
  79. /package/dist/{context.d.ts → src/context.d.ts} +0 -0
  80. /package/dist/{roundHalfToEven.d.ts → src/roundHalfToEven.d.ts} +0 -0
  81. /package/dist/{utils → src/utils}/simple-logger.d.ts +0 -0
package/src/index.ts CHANGED
@@ -5,44 +5,69 @@
5
5
  * 再利用可能なリサイズパネルコンポーネントとユーティリティ
6
6
  */
7
7
 
8
+ export type { LayoutAllocation, PanelBounds } from "./allocateLayout"
9
+ export { allocatePanelSizes, isPixelPanel, resolvePanelBounds } from "./allocateLayout"
8
10
  export { PanelGroupContext, usePanelGroup } from "./context"
9
11
  export { usePanelControls, useResizablePanels } from "./hooks"
10
12
  export { Panel } from "./Panel"
11
13
  export { PanelGroup } from "./PanelGroup"
12
14
  export { PanelResizeHandle } from "./PanelResizeHandle"
13
-
15
+ export { findLayoutInvariantBreach, getPanelPreferenceInPixels, initialPanelGroupLayoutState, panelReducer } from "./reducer"
14
16
  export type {
15
17
  CollapsibleConfig,
16
18
  CollapsibleDirection,
17
19
  ContainerAxisMeasurement,
18
- ContainerSize,
19
20
  FlexibleSize,
21
+ LayoutConstraintViolation,
22
+ LayoutConstraintViolationReason,
23
+ PanelAction,
20
24
  PanelCollapseDirection,
21
25
  PanelDirection,
22
26
  PanelGroupContextValue,
27
+ PanelGroupLayoutState,
23
28
  PanelGroupProps,
24
29
  PanelLayoutData,
30
+ PanelMeasurement,
25
31
  PanelProps,
32
+ PanelRegistration,
33
+ PanelResizeHandleIndicatorConfig,
26
34
  PanelResizeHandleProps,
35
+ PersistedPanelSize,
36
+ ResizeHandleLayoutData,
27
37
  SizeConfig,
28
38
  SizeUnit,
29
39
  } from "./types"
30
-
31
40
  export {
41
+ calculateSnapThreshold,
32
42
  clamp,
43
+ findOwningGroup,
33
44
  getConstraintInPixels,
34
45
  getContainerSize,
46
+ getGroupLayoutElements,
35
47
  loadLayout,
36
48
  normalizeSizeConfig,
49
+ percentageToPixels,
37
50
  saveLayout,
51
+ toRoundedPercentage,
38
52
  } from "./utils"
39
53
 
54
+ /**
55
+ * Safely escape a selector identifier for use in CSS query selectors.
56
+ * セレクタ文字列を安全にエスケープする補助関数。
57
+ */
58
+ const escapeIdentifier = (id: string): string => {
59
+ return typeof CSS !== "undefined" && typeof CSS.escape === "function" ? CSS.escape(id) : id.replace(/["\\]/g, "\\$&")
60
+ }
61
+
40
62
  /**
41
63
  * Locate a panel element in the DOM by its data attribute.
42
64
  * data 属性を手がかりにパネル要素を DOM から取得する補助関数。
43
65
  */
44
66
  export const getPanelElement = (id: string): HTMLElement | null => {
45
- return document.querySelector(`[data-panel-id="${id}"]`)
67
+ if (typeof document === "undefined") {
68
+ return null
69
+ }
70
+ return document.querySelector(`[data-panel-id="${escapeIdentifier(id)}"]`)
46
71
  }
47
72
 
48
73
  /**
@@ -50,7 +75,10 @@ export const getPanelElement = (id: string): HTMLElement | null => {
50
75
  * data 属性を手がかりにパネルグループ要素を DOM から取得する補助関数。
51
76
  */
52
77
  export const getPanelGroupElement = (id: string): HTMLElement | null => {
53
- return document.querySelector(`[data-panel-group-id="${id}"]`)
78
+ if (typeof document === "undefined") {
79
+ return null
80
+ }
81
+ return document.querySelector(`[data-panel-group-id="${escapeIdentifier(id)}"]`)
54
82
  }
55
83
 
56
84
  /**
@@ -58,5 +86,8 @@ export const getPanelGroupElement = (id: string): HTMLElement | null => {
58
86
  * data 属性を手がかりにリサイズハンドル要素を DOM から取得する補助関数。
59
87
  */
60
88
  export const getResizeHandleElement = (id: string): HTMLElement | null => {
61
- return document.querySelector(`[data-resize-handle-id="${id}"]`)
89
+ if (typeof document === "undefined") {
90
+ return null
91
+ }
92
+ return document.querySelector(`[data-resize-handle-id="${escapeIdentifier(id)}"]`)
62
93
  }