@economic/taco 0.0.21-alpha.0 → 0.0.24-alpha.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/components/Dialog/Context.d.ts +1 -1
- package/dist/components/Dialog/Dialog.d.ts +2 -2
- package/dist/components/Dialog/components/Content.d.ts +2 -4
- package/dist/components/Dialog/components/Drawer.d.ts +8 -2
- package/dist/esm/components/Dialog/Context.js +4 -1
- package/dist/esm/components/Dialog/Context.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/components/Dialog/components/Drawer.js +1 -1
- package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
- package/dist/esm/components/Select/useSelect.js +2 -0
- package/dist/esm/components/Select/useSelect.js.map +1 -1
- package/dist/esm/components/Toast/Toaster.js +1 -2
- package/dist/esm/components/Toast/Toaster.js.map +1 -1
- package/dist/taco.cjs.development.js +8 -4
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +529 -465
@@ -2,10 +2,10 @@ import * as React from 'react';
|
|
2
2
|
import './Dialog.css';
|
3
3
|
import { DialogTriggerProps } from './components/Trigger';
|
4
4
|
import { DialogContentProps, DialogContentRenderProps, DialogContentDrawerRenderProps, DialogTitleProps, DialogFooterProps, DialogCloseProps } from './components/Content';
|
5
|
-
import { DialogDrawerProps } from './components/Drawer';
|
5
|
+
import { DialogDrawerProps, DialogDrawerRenderProps } from './components/Drawer';
|
6
6
|
import { DialogExtraProps } from './components/Extra';
|
7
7
|
import { DialogSize } from './types';
|
8
|
-
export { DialogContentProps, DialogContentRenderProps,
|
8
|
+
export { DialogCloseProps, DialogContentDrawerRenderProps, DialogContentProps, DialogContentRenderProps, DialogDrawerProps, DialogDrawerRenderProps, DialogFooterProps, DialogSize, DialogTitleProps, };
|
9
9
|
export declare type DialogTexts = {
|
10
10
|
/**
|
11
11
|
* Aria-label for close icon button in dialog.
|
@@ -1,8 +1,6 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
|
3
|
-
|
4
|
-
toggle: () => void;
|
5
|
-
};
|
2
|
+
import { DialogContext } from '../Context';
|
3
|
+
export declare type DialogContentDrawerRenderProps = DialogContext['drawer'];
|
6
4
|
export declare type DialogContentRenderProps = {
|
7
5
|
close: () => void;
|
8
6
|
drawer?: DialogContentDrawerRenderProps;
|
@@ -1,4 +1,10 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
|
3
|
-
declare
|
2
|
+
import { DialogContext } from '../Context';
|
3
|
+
export declare type DialogDrawerRenderProps = DialogContext['drawer'];
|
4
|
+
export declare type DialogDrawerProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'> & {
|
5
|
+
children: Omit<React.ReactNode, 'Function'> | ((props: DialogDrawerRenderProps) => React.ReactNode);
|
6
|
+
};
|
7
|
+
declare const Drawer: React.ForwardRefExoticComponent<Pick<React.HTMLAttributes<HTMLDivElement>, "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & {
|
8
|
+
children: Pick<React.ReactNode, never> | ((props: DialogDrawerRenderProps) => React.ReactNode);
|
9
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
4
10
|
export { Drawer };
|
@@ -4,7 +4,10 @@ import { createContext, useContext } from 'react';
|
|
4
4
|
var DialogContext = /*#__PURE__*/createContext({
|
5
5
|
closeOnEscape: true,
|
6
6
|
draggable: false,
|
7
|
-
drawer:
|
7
|
+
drawer: {
|
8
|
+
open: false,
|
9
|
+
toggle: function toggle() {}
|
10
|
+
},
|
8
11
|
elements: {
|
9
12
|
drawer: undefined,
|
10
13
|
extra: undefined
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Context.js","sources":["../../../../src/components/Dialog/Context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport * as React from 'react';\nimport { DialogSize } from './types';\n\nexport type DialogContext = {\n closeOnEscape: boolean;\n draggable: boolean;\n drawer
|
1
|
+
{"version":3,"file":"Context.js","sources":["../../../../src/components/Dialog/Context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport * as React from 'react';\nimport { DialogSize } from './types';\n\nexport type DialogContext = {\n closeOnEscape: boolean;\n draggable: boolean;\n drawer: {\n open: boolean;\n toggle: () => void;\n };\n elements: {\n drawer?: React.ReactNode;\n extra?: React.ReactNode;\n };\n onClose?: () => void;\n props: {};\n ref: React.Ref<HTMLElement>;\n showCloseButton: boolean;\n size: DialogSize;\n};\n\nexport const DialogContext = React.createContext<DialogContext>({\n closeOnEscape: true,\n draggable: false,\n drawer: {\n open: false,\n toggle: () => {},\n },\n elements: {\n drawer: undefined,\n extra: undefined,\n },\n onClose: () => {},\n props: {},\n ref: null,\n showCloseButton: true,\n size: 'sm',\n});\n\nexport const useCurrentDialog = () => {\n return React.useContext(DialogContext);\n};\n"],"names":["DialogContext","React","closeOnEscape","draggable","drawer","open","toggle","elements","undefined","extra","onClose","props","ref","showCloseButton","size","useCurrentDialog"],"mappings":";;AAAA;IAsBaA,aAAa,gBAAGC,aAAA,CAAmC;AAC5DC,EAAAA,aAAa,EAAE,IAD6C;AAE5DC,EAAAA,SAAS,EAAE,KAFiD;AAG5DC,EAAAA,MAAM,EAAE;AACJC,IAAAA,IAAI,EAAE,KADF;AAEJC,IAAAA,MAAM,EAAE;AAFJ,GAHoD;AAO5DC,EAAAA,QAAQ,EAAE;AACNH,IAAAA,MAAM,EAAEI,SADF;AAENC,IAAAA,KAAK,EAAED;AAFD,GAPkD;AAW5DE,EAAAA,OAAO,EAAE,qBAXmD;AAY5DC,EAAAA,KAAK,EAAE,EAZqD;AAa5DC,EAAAA,GAAG,EAAE,IAbuD;AAc5DC,EAAAA,eAAe,EAAE,IAd2C;AAe5DC,EAAAA,IAAI,EAAE;AAfsD,CAAnC;IAkBhBC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAC5B,SAAOd,UAAA,CAAiBD,aAAjB,CAAP;AACH;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport './Dialog.css';\nimport { DialogTriggerProps, Trigger } from './components/Trigger';\nimport {\n Content,\n Title,\n Footer,\n Close,\n DialogContentProps,\n DialogContentRenderProps,\n DialogContentDrawerRenderProps,\n DialogTitleProps,\n DialogFooterProps,\n DialogCloseProps,\n} from './components/Content';\nimport { DialogDrawerProps, Drawer } from './components/Drawer';\nimport { DialogExtraProps, Extra } from './components/Extra';\nimport { DialogContext } from './Context';\nimport { DialogSize } from './types';\n\nexport {\n DialogContentProps,\n DialogContentRenderProps,\n
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport './Dialog.css';\nimport { DialogTriggerProps, Trigger } from './components/Trigger';\nimport {\n Content,\n Title,\n Footer,\n Close,\n DialogContentProps,\n DialogContentRenderProps,\n DialogContentDrawerRenderProps,\n DialogTitleProps,\n DialogFooterProps,\n DialogCloseProps,\n} from './components/Content';\nimport { DialogDrawerProps, DialogDrawerRenderProps, Drawer } from './components/Drawer';\nimport { DialogExtraProps, Extra } from './components/Extra';\nimport { DialogContext } from './Context';\nimport { DialogSize } from './types';\n\nexport {\n DialogCloseProps,\n DialogContentDrawerRenderProps,\n DialogContentProps,\n DialogContentRenderProps,\n DialogDrawerProps,\n DialogDrawerRenderProps,\n DialogFooterProps,\n DialogSize,\n DialogTitleProps,\n};\n\nexport type DialogTexts = {\n /**\n * Aria-label for close icon button in dialog.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n close: string;\n drag: string;\n};\n\nexport type DialogProps = {\n children: React.ReactNode | React.ReactNode[];\n /** When `true`, pressing escape will close the dialog */\n closeOnEscape?: boolean;\n /** Set whether the dialog is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Allows dragging the dialog around the screen (window constrained) */\n draggable?: boolean;\n /** Handler called when dialog closes by user interaction */\n onClose?: () => void;\n /** Called when the dialog opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n /** Control the open state of the dialog from outside the component */\n open?: boolean;\n /** Shows the close icon button of the dialog */\n showCloseButton?: boolean;\n /** Size of the dialog. This is the recommended way to set a size for dialog component. */\n size?: DialogSize;\n /** A trigger to be used for the dialog, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\n\nconst useSeparatedChildren = initialChildren => {\n return React.useMemo(() => {\n const children: any[] = [];\n let drawer;\n let extra;\n\n React.Children.toArray(initialChildren).forEach((child: any) => {\n if (child.type?.displayName === Drawer.displayName) {\n drawer = child;\n } else if (child.type?.displayName === Extra.displayName) {\n extra = child;\n } else {\n children.push(child);\n }\n });\n\n return [children, drawer, extra];\n }, [initialChildren]);\n};\n\nexport type ForwardedDialogWithStatics = React.ForwardRefExoticComponent<DialogProps & React.RefAttributes<HTMLElement>> & {\n Trigger: React.ForwardRefExoticComponent<DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n Content: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<HTMLDivElement>>;\n Title: React.ForwardRefExoticComponent<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n Footer: React.ForwardRefExoticComponent<DialogFooterProps & React.RefAttributes<HTMLDivElement>>;\n Extra: React.ForwardRefExoticComponent<DialogExtraProps & React.RefAttributes<HTMLDivElement>>;\n Drawer: React.ForwardRefExoticComponent<DialogDrawerProps & React.RefAttributes<HTMLDivElement>>;\n Close: React.ForwardRefExoticComponent<DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;\n};\n\nexport const Dialog = React.forwardRef(function Dialog(props: DialogProps, ref: React.Ref<HTMLElement>) {\n const {\n children: initialChildren,\n closeOnEscape = true,\n defaultOpen,\n draggable = false,\n onChange,\n onClose,\n open,\n showCloseButton = true,\n size = 'sm',\n trigger,\n ...otherProps\n } = props;\n const [children, drawer, extra] = useSeparatedChildren(initialChildren);\n const [drawerOpen, setDrawerOpen] = React.useState(false);\n\n const context = React.useMemo(\n () => ({\n closeOnEscape,\n draggable,\n drawer: {\n open: drawerOpen,\n toggle: () => setDrawerOpen(isDrawerOpen => !isDrawerOpen),\n },\n elements: {\n drawer,\n extra,\n },\n onClose,\n props: otherProps,\n showCloseButton,\n size,\n ref,\n }),\n [closeOnEscape, drawerOpen, draggable, drawer, extra, open, otherProps, showCloseButton]\n );\n\n return (\n <DialogContext.Provider value={context}>\n <DialogPrimitive.Root defaultOpen={defaultOpen} open={open} onOpenChange={onChange}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {children}\n </DialogPrimitive.Root>\n </DialogContext.Provider>\n );\n}) as ForwardedDialogWithStatics;\n\nDialog.Trigger = Trigger;\nDialog.Content = Content;\nDialog.Title = Title;\nDialog.Footer = Footer;\nDialog.Extra = Extra;\nDialog.Drawer = Drawer;\nDialog.Close = Close;\n"],"names":["useSeparatedChildren","initialChildren","React","children","drawer","extra","toArray","forEach","child","type","displayName","Drawer","Extra","push","Dialog","props","ref","closeOnEscape","defaultOpen","draggable","onChange","onClose","open","showCloseButton","size","trigger","otherProps","drawerOpen","setDrawerOpen","context","toggle","isDrawerOpen","elements","DialogContext","Provider","value","DialogPrimitive","onOpenChange","Trigger","Content","Title","Footer","Close"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Content.js","sources":["../../../../../src/components/Dialog/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport type { DialogContentProps as DialogPrimitiveContentProps } from '@radix-ui/react-dialog';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { useDraggable } from '../../../utils/hooks/useDraggable';\nimport { useCurrentMenu } from '../../Menu/Context';\nimport { useCurrentDialog } from '../Context';\nimport { useLocalization } from '../../Provider/Provider';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Backdrop } from '../../Backdrop/Backdrop';\n\nexport type DialogContentDrawerRenderProps = {\n open: boolean;\n toggle: () => void;\n};\n\nexport type DialogContentRenderProps = {\n close: () => void;\n drawer?: DialogContentDrawerRenderProps;\n};\n\nexport type DialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function DialogTitle(props: DialogTitleProps, ref: React.Ref<HTMLHeadingElement>) {\n const className = cn('text-center', props.className);\n return <DialogPrimitive.Title {...props} className={className} ref={ref} />;\n});\n\nexport type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport const Footer = React.forwardRef(function DialogFooter(props: DialogFooterProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn('mt-8 flex justify-end', props.className);\n return (\n <div {...props} className={className} ref={ref}>\n {props.children}\n </div>\n );\n});\n\nexport type DialogCloseProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Close = React.forwardRef(function DialogClose(props: DialogCloseProps, ref: React.Ref<HTMLButtonElement>) {\n const dialog = useCurrentDialog();\n\n return <DialogPrimitive.Close onClick={dialog.onClose} {...props} ref={ref} asChild />;\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick, renderProps }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('close'));\n };\n\n return children({ close, ref, ...renderProps });\n});\n\nexport type DialogContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n /** An accessible label to be announced when the dialog is opened */\n 'aria-label': string;\n children: Omit<React.ReactNode, 'Function'> | ((props: DialogContentRenderProps) => JSX.Element);\n};\nexport const Content = React.forwardRef(function DialogContent(props: DialogContentProps, ref: React.Ref<HTMLDivElement>) {\n const dialog = useCurrentDialog();\n const internalRef = useProxiedRef<HTMLDivElement>(ref);\n const { position, handleProps: dragHandleProps } = useDraggable(internalRef);\n const { texts } = useLocalization();\n\n // if the dialog was opened by a menu, we need to close the menu when the dialog closes\n // the menu is still open (and mounted) because it is the trigger for the dialog\n const menu = useCurrentMenu();\n let handleCloseAutoFocus: DialogPrimitiveContentProps['onCloseAutoFocus'];\n\n if (menu) {\n handleCloseAutoFocus = () => menu.close();\n }\n\n const className = cn('bg-white rounded relative mt-16 mx-auto animate-[fade-in_150ms] z-[997]', {\n 'w-128 text-center justify-center': dialog.size === 'dialog',\n 'w-xs': dialog.size === 'xs',\n 'w-sm': dialog.size === 'sm',\n 'w-md': dialog.size === 'md',\n 'w-lg': dialog.size === 'lg',\n });\n\n const containerClassName = cn(\n 'bg-white p-6 rounded relative z-[999]',\n 'shadow-[0_6px_9px_0_rgba(89,85,98,0.3),0_0_1px_0_rgba(89,85,98,0.2)]',\n {\n 'rounded-b-none': !!dialog.elements.extra,\n },\n props.className\n );\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (!dialog.closeOnEscape) {\n event.preventDefault();\n } else if (dialog.onClose) {\n dialog.onClose();\n }\n };\n\n // the chosen behaviour in taco is that outside clicks do not close the dialog\n const handleInteractOutside = event => event.preventDefault();\n\n let output;\n\n if (typeof props.children === 'function') {\n output = (\n <DialogPrimitive.Close asChild>\n <RenderPropWrapper renderProps={{ drawer: dialog.drawer }}>{props.children}</RenderPropWrapper>\n </DialogPrimitive.Close>\n );\n } else {\n output = props.children;\n }\n\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <Backdrop>\n <DialogPrimitive.Content\n {...props}\n className={className}\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={handleInteractOutside}\n onCloseAutoFocus={handleCloseAutoFocus}\n ref={ref}\n style={{\n ...props.style,\n left: dialog.draggable ? `${position.x}px` : undefined,\n top: dialog.draggable ? `${position.y}px` : undefined,\n }}\n >\n <div className={containerClassName} data-taco=\"dialog\">\n {output}\n {dialog.draggable && (\n <div\n {...dragHandleProps}\n aria-label={texts.dialog.drag}\n className=\"yt-dialog__drag absolute-center-x bg-grey-light top-1.5 h-3 w-24 cursor-move rounded text-center\"\n />\n )}\n {dialog.showCloseButton ? (\n <DialogPrimitive.Close onClick={dialog.onClose} asChild>\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.dialog.close}\n className=\"absolute top-0 right-0 mt-2 mr-2\"\n icon=\"close\"\n />\n </DialogPrimitive.Close>\n ) : null}\n </div>\n {dialog.elements.drawer}\n {dialog.elements.extra}\n </DialogPrimitive.Content>\n </Backdrop>\n </DialogPrimitive.Overlay>\n </DialogPrimitive.Portal>\n );\n});\n"],"names":["Title","React","DialogTitle","props","ref","className","cn","DialogPrimitive","Footer","DialogFooter","children","Close","DialogClose","dialog","useCurrentDialog","onClick","onClose","asChild","RenderPropWrapper","renderProps","close","CustomEvent","Content","DialogContent","internalRef","useProxiedRef","useDraggable","position","dragHandleProps","handleProps","useLocalization","texts","menu","useCurrentMenu","handleCloseAutoFocus","size","containerClassName","elements","extra","handleEscapeKeyDown","event","closeOnEscape","preventDefault","handleInteractOutside","output","drawer","Backdrop","onEscapeKeyDown","onInteractOutside","onCloseAutoFocus","style","left","draggable","x","undefined","top","y","drag","showCloseButton","IconButton","appearance","icon"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../../../../src/components/Dialog/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport type { DialogContentProps as DialogPrimitiveContentProps } from '@radix-ui/react-dialog';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { useDraggable } from '../../../utils/hooks/useDraggable';\nimport { useCurrentMenu } from '../../Menu/Context';\nimport { DialogContext, useCurrentDialog } from '../Context';\nimport { useLocalization } from '../../Provider/Provider';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Backdrop } from '../../Backdrop/Backdrop';\n\nexport type DialogContentDrawerRenderProps = DialogContext['drawer'];\n\nexport type DialogContentRenderProps = {\n close: () => void;\n drawer?: DialogContentDrawerRenderProps;\n};\n\nexport type DialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function DialogTitle(props: DialogTitleProps, ref: React.Ref<HTMLHeadingElement>) {\n const className = cn('text-center', props.className);\n return <DialogPrimitive.Title {...props} className={className} ref={ref} />;\n});\n\nexport type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport const Footer = React.forwardRef(function DialogFooter(props: DialogFooterProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn('mt-8 flex justify-end', props.className);\n return (\n <div {...props} className={className} ref={ref}>\n {props.children}\n </div>\n );\n});\n\nexport type DialogCloseProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Close = React.forwardRef(function DialogClose(props: DialogCloseProps, ref: React.Ref<HTMLButtonElement>) {\n const dialog = useCurrentDialog();\n\n return <DialogPrimitive.Close onClick={dialog.onClose} {...props} ref={ref} asChild />;\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick, renderProps }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('close'));\n };\n\n return children({ close, ref, ...renderProps });\n});\n\nexport type DialogContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n /** An accessible label to be announced when the dialog is opened */\n 'aria-label': string;\n children: Omit<React.ReactNode, 'Function'> | ((props: DialogContentRenderProps) => JSX.Element);\n};\nexport const Content = React.forwardRef(function DialogContent(props: DialogContentProps, ref: React.Ref<HTMLDivElement>) {\n const dialog = useCurrentDialog();\n const internalRef = useProxiedRef<HTMLDivElement>(ref);\n const { position, handleProps: dragHandleProps } = useDraggable(internalRef);\n const { texts } = useLocalization();\n\n // if the dialog was opened by a menu, we need to close the menu when the dialog closes\n // the menu is still open (and mounted) because it is the trigger for the dialog\n const menu = useCurrentMenu();\n let handleCloseAutoFocus: DialogPrimitiveContentProps['onCloseAutoFocus'];\n\n if (menu) {\n handleCloseAutoFocus = () => menu.close();\n }\n\n const className = cn('bg-white rounded relative mt-16 mx-auto animate-[fade-in_150ms] z-[997]', {\n 'w-128 text-center justify-center': dialog.size === 'dialog',\n 'w-xs': dialog.size === 'xs',\n 'w-sm': dialog.size === 'sm',\n 'w-md': dialog.size === 'md',\n 'w-lg': dialog.size === 'lg',\n });\n\n const containerClassName = cn(\n 'bg-white p-6 rounded relative z-[999]',\n 'shadow-[0_6px_9px_0_rgba(89,85,98,0.3),0_0_1px_0_rgba(89,85,98,0.2)]',\n {\n 'rounded-b-none': !!dialog.elements.extra,\n },\n props.className\n );\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (!dialog.closeOnEscape) {\n event.preventDefault();\n } else if (dialog.onClose) {\n dialog.onClose();\n }\n };\n\n // the chosen behaviour in taco is that outside clicks do not close the dialog\n const handleInteractOutside = event => event.preventDefault();\n\n let output;\n\n if (typeof props.children === 'function') {\n output = (\n <DialogPrimitive.Close asChild>\n <RenderPropWrapper renderProps={{ drawer: dialog.drawer }}>{props.children}</RenderPropWrapper>\n </DialogPrimitive.Close>\n );\n } else {\n output = props.children;\n }\n\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <Backdrop>\n <DialogPrimitive.Content\n {...props}\n className={className}\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={handleInteractOutside}\n onCloseAutoFocus={handleCloseAutoFocus}\n ref={ref}\n style={{\n ...props.style,\n left: dialog.draggable ? `${position.x}px` : undefined,\n top: dialog.draggable ? `${position.y}px` : undefined,\n }}\n >\n <div className={containerClassName} data-taco=\"dialog\">\n {output}\n {dialog.draggable && (\n <div\n {...dragHandleProps}\n aria-label={texts.dialog.drag}\n className=\"yt-dialog__drag absolute-center-x bg-grey-light top-1.5 h-3 w-24 cursor-move rounded text-center\"\n />\n )}\n {dialog.showCloseButton ? (\n <DialogPrimitive.Close onClick={dialog.onClose} asChild>\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.dialog.close}\n className=\"absolute top-0 right-0 mt-2 mr-2\"\n icon=\"close\"\n />\n </DialogPrimitive.Close>\n ) : null}\n </div>\n {dialog.elements.drawer}\n {dialog.elements.extra}\n </DialogPrimitive.Content>\n </Backdrop>\n </DialogPrimitive.Overlay>\n </DialogPrimitive.Portal>\n );\n});\n"],"names":["Title","React","DialogTitle","props","ref","className","cn","DialogPrimitive","Footer","DialogFooter","children","Close","DialogClose","dialog","useCurrentDialog","onClick","onClose","asChild","RenderPropWrapper","renderProps","close","CustomEvent","Content","DialogContent","internalRef","useProxiedRef","useDraggable","position","dragHandleProps","handleProps","useLocalization","texts","menu","useCurrentMenu","handleCloseAutoFocus","size","containerClassName","elements","extra","handleEscapeKeyDown","event","closeOnEscape","preventDefault","handleInteractOutside","output","drawer","Backdrop","onEscapeKeyDown","onInteractOutside","onCloseAutoFocus","style","left","draggable","x","undefined","top","y","drag","showCloseButton","IconButton","appearance","icon"],"mappings":"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"}
|
@@ -34,7 +34,7 @@ var Drawer = /*#__PURE__*/forwardRef(function DialogDrawer(props, ref) {
|
|
34
34
|
},
|
35
35
|
animate: (_dialog$drawer2 = dialog.drawer) !== null && _dialog$drawer2 !== void 0 && _dialog$drawer2.open ? 'visible' : 'hidden',
|
36
36
|
ref: ref
|
37
|
-
}));
|
37
|
+
}), typeof props.children === 'function' ? props.children(dialog.drawer) : props.children);
|
38
38
|
});
|
39
39
|
Drawer.displayName = 'DialogDrawer';
|
40
40
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Drawer.js","sources":["../../../../../src/components/Dialog/components/Drawer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { motion } from 'framer-motion';\nimport cn from 'classnames';\nimport { useCurrentDialog } from '../Context';\n\nexport type DialogDrawerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'\n
|
1
|
+
{"version":3,"file":"Drawer.js","sources":["../../../../../src/components/Dialog/components/Drawer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { motion } from 'framer-motion';\nimport cn from 'classnames';\nimport { DialogContext, useCurrentDialog } from '../Context';\n\nexport type DialogDrawerRenderProps = DialogContext['drawer'];\n\nexport type DialogDrawerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'\n> & {\n children: Omit<React.ReactNode, 'Function'> | ((props: DialogDrawerRenderProps) => React.ReactNode);\n};\n\nconst Drawer = React.forwardRef(function DialogDrawer(props: DialogDrawerProps, ref: React.Ref<HTMLDivElement>) {\n const dialog = useCurrentDialog();\n const className = cn(\n 'absolute top-0 z-[998] -ml-[4px] hidden h-full w-full overflow-y-auto rounded-r bg-white p-6 text-left',\n props.className\n );\n\n return (\n <motion.div\n {...props}\n className={className}\n data-taco=\"dialog-drawer\"\n aria-hidden={!dialog.drawer?.open}\n variants={{\n visible: {\n left: '100%',\n display: 'block',\n transition: { ease: 'easeOut', duration: 0.2 },\n },\n hidden: {\n left: '0%',\n transition: { ease: 'easeOut', duration: 0.2 },\n transitionEnd: {\n display: 'none',\n },\n },\n }}\n animate={dialog.drawer?.open ? 'visible' : 'hidden'}\n ref={ref}\n >\n {typeof props.children === 'function' ? props.children(dialog.drawer) : props.children}\n </motion.div>\n );\n});\nDrawer.displayName = 'DialogDrawer';\n\nexport { Drawer };\n"],"names":["Drawer","React","DialogDrawer","props","ref","dialog","useCurrentDialog","className","cn","motion","div","drawer","open","variants","visible","left","display","transition","ease","duration","hidden","transitionEnd","animate","children","displayName"],"mappings":";;;;;IAcMA,MAAM,gBAAGC,UAAA,CAAiB,SAASC,YAAT,CAAsBC,KAAtB,EAAgDC,GAAhD;;;AAC5B,MAAMC,MAAM,GAAGC,gBAAgB,EAA/B;AACA,MAAMC,SAAS,GAAGC,EAAE,CAChB,wGADgB,EAEhBL,KAAK,CAACI,SAFU,CAApB;AAKA,SACIN,aAAA,CAACQ,MAAM,CAACC,GAAR,oBACQP;AACJI,IAAAA,SAAS,EAAEA;iBACD;mBACG,oBAACF,MAAM,CAACM,MAAR,2CAAC,eAAeC,IAAhB;AACbC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,OAAO,EAAE;AACLC,QAAAA,IAAI,EAAE,MADD;AAELC,QAAAA,OAAO,EAAE,OAFJ;AAGLC,QAAAA,UAAU,EAAE;AAAEC,UAAAA,IAAI,EAAE,SAAR;AAAmBC,UAAAA,QAAQ,EAAE;AAA7B;AAHP,OADH;AAMNC,MAAAA,MAAM,EAAE;AACJL,QAAAA,IAAI,EAAE,IADF;AAEJE,QAAAA,UAAU,EAAE;AAAEC,UAAAA,IAAI,EAAE,SAAR;AAAmBC,UAAAA,QAAQ,EAAE;AAA7B,SAFR;AAGJE,QAAAA,aAAa,EAAE;AACXL,UAAAA,OAAO,EAAE;AADE;AAHX;AANF;AAcVM,IAAAA,OAAO,EAAE,mBAAAjB,MAAM,CAACM,MAAP,4DAAeC,IAAf,GAAsB,SAAtB,GAAkC;AAC3CR,IAAAA,GAAG,EAAEA;IApBT,EAsBK,OAAOD,KAAK,CAACoB,QAAb,KAA0B,UAA1B,GAAuCpB,KAAK,CAACoB,QAAN,CAAelB,MAAM,CAACM,MAAtB,CAAvC,GAAuER,KAAK,CAACoB,QAtBlF,CADJ;AA0BH,CAjCc;AAkCfvB,MAAM,CAACwB,WAAP,GAAqB,cAArB;;;;"}
|
@@ -55,6 +55,8 @@ var useSelect = function useSelect(_ref, ref) {
|
|
55
55
|
useEffect(function () {
|
56
56
|
if (value !== undefined) {
|
57
57
|
setInputValueByRef(internalInputRef.current, value);
|
58
|
+
} else if (data.length && defaultValue === undefined) {
|
59
|
+
setInputValueByRef(internalInputRef.current, data[0].value);
|
58
60
|
}
|
59
61
|
}, []); // event handlers
|
60
62
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useSelect.js","sources":["../../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport cn from 'classnames';\nimport { v4 as uuid } from 'uuid';\nimport { useLocalization } from '../Provider/Provider';\nimport { SelectProps } from './Select';\nimport { ListboxProps } from '../Listbox/Listbox';\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { ScrollableListItemValue } from '../Listbox/ScrollableList';\n\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\n button: React.ButtonHTMLAttributes<HTMLButtonElement>;\n listbox: ListboxProps;\n input: any;\n popover: { open: boolean; onOpenChange: (open: boolean) => void };\n text: string | JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onClick,\n onChange,\n readOnly,\n value = emptyValue,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const searchData = useFlattenedData(data);\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${uuid()}`, [nativeId]);\n const internalInputRef = React.useRef(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setInputValueByRef(internalInputRef.current, defaultValue);\n }\n }, [defaultValue]);\n\n React.useEffect(() => {\n if (value !== undefined) {\n setInputValueByRef(internalInputRef.current, value);\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.keyCode === keycode('up') || event.keyCode === keycode('down')) {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.keyCode) {\n case keycode('escape'): {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(inputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case keycode('tab'):\n case keycode('enter'): {\n if (event.keyCode !== keycode('tab')) {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n }\n };\n\n let text: string | JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === searchData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(searchData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(searchData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, 'mr-1 -mt-px'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(searchData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(searchData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const button: React.ButtonHTMLAttributes<HTMLButtonElement> = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n disabled,\n id: buttonId,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n type: 'button',\n };\n\n const listbox = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(internalInputRef.current, event.detail.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: inputRef,\n value,\n multiselect,\n };\n\n const input = {\n onChange: handleInputChange,\n ref: internalInputRef,\n value: value ?? '',\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: setOpen,\n },\n text,\n more,\n };\n};\n"],"names":["useSelect","ref","ariaLabel","ariaLabelledBy","data","defaultValue","disabled","emptyValue","nativeId","id","multiselect","onChange","readOnly","value","otherProps","useLocalization","texts","searchData","useFlattenedData","inputRef","useProxiedRef","React","open","setOpen","uuid","internalInputRef","buttonId","lastValue","setLastValue","undefined","setInputValueByRef","current","handleButtonKeyDown","event","keyCode","keycode","preventDefault","handleListboxKeyDown","onKeyDown","handleListboxClick","text","more","selectedValues","toString","split","length","filter","item","select","allOptionsSelected","findByValue","icon","className","cn","props","handleInputChange","persist","target","detail","sanitizeItem","indexes","path","pop","lastPath","parents","map","i","join","find","button","type","listbox","onClick","input","popover","onOpenChange"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useSelect.js","sources":["../../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport cn from 'classnames';\nimport { v4 as uuid } from 'uuid';\nimport { useLocalization } from '../Provider/Provider';\nimport { SelectProps } from './Select';\nimport { ListboxProps } from '../Listbox/Listbox';\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { ScrollableListItemValue } from '../Listbox/ScrollableList';\n\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\n button: React.ButtonHTMLAttributes<HTMLButtonElement>;\n listbox: ListboxProps;\n input: any;\n popover: { open: boolean; onOpenChange: (open: boolean) => void };\n text: string | JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onClick,\n onChange,\n readOnly,\n value = emptyValue,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const searchData = useFlattenedData(data);\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${uuid()}`, [nativeId]);\n const internalInputRef = React.useRef(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setInputValueByRef(internalInputRef.current, defaultValue);\n }\n }, [defaultValue]);\n\n React.useEffect(() => {\n if (value !== undefined) {\n setInputValueByRef(internalInputRef.current, value);\n } else if (data.length && defaultValue === undefined) {\n setInputValueByRef(internalInputRef.current, data[0].value);\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.keyCode === keycode('up') || event.keyCode === keycode('down')) {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.keyCode) {\n case keycode('escape'): {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(inputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case keycode('tab'):\n case keycode('enter'): {\n if (event.keyCode !== keycode('tab')) {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n }\n };\n\n let text: string | JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === searchData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(searchData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(searchData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, 'mr-1 -mt-px'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(searchData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(searchData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const button: React.ButtonHTMLAttributes<HTMLButtonElement> = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n disabled,\n id: buttonId,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n type: 'button',\n };\n\n const listbox = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(internalInputRef.current, event.detail.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: inputRef,\n value,\n multiselect,\n };\n\n const input = {\n onChange: handleInputChange,\n ref: internalInputRef,\n value: value ?? '',\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: setOpen,\n },\n text,\n more,\n };\n};\n"],"names":["useSelect","ref","ariaLabel","ariaLabelledBy","data","defaultValue","disabled","emptyValue","nativeId","id","multiselect","onChange","readOnly","value","otherProps","useLocalization","texts","searchData","useFlattenedData","inputRef","useProxiedRef","React","open","setOpen","uuid","internalInputRef","buttonId","lastValue","setLastValue","undefined","setInputValueByRef","current","length","handleButtonKeyDown","event","keyCode","keycode","preventDefault","handleListboxKeyDown","onKeyDown","handleListboxClick","text","more","selectedValues","toString","split","filter","item","select","allOptionsSelected","findByValue","icon","className","cn","props","handleInputChange","persist","target","detail","sanitizeItem","indexes","path","pop","lastPath","parents","map","i","join","find","button","type","listbox","onClick","input","popover","onOpenChange"],"mappings":"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"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
2
2
|
import { useState, useCallback, useEffect, createElement, useContext, createContext } from 'react';
|
3
3
|
import { v4 } from 'uuid';
|
4
|
-
import { Root } from '@radix-ui/react-portal';
|
5
4
|
import { AnimatePresence, motion } from 'framer-motion';
|
6
5
|
import { Toast } from './Toast.js';
|
7
6
|
|
@@ -148,7 +147,7 @@ var ToastProvider = function ToastProvider(_ref) {
|
|
148
147
|
}, []);
|
149
148
|
return createElement(ToastContext.Provider, Object.assign({}, props, {
|
150
149
|
value: toaster
|
151
|
-
}), children, createElement(
|
150
|
+
}), children, createElement("div", {
|
152
151
|
id: "yt-toast__container",
|
153
152
|
className: "pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end",
|
154
153
|
role: "log"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Toaster.js","sources":["../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport * as Portal from '@radix-ui/react-portal';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ToastOptions, Toast, ToastProps } from './Toast';\nimport './Toast.css';\n\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\n\ntype ToastCreator<T> = (content: React.ReactNode | ((close: () => void) => React.ReactNode), options?: ToastOptions) => T;\n\nexport interface Toaster<T> extends ToastCreator<T> {\n success: ToastCreator<T>;\n error: ToastCreator<T>;\n warning: ToastCreator<T>;\n information: ToastCreator<T>;\n loading: ToastCreator<T>;\n}\n\nexport interface ToastReference {\n /** Show a success toast */\n success: ToastCreator<void>;\n /** Show an error toast */\n error: ToastCreator<void>;\n /** Show a warning toast */\n warning: ToastCreator<void>;\n /** Show an information toast */\n information: ToastCreator<void>;\n /** Show a loading toast */\n loading: ToastCreator<void>;\n /**\n * Close an existing toast.\n * The toast function returns a reference to the active toast,\n * allowing you to programmatically close it when needed\n */\n close: () => void;\n}\n\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n}\n\ntype InternalToast = Omit<ToastProps, 'onClose'>;\n\nconst insertToastWithoutDuplicates = (\n currentToasts: InternalToast[],\n id: string,\n content: React.ReactNode,\n options: ToastOptions,\n close: () => void\n): InternalToast[] => {\n const nextToasts = [...currentToasts];\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\n\n if (existingToastIndex > -1) {\n nextToasts[existingToastIndex].lastDuplicateId = id;\n nextToasts[existingToastIndex].lastUpdated = Date.now();\n } else {\n nextToasts.push({\n id,\n content: typeof content === 'function' ? content(close) : content,\n options,\n });\n }\n\n return nextToasts;\n};\n\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\n\n const handleClose = (id: string): void => {\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\n };\n\n // memoize (useCallback) this function,\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\n const toaster = React.useCallback((content: React.ReactNode, options: ToastOptions): ToastReference => {\n const id = uuid();\n const close = (): void => handleClose(id);\n\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\n\n const update = (content: React.ReactNode, options: ToastOptions): void => {\n setToasts(currentToasts => {\n const nextToasts = currentToasts.filter(toast => {\n if (toast.lastDuplicateId) {\n return toast.lastDuplicateId !== id;\n }\n\n return toast.id !== id;\n });\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\n });\n };\n\n const success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n };\n const error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'error' });\n };\n const warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'warning' });\n };\n const information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'information' });\n };\n const loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'loading' });\n };\n\n return {\n success,\n error,\n warning,\n information,\n loading,\n close,\n };\n }, []) as Toaster<ToastReference>;\n\n // no need to rebind these every render, do them once in an effect\n React.useEffect(() => {\n toaster.success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n toaster.error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'error' });\n toaster.warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'warning' });\n toaster.information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'information' });\n toaster.loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'loading' });\n }, []);\n\n return (\n <ToastContext.Provider {...props} value={toaster}>\n {children}\n <Portal.Root\n id=\"yt-toast__container\"\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\n role=\"log\"\n >\n <AnimatePresence initial={false}>\n {toasts.map((toast: ToastProps) => (\n <motion.div\n key={toast.id}\n transition={{\n type: 'spring',\n damping: 20,\n stiffness: 300,\n }}\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}\n >\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\n </motion.div>\n ))}\n </AnimatePresence>\n </Portal.Root>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","Portal","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Toaster.js","sources":["../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ToastOptions, Toast, ToastProps } from './Toast';\nimport './Toast.css';\n\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\n\ntype ToastCreator<T> = (content: React.ReactNode | ((close: () => void) => React.ReactNode), options?: ToastOptions) => T;\n\nexport interface Toaster<T> extends ToastCreator<T> {\n success: ToastCreator<T>;\n error: ToastCreator<T>;\n warning: ToastCreator<T>;\n information: ToastCreator<T>;\n loading: ToastCreator<T>;\n}\n\nexport interface ToastReference {\n /** Show a success toast */\n success: ToastCreator<void>;\n /** Show an error toast */\n error: ToastCreator<void>;\n /** Show a warning toast */\n warning: ToastCreator<void>;\n /** Show an information toast */\n information: ToastCreator<void>;\n /** Show a loading toast */\n loading: ToastCreator<void>;\n /**\n * Close an existing toast.\n * The toast function returns a reference to the active toast,\n * allowing you to programmatically close it when needed\n */\n close: () => void;\n}\n\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n}\n\ntype InternalToast = Omit<ToastProps, 'onClose'>;\n\nconst insertToastWithoutDuplicates = (\n currentToasts: InternalToast[],\n id: string,\n content: React.ReactNode,\n options: ToastOptions,\n close: () => void\n): InternalToast[] => {\n const nextToasts = [...currentToasts];\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\n\n if (existingToastIndex > -1) {\n nextToasts[existingToastIndex].lastDuplicateId = id;\n nextToasts[existingToastIndex].lastUpdated = Date.now();\n } else {\n nextToasts.push({\n id,\n content: typeof content === 'function' ? content(close) : content,\n options,\n });\n }\n\n return nextToasts;\n};\n\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\n\n const handleClose = (id: string): void => {\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\n };\n\n // memoize (useCallback) this function,\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\n const toaster = React.useCallback((content: React.ReactNode, options: ToastOptions): ToastReference => {\n const id = uuid();\n const close = (): void => handleClose(id);\n\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\n\n const update = (content: React.ReactNode, options: ToastOptions): void => {\n setToasts(currentToasts => {\n const nextToasts = currentToasts.filter(toast => {\n if (toast.lastDuplicateId) {\n return toast.lastDuplicateId !== id;\n }\n\n return toast.id !== id;\n });\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\n });\n };\n\n const success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n };\n const error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'error' });\n };\n const warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'warning' });\n };\n const information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'information' });\n };\n const loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'loading' });\n };\n\n return {\n success,\n error,\n warning,\n information,\n loading,\n close,\n };\n }, []) as Toaster<ToastReference>;\n\n // no need to rebind these every render, do them once in an effect\n React.useEffect(() => {\n toaster.success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n toaster.error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'error' });\n toaster.warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'warning' });\n toaster.information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'information' });\n toaster.loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'loading' });\n }, []);\n\n return (\n <ToastContext.Provider {...props} value={toaster}>\n {children}\n <div\n id=\"yt-toast__container\"\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\n role=\"log\"\n >\n <AnimatePresence initial={false}>\n {toasts.map((toast: ToastProps) => (\n <motion.div\n key={toast.id}\n transition={{\n type: 'spring',\n damping: 20,\n stiffness: 300,\n }}\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}\n >\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\n </motion.div>\n ))}\n </AnimatePresence>\n </div>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":"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"}
|
@@ -11,7 +11,6 @@ var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
11
11
|
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
12
12
|
var ReactDayPicker = _interopDefault(require('react-day-picker'));
|
13
13
|
var uuid = require('uuid');
|
14
|
-
var Portal = require('@radix-ui/react-portal');
|
15
14
|
var framerMotion = require('framer-motion');
|
16
15
|
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
17
16
|
var PopoverPrimitive = require('@radix-ui/react-popover');
|
@@ -3888,7 +3887,7 @@ var ToastProvider = function ToastProvider(_ref) {
|
|
3888
3887
|
}, []);
|
3889
3888
|
return React.createElement(ToastContext.Provider, Object.assign({}, props, {
|
3890
3889
|
value: toaster
|
3891
|
-
}), children, React.createElement(
|
3890
|
+
}), children, React.createElement("div", {
|
3892
3891
|
id: "yt-toast__container",
|
3893
3892
|
className: "pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end",
|
3894
3893
|
role: "log"
|
@@ -5603,7 +5602,10 @@ var Datepicker = /*#__PURE__*/React.forwardRef(function Datepicker(props, ref) {
|
|
5603
5602
|
var DialogContext = /*#__PURE__*/React.createContext({
|
5604
5603
|
closeOnEscape: true,
|
5605
5604
|
draggable: false,
|
5606
|
-
drawer:
|
5605
|
+
drawer: {
|
5606
|
+
open: false,
|
5607
|
+
toggle: function toggle() {}
|
5608
|
+
},
|
5607
5609
|
elements: {
|
5608
5610
|
drawer: undefined,
|
5609
5611
|
extra: undefined
|
@@ -5827,7 +5829,7 @@ var Drawer = /*#__PURE__*/React.forwardRef(function DialogDrawer(props, ref) {
|
|
5827
5829
|
},
|
5828
5830
|
animate: (_dialog$drawer2 = dialog.drawer) !== null && _dialog$drawer2 !== void 0 && _dialog$drawer2.open ? 'visible' : 'hidden',
|
5829
5831
|
ref: ref
|
5830
|
-
}));
|
5832
|
+
}), typeof props.children === 'function' ? props.children(dialog.drawer) : props.children);
|
5831
5833
|
});
|
5832
5834
|
Drawer.displayName = 'DialogDrawer';
|
5833
5835
|
|
@@ -7385,6 +7387,8 @@ var useSelect = function useSelect(_ref, ref) {
|
|
7385
7387
|
React.useEffect(function () {
|
7386
7388
|
if (value !== undefined) {
|
7387
7389
|
setInputValueByRef$1(internalInputRef.current, value);
|
7390
|
+
} else if (data.length && defaultValue === undefined) {
|
7391
|
+
setInputValueByRef$1(internalInputRef.current, data[0].value);
|
7388
7392
|
}
|
7389
7393
|
}, []); // event handlers
|
7390
7394
|
|