@soyfri/shared-library 2.0.0-beta.2 → 2.0.0-beta.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 (187) hide show
  1. package/.dockerignore +8 -0
  2. package/.github/workflows/publish.yml +107 -0
  3. package/.prettierrc +3 -0
  4. package/.storybook/main.ts +19 -0
  5. package/.storybook/preview.ts +14 -0
  6. package/.storybook/vitest.setup.ts +9 -0
  7. package/Dockerfile +37 -0
  8. package/build.js +102 -0
  9. package/chromatic.config.json +5 -0
  10. package/cleanDirectories.js +40 -0
  11. package/dist/README.md +243 -0
  12. package/dist/components/Icon/Icon.js +1 -1
  13. package/dist/components/Table/Table.js +1 -1
  14. package/dist/index.cjs +24 -0
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.js +7 -1
  17. package/dist/mui.d.ts +1 -0
  18. package/dist/package.json +197 -0
  19. package/package.json +4 -32
  20. package/rollup.config.cjs +87 -0
  21. package/src/components/ActionMenu/ActionMenu.stories.tsx +230 -0
  22. package/src/components/ActionMenu/ActionMenu.tsx +174 -0
  23. package/src/components/ActionMenu/index.ts +2 -0
  24. package/src/components/AppBar/AppBar.stories.tsx +272 -0
  25. package/src/components/AppBar/AppBar.sx.ts +32 -0
  26. package/src/components/AppBar/AppBar.tsx +123 -0
  27. package/src/components/AppBar/AppBarBrand.tsx +120 -0
  28. package/src/components/AppBar/AppBarContext.ts +25 -0
  29. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  30. package/src/components/AppBar/AppBarUserMenu.tsx +217 -0
  31. package/src/components/AppBar/index.ts +25 -0
  32. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  33. package/src/components/Autocomplete/Autocomplete.helpers.ts +60 -0
  34. package/src/components/Autocomplete/Autocomplete.stories.tsx +748 -0
  35. package/src/components/Autocomplete/Autocomplete.sx.ts +30 -0
  36. package/src/components/Autocomplete/Autocomplete.tsx +361 -0
  37. package/src/components/Autocomplete/Autocomplete.types.ts +13 -0
  38. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  39. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  40. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +31 -0
  41. package/src/components/Autocomplete/index.ts +12 -0
  42. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  43. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  44. package/src/components/Avatar/Avatar.tsx +206 -0
  45. package/src/components/Avatar/index.ts +1 -0
  46. package/src/components/Button/Button.definition.ts +97 -0
  47. package/src/components/Button/Button.stories.tsx +285 -0
  48. package/src/components/Button/Button.tsx +67 -0
  49. package/src/components/Button/index.ts +1 -0
  50. package/src/components/Card/Card.definition.ts +5 -0
  51. package/src/components/Card/Card.stories.tsx +221 -0
  52. package/src/components/Card/Card.sx.ts +104 -0
  53. package/src/components/Card/Card.tsx +200 -0
  54. package/src/components/Card/index.ts +9 -0
  55. package/src/components/Chip/Chip.definitions.ts +167 -0
  56. package/src/components/Chip/Chip.stories.tsx +265 -0
  57. package/src/components/Chip/Chip.tsx +61 -0
  58. package/src/components/Chip/index.ts +1 -0
  59. package/src/components/Column/Column.tsx +29 -0
  60. package/src/components/Column/index.ts +1 -0
  61. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  62. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  63. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  64. package/src/components/DatePicker/DatePicker.sx.ts +33 -0
  65. package/src/components/DatePicker/DatePicker.tsx +189 -0
  66. package/src/components/DatePicker/DatePicker.types.ts +10 -0
  67. package/src/components/DatePicker/index.ts +9 -0
  68. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +191 -0
  69. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +252 -0
  70. package/src/components/DateRangePicker/DateRangePicker.tsx +56 -0
  71. package/src/components/DateRangePicker/index.ts +1 -0
  72. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +256 -0
  73. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +38 -0
  74. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +418 -0
  75. package/src/components/DateTimePicker/DateTimePicker.sx.ts +30 -0
  76. package/src/components/DateTimePicker/DateTimePicker.tsx +225 -0
  77. package/src/components/DateTimePicker/DateTimePicker.types.ts +10 -0
  78. package/src/components/DateTimePicker/index.ts +9 -0
  79. package/src/components/Drawer/Drawer.stories.tsx +270 -0
  80. package/src/components/Drawer/Drawer.sx.ts +106 -0
  81. package/src/components/Drawer/Drawer.tsx +214 -0
  82. package/src/components/Drawer/DrawerContext.ts +26 -0
  83. package/src/components/Drawer/DrawerItem.tsx +110 -0
  84. package/src/components/Drawer/index.ts +10 -0
  85. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  86. package/src/components/Flyout/Flyout.tsx +122 -0
  87. package/src/components/Flyout/index.ts +1 -0
  88. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  89. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  90. package/src/components/Gallery/Gallery.tsx +118 -0
  91. package/src/components/Gallery/GalleryLightbox.tsx +170 -0
  92. package/src/components/Gallery/GalleryMain.tsx +84 -0
  93. package/src/components/Gallery/GalleryThumbnails.tsx +106 -0
  94. package/src/components/Gallery/index.ts +1 -0
  95. package/src/components/Icon/Icon.stories.tsx +121 -0
  96. package/src/components/Icon/Icon.tsx +175 -0
  97. package/src/components/Icon/index.ts +2 -0
  98. package/src/components/Input/Input.definitions.ts +324 -0
  99. package/src/components/Input/Input.helpers.ts +49 -0
  100. package/src/components/Input/Input.stories.tsx +499 -0
  101. package/src/components/Input/Input.sx.ts +42 -0
  102. package/src/components/Input/Input.tsx +141 -0
  103. package/src/components/Input/Input.types.ts +10 -0
  104. package/src/components/Input/index.ts +9 -0
  105. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  106. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  107. package/src/components/InputGroup/InputGroup.tsx +179 -0
  108. package/src/components/InputGroup/index.ts +1 -0
  109. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  110. package/src/components/MenuButton/MenuButton.tsx +100 -0
  111. package/src/components/MenuButton/index.ts +1 -0
  112. package/src/components/Modal/Modal.stories.tsx +721 -0
  113. package/src/components/Modal/Modal.tsx +355 -0
  114. package/src/components/Modal/ModalBody.tsx +16 -0
  115. package/src/components/Modal/ModalFooter.tsx +71 -0
  116. package/src/components/Modal/ModalHeader.tsx +18 -0
  117. package/src/components/Modal/index.ts +6 -0
  118. package/src/components/PageLoader/PageLoader.stories.tsx +217 -0
  119. package/src/components/PageLoader/PageLoader.tsx +96 -0
  120. package/src/components/PageLoader/index.ts +2 -0
  121. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +158 -0
  122. package/src/components/ScrollTopButton/ScrollTopButton.tsx +135 -0
  123. package/src/components/ScrollTopButton/index.ts +8 -0
  124. package/src/components/ScrollTopButton/scrollToTop.ts +37 -0
  125. package/src/components/Select/Select.definitions.ts +602 -0
  126. package/src/components/Select/Select.helpers.ts +71 -0
  127. package/src/components/Select/Select.stories.tsx +687 -0
  128. package/src/components/Select/Select.sx.ts +14 -0
  129. package/src/components/Select/Select.tsx +429 -0
  130. package/src/components/Select/Select.types.ts +15 -0
  131. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  132. package/src/components/Select/_parts/SelectSearchHeader.tsx +51 -0
  133. package/src/components/Select/_parts/SelectValue.tsx +96 -0
  134. package/src/components/Select/index.ts +14 -0
  135. package/src/components/Stat/Stat.stories.tsx +85 -0
  136. package/src/components/Stat/Stat.tsx +117 -0
  137. package/src/components/Stat/index.ts +2 -0
  138. package/src/components/StatusMessage/StatusMessage.stories.tsx +130 -0
  139. package/src/components/StatusMessage/StatusMessage.tsx +162 -0
  140. package/src/components/StatusMessage/index.ts +2 -0
  141. package/src/components/Stepper/Step.tsx +21 -0
  142. package/src/components/Stepper/Stepper.definition.ts +75 -0
  143. package/src/components/Stepper/Stepper.stories.tsx +122 -0
  144. package/src/components/Stepper/Stepper.tsx +75 -0
  145. package/src/components/Stepper/index.ts +2 -0
  146. package/src/components/Table/EmptyTable.png +0 -0
  147. package/src/components/Table/Table.definition.ts +580 -0
  148. package/src/components/Table/Table.stories.tsx +853 -0
  149. package/src/components/Table/Table.tsx +495 -0
  150. package/src/components/Table/data.ts +134 -0
  151. package/src/components/Table/exportsUtils.ts +195 -0
  152. package/src/components/Table/index.ts +3 -0
  153. package/src/components/Table/types.ts +34 -0
  154. package/src/components/Tabs/Tab.definition.ts +53 -0
  155. package/src/components/Tabs/Tab.tsx +19 -0
  156. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  157. package/src/components/Tabs/Tabs.tsx +99 -0
  158. package/src/components/Tabs/_tabUtils.tsx +4 -0
  159. package/src/components/Tabs/index.ts +2 -0
  160. package/src/components/Timeline/Timeline.definition.ts +43 -0
  161. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  162. package/src/components/Timeline/Timeline.tsx +49 -0
  163. package/src/components/Timeline/TimelineItem.tsx +31 -0
  164. package/src/components/Timeline/index.ts +2 -0
  165. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  166. package/src/components/Tooltip/Tooltip.tsx +58 -0
  167. package/src/components/Tooltip/index.ts +1 -0
  168. package/src/components/_shared/formField.sx.ts +118 -0
  169. package/src/components/_shared/resolvePreset.ts +35 -0
  170. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  171. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  172. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  173. package/src/hooks/ClipBoard/index.ts +1 -0
  174. package/src/hooks/Wizard/Wizard.stories.tsx +301 -0
  175. package/src/hooks/Wizard/WizardContext.tsx +166 -0
  176. package/src/hooks/Wizard/index.ts +6 -0
  177. package/src/hooks/Wizard/useWizard.ts +13 -0
  178. package/src/index.ts +17 -0
  179. package/src/mui.ts +54 -0
  180. package/src/styles.css +3 -0
  181. package/src/theme/componentStyles.ts +47 -0
  182. package/src/theme/tokens.ts +43 -0
  183. package/tailwind.config.js +10 -0
  184. package/tsconfig.json +48 -0
  185. package/tsup.config.js +41 -0
  186. package/vite.config.js +132 -0
  187. package/vitest.config.ts +35 -0
@@ -0,0 +1,122 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { useState } from "react";
3
+ import Step from "./Step";
4
+ import { Button } from "../Button";
5
+ import { Box } from "@mui/material";
6
+ import Stepper from "./Stepper";
7
+ import { defaultStepper, stepperWithColorDots } from "./Stepper.definition";
8
+
9
+ const meta: Meta<typeof Stepper> = {
10
+ title: "Components/Stepper",
11
+ component: Stepper,
12
+ tags: ["autodocs"]
13
+ };
14
+ export default meta;
15
+ type Story = StoryObj<typeof Stepper>;
16
+
17
+ export const DefaultStepper: Story = {
18
+ render: (args) => {
19
+ const [currentStep, setCurrentStep] = useState(0);
20
+ return (
21
+ <Box>
22
+ <Stepper currentStep={currentStep} {...args}>
23
+ <Step label="Paso 1">
24
+ <div>Contenido del paso 1</div>
25
+ </Step>
26
+ <Step label="Paso 2">
27
+ <div>Contenido del paso 2</div>
28
+ </Step>
29
+ <Step label="Paso 3">
30
+ <div>Contenido del paso 3</div>
31
+ </Step>
32
+ </Stepper>
33
+ <Button
34
+ type="button"
35
+ onClick={() => setCurrentStep((prev) => Math.max(prev - 1, 0))}
36
+ sx={{ marginTop: 16 }}
37
+ >
38
+ Atras
39
+ </Button>
40
+ <Button
41
+ type="button"
42
+ onClick={() => setCurrentStep((prev) => Math.min(prev + 1, 2))}
43
+ sx={{ marginTop: 16 }}
44
+ >
45
+ Siguiente
46
+ </Button>
47
+ </Box>
48
+ );
49
+ },
50
+ parameters: {
51
+ docs: {
52
+ description: {
53
+ story: "Ejemplo básico de timeline"
54
+ },
55
+ source: {
56
+ code: defaultStepper
57
+ }
58
+ }
59
+ },
60
+ argTypes: {
61
+ children: { control: false, description: 'Componentes `Step` que definen la estructura de el stepper' },
62
+ orientation: { description: 'Indica si la posicion de los steps, es horizontal o vertical' },
63
+ alternateLabel: { description: 'Indica si las etiquetas de los steps, se muestran debajo de los iconos' },
64
+ currentStep: { description: 'Indica el step actual, el cual se encuentra activo' },
65
+ sx: { description: 'Estilos personalizados para el stepper' },
66
+ }
67
+ };
68
+
69
+
70
+ export const ColorStepper: Story = {
71
+ render: (args) => {
72
+ const [currentStep, setCurrentStep] = useState(0);
73
+ return (
74
+ <Box>
75
+ <Stepper currentStep={currentStep} {...args}>
76
+ <Step
77
+ label="Paso 1"
78
+ dotColor="#1976d2"
79
+ >
80
+ <div>Contenido del paso 1</div>
81
+ </Step>
82
+ <Step
83
+ label="Paso 2"
84
+ dotColor="#ffa726"
85
+ >
86
+ <div>Contenido del paso 2</div>
87
+ </Step>
88
+ <Step
89
+ label="Paso 3"
90
+ dotColor="#4caf50"
91
+ >
92
+ <div>Contenido del paso 3</div>
93
+ </Step>
94
+ </Stepper>
95
+ <Button
96
+ type="button"
97
+ onClick={() => setCurrentStep((prev) => Math.max(prev - 1, 0))}
98
+ sx={{ marginTop: 16 }}
99
+ >
100
+ Atras
101
+ </Button>
102
+ <Button
103
+ type="button"
104
+ onClick={() => setCurrentStep((prev) => Math.min(prev + 1, 2))}
105
+ sx={{ marginTop: 16 }}
106
+ >
107
+ Siguiente
108
+ </Button>
109
+ </Box>
110
+ );
111
+ },
112
+ parameters: {
113
+ docs: {
114
+ description: {
115
+ story: "Stepper con variantes de color en los dots"
116
+ },
117
+ source: {
118
+ code: stepperWithColorDots
119
+ }
120
+ }
121
+ }
122
+ };
@@ -0,0 +1,75 @@
1
+ import React, { ReactElement } from "react";
2
+ import { Stepper as MuiStepper, Step as MuiStep, StepLabel as MuiStepLabel, Box } from "@mui/material";
3
+ import { StepProps } from "./Step";
4
+ import { useWizard } from "../../hooks/Wizard";
5
+
6
+ interface MyStepperProps {
7
+ children: ReactElement<StepProps>[];
8
+ orientation?: "horizontal" | "vertical";
9
+ sx?: object;
10
+ alternateLabel?: boolean;
11
+ /**
12
+ * Índice 0-based del paso activo. Si no se provee, el Stepper intenta
13
+ * leerlo del `WizardContext` (si está dentro de un `<WizardProvider>`).
14
+ * Si tampoco hay provider, el default es 0.
15
+ */
16
+ currentStep?: number;
17
+ }
18
+
19
+ export const Stepper: React.FC<MyStepperProps> = ({
20
+ children,
21
+ orientation = "horizontal",
22
+ alternateLabel = false,
23
+
24
+ sx,
25
+ currentStep: currentStepProp,
26
+ }) => {
27
+ // Lee el paso desde el WizardContext cuando el consumer no lo pasa como prop.
28
+ // Si el Stepper NO está dentro de un WizardProvider, `useWizard()` devuelve
29
+ // el valor default (currentStep=0, totalSteps=0), así que no rompe nada.
30
+ const wizard = useWizard();
31
+ const currentStep =
32
+ currentStepProp !== undefined
33
+ ? currentStepProp
34
+ : wizard.totalSteps > 0
35
+ ? wizard.currentStep
36
+ : 0;
37
+
38
+ return (
39
+ <Box sx={sx}>
40
+ <MuiStepper activeStep={currentStep} orientation={orientation} alternativeLabel={alternateLabel} >
41
+ {children.map((child, idx) => {
42
+ const { label, completed, disabled, className, sx: stepSx, dotColor, activeDotColor, completedDotColor, iconTextColor } = child.props;
43
+ return (
44
+ <MuiStep key={idx} completed={completed} disabled={disabled} className={className} sx={stepSx}>
45
+ <MuiStepLabel sx={{
46
+ pointerEvents: 'none',
47
+ "& .MuiStepIcon-root": {
48
+ color: dotColor,
49
+ },
50
+ "& .MuiStepIcon-active": {
51
+ color: activeDotColor,
52
+ },
53
+ "& .MuiStepIcon-completed": {
54
+ color: completedDotColor,
55
+ },
56
+ "& .MuiStepIcon-text": {
57
+ fill: iconTextColor,
58
+ },
59
+ }}
60
+ >{label}
61
+ </MuiStepLabel>
62
+ </MuiStep>
63
+ );
64
+ })}
65
+ </MuiStepper>
66
+ <Box mt={2}>
67
+ {children.map((child, idx) =>
68
+ idx === currentStep ? <Box key={idx}>{child.props.children}</Box> : null
69
+ )}
70
+ </Box>
71
+ </Box>
72
+ );
73
+ };
74
+
75
+ export default Stepper;
@@ -0,0 +1,2 @@
1
+ export { default as Stepper } from './Stepper';
2
+ export { default as Step } from './Step';