eatopia-ds 0.0.86 → 0.0.87
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.
- package/build/index6.js +78 -108
- package/build/index6.js.map +1 -1
- package/package.json +1 -1
package/build/index6.js
CHANGED
|
@@ -1,26 +1,49 @@
|
|
|
1
1
|
import { j as e } from "./index9.js";
|
|
2
|
-
|
|
2
|
+
import { useState as B, useEffect as H } from "react";
|
|
3
|
+
function D({
|
|
3
4
|
valor: n,
|
|
4
|
-
onChange:
|
|
5
|
+
onChange: k,
|
|
5
6
|
min: c = 0,
|
|
6
|
-
max:
|
|
7
|
+
max: i,
|
|
7
8
|
disabled: r = !1,
|
|
8
|
-
className:
|
|
9
|
-
atalhos:
|
|
10
|
-
mostrarAtalhos:
|
|
11
|
-
selectedUnit:
|
|
12
|
-
addStockItem:
|
|
13
|
-
unitMultiplier:
|
|
14
|
-
defaultUnit:
|
|
9
|
+
className: h = "",
|
|
10
|
+
atalhos: v = [5, 10, 25, 100],
|
|
11
|
+
mostrarAtalhos: m = !0,
|
|
12
|
+
selectedUnit: x,
|
|
13
|
+
addStockItem: b,
|
|
14
|
+
unitMultiplier: f,
|
|
15
|
+
defaultUnit: y
|
|
15
16
|
}) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
const [g, d] = B(n.toString());
|
|
18
|
+
H(() => {
|
|
19
|
+
d(n.toString());
|
|
20
|
+
}, [n]);
|
|
21
|
+
const l = (t) => {
|
|
22
|
+
let a = Math.max(c, t);
|
|
23
|
+
i !== void 0 && (a = Math.min(i, a)), k(a), d(a.toString());
|
|
24
|
+
}, w = (t) => /^$|^\d*([.,]\d*)?$/.test(t), C = (t) => {
|
|
25
|
+
const a = t.target.value.replace(",", ".");
|
|
26
|
+
if (w(a) && (d(a), a !== "" && !a.endsWith("."))) {
|
|
27
|
+
const s = parseFloat(a);
|
|
28
|
+
isNaN(s) || l(s);
|
|
29
|
+
}
|
|
30
|
+
}, S = (t) => {
|
|
31
|
+
if (t.target.style.outline = "", t.target.style.borderColor = o.input.border, t.target.style.boxShadow = o.input.boxShadow, g === "" || g === ".") {
|
|
32
|
+
d(n.toString());
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const a = parseFloat(g);
|
|
36
|
+
if (isNaN(a))
|
|
37
|
+
d(n.toString());
|
|
38
|
+
else {
|
|
39
|
+
const s = a.toString();
|
|
40
|
+
d(s), l(a);
|
|
41
|
+
}
|
|
42
|
+
}, T = (t) => {
|
|
43
|
+
const a = n + t;
|
|
44
|
+
l(a);
|
|
45
|
+
}, j = () => {
|
|
46
|
+
b && (b(n * (f || 1)), l(1));
|
|
24
47
|
}, o = {
|
|
25
48
|
container: {
|
|
26
49
|
display: "flex",
|
|
@@ -214,8 +237,8 @@ function C({
|
|
|
214
237
|
{
|
|
215
238
|
style: {
|
|
216
239
|
...o.container,
|
|
217
|
-
...
|
|
218
|
-
width:
|
|
240
|
+
...h && {
|
|
241
|
+
width: h.includes("w-full") ? "100%" : o.container.width
|
|
219
242
|
}
|
|
220
243
|
},
|
|
221
244
|
children: [
|
|
@@ -240,38 +263,21 @@ function C({
|
|
|
240
263
|
onMouseUp: (t) => {
|
|
241
264
|
!r && n > c && (t.currentTarget.style.background = o.buttonHover.background, t.currentTarget.style.transform = o.buttonHover.transform);
|
|
242
265
|
},
|
|
243
|
-
onClick: () =>
|
|
266
|
+
onClick: () => l(n - 1),
|
|
244
267
|
disabled: r || n <= c,
|
|
245
268
|
"aria-label": "Diminuir quantidade",
|
|
246
|
-
children: /* @__PURE__ */ e.jsx(
|
|
247
|
-
"svg",
|
|
248
|
-
{
|
|
249
|
-
style: { width: "24px", height: "24px" },
|
|
250
|
-
fill: "none",
|
|
251
|
-
viewBox: "0 0 24 24",
|
|
252
|
-
stroke: "currentColor",
|
|
253
|
-
children: /* @__PURE__ */ e.jsx(
|
|
254
|
-
"path",
|
|
255
|
-
{
|
|
256
|
-
strokeLinecap: "round",
|
|
257
|
-
strokeLinejoin: "round",
|
|
258
|
-
strokeWidth: 2.5,
|
|
259
|
-
d: "M20 12H4"
|
|
260
|
-
}
|
|
261
|
-
)
|
|
262
|
-
}
|
|
263
|
-
)
|
|
269
|
+
children: /* @__PURE__ */ e.jsx("svg", { style: { width: "24px", height: "24px" }, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M20 12H4" }) })
|
|
264
270
|
}
|
|
265
271
|
),
|
|
266
272
|
/* @__PURE__ */ e.jsx("div", { style: o.inputContainer, children: /* @__PURE__ */ e.jsxs("div", { style: o.inputWrapper, children: [
|
|
267
273
|
/* @__PURE__ */ e.jsx(
|
|
268
274
|
"input",
|
|
269
275
|
{
|
|
270
|
-
type: "
|
|
271
|
-
value:
|
|
272
|
-
onChange:
|
|
276
|
+
type: "text",
|
|
277
|
+
value: g,
|
|
278
|
+
onChange: C,
|
|
273
279
|
min: 0,
|
|
274
|
-
max:
|
|
280
|
+
max: i,
|
|
275
281
|
disabled: r,
|
|
276
282
|
style: {
|
|
277
283
|
...o.input,
|
|
@@ -280,14 +286,12 @@ function C({
|
|
|
280
286
|
onFocus: (t) => {
|
|
281
287
|
r || (t.target.style.outline = o.inputFocus.outline, t.target.style.borderColor = o.inputFocus.borderColor, t.target.style.boxShadow = o.inputFocus.boxShadow);
|
|
282
288
|
},
|
|
283
|
-
onBlur:
|
|
284
|
-
t.target.style.outline = "", t.target.style.borderColor = o.input.border, t.target.style.boxShadow = o.input.boxShadow;
|
|
285
|
-
},
|
|
289
|
+
onBlur: S,
|
|
286
290
|
"aria-label": "Quantidade",
|
|
287
291
|
placeholder: "0"
|
|
288
292
|
}
|
|
289
293
|
),
|
|
290
|
-
|
|
294
|
+
x && /* @__PURE__ */ e.jsx("div", { style: o.unitLabel, children: x }),
|
|
291
295
|
/* @__PURE__ */ e.jsx("div", { style: o.inputOverlay })
|
|
292
296
|
] }) }),
|
|
293
297
|
/* @__PURE__ */ e.jsx(
|
|
@@ -296,80 +300,63 @@ function C({
|
|
|
296
300
|
type: "button",
|
|
297
301
|
style: {
|
|
298
302
|
...o.button,
|
|
299
|
-
...r ||
|
|
303
|
+
...r || i !== void 0 && n >= i ? o.buttonDisabled : {}
|
|
300
304
|
},
|
|
301
305
|
onMouseEnter: (t) => {
|
|
302
|
-
!r && (
|
|
306
|
+
!r && (i === void 0 || n < i) && (t.currentTarget.style.background = o.buttonHover.background, t.currentTarget.style.boxShadow = o.buttonHover.boxShadow, t.currentTarget.style.transform = o.buttonHover.transform);
|
|
303
307
|
},
|
|
304
308
|
onMouseLeave: (t) => {
|
|
305
309
|
t.currentTarget.style.background = o.button.background, t.currentTarget.style.boxShadow = o.button.boxShadow, t.currentTarget.style.transform = "";
|
|
306
310
|
},
|
|
307
311
|
onMouseDown: (t) => {
|
|
308
|
-
!r && (
|
|
312
|
+
!r && (i === void 0 || n < i) && (t.currentTarget.style.background = o.buttonActive.background, t.currentTarget.style.transform = o.buttonActive.transform);
|
|
309
313
|
},
|
|
310
314
|
onMouseUp: (t) => {
|
|
311
|
-
!r && (
|
|
315
|
+
!r && (i === void 0 || n < i) && (t.currentTarget.style.background = o.buttonHover.background, t.currentTarget.style.transform = o.buttonHover.transform);
|
|
312
316
|
},
|
|
313
|
-
onClick: () =>
|
|
314
|
-
disabled: r ||
|
|
317
|
+
onClick: () => l(n + 1),
|
|
318
|
+
disabled: r || i !== void 0 && n >= i,
|
|
315
319
|
"aria-label": "Aumentar quantidade",
|
|
316
|
-
children: /* @__PURE__ */ e.jsx(
|
|
317
|
-
"svg",
|
|
318
|
-
{
|
|
319
|
-
style: { width: "24px", height: "24px" },
|
|
320
|
-
fill: "none",
|
|
321
|
-
viewBox: "0 0 24 24",
|
|
322
|
-
stroke: "currentColor",
|
|
323
|
-
children: /* @__PURE__ */ e.jsx(
|
|
324
|
-
"path",
|
|
325
|
-
{
|
|
326
|
-
strokeLinecap: "round",
|
|
327
|
-
strokeLinejoin: "round",
|
|
328
|
-
strokeWidth: 2.5,
|
|
329
|
-
d: "M12 4v16m8-8H4"
|
|
330
|
-
}
|
|
331
|
-
)
|
|
332
|
-
}
|
|
333
|
-
)
|
|
320
|
+
children: /* @__PURE__ */ e.jsx("svg", { style: { width: "24px", height: "24px" }, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M12 4v16m8-8H4" }) })
|
|
334
321
|
}
|
|
335
322
|
)
|
|
336
323
|
] }) }) }),
|
|
337
|
-
|
|
338
|
-
const
|
|
324
|
+
m && /* @__PURE__ */ e.jsx("div", { style: o.shortcutsContainer, children: /* @__PURE__ */ e.jsx("div", { style: o.shortcutsGrid, children: v.slice().sort((t, a) => t - a).filter((t) => t > 0 ? !0 : n > Math.abs(t)).map((t, a) => {
|
|
325
|
+
const s = t > 0, p = {
|
|
339
326
|
...o.shortcutButton,
|
|
340
327
|
...r ? o.shortcutButtonDisabled : {},
|
|
341
|
-
...
|
|
328
|
+
...s ? o.positiveShortcut : o.negativeShortcut
|
|
342
329
|
};
|
|
343
330
|
return /* @__PURE__ */ e.jsx(
|
|
344
331
|
"button",
|
|
345
332
|
{
|
|
346
333
|
type: "button",
|
|
347
|
-
style:
|
|
348
|
-
onMouseEnter: (
|
|
349
|
-
r || (
|
|
334
|
+
style: p,
|
|
335
|
+
onMouseEnter: (u) => {
|
|
336
|
+
r || (u.currentTarget.style.background = s ? o.positiveShortcutHover.background : o.negativeShortcutHover.background, u.currentTarget.style.boxShadow = "0 4px 6px -1px rgba(0, 0, 0, 0.1)");
|
|
350
337
|
},
|
|
351
|
-
onMouseLeave: (
|
|
352
|
-
|
|
338
|
+
onMouseLeave: (u) => {
|
|
339
|
+
u.currentTarget.style.background = p.background, u.currentTarget.style.boxShadow = p.boxShadow, u.currentTarget.style.transform = "";
|
|
353
340
|
},
|
|
354
|
-
onMouseDown: (
|
|
355
|
-
r || (
|
|
341
|
+
onMouseDown: (u) => {
|
|
342
|
+
r || (u.currentTarget.style.background = s ? o.positiveShortcutActive.background : o.negativeShortcutActive.background, u.currentTarget.style.transform = o.shortcutButtonActive.transform);
|
|
356
343
|
},
|
|
357
|
-
onMouseUp: (
|
|
358
|
-
r || (
|
|
344
|
+
onMouseUp: (u) => {
|
|
345
|
+
r || (u.currentTarget.style.background = s ? o.positiveShortcutHover.background : o.negativeShortcutHover.background, u.currentTarget.style.transform = "");
|
|
359
346
|
},
|
|
360
|
-
onClick: () =>
|
|
347
|
+
onClick: () => T(t),
|
|
361
348
|
disabled: r,
|
|
362
349
|
"aria-label": `Adicionar ${t} ao contador`,
|
|
363
350
|
children: t > 0 ? `+${t}` : t
|
|
364
351
|
},
|
|
365
|
-
|
|
352
|
+
a
|
|
366
353
|
);
|
|
367
354
|
}) }) }),
|
|
368
|
-
|
|
355
|
+
b && /* @__PURE__ */ e.jsx("div", { style: o.addButtonContainer, children: /* @__PURE__ */ e.jsxs(
|
|
369
356
|
"button",
|
|
370
357
|
{
|
|
371
358
|
type: "button",
|
|
372
|
-
onClick:
|
|
359
|
+
onClick: j,
|
|
373
360
|
disabled: r,
|
|
374
361
|
style: {
|
|
375
362
|
...o.addButton,
|
|
@@ -389,27 +376,10 @@ function C({
|
|
|
389
376
|
},
|
|
390
377
|
"aria-label": "Atualizar contagem",
|
|
391
378
|
children: [
|
|
392
|
-
/* @__PURE__ */ e.jsx(
|
|
393
|
-
"svg",
|
|
394
|
-
{
|
|
395
|
-
style: { width: "24px", height: "24px" },
|
|
396
|
-
fill: "none",
|
|
397
|
-
viewBox: "0 0 24 24",
|
|
398
|
-
stroke: "currentColor",
|
|
399
|
-
children: /* @__PURE__ */ e.jsx(
|
|
400
|
-
"path",
|
|
401
|
-
{
|
|
402
|
-
strokeLinecap: "round",
|
|
403
|
-
strokeLinejoin: "round",
|
|
404
|
-
strokeWidth: 2,
|
|
405
|
-
d: "M12 4v16m8-8H4"
|
|
406
|
-
}
|
|
407
|
-
)
|
|
408
|
-
}
|
|
409
|
-
),
|
|
379
|
+
/* @__PURE__ */ e.jsx("svg", { style: { width: "24px", height: "24px" }, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }),
|
|
410
380
|
"Adicionar contagem ",
|
|
411
|
-
n * (
|
|
412
|
-
|
|
381
|
+
n * (f || 1),
|
|
382
|
+
y && ` ${y}`
|
|
413
383
|
]
|
|
414
384
|
}
|
|
415
385
|
) })
|
|
@@ -418,6 +388,6 @@ function C({
|
|
|
418
388
|
);
|
|
419
389
|
}
|
|
420
390
|
export {
|
|
421
|
-
|
|
391
|
+
D as QuantidadeInput
|
|
422
392
|
};
|
|
423
393
|
//# sourceMappingURL=index6.js.map
|
package/build/index6.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index6.js","sources":["../src/components/QuantidadeInput/index.tsx"],"sourcesContent":["import React from \"react\";\r\n\r\nexport interface QuantidadeInputProps {\r\n valor: number;\r\n onChange: (novoValor: number) => void;\r\n min?: number;\r\n max?: number;\r\n disabled?: boolean;\r\n className?: string;\r\n atalhos?: number[];\r\n mostrarAtalhos?: boolean;\r\n addStockItem?: (valor: number) => void;\r\n selectedUnit?: string;\r\n defaultUnit?: string;\r\n unitMultiplier?: number;\r\n}\r\n\r\nexport function QuantidadeInput({\r\n valor,\r\n onChange,\r\n min = 0,\r\n max,\r\n disabled = false,\r\n className = \"\",\r\n atalhos = [5, 10, 25, 100],\r\n mostrarAtalhos = true,\r\n selectedUnit,\r\n addStockItem,\r\n unitMultiplier,\r\n defaultUnit,\r\n}: QuantidadeInputProps) {\r\n const handleChange = (novoValor: number) => {\r\n let valorFinal = Math.max(min, novoValor);\r\n if (max !== undefined) {\r\n valorFinal = Math.min(max, valorFinal);\r\n }\r\n onChange(valorFinal);\r\n };\r\n\r\n const handleAtalhoClick = (v: number) => {\r\n const novoValor = valor + v;\r\n handleChange(novoValor);\r\n };\r\n\r\n const handleAtualizarContagem = () => {\r\n if (!addStockItem) return;\r\n addStockItem(valor * (unitMultiplier || 1));\r\n handleChange(1);\r\n };\r\n\r\n // Estilos inline para substituir Tailwind\r\n const styles = {\r\n container: {\r\n display: \"flex\",\r\n flexDirection: \"column\" as const,\r\n gap: \"16px\",\r\n borderRadius: \"16px\",\r\n width: \"100%\",\r\n maxWidth: \"384px\",\r\n },\r\n calculatorContainer: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n calculator: {\r\n position: \"relative\" as const,\r\n backgroundColor: \"#111827\",\r\n borderRadius: \"16px\",\r\n padding: \"16px\",\r\n width: \"100%\",\r\n maxWidth: \"384px\",\r\n boxShadow:\r\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\r\n },\r\n calculatorContent: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"16px\",\r\n },\r\n button: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"64px\",\r\n height: \"64px\",\r\n borderRadius: \"16px\",\r\n background: \"linear-gradient(to bottom right, #4b5563, #374151)\",\r\n color: \"white\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.2s\",\r\n boxShadow: \"0 10px 15px -3px rgba(0, 0, 0, 0.1)\",\r\n },\r\n buttonHover: {\r\n background: \"linear-gradient(to bottom right, #6b7280, #4b5563)\",\r\n boxShadow:\r\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\r\n transform: \"scale(1.05)\",\r\n },\r\n buttonActive: {\r\n background: \"linear-gradient(to bottom right, #374151, #1f2937)\",\r\n transform: \"scale(0.95)\",\r\n },\r\n buttonDisabled: {\r\n opacity: 0.4,\r\n cursor: \"not-allowed\",\r\n },\r\n inputContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\" as const,\r\n alignItems: \"center\",\r\n flex: 1,\r\n maxWidth: \"192px\",\r\n },\r\n inputWrapper: {\r\n position: \"relative\" as const,\r\n width: \"100%\",\r\n },\r\n input: {\r\n width: \"100%\",\r\n height: \"64px\",\r\n textAlign: \"center\" as const,\r\n fontSize: \"24px\",\r\n fontWeight: \"bold\",\r\n borderRadius: \"24px\",\r\n border: \"2px solid #6b7280\",\r\n background: \"linear-gradient(to bottom right, #374151, #1f2937)\",\r\n color: \"white\",\r\n paddingRight: \"64px\",\r\n boxShadow: \"inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\r\n appearance: \"textfield\" as const,\r\n },\r\n inputFocus: {\r\n outline: \"none\",\r\n borderColor: \"#3b82f6\",\r\n boxShadow:\r\n \"0 0 0 4px rgba(59, 130, 246, 0.3), inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\r\n },\r\n inputDisabled: {\r\n opacity: 0.4,\r\n cursor: \"not-allowed\",\r\n },\r\n unitLabel: {\r\n position: \"absolute\" as const,\r\n top: \"50%\",\r\n right: \"16px\",\r\n transform: \"translateY(-50%)\",\r\n pointerEvents: \"none\" as const,\r\n fontSize: \"14px\",\r\n color: \"#9ca3af\",\r\n fontWeight: \"500\",\r\n },\r\n inputOverlay: {\r\n position: \"absolute\" as const,\r\n inset: 0,\r\n borderRadius: \"16px\",\r\n background:\r\n \"linear-gradient(to bottom right, transparent, rgba(255, 255, 255, 0.05), transparent)\",\r\n pointerEvents: \"none\" as const,\r\n },\r\n shortcutsContainer: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n shortcutsGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fit, minmax(80px, 1fr))\",\r\n gap: \"12px\",\r\n width: \"100%\",\r\n maxWidth: \"384px\",\r\n },\r\n shortcutButton: {\r\n height: \"56px\",\r\n borderRadius: \"16px\",\r\n fontWeight: \"600\",\r\n fontSize: \"24px\",\r\n transition: \"all 0.2s\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n boxShadow: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\r\n },\r\n shortcutButtonDisabled: {\r\n opacity: 0.4,\r\n cursor: \"not-allowed\",\r\n },\r\n shortcutButtonActive: {\r\n transform: \"scale(0.95)\",\r\n },\r\n positiveShortcut: {\r\n background: \"linear-gradient(to bottom right, #dbeafe, #bfdbfe)\",\r\n color: \"#1d4ed8\",\r\n border: \"1px solid #93c5fd\",\r\n },\r\n positiveShortcutHover: {\r\n background: \"linear-gradient(to bottom right, #bfdbfe, #93c5fd)\",\r\n },\r\n positiveShortcutActive: {\r\n background: \"linear-gradient(to bottom right, #93c5fd, #60a5fa)\",\r\n },\r\n negativeShortcut: {\r\n background: \"linear-gradient(to bottom right, #fee2e2, #fecaca)\",\r\n color: \"#dc2626\",\r\n border: \"1px solid #fca5a5\",\r\n },\r\n negativeShortcutHover: {\r\n background: \"linear-gradient(to bottom right, #fecaca, #fca5a5)\",\r\n },\r\n negativeShortcutActive: {\r\n background: \"linear-gradient(to bottom right, #fca5a5, #f87171)\",\r\n },\r\n addButtonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n addButton: {\r\n width: \"100%\",\r\n maxWidth: \"384px\",\r\n height: \"56px\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#059669\",\r\n color: \"white\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.2s\",\r\n fontWeight: \"600\",\r\n fontSize: \"18px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"8px\",\r\n },\r\n addButtonHover: {\r\n backgroundColor: \"#047857\",\r\n },\r\n addButtonActive: {\r\n backgroundColor: \"#065f46\",\r\n },\r\n addButtonDisabled: {\r\n opacity: 0.4,\r\n cursor: \"not-allowed\",\r\n },\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n ...styles.container,\r\n ...(className && {\r\n width: className.includes(\"w-full\") ? \"100%\" : styles.container.width,\r\n }),\r\n }}\r\n >\r\n {/* Display da Calculadora */}\r\n <div style={styles.calculatorContainer}>\r\n <div style={styles.calculator}>\r\n <div style={styles.calculatorContent}>\r\n {/* Botão Diminuir */}\r\n <button\r\n type=\"button\"\r\n style={{\r\n ...styles.button,\r\n ...(disabled || valor <= min ? styles.buttonDisabled : {}),\r\n }}\r\n onMouseEnter={(e) => {\r\n if (!disabled && valor > min) {\r\n e.currentTarget.style.background =\r\n styles.buttonHover.background!;\r\n e.currentTarget.style.boxShadow =\r\n styles.buttonHover.boxShadow!;\r\n e.currentTarget.style.transform =\r\n styles.buttonHover.transform!;\r\n }\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.background = styles.button.background!;\r\n e.currentTarget.style.boxShadow = styles.button.boxShadow!;\r\n e.currentTarget.style.transform = \"\";\r\n }}\r\n onMouseDown={(e) => {\r\n if (!disabled && valor > min) {\r\n e.currentTarget.style.background =\r\n styles.buttonActive.background!;\r\n e.currentTarget.style.transform =\r\n styles.buttonActive.transform!;\r\n }\r\n }}\r\n onMouseUp={(e) => {\r\n if (!disabled && valor > min) {\r\n e.currentTarget.style.background =\r\n styles.buttonHover.background!;\r\n e.currentTarget.style.transform =\r\n styles.buttonHover.transform!;\r\n }\r\n }}\r\n onClick={() => handleChange(valor - 1)}\r\n disabled={disabled || valor <= min}\r\n aria-label=\"Diminuir quantidade\"\r\n >\r\n <svg\r\n style={{ width: \"24px\", height: \"24px\" }}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2.5}\r\n d=\"M20 12H4\"\r\n />\r\n </svg>\r\n </button>\r\n\r\n {/* Input do Valor */}\r\n <div style={styles.inputContainer}>\r\n <div style={styles.inputWrapper}>\r\n <input\r\n type=\"decimal\"\r\n value={valor}\r\n onChange={(e) => handleChange(Number(e.target.value))}\r\n min={0}\r\n max={max}\r\n disabled={disabled}\r\n style={{\r\n ...styles.input,\r\n ...(disabled ? styles.inputDisabled : {}),\r\n }}\r\n onFocus={(e) => {\r\n if (!disabled) {\r\n e.target.style.outline = styles.inputFocus.outline!;\r\n e.target.style.borderColor =\r\n styles.inputFocus.borderColor!;\r\n e.target.style.boxShadow = styles.inputFocus.boxShadow!;\r\n }\r\n }}\r\n onBlur={(e) => {\r\n e.target.style.outline = \"\";\r\n e.target.style.borderColor = styles.input.border!;\r\n e.target.style.boxShadow = styles.input.boxShadow!;\r\n }}\r\n aria-label=\"Quantidade\"\r\n placeholder=\"0\"\r\n />\r\n {selectedUnit && (\r\n <div style={styles.unitLabel}>{selectedUnit}</div>\r\n )}\r\n <div style={styles.inputOverlay}></div>\r\n </div>\r\n </div>\r\n\r\n {/* Botão Aumentar */}\r\n <button\r\n type=\"button\"\r\n style={{\r\n ...styles.button,\r\n ...(disabled || (max !== undefined && valor >= max)\r\n ? styles.buttonDisabled\r\n : {}),\r\n }}\r\n onMouseEnter={(e) => {\r\n if (!disabled && (max === undefined || valor < max)) {\r\n e.currentTarget.style.background =\r\n styles.buttonHover.background!;\r\n e.currentTarget.style.boxShadow =\r\n styles.buttonHover.boxShadow!;\r\n e.currentTarget.style.transform =\r\n styles.buttonHover.transform!;\r\n }\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.background = styles.button.background!;\r\n e.currentTarget.style.boxShadow = styles.button.boxShadow!;\r\n e.currentTarget.style.transform = \"\";\r\n }}\r\n onMouseDown={(e) => {\r\n if (!disabled && (max === undefined || valor < max)) {\r\n e.currentTarget.style.background =\r\n styles.buttonActive.background!;\r\n e.currentTarget.style.transform =\r\n styles.buttonActive.transform!;\r\n }\r\n }}\r\n onMouseUp={(e) => {\r\n if (!disabled && (max === undefined || valor < max)) {\r\n e.currentTarget.style.background =\r\n styles.buttonHover.background!;\r\n e.currentTarget.style.transform =\r\n styles.buttonHover.transform!;\r\n }\r\n }}\r\n onClick={() => handleChange(valor + 1)}\r\n disabled={disabled || (max !== undefined && valor >= max)}\r\n aria-label=\"Aumentar quantidade\"\r\n >\r\n <svg\r\n style={{ width: \"24px\", height: \"24px\" }}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2.5}\r\n d=\"M12 4v16m8-8H4\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Teclado de Atalhos */}\r\n {mostrarAtalhos && (\r\n <div style={styles.shortcutsContainer}>\r\n <div style={styles.shortcutsGrid}>\r\n {atalhos\r\n .slice()\r\n .sort((a, b) => a - b)\r\n .filter((v) => {\r\n // Mostra sempre atalhos positivos\r\n if (v > 0) return true;\r\n // Para atalhos negativos, só mostra se o valor atual é maior que o valor absoluto\r\n return valor > Math.abs(v);\r\n })\r\n .map((v, i) => {\r\n const isPositive = v > 0;\r\n const baseStyle = {\r\n ...styles.shortcutButton,\r\n ...(disabled ? styles.shortcutButtonDisabled : {}),\r\n ...(isPositive\r\n ? styles.positiveShortcut\r\n : styles.negativeShortcut),\r\n };\r\n\r\n return (\r\n <button\r\n key={i}\r\n type=\"button\"\r\n style={baseStyle}\r\n onMouseEnter={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.background = isPositive\r\n ? styles.positiveShortcutHover.background!\r\n : styles.negativeShortcutHover.background!;\r\n e.currentTarget.style.boxShadow =\r\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1)\";\r\n }\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.background = baseStyle.background!;\r\n e.currentTarget.style.boxShadow = baseStyle.boxShadow!;\r\n e.currentTarget.style.transform = \"\";\r\n }}\r\n onMouseDown={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.background = isPositive\r\n ? styles.positiveShortcutActive.background!\r\n : styles.negativeShortcutActive.background!;\r\n e.currentTarget.style.transform =\r\n styles.shortcutButtonActive.transform!;\r\n }\r\n }}\r\n onMouseUp={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.background = isPositive\r\n ? styles.positiveShortcutHover.background!\r\n : styles.negativeShortcutHover.background!;\r\n e.currentTarget.style.transform = \"\";\r\n }\r\n }}\r\n onClick={() => handleAtalhoClick(v)}\r\n disabled={disabled}\r\n aria-label={`Adicionar ${v} ao contador`}\r\n >\r\n {v > 0 ? `+${v}` : v}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Botão Atualizar */}\r\n {addStockItem && (\r\n <div style={styles.addButtonContainer}>\r\n <button\r\n type=\"button\"\r\n onClick={handleAtualizarContagem}\r\n disabled={disabled}\r\n style={{\r\n ...styles.addButton,\r\n ...(disabled ? styles.addButtonDisabled : {}),\r\n }}\r\n onMouseEnter={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.backgroundColor =\r\n styles.addButtonHover.backgroundColor!;\r\n }\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.backgroundColor =\r\n styles.addButton.backgroundColor!;\r\n }}\r\n onMouseDown={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.backgroundColor =\r\n styles.addButtonActive.backgroundColor!;\r\n }\r\n }}\r\n onMouseUp={(e) => {\r\n if (!disabled) {\r\n e.currentTarget.style.backgroundColor =\r\n styles.addButtonHover.backgroundColor!;\r\n }\r\n }}\r\n aria-label=\"Atualizar contagem\"\r\n >\r\n <svg\r\n style={{ width: \"24px\", height: \"24px\" }}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n >\r\n <path\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth={2}\r\n d=\"M12 4v16m8-8H4\"\r\n />\r\n </svg>\r\n Adicionar contagem {valor * (unitMultiplier || 1)}\r\n {defaultUnit && ` ${defaultUnit}`}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["QuantidadeInput","valor","onChange","min","max","disabled","className","atalhos","mostrarAtalhos","selectedUnit","addStockItem","unitMultiplier","defaultUnit","handleChange","novoValor","valorFinal","handleAtalhoClick","v","handleAtualizarContagem","styles","jsxs","jsx","e","a","b","i","isPositive","baseStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index6.js","sources":["../src/components/QuantidadeInput/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\n\nexport interface QuantidadeInputProps {\n valor: number;\n onChange: (novoValor: number) => void;\n min?: number;\n max?: number;\n disabled?: boolean;\n className?: string;\n atalhos?: number[];\n mostrarAtalhos?: boolean;\n addStockItem?: (valor: number) => void;\n selectedUnit?: string;\n defaultUnit?: string;\n unitMultiplier?: number;\n}\n\nexport function QuantidadeInput({\n valor,\n onChange,\n min = 0,\n max,\n disabled = false,\n className = '',\n atalhos = [5, 10, 25, 100],\n mostrarAtalhos = true,\n selectedUnit,\n addStockItem,\n unitMultiplier,\n defaultUnit,\n}: QuantidadeInputProps) {\n const [inputValue, setInputValue] = useState(valor.toString());\n\n // Atualiza o inputValue quando o valor prop muda externamente\n useEffect(() => {\n setInputValue(valor.toString());\n }, [valor]);\n\n const handleChange = (novoValor: number) => {\n let valorFinal = Math.max(min, novoValor);\n if (max !== undefined) {\n valorFinal = Math.min(max, valorFinal);\n }\n onChange(valorFinal);\n setInputValue(valorFinal.toString());\n };\n\n const isValidNumber = (value: string): boolean => {\n // Permite números vazios, números inteiros e decimais (com , ou .)\n return /^$|^\\d*([.,]\\d*)?$/.test(value);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value.replace(',', '.');\n\n if (!isValidNumber(value)) return;\n\n setInputValue(value);\n\n if (value !== '' && !value.endsWith('.')) {\n const numeroConvertido = parseFloat(value);\n if (!isNaN(numeroConvertido)) {\n handleChange(numeroConvertido);\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n // Resetar estilos do input\n e.target.style.outline = '';\n e.target.style.borderColor = styles.input.border!;\n e.target.style.boxShadow = styles.input.boxShadow!;\n\n // Se o valor estiver vazio ou for apenas um ponto, reseta para o último valor válido\n if (inputValue === '' || inputValue === '.') {\n setInputValue(valor.toString());\n return;\n }\n\n // Formata o número com até 2 casas decimais\n const numeroConvertido = parseFloat(inputValue);\n if (!isNaN(numeroConvertido)) {\n const valorFormatado = numeroConvertido.toString();\n setInputValue(valorFormatado);\n handleChange(numeroConvertido);\n } else {\n setInputValue(valor.toString());\n }\n };\n\n const handleAtalhoClick = (v: number) => {\n const novoValor = valor + v;\n handleChange(novoValor);\n };\n\n const handleAtualizarContagem = () => {\n if (!addStockItem) return;\n addStockItem(valor * (unitMultiplier || 1));\n handleChange(1);\n };\n\n // Estilos inline para substituir Tailwind\n const styles = {\n container: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '16px',\n borderRadius: '16px',\n width: '100%',\n maxWidth: '384px',\n },\n calculatorContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n calculator: {\n position: 'relative' as const,\n backgroundColor: '#111827',\n borderRadius: '16px',\n padding: '16px',\n width: '100%',\n maxWidth: '384px',\n boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n },\n calculatorContent: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '16px',\n },\n button: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '64px',\n height: '64px',\n borderRadius: '16px',\n background: 'linear-gradient(to bottom right, #4b5563, #374151)',\n color: 'white',\n border: 'none',\n cursor: 'pointer',\n transition: 'all 0.2s',\n boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1)',\n },\n buttonHover: {\n background: 'linear-gradient(to bottom right, #6b7280, #4b5563)',\n boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n transform: 'scale(1.05)',\n },\n buttonActive: {\n background: 'linear-gradient(to bottom right, #374151, #1f2937)',\n transform: 'scale(0.95)',\n },\n buttonDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n inputContainer: {\n display: 'flex',\n flexDirection: 'column' as const,\n alignItems: 'center',\n flex: 1,\n maxWidth: '192px',\n },\n inputWrapper: {\n position: 'relative' as const,\n width: '100%',\n },\n input: {\n width: '100%',\n height: '64px',\n textAlign: 'center' as const,\n fontSize: '24px',\n fontWeight: 'bold',\n borderRadius: '24px',\n border: '2px solid #6b7280',\n background: 'linear-gradient(to bottom right, #374151, #1f2937)',\n color: 'white',\n paddingRight: '64px',\n boxShadow: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',\n appearance: 'textfield' as const,\n },\n inputFocus: {\n outline: 'none',\n borderColor: '#3b82f6',\n boxShadow: '0 0 0 4px rgba(59, 130, 246, 0.3), inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',\n },\n inputDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n unitLabel: {\n position: 'absolute' as const,\n top: '50%',\n right: '16px',\n transform: 'translateY(-50%)',\n pointerEvents: 'none' as const,\n fontSize: '14px',\n color: '#9ca3af',\n fontWeight: '500',\n },\n inputOverlay: {\n position: 'absolute' as const,\n inset: 0,\n borderRadius: '16px',\n background: 'linear-gradient(to bottom right, transparent, rgba(255, 255, 255, 0.05), transparent)',\n pointerEvents: 'none' as const,\n },\n shortcutsContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n shortcutsGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(80px, 1fr))',\n gap: '12px',\n width: '100%',\n maxWidth: '384px',\n },\n shortcutButton: {\n height: '56px',\n borderRadius: '16px',\n fontWeight: '600',\n fontSize: '24px',\n transition: 'all 0.2s',\n border: 'none',\n cursor: 'pointer',\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n },\n shortcutButtonDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n shortcutButtonActive: {\n transform: 'scale(0.95)',\n },\n positiveShortcut: {\n background: 'linear-gradient(to bottom right, #dbeafe, #bfdbfe)',\n color: '#1d4ed8',\n border: '1px solid #93c5fd',\n },\n positiveShortcutHover: {\n background: 'linear-gradient(to bottom right, #bfdbfe, #93c5fd)',\n },\n positiveShortcutActive: {\n background: 'linear-gradient(to bottom right, #93c5fd, #60a5fa)',\n },\n negativeShortcut: {\n background: 'linear-gradient(to bottom right, #fee2e2, #fecaca)',\n color: '#dc2626',\n border: '1px solid #fca5a5',\n },\n negativeShortcutHover: {\n background: 'linear-gradient(to bottom right, #fecaca, #fca5a5)',\n },\n negativeShortcutActive: {\n background: 'linear-gradient(to bottom right, #fca5a5, #f87171)',\n },\n addButtonContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n addButton: {\n width: '100%',\n maxWidth: '384px',\n height: '56px',\n borderRadius: '12px',\n backgroundColor: '#059669',\n color: 'white',\n border: 'none',\n cursor: 'pointer',\n transition: 'all 0.2s',\n fontWeight: '600',\n fontSize: '18px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n },\n addButtonHover: {\n backgroundColor: '#047857',\n },\n addButtonActive: {\n backgroundColor: '#065f46',\n },\n addButtonDisabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n };\n\n return (\n <div\n style={{\n ...styles.container,\n ...(className && {\n width: className.includes('w-full') ? '100%' : styles.container.width,\n }),\n }}>\n {/* Display da Calculadora */}\n <div style={styles.calculatorContainer}>\n <div style={styles.calculator}>\n <div style={styles.calculatorContent}>\n {/* Botão Diminuir */}\n <button\n type=\"button\"\n style={{\n ...styles.button,\n ...(disabled || valor <= min ? styles.buttonDisabled : {}),\n }}\n onMouseEnter={(e) => {\n if (!disabled && valor > min) {\n e.currentTarget.style.background = styles.buttonHover.background!;\n e.currentTarget.style.boxShadow = styles.buttonHover.boxShadow!;\n e.currentTarget.style.transform = styles.buttonHover.transform!;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = styles.button.background!;\n e.currentTarget.style.boxShadow = styles.button.boxShadow!;\n e.currentTarget.style.transform = '';\n }}\n onMouseDown={(e) => {\n if (!disabled && valor > min) {\n e.currentTarget.style.background = styles.buttonActive.background!;\n e.currentTarget.style.transform = styles.buttonActive.transform!;\n }\n }}\n onMouseUp={(e) => {\n if (!disabled && valor > min) {\n e.currentTarget.style.background = styles.buttonHover.background!;\n e.currentTarget.style.transform = styles.buttonHover.transform!;\n }\n }}\n onClick={() => handleChange(valor - 1)}\n disabled={disabled || valor <= min}\n aria-label=\"Diminuir quantidade\">\n <svg style={{ width: '24px', height: '24px' }} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2.5} d=\"M20 12H4\" />\n </svg>\n </button>\n\n {/* Input do Valor */}\n <div style={styles.inputContainer}>\n <div style={styles.inputWrapper}>\n <input\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n min={0}\n max={max}\n disabled={disabled}\n style={{\n ...styles.input,\n ...(disabled ? styles.inputDisabled : {}),\n }}\n onFocus={(e) => {\n if (!disabled) {\n e.target.style.outline = styles.inputFocus.outline!;\n e.target.style.borderColor = styles.inputFocus.borderColor!;\n e.target.style.boxShadow = styles.inputFocus.boxShadow!;\n }\n }}\n onBlur={handleBlur}\n aria-label=\"Quantidade\"\n placeholder=\"0\"\n />\n {selectedUnit && <div style={styles.unitLabel}>{selectedUnit}</div>}\n <div style={styles.inputOverlay}></div>\n </div>\n </div>\n\n {/* Botão Aumentar */}\n <button\n type=\"button\"\n style={{\n ...styles.button,\n ...(disabled || (max !== undefined && valor >= max) ? styles.buttonDisabled : {}),\n }}\n onMouseEnter={(e) => {\n if (!disabled && (max === undefined || valor < max)) {\n e.currentTarget.style.background = styles.buttonHover.background!;\n e.currentTarget.style.boxShadow = styles.buttonHover.boxShadow!;\n e.currentTarget.style.transform = styles.buttonHover.transform!;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = styles.button.background!;\n e.currentTarget.style.boxShadow = styles.button.boxShadow!;\n e.currentTarget.style.transform = '';\n }}\n onMouseDown={(e) => {\n if (!disabled && (max === undefined || valor < max)) {\n e.currentTarget.style.background = styles.buttonActive.background!;\n e.currentTarget.style.transform = styles.buttonActive.transform!;\n }\n }}\n onMouseUp={(e) => {\n if (!disabled && (max === undefined || valor < max)) {\n e.currentTarget.style.background = styles.buttonHover.background!;\n e.currentTarget.style.transform = styles.buttonHover.transform!;\n }\n }}\n onClick={() => handleChange(valor + 1)}\n disabled={disabled || (max !== undefined && valor >= max)}\n aria-label=\"Aumentar quantidade\">\n <svg style={{ width: '24px', height: '24px' }} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2.5} d=\"M12 4v16m8-8H4\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n\n {/* Teclado de Atalhos */}\n {mostrarAtalhos && (\n <div style={styles.shortcutsContainer}>\n <div style={styles.shortcutsGrid}>\n {atalhos\n .slice()\n .sort((a, b) => a - b)\n .filter((v) => {\n // Mostra sempre atalhos positivos\n if (v > 0) return true;\n // Para atalhos negativos, só mostra se o valor atual é maior que o valor absoluto\n return valor > Math.abs(v);\n })\n .map((v, i) => {\n const isPositive = v > 0;\n const baseStyle = {\n ...styles.shortcutButton,\n ...(disabled ? styles.shortcutButtonDisabled : {}),\n ...(isPositive ? styles.positiveShortcut : styles.negativeShortcut),\n };\n\n return (\n <button\n key={i}\n type=\"button\"\n style={baseStyle}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.background = isPositive\n ? styles.positiveShortcutHover.background!\n : styles.negativeShortcutHover.background!;\n e.currentTarget.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = baseStyle.background!;\n e.currentTarget.style.boxShadow = baseStyle.boxShadow!;\n e.currentTarget.style.transform = '';\n }}\n onMouseDown={(e) => {\n if (!disabled) {\n e.currentTarget.style.background = isPositive\n ? styles.positiveShortcutActive.background!\n : styles.negativeShortcutActive.background!;\n e.currentTarget.style.transform = styles.shortcutButtonActive.transform!;\n }\n }}\n onMouseUp={(e) => {\n if (!disabled) {\n e.currentTarget.style.background = isPositive\n ? styles.positiveShortcutHover.background!\n : styles.negativeShortcutHover.background!;\n e.currentTarget.style.transform = '';\n }\n }}\n onClick={() => handleAtalhoClick(v)}\n disabled={disabled}\n aria-label={`Adicionar ${v} ao contador`}>\n {v > 0 ? `+${v}` : v}\n </button>\n );\n })}\n </div>\n </div>\n )}\n\n {/* Botão Atualizar */}\n {addStockItem && (\n <div style={styles.addButtonContainer}>\n <button\n type=\"button\"\n onClick={handleAtualizarContagem}\n disabled={disabled}\n style={{\n ...styles.addButton,\n ...(disabled ? styles.addButtonDisabled : {}),\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.backgroundColor = styles.addButtonHover.backgroundColor!;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = styles.addButton.backgroundColor!;\n }}\n onMouseDown={(e) => {\n if (!disabled) {\n e.currentTarget.style.backgroundColor = styles.addButtonActive.backgroundColor!;\n }\n }}\n onMouseUp={(e) => {\n if (!disabled) {\n e.currentTarget.style.backgroundColor = styles.addButtonHover.backgroundColor!;\n }\n }}\n aria-label=\"Atualizar contagem\">\n <svg style={{ width: '24px', height: '24px' }} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 4v16m8-8H4\" />\n </svg>\n Adicionar contagem {valor * (unitMultiplier || 1)}\n {defaultUnit && ` ${defaultUnit}`}\n </button>\n </div>\n )}\n </div>\n );\n}\n"],"names":["QuantidadeInput","valor","onChange","min","max","disabled","className","atalhos","mostrarAtalhos","selectedUnit","addStockItem","unitMultiplier","defaultUnit","inputValue","setInputValue","useState","useEffect","handleChange","novoValor","valorFinal","isValidNumber","value","handleInputChange","e","numeroConvertido","handleBlur","styles","valorFormatado","handleAtalhoClick","v","handleAtualizarContagem","jsxs","jsx","a","b","i","isPositive","baseStyle"],"mappings":"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"}
|