norma-library 0.5.150 → 0.5.152

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 (170) hide show
  1. package/.babelrc.json +18 -18
  2. package/.prettierignore +10 -10
  3. package/.prettierrc.json +20 -20
  4. package/.storybook/main.ts +20 -20
  5. package/.storybook/preview.ts +15 -15
  6. package/README.md +43 -43
  7. package/commitlint.config.js +1 -1
  8. package/dist/esm/components/UncontrolledTable/components/header/styles.js +1 -1
  9. package/dist/esm/components/UncontrolledTable/components/tbody/styles.js +1 -1
  10. package/dist/esm/components/UncontrolledTable/styles.js +1 -1
  11. package/dist/esm/components/UncontrolledTabs/UncontrolledTabs.js +1 -1
  12. package/dist/esm/components/UncontrolledTabs/UncontrolledTabs.js.map +1 -1
  13. package/dist/esm/index.d.ts +3 -1
  14. package/dist/esm/index.js +3 -1
  15. package/dist/esm/index.js.map +1 -1
  16. package/docs/index.md +118 -118
  17. package/package.json +136 -136
  18. package/src/components/Accordion.tsx +39 -39
  19. package/src/components/Avatar.tsx +17 -17
  20. package/src/components/Badge.tsx +14 -14
  21. package/src/components/Box/index.tsx +12 -12
  22. package/src/components/Box/interfaces.ts +3 -3
  23. package/src/components/Box/styles.tsx +22 -22
  24. package/src/components/Breadcrumb/index.tsx +27 -27
  25. package/src/components/Breadcrumb/interface.ts +8 -8
  26. package/src/components/Breadcrumb/styles.tsx +32 -32
  27. package/src/components/Button.tsx +26 -26
  28. package/src/components/Card.tsx +37 -37
  29. package/src/components/ChatMessage.tsx +87 -87
  30. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  31. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  32. package/src/components/CheckBox.tsx +21 -21
  33. package/src/components/DateInput/index.tsx +34 -34
  34. package/src/components/DateInput/interface.ts +13 -13
  35. package/src/components/DateInput/styles.tsx +27 -27
  36. package/src/components/DatePicker.tsx +67 -67
  37. package/src/components/DropDown.tsx +24 -24
  38. package/src/components/IconButton.tsx +37 -37
  39. package/src/components/Icons.tsx +82 -82
  40. package/src/components/Modal.tsx +103 -103
  41. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  42. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  43. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  44. package/src/components/MultiSelectInput/index.tsx +60 -60
  45. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  46. package/src/components/MultiSelectInput/styles.tsx +43 -43
  47. package/src/components/Paper.tsx +12 -12
  48. package/src/components/ProgressBar.tsx +71 -71
  49. package/src/components/RadioGroup.tsx +43 -43
  50. package/src/components/RangerSlider.tsx +65 -65
  51. package/src/components/Select.tsx +74 -74
  52. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  53. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  54. package/src/components/SelectInput/index.tsx +45 -45
  55. package/src/components/SelectInput/interfaces.ts +15 -15
  56. package/src/components/SelectInput/styles.tsx +31 -31
  57. package/src/components/StatusModal/StatusModal.style.tsx +75 -75
  58. package/src/components/StatusModal/StatusModal.tsx +58 -58
  59. package/src/components/Svgs.tsx +506 -506
  60. package/src/components/Table/components/header/index.tsx +86 -86
  61. package/src/components/Table/components/header/styles.tsx +59 -59
  62. package/src/components/Table/components/index.tsx +8 -8
  63. package/src/components/Table/components/pagination/index.tsx +39 -39
  64. package/src/components/Table/components/pagination/styles.tsx +28 -28
  65. package/src/components/Table/components/tbody/index.tsx +30 -30
  66. package/src/components/Table/components/tbody/styles.tsx +4 -4
  67. package/src/components/Table/index.tsx +317 -317
  68. package/src/components/Table/interface.ts +23 -23
  69. package/src/components/Table/styles.tsx +117 -117
  70. package/src/components/Tabs.tsx +105 -105
  71. package/src/components/Tag.tsx +33 -33
  72. package/src/components/TextField.tsx +19 -19
  73. package/src/components/TextInput/index.tsx +37 -37
  74. package/src/components/TextInput/interface.ts +9 -9
  75. package/src/components/TextInput/styles.tsx +23 -23
  76. package/src/components/TimeLine.tsx +89 -89
  77. package/src/components/TimePicker.tsx +78 -78
  78. package/src/components/Typography/Text/index.tsx +20 -20
  79. package/src/components/Typography/Text/interfaces.ts +5 -5
  80. package/src/components/Typography/Text/styles.tsx +40 -40
  81. package/src/components/Typography/Title/index.tsx +22 -22
  82. package/src/components/Typography/Title/interfaces.ts +6 -6
  83. package/src/components/Typography/Title/styles.tsx +40 -40
  84. package/src/components/Typography/index.tsx +6 -6
  85. package/src/components/UncontrolledTable/components/header/index.tsx +65 -65
  86. package/src/components/UncontrolledTable/components/header/styles.tsx +63 -63
  87. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  88. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  89. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  90. package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
  91. package/src/components/UncontrolledTable/components/tbody/styles.tsx +32 -32
  92. package/src/components/UncontrolledTable/index.tsx +221 -221
  93. package/src/components/UncontrolledTable/interface.ts +43 -43
  94. package/src/components/UncontrolledTable/styles.tsx +123 -123
  95. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +56 -56
  96. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +68 -68
  97. package/src/components/index.ts +24 -24
  98. package/src/helpers/alignments.ts +14 -14
  99. package/src/helpers/borders.ts +18 -18
  100. package/src/helpers/colors.ts +241 -241
  101. package/src/helpers/index.ts +5 -5
  102. package/src/helpers/radios.ts +24 -24
  103. package/src/helpers/sizes.ts +72 -72
  104. package/src/hooks/useClickOutside.tsx +18 -18
  105. package/src/index.ts +70 -66
  106. package/src/interfaces/Accordion.ts +12 -12
  107. package/src/interfaces/Avatar.tsx +15 -15
  108. package/src/interfaces/Badge.ts +19 -19
  109. package/src/interfaces/Button.ts +22 -22
  110. package/src/interfaces/Card.ts +11 -11
  111. package/src/interfaces/ChatMessage.ts +12 -12
  112. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  113. package/src/interfaces/CheckBox.ts +27 -27
  114. package/src/interfaces/DatePicker.ts +13 -13
  115. package/src/interfaces/DropDown.ts +14 -14
  116. package/src/interfaces/IconButton.ts +22 -22
  117. package/src/interfaces/Icons.ts +17 -17
  118. package/src/interfaces/Modal.ts +18 -18
  119. package/src/interfaces/Paper.ts +12 -12
  120. package/src/interfaces/ProgressBar.ts +29 -29
  121. package/src/interfaces/RadioGroup.ts +23 -23
  122. package/src/interfaces/RangerSlider.ts +21 -21
  123. package/src/interfaces/Select.ts +17 -17
  124. package/src/interfaces/Tabs.ts +19 -19
  125. package/src/interfaces/Tag.ts +17 -17
  126. package/src/interfaces/TextField.ts +44 -44
  127. package/src/interfaces/TimeLine.ts +11 -11
  128. package/src/interfaces/TimePicker.ts +13 -13
  129. package/src/interfaces/index.ts +23 -23
  130. package/src/providers/NormaProvider.tsx +13 -13
  131. package/src/sample-data-2.json +178 -178
  132. package/src/sample-data.json +177 -177
  133. package/src/stories/Accordion.stories.tsx +65 -65
  134. package/src/stories/Avatar.stories.tsx +123 -123
  135. package/src/stories/Badge.stories.tsx +39 -39
  136. package/src/stories/Box.stories.tsx +35 -35
  137. package/src/stories/Breadcrumb.stories.tsx +44 -44
  138. package/src/stories/Button.stories.tsx +93 -93
  139. package/src/stories/Card.stories.tsx +39 -39
  140. package/src/stories/ChatMessage.stories.tsx +84 -84
  141. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  142. package/src/stories/CheckBox.stories.tsx +88 -88
  143. package/src/stories/DateInput.stories.tsx +51 -51
  144. package/src/stories/DatePicker.stories.tsx +50 -50
  145. package/src/stories/DropDown.stories.tsx +57 -57
  146. package/src/stories/IconButton.stories.tsx +78 -78
  147. package/src/stories/Modal.stories.tsx +246 -246
  148. package/src/stories/ModalStatus.stories.tsx +46 -46
  149. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  150. package/src/stories/Paper.stories.tsx +53 -53
  151. package/src/stories/ProgressBar.stories.tsx +116 -116
  152. package/src/stories/RadioGroup.stories.tsx +87 -87
  153. package/src/stories/RangerSlider.stories.tsx +149 -149
  154. package/src/stories/Select.stories.tsx +100 -100
  155. package/src/stories/SelectInput.stories.tsx +78 -78
  156. package/src/stories/Table.stories.tsx +372 -372
  157. package/src/stories/Tabs.stories.tsx +61 -61
  158. package/src/stories/Tag.stories.tsx +56 -56
  159. package/src/stories/Text.stories.tsx +37 -37
  160. package/src/stories/TextField.stories.tsx +310 -310
  161. package/src/stories/TextInput.stories.tsx +52 -52
  162. package/src/stories/TimeLine.stories.tsx +35 -35
  163. package/src/stories/TimePicker.stories.tsx +87 -87
  164. package/src/stories/Title.stories.tsx +43 -43
  165. package/src/stories/UncontrolledTable.stories.tsx +305 -305
  166. package/src/stories/UncontrolledTabs.stories.tsx +63 -63
  167. package/src/styles/globals.scss +17 -17
  168. package/src/types/index.ts +204 -204
  169. package/src/utils/styledBreakpoints.ts +25 -25
  170. package/vite.config.ts +15 -15
@@ -1,87 +1,87 @@
1
- import React from 'react';
2
- import { RadioGroup } from '../components/RadioGroup';
3
- import type { Meta, StoryObj } from '@storybook/react';
4
- import { SizeVariant } from '../types';
5
-
6
- const meta = {
7
- title: 'Form/RadioGroup',
8
- component: RadioGroup,
9
- parameters: {
10
- layout: 'centered',
11
- },
12
- tags: ['autodocs'],
13
- argTypes: {},
14
- } satisfies Meta<typeof RadioGroup>;
15
-
16
- export default meta;
17
-
18
- type Story = StoryObj<typeof meta>;
19
-
20
- const defaultArgs = {
21
- disabled: false,
22
- };
23
-
24
- const sizeOptions = [
25
- { label: 'Small', value: 'S', size: 'small' },
26
- { label: 'Medium', value: 'M', size: 'medium' },
27
- { label: 'Large', value: 'L', size: 'large' },
28
- ];
29
-
30
- const genderOptions = [
31
- { label: 'Male', value: 'M' },
32
- { label: 'Female', value: 'F' },
33
- { label: 'Other', value: 'O' },
34
- ];
35
-
36
- export const Playground: Story = {
37
- args: {
38
- color: 'primary',
39
- options: genderOptions,
40
- name: 'gender',
41
- label: 'Gender',
42
- checked: 'F',
43
- },
44
- };
45
-
46
- export const RadioboxVertical = () => {
47
- return (
48
- <>
49
- <RadioGroup name="gender" options={genderOptions} label="Gender" color="primary" checked="M" id="gender" />
50
- </>
51
- );
52
- };
53
- RadioboxVertical.storyName = 'RadioGroup Vertical';
54
-
55
- export const RadioHorizontal = () => {
56
- return (
57
- <>
58
- <RadioGroup
59
- name="gender"
60
- options={genderOptions}
61
- label="Gender"
62
- color="primary"
63
- checked="M"
64
- id="gender"
65
- direction="horizontal"
66
- />
67
- </>
68
- );
69
- };
70
- RadioHorizontal.storyName = 'RadioGroup Horizontal';
71
-
72
- export const RadioSizes = () => {
73
- return (
74
- <>
75
- <RadioGroup
76
- name="size"
77
- options={sizeOptions}
78
- label="Sizes"
79
- color="primary"
80
- checked="M"
81
- id="size"
82
- direction="horizontal"
83
- />
84
- </>
85
- );
86
- };
87
- RadioSizes.storyName = 'RadioGroup Sizes';
1
+ import React from 'react';
2
+ import { RadioGroup } from '../components/RadioGroup';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+ import { SizeVariant } from '../types';
5
+
6
+ const meta = {
7
+ title: 'Form/RadioGroup',
8
+ component: RadioGroup,
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ tags: ['autodocs'],
13
+ argTypes: {},
14
+ } satisfies Meta<typeof RadioGroup>;
15
+
16
+ export default meta;
17
+
18
+ type Story = StoryObj<typeof meta>;
19
+
20
+ const defaultArgs = {
21
+ disabled: false,
22
+ };
23
+
24
+ const sizeOptions = [
25
+ { label: 'Small', value: 'S', size: 'small' },
26
+ { label: 'Medium', value: 'M', size: 'medium' },
27
+ { label: 'Large', value: 'L', size: 'large' },
28
+ ];
29
+
30
+ const genderOptions = [
31
+ { label: 'Male', value: 'M' },
32
+ { label: 'Female', value: 'F' },
33
+ { label: 'Other', value: 'O' },
34
+ ];
35
+
36
+ export const Playground: Story = {
37
+ args: {
38
+ color: 'primary',
39
+ options: genderOptions,
40
+ name: 'gender',
41
+ label: 'Gender',
42
+ checked: 'F',
43
+ },
44
+ };
45
+
46
+ export const RadioboxVertical = () => {
47
+ return (
48
+ <>
49
+ <RadioGroup name="gender" options={genderOptions} label="Gender" color="primary" checked="M" id="gender" />
50
+ </>
51
+ );
52
+ };
53
+ RadioboxVertical.storyName = 'RadioGroup Vertical';
54
+
55
+ export const RadioHorizontal = () => {
56
+ return (
57
+ <>
58
+ <RadioGroup
59
+ name="gender"
60
+ options={genderOptions}
61
+ label="Gender"
62
+ color="primary"
63
+ checked="M"
64
+ id="gender"
65
+ direction="horizontal"
66
+ />
67
+ </>
68
+ );
69
+ };
70
+ RadioHorizontal.storyName = 'RadioGroup Horizontal';
71
+
72
+ export const RadioSizes = () => {
73
+ return (
74
+ <>
75
+ <RadioGroup
76
+ name="size"
77
+ options={sizeOptions}
78
+ label="Sizes"
79
+ color="primary"
80
+ checked="M"
81
+ id="size"
82
+ direction="horizontal"
83
+ />
84
+ </>
85
+ );
86
+ };
87
+ RadioSizes.storyName = 'RadioGroup Sizes';
@@ -1,149 +1,149 @@
1
- import React from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { RangerSlider } from '../components';
4
- import { ColorVariant, TextFieldSizeVariant } from '../types';
5
- import { TextField } from '@mui/material';
6
-
7
- const colors: ColorVariant[] = ['inherit', 'primary', 'secondary', 'success', 'error', 'info', 'warning'];
8
- const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
9
-
10
- const meta: Meta<typeof RangerSlider> = {
11
- title: 'Display/RangerSlider',
12
- component: RangerSlider,
13
- parameters: {
14
- layout: 'centered',
15
- },
16
- tags: ['autodocs'],
17
- argTypes: {
18
- color: {
19
- control: { type: 'select' },
20
- options: colors,
21
- description: 'Define a cor do slider.',
22
- },
23
- size: {
24
- control: { type: 'select' },
25
- options: sizes,
26
- description: 'Define o tamanho do slider.',
27
- },
28
- min: {
29
- control: { type: 'number' },
30
- defaultValue: 0,
31
- description: 'Define o valor mínimo do slider.',
32
- },
33
- max: {
34
- control: { type: 'number' },
35
- defaultValue: 100,
36
- description: 'Define o valor máximo do slider.',
37
- },
38
- step: {
39
- control: { type: 'number' },
40
- defaultValue: 1,
41
- description: 'Define o passo do slider.',
42
- },
43
- valueLabelDisplay: {
44
- control: { type: 'select' },
45
- options: ['on', 'auto', 'off'],
46
- defaultValue: 'auto',
47
- description: 'Controla a exibição dos rótulos de valor.',
48
- },
49
- valueLabelFormat: {
50
- control: { type: 'function' },
51
- description: 'Função para formatar o rótulo do valor.',
52
- },
53
- defaultValue: {
54
- control: { type: 'number' },
55
- defaultValue: 50,
56
- description: 'Define o valor padrão do slider.',
57
- },
58
- onChange: {
59
- action: 'changed',
60
- description: 'Função callback que é disparada quando o valor do slider é alterado.',
61
- },
62
- },
63
- };
64
-
65
- export default meta;
66
-
67
- type Story = StoryObj<typeof meta>;
68
-
69
- export const RangerSliderBasic: Story = {
70
- args: {
71
- value: [20, 37],
72
- valueLabelDisplay: 'on',
73
- getAriaLabel: () => 'Faixa de temperatura',
74
- },
75
- argTypes: {
76
- value: {
77
- control: { type: 'array' },
78
- },
79
- },
80
- render: args => {
81
- const [value, setValue] = React.useState<number[]>(args.value);
82
-
83
- const handleChange = (event: Event, newValue: number | number[]) => {
84
- setValue(newValue as number[]);
85
- args.onChange?.(event, newValue, 0);
86
- };
87
-
88
- return (
89
- <div style={{ display: 'flex', gap: '1rem', width: '480px', marginBottom: 30 }}>
90
- <RangerSlider {...args} value={value} onChange={handleChange} />
91
- </div>
92
- );
93
- },
94
- name: 'RangerSlider Básico',
95
- };
96
-
97
- export const RangerSliderFormatter: Story = {
98
- args: {
99
- value: [0, 540],
100
- valueLabelDisplay: 'auto',
101
- getAriaLabel: () => 'Faixa de tempo',
102
- valueLabelFormat: (value: number) => {
103
- if (value < 60) {
104
- return `${value}s`;
105
- } else if (value < 3600) {
106
- const minutes = Math.floor(value / 60);
107
- const seconds = value % 60;
108
- return seconds === 0 ? `${minutes}min` : `${minutes}min ${seconds}s`;
109
- } else {
110
- const hours = Math.floor(value / 3600);
111
- const minutes = Math.floor((value % 3600) / 60);
112
- const seconds = value % 60;
113
- if (minutes === 0 && seconds === 0) {
114
- return `${hours}h`;
115
- } else if (minutes === 0) {
116
- return `${hours}h ${seconds}s`;
117
- } else if (seconds === 0) {
118
- return `${hours}h ${minutes}min`;
119
- } else {
120
- return `${hours}h ${minutes}min ${seconds}s`;
121
- }
122
- }
123
- },
124
- min: 0,
125
- max: 1000,
126
- },
127
- argTypes: {
128
- value: {
129
- control: { type: 'array' },
130
- },
131
- },
132
- render: args => {
133
- const [value, setValue] = React.useState<number[]>(args.value);
134
-
135
- const handleChange = (event: Event, newValue: number | number[]) => {
136
- setValue(newValue as number[]);
137
- args.onChange?.(event, newValue, 0);
138
- };
139
-
140
- return (
141
- <div style={{ display: 'flex', gap: '1rem', width: '480px', marginBottom: 30 }}>
142
- {/* <TextField size="small" variant='standard' /> */}
143
- <RangerSlider {...args} value={value} onChange={handleChange} />
144
- {/* <TextField size="small" variant='standard' /> */}
145
- </div>
146
- );
147
- },
148
- name: 'RangerSlider com Formatter',
149
- };
1
+ import React from 'react';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ import { RangerSlider } from '../components';
4
+ import { ColorVariant, TextFieldSizeVariant } from '../types';
5
+ import { TextField } from '@mui/material';
6
+
7
+ const colors: ColorVariant[] = ['inherit', 'primary', 'secondary', 'success', 'error', 'info', 'warning'];
8
+ const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
9
+
10
+ const meta: Meta<typeof RangerSlider> = {
11
+ title: 'Display/RangerSlider',
12
+ component: RangerSlider,
13
+ parameters: {
14
+ layout: 'centered',
15
+ },
16
+ tags: ['autodocs'],
17
+ argTypes: {
18
+ color: {
19
+ control: { type: 'select' },
20
+ options: colors,
21
+ description: 'Define a cor do slider.',
22
+ },
23
+ size: {
24
+ control: { type: 'select' },
25
+ options: sizes,
26
+ description: 'Define o tamanho do slider.',
27
+ },
28
+ min: {
29
+ control: { type: 'number' },
30
+ defaultValue: 0,
31
+ description: 'Define o valor mínimo do slider.',
32
+ },
33
+ max: {
34
+ control: { type: 'number' },
35
+ defaultValue: 100,
36
+ description: 'Define o valor máximo do slider.',
37
+ },
38
+ step: {
39
+ control: { type: 'number' },
40
+ defaultValue: 1,
41
+ description: 'Define o passo do slider.',
42
+ },
43
+ valueLabelDisplay: {
44
+ control: { type: 'select' },
45
+ options: ['on', 'auto', 'off'],
46
+ defaultValue: 'auto',
47
+ description: 'Controla a exibição dos rótulos de valor.',
48
+ },
49
+ valueLabelFormat: {
50
+ control: { type: 'function' },
51
+ description: 'Função para formatar o rótulo do valor.',
52
+ },
53
+ defaultValue: {
54
+ control: { type: 'number' },
55
+ defaultValue: 50,
56
+ description: 'Define o valor padrão do slider.',
57
+ },
58
+ onChange: {
59
+ action: 'changed',
60
+ description: 'Função callback que é disparada quando o valor do slider é alterado.',
61
+ },
62
+ },
63
+ };
64
+
65
+ export default meta;
66
+
67
+ type Story = StoryObj<typeof meta>;
68
+
69
+ export const RangerSliderBasic: Story = {
70
+ args: {
71
+ value: [20, 37],
72
+ valueLabelDisplay: 'on',
73
+ getAriaLabel: () => 'Faixa de temperatura',
74
+ },
75
+ argTypes: {
76
+ value: {
77
+ control: { type: 'array' },
78
+ },
79
+ },
80
+ render: args => {
81
+ const [value, setValue] = React.useState<number[]>(args.value);
82
+
83
+ const handleChange = (event: Event, newValue: number | number[]) => {
84
+ setValue(newValue as number[]);
85
+ args.onChange?.(event, newValue, 0);
86
+ };
87
+
88
+ return (
89
+ <div style={{ display: 'flex', gap: '1rem', width: '480px', marginBottom: 30 }}>
90
+ <RangerSlider {...args} value={value} onChange={handleChange} />
91
+ </div>
92
+ );
93
+ },
94
+ name: 'RangerSlider Básico',
95
+ };
96
+
97
+ export const RangerSliderFormatter: Story = {
98
+ args: {
99
+ value: [0, 540],
100
+ valueLabelDisplay: 'auto',
101
+ getAriaLabel: () => 'Faixa de tempo',
102
+ valueLabelFormat: (value: number) => {
103
+ if (value < 60) {
104
+ return `${value}s`;
105
+ } else if (value < 3600) {
106
+ const minutes = Math.floor(value / 60);
107
+ const seconds = value % 60;
108
+ return seconds === 0 ? `${minutes}min` : `${minutes}min ${seconds}s`;
109
+ } else {
110
+ const hours = Math.floor(value / 3600);
111
+ const minutes = Math.floor((value % 3600) / 60);
112
+ const seconds = value % 60;
113
+ if (minutes === 0 && seconds === 0) {
114
+ return `${hours}h`;
115
+ } else if (minutes === 0) {
116
+ return `${hours}h ${seconds}s`;
117
+ } else if (seconds === 0) {
118
+ return `${hours}h ${minutes}min`;
119
+ } else {
120
+ return `${hours}h ${minutes}min ${seconds}s`;
121
+ }
122
+ }
123
+ },
124
+ min: 0,
125
+ max: 1000,
126
+ },
127
+ argTypes: {
128
+ value: {
129
+ control: { type: 'array' },
130
+ },
131
+ },
132
+ render: args => {
133
+ const [value, setValue] = React.useState<number[]>(args.value);
134
+
135
+ const handleChange = (event: Event, newValue: number | number[]) => {
136
+ setValue(newValue as number[]);
137
+ args.onChange?.(event, newValue, 0);
138
+ };
139
+
140
+ return (
141
+ <div style={{ display: 'flex', gap: '1rem', width: '480px', marginBottom: 30 }}>
142
+ {/* <TextField size="small" variant='standard' /> */}
143
+ <RangerSlider {...args} value={value} onChange={handleChange} />
144
+ {/* <TextField size="small" variant='standard' /> */}
145
+ </div>
146
+ );
147
+ },
148
+ name: 'RangerSlider com Formatter',
149
+ };
@@ -1,100 +1,100 @@
1
- import React from 'react';
2
-
3
- import type { Meta, StoryObj } from '@storybook/react';
4
- import { Select } from '../components';
5
- import { DataSelect, TextFieldSizeVariant } from '../types';
6
- import { SelectChangeEvent } from '@mui/material';
7
-
8
- const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
9
-
10
- const data: DataSelect[] = [
11
- { label: 'Oliver Hansen', value: 'oliver-hansen' },
12
- { label: 'Van Henry', value: 'van-henry' },
13
- { label: 'April Tucker', value: 'april-tucker' },
14
- { label: 'Ralph Hubbard', value: 'ralph-hubbard' },
15
- { label: 'Omar Alexander', value: 'omar-alexander' },
16
- { label: 'Carlos Abbott', value: 'carlos-abbott' },
17
- { label: 'Miriam Wagner', value: 'miriam-wagner' },
18
- { label: 'Bradley Wilkerson', value: 'bradley-wilkerson' },
19
- { label: 'Virginia Andrews', value: 'virginia-andrews' },
20
- { label: 'Kelly Snyder', value: 'kelly-snyder' },
21
- ];
22
-
23
- const meta = {
24
- title: 'Form/Select',
25
- component: Select,
26
- parameters: {
27
- layout: 'centered',
28
- },
29
- tags: ['autodocs'],
30
- argTypes: {},
31
- } satisfies Meta<typeof Select>;
32
-
33
- export default meta;
34
-
35
- type Story = StoryObj<typeof meta>;
36
-
37
- export const SelectBasic = () => {
38
- const [value, setValue] = React.useState('');
39
-
40
- const handleChange = (event: SelectChangeEvent) => {
41
- setValue(event.target.value as string);
42
- };
43
- return (
44
- <div style={{ width: '480px', marginBottom: 30 }}>
45
- <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="standard" data={data} />
46
- </div>
47
- );
48
- };
49
-
50
- SelectBasic.storyName = 'Select Basic';
51
-
52
- export const SelectVariants = () => {
53
- const [value, setValue] = React.useState('');
54
-
55
- const handleChange = (event: SelectChangeEvent) => {
56
- setValue(event.target.value as string);
57
- };
58
- return (
59
- <>
60
- <div style={{ width: '480px', marginBottom: 30 }}>
61
- <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="standard" data={data} />
62
- </div>
63
- <div style={{ width: '480px', marginBottom: 30 }}>
64
- <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="filled" data={data} />
65
- </div>
66
- <div style={{ width: '480px', marginBottom: 30 }}>
67
- <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="outlined" data={data} />
68
- </div>
69
- </>
70
- );
71
- };
72
-
73
- SelectVariants.storyName = 'Select Variantes';
74
-
75
- export const SelectMultiple = () => {
76
- const [value, setValue] = React.useState<string[]>([]);
77
-
78
- const handleChange = (event: SelectChangeEvent<typeof value>) => {
79
- const {
80
- target: { value },
81
- } = event;
82
- setValue(typeof value === 'string' ? value.split(',') : value);
83
- };
84
-
85
- return (
86
- <div style={{ width: '480px', marginBottom: 30 }}>
87
- <Select
88
- id="select-demo"
89
- value={value}
90
- onChange={handleChange}
91
- label="Members"
92
- multiple={true}
93
- data={data}
94
- variant="standard"
95
- />
96
- </div>
97
- );
98
- };
99
-
100
- SelectMultiple.storyName = 'Select Multiples';
1
+ import React from 'react';
2
+
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+ import { Select } from '../components';
5
+ import { DataSelect, TextFieldSizeVariant } from '../types';
6
+ import { SelectChangeEvent } from '@mui/material';
7
+
8
+ const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
9
+
10
+ const data: DataSelect[] = [
11
+ { label: 'Oliver Hansen', value: 'oliver-hansen' },
12
+ { label: 'Van Henry', value: 'van-henry' },
13
+ { label: 'April Tucker', value: 'april-tucker' },
14
+ { label: 'Ralph Hubbard', value: 'ralph-hubbard' },
15
+ { label: 'Omar Alexander', value: 'omar-alexander' },
16
+ { label: 'Carlos Abbott', value: 'carlos-abbott' },
17
+ { label: 'Miriam Wagner', value: 'miriam-wagner' },
18
+ { label: 'Bradley Wilkerson', value: 'bradley-wilkerson' },
19
+ { label: 'Virginia Andrews', value: 'virginia-andrews' },
20
+ { label: 'Kelly Snyder', value: 'kelly-snyder' },
21
+ ];
22
+
23
+ const meta = {
24
+ title: 'Form/Select',
25
+ component: Select,
26
+ parameters: {
27
+ layout: 'centered',
28
+ },
29
+ tags: ['autodocs'],
30
+ argTypes: {},
31
+ } satisfies Meta<typeof Select>;
32
+
33
+ export default meta;
34
+
35
+ type Story = StoryObj<typeof meta>;
36
+
37
+ export const SelectBasic = () => {
38
+ const [value, setValue] = React.useState('');
39
+
40
+ const handleChange = (event: SelectChangeEvent) => {
41
+ setValue(event.target.value as string);
42
+ };
43
+ return (
44
+ <div style={{ width: '480px', marginBottom: 30 }}>
45
+ <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="standard" data={data} />
46
+ </div>
47
+ );
48
+ };
49
+
50
+ SelectBasic.storyName = 'Select Basic';
51
+
52
+ export const SelectVariants = () => {
53
+ const [value, setValue] = React.useState('');
54
+
55
+ const handleChange = (event: SelectChangeEvent) => {
56
+ setValue(event.target.value as string);
57
+ };
58
+ return (
59
+ <>
60
+ <div style={{ width: '480px', marginBottom: 30 }}>
61
+ <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="standard" data={data} />
62
+ </div>
63
+ <div style={{ width: '480px', marginBottom: 30 }}>
64
+ <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="filled" data={data} />
65
+ </div>
66
+ <div style={{ width: '480px', marginBottom: 30 }}>
67
+ <Select id="select-demo" value={value} onChange={handleChange} label="Members" variant="outlined" data={data} />
68
+ </div>
69
+ </>
70
+ );
71
+ };
72
+
73
+ SelectVariants.storyName = 'Select Variantes';
74
+
75
+ export const SelectMultiple = () => {
76
+ const [value, setValue] = React.useState<string[]>([]);
77
+
78
+ const handleChange = (event: SelectChangeEvent<typeof value>) => {
79
+ const {
80
+ target: { value },
81
+ } = event;
82
+ setValue(typeof value === 'string' ? value.split(',') : value);
83
+ };
84
+
85
+ return (
86
+ <div style={{ width: '480px', marginBottom: 30 }}>
87
+ <Select
88
+ id="select-demo"
89
+ value={value}
90
+ onChange={handleChange}
91
+ label="Members"
92
+ multiple={true}
93
+ data={data}
94
+ variant="standard"
95
+ />
96
+ </div>
97
+ );
98
+ };
99
+
100
+ SelectMultiple.storyName = 'Select Multiples';