@goncharovv/layout 0.1.4 → 0.2.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.
@@ -1,7 +1,306 @@
1
- import { ComponentProps, FunctionComponent } from 'react';
1
+ import { ComponentProps } from 'react';
2
2
  import { StackProps } from '../Stacks';
3
- type StackFormProps = Omit<StackProps<'div'>, 'as'>;
4
- export interface FormActionsProps extends StackFormProps, Omit<ComponentProps<'div'>, keyof StackFormProps> {
3
+ import './Form.css';
4
+ type StackFormActionsProps = Omit<StackProps<'div'>, 'as'>;
5
+ export interface FormActionsProps extends StackFormActionsProps, Omit<ComponentProps<'div'>, keyof StackFormActionsProps> {
5
6
  }
6
- export declare const FormActions: FunctionComponent<FormActionsProps>;
7
+ export declare const FormActions: <TElementType extends import("react").ElementType = "div">(props: import("../Stacks/factory").StackPropsBuilder<TElementType, FormActionsProps, {
8
+ p?: import("../../shared/spacings").Spacing | undefined;
9
+ ph?: import("../../shared/spacings").Spacing | undefined;
10
+ pv?: import("../../shared/spacings").Spacing | undefined;
11
+ style?: import("react").CSSProperties | undefined;
12
+ align?: import("csstype").Property.AlignItems | undefined;
13
+ justify?: import("csstype").Property.JustifyContent | undefined;
14
+ wrap?: true | import("csstype").Property.FlexWrap | undefined;
15
+ gap?: number | undefined;
16
+ flex?: import("csstype").Property.Flex<string | number> | undefined;
17
+ centered?: boolean | undefined;
18
+ width?: import("csstype").Property.Width<string | number> | undefined;
19
+ height?: import("csstype").Property.Height<string | number> | undefined;
20
+ className?: string | undefined;
21
+ children?: import("react").ReactNode;
22
+ spacing?: import("../../shared/spacings").Spacing | undefined;
23
+ horizontal?: boolean | undefined;
24
+ vertical?: boolean | undefined;
25
+ direction?: import("csstype").Property.FlexDirection | undefined;
26
+ slot?: string | undefined | undefined;
27
+ title?: string | undefined | undefined;
28
+ content?: string | undefined | undefined;
29
+ ref?: import("react").Ref<HTMLDivElement> | undefined;
30
+ key?: import("react").Key | null | undefined;
31
+ defaultChecked?: boolean | undefined | undefined;
32
+ defaultValue?: string | number | readonly string[] | undefined;
33
+ suppressContentEditableWarning?: boolean | undefined | undefined;
34
+ suppressHydrationWarning?: boolean | undefined | undefined;
35
+ accessKey?: string | undefined | undefined;
36
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
37
+ autoFocus?: boolean | undefined | undefined;
38
+ contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
39
+ contextMenu?: string | undefined | undefined;
40
+ dir?: string | undefined | undefined;
41
+ draggable?: (boolean | "true" | "false") | undefined;
42
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
43
+ hidden?: boolean | undefined | undefined;
44
+ id?: string | undefined | undefined;
45
+ lang?: string | undefined | undefined;
46
+ nonce?: string | undefined | undefined;
47
+ spellCheck?: (boolean | "true" | "false") | undefined;
48
+ tabIndex?: number | undefined | undefined;
49
+ translate?: "yes" | "no" | undefined | undefined;
50
+ radioGroup?: string | undefined | undefined;
51
+ role?: import("react").AriaRole | undefined;
52
+ about?: string | undefined | undefined;
53
+ datatype?: string | undefined | undefined;
54
+ inlist?: any;
55
+ prefix?: string | undefined | undefined;
56
+ property?: string | undefined | undefined;
57
+ rel?: string | undefined | undefined;
58
+ resource?: string | undefined | undefined;
59
+ rev?: string | undefined | undefined;
60
+ typeof?: string | undefined | undefined;
61
+ vocab?: string | undefined | undefined;
62
+ autoCorrect?: string | undefined | undefined;
63
+ autoSave?: string | undefined | undefined;
64
+ color?: string | undefined | undefined;
65
+ itemProp?: string | undefined | undefined;
66
+ itemScope?: boolean | undefined | undefined;
67
+ itemType?: string | undefined | undefined;
68
+ itemID?: string | undefined | undefined;
69
+ itemRef?: string | undefined | undefined;
70
+ results?: number | undefined | undefined;
71
+ security?: string | undefined | undefined;
72
+ unselectable?: "on" | "off" | undefined | undefined;
73
+ popover?: "" | "auto" | "manual" | undefined | undefined;
74
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
75
+ popoverTarget?: string | undefined | undefined;
76
+ inert?: boolean | undefined | undefined;
77
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
78
+ is?: string | undefined | undefined;
79
+ exportparts?: string | undefined | undefined;
80
+ part?: string | undefined | undefined;
81
+ "aria-activedescendant"?: string | undefined | undefined;
82
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
83
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
84
+ "aria-braillelabel"?: string | undefined | undefined;
85
+ "aria-brailleroledescription"?: string | undefined | undefined;
86
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
87
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
88
+ "aria-colcount"?: number | undefined | undefined;
89
+ "aria-colindex"?: number | undefined | undefined;
90
+ "aria-colindextext"?: string | undefined | undefined;
91
+ "aria-colspan"?: number | undefined | undefined;
92
+ "aria-controls"?: string | undefined | undefined;
93
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
94
+ "aria-describedby"?: string | undefined | undefined;
95
+ "aria-description"?: string | undefined | undefined;
96
+ "aria-details"?: string | undefined | undefined;
97
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
98
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
99
+ "aria-errormessage"?: string | undefined | undefined;
100
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
101
+ "aria-flowto"?: string | undefined | undefined;
102
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
103
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
104
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
105
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
106
+ "aria-keyshortcuts"?: string | undefined | undefined;
107
+ "aria-label"?: string | undefined | undefined;
108
+ "aria-labelledby"?: string | undefined | undefined;
109
+ "aria-level"?: number | undefined | undefined;
110
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
111
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
112
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
113
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
114
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
115
+ "aria-owns"?: string | undefined | undefined;
116
+ "aria-placeholder"?: string | undefined | undefined;
117
+ "aria-posinset"?: number | undefined | undefined;
118
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
119
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
120
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
121
+ "aria-required"?: (boolean | "true" | "false") | undefined;
122
+ "aria-roledescription"?: string | undefined | undefined;
123
+ "aria-rowcount"?: number | undefined | undefined;
124
+ "aria-rowindex"?: number | undefined | undefined;
125
+ "aria-rowindextext"?: string | undefined | undefined;
126
+ "aria-rowspan"?: number | undefined | undefined;
127
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
128
+ "aria-setsize"?: number | undefined | undefined;
129
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
130
+ "aria-valuemax"?: number | undefined | undefined;
131
+ "aria-valuemin"?: number | undefined | undefined;
132
+ "aria-valuenow"?: number | undefined | undefined;
133
+ "aria-valuetext"?: string | undefined | undefined;
134
+ dangerouslySetInnerHTML?: {
135
+ __html: string | TrustedHTML;
136
+ } | undefined | undefined;
137
+ onCopy?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
138
+ onCopyCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
139
+ onCut?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
140
+ onCutCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
141
+ onPaste?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
142
+ onPasteCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
143
+ onCompositionEnd?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
144
+ onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
145
+ onCompositionStart?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
146
+ onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
147
+ onCompositionUpdate?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
148
+ onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
149
+ onFocus?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
150
+ onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
151
+ onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
152
+ onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
153
+ onChange?: import("react").FormEventHandler<HTMLDivElement> | undefined;
154
+ onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
155
+ onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
156
+ onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
157
+ onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
158
+ onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
159
+ onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
160
+ onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
161
+ onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
162
+ onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
163
+ onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
164
+ onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
165
+ onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
166
+ onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
167
+ onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
168
+ onErrorCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
169
+ onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
170
+ onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
171
+ onKeyPress?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
172
+ onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
173
+ onKeyUp?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
174
+ onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
175
+ onAbort?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
176
+ onAbortCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
177
+ onCanPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
178
+ onCanPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
179
+ onCanPlayThrough?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
180
+ onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
181
+ onDurationChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
182
+ onDurationChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
183
+ onEmptied?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
184
+ onEmptiedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
185
+ onEncrypted?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
186
+ onEncryptedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
187
+ onEnded?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
188
+ onEndedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
189
+ onLoadedData?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
190
+ onLoadedDataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
191
+ onLoadedMetadata?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
192
+ onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
193
+ onLoadStart?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
194
+ onLoadStartCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
195
+ onPause?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
196
+ onPauseCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
197
+ onPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
198
+ onPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
199
+ onPlaying?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
200
+ onPlayingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
201
+ onProgress?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
202
+ onProgressCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
203
+ onRateChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
204
+ onRateChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
205
+ onSeeked?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
206
+ onSeekedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
207
+ onSeeking?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
208
+ onSeekingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
209
+ onStalled?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
210
+ onStalledCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
211
+ onSuspend?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
212
+ onSuspendCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
213
+ onTimeUpdate?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
214
+ onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
215
+ onVolumeChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
216
+ onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
217
+ onWaiting?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
218
+ onWaitingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
219
+ onAuxClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
220
+ onAuxClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
221
+ onClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
222
+ onClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
223
+ onContextMenu?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
224
+ onContextMenuCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
225
+ onDoubleClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
226
+ onDoubleClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
227
+ onDrag?: import("react").DragEventHandler<HTMLDivElement> | undefined;
228
+ onDragCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
229
+ onDragEnd?: import("react").DragEventHandler<HTMLDivElement> | undefined;
230
+ onDragEndCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
231
+ onDragEnter?: import("react").DragEventHandler<HTMLDivElement> | undefined;
232
+ onDragEnterCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
233
+ onDragExit?: import("react").DragEventHandler<HTMLDivElement> | undefined;
234
+ onDragExitCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
235
+ onDragLeave?: import("react").DragEventHandler<HTMLDivElement> | undefined;
236
+ onDragLeaveCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
237
+ onDragOver?: import("react").DragEventHandler<HTMLDivElement> | undefined;
238
+ onDragOverCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
239
+ onDragStart?: import("react").DragEventHandler<HTMLDivElement> | undefined;
240
+ onDragStartCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
241
+ onDrop?: import("react").DragEventHandler<HTMLDivElement> | undefined;
242
+ onDropCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
243
+ onMouseDown?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
244
+ onMouseDownCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
245
+ onMouseEnter?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
246
+ onMouseLeave?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
247
+ onMouseMove?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
248
+ onMouseMoveCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
249
+ onMouseOut?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
250
+ onMouseOutCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
251
+ onMouseOver?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
252
+ onMouseOverCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
253
+ onMouseUp?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
254
+ onMouseUpCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
255
+ onSelect?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
256
+ onSelectCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
257
+ onTouchCancel?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
258
+ onTouchCancelCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
259
+ onTouchEnd?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
260
+ onTouchEndCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
261
+ onTouchMove?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
262
+ onTouchMoveCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
263
+ onTouchStart?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
264
+ onTouchStartCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
265
+ onPointerDown?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
266
+ onPointerDownCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
267
+ onPointerMove?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
268
+ onPointerMoveCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
269
+ onPointerUp?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
270
+ onPointerUpCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
271
+ onPointerCancel?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
272
+ onPointerCancelCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
273
+ onPointerEnter?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
274
+ onPointerLeave?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
275
+ onPointerOver?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
276
+ onPointerOverCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
277
+ onPointerOut?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
278
+ onPointerOutCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
279
+ onGotPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
280
+ onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
281
+ onLostPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
282
+ onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
283
+ onScroll?: import("react").UIEventHandler<HTMLDivElement> | undefined;
284
+ onScrollCapture?: import("react").UIEventHandler<HTMLDivElement> | undefined;
285
+ onScrollEnd?: import("react").UIEventHandler<HTMLDivElement> | undefined;
286
+ onScrollEndCapture?: import("react").UIEventHandler<HTMLDivElement> | undefined;
287
+ onWheel?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
288
+ onWheelCapture?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
289
+ onAnimationStart?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
290
+ onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
291
+ onAnimationEnd?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
292
+ onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
293
+ onAnimationIteration?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
294
+ onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
295
+ onToggle?: import("react").ToggleEventHandler<HTMLDivElement> | undefined;
296
+ onBeforeToggle?: import("react").ToggleEventHandler<HTMLDivElement> | undefined;
297
+ onTransitionCancel?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
298
+ onTransitionCancelCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
299
+ onTransitionEnd?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
300
+ onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
301
+ onTransitionRun?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
302
+ onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
303
+ onTransitionStart?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
304
+ onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
305
+ }>) => import("react").ReactNode;
7
306
  export {};
@@ -1,13 +1,6 @@
1
- import { createStack } from '../Stacks/factory';
2
- import { getStackClassesAndStyles } from '../Stacks/Stack';
3
- export const FormActions = createStack('FormActions', {
4
- overrideProps: (props) => {
5
- const { direction, horizontal, vertical, className, style, ...rest } = props;
6
- const stackClassesAndStyles = getStackClassesAndStyles({ direction, horizontal, vertical, className, style });
7
- return {
8
- as: 'div',
9
- ...rest,
10
- ...stackClassesAndStyles,
11
- };
12
- },
1
+ import { createCustomStackComponent } from '../Stacks/Stack';
2
+ import './Form.css';
3
+ export const FormActions = createCustomStackComponent('FormActions', {
4
+ Element: 'div',
5
+ defaultDirection: 'row',
13
6
  });
@@ -5,15 +5,14 @@ export interface HStackProps extends BaseStackProps {
5
5
  export declare const HStack: <TElementType extends import("react").ElementType = "div">(props: import("./factory").StackPropsBuilder<TElementType, HStackProps, {
6
6
  reversed?: boolean | undefined;
7
7
  as?: "div" | undefined;
8
- alignItems?: import("csstype").Property.AlignItems | undefined;
9
8
  align?: import("csstype").Property.AlignItems | undefined;
10
- justifyContent?: import("csstype").Property.JustifyContent | undefined;
11
9
  justify?: import("csstype").Property.JustifyContent | undefined;
12
10
  wrap?: true | import("csstype").Property.FlexWrap | undefined;
13
11
  gap?: number | undefined;
14
12
  flex?: import("csstype").Property.Flex<string | number> | undefined;
15
13
  centered?: boolean | undefined;
16
14
  width?: import("csstype").Property.Width<string | number> | undefined;
15
+ height?: import("csstype").Property.Height<string | number> | undefined;
17
16
  style?: import("react").CSSProperties | undefined;
18
17
  className?: string | undefined;
19
18
  children?: import("react").ReactNode;
@@ -1,14 +1,7 @@
1
1
  import cn from 'classnames';
2
2
  import { createStack } from './factory';
3
- import styles from './Stack.module.css';
4
3
  export const HStack = createStack('HStack', {
5
- overrideProps: (props) => {
6
- const { reversed, className, ...rest } = props;
7
- return {
8
- ...rest,
9
- className: cn(styles.horizontal, {
10
- [styles.reversed]: reversed,
11
- }, className),
12
- };
13
- },
4
+ getClassName: ({ reversed }) => cn('horizontal', {
5
+ 'reversed': reversed,
6
+ }),
14
7
  });
@@ -1,22 +1,22 @@
1
- .stack {
1
+ .gv-stack {
2
2
  display: flex;
3
3
  }
4
4
 
5
- .vertical {
5
+ .gv-stack.vertical {
6
6
  flex-direction: column;
7
7
  }
8
- .vertical.reversed {
8
+ .gv-stack.vertical.reversed {
9
9
  flex-direction: column-reverse;;
10
10
  }
11
11
 
12
- .horizontal {
12
+ .gv-stack.horizontal {
13
13
  flex-direction: row;
14
14
  }
15
- .horizontal.reversed {
15
+ .gv-stack.horizontal.reversed {
16
16
  flex-direction: row-reverse;
17
17
  }
18
18
 
19
- .centered {
19
+ .gv-stack.centered {
20
20
  align-items: center;
21
21
  justify-content: center;
22
22
  }
@@ -11,15 +11,14 @@ export declare const Stack: <TElementType extends ElementType = "div">(props: im
11
11
  horizontal?: boolean | undefined;
12
12
  direction?: import("csstype").Property.FlexDirection | undefined;
13
13
  as?: "div" | undefined;
14
- alignItems?: import("csstype").Property.AlignItems | undefined;
15
14
  align?: import("csstype").Property.AlignItems | undefined;
16
- justifyContent?: import("csstype").Property.JustifyContent | undefined;
17
15
  justify?: import("csstype").Property.JustifyContent | undefined;
18
16
  wrap?: true | import("csstype").Property.FlexWrap | undefined;
19
17
  gap?: number | undefined;
20
18
  flex?: import("csstype").Property.Flex<string | number> | undefined;
21
19
  centered?: boolean | undefined;
22
20
  width?: import("csstype").Property.Width<string | number> | undefined;
21
+ height?: import("csstype").Property.Height<string | number> | undefined;
23
22
  style?: CSSProperties | undefined;
24
23
  className?: string | undefined;
25
24
  children?: import("react").ReactNode;
@@ -28,7 +27,8 @@ export declare const Stack: <TElementType extends ElementType = "div">(props: im
28
27
  ph?: import("../../shared/spacings").Spacing | undefined;
29
28
  pv?: import("../../shared/spacings").Spacing | undefined;
30
29
  }>) => import("react").ReactNode;
31
- export declare function getStackClassesAndStyles(props: Pick<StackProps, 'direction' | 'horizontal' | 'vertical' | 'className' | 'style'>): {
32
- className: string;
33
- style: CSSProperties;
34
- };
30
+ export declare function createCustomStackComponent<TProps extends Omit<StackProps, 'as'>>(name: string, options?: {
31
+ Element?: ElementType;
32
+ className?: string;
33
+ defaultDirection?: CSSProperties['flexDirection'];
34
+ }): <TElementType extends ElementType = "div">(props: import("./factory").StackPropsBuilder<TElementType, TProps, { [K in keyof TProps]: TProps[K]; }>) => import("react").ReactNode;
@@ -1,25 +1,16 @@
1
1
  import cn from 'classnames';
2
2
  import { createStack } from './factory';
3
- import styles from './Stack.module.css';
4
- export const Stack = createStack('Stack', {
5
- overrideProps: (props) => {
6
- const { direction, horizontal, vertical, className, style, ...rest } = props;
7
- return {
8
- ...rest,
9
- ...getStackClassesAndStyles({ direction, horizontal, vertical, className, style }),
10
- };
11
- },
12
- });
13
- export function getStackClassesAndStyles(props) {
14
- const { direction, horizontal, vertical, className, style } = props;
15
- return {
16
- className: cn({
17
- [styles.vertical]: vertical && !horizontal && !direction,
18
- [styles.horizontal]: horizontal && !direction,
19
- }, className),
20
- style: {
21
- flexDirection: direction,
22
- ...style,
3
+ export const Stack = createCustomStackComponent('Stack');
4
+ export function createCustomStackComponent(name, options) {
5
+ const { Element, className, defaultDirection } = options ?? {};
6
+ return createStack(name, {
7
+ Element,
8
+ getClassName: ({ vertical, horizontal, direction = defaultDirection }) => {
9
+ return cn({
10
+ 'vertical': vertical && !direction,
11
+ 'horizontal': horizontal && !direction,
12
+ }, className);
23
13
  },
24
- };
14
+ getStyles: ({ direction = defaultDirection }) => ({ flexDirection: direction }),
15
+ });
25
16
  }
@@ -5,15 +5,14 @@ export interface VStackProps extends BaseStackProps {
5
5
  export declare const VStack: <TElementType extends import("react").ElementType = "div">(props: import("./factory").StackPropsBuilder<TElementType, VStackProps, {
6
6
  reversed?: boolean | undefined;
7
7
  as?: "div" | undefined;
8
- alignItems?: import("csstype").Property.AlignItems | undefined;
9
8
  align?: import("csstype").Property.AlignItems | undefined;
10
- justifyContent?: import("csstype").Property.JustifyContent | undefined;
11
9
  justify?: import("csstype").Property.JustifyContent | undefined;
12
10
  wrap?: true | import("csstype").Property.FlexWrap | undefined;
13
11
  gap?: number | undefined;
14
12
  flex?: import("csstype").Property.Flex<string | number> | undefined;
15
13
  centered?: boolean | undefined;
16
14
  width?: import("csstype").Property.Width<string | number> | undefined;
15
+ height?: import("csstype").Property.Height<string | number> | undefined;
17
16
  style?: import("react").CSSProperties | undefined;
18
17
  className?: string | undefined;
19
18
  children?: import("react").ReactNode;
@@ -1,14 +1,7 @@
1
1
  import cn from 'classnames';
2
2
  import { createStack } from './factory';
3
- import styles from './Stack.module.css';
4
3
  export const VStack = createStack('VStack', {
5
- overrideProps: (props) => {
6
- const { reversed, className, ...rest } = props;
7
- return {
8
- ...rest,
9
- className: cn(styles.vertical, {
10
- [styles.reversed]: reversed,
11
- }, className),
12
- };
13
- },
4
+ getClassName: ({ reversed }) => cn('vertical', {
5
+ 'reversed': reversed,
6
+ }),
14
7
  });
@@ -2,14 +2,13 @@ import { ComponentProps, CSSProperties, ElementType, PropsWithChildren, ReactNod
2
2
  import { PropsWithPaddings } from '../../shared/paddings';
3
3
  import { PropsWithSpacing } from '../../shared/spacings';
4
4
  import { Prettify } from '../../shared/types';
5
+ import './Stack.css';
5
6
  export interface BaseStackProps<TElementType extends ElementType = 'div'> extends PropsWithChildren, PropsWithSpacing, PropsWithPaddings {
6
7
  as?: TElementType;
7
- alignItems?: CSSProperties['alignItems'];
8
8
  /**
9
9
  * shortcut for `alignItems`
10
10
  */
11
11
  align?: CSSProperties['alignItems'];
12
- justifyContent?: CSSProperties['justifyContent'];
13
12
  /**
14
13
  * shortcut for `justifyContent`
15
14
  */
@@ -17,7 +16,7 @@ export interface BaseStackProps<TElementType extends ElementType = 'div'> extend
17
16
  /**
18
17
  * `flex-wrap` property
19
18
  *
20
- * If value equals `true`, add css property `flex-wrap: wrap`;
19
+ * If equals `true`, adds css property `flex-wrap: wrap`;
21
20
  */
22
21
  wrap?: true | CSSProperties['flexWrap'];
23
22
  /**
@@ -34,6 +33,7 @@ export interface BaseStackProps<TElementType extends ElementType = 'div'> extend
34
33
  */
35
34
  centered?: boolean;
36
35
  width?: CSSProperties['width'];
36
+ height?: CSSProperties['height'];
37
37
  style?: CSSProperties;
38
38
  className?: string;
39
39
  }
@@ -43,6 +43,8 @@ export interface BaseStackProps<TElementType extends ElementType = 'div'> extend
43
43
  export type StackPropsBuilder<TElementType extends ElementType, TProps, _TPropsHint = Prettify<TProps>> = {
44
44
  as?: TElementType;
45
45
  } & Omit<TProps, 'as'> & Omit<ComponentProps<TElementType>, keyof Omit<TProps, 'as'>>;
46
- export declare function createStack<TProps extends BaseStackProps>(name: string, options: {
47
- overrideProps?: (props: TProps) => BaseStackProps;
46
+ export declare function createStack<TProps extends BaseStackProps>(name: string, options?: {
47
+ Element?: ElementType;
48
+ getClassName?: (props: TProps) => string;
49
+ getStyles?: (props: TProps) => CSSProperties;
48
50
  }): <TElementType extends ElementType = "div">(props: StackPropsBuilder<TElementType, TProps>) => ReactNode;
@@ -2,22 +2,23 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import cn from 'classnames';
3
3
  import { getPaddingStyles } from '../../shared/paddings';
4
4
  import { getSpacingStyles } from '../../shared/spacings';
5
- import styles from './Stack.module.css';
5
+ import './Stack.css';
6
6
  export function createStack(name, options) {
7
- const Component = function GenericStack(_props) {
8
- const props = options.overrideProps ? options.overrideProps(_props) : _props;
7
+ const Component = function GenericStack(props) {
9
8
  // WARNING: Avoid proxying *component props* to real DOM
10
- const { as: Element = 'div', align, alignItems, centered, gap, justify, justifyContent, spacing, style, wrap, className, children, p, pv, ph, width, flex, ...rest } = props;
11
- return (_jsx(Element, { ...rest, className: cn(styles.stack, {
12
- [styles.centered]: centered,
13
- }, className), style: {
9
+ const { as: Element = options?.Element ?? 'div', align, centered, gap, justify, spacing, style, wrap, className, children, p, pv, ph, width, height, flex, ...rest } = props;
10
+ return (_jsx(Element, { ...rest, className: cn('gv-stack', {
11
+ 'centered': centered,
12
+ }, options?.getClassName?.(props), className), style: {
14
13
  gap: spacing ? getSpacingStyles(spacing).gap : gap,
15
14
  flexWrap: wrap === true ? 'wrap' : wrap,
16
- alignItems: centered ? undefined : (alignItems ?? align),
17
- justifyContent: centered ? undefined : (justifyContent ?? justify),
15
+ alignItems: align,
16
+ justifyContent: justify,
18
17
  width,
18
+ height,
19
19
  flex,
20
20
  ...getPaddingStyles({ p, pv, ph }),
21
+ ...options?.getStyles?.(props),
21
22
  ...style,
22
23
  }, children: children }));
23
24
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goncharovv/layout",
3
3
  "private": false,
4
- "version": "0.1.4",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",