@houssemdi2000/design-system 1.1.0 → 1.2.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.
@@ -0,0 +1 @@
1
+ export * from "./ToastContext";
@@ -12,3 +12,4 @@ export * from './Checkbox';
12
12
  export * from './TextField';
13
13
  export * from './Radio';
14
14
  export * from './Select';
15
+ export * from './Toast';
package/dist/index.esm.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import { createContext, useContext, useState } from 'react';
2
3
 
3
4
  function styleInject(css, ref) {
4
5
  if ( ref === void 0 ) ref = {};
@@ -27,29 +28,29 @@ function styleInject(css, ref) {
27
28
  }
28
29
  }
29
30
 
30
- var css_248z$a = ".btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;padding:10px 20px;transition:all .3s ease}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-danger{background-color:#dc3545;color:#fff}.btn-dark{background-color:#141617;color:#fff}.btn-light{background-color:#f8f9fa;color:#000}.btn-small{font-size:14px;padding:5px 10px}.btn-medium{font-size:16px;padding:10px 20px}.btn-large{font-size:18px;padding:15px 30px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-left-icon{margin-right:8px}.btn-left-icon,.btn-right-icon{align-items:center;display:inline-flex}.btn-right-icon{margin-left:8px}.btn-spinner{animation:spin .7s linear infinite;border:3px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;display:inline-block;height:12px;margin-left:5px;width:12px}@keyframes spin{to{transform:rotate(1turn)}}.btn-loading{cursor:not-allowed;position:relative}.btn-loading span,.btn-loading svg{opacity:0}.btn-loading>:not(.btn-spinner){visibility:hidden}";
31
- styleInject(css_248z$a);
31
+ var css_248z$b = ".btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;padding:10px 20px;transition:all .3s ease}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-danger{background-color:#dc3545;color:#fff}.btn-dark{background-color:#141617;color:#fff}.btn-light{background-color:#f8f9fa;color:#000}.btn-small{font-size:14px;padding:5px 10px}.btn-medium{font-size:16px;padding:10px 20px}.btn-large{font-size:18px;padding:15px 30px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-left-icon{margin-right:8px}.btn-left-icon,.btn-right-icon{align-items:center;display:inline-flex}.btn-right-icon{margin-left:8px}.btn-spinner{animation:spin .7s linear infinite;border:3px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;display:inline-block;height:12px;margin-left:5px;width:12px}@keyframes spin{to{transform:rotate(1turn)}}.btn-loading{cursor:not-allowed;position:relative}.btn-loading span,.btn-loading svg{opacity:0}.btn-loading>:not(.btn-spinner){visibility:hidden}";
32
+ styleInject(css_248z$b);
32
33
 
33
34
  const Button = ({ label, onClick, variant = "primary", size = "medium", disabled = false, icon, iconPosition = "left", backgroundColor, color, isLoading = false, }) => {
34
35
  return (jsx(Fragment, { children: jsxs("button", { className: `btn btn-${variant} btn-${size}`, onClick: onClick, disabled: disabled || isLoading, style: { backgroundColor, color }, children: [icon && iconPosition === "left" && jsx("span", { className: "btn-left-icon", children: icon }), label, icon && iconPosition === "right" && jsx("span", { className: "btn-right-icon", children: icon }), isLoading && jsx("span", { className: "btn-spinner" })] }) }));
35
36
  };
36
37
 
37
- var css_248z$9 = ".center{align-items:center;display:flex;justify-content:center}";
38
- styleInject(css_248z$9);
38
+ var css_248z$a = ".center{align-items:center;display:flex;justify-content:center}";
39
+ styleInject(css_248z$a);
39
40
 
40
41
  const Center = ({ children, backgroundColor = 'white', color = 'black' }) => {
41
42
  return jsx("div", { className: "center", style: { backgroundColor, color }, children: children });
42
43
  };
43
44
 
44
- var css_248z$8 = ".card{background:#fff;border-radius:12px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease,transform .2s ease}.card-elevated{box-shadow:0 2px 4px rgba(0,0,0,.08),0 8px 16px rgba(0,0,0,.06)}.card-elevated:hover{box-shadow:0 4px 8px rgba(0,0,0,.1),0 12px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.card-outlined{border:1px solid #e5e7eb}.card-flat{background:transparent;border:none}.card-padding-sm{padding:8px}.card-padding-md{padding:16px}.card-padding-lg{padding:24px}.card-header{font-size:1.25rem;font-weight:600;margin-bottom:4px}.card-body{font-size:.95rem;line-height:1.5}.card-footer{border-top:1px solid #ececec;color:#555;font-size:.9rem;margin-top:8px;padding-top:8px}";
45
- styleInject(css_248z$8);
45
+ var css_248z$9 = ".card{background:#fff;border-radius:12px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease,transform .2s ease}.card-elevated{box-shadow:0 2px 4px rgba(0,0,0,.08),0 8px 16px rgba(0,0,0,.06)}.card-elevated:hover{box-shadow:0 4px 8px rgba(0,0,0,.1),0 12px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.card-outlined{border:1px solid #e5e7eb}.card-flat{background:transparent;border:none}.card-padding-sm{padding:8px}.card-padding-md{padding:16px}.card-padding-lg{padding:24px}.card-header{font-size:1.25rem;font-weight:600;margin-bottom:4px}.card-body{font-size:.95rem;line-height:1.5}.card-footer{border-top:1px solid #ececec;color:#555;font-size:.9rem;margin-top:8px;padding-top:8px}";
46
+ styleInject(css_248z$9);
46
47
 
47
48
  const Card = ({ title, children, footer, backgroundColor, color, variant = "elevated", padding = "md", }) => {
48
49
  return (jsxs("div", { className: `card card-${variant} card-padding-${padding}`, style: { backgroundColor, color }, children: [title && jsx("div", { className: "card-header", children: title }), jsx("div", { className: "card-body", children: children }), footer && jsx("div", { className: "card-footer", children: footer })] }));
49
50
  };
50
51
 
51
- var css_248z$7 = ".bloc{box-sizing:border-box;max-width:100%;padding:16px;width:100%}@media (max-width:600px){.bloc{border-radius:6px;padding:12px}}@media (max-width:900px){.bloc{padding:14px}}";
52
- styleInject(css_248z$7);
52
+ var css_248z$8 = ".bloc{box-sizing:border-box;max-width:100%;padding:16px;width:100%}@media (max-width:600px){.bloc{border-radius:6px;padding:12px}}@media (max-width:900px){.bloc{padding:14px}}";
53
+ styleInject(css_248z$8);
53
54
 
54
55
  const Bloc = ({ children, className = "", style = {}, layout = "default", }) => {
55
56
  const layoutStyles = (() => {
@@ -73,22 +74,22 @@ const Bloc = ({ children, className = "", style = {}, layout = "default", }) =>
73
74
  return (jsx("div", { className: `bloc ${className}`, style: Object.assign(Object.assign({}, layoutStyles), style), children: children }));
74
75
  };
75
76
 
76
- var css_248z$6 = ".container{margin:0 auto;padding:0 16px;width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1200px}}.container-fluid{max-width:100%}";
77
- styleInject(css_248z$6);
77
+ var css_248z$7 = ".container{margin:0 auto;padding:0 16px;width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1200px}}.container-fluid{max-width:100%}";
78
+ styleInject(css_248z$7);
78
79
 
79
80
  const Container = ({ children, className = "", style = {}, fluid = false }) => {
80
81
  return (jsx("div", { className: `container ${fluid ? "container-fluid" : ""} ${className}`, style: style, children: children }));
81
82
  };
82
83
 
83
- var css_248z$5 = ".row{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:16px}@media (max-width:768px){.row{flex-direction:column}}";
84
- styleInject(css_248z$5);
84
+ var css_248z$6 = ".row{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:16px}@media (max-width:768px){.row{flex-direction:column}}";
85
+ styleInject(css_248z$6);
85
86
 
86
87
  const Row = ({ children, className = "", style = {} }) => {
87
88
  return jsx("div", { className: `row ${className}`, style: Object.assign({}, style), children: children });
88
89
  };
89
90
 
90
- var css_248z$4 = ".col,.column{box-sizing:border-box;flex:1 1 0;min-width:0;padding:8px}.col.small{max-width:20%}.col.medium{max-width:50%}.col.large{max-width:100%}.col>*,.column>*{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.col img,.column img{display:block;height:auto;max-width:100%}@media (max-width:768px){.col,.col.large,.col.medium,.col.small,.column{flex:none;max-width:100%;width:100%}}";
91
- styleInject(css_248z$4);
91
+ var css_248z$5 = ".col,.column{box-sizing:border-box;flex:1 1 0;min-width:0;padding:8px}.col.small{max-width:20%}.col.medium{max-width:50%}.col.large{max-width:100%}.col>*,.column>*{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.col img,.column img{display:block;height:auto;max-width:100%}@media (max-width:768px){.col,.col.large,.col.medium,.col.small,.column{flex:none;max-width:100%;width:100%}}";
92
+ styleInject(css_248z$5);
92
93
 
93
94
  const Column = ({ children, className = "", style = {} }) => {
94
95
  return (jsx("div", { className: `col ${className}`, style: Object.assign({}, style), children: children }));
@@ -122,8 +123,8 @@ const Divider = ({ color = "#e0e0e0", thickness = 1, orientation = "horizontal",
122
123
  return jsx("div", { style: styles });
123
124
  };
124
125
 
125
- var css_248z$3 = ".checkbox-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px;user-select:none}.checkbox-container.disabled{cursor:not-allowed;opacity:.5}.checkbox-container input{appearance:none;-webkit-appearance:none;height:0;position:absolute;width:0}.checkbox-box{border:2px solid var(--cb-box-color,#777);border-radius:4px;display:inline-block;height:18px;position:relative;transition:.2s ease;width:18px}.checkbox-container input:checked+.checkbox-box{background-color:var(--cb-checked-bg,#007bff);border-color:var(--cb-checked-bg,#007bff)}.checkbox-container input:checked+.checkbox-box:after{border-width:medium;border-bottom:2px solid var(--cb-check-color,#fff);border-left:0 solid var(--cb-check-color,#fff);border-right:2px solid var(--cb-check-color,#fff);border-top:0 solid var(--cb-check-color,#fff);content:\"\";height:10px;left:5px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.checkbox-container input:focus+.checkbox-box{box-shadow:0 0 4px var(--cb-focus-shadow,rgba(0,123,255,.4))}.checkbox-box.error{border-color:#d93025!important}.checkbox-label{font-size:14px}";
126
- styleInject(css_248z$3);
126
+ var css_248z$4 = ".checkbox-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px;user-select:none}.checkbox-container.disabled{cursor:not-allowed;opacity:.5}.checkbox-container input{appearance:none;-webkit-appearance:none;height:0;position:absolute;width:0}.checkbox-box{border:2px solid var(--cb-box-color,#777);border-radius:4px;display:inline-block;height:18px;position:relative;transition:.2s ease;width:18px}.checkbox-container input:checked+.checkbox-box{background-color:var(--cb-checked-bg,#007bff);border-color:var(--cb-checked-bg,#007bff)}.checkbox-container input:checked+.checkbox-box:after{border-width:medium;border-bottom:2px solid var(--cb-check-color,#fff);border-left:0 solid var(--cb-check-color,#fff);border-right:2px solid var(--cb-check-color,#fff);border-top:0 solid var(--cb-check-color,#fff);content:\"\";height:10px;left:5px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.checkbox-container input:focus+.checkbox-box{box-shadow:0 0 4px var(--cb-focus-shadow,rgba(0,123,255,.4))}.checkbox-box.error{border-color:#d93025!important}.checkbox-label{font-size:14px}";
127
+ styleInject(css_248z$4);
127
128
 
128
129
  const Checkbox = ({ label, checked, onChange, disabled = false, error = false, boxColor = "#777", checkColor = "#fff", checkedBackground = "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", style, }) => {
129
130
  return (jsxs("label", { className: `checkbox-container ${disabled ? "disabled" : ""}`, style: {
@@ -134,23 +135,23 @@ const Checkbox = ({ label, checked, onChange, disabled = false, error = false, b
134
135
  }, children: [jsx("input", { type: "checkbox", checked: checked, disabled: disabled, onChange: (e) => onChange(e.target.checked) }), jsx("span", { className: `checkbox-box ${error ? "error" : ""}` }), label && jsx("span", { className: "checkbox-label", children: label })] }));
135
136
  };
136
137
 
137
- var css_248z$2 = ".textfield{display:flex;flex-direction:column;font-family:sans-serif;gap:6px}.fullWidth{width:100%}.textfield-label{color:#333;font-size:14px;font-weight:600}.textfield-input{border:1px solid #ccc;border-radius:6px;font-size:14px;padding:10px 12px;transition:.2s ease}.textfield-input:focus{border-color:#4c00ff;box-shadow:0 0 2px #007bff;outline:none}.textfield-input.error{background-color:#fff5f5;border-color:#d93025}.textfield-error{background-color:#f44343;color:#ece6e6;font-size:12px;padding:8px}.textfield-icon{position:absolute;right:45px;top:45px;width:2px}";
138
- styleInject(css_248z$2);
138
+ var css_248z$3 = ".textfield{display:flex;flex-direction:column;font-family:sans-serif;gap:6px}.fullWidth{width:100%}.textfield-label{color:#333;font-size:14px;font-weight:600}.textfield-input{border:1px solid #ccc;border-radius:6px;font-size:14px;padding:10px 12px;transition:.2s ease}.textfield-input:focus{border-color:#4c00ff;box-shadow:0 0 2px #007bff;outline:none}.textfield-input.error{background-color:#fff5f5;border-color:#d93025}.textfield-error{background-color:#f44343;color:#ece6e6;font-size:12px;padding:8px}.textfield-icon{position:absolute;right:45px;top:45px;width:2px}";
139
+ styleInject(css_248z$3);
139
140
 
140
141
  const TextField = ({ label, value = "", placeholder, onChange, error, disabled = false, type = "text", fullWidth = true, icon, }) => {
141
142
  return (jsxs("div", { className: `textfield ${fullWidth ? "fullWidth" : ""}`, children: [label && jsx("label", { className: "textfield-label", children: label }), jsx("input", { type: type, className: `textfield-input ${error ? "error" : ""}`, value: value, placeholder: placeholder, disabled: disabled, onChange: (e) => onChange && onChange(e.target.value) }), icon && jsx("div", { className: "textfield-icon", children: icon }), error && jsx("p", { className: "textfield-error", children: error })] }));
142
143
  };
143
144
 
144
- var css_248z$1 = ".radio-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px}.radio-container input{display:none}.radio-circle{align-items:center;border:2px solid var(--rd-border-color,#777);border-radius:50%;display:flex;height:18px;justify-content:center;position:relative;transition:.2s ease;width:18px}.radio-circle:after{background-color:var(--rd-dot-color,#fff);border-radius:50%;content:\"\";height:10px;opacity:0;transform:scale(.4);transition:.2s ease;width:10px}.radio-container input:checked+.radio-circle{background-color:var(--rd-checked-bg,#007bff);border-color:var(--rd-checked-border,#007bff)}.radio-container input:checked+.radio-circle:after{opacity:1;transform:scale(1)}.radio-circle.error{border-color:#d93025!important}.radio-label{font-size:14px}.disabled{cursor:not-allowed;opacity:.6}";
145
- styleInject(css_248z$1);
145
+ var css_248z$2 = ".radio-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px}.radio-container input{display:none}.radio-circle{align-items:center;border:2px solid var(--rd-border-color,#777);border-radius:50%;display:flex;height:18px;justify-content:center;position:relative;transition:.2s ease;width:18px}.radio-circle:after{background-color:var(--rd-dot-color,#fff);border-radius:50%;content:\"\";height:10px;opacity:0;transform:scale(.4);transition:.2s ease;width:10px}.radio-container input:checked+.radio-circle{background-color:var(--rd-checked-bg,#007bff);border-color:var(--rd-checked-border,#007bff)}.radio-container input:checked+.radio-circle:after{opacity:1;transform:scale(1)}.radio-circle.error{border-color:#d93025!important}.radio-label{font-size:14px}.disabled{cursor:not-allowed;opacity:.6}";
146
+ styleInject(css_248z$2);
146
147
 
147
148
  const Radio = ({ label, name, value, selectedValue, onChange, disabled = false, error = false, borderColor = "#777", dotColor = "#fff", checkedBorderColor = "#007bff", checkedBackground = error ? "#d93025" : "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", style, }) => {
148
149
  const checked = selectedValue === value;
149
150
  return (jsxs("label", { className: `radio-container ${disabled ? "disabled" : ""}`, style: Object.assign(Object.assign({}, style), { ["--rd-border-color"]: borderColor, ["--rd-dot-color"]: dotColor, ["--rd-checked-border"]: checkedBorderColor, ["--rd-checked-bg"]: checkedBackground, ["--rd-focus-shadow"]: focusShadow }), children: [jsx("input", { type: "radio", name: name, value: value, disabled: disabled, checked: checked, onChange: () => onChange(value) }), jsx("span", { className: `radio-circle ${error ? "error" : ""}` }), label && jsx("span", { className: "radio-label", children: label })] }));
150
151
  };
151
152
 
152
- var css_248z = ".select-wrapper{display:flex;flex-direction:column;font-family:sans-serif;gap:4px}.select-label{font-size:14px;font-weight:500}.select-container{position:relative;width:100%}.select-container select{background:#fff;border:1px solid var(--sel-border,#ccc);border-radius:6px;cursor:pointer;font-size:15px;padding:10px 12px;transition:all .2s ease;width:100%}.select-container select:focus{border-color:var(--sel-focus-border,#007bff);box-shadow:0 0 0 2px var(--sel-focus-shadow,rgba(0,123,255,.4));outline:none}.select-container.disabled select{background:#f2f2f2;cursor:not-allowed;opacity:.6}.select-container.error select{border-color:var(--sel-error,red)}.select-container.error select:focus{border-color:var(--sel-error,red);box-shadow:0 0 0 2px rgba(230,57,70,.35)}";
153
- styleInject(css_248z);
153
+ var css_248z$1 = ".select-wrapper{display:flex;flex-direction:column;font-family:sans-serif;gap:4px}.select-label{font-size:14px;font-weight:500}.select-container{position:relative;width:100%}.select-container select{background:#fff;border:1px solid var(--sel-border,#ccc);border-radius:6px;cursor:pointer;font-size:15px;padding:10px 12px;transition:all .2s ease;width:100%}.select-container select:focus{border-color:var(--sel-focus-border,#007bff);box-shadow:0 0 0 2px var(--sel-focus-shadow,rgba(0,123,255,.4));outline:none}.select-container.disabled select{background:#f2f2f2;cursor:not-allowed;opacity:.6}.select-container.error select{border-color:var(--sel-error,red)}.select-container.error select:focus{border-color:var(--sel-error,red);box-shadow:0 0 0 2px rgba(230,57,70,.35)}";
154
+ styleInject(css_248z$1);
154
155
 
155
156
  const Select = ({ label, value, onChange, options, disabled = false, error = false, borderColor = "#ccc", focusBorder = "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", errorColor = "#e63946", style, }) => {
156
157
  return (jsxs("div", { className: "select-wrapper", style: style, children: [label && jsx("label", { className: "select-label", children: label }), jsx("div", { className: `select-container ${disabled ? "disabled" : ""} ${error ? "error" : ""}`, children: jsx("select", { value: value, disabled: disabled, onChange: (e) => onChange(e.target.value), style: {
@@ -164,5 +165,33 @@ const Select = ({ label, value, onChange, options, disabled = false, error = fal
164
165
  }, children: opt.label }, opt.value))) }) })] }));
165
166
  };
166
167
 
167
- export { Bloc, Button, Card, Center, Checkbox, Column, Container, Divider, Grid, Radio, Row, Select, Spacer, TextField };
168
+ var css_248z = ".toast-container{display:flex;flex-direction:column;gap:10px;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:center;animation:toast-slide .3s ease,toast-fadeout .3s ease forwards;animation-delay:0s,2.8s;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.2);color:#fff;display:flex;font-size:14px;justify-content:space-between;max-width:320px;min-width:260px;padding:12px 16px;position:relative}.toast-success{background-color:#2ecc71}.toast-error{background-color:#e74c3c}.toast-warning{background-color:#f1c40f;color:#333}.toast-info{background-color:#3498db}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:16px}@keyframes toast-slide{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-fadeout{0%{opacity:1}to{opacity:0}}";
169
+ styleInject(css_248z);
170
+
171
+ const ToastContext = createContext(undefined);
172
+ const useToast = () => {
173
+ const ctx = useContext(ToastContext);
174
+ if (!ctx)
175
+ throw new Error("useToast must be used inside <ToastProvider>");
176
+ return ctx;
177
+ };
178
+ const ToastProvider = ({ children }) => {
179
+ const [toasts, setToasts] = useState([]);
180
+ function addToast(message, variant = "info", duration = 3000) {
181
+ const toast = {
182
+ id: Date.now().toString(),
183
+ message,
184
+ variant,
185
+ duration,
186
+ };
187
+ setToasts((prev) => [...prev, toast]);
188
+ // auto-remove
189
+ setTimeout(() => {
190
+ setToasts((prev) => prev.filter((t) => t.id !== toast.id));
191
+ }, duration);
192
+ }
193
+ return (jsxs(ToastContext.Provider, { value: { addToast }, children: [children, jsx("div", { className: "toast-container", children: toasts.map((t) => (jsxs("div", { className: `toast toast-${t.variant}`, children: [jsx("span", { children: t.message }), jsx("button", { className: "toast-close", onClick: () => setToasts((prev) => prev.filter((x) => x.id !== t.id)), children: "\u2715" })] }, t.id))) })] }));
194
+ };
195
+
196
+ export { Bloc, Button, Card, Center, Checkbox, Column, Container, Divider, Grid, Radio, Row, Select, Spacer, TextField, ToastProvider, useToast };
168
197
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/Button/Button.tsx","../src/components/Center/Center.tsx","../src/components/Card/Card.tsx","../src/components/Bloc/Bloc.tsx","../src/components/Container/Container.tsx","../src/components/Row/Row.tsx","../src/components/Column/Column.tsx","../src/components/Grid/Grid.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Divider/Divider.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/TextField/TextField.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./Button.css\";\r\nimport React from \"react\";\r\n\r\n\r\nexport interface ButtonProps {\r\n label: string;\r\n onClick?: () => void;\r\n variant?: \"primary\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n disabled?: boolean;\r\n icon?: React.ReactNode;\r\n iconPosition?: \"left\" | \"right\";\r\n backgroundColor?: string;\r\n color?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = ({\r\n label,\r\n onClick,\r\n variant = \"primary\",\r\n size = \"medium\",\r\n disabled = false,\r\n icon,\r\n iconPosition = \"left\",\r\n backgroundColor,\r\n color,\r\n isLoading = false,\r\n}) => {\r\n return (\r\n <>\r\n <button\r\n className={`btn btn-${variant} btn-${size}`}\r\n onClick={onClick}\r\n disabled={disabled || isLoading}\r\n style={{ backgroundColor, color }}\r\n >\r\n {icon && iconPosition === \"left\" && <span className=\"btn-left-icon\">{icon}</span>}\r\n {label}\r\n {icon && iconPosition === \"right\" && <span className=\"btn-right-icon\">{icon}</span>}\r\n {isLoading && <span className=\"btn-spinner\"></span>}\r\n </button>\r\n </>\r\n );\r\n};\r\n","import \"./Center.css\"\r\n\r\nexport interface CenterProps {\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n}\r\n\r\nexport const Center: React.FC<CenterProps> = ({ children, backgroundColor = 'white', color = 'black' }) => {\r\n return <div className=\"center\" style={{ backgroundColor, color}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Card.css\";\r\n\r\nexport interface CardProps {\r\n title?: string;\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n variant?: \"elevated\" | \"outlined\" | \"flat\";\r\n padding?: \"sm\" | \"md\" | \"lg\";\r\n footer?: React.ReactNode;\r\n}\r\n\r\nexport const Card: React.FC<CardProps> = ({\r\n title,\r\n children,\r\n footer,\r\n backgroundColor,\r\n color,\r\n variant = \"elevated\",\r\n padding = \"md\",\r\n}) => {\r\n return (\r\n <div\r\n className={`card card-${variant} card-padding-${padding}`}\r\n style={{ backgroundColor, color }}\r\n >\r\n {title && <div className=\"card-header\">{title}</div>}\r\n <div className=\"card-body\">{children}</div>\r\n {footer && <div className=\"card-footer\">{footer}</div>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Bloc.css\";\r\n\r\nexport type BlocLayout =\r\n | \"default\"\r\n | \"center\"\r\n | \"row\"\r\n | \"row-between\"\r\n | \"column\"\r\n | \"sidebar\"\r\n | \"navbar\";\r\n\r\nexport interface BlocProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n layout?: BlocLayout;\r\n}\r\n\r\nexport const Bloc: React.FC<BlocProps> = ({\r\n children,\r\n className = \"\",\r\n style = {},\r\n layout = \"default\",\r\n}) => {\r\n const layoutStyles: React.CSSProperties = (() => {\r\n switch (layout) {\r\n case \"center\":\r\n return { display: \"flex\", justifyContent: \"center\", alignItems: \"center\" };\r\n case \"row\":\r\n return { display: \"flex\", flexDirection: \"row\", alignItems: \"center\" };\r\n case \"row-between\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\" };\r\n case \"column\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\" };\r\n case \"sidebar\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\", gap: \"12px\" };\r\n case \"navbar\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"12px 20px\" };\r\n default:\r\n return {};\r\n }\r\n })();\r\n\r\n return (\r\n <div className={`bloc ${className}`} style={{ ...layoutStyles, ...style }}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Container.css\";\r\n\r\nexport interface ContainerProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n fluid?: boolean;\r\n}\r\n\r\nexport const Container: React.FC<ContainerProps> = ({ children, className = \"\", style = {}, fluid = false }) => {\r\n return (\r\n <div className={`container ${fluid ? \"container-fluid\" : \"\"} ${className}`} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Row.css\";\r\n\r\nexport interface RowProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n children,\r\n className = \"\",\r\n style = {}\r\n}) => {\r\n return <div className={`row ${className}`} style={{...style}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Column.css\";\r\n\r\nexport interface ColumnProps {\r\n children?: React.ReactNode;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Column: React.FC<ColumnProps> = ({ children, className = \"\", style = {}}) => {\r\n return (\r\n <div className={`col ${className}`} style={{...style}}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { Column } from \"../Column\";\r\nimport { Row } from \"../Row\";\r\n\r\nexport interface GridColumn {\r\n children?: React.ReactNode;\r\n span?: number;\r\n style?: React.CSSProperties;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n}\r\n\r\nexport interface GridProps {\r\n items: GridColumn[];\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({ items }) => {\r\n\r\n return (\r\n <Row>\r\n {items.map((item: GridColumn, index: number) => (\r\n <Column\r\n key={index}\r\n className={item.className}\r\n style={{ ...item.style }}\r\n >\r\n {item.children}\r\n </Column>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface SpacerProps {\r\n size?: number;\r\n direction?: \"vertical\" | \"horizontal\";\r\n}\r\n\r\nexport const Spacer: React.FC<SpacerProps> = ({\r\n size = 16,\r\n direction = \"vertical\"\r\n}) => {\r\n const style: React.CSSProperties =\r\n direction === \"vertical\"\r\n ? { height: size }\r\n : { width: size, display: \"inline-block\" };\r\n\r\n return <div style={style} />;\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface DividerProps {\r\n color?: string;\r\n thickness?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n margin?: number;\r\n}\r\n\r\nexport const Divider: React.FC<DividerProps> = ({\r\n color = \"#e0e0e0\",\r\n thickness = 1,\r\n orientation = \"horizontal\",\r\n margin = 8,\r\n}) => {\r\n const styles: React.CSSProperties =\r\n orientation === \"horizontal\"\r\n ? {\r\n width: \"100%\",\r\n height: thickness,\r\n backgroundColor: color,\r\n margin: `${margin}px 0`,\r\n }\r\n : {\r\n width: thickness,\r\n height: \"100%\",\r\n backgroundColor: color,\r\n margin: `0 ${margin}px`,\r\n };\r\n\r\n return <div style={styles} />;\r\n};\r\n","import React from \"react\";\r\nimport \"./Checkbox.css\";\r\n\r\nexport interface CheckboxProps {\r\n label?: string;\r\n checked: boolean;\r\n onChange: (value: boolean) => void;\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n boxColor?: string;\r\n checkColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n checked,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n boxColor = \"#777\",\r\n checkColor = \"#fff\",\r\n checkedBackground = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <label\r\n className={`checkbox-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n [\"--cb-box-color\" as any]: boxColor,\r\n [\"--cb-check-color\" as any]: checkColor,\r\n [\"--cb-checked-bg\" as any]: checkedBackground,\r\n [\"--cb-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={checked}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.checked)}\r\n />\r\n\r\n <span className={`checkbox-box ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"checkbox-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./TextField.css\";\r\n\r\nexport interface TextFieldProps {\r\n label?: string;\r\n value?: string;\r\n placeholder?: string;\r\n onChange?: (value: string) => void;\r\n error?: string;\r\n disabled?: boolean;\r\n type?: string;\r\n fullWidth?: boolean;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const TextField: React.FC<TextFieldProps> = ({\r\n label,\r\n value = \"\",\r\n placeholder,\r\n onChange,\r\n error,\r\n disabled = false,\r\n type = \"text\",\r\n fullWidth = true,\r\n icon,\r\n}) => {\r\n return (\r\n <div className={`textfield ${fullWidth ? \"fullWidth\" : \"\"}`}>\r\n {label && <label className=\"textfield-label\">{label}</label>}\r\n\r\n <input\r\n type={type}\r\n className={`textfield-input ${error ? \"error\" : \"\"}`}\r\n value={value}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n onChange={(e) => onChange && onChange(e.target.value)}\r\n />\r\n {icon && <div className=\"textfield-icon\">{icon}</div>}\r\n\r\n {error && <p className=\"textfield-error\">{error}</p>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Radio.css\";\r\n\r\nexport interface RadioProps {\r\n label?: string;\r\n name: string; // obligatoire pour grouper les radios\r\n value: string;\r\n selectedValue: string;\r\n onChange: (value: string) => void;\r\n\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Thème custom\r\n borderColor?: string;\r\n dotColor?: string;\r\n checkedBorderColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Radio: React.FC<RadioProps> = ({\r\n label,\r\n name,\r\n value,\r\n selectedValue,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#777\",\r\n dotColor = \"#fff\",\r\n checkedBorderColor = \"#007bff\",\r\n checkedBackground = error ? \"#d93025\" : \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n const checked = selectedValue === value;\r\n\r\n return (\r\n <label\r\n className={`radio-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n ...style,\r\n [\"--rd-border-color\" as any]: borderColor,\r\n [\"--rd-dot-color\" as any]: dotColor,\r\n [\"--rd-checked-border\" as any]: checkedBorderColor,\r\n [\"--rd-checked-bg\" as any]: checkedBackground,\r\n [\"--rd-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"radio\"\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n checked={checked}\r\n onChange={() => onChange(value)}\r\n />\r\n\r\n <span className={`radio-circle ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"radio-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Select.css\";\r\n\r\nexport interface SelectOption {\r\n value: string | number;\r\n label: string;\r\n\r\n bgColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport interface SelectProps {\r\n label?: string;\r\n value: string | number;\r\n onChange: (value: string | number) => void;\r\n options: SelectOption[];\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n borderColor?: string;\r\n focusBorder?: string;\r\n focusShadow?: string;\r\n errorColor?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#ccc\",\r\n focusBorder = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n errorColor = \"#e63946\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <div className=\"select-wrapper\" style={style}>\r\n {label && <label className=\"select-label\">{label}</label>}\r\n\r\n <div\r\n className={`select-container ${disabled ? \"disabled\" : \"\"} ${\r\n error ? \"error\" : \"\"\r\n }`}\r\n >\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.value)}\r\n style={{\r\n [\"--sel-border\" as any]: borderColor,\r\n [\"--sel-focus-border\" as any]: focusBorder,\r\n [\"--sel-focus-shadow\" as any]: focusShadow,\r\n [\"--sel-error\" as any]: errorColor,\r\n }}\r\n >\r\n {options.map((opt) => (\r\n <option\r\n key={opt.value}\r\n value={opt.value}\r\n style={{\r\n backgroundColor: opt.bgColor,\r\n color: opt.textColor,\r\n }}\r\n >\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/Button/Button.tsx","../src/components/Center/Center.tsx","../src/components/Card/Card.tsx","../src/components/Bloc/Bloc.tsx","../src/components/Container/Container.tsx","../src/components/Row/Row.tsx","../src/components/Column/Column.tsx","../src/components/Grid/Grid.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Divider/Divider.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/TextField/TextField.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx","../src/components/Toast/ToastContext.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./Button.css\";\r\nimport React from \"react\";\r\n\r\n\r\nexport interface ButtonProps {\r\n label: string;\r\n onClick?: () => void;\r\n variant?: \"primary\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n disabled?: boolean;\r\n icon?: React.ReactNode;\r\n iconPosition?: \"left\" | \"right\";\r\n backgroundColor?: string;\r\n color?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = ({\r\n label,\r\n onClick,\r\n variant = \"primary\",\r\n size = \"medium\",\r\n disabled = false,\r\n icon,\r\n iconPosition = \"left\",\r\n backgroundColor,\r\n color,\r\n isLoading = false,\r\n}) => {\r\n return (\r\n <>\r\n <button\r\n className={`btn btn-${variant} btn-${size}`}\r\n onClick={onClick}\r\n disabled={disabled || isLoading}\r\n style={{ backgroundColor, color }}\r\n >\r\n {icon && iconPosition === \"left\" && <span className=\"btn-left-icon\">{icon}</span>}\r\n {label}\r\n {icon && iconPosition === \"right\" && <span className=\"btn-right-icon\">{icon}</span>}\r\n {isLoading && <span className=\"btn-spinner\"></span>}\r\n </button>\r\n </>\r\n );\r\n};\r\n","import \"./Center.css\"\r\n\r\nexport interface CenterProps {\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n}\r\n\r\nexport const Center: React.FC<CenterProps> = ({ children, backgroundColor = 'white', color = 'black' }) => {\r\n return <div className=\"center\" style={{ backgroundColor, color}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Card.css\";\r\n\r\nexport interface CardProps {\r\n title?: string;\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n variant?: \"elevated\" | \"outlined\" | \"flat\";\r\n padding?: \"sm\" | \"md\" | \"lg\";\r\n footer?: React.ReactNode;\r\n}\r\n\r\nexport const Card: React.FC<CardProps> = ({\r\n title,\r\n children,\r\n footer,\r\n backgroundColor,\r\n color,\r\n variant = \"elevated\",\r\n padding = \"md\",\r\n}) => {\r\n return (\r\n <div\r\n className={`card card-${variant} card-padding-${padding}`}\r\n style={{ backgroundColor, color }}\r\n >\r\n {title && <div className=\"card-header\">{title}</div>}\r\n <div className=\"card-body\">{children}</div>\r\n {footer && <div className=\"card-footer\">{footer}</div>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Bloc.css\";\r\n\r\nexport type BlocLayout =\r\n | \"default\"\r\n | \"center\"\r\n | \"row\"\r\n | \"row-between\"\r\n | \"column\"\r\n | \"sidebar\"\r\n | \"navbar\";\r\n\r\nexport interface BlocProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n layout?: BlocLayout;\r\n}\r\n\r\nexport const Bloc: React.FC<BlocProps> = ({\r\n children,\r\n className = \"\",\r\n style = {},\r\n layout = \"default\",\r\n}) => {\r\n const layoutStyles: React.CSSProperties = (() => {\r\n switch (layout) {\r\n case \"center\":\r\n return { display: \"flex\", justifyContent: \"center\", alignItems: \"center\" };\r\n case \"row\":\r\n return { display: \"flex\", flexDirection: \"row\", alignItems: \"center\" };\r\n case \"row-between\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\" };\r\n case \"column\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\" };\r\n case \"sidebar\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\", gap: \"12px\" };\r\n case \"navbar\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"12px 20px\" };\r\n default:\r\n return {};\r\n }\r\n })();\r\n\r\n return (\r\n <div className={`bloc ${className}`} style={{ ...layoutStyles, ...style }}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Container.css\";\r\n\r\nexport interface ContainerProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n fluid?: boolean;\r\n}\r\n\r\nexport const Container: React.FC<ContainerProps> = ({ children, className = \"\", style = {}, fluid = false }) => {\r\n return (\r\n <div className={`container ${fluid ? \"container-fluid\" : \"\"} ${className}`} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Row.css\";\r\n\r\nexport interface RowProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n children,\r\n className = \"\",\r\n style = {}\r\n}) => {\r\n return <div className={`row ${className}`} style={{...style}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Column.css\";\r\n\r\nexport interface ColumnProps {\r\n children?: React.ReactNode;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Column: React.FC<ColumnProps> = ({ children, className = \"\", style = {}}) => {\r\n return (\r\n <div className={`col ${className}`} style={{...style}}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { Column } from \"../Column\";\r\nimport { Row } from \"../Row\";\r\n\r\nexport interface GridColumn {\r\n children?: React.ReactNode;\r\n span?: number;\r\n style?: React.CSSProperties;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n}\r\n\r\nexport interface GridProps {\r\n items: GridColumn[];\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({ items }) => {\r\n\r\n return (\r\n <Row>\r\n {items.map((item: GridColumn, index: number) => (\r\n <Column\r\n key={index}\r\n className={item.className}\r\n style={{ ...item.style }}\r\n >\r\n {item.children}\r\n </Column>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface SpacerProps {\r\n size?: number;\r\n direction?: \"vertical\" | \"horizontal\";\r\n}\r\n\r\nexport const Spacer: React.FC<SpacerProps> = ({\r\n size = 16,\r\n direction = \"vertical\"\r\n}) => {\r\n const style: React.CSSProperties =\r\n direction === \"vertical\"\r\n ? { height: size }\r\n : { width: size, display: \"inline-block\" };\r\n\r\n return <div style={style} />;\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface DividerProps {\r\n color?: string;\r\n thickness?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n margin?: number;\r\n}\r\n\r\nexport const Divider: React.FC<DividerProps> = ({\r\n color = \"#e0e0e0\",\r\n thickness = 1,\r\n orientation = \"horizontal\",\r\n margin = 8,\r\n}) => {\r\n const styles: React.CSSProperties =\r\n orientation === \"horizontal\"\r\n ? {\r\n width: \"100%\",\r\n height: thickness,\r\n backgroundColor: color,\r\n margin: `${margin}px 0`,\r\n }\r\n : {\r\n width: thickness,\r\n height: \"100%\",\r\n backgroundColor: color,\r\n margin: `0 ${margin}px`,\r\n };\r\n\r\n return <div style={styles} />;\r\n};\r\n","import React from \"react\";\r\nimport \"./Checkbox.css\";\r\n\r\nexport interface CheckboxProps {\r\n label?: string;\r\n checked: boolean;\r\n onChange: (value: boolean) => void;\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n boxColor?: string;\r\n checkColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n checked,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n boxColor = \"#777\",\r\n checkColor = \"#fff\",\r\n checkedBackground = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <label\r\n className={`checkbox-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n [\"--cb-box-color\" as any]: boxColor,\r\n [\"--cb-check-color\" as any]: checkColor,\r\n [\"--cb-checked-bg\" as any]: checkedBackground,\r\n [\"--cb-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={checked}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.checked)}\r\n />\r\n\r\n <span className={`checkbox-box ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"checkbox-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./TextField.css\";\r\n\r\nexport interface TextFieldProps {\r\n label?: string;\r\n value?: string;\r\n placeholder?: string;\r\n onChange?: (value: string) => void;\r\n error?: string;\r\n disabled?: boolean;\r\n type?: string;\r\n fullWidth?: boolean;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const TextField: React.FC<TextFieldProps> = ({\r\n label,\r\n value = \"\",\r\n placeholder,\r\n onChange,\r\n error,\r\n disabled = false,\r\n type = \"text\",\r\n fullWidth = true,\r\n icon,\r\n}) => {\r\n return (\r\n <div className={`textfield ${fullWidth ? \"fullWidth\" : \"\"}`}>\r\n {label && <label className=\"textfield-label\">{label}</label>}\r\n\r\n <input\r\n type={type}\r\n className={`textfield-input ${error ? \"error\" : \"\"}`}\r\n value={value}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n onChange={(e) => onChange && onChange(e.target.value)}\r\n />\r\n {icon && <div className=\"textfield-icon\">{icon}</div>}\r\n\r\n {error && <p className=\"textfield-error\">{error}</p>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Radio.css\";\r\n\r\nexport interface RadioProps {\r\n label?: string;\r\n name: string; // obligatoire pour grouper les radios\r\n value: string;\r\n selectedValue: string;\r\n onChange: (value: string) => void;\r\n\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Thème custom\r\n borderColor?: string;\r\n dotColor?: string;\r\n checkedBorderColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Radio: React.FC<RadioProps> = ({\r\n label,\r\n name,\r\n value,\r\n selectedValue,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#777\",\r\n dotColor = \"#fff\",\r\n checkedBorderColor = \"#007bff\",\r\n checkedBackground = error ? \"#d93025\" : \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n const checked = selectedValue === value;\r\n\r\n return (\r\n <label\r\n className={`radio-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n ...style,\r\n [\"--rd-border-color\" as any]: borderColor,\r\n [\"--rd-dot-color\" as any]: dotColor,\r\n [\"--rd-checked-border\" as any]: checkedBorderColor,\r\n [\"--rd-checked-bg\" as any]: checkedBackground,\r\n [\"--rd-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"radio\"\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n checked={checked}\r\n onChange={() => onChange(value)}\r\n />\r\n\r\n <span className={`radio-circle ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"radio-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Select.css\";\r\n\r\nexport interface SelectOption {\r\n value: string | number;\r\n label: string;\r\n\r\n bgColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport interface SelectProps {\r\n label?: string;\r\n value: string | number;\r\n onChange: (value: string | number) => void;\r\n options: SelectOption[];\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n borderColor?: string;\r\n focusBorder?: string;\r\n focusShadow?: string;\r\n errorColor?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#ccc\",\r\n focusBorder = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n errorColor = \"#e63946\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <div className=\"select-wrapper\" style={style}>\r\n {label && <label className=\"select-label\">{label}</label>}\r\n\r\n <div\r\n className={`select-container ${disabled ? \"disabled\" : \"\"} ${\r\n error ? \"error\" : \"\"\r\n }`}\r\n >\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.value)}\r\n style={{\r\n [\"--sel-border\" as any]: borderColor,\r\n [\"--sel-focus-border\" as any]: focusBorder,\r\n [\"--sel-focus-shadow\" as any]: focusShadow,\r\n [\"--sel-error\" as any]: errorColor,\r\n }}\r\n >\r\n {options.map((opt) => (\r\n <option\r\n key={opt.value}\r\n value={opt.value}\r\n style={{\r\n backgroundColor: opt.bgColor,\r\n color: opt.textColor,\r\n }}\r\n >\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { createContext, useContext, useState } from \"react\";\r\nimport \"./Toast.css\";\r\n\r\nexport type ToastVariant = \"success\" | \"error\" | \"warning\" | \"info\";\r\n\r\nexport interface Toast {\r\n id: string;\r\n message: string;\r\n variant?: ToastVariant;\r\n duration?: number;\r\n}\r\n\r\ninterface ToastContextType {\r\n addToast: (msg: string, variant?: ToastVariant, duration?: number) => void;\r\n}\r\n\r\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\r\n\r\nexport const useToast = () => {\r\n const ctx = useContext(ToastContext);\r\n if (!ctx) throw new Error(\"useToast must be used inside <ToastProvider>\");\r\n return ctx;\r\n};\r\n\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n const [toasts, setToasts] = useState<Toast[]>([]);\r\n\r\n function addToast(\r\n message: string,\r\n variant: ToastVariant = \"info\",\r\n duration = 3000\r\n ) {\r\n const toast: Toast = {\r\n id: Date.now().toString(),\r\n message,\r\n variant,\r\n duration,\r\n };\r\n\r\n setToasts((prev) => [...prev, toast]);\r\n\r\n // auto-remove\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\r\n }, duration);\r\n }\r\n\r\n return (\r\n <ToastContext.Provider value={{ addToast }}>\r\n {children}\r\n\r\n {/* Toast container */}\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.variant}`}>\r\n <span>{t.message}</span>\r\n <button className=\"toast-close\" onClick={() =>\r\n setToasts((prev) => prev.filter((x) => x.id !== t.id))\r\n }>\r\n ✕\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </ToastContext.Provider>\r\n );\r\n};\r\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
4
5
 
5
6
  function styleInject(css, ref) {
6
7
  if ( ref === void 0 ) ref = {};
@@ -29,29 +30,29 @@ function styleInject(css, ref) {
29
30
  }
30
31
  }
31
32
 
32
- var css_248z$a = ".btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;padding:10px 20px;transition:all .3s ease}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-danger{background-color:#dc3545;color:#fff}.btn-dark{background-color:#141617;color:#fff}.btn-light{background-color:#f8f9fa;color:#000}.btn-small{font-size:14px;padding:5px 10px}.btn-medium{font-size:16px;padding:10px 20px}.btn-large{font-size:18px;padding:15px 30px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-left-icon{margin-right:8px}.btn-left-icon,.btn-right-icon{align-items:center;display:inline-flex}.btn-right-icon{margin-left:8px}.btn-spinner{animation:spin .7s linear infinite;border:3px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;display:inline-block;height:12px;margin-left:5px;width:12px}@keyframes spin{to{transform:rotate(1turn)}}.btn-loading{cursor:not-allowed;position:relative}.btn-loading span,.btn-loading svg{opacity:0}.btn-loading>:not(.btn-spinner){visibility:hidden}";
33
- styleInject(css_248z$a);
33
+ var css_248z$b = ".btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;padding:10px 20px;transition:all .3s ease}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-danger{background-color:#dc3545;color:#fff}.btn-dark{background-color:#141617;color:#fff}.btn-light{background-color:#f8f9fa;color:#000}.btn-small{font-size:14px;padding:5px 10px}.btn-medium{font-size:16px;padding:10px 20px}.btn-large{font-size:18px;padding:15px 30px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-left-icon{margin-right:8px}.btn-left-icon,.btn-right-icon{align-items:center;display:inline-flex}.btn-right-icon{margin-left:8px}.btn-spinner{animation:spin .7s linear infinite;border:3px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;display:inline-block;height:12px;margin-left:5px;width:12px}@keyframes spin{to{transform:rotate(1turn)}}.btn-loading{cursor:not-allowed;position:relative}.btn-loading span,.btn-loading svg{opacity:0}.btn-loading>:not(.btn-spinner){visibility:hidden}";
34
+ styleInject(css_248z$b);
34
35
 
35
36
  const Button = ({ label, onClick, variant = "primary", size = "medium", disabled = false, icon, iconPosition = "left", backgroundColor, color, isLoading = false, }) => {
36
37
  return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("button", { className: `btn btn-${variant} btn-${size}`, onClick: onClick, disabled: disabled || isLoading, style: { backgroundColor, color }, children: [icon && iconPosition === "left" && jsxRuntime.jsx("span", { className: "btn-left-icon", children: icon }), label, icon && iconPosition === "right" && jsxRuntime.jsx("span", { className: "btn-right-icon", children: icon }), isLoading && jsxRuntime.jsx("span", { className: "btn-spinner" })] }) }));
37
38
  };
38
39
 
39
- var css_248z$9 = ".center{align-items:center;display:flex;justify-content:center}";
40
- styleInject(css_248z$9);
40
+ var css_248z$a = ".center{align-items:center;display:flex;justify-content:center}";
41
+ styleInject(css_248z$a);
41
42
 
42
43
  const Center = ({ children, backgroundColor = 'white', color = 'black' }) => {
43
44
  return jsxRuntime.jsx("div", { className: "center", style: { backgroundColor, color }, children: children });
44
45
  };
45
46
 
46
- var css_248z$8 = ".card{background:#fff;border-radius:12px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease,transform .2s ease}.card-elevated{box-shadow:0 2px 4px rgba(0,0,0,.08),0 8px 16px rgba(0,0,0,.06)}.card-elevated:hover{box-shadow:0 4px 8px rgba(0,0,0,.1),0 12px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.card-outlined{border:1px solid #e5e7eb}.card-flat{background:transparent;border:none}.card-padding-sm{padding:8px}.card-padding-md{padding:16px}.card-padding-lg{padding:24px}.card-header{font-size:1.25rem;font-weight:600;margin-bottom:4px}.card-body{font-size:.95rem;line-height:1.5}.card-footer{border-top:1px solid #ececec;color:#555;font-size:.9rem;margin-top:8px;padding-top:8px}";
47
- styleInject(css_248z$8);
47
+ var css_248z$9 = ".card{background:#fff;border-radius:12px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease,transform .2s ease}.card-elevated{box-shadow:0 2px 4px rgba(0,0,0,.08),0 8px 16px rgba(0,0,0,.06)}.card-elevated:hover{box-shadow:0 4px 8px rgba(0,0,0,.1),0 12px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.card-outlined{border:1px solid #e5e7eb}.card-flat{background:transparent;border:none}.card-padding-sm{padding:8px}.card-padding-md{padding:16px}.card-padding-lg{padding:24px}.card-header{font-size:1.25rem;font-weight:600;margin-bottom:4px}.card-body{font-size:.95rem;line-height:1.5}.card-footer{border-top:1px solid #ececec;color:#555;font-size:.9rem;margin-top:8px;padding-top:8px}";
48
+ styleInject(css_248z$9);
48
49
 
49
50
  const Card = ({ title, children, footer, backgroundColor, color, variant = "elevated", padding = "md", }) => {
50
51
  return (jsxRuntime.jsxs("div", { className: `card card-${variant} card-padding-${padding}`, style: { backgroundColor, color }, children: [title && jsxRuntime.jsx("div", { className: "card-header", children: title }), jsxRuntime.jsx("div", { className: "card-body", children: children }), footer && jsxRuntime.jsx("div", { className: "card-footer", children: footer })] }));
51
52
  };
52
53
 
53
- var css_248z$7 = ".bloc{box-sizing:border-box;max-width:100%;padding:16px;width:100%}@media (max-width:600px){.bloc{border-radius:6px;padding:12px}}@media (max-width:900px){.bloc{padding:14px}}";
54
- styleInject(css_248z$7);
54
+ var css_248z$8 = ".bloc{box-sizing:border-box;max-width:100%;padding:16px;width:100%}@media (max-width:600px){.bloc{border-radius:6px;padding:12px}}@media (max-width:900px){.bloc{padding:14px}}";
55
+ styleInject(css_248z$8);
55
56
 
56
57
  const Bloc = ({ children, className = "", style = {}, layout = "default", }) => {
57
58
  const layoutStyles = (() => {
@@ -75,22 +76,22 @@ const Bloc = ({ children, className = "", style = {}, layout = "default", }) =>
75
76
  return (jsxRuntime.jsx("div", { className: `bloc ${className}`, style: Object.assign(Object.assign({}, layoutStyles), style), children: children }));
76
77
  };
77
78
 
78
- var css_248z$6 = ".container{margin:0 auto;padding:0 16px;width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1200px}}.container-fluid{max-width:100%}";
79
- styleInject(css_248z$6);
79
+ var css_248z$7 = ".container{margin:0 auto;padding:0 16px;width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1200px}}.container-fluid{max-width:100%}";
80
+ styleInject(css_248z$7);
80
81
 
81
82
  const Container = ({ children, className = "", style = {}, fluid = false }) => {
82
83
  return (jsxRuntime.jsx("div", { className: `container ${fluid ? "container-fluid" : ""} ${className}`, style: style, children: children }));
83
84
  };
84
85
 
85
- var css_248z$5 = ".row{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:16px}@media (max-width:768px){.row{flex-direction:column}}";
86
- styleInject(css_248z$5);
86
+ var css_248z$6 = ".row{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:16px}@media (max-width:768px){.row{flex-direction:column}}";
87
+ styleInject(css_248z$6);
87
88
 
88
89
  const Row = ({ children, className = "", style = {} }) => {
89
90
  return jsxRuntime.jsx("div", { className: `row ${className}`, style: Object.assign({}, style), children: children });
90
91
  };
91
92
 
92
- var css_248z$4 = ".col,.column{box-sizing:border-box;flex:1 1 0;min-width:0;padding:8px}.col.small{max-width:20%}.col.medium{max-width:50%}.col.large{max-width:100%}.col>*,.column>*{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.col img,.column img{display:block;height:auto;max-width:100%}@media (max-width:768px){.col,.col.large,.col.medium,.col.small,.column{flex:none;max-width:100%;width:100%}}";
93
- styleInject(css_248z$4);
93
+ var css_248z$5 = ".col,.column{box-sizing:border-box;flex:1 1 0;min-width:0;padding:8px}.col.small{max-width:20%}.col.medium{max-width:50%}.col.large{max-width:100%}.col>*,.column>*{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.col img,.column img{display:block;height:auto;max-width:100%}@media (max-width:768px){.col,.col.large,.col.medium,.col.small,.column{flex:none;max-width:100%;width:100%}}";
94
+ styleInject(css_248z$5);
94
95
 
95
96
  const Column = ({ children, className = "", style = {} }) => {
96
97
  return (jsxRuntime.jsx("div", { className: `col ${className}`, style: Object.assign({}, style), children: children }));
@@ -124,8 +125,8 @@ const Divider = ({ color = "#e0e0e0", thickness = 1, orientation = "horizontal",
124
125
  return jsxRuntime.jsx("div", { style: styles });
125
126
  };
126
127
 
127
- var css_248z$3 = ".checkbox-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px;user-select:none}.checkbox-container.disabled{cursor:not-allowed;opacity:.5}.checkbox-container input{appearance:none;-webkit-appearance:none;height:0;position:absolute;width:0}.checkbox-box{border:2px solid var(--cb-box-color,#777);border-radius:4px;display:inline-block;height:18px;position:relative;transition:.2s ease;width:18px}.checkbox-container input:checked+.checkbox-box{background-color:var(--cb-checked-bg,#007bff);border-color:var(--cb-checked-bg,#007bff)}.checkbox-container input:checked+.checkbox-box:after{border-width:medium;border-bottom:2px solid var(--cb-check-color,#fff);border-left:0 solid var(--cb-check-color,#fff);border-right:2px solid var(--cb-check-color,#fff);border-top:0 solid var(--cb-check-color,#fff);content:\"\";height:10px;left:5px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.checkbox-container input:focus+.checkbox-box{box-shadow:0 0 4px var(--cb-focus-shadow,rgba(0,123,255,.4))}.checkbox-box.error{border-color:#d93025!important}.checkbox-label{font-size:14px}";
128
- styleInject(css_248z$3);
128
+ var css_248z$4 = ".checkbox-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px;user-select:none}.checkbox-container.disabled{cursor:not-allowed;opacity:.5}.checkbox-container input{appearance:none;-webkit-appearance:none;height:0;position:absolute;width:0}.checkbox-box{border:2px solid var(--cb-box-color,#777);border-radius:4px;display:inline-block;height:18px;position:relative;transition:.2s ease;width:18px}.checkbox-container input:checked+.checkbox-box{background-color:var(--cb-checked-bg,#007bff);border-color:var(--cb-checked-bg,#007bff)}.checkbox-container input:checked+.checkbox-box:after{border-width:medium;border-bottom:2px solid var(--cb-check-color,#fff);border-left:0 solid var(--cb-check-color,#fff);border-right:2px solid var(--cb-check-color,#fff);border-top:0 solid var(--cb-check-color,#fff);content:\"\";height:10px;left:5px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.checkbox-container input:focus+.checkbox-box{box-shadow:0 0 4px var(--cb-focus-shadow,rgba(0,123,255,.4))}.checkbox-box.error{border-color:#d93025!important}.checkbox-label{font-size:14px}";
129
+ styleInject(css_248z$4);
129
130
 
130
131
  const Checkbox = ({ label, checked, onChange, disabled = false, error = false, boxColor = "#777", checkColor = "#fff", checkedBackground = "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", style, }) => {
131
132
  return (jsxRuntime.jsxs("label", { className: `checkbox-container ${disabled ? "disabled" : ""}`, style: {
@@ -136,23 +137,23 @@ const Checkbox = ({ label, checked, onChange, disabled = false, error = false, b
136
137
  }, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: checked, disabled: disabled, onChange: (e) => onChange(e.target.checked) }), jsxRuntime.jsx("span", { className: `checkbox-box ${error ? "error" : ""}` }), label && jsxRuntime.jsx("span", { className: "checkbox-label", children: label })] }));
137
138
  };
138
139
 
139
- var css_248z$2 = ".textfield{display:flex;flex-direction:column;font-family:sans-serif;gap:6px}.fullWidth{width:100%}.textfield-label{color:#333;font-size:14px;font-weight:600}.textfield-input{border:1px solid #ccc;border-radius:6px;font-size:14px;padding:10px 12px;transition:.2s ease}.textfield-input:focus{border-color:#4c00ff;box-shadow:0 0 2px #007bff;outline:none}.textfield-input.error{background-color:#fff5f5;border-color:#d93025}.textfield-error{background-color:#f44343;color:#ece6e6;font-size:12px;padding:8px}.textfield-icon{position:absolute;right:45px;top:45px;width:2px}";
140
- styleInject(css_248z$2);
140
+ var css_248z$3 = ".textfield{display:flex;flex-direction:column;font-family:sans-serif;gap:6px}.fullWidth{width:100%}.textfield-label{color:#333;font-size:14px;font-weight:600}.textfield-input{border:1px solid #ccc;border-radius:6px;font-size:14px;padding:10px 12px;transition:.2s ease}.textfield-input:focus{border-color:#4c00ff;box-shadow:0 0 2px #007bff;outline:none}.textfield-input.error{background-color:#fff5f5;border-color:#d93025}.textfield-error{background-color:#f44343;color:#ece6e6;font-size:12px;padding:8px}.textfield-icon{position:absolute;right:45px;top:45px;width:2px}";
141
+ styleInject(css_248z$3);
141
142
 
142
143
  const TextField = ({ label, value = "", placeholder, onChange, error, disabled = false, type = "text", fullWidth = true, icon, }) => {
143
144
  return (jsxRuntime.jsxs("div", { className: `textfield ${fullWidth ? "fullWidth" : ""}`, children: [label && jsxRuntime.jsx("label", { className: "textfield-label", children: label }), jsxRuntime.jsx("input", { type: type, className: `textfield-input ${error ? "error" : ""}`, value: value, placeholder: placeholder, disabled: disabled, onChange: (e) => onChange && onChange(e.target.value) }), icon && jsxRuntime.jsx("div", { className: "textfield-icon", children: icon }), error && jsxRuntime.jsx("p", { className: "textfield-error", children: error })] }));
144
145
  };
145
146
 
146
- var css_248z$1 = ".radio-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px}.radio-container input{display:none}.radio-circle{align-items:center;border:2px solid var(--rd-border-color,#777);border-radius:50%;display:flex;height:18px;justify-content:center;position:relative;transition:.2s ease;width:18px}.radio-circle:after{background-color:var(--rd-dot-color,#fff);border-radius:50%;content:\"\";height:10px;opacity:0;transform:scale(.4);transition:.2s ease;width:10px}.radio-container input:checked+.radio-circle{background-color:var(--rd-checked-bg,#007bff);border-color:var(--rd-checked-border,#007bff)}.radio-container input:checked+.radio-circle:after{opacity:1;transform:scale(1)}.radio-circle.error{border-color:#d93025!important}.radio-label{font-size:14px}.disabled{cursor:not-allowed;opacity:.6}";
147
- styleInject(css_248z$1);
147
+ var css_248z$2 = ".radio-container{align-items:center;cursor:pointer;display:flex;font-family:sans-serif;gap:8px}.radio-container input{display:none}.radio-circle{align-items:center;border:2px solid var(--rd-border-color,#777);border-radius:50%;display:flex;height:18px;justify-content:center;position:relative;transition:.2s ease;width:18px}.radio-circle:after{background-color:var(--rd-dot-color,#fff);border-radius:50%;content:\"\";height:10px;opacity:0;transform:scale(.4);transition:.2s ease;width:10px}.radio-container input:checked+.radio-circle{background-color:var(--rd-checked-bg,#007bff);border-color:var(--rd-checked-border,#007bff)}.radio-container input:checked+.radio-circle:after{opacity:1;transform:scale(1)}.radio-circle.error{border-color:#d93025!important}.radio-label{font-size:14px}.disabled{cursor:not-allowed;opacity:.6}";
148
+ styleInject(css_248z$2);
148
149
 
149
150
  const Radio = ({ label, name, value, selectedValue, onChange, disabled = false, error = false, borderColor = "#777", dotColor = "#fff", checkedBorderColor = "#007bff", checkedBackground = error ? "#d93025" : "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", style, }) => {
150
151
  const checked = selectedValue === value;
151
152
  return (jsxRuntime.jsxs("label", { className: `radio-container ${disabled ? "disabled" : ""}`, style: Object.assign(Object.assign({}, style), { ["--rd-border-color"]: borderColor, ["--rd-dot-color"]: dotColor, ["--rd-checked-border"]: checkedBorderColor, ["--rd-checked-bg"]: checkedBackground, ["--rd-focus-shadow"]: focusShadow }), children: [jsxRuntime.jsx("input", { type: "radio", name: name, value: value, disabled: disabled, checked: checked, onChange: () => onChange(value) }), jsxRuntime.jsx("span", { className: `radio-circle ${error ? "error" : ""}` }), label && jsxRuntime.jsx("span", { className: "radio-label", children: label })] }));
152
153
  };
153
154
 
154
- var css_248z = ".select-wrapper{display:flex;flex-direction:column;font-family:sans-serif;gap:4px}.select-label{font-size:14px;font-weight:500}.select-container{position:relative;width:100%}.select-container select{background:#fff;border:1px solid var(--sel-border,#ccc);border-radius:6px;cursor:pointer;font-size:15px;padding:10px 12px;transition:all .2s ease;width:100%}.select-container select:focus{border-color:var(--sel-focus-border,#007bff);box-shadow:0 0 0 2px var(--sel-focus-shadow,rgba(0,123,255,.4));outline:none}.select-container.disabled select{background:#f2f2f2;cursor:not-allowed;opacity:.6}.select-container.error select{border-color:var(--sel-error,red)}.select-container.error select:focus{border-color:var(--sel-error,red);box-shadow:0 0 0 2px rgba(230,57,70,.35)}";
155
- styleInject(css_248z);
155
+ var css_248z$1 = ".select-wrapper{display:flex;flex-direction:column;font-family:sans-serif;gap:4px}.select-label{font-size:14px;font-weight:500}.select-container{position:relative;width:100%}.select-container select{background:#fff;border:1px solid var(--sel-border,#ccc);border-radius:6px;cursor:pointer;font-size:15px;padding:10px 12px;transition:all .2s ease;width:100%}.select-container select:focus{border-color:var(--sel-focus-border,#007bff);box-shadow:0 0 0 2px var(--sel-focus-shadow,rgba(0,123,255,.4));outline:none}.select-container.disabled select{background:#f2f2f2;cursor:not-allowed;opacity:.6}.select-container.error select{border-color:var(--sel-error,red)}.select-container.error select:focus{border-color:var(--sel-error,red);box-shadow:0 0 0 2px rgba(230,57,70,.35)}";
156
+ styleInject(css_248z$1);
156
157
 
157
158
  const Select = ({ label, value, onChange, options, disabled = false, error = false, borderColor = "#ccc", focusBorder = "#007bff", focusShadow = "rgba(0, 123, 255, 0.4)", errorColor = "#e63946", style, }) => {
158
159
  return (jsxRuntime.jsxs("div", { className: "select-wrapper", style: style, children: [label && jsxRuntime.jsx("label", { className: "select-label", children: label }), jsxRuntime.jsx("div", { className: `select-container ${disabled ? "disabled" : ""} ${error ? "error" : ""}`, children: jsxRuntime.jsx("select", { value: value, disabled: disabled, onChange: (e) => onChange(e.target.value), style: {
@@ -166,6 +167,34 @@ const Select = ({ label, value, onChange, options, disabled = false, error = fal
166
167
  }, children: opt.label }, opt.value))) }) })] }));
167
168
  };
168
169
 
170
+ var css_248z = ".toast-container{display:flex;flex-direction:column;gap:10px;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:center;animation:toast-slide .3s ease,toast-fadeout .3s ease forwards;animation-delay:0s,2.8s;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.2);color:#fff;display:flex;font-size:14px;justify-content:space-between;max-width:320px;min-width:260px;padding:12px 16px;position:relative}.toast-success{background-color:#2ecc71}.toast-error{background-color:#e74c3c}.toast-warning{background-color:#f1c40f;color:#333}.toast-info{background-color:#3498db}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:16px}@keyframes toast-slide{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-fadeout{0%{opacity:1}to{opacity:0}}";
171
+ styleInject(css_248z);
172
+
173
+ const ToastContext = react.createContext(undefined);
174
+ const useToast = () => {
175
+ const ctx = react.useContext(ToastContext);
176
+ if (!ctx)
177
+ throw new Error("useToast must be used inside <ToastProvider>");
178
+ return ctx;
179
+ };
180
+ const ToastProvider = ({ children }) => {
181
+ const [toasts, setToasts] = react.useState([]);
182
+ function addToast(message, variant = "info", duration = 3000) {
183
+ const toast = {
184
+ id: Date.now().toString(),
185
+ message,
186
+ variant,
187
+ duration,
188
+ };
189
+ setToasts((prev) => [...prev, toast]);
190
+ // auto-remove
191
+ setTimeout(() => {
192
+ setToasts((prev) => prev.filter((t) => t.id !== toast.id));
193
+ }, duration);
194
+ }
195
+ return (jsxRuntime.jsxs(ToastContext.Provider, { value: { addToast }, children: [children, jsxRuntime.jsx("div", { className: "toast-container", children: toasts.map((t) => (jsxRuntime.jsxs("div", { className: `toast toast-${t.variant}`, children: [jsxRuntime.jsx("span", { children: t.message }), jsxRuntime.jsx("button", { className: "toast-close", onClick: () => setToasts((prev) => prev.filter((x) => x.id !== t.id)), children: "\u2715" })] }, t.id))) })] }));
196
+ };
197
+
169
198
  exports.Bloc = Bloc;
170
199
  exports.Button = Button;
171
200
  exports.Card = Card;
@@ -180,4 +209,6 @@ exports.Row = Row;
180
209
  exports.Select = Select;
181
210
  exports.Spacer = Spacer;
182
211
  exports.TextField = TextField;
212
+ exports.ToastProvider = ToastProvider;
213
+ exports.useToast = useToast;
183
214
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/Button/Button.tsx","../src/components/Center/Center.tsx","../src/components/Card/Card.tsx","../src/components/Bloc/Bloc.tsx","../src/components/Container/Container.tsx","../src/components/Row/Row.tsx","../src/components/Column/Column.tsx","../src/components/Grid/Grid.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Divider/Divider.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/TextField/TextField.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./Button.css\";\r\nimport React from \"react\";\r\n\r\n\r\nexport interface ButtonProps {\r\n label: string;\r\n onClick?: () => void;\r\n variant?: \"primary\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n disabled?: boolean;\r\n icon?: React.ReactNode;\r\n iconPosition?: \"left\" | \"right\";\r\n backgroundColor?: string;\r\n color?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = ({\r\n label,\r\n onClick,\r\n variant = \"primary\",\r\n size = \"medium\",\r\n disabled = false,\r\n icon,\r\n iconPosition = \"left\",\r\n backgroundColor,\r\n color,\r\n isLoading = false,\r\n}) => {\r\n return (\r\n <>\r\n <button\r\n className={`btn btn-${variant} btn-${size}`}\r\n onClick={onClick}\r\n disabled={disabled || isLoading}\r\n style={{ backgroundColor, color }}\r\n >\r\n {icon && iconPosition === \"left\" && <span className=\"btn-left-icon\">{icon}</span>}\r\n {label}\r\n {icon && iconPosition === \"right\" && <span className=\"btn-right-icon\">{icon}</span>}\r\n {isLoading && <span className=\"btn-spinner\"></span>}\r\n </button>\r\n </>\r\n );\r\n};\r\n","import \"./Center.css\"\r\n\r\nexport interface CenterProps {\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n}\r\n\r\nexport const Center: React.FC<CenterProps> = ({ children, backgroundColor = 'white', color = 'black' }) => {\r\n return <div className=\"center\" style={{ backgroundColor, color}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Card.css\";\r\n\r\nexport interface CardProps {\r\n title?: string;\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n variant?: \"elevated\" | \"outlined\" | \"flat\";\r\n padding?: \"sm\" | \"md\" | \"lg\";\r\n footer?: React.ReactNode;\r\n}\r\n\r\nexport const Card: React.FC<CardProps> = ({\r\n title,\r\n children,\r\n footer,\r\n backgroundColor,\r\n color,\r\n variant = \"elevated\",\r\n padding = \"md\",\r\n}) => {\r\n return (\r\n <div\r\n className={`card card-${variant} card-padding-${padding}`}\r\n style={{ backgroundColor, color }}\r\n >\r\n {title && <div className=\"card-header\">{title}</div>}\r\n <div className=\"card-body\">{children}</div>\r\n {footer && <div className=\"card-footer\">{footer}</div>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Bloc.css\";\r\n\r\nexport type BlocLayout =\r\n | \"default\"\r\n | \"center\"\r\n | \"row\"\r\n | \"row-between\"\r\n | \"column\"\r\n | \"sidebar\"\r\n | \"navbar\";\r\n\r\nexport interface BlocProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n layout?: BlocLayout;\r\n}\r\n\r\nexport const Bloc: React.FC<BlocProps> = ({\r\n children,\r\n className = \"\",\r\n style = {},\r\n layout = \"default\",\r\n}) => {\r\n const layoutStyles: React.CSSProperties = (() => {\r\n switch (layout) {\r\n case \"center\":\r\n return { display: \"flex\", justifyContent: \"center\", alignItems: \"center\" };\r\n case \"row\":\r\n return { display: \"flex\", flexDirection: \"row\", alignItems: \"center\" };\r\n case \"row-between\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\" };\r\n case \"column\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\" };\r\n case \"sidebar\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\", gap: \"12px\" };\r\n case \"navbar\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"12px 20px\" };\r\n default:\r\n return {};\r\n }\r\n })();\r\n\r\n return (\r\n <div className={`bloc ${className}`} style={{ ...layoutStyles, ...style }}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Container.css\";\r\n\r\nexport interface ContainerProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n fluid?: boolean;\r\n}\r\n\r\nexport const Container: React.FC<ContainerProps> = ({ children, className = \"\", style = {}, fluid = false }) => {\r\n return (\r\n <div className={`container ${fluid ? \"container-fluid\" : \"\"} ${className}`} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Row.css\";\r\n\r\nexport interface RowProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n children,\r\n className = \"\",\r\n style = {}\r\n}) => {\r\n return <div className={`row ${className}`} style={{...style}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Column.css\";\r\n\r\nexport interface ColumnProps {\r\n children?: React.ReactNode;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Column: React.FC<ColumnProps> = ({ children, className = \"\", style = {}}) => {\r\n return (\r\n <div className={`col ${className}`} style={{...style}}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { Column } from \"../Column\";\r\nimport { Row } from \"../Row\";\r\n\r\nexport interface GridColumn {\r\n children?: React.ReactNode;\r\n span?: number;\r\n style?: React.CSSProperties;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n}\r\n\r\nexport interface GridProps {\r\n items: GridColumn[];\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({ items }) => {\r\n\r\n return (\r\n <Row>\r\n {items.map((item: GridColumn, index: number) => (\r\n <Column\r\n key={index}\r\n className={item.className}\r\n style={{ ...item.style }}\r\n >\r\n {item.children}\r\n </Column>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface SpacerProps {\r\n size?: number;\r\n direction?: \"vertical\" | \"horizontal\";\r\n}\r\n\r\nexport const Spacer: React.FC<SpacerProps> = ({\r\n size = 16,\r\n direction = \"vertical\"\r\n}) => {\r\n const style: React.CSSProperties =\r\n direction === \"vertical\"\r\n ? { height: size }\r\n : { width: size, display: \"inline-block\" };\r\n\r\n return <div style={style} />;\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface DividerProps {\r\n color?: string;\r\n thickness?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n margin?: number;\r\n}\r\n\r\nexport const Divider: React.FC<DividerProps> = ({\r\n color = \"#e0e0e0\",\r\n thickness = 1,\r\n orientation = \"horizontal\",\r\n margin = 8,\r\n}) => {\r\n const styles: React.CSSProperties =\r\n orientation === \"horizontal\"\r\n ? {\r\n width: \"100%\",\r\n height: thickness,\r\n backgroundColor: color,\r\n margin: `${margin}px 0`,\r\n }\r\n : {\r\n width: thickness,\r\n height: \"100%\",\r\n backgroundColor: color,\r\n margin: `0 ${margin}px`,\r\n };\r\n\r\n return <div style={styles} />;\r\n};\r\n","import React from \"react\";\r\nimport \"./Checkbox.css\";\r\n\r\nexport interface CheckboxProps {\r\n label?: string;\r\n checked: boolean;\r\n onChange: (value: boolean) => void;\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n boxColor?: string;\r\n checkColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n checked,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n boxColor = \"#777\",\r\n checkColor = \"#fff\",\r\n checkedBackground = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <label\r\n className={`checkbox-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n [\"--cb-box-color\" as any]: boxColor,\r\n [\"--cb-check-color\" as any]: checkColor,\r\n [\"--cb-checked-bg\" as any]: checkedBackground,\r\n [\"--cb-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={checked}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.checked)}\r\n />\r\n\r\n <span className={`checkbox-box ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"checkbox-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./TextField.css\";\r\n\r\nexport interface TextFieldProps {\r\n label?: string;\r\n value?: string;\r\n placeholder?: string;\r\n onChange?: (value: string) => void;\r\n error?: string;\r\n disabled?: boolean;\r\n type?: string;\r\n fullWidth?: boolean;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const TextField: React.FC<TextFieldProps> = ({\r\n label,\r\n value = \"\",\r\n placeholder,\r\n onChange,\r\n error,\r\n disabled = false,\r\n type = \"text\",\r\n fullWidth = true,\r\n icon,\r\n}) => {\r\n return (\r\n <div className={`textfield ${fullWidth ? \"fullWidth\" : \"\"}`}>\r\n {label && <label className=\"textfield-label\">{label}</label>}\r\n\r\n <input\r\n type={type}\r\n className={`textfield-input ${error ? \"error\" : \"\"}`}\r\n value={value}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n onChange={(e) => onChange && onChange(e.target.value)}\r\n />\r\n {icon && <div className=\"textfield-icon\">{icon}</div>}\r\n\r\n {error && <p className=\"textfield-error\">{error}</p>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Radio.css\";\r\n\r\nexport interface RadioProps {\r\n label?: string;\r\n name: string; // obligatoire pour grouper les radios\r\n value: string;\r\n selectedValue: string;\r\n onChange: (value: string) => void;\r\n\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Thème custom\r\n borderColor?: string;\r\n dotColor?: string;\r\n checkedBorderColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Radio: React.FC<RadioProps> = ({\r\n label,\r\n name,\r\n value,\r\n selectedValue,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#777\",\r\n dotColor = \"#fff\",\r\n checkedBorderColor = \"#007bff\",\r\n checkedBackground = error ? \"#d93025\" : \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n const checked = selectedValue === value;\r\n\r\n return (\r\n <label\r\n className={`radio-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n ...style,\r\n [\"--rd-border-color\" as any]: borderColor,\r\n [\"--rd-dot-color\" as any]: dotColor,\r\n [\"--rd-checked-border\" as any]: checkedBorderColor,\r\n [\"--rd-checked-bg\" as any]: checkedBackground,\r\n [\"--rd-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"radio\"\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n checked={checked}\r\n onChange={() => onChange(value)}\r\n />\r\n\r\n <span className={`radio-circle ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"radio-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Select.css\";\r\n\r\nexport interface SelectOption {\r\n value: string | number;\r\n label: string;\r\n\r\n bgColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport interface SelectProps {\r\n label?: string;\r\n value: string | number;\r\n onChange: (value: string | number) => void;\r\n options: SelectOption[];\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n borderColor?: string;\r\n focusBorder?: string;\r\n focusShadow?: string;\r\n errorColor?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#ccc\",\r\n focusBorder = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n errorColor = \"#e63946\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <div className=\"select-wrapper\" style={style}>\r\n {label && <label className=\"select-label\">{label}</label>}\r\n\r\n <div\r\n className={`select-container ${disabled ? \"disabled\" : \"\"} ${\r\n error ? \"error\" : \"\"\r\n }`}\r\n >\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.value)}\r\n style={{\r\n [\"--sel-border\" as any]: borderColor,\r\n [\"--sel-focus-border\" as any]: focusBorder,\r\n [\"--sel-focus-shadow\" as any]: focusShadow,\r\n [\"--sel-error\" as any]: errorColor,\r\n }}\r\n >\r\n {options.map((opt) => (\r\n <option\r\n key={opt.value}\r\n value={opt.value}\r\n style={{\r\n backgroundColor: opt.bgColor,\r\n color: opt.textColor,\r\n }}\r\n >\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/Button/Button.tsx","../src/components/Center/Center.tsx","../src/components/Card/Card.tsx","../src/components/Bloc/Bloc.tsx","../src/components/Container/Container.tsx","../src/components/Row/Row.tsx","../src/components/Column/Column.tsx","../src/components/Grid/Grid.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Divider/Divider.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/TextField/TextField.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx","../src/components/Toast/ToastContext.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./Button.css\";\r\nimport React from \"react\";\r\n\r\n\r\nexport interface ButtonProps {\r\n label: string;\r\n onClick?: () => void;\r\n variant?: \"primary\" | \"secondary\" | \"danger\" | \"dark\" | \"light\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n disabled?: boolean;\r\n icon?: React.ReactNode;\r\n iconPosition?: \"left\" | \"right\";\r\n backgroundColor?: string;\r\n color?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = ({\r\n label,\r\n onClick,\r\n variant = \"primary\",\r\n size = \"medium\",\r\n disabled = false,\r\n icon,\r\n iconPosition = \"left\",\r\n backgroundColor,\r\n color,\r\n isLoading = false,\r\n}) => {\r\n return (\r\n <>\r\n <button\r\n className={`btn btn-${variant} btn-${size}`}\r\n onClick={onClick}\r\n disabled={disabled || isLoading}\r\n style={{ backgroundColor, color }}\r\n >\r\n {icon && iconPosition === \"left\" && <span className=\"btn-left-icon\">{icon}</span>}\r\n {label}\r\n {icon && iconPosition === \"right\" && <span className=\"btn-right-icon\">{icon}</span>}\r\n {isLoading && <span className=\"btn-spinner\"></span>}\r\n </button>\r\n </>\r\n );\r\n};\r\n","import \"./Center.css\"\r\n\r\nexport interface CenterProps {\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n}\r\n\r\nexport const Center: React.FC<CenterProps> = ({ children, backgroundColor = 'white', color = 'black' }) => {\r\n return <div className=\"center\" style={{ backgroundColor, color}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Card.css\";\r\n\r\nexport interface CardProps {\r\n title?: string;\r\n children: React.ReactNode;\r\n backgroundColor?: string;\r\n color?: string;\r\n variant?: \"elevated\" | \"outlined\" | \"flat\";\r\n padding?: \"sm\" | \"md\" | \"lg\";\r\n footer?: React.ReactNode;\r\n}\r\n\r\nexport const Card: React.FC<CardProps> = ({\r\n title,\r\n children,\r\n footer,\r\n backgroundColor,\r\n color,\r\n variant = \"elevated\",\r\n padding = \"md\",\r\n}) => {\r\n return (\r\n <div\r\n className={`card card-${variant} card-padding-${padding}`}\r\n style={{ backgroundColor, color }}\r\n >\r\n {title && <div className=\"card-header\">{title}</div>}\r\n <div className=\"card-body\">{children}</div>\r\n {footer && <div className=\"card-footer\">{footer}</div>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Bloc.css\";\r\n\r\nexport type BlocLayout =\r\n | \"default\"\r\n | \"center\"\r\n | \"row\"\r\n | \"row-between\"\r\n | \"column\"\r\n | \"sidebar\"\r\n | \"navbar\";\r\n\r\nexport interface BlocProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n layout?: BlocLayout;\r\n}\r\n\r\nexport const Bloc: React.FC<BlocProps> = ({\r\n children,\r\n className = \"\",\r\n style = {},\r\n layout = \"default\",\r\n}) => {\r\n const layoutStyles: React.CSSProperties = (() => {\r\n switch (layout) {\r\n case \"center\":\r\n return { display: \"flex\", justifyContent: \"center\", alignItems: \"center\" };\r\n case \"row\":\r\n return { display: \"flex\", flexDirection: \"row\", alignItems: \"center\" };\r\n case \"row-between\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\" };\r\n case \"column\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\" };\r\n case \"sidebar\":\r\n return { display: \"flex\", flexDirection: \"column\", alignItems: \"flex-start\", gap: \"12px\" };\r\n case \"navbar\":\r\n return { display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"12px 20px\" };\r\n default:\r\n return {};\r\n }\r\n })();\r\n\r\n return (\r\n <div className={`bloc ${className}`} style={{ ...layoutStyles, ...style }}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Container.css\";\r\n\r\nexport interface ContainerProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n fluid?: boolean;\r\n}\r\n\r\nexport const Container: React.FC<ContainerProps> = ({ children, className = \"\", style = {}, fluid = false }) => {\r\n return (\r\n <div className={`container ${fluid ? \"container-fluid\" : \"\"} ${className}`} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Row.css\";\r\n\r\nexport interface RowProps {\r\n children?: React.ReactNode;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n children,\r\n className = \"\",\r\n style = {}\r\n}) => {\r\n return <div className={`row ${className}`} style={{...style}}>{children}</div>;\r\n};\r\n","import React from \"react\";\r\nimport \"./Column.css\";\r\n\r\nexport interface ColumnProps {\r\n children?: React.ReactNode;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Column: React.FC<ColumnProps> = ({ children, className = \"\", style = {}}) => {\r\n return (\r\n <div className={`col ${className}`} style={{...style}}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { Column } from \"../Column\";\r\nimport { Row } from \"../Row\";\r\n\r\nexport interface GridColumn {\r\n children?: React.ReactNode;\r\n span?: number;\r\n style?: React.CSSProperties;\r\n className?: \"small\" | \"medium\" | \"large\";\r\n}\r\n\r\nexport interface GridProps {\r\n items: GridColumn[];\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({ items }) => {\r\n\r\n return (\r\n <Row>\r\n {items.map((item: GridColumn, index: number) => (\r\n <Column\r\n key={index}\r\n className={item.className}\r\n style={{ ...item.style }}\r\n >\r\n {item.children}\r\n </Column>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface SpacerProps {\r\n size?: number;\r\n direction?: \"vertical\" | \"horizontal\";\r\n}\r\n\r\nexport const Spacer: React.FC<SpacerProps> = ({\r\n size = 16,\r\n direction = \"vertical\"\r\n}) => {\r\n const style: React.CSSProperties =\r\n direction === \"vertical\"\r\n ? { height: size }\r\n : { width: size, display: \"inline-block\" };\r\n\r\n return <div style={style} />;\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface DividerProps {\r\n color?: string;\r\n thickness?: number;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n margin?: number;\r\n}\r\n\r\nexport const Divider: React.FC<DividerProps> = ({\r\n color = \"#e0e0e0\",\r\n thickness = 1,\r\n orientation = \"horizontal\",\r\n margin = 8,\r\n}) => {\r\n const styles: React.CSSProperties =\r\n orientation === \"horizontal\"\r\n ? {\r\n width: \"100%\",\r\n height: thickness,\r\n backgroundColor: color,\r\n margin: `${margin}px 0`,\r\n }\r\n : {\r\n width: thickness,\r\n height: \"100%\",\r\n backgroundColor: color,\r\n margin: `0 ${margin}px`,\r\n };\r\n\r\n return <div style={styles} />;\r\n};\r\n","import React from \"react\";\r\nimport \"./Checkbox.css\";\r\n\r\nexport interface CheckboxProps {\r\n label?: string;\r\n checked: boolean;\r\n onChange: (value: boolean) => void;\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n boxColor?: string;\r\n checkColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n checked,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n boxColor = \"#777\",\r\n checkColor = \"#fff\",\r\n checkedBackground = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <label\r\n className={`checkbox-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n [\"--cb-box-color\" as any]: boxColor,\r\n [\"--cb-check-color\" as any]: checkColor,\r\n [\"--cb-checked-bg\" as any]: checkedBackground,\r\n [\"--cb-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={checked}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.checked)}\r\n />\r\n\r\n <span className={`checkbox-box ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"checkbox-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./TextField.css\";\r\n\r\nexport interface TextFieldProps {\r\n label?: string;\r\n value?: string;\r\n placeholder?: string;\r\n onChange?: (value: string) => void;\r\n error?: string;\r\n disabled?: boolean;\r\n type?: string;\r\n fullWidth?: boolean;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const TextField: React.FC<TextFieldProps> = ({\r\n label,\r\n value = \"\",\r\n placeholder,\r\n onChange,\r\n error,\r\n disabled = false,\r\n type = \"text\",\r\n fullWidth = true,\r\n icon,\r\n}) => {\r\n return (\r\n <div className={`textfield ${fullWidth ? \"fullWidth\" : \"\"}`}>\r\n {label && <label className=\"textfield-label\">{label}</label>}\r\n\r\n <input\r\n type={type}\r\n className={`textfield-input ${error ? \"error\" : \"\"}`}\r\n value={value}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n onChange={(e) => onChange && onChange(e.target.value)}\r\n />\r\n {icon && <div className=\"textfield-icon\">{icon}</div>}\r\n\r\n {error && <p className=\"textfield-error\">{error}</p>}\r\n </div>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Radio.css\";\r\n\r\nexport interface RadioProps {\r\n label?: string;\r\n name: string; // obligatoire pour grouper les radios\r\n value: string;\r\n selectedValue: string;\r\n onChange: (value: string) => void;\r\n\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Thème custom\r\n borderColor?: string;\r\n dotColor?: string;\r\n checkedBorderColor?: string;\r\n checkedBackground?: string;\r\n focusShadow?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Radio: React.FC<RadioProps> = ({\r\n label,\r\n name,\r\n value,\r\n selectedValue,\r\n onChange,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#777\",\r\n dotColor = \"#fff\",\r\n checkedBorderColor = \"#007bff\",\r\n checkedBackground = error ? \"#d93025\" : \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n\r\n style,\r\n}) => {\r\n const checked = selectedValue === value;\r\n\r\n return (\r\n <label\r\n className={`radio-container ${disabled ? \"disabled\" : \"\"}`}\r\n style={{\r\n ...style,\r\n [\"--rd-border-color\" as any]: borderColor,\r\n [\"--rd-dot-color\" as any]: dotColor,\r\n [\"--rd-checked-border\" as any]: checkedBorderColor,\r\n [\"--rd-checked-bg\" as any]: checkedBackground,\r\n [\"--rd-focus-shadow\" as any]: focusShadow,\r\n }}\r\n >\r\n <input\r\n type=\"radio\"\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n checked={checked}\r\n onChange={() => onChange(value)}\r\n />\r\n\r\n <span className={`radio-circle ${error ? \"error\" : \"\"}`} />\r\n\r\n {label && <span className=\"radio-label\">{label}</span>}\r\n </label>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Select.css\";\r\n\r\nexport interface SelectOption {\r\n value: string | number;\r\n label: string;\r\n\r\n bgColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport interface SelectProps {\r\n label?: string;\r\n value: string | number;\r\n onChange: (value: string | number) => void;\r\n options: SelectOption[];\r\n disabled?: boolean;\r\n error?: boolean;\r\n\r\n // Custom colors\r\n borderColor?: string;\r\n focusBorder?: string;\r\n focusShadow?: string;\r\n errorColor?: string;\r\n\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n disabled = false,\r\n error = false,\r\n\r\n borderColor = \"#ccc\",\r\n focusBorder = \"#007bff\",\r\n focusShadow = \"rgba(0, 123, 255, 0.4)\",\r\n errorColor = \"#e63946\",\r\n\r\n style,\r\n}) => {\r\n return (\r\n <div className=\"select-wrapper\" style={style}>\r\n {label && <label className=\"select-label\">{label}</label>}\r\n\r\n <div\r\n className={`select-container ${disabled ? \"disabled\" : \"\"} ${\r\n error ? \"error\" : \"\"\r\n }`}\r\n >\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n onChange={(e) => onChange(e.target.value)}\r\n style={{\r\n [\"--sel-border\" as any]: borderColor,\r\n [\"--sel-focus-border\" as any]: focusBorder,\r\n [\"--sel-focus-shadow\" as any]: focusShadow,\r\n [\"--sel-error\" as any]: errorColor,\r\n }}\r\n >\r\n {options.map((opt) => (\r\n <option\r\n key={opt.value}\r\n value={opt.value}\r\n style={{\r\n backgroundColor: opt.bgColor,\r\n color: opt.textColor,\r\n }}\r\n >\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { createContext, useContext, useState } from \"react\";\r\nimport \"./Toast.css\";\r\n\r\nexport type ToastVariant = \"success\" | \"error\" | \"warning\" | \"info\";\r\n\r\nexport interface Toast {\r\n id: string;\r\n message: string;\r\n variant?: ToastVariant;\r\n duration?: number;\r\n}\r\n\r\ninterface ToastContextType {\r\n addToast: (msg: string, variant?: ToastVariant, duration?: number) => void;\r\n}\r\n\r\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\r\n\r\nexport const useToast = () => {\r\n const ctx = useContext(ToastContext);\r\n if (!ctx) throw new Error(\"useToast must be used inside <ToastProvider>\");\r\n return ctx;\r\n};\r\n\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n const [toasts, setToasts] = useState<Toast[]>([]);\r\n\r\n function addToast(\r\n message: string,\r\n variant: ToastVariant = \"info\",\r\n duration = 3000\r\n ) {\r\n const toast: Toast = {\r\n id: Date.now().toString(),\r\n message,\r\n variant,\r\n duration,\r\n };\r\n\r\n setToasts((prev) => [...prev, toast]);\r\n\r\n // auto-remove\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\r\n }, duration);\r\n }\r\n\r\n return (\r\n <ToastContext.Provider value={{ addToast }}>\r\n {children}\r\n\r\n {/* Toast container */}\r\n <div className=\"toast-container\">\r\n {toasts.map((t) => (\r\n <div key={t.id} className={`toast toast-${t.variant}`}>\r\n <span>{t.message}</span>\r\n <button className=\"toast-close\" onClick={() =>\r\n setToasts((prev) => prev.filter((x) => x.id !== t.id))\r\n }>\r\n ✕\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </ToastContext.Provider>\r\n );\r\n};\r\n"],"names":["_jsx","_Fragment","_jsxs","createContext","useContext","useState"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houssemdi2000/design-system",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Mon système de design React",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",