@mage-ui/components 0.0.32 → 0.0.33
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/components/buttons/button/Button.d.ts +2 -2
- package/dist/components/buttons/button-icon/ButtonIcon.d.ts +2 -2
- package/dist/components/buttons/button-icon/ButtonIcon.d.ts.map +1 -1
- package/dist/components/controls/dropdown/Combobox.d.ts +2 -2
- package/dist/components/controls/dropdown/DropdownButton.d.ts +4 -4
- package/dist/components/controls/dropdown/Select.d.ts +2 -2
- package/dist/components/controls/input-file/InputFile.d.ts +2 -2
- package/dist/components/controls/input-password/InputPassword.d.ts +2 -2
- package/dist/components/controls/input-text/InputText.d.ts +2 -2
- package/dist/components/controls/textarea/Textarea.d.ts +2 -2
- package/dist/components/data-display/avatar/Avatar.d.ts +2 -2
- package/dist/components/data-display/badge/Badge.d.ts +2 -2
- package/dist/components/data-display/carousel/Carousel.d.ts +2 -2
- package/dist/components/data-display/carousel/Carousel.js +1 -1
- package/dist/components/data-display/carousel/Carousel.js.map +1 -1
- package/dist/components/forms/form/Form.d.ts +13 -13
- package/dist/components/forms/form/Form.d.ts.map +1 -1
- package/dist/components/forms/form/Form.js +1 -1
- package/dist/components/forms/form/Form.js.map +1 -1
- package/dist/components/misc/visually-hidden/VisuallyHidden.d.ts +2 -2
- package/dist/components/misc/visually-hidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist/components/navigation/tabs/Tabs.d.ts +5 -5
- package/dist/components/navigation/tabs/Tabs.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime26 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/buttons/button/Button.d.ts
|
|
@@ -18,7 +18,7 @@ declare const Button: ({
|
|
|
18
18
|
endSlot,
|
|
19
19
|
children,
|
|
20
20
|
...props
|
|
21
|
-
}: ButtonProps) =>
|
|
21
|
+
}: ButtonProps) => react_jsx_runtime26.JSX.Element;
|
|
22
22
|
//# sourceMappingURL=Button.d.ts.map
|
|
23
23
|
|
|
24
24
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ButtonProps } from "../button/Button.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime27 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/buttons/button-icon/ButtonIcon.d.ts
|
|
5
5
|
type ButtonIconProps = ButtonProps & {
|
|
@@ -15,7 +15,7 @@ declare const ButtonIcon: ({
|
|
|
15
15
|
icon,
|
|
16
16
|
classNames,
|
|
17
17
|
...props
|
|
18
|
-
}: ButtonIconProps) =>
|
|
18
|
+
}: ButtonIconProps) => react_jsx_runtime27.JSX.Element;
|
|
19
19
|
//# sourceMappingURL=ButtonIcon.d.ts.map
|
|
20
20
|
|
|
21
21
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonIcon.d.ts","names":[],"sources":["../../../../src/components/buttons/button-icon/ButtonIcon.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,eAAA,GAAkB;;;EAAlB,UAAA,CAAA,EAAA;IASC,IAAA,CAAA,EAAA,MAkBZ;IAAA,IAAA,CAAA,EAAA,MAAA;EAAA,CAAA;CAlB0B;AAAA,cAAd,UAAc,EAAA,CAAA;EAAA,KAAA;EAAA,IAAA;EAAA,UAAA;EAAA,GAAA;AAAA,CAAA,EAKxB,eALwB,EAAA,GAKT,
|
|
1
|
+
{"version":3,"file":"ButtonIcon.d.ts","names":[],"sources":["../../../../src/components/buttons/button-icon/ButtonIcon.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,eAAA,GAAkB;;;EAAlB,UAAA,CAAA,EAAA;IASC,IAAA,CAAA,EAAA,MAkBZ;IAAA,IAAA,CAAA,EAAA,MAAA;EAAA,CAAA;CAlB0B;AAAA,cAAd,UAAc,EAAA,CAAA;EAAA,KAAA;EAAA,IAAA;EAAA,UAAA;EAAA,GAAA;AAAA,CAAA,EAKxB,eALwB,EAAA,GAKT,mBAAA,CAAA,GAAA,CAAA,OALS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DropdownBaseProps } from "./DropdownBase.js";
|
|
2
2
|
import { InputTextProps } from "../input-text/InputText.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime36 from "react/jsx-runtime";
|
|
4
4
|
import React from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/controls/dropdown/Combobox.d.ts
|
|
@@ -34,7 +34,7 @@ declare const Combobox: ({
|
|
|
34
34
|
create,
|
|
35
35
|
empty,
|
|
36
36
|
...props
|
|
37
|
-
}: ComboboxProps) =>
|
|
37
|
+
}: ComboboxProps) => react_jsx_runtime36.JSX.Element;
|
|
38
38
|
//# sourceMappingURL=Combobox.d.ts.map
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime37 from "react/jsx-runtime";
|
|
2
|
+
import * as react38 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/controls/dropdown/DropdownButton.d.ts
|
|
5
5
|
type DropdownButtonProps = {
|
|
@@ -18,11 +18,11 @@ declare const DropdownButton: {
|
|
|
18
18
|
children,
|
|
19
19
|
endSlot,
|
|
20
20
|
...props
|
|
21
|
-
}: DropdownButtonProps):
|
|
21
|
+
}: DropdownButtonProps): react_jsx_runtime37.JSX.Element;
|
|
22
22
|
Option: {
|
|
23
23
|
({
|
|
24
24
|
children
|
|
25
|
-
}: DropdownButtonOptionProps):
|
|
25
|
+
}: DropdownButtonOptionProps): react38.ReactNode;
|
|
26
26
|
displayName: string;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DropdownBaseProps } from "./DropdownBase.js";
|
|
2
2
|
import { InputTextProps } from "../input-text/InputText.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime39 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/components/controls/dropdown/Select.d.ts
|
|
6
6
|
type SelectProps = Omit<DropdownBaseProps, 'children' | 'onClick' | 'setQuery' | 'target'> & InputTextProps & {
|
|
@@ -23,7 +23,7 @@ declare const Select: ({
|
|
|
23
23
|
options,
|
|
24
24
|
classNames,
|
|
25
25
|
...props
|
|
26
|
-
}: SelectProps) =>
|
|
26
|
+
}: SelectProps) => react_jsx_runtime39.JSX.Element;
|
|
27
27
|
//# sourceMappingURL=Select.d.ts.map
|
|
28
28
|
|
|
29
29
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime40 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/components/controls/input-file/InputFile.d.ts
|
|
4
4
|
type InputFileProps = {
|
|
@@ -26,7 +26,7 @@ declare const InputFile: ({
|
|
|
26
26
|
multiple,
|
|
27
27
|
badgeClassName,
|
|
28
28
|
...props
|
|
29
|
-
}: InputFileProps) =>
|
|
29
|
+
}: InputFileProps) => react_jsx_runtime40.JSX.Element;
|
|
30
30
|
//# sourceMappingURL=InputFile.d.ts.map
|
|
31
31
|
//#endregion
|
|
32
32
|
export { InputFile, InputFileProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime41 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/controls/input-password/InputPassword.d.ts
|
|
@@ -26,7 +26,7 @@ declare const InputPassword: ({
|
|
|
26
26
|
startSlot,
|
|
27
27
|
endSlot,
|
|
28
28
|
...props
|
|
29
|
-
}: InputPasswordProps) =>
|
|
29
|
+
}: InputPasswordProps) => react_jsx_runtime41.JSX.Element;
|
|
30
30
|
//# sourceMappingURL=InputPassword.d.ts.map
|
|
31
31
|
//#endregion
|
|
32
32
|
export { InputPassword, InputPasswordProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime42 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/controls/input-text/InputText.d.ts
|
|
@@ -25,7 +25,7 @@ declare const InputText: ({
|
|
|
25
25
|
startSlot,
|
|
26
26
|
endSlot,
|
|
27
27
|
...props
|
|
28
|
-
}: InputTextProps) =>
|
|
28
|
+
}: InputTextProps) => react_jsx_runtime42.JSX.Element;
|
|
29
29
|
//# sourceMappingURL=InputText.d.ts.map
|
|
30
30
|
//#endregion
|
|
31
31
|
export { InputText, InputTextProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime43 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/controls/textarea/Textarea.d.ts
|
|
@@ -27,7 +27,7 @@ declare const Textarea: ({
|
|
|
27
27
|
autosize,
|
|
28
28
|
onChange,
|
|
29
29
|
...props
|
|
30
|
-
}: TextareaProps) =>
|
|
30
|
+
}: TextareaProps) => react_jsx_runtime43.JSX.Element;
|
|
31
31
|
//# sourceMappingURL=Textarea.d.ts.map
|
|
32
32
|
|
|
33
33
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime44 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/components/data-display/avatar/Avatar.d.ts
|
|
4
4
|
type AvatarProps = {
|
|
@@ -13,7 +13,7 @@ type AvatarProps = {
|
|
|
13
13
|
declare const Avatar: ({
|
|
14
14
|
classNames,
|
|
15
15
|
...props
|
|
16
|
-
}: AvatarProps) =>
|
|
16
|
+
}: AvatarProps) => react_jsx_runtime44.JSX.Element;
|
|
17
17
|
//# sourceMappingURL=Avatar.d.ts.map
|
|
18
18
|
|
|
19
19
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime45 from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/data-display/badge/Badge.d.ts
|
|
@@ -17,7 +17,7 @@ declare const Badge: ({
|
|
|
17
17
|
startSlot,
|
|
18
18
|
classNames,
|
|
19
19
|
...props
|
|
20
|
-
}: BadgeProps) =>
|
|
20
|
+
}: BadgeProps) => react_jsx_runtime45.JSX.Element;
|
|
21
21
|
//# sourceMappingURL=Badge.d.ts.map
|
|
22
22
|
|
|
23
23
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime46 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/data-display/carousel/Carousel.d.ts
|
|
@@ -40,7 +40,7 @@ declare const Carousel: {
|
|
|
40
40
|
({
|
|
41
41
|
classNames,
|
|
42
42
|
...props
|
|
43
|
-
}: CarouselProps):
|
|
43
|
+
}: CarouselProps): react_jsx_runtime46.JSX.Element;
|
|
44
44
|
Slide: {
|
|
45
45
|
({
|
|
46
46
|
children
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Button as e}from"../../buttons/button/Button.js";import{VisuallyHidden as t}from"../../misc/visually-hidden/VisuallyHidden.js";import{useDotButton as n,useNavButtons as r}from"./useEmbla.js";import{ButtonIcon as i}from"../../buttons/button-icon/ButtonIcon.js";import{buttonIconIcon as a,carousel as o,carouselContainer as s,carouselControl as c,carouselControls as l,carouselIndicator as u,carouselIndicators as d,carouselSlide as f,carouselViewport as p}from"@mage-ui/styled-system/recipes";import{jsx as m,jsxs as h}from"react/jsx-runtime";import g from"embla-carousel-autoplay";import _ from"embla-carousel-react";import{Children as v,isValidElement as y,useCallback as b}from"react";import{cx as x}from"@mage-ui/styled-system/css";const S=({classNames:S,...w})=>{let T=[];w.autoplay&&w.autoplay>0&&T.push(g({delay:w.autoplay??1e3,stopOnMouseEnter:!0}));let[E,D]=_({align:w?.align??`center`,loop:w?.loop??!0,dragFree:w?.dragFree??!0,slidesToScroll:w?.slidesToScroll??`auto`},T),O=b(e=>{let t=w?.autoplay&&w.autoplay>0?e?.plugins()?.autoplay:null;if(!t)return;let n=t.options.stopOnInteraction===!1?t.reset:t.stop;n()},[]),{selectedIndex:k,scrollSnaps:A,onDotButtonClick:j}=n(D,O),{prevBtnDisabled:M,nextBtnDisabled:N,onPrevButtonClick:P,onNextButtonClick:F}=r(D,O);return h(`section`,{className:x(S?.root??o(),S?.settings),onMouseLeave:()=>D?.plugins().autoplay?.play(),"aria-label":`Carousel`,children:[m(`div`,{className:S?.viewport??p(),ref:E,children:m(`div`,{className:S?.container??s(),children:v.map(w.children,e=>y(e)&&e.type===C&&m(`div`,{className:S?.slide??f(),children:e}))})}),w?.withControls&&w.withControls&&h(`div`,{className:S?.controls??l(),children:[m(i,{classNames:{root:S?.control??c(),icon:S?.icon??a({size:`m`})},onClick:P,disabled:M,label:w?.previousControl?.label??`Previous`,icon:w?.previousControl?.icon??`chevron-left`}),m(i,{classNames:{root:S?.control??c(),icon:S?.icon??a({size:`m`})},onClick:F,disabled:N,label:w?.nextControl?.label??`Next`,icon:w?.nextControl?.icon??`chevron-right`})]}),w?.withIndicators&&w.withIndicators&&m(`div`,{className:S?.indicators??d(),children:A.map((n,r)=>{let i=v.toArray(w.children).length;return m(e,{onClick:()=>j(r),classNames:{root:S?.indicator??u()},"aria-
|
|
1
|
+
import{Button as e}from"../../buttons/button/Button.js";import{VisuallyHidden as t}from"../../misc/visually-hidden/VisuallyHidden.js";import{useDotButton as n,useNavButtons as r}from"./useEmbla.js";import{ButtonIcon as i}from"../../buttons/button-icon/ButtonIcon.js";import{buttonIconIcon as a,carousel as o,carouselContainer as s,carouselControl as c,carouselControls as l,carouselIndicator as u,carouselIndicators as d,carouselSlide as f,carouselViewport as p}from"@mage-ui/styled-system/recipes";import{jsx as m,jsxs as h}from"react/jsx-runtime";import g from"embla-carousel-autoplay";import _ from"embla-carousel-react";import{Children as v,isValidElement as y,useCallback as b}from"react";import{cx as x}from"@mage-ui/styled-system/css";const S=({classNames:S,...w})=>{let T=[];w.autoplay&&w.autoplay>0&&T.push(g({delay:w.autoplay??1e3,stopOnMouseEnter:!0}));let[E,D]=_({align:w?.align??`center`,loop:w?.loop??!0,dragFree:w?.dragFree??!0,slidesToScroll:w?.slidesToScroll??`auto`},T),O=b(e=>{let t=w?.autoplay&&w.autoplay>0?e?.plugins()?.autoplay:null;if(!t)return;let n=t.options.stopOnInteraction===!1?t.reset:t.stop;n()},[]),{selectedIndex:k,scrollSnaps:A,onDotButtonClick:j}=n(D,O),{prevBtnDisabled:M,nextBtnDisabled:N,onPrevButtonClick:P,onNextButtonClick:F}=r(D,O);return h(`section`,{className:x(S?.root??o(),S?.settings),onMouseLeave:()=>D?.plugins().autoplay?.play(),"aria-label":`Carousel`,children:[m(`div`,{className:S?.viewport??p(),ref:E,children:m(`div`,{className:S?.container??s(),children:v.map(w.children,e=>y(e)&&e.type===C&&m(`div`,{className:S?.slide??f(),children:e}))})}),w?.withControls&&w.withControls&&h(`div`,{className:S?.controls??l(),children:[m(i,{classNames:{root:S?.control??c(),icon:S?.icon??a({size:`m`})},onClick:P,disabled:M,label:w?.previousControl?.label??`Previous`,icon:w?.previousControl?.icon??`chevron-left`}),m(i,{classNames:{root:S?.control??c(),icon:S?.icon??a({size:`m`})},onClick:F,disabled:N,label:w?.nextControl?.label??`Next`,icon:w?.nextControl?.icon??`chevron-right`})]}),w?.withIndicators&&w.withIndicators&&m(`div`,{className:S?.indicators??d(),children:A.map((n,r)=>{let i=v.toArray(w.children).length;return m(e,{onClick:()=>j(r),classNames:{root:S?.indicator??u()},"aria-current":r===k?!0:void 0,children:m(t,{children:`${w.indicatorControl?.label??`Slide`} ${r+1} ${w.indicatorControl?.ofLabel??`of`} ${i}`})},n)})})]})},C=({children:e})=>e;C.displayName=`Carousel.Slide`,S.Slide=C,S.displayName=`Carousel`;export{S as Carousel};
|
|
2
2
|
//# sourceMappingURL=Carousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","names":["emblaApi: EmblaCarouselType"],"sources":["../../../../src/components/data-display/carousel/Carousel.tsx"],"sourcesContent":["'use client';\n\nimport type { EmblaCarouselType } from 'embla-carousel';\nimport Autoplay from 'embla-carousel-autoplay';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport { Children, isValidElement, type ReactNode, useCallback } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n buttonIconIcon,\n carousel,\n carouselContainer,\n carouselControl,\n carouselControls,\n carouselIndicator,\n carouselIndicators,\n carouselSlide,\n carouselViewport,\n} from '@mage-ui/styled-system/recipes';\nimport { Button, ButtonIcon } from '@/components/buttons';\nimport { VisuallyHidden } from '@/components/misc';\n\nimport { useDotButton, useNavButtons } from './useEmbla';\n\nexport type CarouselProps = {\n classNames?: {\n settings?: string;\n root?: string;\n slide?: string;\n container?: string;\n viewport?: string;\n controls?: string;\n control?: string;\n icon?: string;\n indicators?: string;\n indicator?: string;\n };\n withIndicators?: boolean;\n withControls?: boolean;\n loop?: boolean;\n dragFree?: boolean;\n align?: 'start' | 'center' | 'end';\n slidesToScroll?: number | 'auto';\n autoplay?: number;\n previousControl?: {\n label?: string;\n icon?: string;\n };\n nextControl?: {\n label?: string;\n icon?: string;\n };\n indicatorControl?: {\n label?: string;\n ofLabel?: string;\n };\n children?: ReactNode;\n};\n\nexport const Carousel = ({ classNames, ...props }: CarouselProps) => {\n const plugins = [];\n if (props.autoplay && props.autoplay > 0) {\n plugins.push(\n Autoplay({ delay: props.autoplay ?? 1000, stopOnMouseEnter: true }),\n );\n }\n\n const [emblaRef, emblaApi] = useEmblaCarousel(\n {\n align: props?.align ?? 'center',\n loop: props?.loop ?? true,\n dragFree: props?.dragFree ?? true,\n slidesToScroll: props?.slidesToScroll ?? 'auto',\n },\n plugins,\n );\n\n const onNavButtonClick = useCallback((emblaApi: EmblaCarouselType) => {\n const autoplay =\n props?.autoplay && props.autoplay > 0\n ? emblaApi?.plugins()?.autoplay\n : null;\n if (!autoplay) return;\n\n const resetOrStop =\n autoplay.options.stopOnInteraction === false\n ? autoplay.reset\n : autoplay.stop;\n\n resetOrStop();\n }, []);\n\n const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(\n emblaApi as EmblaCarouselType,\n onNavButtonClick,\n );\n\n const {\n prevBtnDisabled,\n nextBtnDisabled,\n onPrevButtonClick,\n onNextButtonClick,\n } = useNavButtons(emblaApi as EmblaCarouselType, onNavButtonClick);\n\n return (\n <section\n className={cx(classNames?.root ?? carousel(), classNames?.settings)}\n onMouseLeave={() => emblaApi?.plugins().autoplay?.play()}\n aria-label='Carousel'\n >\n <div\n className={classNames?.viewport ?? carouselViewport()}\n ref={emblaRef}\n >\n <div className={classNames?.container ?? carouselContainer()}>\n {Children.map(\n props.children,\n (child) =>\n isValidElement(child) &&\n child.type === Slide && (\n <div className={classNames?.slide ?? carouselSlide()}>\n {child}\n </div>\n ),\n )}\n </div>\n </div>\n {props?.withControls && props.withControls && (\n <div className={classNames?.controls ?? carouselControls()}>\n <ButtonIcon\n classNames={{\n root: classNames?.control ?? carouselControl(),\n icon: classNames?.icon ?? buttonIconIcon({ size: 'm' }),\n }}\n onClick={onPrevButtonClick}\n disabled={prevBtnDisabled}\n label={props?.previousControl?.label ?? 'Previous'}\n icon={props?.previousControl?.icon ?? 'chevron-left'}\n />\n <ButtonIcon\n classNames={{\n root: classNames?.control ?? carouselControl(),\n icon: classNames?.icon ?? buttonIconIcon({ size: 'm' }),\n }}\n onClick={onNextButtonClick}\n disabled={nextBtnDisabled}\n label={props?.nextControl?.label ?? 'Next'}\n icon={props?.nextControl?.icon ?? 'chevron-right'}\n />\n </div>\n )}\n {props?.withIndicators && props.withIndicators && (\n <div className={classNames?.indicators ?? carouselIndicators()}>\n {scrollSnaps.map((snap, index) => {\n const totalSlides = Children.toArray(props.children).length;\n return (\n <Button\n key={snap}\n onClick={() => onDotButtonClick(index)}\n classNames={{\n root: classNames?.indicator ?? carouselIndicator(),\n }}\n aria-
|
|
1
|
+
{"version":3,"file":"Carousel.js","names":["emblaApi: EmblaCarouselType"],"sources":["../../../../src/components/data-display/carousel/Carousel.tsx"],"sourcesContent":["'use client';\n\nimport type { EmblaCarouselType } from 'embla-carousel';\nimport Autoplay from 'embla-carousel-autoplay';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport { Children, isValidElement, type ReactNode, useCallback } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n buttonIconIcon,\n carousel,\n carouselContainer,\n carouselControl,\n carouselControls,\n carouselIndicator,\n carouselIndicators,\n carouselSlide,\n carouselViewport,\n} from '@mage-ui/styled-system/recipes';\nimport { Button, ButtonIcon } from '@/components/buttons';\nimport { VisuallyHidden } from '@/components/misc';\n\nimport { useDotButton, useNavButtons } from './useEmbla';\n\nexport type CarouselProps = {\n classNames?: {\n settings?: string;\n root?: string;\n slide?: string;\n container?: string;\n viewport?: string;\n controls?: string;\n control?: string;\n icon?: string;\n indicators?: string;\n indicator?: string;\n };\n withIndicators?: boolean;\n withControls?: boolean;\n loop?: boolean;\n dragFree?: boolean;\n align?: 'start' | 'center' | 'end';\n slidesToScroll?: number | 'auto';\n autoplay?: number;\n previousControl?: {\n label?: string;\n icon?: string;\n };\n nextControl?: {\n label?: string;\n icon?: string;\n };\n indicatorControl?: {\n label?: string;\n ofLabel?: string;\n };\n children?: ReactNode;\n};\n\nexport const Carousel = ({ classNames, ...props }: CarouselProps) => {\n const plugins = [];\n if (props.autoplay && props.autoplay > 0) {\n plugins.push(\n Autoplay({ delay: props.autoplay ?? 1000, stopOnMouseEnter: true }),\n );\n }\n\n const [emblaRef, emblaApi] = useEmblaCarousel(\n {\n align: props?.align ?? 'center',\n loop: props?.loop ?? true,\n dragFree: props?.dragFree ?? true,\n slidesToScroll: props?.slidesToScroll ?? 'auto',\n },\n plugins,\n );\n\n const onNavButtonClick = useCallback((emblaApi: EmblaCarouselType) => {\n const autoplay =\n props?.autoplay && props.autoplay > 0\n ? emblaApi?.plugins()?.autoplay\n : null;\n if (!autoplay) return;\n\n const resetOrStop =\n autoplay.options.stopOnInteraction === false\n ? autoplay.reset\n : autoplay.stop;\n\n resetOrStop();\n }, []);\n\n const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(\n emblaApi as EmblaCarouselType,\n onNavButtonClick,\n );\n\n const {\n prevBtnDisabled,\n nextBtnDisabled,\n onPrevButtonClick,\n onNextButtonClick,\n } = useNavButtons(emblaApi as EmblaCarouselType, onNavButtonClick);\n\n return (\n <section\n className={cx(classNames?.root ?? carousel(), classNames?.settings)}\n onMouseLeave={() => emblaApi?.plugins().autoplay?.play()}\n aria-label='Carousel'\n >\n <div\n className={classNames?.viewport ?? carouselViewport()}\n ref={emblaRef}\n >\n <div className={classNames?.container ?? carouselContainer()}>\n {Children.map(\n props.children,\n (child) =>\n isValidElement(child) &&\n child.type === Slide && (\n <div className={classNames?.slide ?? carouselSlide()}>\n {child}\n </div>\n ),\n )}\n </div>\n </div>\n {props?.withControls && props.withControls && (\n <div className={classNames?.controls ?? carouselControls()}>\n <ButtonIcon\n classNames={{\n root: classNames?.control ?? carouselControl(),\n icon: classNames?.icon ?? buttonIconIcon({ size: 'm' }),\n }}\n onClick={onPrevButtonClick}\n disabled={prevBtnDisabled}\n label={props?.previousControl?.label ?? 'Previous'}\n icon={props?.previousControl?.icon ?? 'chevron-left'}\n />\n <ButtonIcon\n classNames={{\n root: classNames?.control ?? carouselControl(),\n icon: classNames?.icon ?? buttonIconIcon({ size: 'm' }),\n }}\n onClick={onNextButtonClick}\n disabled={nextBtnDisabled}\n label={props?.nextControl?.label ?? 'Next'}\n icon={props?.nextControl?.icon ?? 'chevron-right'}\n />\n </div>\n )}\n {props?.withIndicators && props.withIndicators && (\n <div className={classNames?.indicators ?? carouselIndicators()}>\n {scrollSnaps.map((snap, index) => {\n const totalSlides = Children.toArray(props.children).length;\n return (\n <Button\n key={snap}\n onClick={() => onDotButtonClick(index)}\n classNames={{\n root: classNames?.indicator ?? carouselIndicator(),\n }}\n aria-current={index === selectedIndex ? true : undefined}\n >\n <VisuallyHidden>\n {`${props.indicatorControl?.label ?? 'Slide'} ${index + 1} ${\n props.indicatorControl?.ofLabel ?? 'of'\n } ${totalSlides}`}\n </VisuallyHidden>\n </Button>\n );\n })}\n </div>\n )}\n </section>\n );\n};\n\nconst Slide = ({ children }: { children: ReactNode }) => {\n return children;\n};\n\nSlide.displayName = 'Carousel.Slide';\nCarousel.Slide = Slide;\nCarousel.displayName = 'Carousel';\n"],"mappings":"suBAkLA,MAvHa,EAAW,CAAC,CAAE,aAAY,GAAG,EAAsB,GAAK,CACnE,IAAM,EAAU,CAAE,EAClB,AAAI,EAAM,UAAY,EAAM,SAAW,GACrC,EAAQ,KACN,EAAS,CAAE,MAAO,EAAM,UAAY,IAAM,kBAAkB,CAAM,EAAC,CACpE,CAiCH,GA9BM,CAAC,EAAU,EAAS,CAAG,EAC3B,CACE,MAAO,GAAO,OAAS,SACvB,KAAM,GAAO,OAAQ,EACrB,SAAU,GAAO,WAAY,EAC7B,eAAgB,GAAO,gBAAkB,MAC1C,EACD,EACD,CAEK,EAAmB,EAAY,AAACA,GAAgC,CACpE,IAAM,EACJ,GAAO,UAAY,EAAM,SAAW,EAChC,GAAU,SAAS,EAAE,SACrB,KACN,IAAK,EAAU,OAEf,IAAM,EACJ,EAAS,QAAQ,qBAAsB,EACnC,EAAS,MACT,EAAS,KAEf,GAAa,AACd,EAAE,CAAE,EAAC,CAEA,CAAE,gBAAe,cAAa,mBAAkB,CAAG,EACvD,EACA,EACD,CAEK,CACJ,kBACA,kBACA,oBACA,oBACD,CAAG,EAAc,EAA+B,EAAiB,CAElE,MACE,GAAC,UAAA,CACC,UAAW,EAAG,GAAY,MAAQ,GAAU,CAAE,GAAY,SAAS,CACnE,aAAc,IAAM,GAAU,SAAS,CAAC,UAAU,MAAM,CACxD,aAAW,qBAEX,EAAC,MAAA,CACC,UAAW,GAAY,UAAY,GAAkB,CACrD,IAAK,WAEL,EAAC,MAAA,CAAI,UAAW,GAAY,WAAa,GAAmB,UACzD,EAAS,IACR,EAAM,SACN,AAAC,GACC,EAAe,EAAM,EACrB,EAAM,OAAS,GACb,EAAC,MAAA,CAAI,UAAW,GAAY,OAAS,GAAe,UACjD,GACG,CAEX,EACG,EACF,CACL,GAAO,cAAgB,EAAM,cAC5B,EAAC,MAAA,CAAI,UAAW,GAAY,UAAY,GAAkB,WACxD,EAAC,EAAA,CACC,WAAY,CACV,KAAM,GAAY,SAAW,GAAiB,CAC9C,KAAM,GAAY,MAAQ,EAAe,CAAE,KAAM,GAAK,EAAC,AACxD,EACD,QAAS,EACT,SAAU,EACV,MAAO,GAAO,iBAAiB,OAAS,WACxC,KAAM,GAAO,iBAAiB,MAAQ,gBACtC,CACF,EAAC,EAAA,CACC,WAAY,CACV,KAAM,GAAY,SAAW,GAAiB,CAC9C,KAAM,GAAY,MAAQ,EAAe,CAAE,KAAM,GAAK,EAAC,AACxD,EACD,QAAS,EACT,SAAU,EACV,MAAO,GAAO,aAAa,OAAS,OACpC,KAAM,GAAO,aAAa,MAAQ,iBAClC,GACE,CAEP,GAAO,gBAAkB,EAAM,gBAC9B,EAAC,MAAA,CAAI,UAAW,GAAY,YAAc,GAAoB,UAC3D,EAAY,IAAI,CAAC,EAAM,IAAU,CAChC,IAAM,EAAc,EAAS,QAAQ,EAAM,SAAS,CAAC,OACrD,MACE,GAAC,EAAA,CAEC,QAAS,IAAM,EAAiB,EAAM,CACtC,WAAY,CACV,KAAM,GAAY,WAAa,GAAmB,AACnD,EACD,eAAc,IAAU,GAAgB,MAAA,YAExC,EAAC,EAAA,CAAA,UACG,EAAE,EAAM,kBAAkB,OAAS,QAAQ,GAAG,EAAQ,EAAE,GACxD,EAAM,kBAAkB,SAAW,KACpC,GAAG,EAAY,CAAA,EACD,EAXZ,EAYE,AAEZ,EAAC,EACE,GAEA,AAEb,EAEK,EAAQ,CAAC,CAAE,WAAmC,GAC3C,EAKT,AAFA,EAAM,YAAc,iBACpB,EAAS,MAAQ,EACjB,EAAS,YAAc"}
|
|
@@ -11,7 +11,7 @@ import { FormDatePickerProps } from "./controls/FormDatePicker.js";
|
|
|
11
11
|
import { FormInputFileProps } from "./controls/FormInputFile.js";
|
|
12
12
|
import { FormInputPasswordProps } from "./controls/FormInputPassword.js";
|
|
13
13
|
import { FormIfFieldProps } from "./controls/FormIfField.js";
|
|
14
|
-
import * as
|
|
14
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
15
15
|
import { ReactNode } from "react";
|
|
16
16
|
import { ZodEffects, ZodObject, ZodRawShape, z } from "zod";
|
|
17
17
|
|
|
@@ -29,11 +29,11 @@ declare const Form: {
|
|
|
29
29
|
onSubmit,
|
|
30
30
|
children,
|
|
31
31
|
...props
|
|
32
|
-
}: FormProps):
|
|
32
|
+
}: FormProps): react_jsx_runtime1.JSX.Element;
|
|
33
33
|
InputText: {
|
|
34
34
|
({
|
|
35
35
|
...props
|
|
36
|
-
}: FormInputTextProps):
|
|
36
|
+
}: FormInputTextProps): react_jsx_runtime1.JSX.Element;
|
|
37
37
|
displayName: string;
|
|
38
38
|
rules: {
|
|
39
39
|
required: (message?: string, min?: number) => z.ZodString;
|
|
@@ -44,7 +44,7 @@ declare const Form: {
|
|
|
44
44
|
name,
|
|
45
45
|
control,
|
|
46
46
|
...props
|
|
47
|
-
}: FormCheckboxProps):
|
|
47
|
+
}: FormCheckboxProps): react_jsx_runtime1.JSX.Element;
|
|
48
48
|
displayName: string;
|
|
49
49
|
rules: {
|
|
50
50
|
required: (message?: string) => ZodEffects<z.ZodBoolean, boolean, boolean>;
|
|
@@ -56,7 +56,7 @@ declare const Form: {
|
|
|
56
56
|
control,
|
|
57
57
|
children,
|
|
58
58
|
...props
|
|
59
|
-
}: FormCheckboxGroupProps):
|
|
59
|
+
}: FormCheckboxGroupProps): react_jsx_runtime1.JSX.Element;
|
|
60
60
|
displayName: string;
|
|
61
61
|
rules: {
|
|
62
62
|
required: (message?: string) => z.ZodArray<z.ZodString, "many">;
|
|
@@ -74,7 +74,7 @@ declare const Form: {
|
|
|
74
74
|
name,
|
|
75
75
|
control,
|
|
76
76
|
...props
|
|
77
|
-
}: FormComboboxProps):
|
|
77
|
+
}: FormComboboxProps): react_jsx_runtime1.JSX.Element;
|
|
78
78
|
displayName: string;
|
|
79
79
|
rules: {
|
|
80
80
|
required: (message?: string, defaultValue?: {
|
|
@@ -104,20 +104,20 @@ declare const Form: {
|
|
|
104
104
|
control,
|
|
105
105
|
children,
|
|
106
106
|
...props
|
|
107
|
-
}: FormRadioGroupProps):
|
|
107
|
+
}: FormRadioGroupProps): react_jsx_runtime1.JSX.Element;
|
|
108
108
|
displayName: string;
|
|
109
109
|
rules: {
|
|
110
110
|
required: (message?: string) => ZodEffects<z.ZodAny, any, any>;
|
|
111
111
|
};
|
|
112
112
|
};
|
|
113
113
|
Radio: {
|
|
114
|
-
(props: RadioProps):
|
|
114
|
+
(props: RadioProps): react_jsx_runtime1.JSX.Element;
|
|
115
115
|
displayName: string;
|
|
116
116
|
};
|
|
117
117
|
Textarea: {
|
|
118
118
|
({
|
|
119
119
|
...props
|
|
120
|
-
}: FormTextareaProps):
|
|
120
|
+
}: FormTextareaProps): react_jsx_runtime1.JSX.Element;
|
|
121
121
|
displayName: string;
|
|
122
122
|
rules: {
|
|
123
123
|
required: (message?: string, min?: number) => z.ZodString;
|
|
@@ -128,7 +128,7 @@ declare const Form: {
|
|
|
128
128
|
name,
|
|
129
129
|
control,
|
|
130
130
|
...props
|
|
131
|
-
}: FormSelectProps):
|
|
131
|
+
}: FormSelectProps): react_jsx_runtime1.JSX.Element;
|
|
132
132
|
displayName: string;
|
|
133
133
|
rules: {
|
|
134
134
|
required: (message?: string, defaultValue?: {
|
|
@@ -157,7 +157,7 @@ declare const Form: {
|
|
|
157
157
|
name,
|
|
158
158
|
control,
|
|
159
159
|
...props
|
|
160
|
-
}: FormDatePickerProps):
|
|
160
|
+
}: FormDatePickerProps): react_jsx_runtime1.JSX.Element;
|
|
161
161
|
displayName: string;
|
|
162
162
|
rules: {
|
|
163
163
|
required: (message?: string) => ZodEffects<z.ZodUnion<[z.ZodType<Date, z.ZodTypeDef, Date>, ZodEffects<z.ZodString, string, string>]>, string | Date, string | Date>;
|
|
@@ -168,7 +168,7 @@ declare const Form: {
|
|
|
168
168
|
control,
|
|
169
169
|
name,
|
|
170
170
|
...props
|
|
171
|
-
}: FormInputFileProps):
|
|
171
|
+
}: FormInputFileProps): react_jsx_runtime1.JSX.Element;
|
|
172
172
|
displayName: string;
|
|
173
173
|
rules: {
|
|
174
174
|
required: (message?: string, min?: number) => ZodEffects<z.ZodAny, any, any>;
|
|
@@ -177,7 +177,7 @@ declare const Form: {
|
|
|
177
177
|
InputPassword: {
|
|
178
178
|
({
|
|
179
179
|
...props
|
|
180
|
-
}: FormInputPasswordProps):
|
|
180
|
+
}: FormInputPasswordProps): react_jsx_runtime1.JSX.Element;
|
|
181
181
|
displayName: string;
|
|
182
182
|
rules: {
|
|
183
183
|
required: (message?: string) => z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.d.ts","names":[],"sources":["../../../../src/components/forms/form/Form.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;KAwBY,SAAA;;UAEF,UAAU,eAAe,WAAW,UAAU;;YAE5C,KAAA,CAAM;;cAGL;;;;;;;KAMV,YAAS,
|
|
1
|
+
{"version":3,"file":"Form.d.ts","names":[],"sources":["../../../../src/components/forms/form/Form.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;KAwBY,SAAA;;UAEF,UAAU,eAAe,WAAW,UAAU;;YAE5C,KAAA,CAAM;;cAGL;;;;;;;KAMV,YAAS,kBAAA,CAAA,GAAA,CAAA;;;;OAAA;;;;;;;IAbA,CAAA;MAAA,IAAA;MAAS,OAAA;MAAA,GAAA;IAAA,CAAA,mBAAA,CAAA,gCAAA;IAAA,WAAA,EAAA,MAAA;IAED,KAAA,EAAA;MAAV,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,aAAA,aAAA,EAAA,OAAA,EAAA,OAAA,CAAA;IAA8C,CAAA;EAAW,CAAA;EAAZ,aAApB,EAAA;IAEvB,CAAA;MAAA,IAAM;MAAA,OAAA;MAAA,QAAA;MAAA,GAAA;IAAA,CAAA,wBAAA,CAAA,gCAAA;IAAS,WAAA,EAAA,MAAA;IAGd,KA8BZ,EAAA;MAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,aAAA,YAAA,EAAA,MAAA,CAAA;IAAA,CAAA;;;;;;;IAxBE,CAAA;EAAS,CAAA;EAAA,QAAA,EAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{FormCheckbox as e}from"./controls/FormCheckbox.js";import{FormCheckboxGroup as t}from"./controls/FormCheckboxGroup.js";import{FormCombobox as n}from"./controls/FormCombobox.js";import{FormDatePicker as r}from"./controls/FormDatePicker.js";import{FormIfField as i}from"./controls/FormIfField.js";import{FormInputFile as a}from"./controls/FormInputFile.js";import{FormInputPassword as o}from"./controls/FormInputPassword.js";import{FormInputText as s}from"./controls/FormInputText.js";import{FormRadio as c}from"./controls/FormRadio.js";import{FormRadioGroup as l}from"./controls/FormRadioGroup.js";import{FormSelect as u}from"./controls/FormSelect.js";import{FormTextarea as d}from"./controls/FormTextarea.js";import{jsx as f
|
|
1
|
+
import{FormCheckbox as e}from"./controls/FormCheckbox.js";import{FormCheckboxGroup as t}from"./controls/FormCheckboxGroup.js";import{FormCombobox as n}from"./controls/FormCombobox.js";import{FormDatePicker as r}from"./controls/FormDatePicker.js";import{FormIfField as i}from"./controls/FormIfField.js";import{FormInputFile as a}from"./controls/FormInputFile.js";import{FormInputPassword as o}from"./controls/FormInputPassword.js";import{FormInputText as s}from"./controls/FormInputText.js";import{FormRadio as c}from"./controls/FormRadio.js";import{FormRadioGroup as l}from"./controls/FormRadioGroup.js";import{FormSelect as u}from"./controls/FormSelect.js";import{FormTextarea as d}from"./controls/FormTextarea.js";import{jsx as f}from"react/jsx-runtime";import{Children as p,cloneElement as m,isValidElement as h}from"react";import{FormProvider as g,useForm as _}from"react-hook-form";import{ZodEffects as v,z as y}from"zod";import{zodResolver as b}from"@hookform/resolvers/zod";const x=({defaultValues:e,rules:t=y.object({}).refine(()=>{}),onSubmit:n,children:r,...i})=>{let a=t instanceof v?t._def.schema:t,o=_({shouldFocusError:!0,...t&&Object.keys(a?.shape||{}).length>0?{resolver:b(a)}:{},defaultValues:e}),{register:s,handleSubmit:c,formState:{errors:l}}=o;return f(g,{...o,children:f(`form`,{onSubmit:c(n),...i,children:w(r,s,l,a)})})},S=[s,t,e,n,l,c,d,u,r,a,o,i],C=(e,t)=>{let n=e?.shape?.[t]||void 0;return n===void 0?!1:!(n.isOptional()||n.isNullable())},w=(e,t,n,r)=>p.map(e,e=>{if(!h(e))return e;let i=e.props;if(S.some(t=>e.type===t)&&i.name){let a={required:C(r,i.name),error:n[i.name]?.message,...i,...t(i.name,{setValueAs:e=>e===``||e===null?void 0:e})};return m(e,a)}return i.children?m(e,i,w(i.children,t,n,r)):e});x.InputText=s,x.Checkbox=e,x.CheckboxGroup=t,x.Combobox=n,x.RadioGroup=l,x.Radio=c,x.Textarea=d,x.Select=u,x.DatePicker=r,x.InputFile=a,x.InputPassword=o,x.IfField=i;export{x as Form};
|
|
2
2
|
//# sourceMappingURL=Form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["schema: ZodObject<ZodRawShape>","field: string","children: React.ReactNode","register: UseFormRegister<Record<string, string>>","errors: FieldErrors","rules: ZodObject<ZodRawShape>","value: unknown"],"sources":["../../../../src/components/forms/form/Form.tsx"],"sourcesContent":["import { Children, cloneElement, isValidElement, type ReactNode } from 'react';\nimport {\n type FieldErrors,\n FormProvider,\n type UseFormRegister,\n useForm,\n} from 'react-hook-form';\nimport { ZodEffects, type ZodObject, type ZodRawShape, z } from 'zod';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\n\nimport { FormCheckbox } from './controls/FormCheckbox';\nimport { FormCheckboxGroup } from './controls/FormCheckboxGroup';\nimport { FormCombobox } from './controls/FormCombobox';\nimport { FormDatePicker } from './controls/FormDatePicker';\nimport { FormIfField } from './controls/FormIfField';\nimport { FormInputFile } from './controls/FormInputFile';\nimport { FormInputPassword } from './controls/FormInputPassword';\nimport { FormInputText } from './controls/FormInputText';\nimport { FormRadio } from './controls/FormRadio';\nimport { FormRadioGroup } from './controls/FormRadioGroup';\nimport { FormSelect } from './controls/FormSelect';\nimport { FormTextarea } from './controls/FormTextarea';\n\nexport type FormProps = {\n defaultValues?: object;\n rules?: ZodObject<ZodRawShape> | ZodEffects<ZodObject<ZodRawShape>>;\n onSubmit: (formData: object) => void;\n children: React.ReactNode;\n};\n\nexport const Form = ({\n defaultValues,\n rules = z.object({}).refine(() => {}),\n onSubmit,\n children,\n ...props\n}: FormProps) => {\n const schema: ZodObject<ZodRawShape> =\n rules instanceof ZodEffects ? rules._def.schema : rules;\n\n const form = useForm({\n shouldFocusError: true,\n ...(rules && Object.keys(schema?.shape || {}).length > 0\n ? { resolver: zodResolver(schema) }\n : {}),\n defaultValues,\n });\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = form;\n\n return (\n <FormProvider {...form}>\n <form onSubmit={handleSubmit(onSubmit)} {...props}>\n {renderChildrenRecursively(children, register, errors, schema)}\n
|
|
1
|
+
{"version":3,"file":"Form.js","names":["schema: ZodObject<ZodRawShape>","field: string","children: React.ReactNode","register: UseFormRegister<Record<string, string>>","errors: FieldErrors","rules: ZodObject<ZodRawShape>","value: unknown"],"sources":["../../../../src/components/forms/form/Form.tsx"],"sourcesContent":["import { Children, cloneElement, isValidElement, type ReactNode } from 'react';\nimport {\n type FieldErrors,\n FormProvider,\n type UseFormRegister,\n useForm,\n} from 'react-hook-form';\nimport { ZodEffects, type ZodObject, type ZodRawShape, z } from 'zod';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\n\nimport { FormCheckbox } from './controls/FormCheckbox';\nimport { FormCheckboxGroup } from './controls/FormCheckboxGroup';\nimport { FormCombobox } from './controls/FormCombobox';\nimport { FormDatePicker } from './controls/FormDatePicker';\nimport { FormIfField } from './controls/FormIfField';\nimport { FormInputFile } from './controls/FormInputFile';\nimport { FormInputPassword } from './controls/FormInputPassword';\nimport { FormInputText } from './controls/FormInputText';\nimport { FormRadio } from './controls/FormRadio';\nimport { FormRadioGroup } from './controls/FormRadioGroup';\nimport { FormSelect } from './controls/FormSelect';\nimport { FormTextarea } from './controls/FormTextarea';\n\nexport type FormProps = {\n defaultValues?: object;\n rules?: ZodObject<ZodRawShape> | ZodEffects<ZodObject<ZodRawShape>>;\n onSubmit: (formData: object) => void;\n children: React.ReactNode;\n};\n\nexport const Form = ({\n defaultValues,\n rules = z.object({}).refine(() => {}),\n onSubmit,\n children,\n ...props\n}: FormProps) => {\n const schema: ZodObject<ZodRawShape> =\n rules instanceof ZodEffects ? rules._def.schema : rules;\n\n const form = useForm({\n shouldFocusError: true,\n ...(rules && Object.keys(schema?.shape || {}).length > 0\n ? { resolver: zodResolver(schema) }\n : {}),\n defaultValues,\n });\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = form;\n\n return (\n <FormProvider {...form}>\n <form onSubmit={handleSubmit(onSubmit)} {...props}>\n {renderChildrenRecursively(children, register, errors, schema)}\n </form>\n </FormProvider>\n );\n};\n\nconst controlList = [\n FormInputText,\n FormCheckboxGroup,\n FormCheckbox,\n FormCombobox,\n FormRadioGroup,\n FormRadio,\n FormTextarea,\n FormSelect,\n FormDatePicker,\n FormInputFile,\n FormInputPassword,\n FormIfField,\n];\n\nconst isRequired = (schema: ZodObject<ZodRawShape>, field: string) => {\n const shape = schema?.shape?.[field] || undefined;\n if (shape === undefined) {\n return false;\n }\n\n return !(shape.isOptional() || shape.isNullable());\n};\n\nconst renderChildrenRecursively = (\n children: React.ReactNode,\n register: UseFormRegister<Record<string, string>>,\n errors: FieldErrors,\n rules: ZodObject<ZodRawShape>,\n): ReactNode => {\n return Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const props = child.props as {\n name?: string;\n type?: string;\n children?: ReactNode;\n };\n\n if (controlList.some((control) => child.type === control)) {\n if (props.name) {\n const newProps = {\n required: isRequired(rules, props.name),\n error: errors[props.name]?.message,\n ...props,\n ...register(props.name, {\n setValueAs: (value: unknown) => {\n return value === '' || value === null ? undefined : value;\n },\n }),\n };\n return cloneElement(child, newProps);\n }\n }\n\n if (props.children) {\n return cloneElement(\n child,\n props,\n renderChildrenRecursively(props.children, register, errors, rules),\n );\n }\n\n return child;\n });\n};\n\nForm.InputText = FormInputText;\nForm.Checkbox = FormCheckbox;\nForm.CheckboxGroup = FormCheckboxGroup;\nForm.Combobox = FormCombobox;\nForm.RadioGroup = FormRadioGroup;\nForm.Radio = FormRadio;\nForm.Textarea = FormTextarea;\nForm.Select = FormSelect;\nForm.DatePicker = FormDatePicker;\nForm.InputFile = FormInputFile;\nForm.InputPassword = FormInputPassword;\nForm.IfField = FormIfField;\n"],"mappings":"q9BAuFA,MAxDa,EAAO,CAAC,CACnB,gBACA,QAAQ,EAAE,OAAO,CAAE,EAAC,CAAC,OAAO,IAAM,CAAE,EAAC,CACrC,WACA,WACA,GAAG,EACO,GAAK,CAWf,IAVMA,EACJ,aAAiB,EAAa,EAAM,KAAK,OAAS,EAE9C,EAAO,EAAQ,CACnB,kBAAkB,EAClB,GAAI,GAAS,OAAO,KAAK,GAAQ,OAAS,CAAE,EAAC,CAAC,OAAS,EACnD,CAAE,SAAU,EAAY,EAAO,AAAE,EACjC,CAAE,EACN,eACD,EAAC,CACI,CACJ,WACA,eACA,UAAW,CAAE,SAAQ,CACtB,CAAG,EAEJ,MACE,GAAC,EAAA,CAAa,GAAI,WAChB,EAAC,OAAA,CAAK,SAAU,EAAa,EAAS,CAAE,GAAI,WACzC,EAA0B,EAAU,EAAU,EAAQ,EAAO,EACzD,EACM,AAElB,EAEK,EAAc,CAClB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACD,EAEK,EAAa,CAACA,EAAgCC,IAAkB,CACpE,IAAM,EAAQ,GAAQ,QAAQ,QAAA,GAK9B,OAJI,QAAA,IACK,IAGA,EAAM,YAAY,EAAI,EAAM,YAAY,CAClD,EAEK,EAA4B,CAChCC,EACAC,EACAC,EACAC,IAEO,EAAS,IAAI,EAAU,AAAC,GAAU,CACvC,IAAK,EAAe,EAAM,CACxB,OAAO,EAGT,IAAM,EAAQ,EAAM,MAMpB,GAAI,EAAY,KAAK,AAAC,GAAY,EAAM,OAAS,EAAQ,EACnD,EAAM,KAAM,CACd,IAAM,EAAW,CACf,SAAU,EAAW,EAAO,EAAM,KAAK,CACvC,MAAO,EAAO,EAAM,OAAO,QAC3B,GAAG,EACH,GAAG,EAAS,EAAM,KAAM,CACtB,WAAY,AAACC,GACJ,IAAU,IAAM,IAAU,SAAA,GAAmB,CAEvD,EAAC,AACH,EACD,MAAO,GAAa,EAAO,EAAS,AACrC,CAWH,OARI,EAAM,SACD,EACL,EACA,EACA,EAA0B,EAAM,SAAU,EAAU,EAAQ,EAAM,CACnE,CAGI,CACR,EAAC,CAcJ,AAXA,EAAK,UAAY,EACjB,EAAK,SAAW,EAChB,EAAK,cAAgB,EACrB,EAAK,SAAW,EAChB,EAAK,WAAa,EAClB,EAAK,MAAQ,EACb,EAAK,SAAW,EAChB,EAAK,OAAS,EACd,EAAK,WAAa,EAClB,EAAK,UAAY,EACjB,EAAK,cAAgB,EACrB,EAAK,QAAU"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime47 from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/misc/visually-hidden/VisuallyHidden.d.ts
|
|
@@ -7,7 +7,7 @@ type VisuallyHiddenProps = {
|
|
|
7
7
|
};
|
|
8
8
|
declare const VisuallyHidden: ({
|
|
9
9
|
children
|
|
10
|
-
}: VisuallyHiddenProps) =>
|
|
10
|
+
}: VisuallyHiddenProps) => react_jsx_runtime47.JSX.Element;
|
|
11
11
|
//# sourceMappingURL=VisuallyHidden.d.ts.map
|
|
12
12
|
|
|
13
13
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisuallyHidden.d.ts","names":[],"sources":["../../../../src/components/misc/visually-hidden/VisuallyHidden.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,mBAAA;YACA,KAAA,CAAM;;AADN,cAIC,cAJkB,EACnB,CAAA;EAAA;AAAe,CAAT,EAG2B,mBAHlB,EAAA,GAGqC,
|
|
1
|
+
{"version":3,"file":"VisuallyHidden.d.ts","names":[],"sources":["../../../../src/components/misc/visually-hidden/VisuallyHidden.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,mBAAA;YACA,KAAA,CAAM;;AADN,cAIC,cAJkB,EACnB,CAAA;EAAA;AAAe,CAAT,EAG2B,mBAHlB,EAAA,GAGqC,mBAAA,CAAA,GAAA,CAAA,OAHrC;AAG3B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime28 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/navigation/breadcrumbs/Breadcrumbs.d.ts
|
|
@@ -17,7 +17,7 @@ declare const Breadcrumbs: {
|
|
|
17
17
|
separator,
|
|
18
18
|
children,
|
|
19
19
|
classNames
|
|
20
|
-
}: BreadcrumbsProps):
|
|
20
|
+
}: BreadcrumbsProps): react_jsx_runtime28.JSX.Element;
|
|
21
21
|
Item: {
|
|
22
22
|
({
|
|
23
23
|
children
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TabsListProps } from "./TabsList.js";
|
|
2
2
|
import { TabsTabProps } from "./TabsTab.js";
|
|
3
3
|
import { TabsPanelProps } from "./TabsPanel.js";
|
|
4
|
-
import * as
|
|
4
|
+
import * as react_jsx_runtime29 from "react/jsx-runtime";
|
|
5
5
|
import React from "react";
|
|
6
6
|
|
|
7
7
|
//#region src/components/navigation/tabs/Tabs.d.ts
|
|
@@ -18,14 +18,14 @@ declare const Tabs: {
|
|
|
18
18
|
classNames,
|
|
19
19
|
children,
|
|
20
20
|
...props
|
|
21
|
-
}: TabsProps):
|
|
21
|
+
}: TabsProps): react_jsx_runtime29.JSX.Element;
|
|
22
22
|
displayName: string;
|
|
23
23
|
List: {
|
|
24
24
|
({
|
|
25
25
|
classNames,
|
|
26
26
|
children,
|
|
27
27
|
...props
|
|
28
|
-
}: TabsListProps):
|
|
28
|
+
}: TabsListProps): react_jsx_runtime29.JSX.Element;
|
|
29
29
|
displayName: string;
|
|
30
30
|
};
|
|
31
31
|
Tab: {
|
|
@@ -35,7 +35,7 @@ declare const Tabs: {
|
|
|
35
35
|
endSlot,
|
|
36
36
|
children,
|
|
37
37
|
...props
|
|
38
|
-
}: TabsTabProps):
|
|
38
|
+
}: TabsTabProps): react_jsx_runtime29.JSX.Element;
|
|
39
39
|
displayName: string;
|
|
40
40
|
};
|
|
41
41
|
Panel: {
|
|
@@ -43,7 +43,7 @@ declare const Tabs: {
|
|
|
43
43
|
classNames,
|
|
44
44
|
children,
|
|
45
45
|
...props
|
|
46
|
-
}: TabsPanelProps):
|
|
46
|
+
}: TabsPanelProps): react_jsx_runtime29.JSX.Element;
|
|
47
47
|
displayName: string;
|
|
48
48
|
};
|
|
49
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","names":[],"sources":["../../../../src/components/navigation/tabs/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;;KASY,SAAA;;;;aAIC,KAAA,CAAM;;EAJP,KAAA,CAAA,EAAA,MAAS;AASrB,CAAA;AAWC,cAXY,IAWZ,EAAA;EAAA,CAAA;IAAA,UAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA,EAXwD,SAWxD,CAAA,EAXiE,
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","names":[],"sources":["../../../../src/components/navigation/tabs/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;;KASY,SAAA;;;;aAIC,KAAA,CAAM;;EAJP,KAAA,CAAA,EAAA,MAAS;AASrB,CAAA;AAWC,cAXY,IAWZ,EAAA;EAAA,CAAA;IAAA,UAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA,EAXwD,SAWxD,CAAA,EAXiE,mBAAA,CAAA,GAAA,CAAA,OAWjE;;MAXwD,EAAA;IAAS,CAAA;MAAA,UAAA;MAAA,QAAA;MAAA,GAAA;IAAA,CAAA,eAAA,CAAA,iCAAA;IAAA,WAAA,EAAA,MAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mage-ui/components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [],
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"react-dom": "^19.1.0",
|
|
43
43
|
"react-hook-form": "^7.56.4",
|
|
44
44
|
"zod": "^3.25.42",
|
|
45
|
-
"@mage-ui/preset": "0.0.
|
|
46
|
-
"@mage-ui/styled-system": "0.0.
|
|
45
|
+
"@mage-ui/preset": "0.0.33",
|
|
46
|
+
"@mage-ui/styled-system": "0.0.33"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=22.14.0"
|