@byeolnaerim/flex-layout 0.0.4 → 0.0.6

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 (82) hide show
  1. package/README.en.md +314 -0
  2. package/README.ko.md +312 -0
  3. package/README.md +314 -0
  4. package/dist/components.cjs +651 -657
  5. package/dist/components.cjs.map +1 -1
  6. package/dist/components.js +3027 -5
  7. package/dist/components.js.map +1 -1
  8. package/dist/flex-layout/components/FlexLayout.d.ts +2 -0
  9. package/dist/flex-layout/components/FlexLayoutContainer.d.ts +2 -0
  10. package/dist/flex-layout/components/FlexLayoutResizePanel.d.ts +2 -0
  11. package/dist/flex-layout/components/FlexLayoutSplitScreen.d.ts +11 -0
  12. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.d.ts +27 -0
  13. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.d.ts +5 -0
  14. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.d.ts +8 -0
  15. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.d.ts +3 -0
  16. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.d.ts +9 -0
  17. package/dist/flex-layout/components/FlexLayoutStickyBox.d.ts +29 -0
  18. package/dist/flex-layout/components/index.d.ts +7 -0
  19. package/dist/flex-layout/hooks/index.d.ts +2 -0
  20. package/dist/{useDrag-DR01Ob3s.d.ts → flex-layout/hooks/useDrag.d.ts} +19 -22
  21. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.d.ts +28 -0
  22. package/dist/{hooks.d.ts → flex-layout/hooks/useListPaging.d.ts} +6 -12
  23. package/dist/flex-layout/hooks/useSizes.d.ts +8 -0
  24. package/dist/flex-layout/index.d.ts +5 -0
  25. package/dist/flex-layout/providers/FlexLayoutContext.d.ts +8 -0
  26. package/dist/flex-layout/providers/FlexLayoutHooks.d.ts +51 -0
  27. package/dist/flex-layout/providers/index.d.ts +1 -0
  28. package/dist/flex-layout/store/FlexLayoutContainerStore.d.ts +62 -0
  29. package/dist/flex-layout/store/index.d.ts +1 -0
  30. package/dist/flex-layout/styles/FlexLayout.module.css +416 -0
  31. package/dist/flex-layout/styles/listScroll.module.css +85 -0
  32. package/dist/flex-layout/styles/shake.module.css +41 -0
  33. package/dist/flex-layout/types/FlexDirectionTypes.d.ts +6 -0
  34. package/dist/flex-layout/types/FlexLayoutTypes.d.ts +53 -0
  35. package/dist/flex-layout/utils/FlexLayoutUtils.d.ts +26 -0
  36. package/dist/flex-layout/utils/index.d.ts +1 -0
  37. package/dist/hooks.cjs.map +1 -1
  38. package/dist/hooks.js +407 -3
  39. package/dist/hooks.js.map +1 -1
  40. package/dist/index.cjs +681 -687
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.d.ts +1 -10
  43. package/dist/index.js +3396 -9
  44. package/dist/index.js.map +1 -1
  45. package/dist/providers.js +400 -4
  46. package/dist/providers.js.map +1 -1
  47. package/dist/store.js +180 -2
  48. package/dist/store.js.map +1 -1
  49. package/dist/utils.js +195 -2
  50. package/dist/utils.js.map +1 -1
  51. package/package.json +18 -45
  52. package/dist/FlexLayoutSplitScreenDragBox-eCtq4kLd.d.cts +0 -31
  53. package/dist/FlexLayoutSplitScreenDragBox-eCtq4kLd.d.ts +0 -31
  54. package/dist/chunk-3EDKZTM3.js +0 -3
  55. package/dist/chunk-3EDKZTM3.js.map +0 -1
  56. package/dist/chunk-5HWEFTNQ.js +0 -176
  57. package/dist/chunk-5HWEFTNQ.js.map +0 -1
  58. package/dist/chunk-7J5JUVZK.js +0 -3
  59. package/dist/chunk-7J5JUVZK.js.map +0 -1
  60. package/dist/chunk-CFQQ6ZDC.js +0 -182
  61. package/dist/chunk-CFQQ6ZDC.js.map +0 -1
  62. package/dist/chunk-JM3CZ5DU.js +0 -238
  63. package/dist/chunk-JM3CZ5DU.js.map +0 -1
  64. package/dist/chunk-PMTZFSP4.js +0 -219
  65. package/dist/chunk-PMTZFSP4.js.map +0 -1
  66. package/dist/chunk-UYI4Z27V.js +0 -2432
  67. package/dist/chunk-UYI4Z27V.js.map +0 -1
  68. package/dist/chunk-W4CNFJTK.js +0 -197
  69. package/dist/chunk-W4CNFJTK.js.map +0 -1
  70. package/dist/chunk-YIHCWXKY.js +0 -3
  71. package/dist/chunk-YIHCWXKY.js.map +0 -1
  72. package/dist/components.d.cts +0 -122
  73. package/dist/components.d.ts +0 -122
  74. package/dist/hooks.d.cts +0 -37
  75. package/dist/index.d.cts +0 -10
  76. package/dist/providers.d.cts +0 -54
  77. package/dist/providers.d.ts +0 -54
  78. package/dist/store.d.cts +0 -67
  79. package/dist/store.d.ts +0 -67
  80. package/dist/useDrag-CYQnhUFk.d.cts +0 -108
  81. package/dist/utils.d.cts +0 -28
  82. package/dist/utils.d.ts +0 -28
@@ -0,0 +1,416 @@
1
+ .flex-layout {
2
+ display: flex;
3
+ height: 100%;
4
+ width: 100%;
5
+ overflow: auto;
6
+ overflow-wrap: revert;
7
+ position: relative;
8
+ /* -ms-overflow-style: none;
9
+ scrollbar-width: none; */
10
+ /* &::-webkit-scrollbar {
11
+ display: none;
12
+ } */
13
+ &[data-direction='column'] {
14
+ flex-direction: column;
15
+ & > .flex-resize-panel {
16
+ height: 4px;
17
+ width: auto;
18
+ cursor: ns-resize;
19
+ &:hover > .hover,
20
+ &:hover > .hover[data-is_hover],
21
+ &:active > .hover {
22
+ height: 3px;
23
+ width: 100%;
24
+ }
25
+ }
26
+ & > .flex-container > .flex-content-fit-wrapper {
27
+ width: 100%;
28
+ height: fit-content;
29
+ & > * {
30
+ width: 100%;
31
+ height: fit-content;
32
+ }
33
+ }
34
+ }
35
+
36
+ &[data-direction='row'] {
37
+ flex-direction: row;
38
+ & > .flex-resize-panel {
39
+ width: 4px;
40
+ height: auto;
41
+ cursor: ew-resize;
42
+ &:hover > .hover,
43
+ &:hover > .hover[data-is_hover],
44
+ &:active > .hover {
45
+ width: 3px;
46
+ height: 100%;
47
+ }
48
+ }
49
+ & > .flex-container > .flex-content-fit-wrapper {
50
+ width: fit-content;
51
+ height: 100%;
52
+ & > * {
53
+ width: fit-content;
54
+ height: 100%;
55
+ }
56
+ }
57
+ }
58
+ & > .flex-container {
59
+ overflow: hidden;
60
+ box-sizing: border-box;
61
+ &[data-is_resize_panel='true'] {
62
+ flex: 1 1 0%;
63
+ }
64
+ &[data-is_resize_panel='false'] {
65
+ flex: 0 0 0%;
66
+ }
67
+ & > *:not(.flex-content-fit-wrapper) {
68
+ width: 100%;
69
+ height: 100%;
70
+ }
71
+ }
72
+ & .flex-resize-panel {
73
+ background-color: rgb(115 115 115);
74
+ z-index: 1001;
75
+ display: flex;
76
+ justify-content: center;
77
+ align-items: center;
78
+ flex: 0 0 0.1%;
79
+ position: relative;
80
+ -moz-user-select: -moz-none;
81
+ -khtml-user-select: none;
82
+ -webkit-user-select: none;
83
+ -ms-user-select: none;
84
+ user-select: none;
85
+ right: 0;
86
+ bottom: 0;
87
+
88
+ &:hover,
89
+ &:active {
90
+ animation-name: drag-panel-hover;
91
+ animation-fill-mode: forwards;
92
+ animation-direction: normal;
93
+ animation-duration: 0.3s;
94
+ animation-iteration-count: 1;
95
+ animation-timing-function: cubic-bezier(1, -0.37, 0.73, 0.8);
96
+ }
97
+
98
+ &:hover > .hover,
99
+ &:hover > .hover[data-is_hover],
100
+ &:active > .hover {
101
+ background-color: #0066ffb5;
102
+ z-index: 3002;
103
+ position: absolute;
104
+ display: block;
105
+ opacity: 1;
106
+ visibility: inherit;
107
+ transition: all 1s;
108
+ animation-name: drag-panel-hover-highlight;
109
+ animation-fill-mode: forwards;
110
+ animation-direction: normal;
111
+ animation-duration: 0.3s;
112
+ animation-iteration-count: 1;
113
+ animation-timing-function: cubic-bezier(1, -0.37, 0.73, 0.8);
114
+ }
115
+
116
+ & > .hover {
117
+ opacity: 0;
118
+ visibility: hidden;
119
+ transition: all 1s;
120
+ }
121
+ &.bottom-cylinder {
122
+ &::after {
123
+ border-bottom-left-radius: 15px;
124
+ border-bottom-right-radius: 15px;
125
+ bottom: 100%;
126
+ }
127
+ }
128
+ &.bottom-cylinder-reverse {
129
+ &::after {
130
+ border-top-left-radius: 15px;
131
+ border-top-right-radius: 15px;
132
+ bottom: 100%;
133
+ }
134
+ }
135
+ &.top-cylinder {
136
+ border-bottom-left-radius: 15px;
137
+ border-bottom-right-radius: 15px;
138
+ }
139
+ &.right-cylinder {
140
+ &::after {
141
+ border-top-right-radius: 15px;
142
+ border-bottom-right-radius: 15px;
143
+ left: 100%;
144
+ }
145
+ }
146
+ &.left-cylinder {
147
+ &::after {
148
+ right: 100%;
149
+ }
150
+ }
151
+ &.bottom-cylinder,
152
+ &.bottom-cylinder-reverse,
153
+ &.top-cylinder,
154
+ &.left-cylinder,
155
+ &.right-cylinder {
156
+ &::after {
157
+ background-color: hsla(0, 0%, 54%, 0.32);
158
+ content: ' ';
159
+ position: absolute;
160
+ z-index: 3002;
161
+ }
162
+ &:hover,
163
+ &:hover::after,
164
+ &:active,
165
+ &:active::after {
166
+ background-color: rgb(0 102 255 / 45%);
167
+ transition: background-color 1s;
168
+ }
169
+ }
170
+ &.bottom-cylinder,
171
+ &.top-cylinder,
172
+ &.bottom-cylinder-reverse {
173
+ &::after {
174
+ height: 1.1rem;
175
+ width: 60%;
176
+ }
177
+ &:not(.bottom-cylinder-reverse)::after {
178
+ top: 0;
179
+ }
180
+ }
181
+ &.left-cylinder,
182
+ &.right-cylinder {
183
+ &::after {
184
+ width: 1.1rem;
185
+ height: 60%;
186
+ }
187
+ }
188
+ }
189
+ }
190
+
191
+ @keyframes drag-panel-hover {
192
+ 0% {
193
+ background-color: #b1b1b1d6;
194
+ }
195
+
196
+ 10% {
197
+ background-color: #b1b1b1ba;
198
+ }
199
+
200
+ 20% {
201
+ background-color: #b1b1b194;
202
+ }
203
+
204
+ 40% {
205
+ background-color: #b1b1b17d;
206
+ }
207
+
208
+ 60% {
209
+ background-color: #b1b1b152;
210
+ }
211
+
212
+ 80% {
213
+ background-color: #b1b1b130;
214
+ }
215
+
216
+ 100% {
217
+ background-color: #b1b1b100;
218
+ animation-play-state: paused;
219
+ }
220
+ }
221
+
222
+ @keyframes drag-panel-hover-highlight {
223
+ 0% {
224
+ opacity: 0;
225
+ }
226
+
227
+ 10% {
228
+ opacity: 0.1;
229
+ }
230
+
231
+ 20% {
232
+ opacity: 0.2;
233
+ }
234
+
235
+ 40% {
236
+ opacity: 0.4;
237
+ }
238
+
239
+ 60% {
240
+ opacity: 0.6;
241
+ }
242
+
243
+ 80% {
244
+ opacity: 0.8;
245
+ }
246
+
247
+ 100% {
248
+ opacity: 1;
249
+ animation-play-state: paused;
250
+ }
251
+ }
252
+
253
+ .flex-split-screen {
254
+ width: 100%;
255
+ height: 100%;
256
+ position: relative;
257
+ & .flex-split-screen-boundary-container {
258
+ position: absolute;
259
+ font-family: Arial, sans-serif;
260
+ transition:
261
+ background-color 0.3s,
262
+ border-color 0.3s;
263
+ color: #00acc1;
264
+ border: 2px dashed #00acc1;
265
+ border-radius: 10px;
266
+ background-color: #0014ff17;
267
+ font-size: 1.5rem;
268
+ display: flex;
269
+ align-items: center;
270
+ justify-content: center;
271
+ font-weight: bold;
272
+ z-index: 9001;
273
+ }
274
+ & .flex-split-screen-drag-box-title-wrapper-sticky {
275
+ position: sticky;
276
+ top: 0;
277
+ z-index: 2001;
278
+ background: #f0f0f0;
279
+ }
280
+ & .flex-split-screen-drag-box-title-wrapper {
281
+ html[data-color-scheme='dark'] & {
282
+ background: #3c3c3c;
283
+ box-shadow: 0px 1px 20px 0px #1e1e1e;
284
+ }
285
+ html[data-color-scheme='light'] & {
286
+ background: #edf1f5;
287
+ box-shadow: 0px 1px 20px 0px #e5e5e5;
288
+ }
289
+ scrollbar-width: initial;
290
+ scrollbar-color: initial;
291
+ display: flex;
292
+ justify-content: space-between;
293
+ transition:
294
+ background 0.3s,
295
+ color 0.3s,
296
+ box-shadow 0.3s;
297
+ position: relative;
298
+ border-bottom: 1px solid #e5e5e5;
299
+ & .flex-split-screen-drag-box-title-container {
300
+ display: flex;
301
+ width: 100%;
302
+ background: inherit;
303
+ }
304
+ }
305
+ }
306
+ .flex-split-screen-drag-box-title-item {
307
+ display: flex;
308
+ align-items: baseline;
309
+ padding-right: 0.5rem;
310
+ padding-left: 0.1rem;
311
+ &:last-child:not(:first-child) {
312
+ border-right: 2px solid #00000012;
313
+ }
314
+ &:not(.active) {
315
+ box-shadow: inset 0 0 20px 20px #00000000;
316
+ border-bottom: 1px solid #007fff40;
317
+ }
318
+ &:hover {
319
+ html[data-color-scheme='dark'] & {
320
+ background: #494949;
321
+ }
322
+ html[data-color-scheme='light'] & {
323
+ background: #e0e0e0;
324
+ }
325
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
326
+ }
327
+ &:active {
328
+ box-shadow: inset 0px 0px 17px 0px #00000029;
329
+ transform: scale(0.97);
330
+ }
331
+ & button {
332
+ background: none;
333
+ border: none;
334
+ color: #bbbbbb;
335
+ font-weight: bold;
336
+ font-family: none;
337
+ font-size: 0.9rem;
338
+ cursor: pointer;
339
+ padding: 0 0.25rem;
340
+ }
341
+ &.active {
342
+ html[data-color-scheme='dark'] & {
343
+ color: #b9af3a;
344
+ }
345
+ html[data-color-scheme='light'] & {
346
+ color: #494300;
347
+ }
348
+ font-weight: bold;
349
+ box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
350
+ & button {
351
+ color: #5f5f5f;
352
+ }
353
+ }
354
+ }
355
+ .flex-split-screen-drag-box-title-more {
356
+ display: flex;
357
+ flex-direction: column;
358
+ line-height: 0.3;
359
+ padding: 0rem 0.65rem 0.5rem;
360
+ font-size: 1.2rem;
361
+ font-weight: bold;
362
+ border: none;
363
+ background: none;
364
+ color: black;
365
+ justify-content: space-evenly;
366
+ cursor: pointer;
367
+ background: inherit;
368
+ &:hover {
369
+ background: #797979;
370
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
371
+ }
372
+ &:active {
373
+ box-shadow: inset 0px 0px 17px 0px #00000029;
374
+ transform: scale(0.97);
375
+ }
376
+ }
377
+ .flex-split-screen-drag-box {
378
+ align-self: center;
379
+ -webkit-touch-callout: none; /* iOS */
380
+ -webkit-user-select: none; /* Safari */
381
+ -khtml-user-select: none; /* Konqueror */
382
+ -moz-user-select: none; /* Firefox */
383
+ -ms-user-select: none; /* IE 10+ */
384
+ user-select: none; /* Standard syntax */
385
+ /* pointer-events: none; */
386
+ -webkit-tap-highlight-color: transparent;
387
+ /* touch-action: none; */
388
+ -webkit-touch-callout: none;
389
+ }
390
+ .flex-split-screen-drag-box-clone {
391
+ -webkit-touch-callout: none; /* iOS */
392
+ -webkit-user-select: none; /* Safari */
393
+ -khtml-user-select: none; /* Konqueror */
394
+ -moz-user-select: none; /* Firefox */
395
+ -ms-user-select: none; /* IE 10+ */
396
+ user-select: none; /* Standard syntax */
397
+ /* pointer-events: none; */
398
+ -webkit-tap-highlight-color: transparent;
399
+ /* touch-action: none; */
400
+ -webkit-touch-callout: none;
401
+
402
+ display: flex;
403
+ background-color: #adadad;
404
+ flex-direction: column;
405
+ padding: 0.2rem 0.4rem;
406
+ border-radius: 7px;
407
+ line-height: 99%;
408
+ z-index: 9001;
409
+ & span:first-child {
410
+ font-weight: bold;
411
+ font-size: 0.85rem;
412
+ }
413
+ & span:last-child {
414
+ font-size: 0.75rem;
415
+ }
416
+ }
@@ -0,0 +1,85 @@
1
+ .default-scroll {
2
+ overflow: auto;
3
+ }
4
+ .list-scroll {
5
+ position: relative;
6
+ flex-wrap: nowrap;
7
+ text-wrap: nowrap;
8
+ white-space: nowrap;
9
+ scroll-snap-type: x mandatory;
10
+ scroll-behavior: smooth;
11
+ scrollbar-gutter: stable both-edges;
12
+ &.y {
13
+ overflow-y: scroll;
14
+ overflow-x: clip;
15
+ padding-left: 0.15rem;
16
+ padding-right: 0.4rem;
17
+ &:not(:hover) {
18
+ padding-right: 0.4rem;
19
+ padding-top: 0.4rem;
20
+ }
21
+ &:hover {
22
+ padding-right: 0;
23
+ padding-left: top;
24
+ }
25
+ }
26
+
27
+ &.x {
28
+ overflow-y: clip;
29
+ overflow-x: scroll;
30
+ padding-top: 0.15rem;
31
+ padding-bottom: 0.4rem;
32
+ &:not(:hover) {
33
+ padding-bottom: 0.4rem;
34
+ padding-left: 0.4rem;
35
+ }
36
+ &:hover {
37
+ padding-bottom: 0;
38
+ padding-left: 0;
39
+ }
40
+ }
41
+
42
+ &.none {
43
+ scrollbar-width: none !important;
44
+
45
+ &::-webkit-scrollbar {
46
+ display: none !important;
47
+ }
48
+ }
49
+
50
+ &::-webkit-scrollbar {
51
+ display: none;
52
+ }
53
+
54
+ &.show-scroll::-webkit-scrollbar,
55
+ &:hover::-webkit-scrollbar {
56
+ scrollbar-width: thin;
57
+ display: initial;
58
+ width: 0.45rem;
59
+ height: 0.45rem;
60
+ }
61
+
62
+ &.show-scroll::-webkit-scrollbar-thumb,
63
+ &:hover::-webkit-scrollbar-thumb {
64
+ background: #222; /* 스크롤 위치 */
65
+ border-radius: 6px;
66
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5); /* 입체감 있는 그림자 */
67
+ transition:
68
+ background 0.3s ease,
69
+ box-shadow 0.3s ease;
70
+ }
71
+
72
+ &.show-scroll::-webkit-scrollbar-thumb:hover,
73
+ &.show-scroll::-webkit-scrollbar-thumb:active,
74
+ &:hover::-webkit-scrollbar-thumb:hover {
75
+ background: linear-gradient(145deg, #ffecec, #f1f1f1);
76
+ /* 호버 시 밝아지는 효과 */
77
+ }
78
+
79
+ &.show-scroll::-webkit-scrollbar-track,
80
+ &:hover::-webkit-scrollbar-track {
81
+ background: linear-gradient(145deg, #989898, #7c7c7c);
82
+ border-radius: 6px;
83
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3); /* 트랙 내부에 부드러운 그림자 */
84
+ }
85
+ }
@@ -0,0 +1,41 @@
1
+ .shake {
2
+ animation-name: shake;
3
+ animation-duration: 0.5s;
4
+ transform-origin: 50% 50%;
5
+ animation-iteration-count: infinite;
6
+ }
7
+ @keyframes shake {
8
+ 0% {
9
+ transform: translate(2px, 1px) rotate(0deg);
10
+ }
11
+ 10% {
12
+ transform: translate(-1px, -2px) rotate(-1deg);
13
+ }
14
+ 20% {
15
+ transform: translate(-3px, 0px) rotate(1deg);
16
+ }
17
+ 30% {
18
+ transform: translate(0px, 2px) rotate(0deg);
19
+ }
20
+ 40% {
21
+ transform: translate(1px, -1px) rotate(1deg);
22
+ }
23
+ 50% {
24
+ transform: translate(-1px, 2px) rotate(-1deg);
25
+ }
26
+ 60% {
27
+ transform: translate(-3px, 1px) rotate(0deg);
28
+ }
29
+ 70% {
30
+ transform: translate(2px, 1px) rotate(-1deg);
31
+ }
32
+ 80% {
33
+ transform: translate(-1px, -1px) rotate(1deg);
34
+ }
35
+ 90% {
36
+ transform: translate(2px, 2px) rotate(0deg);
37
+ }
38
+ 100% {
39
+ transform: translate(1px, -2px) rotate(-1deg);
40
+ }
41
+ }
@@ -0,0 +1,6 @@
1
+ export type FlexDirectionModelType = {
2
+ xy: 'x' | 'y';
3
+ targetDirection: 'left' | 'top';
4
+ sizeName: 'width' | 'height' | keyof DOMRect;
5
+ resizeCursor: 'ew-resize' | 'ns-resize';
6
+ };
@@ -0,0 +1,53 @@
1
+ import { ReactElement, ReactNode } from "react";
2
+ export type ResizePanelMode = "default" | "bottom-cylinder" | "bottom-cylinder-reverse" | "top-cylinder" | "left-cylinder" | "right-cylinder";
3
+ export type Direction = "row" | "column";
4
+ export type PanelMovementMode = "bulldozer" | "divorce" | "stalker";
5
+ export type FitContent = "width" | "height";
6
+ export interface FlexLayoutChildrenType {
7
+ isInitialResizable?: boolean;
8
+ grow?: number;
9
+ prevGrow?: number;
10
+ panelMode?: ResizePanelMode;
11
+ isFitContent?: boolean;
12
+ isFitResize?: boolean;
13
+ isResizePanel?: boolean;
14
+ containerName: string;
15
+ children: ReactNode;
16
+ className?: string;
17
+ }
18
+ export interface FlexContainerProps extends FlexLayoutChildrenType {
19
+ readonly fitContent?: FitContent;
20
+ readonly containerCount?: number;
21
+ readonly layoutName?: string;
22
+ }
23
+ export interface FlexLayoutPanelStyle {
24
+ color: string;
25
+ hoverColor?: string;
26
+ }
27
+ export interface FlexLayoutProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "id" | "panelClassName"> {
28
+ direction: Direction;
29
+ children: ReactElement<FlexLayoutChildrenType>[] | ReactElement<FlexLayoutChildrenType>;
30
+ layoutName: string;
31
+ isSplitScreen?: boolean;
32
+ ref?: React.Ref<HTMLDivElement>;
33
+ className?: string;
34
+ panelClassName?: string;
35
+ panelMovementMode?: PanelMovementMode;
36
+ }
37
+ export type FlexLayoutResizePanelProps = {
38
+ direction: string;
39
+ containerCount: number;
40
+ panelMode?: ResizePanelMode;
41
+ containerName: string;
42
+ layoutName: string;
43
+ panelMovementMode: PanelMovementMode;
44
+ panelClassName?: string;
45
+ };
46
+ export interface FlexLayoutContextValue {
47
+ layoutName: string;
48
+ direction: Direction;
49
+ panelMovementMode: PanelMovementMode;
50
+ panelClassName?: string;
51
+ containerCount: number;
52
+ fitContent: FitContent;
53
+ }
@@ -0,0 +1,26 @@
1
+ export declare function isDocumentOut({ x, y }: {
2
+ x: number;
3
+ y: number;
4
+ }): boolean | undefined;
5
+ export declare function getClientXy(event: Event): {
6
+ clientX: number;
7
+ clientY: number;
8
+ } | undefined;
9
+ export declare function isOverMove(elementSize: number, elementMinSize: number): boolean;
10
+ export declare function findNotCloseFlexContent(target: HTMLElement | Element | null, direction: 'previousElementSibling' | 'nextElementSibling'): HTMLElement | null;
11
+ export declare function remain(flexContainerList: Array<HTMLElement>): Promise<unknown>;
12
+ export declare function resize(list: Array<HTMLElement>, totalGrow: number): Promise<unknown>;
13
+ export declare function mathWeight(totalCount: number, totalGrow: number): number;
14
+ export declare function mathGrow(childSize: number, parentSize: number, containerCount: number): number;
15
+ export declare function getGrow(growTarget: HTMLElement | Element): number;
16
+ export declare function closeFlex(resizeTarget: HTMLElement, containers: HTMLElement[], { isResize, isDsiabledResizePanel, sizeName, }: {
17
+ isResize?: boolean;
18
+ isDsiabledResizePanel?: boolean;
19
+ sizeName: 'width' | 'height';
20
+ }): Promise<unknown>;
21
+ export declare function openFlex(resizeTarget: HTMLElement, containers: HTMLElement[], { isPrevSizeOpen, isResize, openGrowImportant, sizeName, }: {
22
+ isPrevSizeOpen?: boolean;
23
+ isResize?: boolean;
24
+ openGrowImportant?: number;
25
+ sizeName?: 'width' | 'height';
26
+ }): Promise<unknown>;
@@ -0,0 +1 @@
1
+ export * from "./FlexLayoutUtils";