norma-library 0.6.3 → 0.6.4

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 (169) 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/index.js +3 -1
  9. package/dist/esm/components/UncontrolledTable/components/header/index.js.map +1 -1
  10. package/dist/esm/components/UncontrolledTable/components/header/styles.js +1 -1
  11. package/dist/esm/components/UncontrolledTable/components/header/styles.js.map +1 -1
  12. package/dist/esm/components/UncontrolledTable/index.js +1 -1
  13. package/dist/esm/components/UncontrolledTable/index.js.map +1 -1
  14. package/dist/esm/components/UncontrolledTable/interface.d.ts +2 -0
  15. package/docs/index.md +118 -118
  16. package/package.json +136 -136
  17. package/src/components/Accordion.tsx +39 -39
  18. package/src/components/Avatar.tsx +17 -17
  19. package/src/components/Badge.tsx +14 -14
  20. package/src/components/Box/index.tsx +12 -12
  21. package/src/components/Box/interfaces.ts +3 -3
  22. package/src/components/Box/styles.tsx +22 -22
  23. package/src/components/Breadcrumb/index.tsx +27 -27
  24. package/src/components/Breadcrumb/interface.ts +8 -8
  25. package/src/components/Breadcrumb/styles.tsx +32 -32
  26. package/src/components/Button.tsx +26 -26
  27. package/src/components/Card.tsx +37 -37
  28. package/src/components/ChatMessage.tsx +87 -87
  29. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  30. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  31. package/src/components/CheckBox.tsx +21 -21
  32. package/src/components/DateInput/index.tsx +34 -34
  33. package/src/components/DateInput/interface.ts +13 -13
  34. package/src/components/DateInput/styles.tsx +27 -27
  35. package/src/components/DatePicker.tsx +67 -67
  36. package/src/components/DropDown.tsx +24 -24
  37. package/src/components/IconButton.tsx +37 -37
  38. package/src/components/Icons.tsx +82 -82
  39. package/src/components/Modal.tsx +103 -103
  40. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  41. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  42. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  43. package/src/components/MultiSelectInput/index.tsx +60 -60
  44. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  45. package/src/components/MultiSelectInput/styles.tsx +43 -43
  46. package/src/components/Paper.tsx +12 -12
  47. package/src/components/ProgressBar.tsx +71 -71
  48. package/src/components/RadioGroup.tsx +43 -43
  49. package/src/components/RangerSlider.tsx +65 -65
  50. package/src/components/Select.tsx +74 -74
  51. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  52. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  53. package/src/components/SelectInput/index.tsx +45 -45
  54. package/src/components/SelectInput/interfaces.ts +15 -15
  55. package/src/components/SelectInput/styles.tsx +31 -31
  56. package/src/components/StatusModal/StatusModal.style.tsx +75 -75
  57. package/src/components/StatusModal/StatusModal.tsx +58 -58
  58. package/src/components/Svgs.tsx +506 -506
  59. package/src/components/Table/components/header/index.tsx +86 -86
  60. package/src/components/Table/components/header/styles.tsx +59 -59
  61. package/src/components/Table/components/index.tsx +8 -8
  62. package/src/components/Table/components/pagination/index.tsx +39 -39
  63. package/src/components/Table/components/pagination/styles.tsx +28 -28
  64. package/src/components/Table/components/tbody/index.tsx +30 -30
  65. package/src/components/Table/components/tbody/styles.tsx +4 -4
  66. package/src/components/Table/index.tsx +317 -317
  67. package/src/components/Table/interface.ts +23 -23
  68. package/src/components/Table/styles.tsx +117 -117
  69. package/src/components/Tabs.tsx +105 -105
  70. package/src/components/Tag.tsx +33 -33
  71. package/src/components/TextField.tsx +19 -19
  72. package/src/components/TextInput/index.tsx +37 -37
  73. package/src/components/TextInput/interface.ts +9 -9
  74. package/src/components/TextInput/styles.tsx +23 -23
  75. package/src/components/TimeLine.tsx +89 -89
  76. package/src/components/TimePicker.tsx +78 -78
  77. package/src/components/Typography/Text/index.tsx +20 -20
  78. package/src/components/Typography/Text/interfaces.ts +5 -5
  79. package/src/components/Typography/Text/styles.tsx +40 -40
  80. package/src/components/Typography/Title/index.tsx +22 -22
  81. package/src/components/Typography/Title/interfaces.ts +6 -6
  82. package/src/components/Typography/Title/styles.tsx +40 -40
  83. package/src/components/Typography/index.tsx +6 -6
  84. package/src/components/UncontrolledTable/components/header/index.tsx +72 -65
  85. package/src/components/UncontrolledTable/components/header/styles.tsx +65 -63
  86. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  87. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  88. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  89. package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
  90. package/src/components/UncontrolledTable/components/tbody/styles.tsx +32 -32
  91. package/src/components/UncontrolledTable/index.tsx +222 -221
  92. package/src/components/UncontrolledTable/interface.ts +44 -43
  93. package/src/components/UncontrolledTable/styles.tsx +123 -123
  94. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +56 -56
  95. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +68 -68
  96. package/src/components/index.ts +24 -24
  97. package/src/helpers/alignments.ts +14 -14
  98. package/src/helpers/borders.ts +18 -18
  99. package/src/helpers/colors.ts +258 -258
  100. package/src/helpers/index.ts +5 -5
  101. package/src/helpers/radios.ts +24 -24
  102. package/src/helpers/sizes.ts +72 -72
  103. package/src/hooks/useClickOutside.tsx +18 -18
  104. package/src/index.ts +70 -70
  105. package/src/interfaces/Accordion.ts +12 -12
  106. package/src/interfaces/Avatar.tsx +15 -15
  107. package/src/interfaces/Badge.ts +19 -19
  108. package/src/interfaces/Button.ts +22 -22
  109. package/src/interfaces/Card.ts +11 -11
  110. package/src/interfaces/ChatMessage.ts +12 -12
  111. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  112. package/src/interfaces/CheckBox.ts +27 -27
  113. package/src/interfaces/DatePicker.ts +13 -13
  114. package/src/interfaces/DropDown.ts +14 -14
  115. package/src/interfaces/IconButton.ts +22 -22
  116. package/src/interfaces/Icons.ts +17 -17
  117. package/src/interfaces/Modal.ts +18 -18
  118. package/src/interfaces/Paper.ts +12 -12
  119. package/src/interfaces/ProgressBar.ts +29 -29
  120. package/src/interfaces/RadioGroup.ts +23 -23
  121. package/src/interfaces/RangerSlider.ts +21 -21
  122. package/src/interfaces/Select.ts +17 -17
  123. package/src/interfaces/Tabs.ts +19 -19
  124. package/src/interfaces/Tag.ts +17 -17
  125. package/src/interfaces/TextField.ts +44 -44
  126. package/src/interfaces/TimeLine.ts +11 -11
  127. package/src/interfaces/TimePicker.ts +13 -13
  128. package/src/interfaces/index.ts +23 -23
  129. package/src/providers/NormaProvider.tsx +13 -13
  130. package/src/sample-data-2.json +178 -178
  131. package/src/sample-data.json +177 -177
  132. package/src/stories/Accordion.stories.tsx +65 -65
  133. package/src/stories/Avatar.stories.tsx +123 -123
  134. package/src/stories/Badge.stories.tsx +39 -39
  135. package/src/stories/Box.stories.tsx +35 -35
  136. package/src/stories/Breadcrumb.stories.tsx +44 -44
  137. package/src/stories/Button.stories.tsx +93 -93
  138. package/src/stories/Card.stories.tsx +39 -39
  139. package/src/stories/ChatMessage.stories.tsx +84 -84
  140. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  141. package/src/stories/CheckBox.stories.tsx +88 -88
  142. package/src/stories/DateInput.stories.tsx +51 -51
  143. package/src/stories/DatePicker.stories.tsx +50 -50
  144. package/src/stories/DropDown.stories.tsx +57 -57
  145. package/src/stories/IconButton.stories.tsx +78 -78
  146. package/src/stories/Modal.stories.tsx +246 -246
  147. package/src/stories/ModalStatus.stories.tsx +46 -46
  148. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  149. package/src/stories/Paper.stories.tsx +53 -53
  150. package/src/stories/ProgressBar.stories.tsx +116 -116
  151. package/src/stories/RadioGroup.stories.tsx +87 -87
  152. package/src/stories/RangerSlider.stories.tsx +149 -149
  153. package/src/stories/Select.stories.tsx +100 -100
  154. package/src/stories/SelectInput.stories.tsx +78 -78
  155. package/src/stories/Table.stories.tsx +372 -372
  156. package/src/stories/Tabs.stories.tsx +61 -61
  157. package/src/stories/Tag.stories.tsx +56 -56
  158. package/src/stories/Text.stories.tsx +37 -37
  159. package/src/stories/TextField.stories.tsx +310 -310
  160. package/src/stories/TextInput.stories.tsx +52 -52
  161. package/src/stories/TimeLine.stories.tsx +35 -35
  162. package/src/stories/TimePicker.stories.tsx +87 -87
  163. package/src/stories/Title.stories.tsx +43 -43
  164. package/src/stories/UncontrolledTable.stories.tsx +315 -305
  165. package/src/stories/UncontrolledTabs.stories.tsx +63 -63
  166. package/src/styles/globals.scss +17 -17
  167. package/src/types/index.ts +207 -207
  168. package/src/utils/styledBreakpoints.ts +25 -25
  169. 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';