maquinaweb-ui 2.64.0 → 2.65.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.
- package/dist/_virtual/rolldown_runtime.js +30 -0
- package/dist/container-animation/container-animation.d.ts +29 -0
- package/dist/container-animation/container-animation.d.ts.map +1 -0
- package/dist/container-animation/container-animation.js +57 -0
- package/dist/container-animation/container-animation.js.map +1 -0
- package/dist/container-animation.d.ts +2 -29
- package/dist/container-animation.js +2 -128
- package/dist/date-field/DateField.d.ts +35 -0
- package/dist/date-field/DateField.d.ts.map +1 -0
- package/dist/date-field/DateField.js +99 -0
- package/dist/date-field/DateField.js.map +1 -0
- package/dist/date-field.d.ts +2 -35
- package/dist/date-field.js +2 -96
- package/dist/date-hour-field/DateHourField.d.ts +35 -0
- package/dist/date-hour-field/DateHourField.d.ts.map +1 -0
- package/dist/date-hour-field/DateHourField.js +208 -0
- package/dist/date-hour-field/DateHourField.js.map +1 -0
- package/dist/date-hour-field/date-hour-field.utils.js +78 -0
- package/dist/date-hour-field/date-hour-field.utils.js.map +1 -0
- package/dist/date-hour-field/time-wheel-column.js +59 -0
- package/dist/date-hour-field/time-wheel-column.js.map +1 -0
- package/dist/date-hour-field.d.ts +2 -35
- package/dist/date-hour-field.js +2 -329
- package/dist/input-suggest/input-suggest.d.ts +77 -0
- package/dist/input-suggest/input-suggest.d.ts.map +1 -0
- package/dist/input-suggest/input-suggest.js +188 -0
- package/dist/input-suggest/input-suggest.js.map +1 -0
- package/dist/input-suggest.d.ts +2 -77
- package/dist/input-suggest.js +2 -183
- package/dist/kanban-dnd/constants.js +28 -0
- package/dist/kanban-dnd/constants.js.map +1 -0
- package/dist/kanban-dnd/context.d.ts +23 -0
- package/dist/kanban-dnd/context.d.ts.map +1 -0
- package/dist/kanban-dnd/context.js +62 -0
- package/dist/kanban-dnd/context.js.map +1 -0
- package/dist/kanban-dnd/drag-preview.js +58 -0
- package/dist/kanban-dnd/drag-preview.js.map +1 -0
- package/dist/kanban-dnd/drop-animation.js +129 -0
- package/dist/kanban-dnd/drop-animation.js.map +1 -0
- package/dist/kanban-dnd/kanban-card-item.d.ts +14 -0
- package/dist/kanban-dnd/kanban-card-item.d.ts.map +1 -0
- package/dist/kanban-dnd/kanban-card-item.js +72 -0
- package/dist/kanban-dnd/kanban-card-item.js.map +1 -0
- package/dist/kanban-dnd/kanban-dnd-monitor.d.ts +29 -0
- package/dist/kanban-dnd/kanban-dnd-monitor.d.ts.map +1 -0
- package/dist/kanban-dnd/kanban-dnd-monitor.js +292 -0
- package/dist/kanban-dnd/kanban-dnd-monitor.js.map +1 -0
- package/dist/kanban-dnd/kanban-dnd.d.ts +8 -0
- package/dist/kanban-dnd/kanban-dropzone.d.ts +13 -0
- package/dist/kanban-dnd/kanban-dropzone.d.ts.map +1 -0
- package/dist/kanban-dnd/kanban-dropzone.js +38 -0
- package/dist/kanban-dnd/kanban-dropzone.js.map +1 -0
- package/dist/kanban-dnd/kanban-selector.d.ts +12 -0
- package/dist/kanban-dnd/kanban-selector.d.ts.map +1 -0
- package/dist/kanban-dnd/kanban-selector.js +113 -0
- package/dist/kanban-dnd/kanban-selector.js.map +1 -0
- package/dist/kanban-dnd/move-cards.d.ts +11 -0
- package/dist/kanban-dnd/move-cards.d.ts.map +1 -0
- package/dist/kanban-dnd/move-cards.js +67 -0
- package/dist/kanban-dnd/move-cards.js.map +1 -0
- package/dist/kanban-dnd/types.d.ts +73 -0
- package/dist/kanban-dnd/types.d.ts.map +1 -0
- package/dist/kanban-dnd/use-kanban-column-dnd.d.ts +11 -0
- package/dist/kanban-dnd/use-kanban-column-dnd.d.ts.map +1 -0
- package/dist/kanban-dnd/use-kanban-column-dnd.js +37 -0
- package/dist/kanban-dnd/use-kanban-column-dnd.js.map +1 -0
- package/dist/kanban-dnd/use-kanban-selector-auto-scroll.js +127 -0
- package/dist/kanban-dnd/use-kanban-selector-auto-scroll.js.map +1 -0
- package/dist/kanban-dnd/utils.js +12 -0
- package/dist/kanban-dnd/utils.js.map +1 -0
- package/dist/kanban-dnd.d.ts +10 -155
- package/dist/kanban-dnd.js +9 -959
- package/dist/landing-content.d.ts +2 -0
- package/dist/landing-content.js +3 -0
- package/dist/landing-text/client-landing-text.js +119 -0
- package/dist/landing-text/client-landing-text.js.map +1 -0
- package/dist/landing-text/landing-content.d.ts +55 -0
- package/dist/landing-text/landing-content.d.ts.map +1 -0
- package/dist/landing-text/landing-content.js +112 -0
- package/dist/landing-text/landing-content.js.map +1 -0
- package/dist/landing-text/landing-text.d.ts +26 -0
- package/dist/landing-text/landing-text.d.ts.map +1 -0
- package/dist/landing-text/landing-text.js +34 -0
- package/dist/landing-text/landing-text.js.map +1 -0
- package/dist/landing-text/server-landing-text.d.ts +24 -0
- package/dist/landing-text/server-landing-text.d.ts.map +1 -0
- package/dist/landing-text/server-landing-text.js +18 -0
- package/dist/landing-text/server-landing-text.js.map +1 -0
- package/dist/landing-text.d.ts +3 -96
- package/dist/landing-text.js +3 -950
- package/dist/node_modules/cookie/dist/index.js +300 -0
- package/dist/node_modules/cookie/dist/index.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/client/context.js +111 -0
- package/dist/node_modules/cookies-next/lib/client/context.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/client/cookie-functions.js +85 -0
- package/dist/node_modules/cookies-next/lib/client/cookie-functions.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/client/hooks.js +129 -0
- package/dist/node_modules/cookies-next/lib/client/hooks.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/client/index.js +44 -0
- package/dist/node_modules/cookies-next/lib/client/index.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/common/types.js +12 -0
- package/dist/node_modules/cookies-next/lib/common/types.js.map +1 -0
- package/dist/node_modules/cookies-next/lib/common/utils.js +35 -0
- package/dist/node_modules/cookies-next/lib/common/utils.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/viewport/index.js +40 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/viewport/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-in-view.js +34 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-in-view.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js +16 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -0
- package/dist/page-header/page-header.d.ts +16 -0
- package/dist/page-header/page-header.d.ts.map +1 -0
- package/dist/page-header/page-header.js +23 -0
- package/dist/page-header/page-header.js.map +1 -0
- package/dist/page-header.d.ts +2 -16
- package/dist/page-header.js +2 -24
- package/dist/remote-selector/remote-selector.d.ts +64 -0
- package/dist/remote-selector/remote-selector.d.ts.map +1 -0
- package/dist/remote-selector/remote-selector.js +114 -0
- package/dist/remote-selector/remote-selector.js.map +1 -0
- package/dist/remote-selector.d.ts +2 -107
- package/dist/remote-selector.js +2 -575
- package/dist/split-text-poor/split-text-poor.d.ts +59 -0
- package/dist/split-text-poor/split-text-poor.d.ts.map +1 -0
- package/dist/split-text-poor/split-text-poor.js +79 -0
- package/dist/split-text-poor/split-text-poor.js.map +1 -0
- package/dist/split-text-poor.d.ts +2 -59
- package/dist/split-text-poor.js +2 -75
- package/dist/src/hooks/get-mask-options.js +91 -0
- package/dist/src/hooks/get-mask-options.js.map +1 -0
- package/dist/src/hooks/is-server.js +7 -0
- package/dist/src/hooks/is-server.js.map +1 -0
- package/dist/src/hooks/module-interop.js +15 -0
- package/dist/src/hooks/module-interop.js.map +1 -0
- package/dist/src/hooks/use-money-input.js +39 -0
- package/dist/src/hooks/use-money-input.js.map +1 -0
- package/dist/{with-mask-BLZS7b9k.d.ts → src/hooks/with-mask.d.ts} +2 -2
- package/dist/src/hooks/with-mask.d.ts.map +1 -0
- package/dist/src/hooks/with-mask.js +16 -0
- package/dist/src/hooks/with-mask.js.map +1 -0
- package/dist/{utils-C8_amEgK.js → src/lib/utils.js} +2 -2
- package/dist/src/lib/utils.js.map +1 -0
- package/dist/text-field/TextField.d.ts +103 -0
- package/dist/text-field/TextField.d.ts.map +1 -0
- package/dist/text-field/TextField.js +198 -0
- package/dist/text-field/TextField.js.map +1 -0
- package/dist/text-field.d.ts +2 -103
- package/dist/text-field.js +2 -223
- package/dist/toggle-field/ToggleField.d.ts +19 -0
- package/dist/toggle-field/ToggleField.d.ts.map +1 -0
- package/dist/toggle-field/ToggleField.js +47 -0
- package/dist/toggle-field/ToggleField.js.map +1 -0
- package/dist/toggle-field/ToggleGroup.d.ts +34 -0
- package/dist/toggle-field/ToggleGroup.d.ts.map +1 -0
- package/dist/toggle-field/ToggleGroup.js +128 -0
- package/dist/toggle-field/ToggleGroup.js.map +1 -0
- package/dist/toggle-field.d.ts +2 -49
- package/dist/toggle-field.js +2 -162
- package/dist/ui/badge.js +26 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/{button-B3nLhVyZ.js → ui/button.js} +3 -3
- package/dist/ui/button.js.map +1 -0
- package/dist/{input-date-field-DToF0FmE.js → ui/calendar.js} +8 -51
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/checkbox.js +71 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/command.js +60 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/content-help.js +27 -0
- package/dist/ui/content-help.js.map +1 -0
- package/dist/ui/form.js +82 -0
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/input-date-field.js +52 -0
- package/dist/ui/input-date-field.js.map +1 -0
- package/dist/ui/input-help.js +27 -0
- package/dist/ui/input-help.js.map +1 -0
- package/dist/ui/input.js +16 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/{label-Bkg7B2j8.js → ui/label.js} +6 -3
- package/dist/ui/label.js.map +1 -0
- package/dist/{popover-D9IIn0lW.js → ui/popover.js} +6 -3
- package/dist/ui/popover.js.map +1 -0
- package/dist/{scroll-area-C1kW_eA9.js → ui/scroll-area.js} +6 -3
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/selector.d.ts +48 -0
- package/dist/ui/selector.d.ts.map +1 -0
- package/dist/ui/selector.js +243 -0
- package/dist/ui/selector.js.map +1 -0
- package/dist/ui/tooltip.js +41 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/tree-item-renderer.js +114 -0
- package/dist/ui/tree-item-renderer.js.map +1 -0
- package/package.json +5 -1
- package/dist/button-B3nLhVyZ.js.map +0 -1
- package/dist/container-animation.d.ts.map +0 -1
- package/dist/container-animation.js.map +0 -1
- package/dist/date-field.d.ts.map +0 -1
- package/dist/date-field.js.map +0 -1
- package/dist/date-hour-field.d.ts.map +0 -1
- package/dist/date-hour-field.js.map +0 -1
- package/dist/input-Bs61WBGW.js +0 -133
- package/dist/input-Bs61WBGW.js.map +0 -1
- package/dist/input-date-field-DToF0FmE.js.map +0 -1
- package/dist/input-help-D1JqF0YH.js +0 -149
- package/dist/input-help-D1JqF0YH.js.map +0 -1
- package/dist/input-suggest.d.ts.map +0 -1
- package/dist/input-suggest.js.map +0 -1
- package/dist/kanban-dnd.d.ts.map +0 -1
- package/dist/kanban-dnd.js.map +0 -1
- package/dist/label-Bkg7B2j8.js.map +0 -1
- package/dist/landing-text.d.ts.map +0 -1
- package/dist/landing-text.js.map +0 -1
- package/dist/page-header.d.ts.map +0 -1
- package/dist/page-header.js.map +0 -1
- package/dist/popover-D9IIn0lW.js.map +0 -1
- package/dist/remote-selector.d.ts.map +0 -1
- package/dist/remote-selector.js.map +0 -1
- package/dist/scroll-area-C1kW_eA9.js.map +0 -1
- package/dist/split-text-poor.d.ts.map +0 -1
- package/dist/split-text-poor.js.map +0 -1
- package/dist/text-field.d.ts.map +0 -1
- package/dist/text-field.js.map +0 -1
- package/dist/toggle-field.d.ts.map +0 -1
- package/dist/toggle-field.js.map +0 -1
- package/dist/utils-C8_amEgK.js.map +0 -1
- package/dist/with-mask-BLZS7b9k.d.ts.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
|
|
3
|
+
//#region rolldown:runtime
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __commonJS = (cb, mod) => function() {
|
|
11
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
15
|
+
key = keys[i];
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: ((k) => from[k]).bind(null, key),
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { __commonJS, __require, __toESM };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ComponentProps, ElementType } from "react";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/container-animation/container-animation.d.ts
|
|
5
|
+
type ContainerAnimationProps<T extends ElementType = 'div'> = ComponentProps<'div'> & ComponentProps<T> & {
|
|
6
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
7
|
+
delay?: number;
|
|
8
|
+
space?: number;
|
|
9
|
+
duration?: number;
|
|
10
|
+
distance?: [number, number];
|
|
11
|
+
hideNotInView?: boolean;
|
|
12
|
+
as?: T | string;
|
|
13
|
+
className?: string;
|
|
14
|
+
};
|
|
15
|
+
declare const ContainerAnimation: <T extends ElementType = "div">({
|
|
16
|
+
className,
|
|
17
|
+
children,
|
|
18
|
+
position,
|
|
19
|
+
delay,
|
|
20
|
+
space,
|
|
21
|
+
duration,
|
|
22
|
+
as: As,
|
|
23
|
+
distance,
|
|
24
|
+
hideNotInView,
|
|
25
|
+
...props
|
|
26
|
+
}: ContainerAnimationProps<T>) => react_jsx_runtime0.JSX.Element;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { ContainerAnimation, ContainerAnimationProps };
|
|
29
|
+
//# sourceMappingURL=container-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-animation.d.ts","names":[],"sources":["../../src/components/container-animation/container-animation.tsx"],"sourcesContent":[],"mappings":";;;;KAiDY,kCAAkC,uBAC5C,wBACE,eAAe;;;EAFP,KAAA,CAAA,EAAA,MAAA;EAAkC,QAAA,CAAA,EAAA,MAAA;EAC5C,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA;EACiB,aAAA,CAAA,EAAA,OAAA;EAAf,EAAA,CAAA,EAOO,CAPP,GAAA,MAAA;EAOO,SAAA,CAAA,EAAA,MAAA;CAAC;AAEN,cAEA,kBAkCL,EAAA,CAAA,UAlCqC,WAkCrC,GAAA,KAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA;EAAA,QAAA;EAAA,KAAA;EAAA,KAAA;EAAA,QAAA;EAAA,EAAA,EAlC0D,EAkC1D;EAAA,QAAA;EAAA,aAAA;EAAA,GAAA;AAAA,CAAA,EAvBE,uBAuBF,CAvB0B,CAuB1B,CAAA,EAAA,GAvB4B,kBAAA,CAAA,GAAA,CAAA,OAuB5B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { cn } from "../src/lib/utils.js";
|
|
5
|
+
import { useInView } from "../node_modules/framer-motion/dist/es/utils/use-in-view.js";
|
|
6
|
+
import { useRef } from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import * as motion from "motion/react-m";
|
|
9
|
+
|
|
10
|
+
//#region src/components/container-animation/container-animation.tsx
|
|
11
|
+
const getVariants = (position, space, delay) => {
|
|
12
|
+
const directions = {
|
|
13
|
+
top: { transform: `translateY(${space}px)` },
|
|
14
|
+
bottom: { transform: `translateY(-${space}px)` },
|
|
15
|
+
left: { transform: `translateX(${space}px)` },
|
|
16
|
+
right: { transform: `translateX(-${space}px)` }
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
hidden: {
|
|
20
|
+
opacity: 0,
|
|
21
|
+
filter: "blur(6px)",
|
|
22
|
+
...directions[position] || directions.top
|
|
23
|
+
},
|
|
24
|
+
visible: {
|
|
25
|
+
opacity: 1,
|
|
26
|
+
filter: "blur(0px)",
|
|
27
|
+
transform: "translateY(0px) translateX(0px)",
|
|
28
|
+
transition: {
|
|
29
|
+
delay,
|
|
30
|
+
duration: .5,
|
|
31
|
+
staggerChildren: .1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const ContainerAnimation = ({ className, children, position = "top", delay = 0, space = 20, duration = .8, as: As = "div", distance = [95, 5], hideNotInView = false,...props }) => {
|
|
37
|
+
const ref = useRef(null);
|
|
38
|
+
const isInView = useInView(ref, {
|
|
39
|
+
once: true,
|
|
40
|
+
margin: `-${100 - (distance[0] || 0)}% 0% -${distance[1] || 0}% 0%`
|
|
41
|
+
});
|
|
42
|
+
const variants = getVariants(position, space, delay);
|
|
43
|
+
return /* @__PURE__ */ jsx(motion.div, {
|
|
44
|
+
animate: isInView ? "visible" : "hidden",
|
|
45
|
+
className: cn("initial-opacity", className),
|
|
46
|
+
initial: "hidden",
|
|
47
|
+
transition: { duration },
|
|
48
|
+
variants,
|
|
49
|
+
...props,
|
|
50
|
+
ref,
|
|
51
|
+
children: (!hideNotInView || isInView) && children
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { ContainerAnimation };
|
|
57
|
+
//# sourceMappingURL=container-animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-animation.js","names":[],"sources":["../../src/components/container-animation/container-animation.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentProps, type ElementType, useRef } from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { useInView } from 'motion/react';\nimport * as motion from 'motion/react-m';\n\nconst getVariants = (\n position: 'top' | 'bottom' | 'left' | 'right',\n space: number,\n delay: number\n) => {\n const directions = {\n top: {\n transform: `translateY(${space}px)`,\n },\n bottom: {\n transform: `translateY(-${space}px)`,\n },\n left: {\n transform: `translateX(${space}px)`,\n },\n right: {\n transform: `translateX(-${space}px)`,\n },\n };\n\n const dir = directions[position] || directions.top;\n\n return {\n hidden: {\n opacity: 0,\n filter: 'blur(6px)',\n ...dir,\n },\n visible: {\n opacity: 1,\n filter: 'blur(0px)',\n transform: 'translateY(0px) translateX(0px)',\n transition: {\n delay,\n duration: 0.5,\n staggerChildren: 0.1,\n },\n },\n };\n};\n\nexport type ContainerAnimationProps<T extends ElementType = 'div'> =\n ComponentProps<'div'> &\n ComponentProps<T> & {\n position?: 'top' | 'bottom' | 'left' | 'right';\n delay?: number;\n space?: number;\n duration?: number;\n distance?: [number, number];\n hideNotInView?: boolean;\n as?: T | string;\n className?: string;\n };\n\nconst ContainerAnimation = <T extends ElementType = 'div'>({\n className,\n children,\n position = 'top',\n delay = 0,\n space = 20,\n duration = 0.8,\n as: As = 'div',\n distance = [95, 5],\n hideNotInView = false,\n ...props\n}: ContainerAnimationProps<T>) => {\n const ref = useRef<HTMLElement>(null);\n const isInView = useInView(ref, {\n once: true,\n margin:\n `-${100 - (distance[0] || 0)}% 0% -${(distance[1] as number) || 0}% 0%` as any,\n });\n\n const variants = getVariants(position, space, delay);\n\n return (\n <motion.div\n animate={isInView ? 'visible' : 'hidden'}\n className={cn('initial-opacity', className)}\n initial=\"hidden\"\n transition={{ duration }}\n variants={variants}\n {...props}\n ref={ref}\n >\n {(!hideNotInView || isInView) && children}\n </motion.div>\n );\n};\n\nexport { ContainerAnimation };\n"],"mappings":";;;;;;;;;;AAQA,MAAM,eACJ,UACA,OACA,UACG;CACH,MAAM,aAAa;EACjB,KAAK,EACH,WAAW,cAAc,MAAM,MAChC;EACD,QAAQ,EACN,WAAW,eAAe,MAAM,MACjC;EACD,MAAM,EACJ,WAAW,cAAc,MAAM,MAChC;EACD,OAAO,EACL,WAAW,eAAe,MAAM,MACjC;EACF;AAID,QAAO;EACL,QAAQ;GACN,SAAS;GACT,QAAQ;GACR,GANQ,WAAW,aAAa,WAAW;GAO5C;EACD,SAAS;GACP,SAAS;GACT,QAAQ;GACR,WAAW;GACX,YAAY;IACV;IACA,UAAU;IACV,iBAAiB;IAClB;GACF;EACF;;AAgBH,MAAM,sBAAqD,EACzD,WACA,UACA,WAAW,OACX,QAAQ,GACR,QAAQ,IACR,WAAW,IACX,IAAI,KAAK,OACT,WAAW,CAAC,IAAI,EAAE,EAClB,gBAAgB,MAChB,GAAG,YAC6B;CAChC,MAAM,MAAM,OAAoB,KAAK;CACrC,MAAM,WAAW,UAAU,KAAK;EAC9B,MAAM;EACN,QACE,IAAI,OAAO,SAAS,MAAM,GAAG,QAAS,SAAS,MAAiB,EAAE;EACrE,CAAC;CAEF,MAAM,WAAW,YAAY,UAAU,OAAO,MAAM;AAEpD,QACE,oBAAC,OAAO;EACN,SAAS,WAAW,YAAY;EAChC,WAAW,GAAG,mBAAmB,UAAU;EAC3C,SAAQ;EACR,YAAY,EAAE,UAAU;EACd;EACV,GAAI;EACC;aAEH,CAAC,iBAAiB,aAAa;GACtB"}
|
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#region src/components/container-animation/container-animation.d.ts
|
|
5
|
-
type ContainerAnimationProps<T extends ElementType = 'div'> = ComponentProps<'div'> & ComponentProps<T> & {
|
|
6
|
-
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
7
|
-
delay?: number;
|
|
8
|
-
space?: number;
|
|
9
|
-
duration?: number;
|
|
10
|
-
distance?: [number, number];
|
|
11
|
-
hideNotInView?: boolean;
|
|
12
|
-
as?: T | string;
|
|
13
|
-
className?: string;
|
|
14
|
-
};
|
|
15
|
-
declare const ContainerAnimation: <T extends ElementType = "div">({
|
|
16
|
-
className,
|
|
17
|
-
children,
|
|
18
|
-
position,
|
|
19
|
-
delay,
|
|
20
|
-
space,
|
|
21
|
-
duration,
|
|
22
|
-
as: As,
|
|
23
|
-
distance,
|
|
24
|
-
hideNotInView,
|
|
25
|
-
...props
|
|
26
|
-
}: ContainerAnimationProps<T>) => react_jsx_runtime2.JSX.Element;
|
|
27
|
-
//#endregion
|
|
28
|
-
export { ContainerAnimation, type ContainerAnimationProps };
|
|
29
|
-
//# sourceMappingURL=container-animation.d.ts.map
|
|
1
|
+
import { ContainerAnimation, ContainerAnimationProps } from "./container-animation/container-animation.js";
|
|
2
|
+
export { ContainerAnimation, type ContainerAnimationProps };
|
|
@@ -1,132 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { useEffect, useRef, useState } from "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import * as motion from "motion/react-m";
|
|
4
|
+
import { ContainerAnimation } from "./container-animation/container-animation.js";
|
|
8
5
|
|
|
9
|
-
|
|
10
|
-
function resolveElements(elementOrSelector, scope, selectorCache) {
|
|
11
|
-
if (elementOrSelector == null) return [];
|
|
12
|
-
if (elementOrSelector instanceof EventTarget) return [elementOrSelector];
|
|
13
|
-
else if (typeof elementOrSelector === "string") {
|
|
14
|
-
let root = document;
|
|
15
|
-
if (scope) root = scope.current;
|
|
16
|
-
const elements = selectorCache?.[elementOrSelector] ?? root.querySelectorAll(elementOrSelector);
|
|
17
|
-
return elements ? Array.from(elements) : [];
|
|
18
|
-
}
|
|
19
|
-
return Array.from(elementOrSelector).filter((element) => element != null);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs
|
|
24
|
-
const thresholds = {
|
|
25
|
-
some: 0,
|
|
26
|
-
all: 1
|
|
27
|
-
};
|
|
28
|
-
function inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = "some" } = {}) {
|
|
29
|
-
const elements = resolveElements(elementOrSelector);
|
|
30
|
-
const activeIntersections = /* @__PURE__ */ new WeakMap();
|
|
31
|
-
const onIntersectionChange = (entries) => {
|
|
32
|
-
entries.forEach((entry) => {
|
|
33
|
-
const onEnd = activeIntersections.get(entry.target);
|
|
34
|
-
/**
|
|
35
|
-
* If there's no change to the intersection, we don't need to
|
|
36
|
-
* do anything here.
|
|
37
|
-
*/
|
|
38
|
-
if (entry.isIntersecting === Boolean(onEnd)) return;
|
|
39
|
-
if (entry.isIntersecting) {
|
|
40
|
-
const newOnEnd = onStart(entry.target, entry);
|
|
41
|
-
if (typeof newOnEnd === "function") activeIntersections.set(entry.target, newOnEnd);
|
|
42
|
-
else observer.unobserve(entry.target);
|
|
43
|
-
} else if (typeof onEnd === "function") {
|
|
44
|
-
onEnd(entry);
|
|
45
|
-
activeIntersections.delete(entry.target);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
const observer = new IntersectionObserver(onIntersectionChange, {
|
|
50
|
-
root,
|
|
51
|
-
rootMargin,
|
|
52
|
-
threshold: typeof amount === "number" ? amount : thresholds[amount]
|
|
53
|
-
});
|
|
54
|
-
elements.forEach((element) => observer.observe(element));
|
|
55
|
-
return () => observer.disconnect();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
//#endregion
|
|
59
|
-
//#region node_modules/framer-motion/dist/es/utils/use-in-view.mjs
|
|
60
|
-
function useInView(ref, { root, margin, amount, once = false, initial = false } = {}) {
|
|
61
|
-
const [isInView, setInView] = useState(initial);
|
|
62
|
-
useEffect(() => {
|
|
63
|
-
if (!ref.current || once && isInView) return;
|
|
64
|
-
const onEnter = () => {
|
|
65
|
-
setInView(true);
|
|
66
|
-
return once ? void 0 : () => setInView(false);
|
|
67
|
-
};
|
|
68
|
-
const options = {
|
|
69
|
-
root: root && root.current || void 0,
|
|
70
|
-
margin,
|
|
71
|
-
amount
|
|
72
|
-
};
|
|
73
|
-
return inView(ref.current, onEnter, options);
|
|
74
|
-
}, [
|
|
75
|
-
root,
|
|
76
|
-
ref,
|
|
77
|
-
margin,
|
|
78
|
-
once,
|
|
79
|
-
amount
|
|
80
|
-
]);
|
|
81
|
-
return isInView;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
//#region src/components/container-animation/container-animation.tsx
|
|
86
|
-
const getVariants = (position, space, delay) => {
|
|
87
|
-
const directions = {
|
|
88
|
-
top: { transform: `translateY(${space}px)` },
|
|
89
|
-
bottom: { transform: `translateY(-${space}px)` },
|
|
90
|
-
left: { transform: `translateX(${space}px)` },
|
|
91
|
-
right: { transform: `translateX(-${space}px)` }
|
|
92
|
-
};
|
|
93
|
-
return {
|
|
94
|
-
hidden: {
|
|
95
|
-
opacity: 0,
|
|
96
|
-
filter: "blur(6px)",
|
|
97
|
-
...directions[position] || directions.top
|
|
98
|
-
},
|
|
99
|
-
visible: {
|
|
100
|
-
opacity: 1,
|
|
101
|
-
filter: "blur(0px)",
|
|
102
|
-
transform: "translateY(0px) translateX(0px)",
|
|
103
|
-
transition: {
|
|
104
|
-
delay,
|
|
105
|
-
duration: .5,
|
|
106
|
-
staggerChildren: .1
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
const ContainerAnimation = ({ className, children, position = "top", delay = 0, space = 20, duration = .8, as: As = "div", distance = [95, 5], hideNotInView = false,...props }) => {
|
|
112
|
-
const ref = useRef(null);
|
|
113
|
-
const isInView = useInView(ref, {
|
|
114
|
-
once: true,
|
|
115
|
-
margin: `-${100 - (distance[0] || 0)}% 0% -${distance[1] || 0}% 0%`
|
|
116
|
-
});
|
|
117
|
-
const variants = getVariants(position, space, delay);
|
|
118
|
-
return /* @__PURE__ */ jsx(motion.div, {
|
|
119
|
-
animate: isInView ? "visible" : "hidden",
|
|
120
|
-
className: cn("initial-opacity", className),
|
|
121
|
-
initial: "hidden",
|
|
122
|
-
transition: { duration },
|
|
123
|
-
variants,
|
|
124
|
-
...props,
|
|
125
|
-
ref,
|
|
126
|
-
children: (!hideNotInView || isInView) && children
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
//#endregion
|
|
131
|
-
export { ContainerAnimation };
|
|
132
|
-
//# sourceMappingURL=container-animation.js.map
|
|
6
|
+
export { ContainerAnimation };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FieldPath, FieldValues, UseControllerProps } from "react-hook-form";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { Matcher } from "react-day-picker";
|
|
4
|
+
|
|
5
|
+
//#region src/components/date-field/DateField.d.ts
|
|
6
|
+
interface DateFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<UseControllerProps<TFieldValues, TFieldName>, 'disabled'> {
|
|
7
|
+
label: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
disabled?: Matcher | Matcher[] | undefined;
|
|
12
|
+
inputDisabled?: boolean;
|
|
13
|
+
initialValue?: Date;
|
|
14
|
+
endMonth?: Date;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
help?: string;
|
|
17
|
+
/** Quando true, o valor será formatado como string YYYY-MM-DD ao invés de Date com horário */
|
|
18
|
+
dateOnly?: boolean;
|
|
19
|
+
}
|
|
20
|
+
declare function DateField<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
|
|
21
|
+
name,
|
|
22
|
+
label,
|
|
23
|
+
description,
|
|
24
|
+
inputDisabled,
|
|
25
|
+
endMonth,
|
|
26
|
+
className,
|
|
27
|
+
disabled,
|
|
28
|
+
initialValue,
|
|
29
|
+
required,
|
|
30
|
+
help,
|
|
31
|
+
dateOnly
|
|
32
|
+
}: DateFieldProps<TFieldValues, TFieldName>): react_jsx_runtime0.JSX.Element;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { DateField, DateFieldProps };
|
|
35
|
+
//# sourceMappingURL=DateField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateField.d.ts","names":[],"sources":["../../src/components/date-field/DateField.tsx"],"sourcesContent":[],"mappings":";;;;;UA4BiB,oCACM,cAAc,gCAChB,UAAU,gBAAgB,UAAU,uBAC/C,KAAK,mBAAmB,cAAc;;;EAH/B,WAAA,CAAA,EAAA,MAAc;EACR,SAAA,CAAA,EAAA,MAAA;EAAc,QAAA,CAAA,EAOxB,OAPwB,GAOd,OAPc,EAAA,GAAA,SAAA;EACN,aAAA,CAAA,EAAA,OAAA;EAAV,YAAA,CAAA,EAQJ,IARI;EAAoC,QAAA,CAAA,EAS5C,IAT4C;EAAV,QAAA,CAAA,EAAA,OAAA;EACb,IAAA,CAAA,EAAA,MAAA;EAAc;EAAjC,QAAA,CAAA,EAAA,OAAA;;iBAeN,SAVc,CAAA,qBAWA,WAXA,GAWc,WAXd,EAAA,mBAYF,SAZE,CAYQ,YAZR,CAAA,GAYwB,SAZxB,CAYkC,YAZlC,CAAA,CAAA,CAAA;EAAA,IAAA;EAAA,KAAA;EAAA,WAAA;EAAA,aAAA;EAAA,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,YAAA;EAAA,QAAA;EAAA,IAAA;EAAA;AAAA,CAAA,EAyBpB,cAzBoB,CAyBL,YAzBK,EAyBS,UAzBT,CAAA,CAAA,EAyBoB,kBAAA,CAAA,GAAA,CAAA,OAzBpB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { cn } from "../src/lib/utils.js";
|
|
5
|
+
import { FormDescription, FormFieldContext, FormItem, FormLabel, FormMessage } from "../ui/form.js";
|
|
6
|
+
import { InputHelp } from "../ui/input-help.js";
|
|
7
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover.js";
|
|
8
|
+
import { Calendar } from "../ui/calendar.js";
|
|
9
|
+
import { InputDateField } from "../ui/input-date-field.js";
|
|
10
|
+
import { useController, useFormContext } from "react-hook-form";
|
|
11
|
+
import { useState } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { ptBR } from "date-fns/locale";
|
|
14
|
+
|
|
15
|
+
//#region src/components/date-field/DateField.tsx
|
|
16
|
+
function DateField({ name, label, description, inputDisabled, endMonth, className, disabled, initialValue, required, help, dateOnly }) {
|
|
17
|
+
const form = useFormContext();
|
|
18
|
+
const { field, fieldState } = useController({
|
|
19
|
+
name,
|
|
20
|
+
defaultValue: initialValue,
|
|
21
|
+
rules: { required },
|
|
22
|
+
control: form.control
|
|
23
|
+
});
|
|
24
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
25
|
+
const handleSelect = (date) => {
|
|
26
|
+
if (dateOnly && date) {
|
|
27
|
+
const year = date.getFullYear();
|
|
28
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
29
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
30
|
+
field.onChange(`${year}-${month}-${day}`);
|
|
31
|
+
} else field.onChange(date);
|
|
32
|
+
setIsOpen(false);
|
|
33
|
+
};
|
|
34
|
+
return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
|
|
35
|
+
value: { name },
|
|
36
|
+
children: /* @__PURE__ */ jsxs(FormItem, {
|
|
37
|
+
className,
|
|
38
|
+
id: `date-${name.replace(".", "-")}`,
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ jsxs("div", {
|
|
41
|
+
className: "flex items-end gap-1.5",
|
|
42
|
+
children: [/* @__PURE__ */ jsxs(FormLabel, {
|
|
43
|
+
htmlFor: name,
|
|
44
|
+
children: [
|
|
45
|
+
label,
|
|
46
|
+
":",
|
|
47
|
+
required && /* @__PURE__ */ jsx("span", {
|
|
48
|
+
className: "text-red-500 text-lg leading-[1px]",
|
|
49
|
+
children: "*"
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
}), /* @__PURE__ */ jsx(InputHelp, {
|
|
53
|
+
help,
|
|
54
|
+
name
|
|
55
|
+
})]
|
|
56
|
+
}),
|
|
57
|
+
/* @__PURE__ */ jsxs(Popover, {
|
|
58
|
+
onOpenChange: setIsOpen,
|
|
59
|
+
open: !inputDisabled && isOpen,
|
|
60
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
61
|
+
className: "w-full mt-0! outline-hidden",
|
|
62
|
+
onClick: (event) => {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
event.stopPropagation();
|
|
65
|
+
},
|
|
66
|
+
tabIndex: -1,
|
|
67
|
+
children: /* @__PURE__ */ jsx(InputDateField, {
|
|
68
|
+
className: cn(fieldState.error && "border-destructive"),
|
|
69
|
+
dateOnly,
|
|
70
|
+
disabled: inputDisabled,
|
|
71
|
+
field,
|
|
72
|
+
id: name,
|
|
73
|
+
onFinish: () => setIsOpen(false),
|
|
74
|
+
onFocus: () => setIsOpen(true)
|
|
75
|
+
})
|
|
76
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
77
|
+
className: "flex justify-center w-fit p-0",
|
|
78
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
79
|
+
children: /* @__PURE__ */ jsx(Calendar, {
|
|
80
|
+
defaultMonth: field.value || /* @__PURE__ */ new Date(),
|
|
81
|
+
disabled,
|
|
82
|
+
endMonth,
|
|
83
|
+
locale: ptBR,
|
|
84
|
+
mode: "single",
|
|
85
|
+
onSelect: handleSelect,
|
|
86
|
+
selected: field.value
|
|
87
|
+
}, `${name}-${field.value?.toString()}`)
|
|
88
|
+
})]
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ jsx(FormDescription, { children: description }),
|
|
91
|
+
fieldState.error && /* @__PURE__ */ jsx(FormMessage, {})
|
|
92
|
+
]
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
//#endregion
|
|
98
|
+
export { DateField };
|
|
99
|
+
//# sourceMappingURL=DateField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateField.js","names":[],"sources":["../../src/components/date-field/DateField.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport {\n type FieldPath,\n type FieldValues,\n type UseControllerProps,\n useController,\n useFormContext,\n} from 'react-hook-form';\n\nimport { Calendar } from '@/ui/calendar';\nimport {\n FormDescription,\n FormFieldContext,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/ui/form';\nimport { InputDateField } from '@/ui/input-date-field';\nimport { InputHelp } from '@/ui/input-help';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ui/popover';\n\nimport { cn } from '@/lib/utils';\nimport { ptBR } from 'date-fns/locale';\nimport type { Matcher } from 'react-day-picker';\n\nexport interface DateFieldProps<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> extends Omit<UseControllerProps<TFieldValues, TFieldName>, 'disabled'> {\n label: string;\n description?: string;\n placeholder?: string;\n className?: string;\n disabled?: Matcher | Matcher[] | undefined;\n inputDisabled?: boolean;\n initialValue?: Date;\n endMonth?: Date;\n required?: boolean;\n help?: string;\n /** Quando true, o valor será formatado como string YYYY-MM-DD ao invés de Date com horário */\n dateOnly?: boolean;\n}\n\nfunction DateField<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n label,\n description,\n inputDisabled,\n endMonth,\n className,\n disabled,\n initialValue,\n required,\n help,\n dateOnly,\n}: DateFieldProps<TFieldValues, TFieldName>) {\n const form = useFormContext();\n const { field, fieldState } = useController({\n name,\n defaultValue: initialValue as any,\n rules: { required },\n control: form.control,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n const handleSelect = (date: Date | undefined) => {\n if (dateOnly && date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n field.onChange(`${year}-${month}-${day}`);\n } else {\n field.onChange(date);\n }\n setIsOpen(false);\n };\n\n return (\n <FormFieldContext.Provider value={{ name }}>\n <FormItem className={className} id={`date-${name.replace('.', '-')}`}>\n <div className=\"flex items-end gap-1.5\">\n <FormLabel htmlFor={name}>\n {label}:\n {required && (\n <span className=\"text-red-500 text-lg leading-[1px]\">*</span>\n )}\n </FormLabel>\n\n <InputHelp help={help} name={name} />\n </div>\n\n <Popover onOpenChange={setIsOpen} open={!inputDisabled && isOpen}>\n <PopoverTrigger\n className=\"w-full mt-0! outline-hidden\"\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n tabIndex={-1}\n >\n <InputDateField\n className={cn(fieldState.error && 'border-destructive')}\n dateOnly={dateOnly}\n disabled={inputDisabled}\n field={field}\n id={name}\n onFinish={() => setIsOpen(false)}\n onFocus={() => setIsOpen(true)}\n />\n </PopoverTrigger>\n <PopoverContent\n className=\"flex justify-center w-fit p-0\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <Calendar\n defaultMonth={field.value || new Date()}\n disabled={disabled}\n endMonth={endMonth}\n key={`${name}-${field.value?.toString()}`}\n locale={ptBR}\n mode=\"single\"\n onSelect={handleSelect}\n selected={field.value}\n />\n </PopoverContent>\n </Popover>\n\n <FormDescription>{description}</FormDescription>\n {fieldState.error && <FormMessage />}\n </FormItem>\n </FormFieldContext.Provider>\n );\n}\n\nexport { DateField };\n"],"mappings":";;;;;;;;;;;;;;;AA8CA,SAAS,UAGP,EACA,MACA,OACA,aACA,eACA,UACA,WACA,UACA,cACA,UACA,MACA,YAC2C;CAC3C,MAAM,OAAO,gBAAgB;CAC7B,MAAM,EAAE,OAAO,eAAe,cAAc;EAC1C;EACA,cAAc;EACd,OAAO,EAAE,UAAU;EACnB,SAAS,KAAK;EACf,CAAC;CAEF,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,gBAAgB,SAA2B;AAC/C,MAAI,YAAY,MAAM;GACpB,MAAM,OAAO,KAAK,aAAa;GAC/B,MAAM,QAAQ,OAAO,KAAK,UAAU,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI;GAC1D,MAAM,MAAM,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;AACnD,SAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM;QAEzC,OAAM,SAAS,KAAK;AAEtB,YAAU,MAAM;;AAGlB,QACE,oBAAC,iBAAiB;EAAS,OAAO,EAAE,MAAM;YACxC,qBAAC;GAAoB;GAAW,IAAI,QAAQ,KAAK,QAAQ,KAAK,IAAI;;IAChE,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAU,SAAS;;OACjB;OAAM;OACN,YACC,oBAAC;QAAK,WAAU;kBAAqC;SAAQ;;OAErD,EAEZ,oBAAC;MAAgB;MAAY;OAAQ;MACjC;IAEN,qBAAC;KAAQ,cAAc;KAAW,MAAM,CAAC,iBAAiB;gBACxD,oBAAC;MACC,WAAU;MACV,UAAU,UAAU;AAClB,aAAM,gBAAgB;AACtB,aAAM,iBAAiB;;MAEzB,UAAU;gBAEV,oBAAC;OACC,WAAW,GAAG,WAAW,SAAS,qBAAqB;OAC7C;OACV,UAAU;OACH;OACP,IAAI;OACJ,gBAAgB,UAAU,MAAM;OAChC,eAAe,UAAU,KAAK;QAC9B;OACa,EACjB,oBAAC;MACC,WAAU;MACV,kBAAkB,MAAM,EAAE,gBAAgB;gBAE1C,oBAAC;OACC,cAAc,MAAM,yBAAS,IAAI,MAAM;OAC7B;OACA;OAEV,QAAQ;OACR,MAAK;OACL,UAAU;OACV,UAAU,MAAM;SAJX,GAAG,KAAK,GAAG,MAAM,OAAO,UAAU,GAKvC;OACa;MACT;IAEV,oBAAC,6BAAiB,cAA8B;IAC/C,WAAW,SAAS,oBAAC,gBAAc;;IAC3B;GACe"}
|
package/dist/date-field.d.ts
CHANGED
|
@@ -1,35 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { Matcher } from "react-day-picker";
|
|
4
|
-
|
|
5
|
-
//#region src/components/date-field/DateField.d.ts
|
|
6
|
-
interface DateFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<UseControllerProps<TFieldValues, TFieldName>, 'disabled'> {
|
|
7
|
-
label: string;
|
|
8
|
-
description?: string;
|
|
9
|
-
placeholder?: string;
|
|
10
|
-
className?: string;
|
|
11
|
-
disabled?: Matcher | Matcher[] | undefined;
|
|
12
|
-
inputDisabled?: boolean;
|
|
13
|
-
initialValue?: Date;
|
|
14
|
-
endMonth?: Date;
|
|
15
|
-
required?: boolean;
|
|
16
|
-
help?: string;
|
|
17
|
-
/** Quando true, o valor será formatado como string YYYY-MM-DD ao invés de Date com horário */
|
|
18
|
-
dateOnly?: boolean;
|
|
19
|
-
}
|
|
20
|
-
declare function DateField<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
|
|
21
|
-
name,
|
|
22
|
-
label,
|
|
23
|
-
description,
|
|
24
|
-
inputDisabled,
|
|
25
|
-
endMonth,
|
|
26
|
-
className,
|
|
27
|
-
disabled,
|
|
28
|
-
initialValue,
|
|
29
|
-
required,
|
|
30
|
-
help,
|
|
31
|
-
dateOnly
|
|
32
|
-
}: DateFieldProps<TFieldValues, TFieldName>): react_jsx_runtime4.JSX.Element;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { DateField, type DateFieldProps };
|
|
35
|
-
//# sourceMappingURL=date-field.d.ts.map
|
|
1
|
+
import { DateField, DateFieldProps } from "./date-field/DateField.js";
|
|
2
|
+
export { DateField, type DateFieldProps };
|
package/dist/date-field.js
CHANGED
|
@@ -1,100 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import "./label-Bkg7B2j8.js";
|
|
6
|
-
import "./input-Bs61WBGW.js";
|
|
7
|
-
import { a as FormLabel, i as FormItem, n as FormDescription, o as FormMessage, r as FormFieldContext, t as InputHelp } from "./input-help-D1JqF0YH.js";
|
|
8
|
-
import "./button-B3nLhVyZ.js";
|
|
9
|
-
import { n as PopoverContent, r as PopoverTrigger, t as Popover } from "./popover-D9IIn0lW.js";
|
|
10
|
-
import { n as Calendar, t as InputDateField } from "./input-date-field-DToF0FmE.js";
|
|
11
|
-
import { useController, useFormContext } from "react-hook-form";
|
|
12
|
-
import { useState } from "react";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { ptBR } from "date-fns/locale";
|
|
4
|
+
import { DateField } from "./date-field/DateField.js";
|
|
15
5
|
|
|
16
|
-
|
|
17
|
-
function DateField({ name, label, description, inputDisabled, endMonth, className, disabled, initialValue, required, help, dateOnly }) {
|
|
18
|
-
const form = useFormContext();
|
|
19
|
-
const { field, fieldState } = useController({
|
|
20
|
-
name,
|
|
21
|
-
defaultValue: initialValue,
|
|
22
|
-
rules: { required },
|
|
23
|
-
control: form.control
|
|
24
|
-
});
|
|
25
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
26
|
-
const handleSelect = (date) => {
|
|
27
|
-
if (dateOnly && date) {
|
|
28
|
-
const year = date.getFullYear();
|
|
29
|
-
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
30
|
-
const day = String(date.getDate()).padStart(2, "0");
|
|
31
|
-
field.onChange(`${year}-${month}-${day}`);
|
|
32
|
-
} else field.onChange(date);
|
|
33
|
-
setIsOpen(false);
|
|
34
|
-
};
|
|
35
|
-
return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
|
|
36
|
-
value: { name },
|
|
37
|
-
children: /* @__PURE__ */ jsxs(FormItem, {
|
|
38
|
-
className,
|
|
39
|
-
id: `date-${name.replace(".", "-")}`,
|
|
40
|
-
children: [
|
|
41
|
-
/* @__PURE__ */ jsxs("div", {
|
|
42
|
-
className: "flex items-end gap-1.5",
|
|
43
|
-
children: [/* @__PURE__ */ jsxs(FormLabel, {
|
|
44
|
-
htmlFor: name,
|
|
45
|
-
children: [
|
|
46
|
-
label,
|
|
47
|
-
":",
|
|
48
|
-
required && /* @__PURE__ */ jsx("span", {
|
|
49
|
-
className: "text-red-500 text-lg leading-[1px]",
|
|
50
|
-
children: "*"
|
|
51
|
-
})
|
|
52
|
-
]
|
|
53
|
-
}), /* @__PURE__ */ jsx(InputHelp, {
|
|
54
|
-
help,
|
|
55
|
-
name
|
|
56
|
-
})]
|
|
57
|
-
}),
|
|
58
|
-
/* @__PURE__ */ jsxs(Popover, {
|
|
59
|
-
onOpenChange: setIsOpen,
|
|
60
|
-
open: !inputDisabled && isOpen,
|
|
61
|
-
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
62
|
-
className: "w-full mt-0! outline-hidden",
|
|
63
|
-
onClick: (event) => {
|
|
64
|
-
event.preventDefault();
|
|
65
|
-
event.stopPropagation();
|
|
66
|
-
},
|
|
67
|
-
tabIndex: -1,
|
|
68
|
-
children: /* @__PURE__ */ jsx(InputDateField, {
|
|
69
|
-
className: cn(fieldState.error && "border-destructive"),
|
|
70
|
-
dateOnly,
|
|
71
|
-
disabled: inputDisabled,
|
|
72
|
-
field,
|
|
73
|
-
id: name,
|
|
74
|
-
onFinish: () => setIsOpen(false),
|
|
75
|
-
onFocus: () => setIsOpen(true)
|
|
76
|
-
})
|
|
77
|
-
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
78
|
-
className: "flex justify-center w-fit p-0",
|
|
79
|
-
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
80
|
-
children: /* @__PURE__ */ jsx(Calendar, {
|
|
81
|
-
defaultMonth: field.value || /* @__PURE__ */ new Date(),
|
|
82
|
-
disabled,
|
|
83
|
-
endMonth,
|
|
84
|
-
locale: ptBR,
|
|
85
|
-
mode: "single",
|
|
86
|
-
onSelect: handleSelect,
|
|
87
|
-
selected: field.value
|
|
88
|
-
}, `${name}-${field.value?.toString()}`)
|
|
89
|
-
})]
|
|
90
|
-
}),
|
|
91
|
-
/* @__PURE__ */ jsx(FormDescription, { children: description }),
|
|
92
|
-
fieldState.error && /* @__PURE__ */ jsx(FormMessage, {})
|
|
93
|
-
]
|
|
94
|
-
})
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
//#endregion
|
|
99
|
-
export { DateField };
|
|
100
|
-
//# sourceMappingURL=date-field.js.map
|
|
6
|
+
export { DateField };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FieldPath, FieldValues, UseControllerProps } from "react-hook-form";
|
|
2
|
+
import * as react_jsx_runtime11 from "react/jsx-runtime";
|
|
3
|
+
import { Matcher } from "react-day-picker";
|
|
4
|
+
|
|
5
|
+
//#region src/components/date-hour-field/DateHourField.d.ts
|
|
6
|
+
interface DateHourFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<UseControllerProps<TFieldValues, TFieldName>, 'disabled'> {
|
|
7
|
+
label: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
disabled?: Matcher | Matcher[] | undefined;
|
|
11
|
+
inputDisabled?: boolean;
|
|
12
|
+
initialValue?: Date;
|
|
13
|
+
endMonth?: Date;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
help?: string;
|
|
16
|
+
hourPlaceholder?: string;
|
|
17
|
+
valueType?: 'date' | 'local-string';
|
|
18
|
+
}
|
|
19
|
+
declare function DateHourField<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
|
|
20
|
+
name,
|
|
21
|
+
label,
|
|
22
|
+
description,
|
|
23
|
+
inputDisabled,
|
|
24
|
+
endMonth,
|
|
25
|
+
className,
|
|
26
|
+
disabled,
|
|
27
|
+
initialValue,
|
|
28
|
+
required,
|
|
29
|
+
help,
|
|
30
|
+
hourPlaceholder,
|
|
31
|
+
valueType
|
|
32
|
+
}: DateHourFieldProps<TFieldValues, TFieldName>): react_jsx_runtime11.JSX.Element;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { DateHourField, DateHourFieldProps };
|
|
35
|
+
//# sourceMappingURL=DateHourField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateHourField.d.ts","names":[],"sources":["../../src/components/date-hour-field/DateHourField.tsx"],"sourcesContent":[],"mappings":";;;;;UA4CiB,wCACM,cAAc,gCAChB,UAAU,gBAAgB,UAAU,uBAC/C,KAAK,mBAAmB,cAAc;;;EAH/B,SAAA,CAAA,EAAA,MAAA;EACM,QAAA,CAAA,EAMV,OANU,GAMA,OANA,EAAA,GAAA,SAAA;EAAc,aAAA,CAAA,EAAA,OAAA;EACN,YAAA,CAAA,EAOd,IAPc;EAAV,QAAA,CAAA,EAQR,IARQ;EAAoC,QAAA,CAAA,EAAA,OAAA;EAAV,IAAA,CAAA,EAAA,MAAA;EACb,eAAA,CAAA,EAAA,MAAA;EAAc,SAAA,CAAA,EAAA,MAAA,GAAA,cAAA;;iBAcvC,aAVI,CAAA,qBAWU,WAXV,GAWwB,WAXxB,EAAA,mBAYQ,SAZR,CAYkB,YAZlB,CAAA,GAYkC,SAZlC,CAY4C,YAZ5C,CAAA,CAAA,CAAA;EAAA,IAAA;EAAA,KAAA;EAAA,WAAA;EAAA,aAAA;EAAA,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,YAAA;EAAA,QAAA;EAAA,IAAA;EAAA,eAAA;EAAA;AAAA,CAAA,EA0BV,kBA1BU,CA0BS,YA1BT,EA0BuB,UA1BvB,CAAA,CAAA,EA0BkC,mBAAA,CAAA,GAAA,CAAA,OA1BlC"}
|