norma-library 0.6.6 → 0.6.61

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