@zauru-sdk/components 6.2.28 → 6.3.0

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 (98) hide show
  1. package/.ladle/components.tsx +30 -0
  2. package/.ladle/config.mjs +9 -0
  3. package/.ladle/vite.config.ts +23 -0
  4. package/CHANGELOG.md +14 -0
  5. package/PLAYGROUND.md +59 -0
  6. package/dist/Alerts/StaticAlert.d.ts +1 -1
  7. package/dist/Buttons/ActionList.d.ts +17 -0
  8. package/dist/Buttons/Button.d.ts +1 -1
  9. package/dist/Buttons/index.d.ts +1 -0
  10. package/dist/Containers/ButtonSectionContainer.d.ts +2 -0
  11. package/dist/Containers/Container.d.ts +3 -1
  12. package/dist/DynamicTable/GenericDynamicTable.d.ts +2 -0
  13. package/dist/Form/FileUpload/index.d.ts +1 -0
  14. package/dist/Form/FormLayout/index.d.ts +11 -0
  15. package/dist/Form/RadioButtonGroup/index.d.ts +1 -0
  16. package/dist/Form/SelectField/index.d.ts +4 -1
  17. package/dist/Form/index.d.ts +2 -0
  18. package/dist/Labels/SearchFiltersSummary.d.ts +12 -0
  19. package/dist/Labels/index.d.ts +1 -0
  20. package/dist/Layouts/errorLayout/index.d.ts +4 -1
  21. package/dist/NavBar/NavBar.d.ts +1 -1
  22. package/dist/NavBar/NavBar.types.d.ts +1 -0
  23. package/dist/Table/ZauruTable.d.ts +5 -0
  24. package/dist/Tooltip/Tooltip.d.ts +7 -0
  25. package/dist/Tooltip/index.d.ts +1 -0
  26. package/dist/WithTooltip/WithTooltip.d.ts +7 -0
  27. package/dist/WithTooltip/index.d.ts +1 -0
  28. package/dist/esm/Alerts/StaticAlert.js +6 -0
  29. package/dist/esm/BlockUI/BlockUI.js +1 -1
  30. package/dist/esm/Buttons/ActionList.js +8 -0
  31. package/dist/esm/Buttons/Button.js +5 -5
  32. package/dist/esm/Buttons/index.js +1 -0
  33. package/dist/esm/Containers/ButtonSectionContainer.js +2 -2
  34. package/dist/esm/Containers/Container.js +7 -2
  35. package/dist/esm/Containers/OutletContainer.js +1 -1
  36. package/dist/esm/DynamicTable/GenericDynamicTable.js +6 -3
  37. package/dist/esm/Footer/Footer.js +1 -1
  38. package/dist/esm/Form/FileUpload/index.js +2 -2
  39. package/dist/esm/Form/FormLayout/index.js +7 -0
  40. package/dist/esm/Form/RadioButtonGroup/index.js +1 -0
  41. package/dist/esm/Form/SelectField/index.js +16 -6
  42. package/dist/esm/Form/TextField/index.js +13 -3
  43. package/dist/esm/Form/index.js +2 -0
  44. package/dist/esm/Labels/SearchFiltersSummary.js +7 -0
  45. package/dist/esm/Labels/index.js +1 -0
  46. package/dist/esm/Layouts/errorLayout/index.js +9 -3
  47. package/dist/esm/Modal/ItemModal.js +7 -4
  48. package/dist/esm/NavBar/NavBar.js +8 -3
  49. package/dist/esm/Table/ZauruTable.js +67 -8
  50. package/dist/esm/Tooltip/Tooltip.js +14 -0
  51. package/dist/esm/Tooltip/index.js +1 -0
  52. package/dist/esm/WithTooltip/WithTooltip.js +5 -0
  53. package/dist/esm/WithTooltip/index.js +1 -0
  54. package/dist/esm/index.js +2 -0
  55. package/dist/index.d.ts +2 -0
  56. package/package.json +10 -3
  57. package/postcss.config.cjs +6 -0
  58. package/src/Alerts/StaticAlert.tsx +11 -1
  59. package/src/BlockUI/BlockUI.tsx +1 -1
  60. package/src/Buttons/ActionList.tsx +56 -0
  61. package/src/Buttons/Button.tsx +15 -9
  62. package/src/Buttons/index.ts +1 -0
  63. package/src/Containers/ButtonSectionContainer.tsx +4 -2
  64. package/src/Containers/Container.tsx +43 -13
  65. package/src/Containers/OutletContainer.tsx +1 -1
  66. package/src/DynamicTable/GenericDynamicTable.tsx +26 -9
  67. package/src/Footer/Footer.tsx +2 -1
  68. package/src/Form/FileUpload/index.tsx +3 -0
  69. package/src/Form/FormLayout/index.tsx +35 -0
  70. package/src/Form/RadioButtonGroup/index.tsx +4 -0
  71. package/src/Form/SelectField/index.tsx +44 -23
  72. package/src/Form/TextField/index.tsx +14 -1
  73. package/src/Form/index.ts +2 -0
  74. package/src/Labels/SearchFiltersSummary.tsx +34 -0
  75. package/src/Labels/index.tsx +1 -0
  76. package/src/Layouts/errorLayout/index.tsx +11 -2
  77. package/src/Modal/ItemModal.tsx +18 -5
  78. package/src/NavBar/NavBar.tsx +20 -2
  79. package/src/NavBar/NavBar.types.ts +1 -0
  80. package/src/Table/ZauruTable.tsx +83 -7
  81. package/src/Tooltip/Tooltip.tsx +42 -0
  82. package/src/Tooltip/index.ts +1 -0
  83. package/src/WithTooltip/WithTooltip.tsx +22 -0
  84. package/src/WithTooltip/index.tsx +1 -0
  85. package/src/index.ts +2 -0
  86. package/stories/Alerts.stories.tsx +17 -0
  87. package/stories/Button.stories.tsx +52 -0
  88. package/stories/Card.stories.tsx +7 -0
  89. package/stories/Container.stories.tsx +24 -0
  90. package/stories/Form.stories.tsx +58 -0
  91. package/stories/Labels.stories.tsx +17 -0
  92. package/stories/Modal.stories.tsx +21 -0
  93. package/stories/Tab.stories.tsx +10 -0
  94. package/stories/Table.stories.tsx +37 -0
  95. package/stories/Titles.stories.tsx +11 -0
  96. package/stories/Tooltip.stories.tsx +15 -0
  97. package/tailwind.config.cjs +12 -0
  98. package/tsconfig.json +1 -0
@@ -7,19 +7,70 @@ import type {
7
7
  } from "react-data-table-component";
8
8
  import { createTheme } from "react-data-table-component";
9
9
  import { SearchSVG } from "@zauru-sdk/icons";
10
+ import { ExpandableRowsComponent } from "react-data-table-component/dist/DataTable/types.js";
10
11
  import * as ReactDataTableComponent from "react-data-table-component";
11
12
  const DataTable = ReactDataTableComponent.default as any;
12
13
 
14
+ const headerTextWrapStyle = {
15
+ whiteSpace: "normal",
16
+ overflow: "visible",
17
+ textOverflow: "clip",
18
+ overflowWrap: "break-word",
19
+ wordBreak: "break-word",
20
+ lineHeight: "1.25",
21
+ } as const;
22
+
13
23
  const customStyles: TableStyles = {
24
+ table: {
25
+ style: {
26
+ minWidth: 0,
27
+ },
28
+ },
29
+ tableWrapper: {
30
+ style: {
31
+ display: "block",
32
+ width: "100%",
33
+ maxWidth: "100%",
34
+ minWidth: 0,
35
+ overflowX: "auto",
36
+ },
37
+ },
38
+ responsiveWrapper: {
39
+ style: {
40
+ width: "100%",
41
+ maxWidth: "100%",
42
+ minWidth: 0,
43
+ overflowX: "auto",
44
+ },
45
+ },
46
+ headRow: {
47
+ style: {
48
+ minHeight: "40px",
49
+ height: "auto",
50
+ alignItems: "stretch",
51
+ },
52
+ denseStyle: {
53
+ minHeight: "36px",
54
+ height: "auto",
55
+ },
56
+ },
14
57
  headCells: {
15
58
  style: {
16
59
  color: "#202124",
17
60
  fontSize: "14px",
18
61
  justifyContent: "left",
19
- whiteSpace: "normal",
20
- wordBreak: "break-word",
21
- maxWidth: "250px",
22
- padding: "4px", // Add some padding
62
+ alignItems: "flex-start",
63
+ paddingTop: "8px",
64
+ paddingBottom: "8px",
65
+ ...headerTextWrapStyle,
66
+ ".rdt_TableCol_Sortable": {
67
+ height: "auto",
68
+ minHeight: "100%",
69
+ overflow: "visible",
70
+ whiteSpace: "normal",
71
+ alignItems: "flex-start",
72
+ },
73
+ ".rdt_TableCol_Sortable > div": headerTextWrapStyle,
23
74
  },
24
75
  },
25
76
  cells: {
@@ -28,6 +79,16 @@ const customStyles: TableStyles = {
28
79
  wordBreak: "break-word",
29
80
  },
30
81
  },
82
+ expanderRow: {
83
+ style: {
84
+ minWidth: 0,
85
+ width: "100%",
86
+ maxWidth: "100%",
87
+ overflowX: "auto",
88
+ display: "grid",
89
+ gridTemplateColumns: "minmax(0, 1fr)",
90
+ },
91
+ },
31
92
  rows: {
32
93
  highlightOnHoverStyle: {
33
94
  backgroundColor: "rgb(230, 244, 244)",
@@ -106,6 +167,10 @@ type Props = TableProps<any> & {
106
167
  search?: {
107
168
  placeholderSearch?: string;
108
169
  };
170
+ expandable?: {
171
+ expandableRowExpanded?: (row: any) => boolean;
172
+ expandableRowsComponent?: ExpandableRowsComponent<any>;
173
+ };
109
174
  theme?: "solarized" | "subTable";
110
175
  className?: string;
111
176
  };
@@ -119,6 +184,7 @@ export const ZauruTable = (props: Props) => {
119
184
  loading = false,
120
185
  pagination,
121
186
  search,
187
+ expandable,
122
188
  theme,
123
189
  className,
124
190
  offlineSearch = [],
@@ -225,7 +291,8 @@ export const ZauruTable = (props: Props) => {
225
291
  const subHeaderComponent = loadSubHeader ? subHeaderComponentMemo : undefined;
226
292
 
227
293
  return (
228
- <DataTable
294
+ <div className="w-full min-w-0 max-w-full overflow-x-auto">
295
+ <DataTable
229
296
  className={className}
230
297
  subHeaderWrap
231
298
  theme={theme ?? "solarized"}
@@ -242,6 +309,14 @@ export const ZauruTable = (props: Props) => {
242
309
  persistTableHead
243
310
  responsive
244
311
  noHeader
312
+ expandableRows={!!expandable}
313
+ expandOnRowClicked={!!expandable}
314
+ expandableRowExpanded={
315
+ expandable ? expandable.expandableRowExpanded : undefined
316
+ }
317
+ expandableRowsComponent={
318
+ expandable ? expandable.expandableRowsComponent : undefined
319
+ }
245
320
  subHeader={loadSubHeader}
246
321
  subHeaderComponent={subHeaderComponent}
247
322
  paginationServer={!!pagination}
@@ -254,7 +329,8 @@ export const ZauruTable = (props: Props) => {
254
329
  ? pagination.rowsPerPageOptions
255
330
  : [10, 50, 100]
256
331
  }
257
- {...others}
258
- />
332
+ {...others}
333
+ />
334
+ </div>
259
335
  );
260
336
  };
@@ -0,0 +1,42 @@
1
+ "use client";
2
+
3
+ import React, { useState } from "react";
4
+
5
+ type Props = {
6
+ children: React.ReactNode;
7
+ text: string;
8
+ };
9
+
10
+ export const Tooltip = ({ children, text }: Props) => {
11
+ const [show, setShow] = useState(false);
12
+
13
+ return (
14
+ <div className="relative inline-block">
15
+ <div
16
+ onMouseEnter={() => setShow(true)}
17
+ onMouseLeave={() => setShow(false)}
18
+ >
19
+ {children}
20
+ </div>
21
+ {show && (
22
+ <div
23
+ className="absolute z-10 bg-gray-700 text-white px-2 py-1 rounded-md bottom-full left-1/2 transform -translate-x-1/2"
24
+ style={{ whiteSpace: "nowrap", height: "2rem" }}
25
+ >
26
+ {text}
27
+ <div
28
+ className="absolute top-full left-1/2 transform -translate-x-1/2"
29
+ style={{
30
+ width: "0",
31
+ height: "0",
32
+ borderTop: "6px solid transparent",
33
+ borderLeft: "6px solid transparent",
34
+ borderRight: "6px solid transparent",
35
+ borderBottom: "6px solid gray",
36
+ }}
37
+ ></div>
38
+ </div>
39
+ )}
40
+ </div>
41
+ );
42
+ };
@@ -0,0 +1 @@
1
+ export * from "./Tooltip.js";
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+
3
+ type Props = {
4
+ children: React.ReactNode;
5
+ text: string;
6
+ };
7
+
8
+ export const WithTooltip = (props: Props) => {
9
+ const { children, text } = props;
10
+
11
+ return (
12
+ <div className="group relative inline-block">
13
+ {children}
14
+ <div className="pointer-events-none absolute left-1/2 -translate-x-1/2 bottom-full mb-2 opacity-0 transition-opacity duration-300 group-hover:opacity-100">
15
+ <div className="relative bg-black text-white text-sm rounded py-1 px-2 text-wrap w-40">
16
+ {text}
17
+ <div className="absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-black"></div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ );
22
+ };
@@ -0,0 +1 @@
1
+ export * from "./WithTooltip.js";
package/src/index.ts CHANGED
@@ -19,6 +19,8 @@ export * from "./Tab/index.js";
19
19
  export * from "./Table/index.js";
20
20
  export * from "./TaskList/index.js";
21
21
  export * from "./Titles/index.js";
22
+ export * from "./Tooltip/index.js";
23
+ export * from "./WithTooltip/index.js";
22
24
  export * from "./Wizards/index.js";
23
25
  export * from "./Zendesk/index.js";
24
26
  export * from "./HOC/ValidateEmployeeAccess/index.js";
@@ -0,0 +1,17 @@
1
+ import { StaticAlert } from "../src/Alerts/StaticAlert.js";
2
+
3
+ export const Info = () => (
4
+ <StaticAlert title="Información" description="Mensaje informativo." type="info" />
5
+ );
6
+
7
+ export const Success = () => (
8
+ <StaticAlert title="Listo" description="La operación se completó." type="success" />
9
+ );
10
+
11
+ export const Warning = () => (
12
+ <StaticAlert
13
+ title="Atención"
14
+ description="Hay datos pendientes de revisar."
15
+ type="warning"
16
+ />
17
+ );
@@ -0,0 +1,52 @@
1
+ import { ActionList } from "../src/Buttons/ActionList.js";
2
+ import { Button } from "../src/Buttons/Button.js";
3
+
4
+ export const Default = () => <Button title="Guardar" />;
5
+
6
+ export const Loading = () => (
7
+ <Button title="Guardar" loading loadingText="Guardando..." />
8
+ );
9
+
10
+ export const Disabled = () => <Button title="Guardar" disabled />;
11
+
12
+ export const Colors = () => (
13
+ <div className="flex flex-wrap gap-2">
14
+ <Button title="Indigo" selectedColor="indigo" />
15
+ <Button title="Green" selectedColor="green" />
16
+ <Button title="Red" selectedColor="red" />
17
+ <Button title="Yellow" selectedColor="yellow" />
18
+ <Button title="Gray" selectedColor="gray" />
19
+ </div>
20
+ );
21
+
22
+ export const Dropdown = () => (
23
+ <Button
24
+ title="Acciones"
25
+ dropdownTitle="Acciones"
26
+ dropdownOptions={[
27
+ { label: "Exportar", value: "export", onClick: () => undefined },
28
+ { label: "Imprimir", value: "print", onClick: () => undefined },
29
+ ]}
30
+ />
31
+ );
32
+
33
+ export const Actions = () => (
34
+ <ActionList
35
+ items={[
36
+ {
37
+ key: "pdf",
38
+ badge: "PDF",
39
+ badgeClassName: "bg-red-50 text-red-700",
40
+ label: "Imprimir reporte",
41
+ onClick: () => undefined,
42
+ },
43
+ {
44
+ key: "xls",
45
+ badge: "XLS",
46
+ badgeClassName: "bg-green-50 text-green-700",
47
+ label: "Exportar Excel",
48
+ onClick: () => undefined,
49
+ },
50
+ ]}
51
+ />
52
+ );
@@ -0,0 +1,7 @@
1
+ import { Card } from "../src/Card/Card.js";
2
+
3
+ export const Default = () => (
4
+ <Card title="Tarjeta">
5
+ <p>Contenido de la tarjeta.</p>
6
+ </Card>
7
+ );
@@ -0,0 +1,24 @@
1
+ import { Container } from "../src/Containers/Container.js";
2
+ import { Button } from "../src/Buttons/Button.js";
3
+
4
+ export const Default = () => (
5
+ <Container title="Contenedor" description="Descripción de la sección.">
6
+ <p>Contenido de ejemplo.</p>
7
+ </Container>
8
+ );
9
+
10
+ export const WithRightContent = () => (
11
+ <Container
12
+ title="Con acciones"
13
+ description="El encabezado se adapta en móvil."
14
+ rightContent={<Button title="Nuevo" />}
15
+ >
16
+ <p>Cuerpo.</p>
17
+ </Container>
18
+ );
19
+
20
+ export const Collapsible = () => (
21
+ <Container title="Colapsable" collapsible defaultOpen>
22
+ <p>Se puede contraer con el summary.</p>
23
+ </Container>
24
+ );
@@ -0,0 +1,58 @@
1
+ import { TextField } from "../src/Form/TextField/index.js";
2
+ import { SelectField } from "../src/Form/SelectField/index.js";
3
+ import { CheckBox } from "../src/Form/Checkbox/index.js";
4
+ import { FormDatePicker } from "../src/Form/DatePicker/index.js";
5
+ import { FileUploadField } from "../src/Form/FileUpload/index.js";
6
+ import { FormLayout } from "../src/Form/FormLayout/index.js";
7
+ import { RadioButtonGroup } from "../src/Form/RadioButtonGroup/index.js";
8
+ import { Button } from "../src/Buttons/Button.js";
9
+
10
+ export const Text = () => (
11
+ <TextField name="nombre" title="Nombre" hint="Campo de texto" required />
12
+ );
13
+
14
+ export const Select = () => (
15
+ <SelectField
16
+ name="agencia"
17
+ title="Agencia"
18
+ options={[
19
+ { label: "Central", value: "1" },
20
+ { label: "Norte", value: "2", disabled: true, disabledLabel: "cerrada" },
21
+ { label: "Sur", value: "3" },
22
+ ]}
23
+ />
24
+ );
25
+
26
+ export const Checkbox = () => (
27
+ <CheckBox name="acepta" label="Acepto los términos" required />
28
+ );
29
+
30
+ export const DatePicker = () => (
31
+ <FormDatePicker name="fecha" title="Fecha" />
32
+ );
33
+
34
+ export const FileUpload = () => (
35
+ <FileUploadField name="archivo" title="Archivo" fileTypes={["pdf", "png"]} />
36
+ );
37
+
38
+ export const Layout = () => (
39
+ <FormLayout
40
+ formId="demo-form"
41
+ title="Formulario de ejemplo"
42
+ buttons={<Button title="Enviar" />}
43
+ >
44
+ <TextField name="campo" title="Campo" />
45
+ </FormLayout>
46
+ );
47
+
48
+ export const Radios = () => (
49
+ <RadioButtonGroup
50
+ name="tipo"
51
+ title="Tipo"
52
+ options={[
53
+ { label: "Uno", value: "1" },
54
+ { label: "Dos", value: "2" },
55
+ ]}
56
+ orientation="horizontal"
57
+ />
58
+ );
@@ -0,0 +1,17 @@
1
+ import { InfoLabel } from "../src/Labels/InfoLabel/index.js";
2
+ import { SearchFiltersSummary } from "../src/Labels/SearchFiltersSummary.js";
3
+
4
+ export const Info = () => (
5
+ <InfoLabel title="Agencia" description="Central" />
6
+ );
7
+
8
+ export const Filters = () => (
9
+ <SearchFiltersSummary
10
+ items={[
11
+ { key: "dates", label: "Fechas", value: "01/01/2026 – 31/01/2026" },
12
+ { key: "agency", label: "Agencia", value: "Todas" },
13
+ ]}
14
+ />
15
+ );
16
+
17
+ export const FiltersEmpty = () => <SearchFiltersSummary items={[]} />;
@@ -0,0 +1,21 @@
1
+ import { useState } from "react";
2
+ import { ProgressModal } from "../src/Modal/ProgressModal.js";
3
+ import { Button } from "../src/Buttons/Button.js";
4
+
5
+ export const Progress = () => {
6
+ const [open, setOpen] = useState(true);
7
+ return (
8
+ <>
9
+ <Button type="button" title="Abrir progreso" onClickSave={() => setOpen(true)} />
10
+ <ProgressModal
11
+ isOpen={open}
12
+ onClose={() => setOpen(false)}
13
+ title="Procesando"
14
+ current={3}
15
+ total={10}
16
+ currentItem="Item 3"
17
+ description="Trabajo de ejemplo"
18
+ />
19
+ </>
20
+ );
21
+ };
@@ -0,0 +1,10 @@
1
+ import { Tabs } from "../src/Tab/Tab.js";
2
+
3
+ export const Default = () => (
4
+ <Tabs
5
+ items={[
6
+ { title: "General", link: "/" },
7
+ { title: "Detalle", link: "/home" },
8
+ ]}
9
+ />
10
+ );
@@ -0,0 +1,37 @@
1
+ import { GenericDynamicTable } from "../src/DynamicTable/GenericDynamicTable.js";
2
+ import { ZauruTable } from "../src/Table/ZauruTable.js";
3
+
4
+ export const Dynamic = () => (
5
+ <GenericDynamicTable
6
+ name="lineas"
7
+ withoutBg
8
+ paginated={false}
9
+ defaultValue={[{ id: "1", producto: "Tomate", cantidad: 2 }]}
10
+ rowSummary={(row) => `Cantidad: ${row.cantidad ?? 0}`}
11
+ columns={[
12
+ { label: "Producto", name: "producto", type: "textField" },
13
+ {
14
+ label: "Cantidad",
15
+ name: "cantidad",
16
+ type: "textField",
17
+ textFieldType: "number",
18
+ },
19
+ ]}
20
+ />
21
+ );
22
+
23
+ export const DataTable = () => (
24
+ <ZauruTable
25
+ columns={[
26
+ { name: "Nombre", selector: (row: { name: string }) => row.name },
27
+ { name: "Estado", selector: (row: { status: string }) => row.status },
28
+ ]}
29
+ data={[
30
+ { name: "Factura 1", status: "Abierta" },
31
+ { name: "Factura 2", status: "Cerrada" },
32
+ ]}
33
+ whitOutPagination
34
+ search={{ placeholderSearch: "Filtrar" }}
35
+ offlineSearch={["name", "status"]}
36
+ />
37
+ );
@@ -0,0 +1,11 @@
1
+ import { TitleH1 } from "../src/Titles/TitleH1.js";
2
+ import { TitleH2 } from "../src/Titles/TitleH2.js";
3
+ import { TitleH3 } from "../src/Titles/TitleH3.js";
4
+
5
+ export const Hierarchy = () => (
6
+ <div className="space-y-3">
7
+ <TitleH1 texto="Título H1" />
8
+ <TitleH2 texto="Título H2" />
9
+ <TitleH3 texto="Título H3" />
10
+ </div>
11
+ );
@@ -0,0 +1,15 @@
1
+ import { Tooltip } from "../src/Tooltip/Tooltip.js";
2
+ import { WithTooltip } from "../src/WithTooltip/WithTooltip.js";
3
+ import { Button } from "../src/Buttons/Button.js";
4
+
5
+ export const HoverTooltip = () => (
6
+ <Tooltip text="Ayuda contextual">
7
+ <Button title="Pasa el mouse" type="button" />
8
+ </Tooltip>
9
+ );
10
+
11
+ export const CssTooltip = () => (
12
+ <WithTooltip text="Texto largo que se envuelve en el globo de ayuda.">
13
+ <Button title="Con tooltip CSS" type="button" />
14
+ </WithTooltip>
15
+ );
@@ -0,0 +1,12 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ content: [
4
+ "./src/**/*.{ts,tsx}",
5
+ "./stories/**/*.{ts,tsx}",
6
+ ".ladle/**/*.{ts,tsx}",
7
+ ],
8
+ theme: {
9
+ extend: {},
10
+ },
11
+ plugins: [require("@tailwindcss/forms")],
12
+ };
package/tsconfig.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "include": ["**/*.ts", "**/*.tsx", "**/*.css"],
3
+ "exclude": ["stories", "dist", "node_modules", ".ladle"],
3
4
  "compilerOptions": {
4
5
  "target": "ES2022",
5
6
  "module": "NodeNext",