react-restyle-components 0.2.23 → 0.2.25

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 (39) hide show
  1. package/README.md +0 -6
  2. package/lib/package.json +14 -3
  3. package/lib/src/App.js +13 -2
  4. package/lib/src/assets/styles/colors.css +217 -0
  5. package/lib/src/assets/styles/decorations.css +15 -0
  6. package/lib/src/assets/styles/fontface.css +17 -0
  7. package/lib/src/assets/styles/scrollbars.css +70 -0
  8. package/lib/src/assets/styles/typography.css +3 -0
  9. package/lib/src/core-components/atoms/button/Button.stories.d.ts +305 -0
  10. package/lib/src/core-components/atoms/button/Button.stories.js +29 -0
  11. package/lib/src/core-components/atoms/button/Button.test.d.ts +1 -0
  12. package/lib/src/core-components/atoms/button/Button.test.js +31 -0
  13. package/lib/src/core-components/atoms/button/Button.types.d.ts +25 -0
  14. package/lib/src/core-components/atoms/button/Button.types.js +1 -0
  15. package/lib/src/core-components/atoms/button/button.component.d.ts +7 -0
  16. package/lib/src/core-components/atoms/button/button.component.js +20 -0
  17. package/lib/src/core-components/atoms/button/buttonGroup/ButtonGroup.stories.d.ts +36 -0
  18. package/lib/src/core-components/atoms/button/buttonGroup/ButtonGroup.stories.js +43 -0
  19. package/lib/src/core-components/atoms/button/buttonGroup/buttonGroup.component.d.ts +10 -0
  20. package/lib/src/core-components/atoms/button/buttonGroup/buttonGroup.component.js +3 -0
  21. package/lib/src/core-components/atoms/icons/icons.component.js +1 -1
  22. package/lib/src/core-components/atoms/tabs/tabs.component.d.ts +9 -2
  23. package/lib/src/core-components/atoms/tabs/tabs.component.js +14 -9
  24. package/lib/src/core-components/atoms/tooltip/Tooltip.stories.d.ts +30 -0
  25. package/lib/src/core-components/atoms/tooltip/Tooltip.stories.js +100 -0
  26. package/lib/src/core-components/atoms/tooltip/Tooltip.types.d.ts +21 -0
  27. package/lib/src/core-components/atoms/tooltip/Tooltip.types.js +1 -0
  28. package/lib/src/core-components/atoms/tooltip/tooltip.component.d.ts +15 -9
  29. package/lib/src/core-components/atoms/tooltip/tooltip.component.js +26 -24
  30. package/lib/src/core-components/index.d.ts +2 -1
  31. package/lib/src/core-components/index.js +2 -1
  32. package/lib/tc.css +1 -1
  33. package/package.json +14 -3
  34. package/lib/src/core-components/atoms/buttons/button.stories.d.ts +0 -6
  35. package/lib/src/core-components/atoms/buttons/button.stories.js +0 -36
  36. package/lib/src/core-components/atoms/buttons/buttons.component.d.ts +0 -11
  37. package/lib/src/core-components/atoms/buttons/buttons.component.js +0 -8
  38. package/lib/src/core-components/atoms/tooltip/tooltip.stories.d.ts +0 -6
  39. package/lib/src/core-components/atoms/tooltip/tooltip.stories.js +0 -13
@@ -0,0 +1,305 @@
1
+ import React from 'react';
2
+ import type { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: React.ForwardRefExoticComponent<import("./Button.types").ButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
6
+ tags: string[];
7
+ argTypes: {
8
+ disabled: {
9
+ control: "boolean";
10
+ };
11
+ onClick: {
12
+ action: string;
13
+ };
14
+ };
15
+ decorators: ((Story: import("@storybook/csf").PartialStoryFn<import("@storybook/react/dist/types-a5624094").R, {
16
+ variant?: "solid" | "outline" | undefined;
17
+ tooltip?: string | undefined;
18
+ className?: string | undefined;
19
+ disabled?: boolean | undefined;
20
+ form?: string | undefined;
21
+ formAction?: string | undefined;
22
+ formEncType?: string | undefined;
23
+ formMethod?: string | undefined;
24
+ formNoValidate?: boolean | undefined;
25
+ formTarget?: string | undefined;
26
+ name?: string | undefined;
27
+ type?: "button" | "reset" | "submit" | undefined;
28
+ value?: string | number | readonly string[] | undefined;
29
+ defaultChecked?: boolean | undefined;
30
+ defaultValue?: string | number | readonly string[] | undefined;
31
+ suppressContentEditableWarning?: boolean | undefined;
32
+ suppressHydrationWarning?: boolean | undefined;
33
+ accessKey?: string | undefined;
34
+ autoCapitalize?: (string & {}) | "off" | "on" | "none" | "sentences" | "words" | "characters" | undefined;
35
+ autoFocus?: boolean | undefined;
36
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
37
+ contextMenu?: string | undefined;
38
+ dir?: string | undefined;
39
+ draggable?: (boolean | "true" | "false") | undefined;
40
+ enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send" | undefined;
41
+ hidden?: boolean | undefined;
42
+ id?: string | undefined;
43
+ lang?: string | undefined;
44
+ nonce?: string | undefined;
45
+ slot?: string | undefined;
46
+ spellCheck?: (boolean | "true" | "false") | undefined;
47
+ style?: React.CSSProperties | undefined;
48
+ tabIndex?: number | undefined;
49
+ title?: string | undefined;
50
+ translate?: "yes" | "no" | undefined;
51
+ radioGroup?: string | undefined;
52
+ role?: React.AriaRole | undefined;
53
+ about?: string | undefined;
54
+ content?: string | undefined;
55
+ datatype?: string | undefined;
56
+ inlist?: any;
57
+ prefix?: string | undefined;
58
+ property?: string | undefined;
59
+ rel?: string | undefined;
60
+ resource?: string | undefined;
61
+ rev?: string | undefined;
62
+ typeof?: string | undefined;
63
+ vocab?: string | undefined;
64
+ autoCorrect?: string | undefined;
65
+ autoSave?: string | undefined;
66
+ color?: string | undefined;
67
+ itemProp?: string | undefined;
68
+ itemScope?: boolean | undefined;
69
+ itemType?: string | undefined;
70
+ itemID?: string | undefined;
71
+ itemRef?: string | undefined;
72
+ results?: number | undefined;
73
+ security?: string | undefined;
74
+ unselectable?: "off" | "on" | undefined;
75
+ inputMode?: "search" | "text" | "email" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined;
76
+ is?: string | undefined;
77
+ "aria-activedescendant"?: string | undefined;
78
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
79
+ "aria-autocomplete"?: "none" | "list" | "inline" | "both" | undefined;
80
+ "aria-braillelabel"?: string | undefined;
81
+ "aria-brailleroledescription"?: string | undefined;
82
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
83
+ "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
84
+ "aria-colcount"?: number | undefined;
85
+ "aria-colindex"?: number | undefined;
86
+ "aria-colindextext"?: string | undefined;
87
+ "aria-colspan"?: number | undefined;
88
+ "aria-controls"?: string | undefined;
89
+ "aria-current"?: boolean | "time" | "date" | "true" | "false" | "page" | "step" | "location" | undefined;
90
+ "aria-describedby"?: string | undefined;
91
+ "aria-description"?: string | undefined;
92
+ "aria-details"?: string | undefined;
93
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
94
+ "aria-dropeffect"?: "link" | "none" | "copy" | "execute" | "move" | "popup" | undefined;
95
+ "aria-errormessage"?: string | undefined;
96
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
97
+ "aria-flowto"?: string | undefined;
98
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
99
+ "aria-haspopup"?: boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
100
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
101
+ "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
102
+ "aria-keyshortcuts"?: string | undefined;
103
+ "aria-label"?: string | undefined;
104
+ "aria-labelledby"?: string | undefined;
105
+ "aria-level"?: number | undefined;
106
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
107
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
108
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
109
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
110
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
111
+ "aria-owns"?: string | undefined;
112
+ "aria-placeholder"?: string | undefined;
113
+ "aria-posinset"?: number | undefined;
114
+ "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
115
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
116
+ "aria-relevant"?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
117
+ "aria-required"?: (boolean | "true" | "false") | undefined;
118
+ "aria-roledescription"?: string | undefined;
119
+ "aria-rowcount"?: number | undefined;
120
+ "aria-rowindex"?: number | undefined;
121
+ "aria-rowindextext"?: string | undefined;
122
+ "aria-rowspan"?: number | undefined;
123
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
124
+ "aria-setsize"?: number | undefined;
125
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
126
+ "aria-valuemax"?: number | undefined;
127
+ "aria-valuemin"?: number | undefined;
128
+ "aria-valuenow"?: number | undefined;
129
+ "aria-valuetext"?: string | undefined;
130
+ children?: React.ReactNode;
131
+ dangerouslySetInnerHTML?: {
132
+ __html: string | TrustedHTML;
133
+ } | undefined;
134
+ onCopy?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
135
+ onCopyCapture?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
136
+ onCut?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
137
+ onCutCapture?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
138
+ onPaste?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
139
+ onPasteCapture?: React.ClipboardEventHandler<HTMLButtonElement> | undefined;
140
+ onCompositionEnd?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
141
+ onCompositionEndCapture?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
142
+ onCompositionStart?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
143
+ onCompositionStartCapture?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
144
+ onCompositionUpdate?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
145
+ onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLButtonElement> | undefined;
146
+ onFocus?: React.FocusEventHandler<HTMLButtonElement> | undefined;
147
+ onFocusCapture?: React.FocusEventHandler<HTMLButtonElement> | undefined;
148
+ onBlur?: React.FocusEventHandler<HTMLButtonElement> | undefined;
149
+ onBlurCapture?: React.FocusEventHandler<HTMLButtonElement> | undefined;
150
+ onChange?: React.FormEventHandler<HTMLButtonElement> | undefined;
151
+ onChangeCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
152
+ onBeforeInput?: React.FormEventHandler<HTMLButtonElement> | undefined;
153
+ onBeforeInputCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
154
+ onInput?: React.FormEventHandler<HTMLButtonElement> | undefined;
155
+ onInputCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
156
+ onReset?: React.FormEventHandler<HTMLButtonElement> | undefined;
157
+ onResetCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
158
+ onSubmit?: React.FormEventHandler<HTMLButtonElement> | undefined;
159
+ onSubmitCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
160
+ onInvalid?: React.FormEventHandler<HTMLButtonElement> | undefined;
161
+ onInvalidCapture?: React.FormEventHandler<HTMLButtonElement> | undefined;
162
+ onLoad?: React.ReactEventHandler<HTMLButtonElement> | undefined;
163
+ onLoadCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
164
+ onError?: React.ReactEventHandler<HTMLButtonElement> | undefined;
165
+ onErrorCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
166
+ onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
167
+ onKeyDownCapture?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
168
+ onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
169
+ onKeyPressCapture?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
170
+ onKeyUp?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
171
+ onKeyUpCapture?: React.KeyboardEventHandler<HTMLButtonElement> | undefined;
172
+ onAbort?: React.ReactEventHandler<HTMLButtonElement> | undefined;
173
+ onAbortCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
174
+ onCanPlay?: React.ReactEventHandler<HTMLButtonElement> | undefined;
175
+ onCanPlayCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
176
+ onCanPlayThrough?: React.ReactEventHandler<HTMLButtonElement> | undefined;
177
+ onCanPlayThroughCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
178
+ onDurationChange?: React.ReactEventHandler<HTMLButtonElement> | undefined;
179
+ onDurationChangeCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
180
+ onEmptied?: React.ReactEventHandler<HTMLButtonElement> | undefined;
181
+ onEmptiedCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
182
+ onEncrypted?: React.ReactEventHandler<HTMLButtonElement> | undefined;
183
+ onEncryptedCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
184
+ onEnded?: React.ReactEventHandler<HTMLButtonElement> | undefined;
185
+ onEndedCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
186
+ onLoadedData?: React.ReactEventHandler<HTMLButtonElement> | undefined;
187
+ onLoadedDataCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
188
+ onLoadedMetadata?: React.ReactEventHandler<HTMLButtonElement> | undefined;
189
+ onLoadedMetadataCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
190
+ onLoadStart?: React.ReactEventHandler<HTMLButtonElement> | undefined;
191
+ onLoadStartCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
192
+ onPause?: React.ReactEventHandler<HTMLButtonElement> | undefined;
193
+ onPauseCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
194
+ onPlay?: React.ReactEventHandler<HTMLButtonElement> | undefined;
195
+ onPlayCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
196
+ onPlaying?: React.ReactEventHandler<HTMLButtonElement> | undefined;
197
+ onPlayingCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
198
+ onProgress?: React.ReactEventHandler<HTMLButtonElement> | undefined;
199
+ onProgressCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
200
+ onRateChange?: React.ReactEventHandler<HTMLButtonElement> | undefined;
201
+ onRateChangeCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
202
+ onResize?: React.ReactEventHandler<HTMLButtonElement> | undefined;
203
+ onResizeCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
204
+ onSeeked?: React.ReactEventHandler<HTMLButtonElement> | undefined;
205
+ onSeekedCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
206
+ onSeeking?: React.ReactEventHandler<HTMLButtonElement> | undefined;
207
+ onSeekingCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
208
+ onStalled?: React.ReactEventHandler<HTMLButtonElement> | undefined;
209
+ onStalledCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
210
+ onSuspend?: React.ReactEventHandler<HTMLButtonElement> | undefined;
211
+ onSuspendCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
212
+ onTimeUpdate?: React.ReactEventHandler<HTMLButtonElement> | undefined;
213
+ onTimeUpdateCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
214
+ onVolumeChange?: React.ReactEventHandler<HTMLButtonElement> | undefined;
215
+ onVolumeChangeCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
216
+ onWaiting?: React.ReactEventHandler<HTMLButtonElement> | undefined;
217
+ onWaitingCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
218
+ onAuxClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;
219
+ onAuxClickCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
220
+ onClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;
221
+ onClickCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
222
+ onContextMenu?: React.MouseEventHandler<HTMLButtonElement> | undefined;
223
+ onContextMenuCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
224
+ onDoubleClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;
225
+ onDoubleClickCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
226
+ onDrag?: React.DragEventHandler<HTMLButtonElement> | undefined;
227
+ onDragCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
228
+ onDragEnd?: React.DragEventHandler<HTMLButtonElement> | undefined;
229
+ onDragEndCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
230
+ onDragEnter?: React.DragEventHandler<HTMLButtonElement> | undefined;
231
+ onDragEnterCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
232
+ onDragExit?: React.DragEventHandler<HTMLButtonElement> | undefined;
233
+ onDragExitCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
234
+ onDragLeave?: React.DragEventHandler<HTMLButtonElement> | undefined;
235
+ onDragLeaveCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
236
+ onDragOver?: React.DragEventHandler<HTMLButtonElement> | undefined;
237
+ onDragOverCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
238
+ onDragStart?: React.DragEventHandler<HTMLButtonElement> | undefined;
239
+ onDragStartCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
240
+ onDrop?: React.DragEventHandler<HTMLButtonElement> | undefined;
241
+ onDropCapture?: React.DragEventHandler<HTMLButtonElement> | undefined;
242
+ onMouseDown?: React.MouseEventHandler<HTMLButtonElement> | undefined;
243
+ onMouseDownCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
244
+ onMouseEnter?: React.MouseEventHandler<HTMLButtonElement> | undefined;
245
+ onMouseLeave?: React.MouseEventHandler<HTMLButtonElement> | undefined;
246
+ onMouseMove?: React.MouseEventHandler<HTMLButtonElement> | undefined;
247
+ onMouseMoveCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
248
+ onMouseOut?: React.MouseEventHandler<HTMLButtonElement> | undefined;
249
+ onMouseOutCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
250
+ onMouseOver?: React.MouseEventHandler<HTMLButtonElement> | undefined;
251
+ onMouseOverCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
252
+ onMouseUp?: React.MouseEventHandler<HTMLButtonElement> | undefined;
253
+ onMouseUpCapture?: React.MouseEventHandler<HTMLButtonElement> | undefined;
254
+ onSelect?: React.ReactEventHandler<HTMLButtonElement> | undefined;
255
+ onSelectCapture?: React.ReactEventHandler<HTMLButtonElement> | undefined;
256
+ onTouchCancel?: React.TouchEventHandler<HTMLButtonElement> | undefined;
257
+ onTouchCancelCapture?: React.TouchEventHandler<HTMLButtonElement> | undefined;
258
+ onTouchEnd?: React.TouchEventHandler<HTMLButtonElement> | undefined;
259
+ onTouchEndCapture?: React.TouchEventHandler<HTMLButtonElement> | undefined;
260
+ onTouchMove?: React.TouchEventHandler<HTMLButtonElement> | undefined;
261
+ onTouchMoveCapture?: React.TouchEventHandler<HTMLButtonElement> | undefined;
262
+ onTouchStart?: React.TouchEventHandler<HTMLButtonElement> | undefined;
263
+ onTouchStartCapture?: React.TouchEventHandler<HTMLButtonElement> | undefined;
264
+ onPointerDown?: React.PointerEventHandler<HTMLButtonElement> | undefined;
265
+ onPointerDownCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
266
+ onPointerMove?: React.PointerEventHandler<HTMLButtonElement> | undefined;
267
+ onPointerMoveCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
268
+ onPointerUp?: React.PointerEventHandler<HTMLButtonElement> | undefined;
269
+ onPointerUpCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
270
+ onPointerCancel?: React.PointerEventHandler<HTMLButtonElement> | undefined;
271
+ onPointerCancelCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
272
+ onPointerEnter?: React.PointerEventHandler<HTMLButtonElement> | undefined;
273
+ onPointerLeave?: React.PointerEventHandler<HTMLButtonElement> | undefined;
274
+ onPointerOver?: React.PointerEventHandler<HTMLButtonElement> | undefined;
275
+ onPointerOverCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
276
+ onPointerOut?: React.PointerEventHandler<HTMLButtonElement> | undefined;
277
+ onPointerOutCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
278
+ onGotPointerCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
279
+ onGotPointerCaptureCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
280
+ onLostPointerCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
281
+ onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLButtonElement> | undefined;
282
+ onScroll?: React.UIEventHandler<HTMLButtonElement> | undefined;
283
+ onScrollCapture?: React.UIEventHandler<HTMLButtonElement> | undefined;
284
+ onWheel?: React.WheelEventHandler<HTMLButtonElement> | undefined;
285
+ onWheelCapture?: React.WheelEventHandler<HTMLButtonElement> | undefined;
286
+ onAnimationStart?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
287
+ onAnimationStartCapture?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
288
+ onAnimationEnd?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
289
+ onAnimationEndCapture?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
290
+ onAnimationIteration?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
291
+ onAnimationIterationCapture?: React.AnimationEventHandler<HTMLButtonElement> | undefined;
292
+ onTransitionEnd?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
293
+ onTransitionEndCapture?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
294
+ ref?: React.LegacyRef<HTMLButtonElement> | undefined;
295
+ key?: React.Key | null | undefined;
296
+ }>) => React.JSX.Element)[];
297
+ };
298
+ export default meta;
299
+ type Story = StoryObj<typeof meta>;
300
+ /**
301
+ * The component contains styles that will automatically adjust the size of any svg you add as a child.
302
+ * However the Design System uses a different size for icons if they are the _only_ thing in the button.
303
+ * To handle this we add the prop `iconOnly`.
304
+ */
305
+ export declare const Basic: Story;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { TooltipProvider } from '../tooltip/tooltip.component';
3
+ import { Button } from './button.component';
4
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
5
+ const meta = {
6
+ title: 'Design System/Atoms/Button',
7
+ component: Button,
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ disabled: { control: 'boolean' },
11
+ onClick: { action: 'clicked' },
12
+ },
13
+ decorators: [
14
+ (Story) => (React.createElement(React.Fragment, null,
15
+ React.createElement(TooltipProvider, null,
16
+ React.createElement(Story, null)))),
17
+ ],
18
+ };
19
+ export default meta;
20
+ /**
21
+ * The component contains styles that will automatically adjust the size of any svg you add as a child.
22
+ * However the Design System uses a different size for icons if they are the _only_ thing in the button.
23
+ * To handle this we add the prop `iconOnly`.
24
+ */
25
+ export const Basic = {
26
+ render: function Render(args) {
27
+ return React.createElement(Button, { ...args }, "Submit");
28
+ },
29
+ };
@@ -0,0 +1,31 @@
1
+ // Questionable whether these tests are even useful.
2
+ // Included as wanted to have test file for a component to show preferred architecture of UI library.
3
+ // Maybe we will remove this in a future update and only include tests that are genuinely useful.
4
+ import React from 'react';
5
+ import { describe, it, expect } from 'vitest';
6
+ import { render, screen, fireEvent } from '@testing-library/react';
7
+ import { Button } from './button.component';
8
+ import { TooltipProvider } from '../tooltip/tooltip.component';
9
+ describe('Renders a button', async () => {
10
+ it('Renders the supplied children', async () => {
11
+ render(React.createElement(Button, null, "Hello"));
12
+ const b = await screen.queryByText('Hello');
13
+ expect(b).toBeInTheDocument();
14
+ });
15
+ it('Renders as a button', async () => {
16
+ render(React.createElement(Button, null, "Hello"));
17
+ const b = await screen.queryByText('Hello');
18
+ expect(b?.tagName.toLowerCase()).toBe('button');
19
+ });
20
+ it('Includes the tooltip when specified', async () => {
21
+ render(React.createElement(TooltipProvider, null,
22
+ React.createElement(Button, { "data-testid": "btn", tooltip: "bye" }, "Hello")));
23
+ const button = await screen.getByTestId('btn');
24
+ fireEvent.mouseOver(button);
25
+ setTimeout(async () => {
26
+ //delay for tooltip to be available in DOM
27
+ const t = await screen.queryByText('bye');
28
+ expect(t).toBeInTheDocument();
29
+ }, 1000);
30
+ });
31
+ });
@@ -0,0 +1,25 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ import { LinkProps } from 'react-router-dom';
3
+ export type ButtonProps = {
4
+ variant?: 'solid' | 'outline';
5
+ /** Optional tooltip content */
6
+ tooltip?: string;
7
+ /** ClassName to add so you can add additional styling */
8
+ className?: string;
9
+ };
10
+ export type LinkButtonProps = Omit<ButtonProps, 'loading'> & {
11
+ /** The location the link will take you to */
12
+ to: string;
13
+ /** The underlaying UI component to use */
14
+ Component: ForwardRefExoticComponent<LinkProps & RefAttributes<HTMLAnchorElement>>;
15
+ };
16
+ export type ToggleButtonProps = Omit<ButtonProps, 'variant'> & {
17
+ /** Optionally pass an extra classname to the label wrapper */
18
+ labelClassName?: string;
19
+ /** Optionally pass an extra classname to the content wrapper */
20
+ contentClassName?: string;
21
+ /** Optionally pass an active state. If not passed the component will be uncontrolled. */
22
+ active?: boolean;
23
+ /** What variant of button? Defaults to 'brand' */
24
+ variant?: 'brand' | 'accent';
25
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from './Button.types';
3
+ import '../../../tc.css';
4
+ /**
5
+ * It's a `<button>button</button>`. Pass in regular button props such as onClick as well as any of the props defined here.
6
+ */
7
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { forwardRef } from 'react';
3
+ import { Tooltip } from '../tooltip/tooltip.component';
4
+ import '../../../tc.css';
5
+ /**
6
+ * It's a `<button>button</button>`. Pass in regular button props such as onClick as well as any of the props defined here.
7
+ */
8
+ export const Button = forwardRef(({ variant = 'solid', tooltip, disabled = false, type = 'button', className, children, ...args }, ref) => {
9
+ const buttonColorClass = variant === 'solid'
10
+ ? 'text-white bg-[#007BFF] hover:bg-[#007BFF] hover:shadow-lg text-white'
11
+ : 'dark:text-white text-black border border-gray-400 hover:shadow-lg';
12
+ const button = (React.createElement("button", { ref: ref, ...args, className: `${className} rounded-100px px-3 py-1 text-md ${buttonColorClass} pt-2 pb-2 font-nunitoSansRegular ${disabled ? 'opacity-50' : 'opacity-100'}`, type: type, disabled: disabled }, children));
13
+ if (tooltip) {
14
+ return React.createElement(Tooltip, { content: tooltip }, button);
15
+ }
16
+ else {
17
+ return button;
18
+ }
19
+ });
20
+ Button.displayName = 'Button';
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import type { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ title: string;
5
+ parameters: {
6
+ componentSubtitle: string;
7
+ };
8
+ component: ({ children, orientation, horizontalSizing, verticalSizing, className, }: {
9
+ children: React.ReactNode;
10
+ orientation?: "horizontal" | "vertical" | undefined;
11
+ horizontalSizing?: "fill" | "hug" | undefined;
12
+ verticalSizing?: "fill" | "hug" | undefined;
13
+ className?: string | undefined;
14
+ }) => React.JSX.Element;
15
+ tags: string[];
16
+ decorators: ((Story: import("@storybook/csf").PartialStoryFn<import("@storybook/react/dist/types-a5624094").R, {
17
+ children: React.ReactNode;
18
+ orientation?: "horizontal" | "vertical" | undefined;
19
+ horizontalSizing?: "fill" | "hug" | undefined;
20
+ verticalSizing?: "fill" | "hug" | undefined;
21
+ className?: string | undefined;
22
+ }>) => React.JSX.Element)[];
23
+ };
24
+ export default meta;
25
+ type Story = StoryObj<typeof meta>;
26
+ /**
27
+ * At its simplest you can just wrap any `Button` elements in a `ButtonGroup`.
28
+ *
29
+ * All props for button scale, variant, etc stay on the Button.
30
+ * You should use the same scale for all buttons in a group but could mix and match variants and levels.
31
+ */
32
+ export declare const Basic: Story;
33
+ /**
34
+ * If only a single `Button` is passed in, it will be visually the same as not wrapping in a `ButtonGroup`.
35
+ */
36
+ export declare const BasicOneButton: Story;
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { TooltipProvider } from '../../tooltip/tooltip.component';
3
+ import { ButtonGroup } from './buttonGroup.component';
4
+ import { Button } from '../button.component';
5
+ import { BrowserRouter } from 'react-router-dom';
6
+ const meta = {
7
+ title: 'Design System/Atoms/Button/ButtonGroup',
8
+ parameters: {
9
+ componentSubtitle: 'A container for grouping buttons together. Used when you want no space between buttons. Can also be used to create a split button using a Button and a DropdownMenu.',
10
+ },
11
+ component: ButtonGroup,
12
+ tags: ['autodocs'],
13
+ decorators: [
14
+ (Story) => (React.createElement(React.Fragment, null,
15
+ React.createElement(BrowserRouter, null,
16
+ React.createElement(TooltipProvider, null,
17
+ React.createElement(Story, null))))),
18
+ ],
19
+ };
20
+ export default meta;
21
+ /**
22
+ * At its simplest you can just wrap any `Button` elements in a `ButtonGroup`.
23
+ *
24
+ * All props for button scale, variant, etc stay on the Button.
25
+ * You should use the same scale for all buttons in a group but could mix and match variants and levels.
26
+ */
27
+ export const Basic = {
28
+ args: {
29
+ children: (React.createElement(React.Fragment, null,
30
+ React.createElement(Button, null, "Button 1"),
31
+ React.createElement(Button, null, "Button 2"),
32
+ React.createElement(Button, null, "Button 3"))),
33
+ },
34
+ };
35
+ /**
36
+ * If only a single `Button` is passed in, it will be visually the same as not wrapping in a `ButtonGroup`.
37
+ */
38
+ export const BasicOneButton = {
39
+ args: {
40
+ children: (React.createElement(React.Fragment, null,
41
+ React.createElement(Button, null, "Button 1"))),
42
+ },
43
+ };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import '../../../tc.css';
4
+ export declare const ButtonGroup: ({ children, orientation, horizontalSizing, verticalSizing, className, }: {
5
+ children: ReactNode;
6
+ orientation?: "horizontal" | "vertical" | undefined;
7
+ horizontalSizing?: "fill" | "hug" | undefined;
8
+ verticalSizing?: "fill" | "hug" | undefined;
9
+ className?: string | undefined;
10
+ }) => React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import '../../../tc.css';
3
+ export const ButtonGroup = ({ children, orientation = 'horizontal', horizontalSizing = 'hug', verticalSizing = 'hug', className, }) => React.createElement("div", { className: `flex gap-2 ${className}` }, children);
@@ -26,7 +26,7 @@ export const Icon = ({ nameIcon, propsIcon, tooltip = '', isDisable = false, onC
26
26
  return (React.createElement("div", { onClick: () => {
27
27
  if (!isDisable)
28
28
  onClick && onClick();
29
- } }, !_.isEmpty(tooltip) ? (React.createElement(Tooltip, { tooltipText: tooltip },
29
+ } }, !_.isEmpty(tooltip) ? (React.createElement(Tooltip, { content: tooltip },
30
30
  React.createElement(ElementIcon, { ...iconProps }))) : (React.createElement(Suspense, { fallback: React.createElement("div", null, "Loading...") },
31
31
  React.createElement(ElementIcon, { ...iconProps })))));
32
32
  }
@@ -1,11 +1,18 @@
1
- import React from 'react';
1
+ import React, { ReactNode, ReactElement } from 'react';
2
2
  import '../../../tc.css';
3
+ interface TabProps {
4
+ label: string;
5
+ children: ReactNode;
6
+ }
7
+ export declare const Tab: ({ label, children }: TabProps) => React.JSX.Element;
3
8
  interface TabsProps {
9
+ tabsClass?: string;
4
10
  options: Array<{
5
11
  title: string;
6
12
  icon: string;
7
13
  }>;
8
14
  onSelect: (item: string) => void;
15
+ children?: ReactElement<TabProps> | ReactElement<TabProps>[];
9
16
  }
10
- export declare const Tabs: ({ options, onSelect }: TabsProps) => React.JSX.Element;
17
+ export declare const Tabs: ({ tabsClass, options, onSelect, children, }: TabsProps) => React.JSX.Element;
11
18
  export {};
@@ -1,19 +1,24 @@
1
1
  import React, { useState } from 'react';
2
2
  import { Icon } from '../..';
3
3
  import '../../../tc.css';
4
- export const Tabs = ({ options, onSelect }) => {
4
+ export const Tab = ({ label, children }) => {
5
+ return (React.createElement("div", { className: "flex", title: label }, children));
6
+ };
7
+ export const Tabs = ({ tabsClass = 'bg-blue-700', options, onSelect, children, }) => {
5
8
  const [selected, setSelected] = useState(options[0].title);
6
- return (React.createElement("div", { className: "flex justify-center" },
7
- React.createElement("ul", { className: "flex flex-wrap items-center justify-center -mb-px text-sm font-medium text-center text-black cursor-pointer gap-2" }, options?.map((item, index) => (React.createElement("li", { key: index, className: "bg-orange1 rounded-md" },
8
- React.createElement("div", { className: `inline-flex items-center justify-center p-3 border-b-2 gap-1 ${item.title == selected
9
- ? 'text-white font-bold md:text-md border-primary active'
10
- : ' text-gray-200 md:text-md border-transparent'}`, onClick: () => {
9
+ const tabs = React.Children.toArray(children).filter((child) => React.isValidElement(child) && child.type === Tab);
10
+ return (React.createElement("div", { className: "flex flex-col" },
11
+ React.createElement("ul", { className: "flex -mb-px text-sm font-medium text-center text-black cursor-pointer gap-1" }, options?.map((item, index) => (React.createElement("li", { key: index, className: `${tabsClass} rounded-md` },
12
+ React.createElement("div", { className: `inline-flex items-center justify-center p-2 border-b-2 gap-1 ${item.title == selected
13
+ ? 'text-white font-bold border-primary active'
14
+ : ' text-gray-200 border-transparent'}`, onClick: () => {
11
15
  setSelected(item.title);
12
16
  onSelect(item.title);
13
17
  } },
14
- React.createElement(Icon, { nameIcon: item.icon, propsIcon: {
15
- color: item.title == selected ? '#ffffff' : '#000000',
18
+ React.createElement(Icon, { nameIcon: item?.icon, propsIcon: {
19
+ color: item?.title == selected ? '#ffffff' : '#000000',
16
20
  size: 24,
17
21
  } }),
18
- React.createElement("span", { className: "text-3md" }, item.title))))))));
22
+ React.createElement("span", { className: "text-md" }, item.title)))))),
23
+ React.createElement("div", { className: "flex" }, tabs[options?.findIndex((item) => item.title === selected)])));
19
24
  };
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import type { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: ({ align, side, children, content, avoidCollisions, alignOffset, sideOffset, disabled, delay, className, }: React.PropsWithChildren<import("./Tooltip.types").TooltipProps>) => React.JSX.Element;
6
+ tags: string[];
7
+ parameters: {
8
+ docs: {
9
+ page: () => React.JSX.Element;
10
+ };
11
+ };
12
+ decorators: ((Story: import("@storybook/csf").PartialStoryFn<import("@storybook/react/dist/types-a5624094").R, {
13
+ className?: string | undefined;
14
+ delay?: number | undefined;
15
+ side?: "top" | "right" | "bottom" | "left" | undefined;
16
+ sideOffset?: number | undefined;
17
+ content?: React.ReactNode;
18
+ align?: "center" | "start" | "end" | undefined;
19
+ alignOffset?: number | undefined;
20
+ avoidCollisions?: boolean | undefined;
21
+ disabled?: boolean | undefined;
22
+ children?: React.ReactNode;
23
+ }>) => React.JSX.Element)[];
24
+ };
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+ export declare const BasicExample: Story;
28
+ export declare const Positions: Story;
29
+ export declare const JSXContent: Story;
30
+ export declare const JSXContentDifferentAlignments: Story;