@consta/uikit 5.0.0-beta.1 → 5.0.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.
Files changed (42) hide show
  1. package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.d.ts +1 -1
  2. package/__internal__/src/components/ContextMenu/helpers.d.ts +2 -2
  3. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -1
  4. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js +1 -1
  5. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js.map +1 -1
  6. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -1
  7. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
  8. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
  9. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -1
  10. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js +1 -1
  11. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js.map +1 -1
  12. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -1
  13. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
  14. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
  15. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -1
  16. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js +1 -1
  17. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js.map +1 -1
  18. package/__internal__/src/components/Popover/Popover.d.ts +1 -1
  19. package/__internal__/src/components/ProgressStepBar/helpers.d.ts +1 -1
  20. package/__internal__/src/components/Skeleton/SkeletonBrick/SkeletonBrick.d.ts +5 -5
  21. package/__internal__/src/components/Skeleton/SkeletonBrick/SkeletonBrick.js +1 -1
  22. package/__internal__/src/components/Skeleton/SkeletonBrick/SkeletonBrick.js.map +1 -1
  23. package/__internal__/src/components/Skeleton/SkeletonCircle/SkeletonCircle.d.ts +5 -5
  24. package/__internal__/src/components/Skeleton/SkeletonCircle/SkeletonCircle.js +1 -1
  25. package/__internal__/src/components/Skeleton/SkeletonCircle/SkeletonCircle.js.map +1 -1
  26. package/__internal__/src/components/Skeleton/SkeletonText/SkeletonText.d.ts +3 -3
  27. package/__internal__/src/components/Skeleton/SkeletonText/SkeletonText.js +1 -1
  28. package/__internal__/src/components/Skeleton/SkeletonText/SkeletonText.js.map +1 -1
  29. package/__internal__/src/components/Tooltip/Tooltip.d.ts +1 -1
  30. package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.d.ts +1 -1
  31. package/__internal__/src/hooks/useThemeVars/helpers.d.ts +12 -0
  32. package/__internal__/src/hooks/useThemeVars/helpers.js +2 -0
  33. package/__internal__/src/hooks/useThemeVars/helpers.js.map +1 -0
  34. package/__internal__/src/hooks/useThemeVars/index.d.ts +2 -0
  35. package/__internal__/src/hooks/useThemeVars/index.js +2 -0
  36. package/__internal__/src/hooks/useThemeVars/index.js.map +1 -0
  37. package/__internal__/src/hooks/useThemeVars/useThemeVars.d.ts +58 -0
  38. package/__internal__/src/hooks/useThemeVars/useThemeVars.js +2 -0
  39. package/__internal__/src/hooks/useThemeVars/useThemeVars.js.map +1 -0
  40. package/package.json +3 -3
  41. package/useThemeVars/index.d.ts +1 -0
  42. package/useThemeVars/index.js +1 -0
@@ -1,4 +1,4 @@
1
1
  import './ContextMenuLevelWrapper.css';
2
2
  import React from 'react';
3
3
  import { ContextMenuLevelWrapperProps } from '../types';
4
- export declare const ContextMenuLevelWrapper: React.ForwardRefExoticComponent<Pick<ContextMenuLevelWrapperProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "direction" | "offset" | "position" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isMobile"> & React.RefAttributes<HTMLDivElement>>;
4
+ export declare const ContextMenuLevelWrapper: React.ForwardRefExoticComponent<Pick<ContextMenuLevelWrapperProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "position" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isMobile"> & React.RefAttributes<HTMLDivElement>>;
@@ -20,7 +20,7 @@ export declare function withDefaultGetters<ITEM, GROUP>(props: ContextMenuLevels
20
20
  } & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
21
21
  anchorRef: import("react").RefObject<HTMLElement>;
22
22
  position?: undefined;
23
- } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "direction" | "offset" | "position" | "onItemClick" | "sortGroup" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
23
+ } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "position" | "onItemClick" | "sortGroup" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
24
24
  id: unknown;
25
25
  } ? {} : {
26
26
  getGroupId: ContextMenuPropGetGroupId<GROUP>;
@@ -67,7 +67,7 @@ export declare function withDefaultGetters<ITEM, GROUP>(props: ContextMenuLevels
67
67
  } & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
68
68
  anchorRef?: undefined;
69
69
  position: import("../Popover").Position;
70
- } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "direction" | "offset" | "position" | "onItemClick" | "sortGroup" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
70
+ } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "position" | "onItemClick" | "sortGroup" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
71
71
  id: unknown;
72
72
  } ? {} : {
73
73
  getGroupId: ContextMenuPropGetGroupId<GROUP>;
@@ -36,4 +36,4 @@ export declare const DatePickerFieldTypeDate: React.ForwardRefExoticComponent<{
36
36
  caption?: string | undefined;
37
37
  labelPosition?: "left" | "top" | undefined;
38
38
  withClearButton?: boolean | undefined;
39
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "format" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate"> & React.RefAttributes<HTMLDivElement>>;
39
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "format"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)&&d){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var v=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(v,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["dd","MM","yyyy"]),r=_slicedToArray(q,3),s=r[0],t=r[1],u=r[2];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,dd:s,MM:t,yyyy:u,date:v}),void(e&&d(null,{e:c}))}d(v,{e:c})}else e&&d(null,{e:c})}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useCallback(function(a,b,c){if((null===a||void 0===a?void 0:a.length)!==f.length&&k.current){var d;null===(d=j.current)||void 0===d?void 0:d.call(j,null,{e:c})}},[f]),o=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["dd","MM","yyyy"]),i=_slicedToArray(h,3),j=i[0],k=i[1],m=i[2];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,dd:j,MM:k,yyyy:m}),!1}return!0}},{onAccept:n,onComplete:m}),p=o.ref,q=o.setValue;return useEffect(function(){b&&isValid(b)&&q(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),p};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var v=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(v,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["dd","MM","yyyy"]),r=_slicedToArray(q,3),s=r[0],t=r[1],u=r[2];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,dd:s,MM:t,yyyy:u,date:v}),void(e&&d(null,{e:c}))}d(v,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["dd","MM","yyyy"]),i=_slicedToArray(h,3),j=i[0],k=i[1],m=i[2];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,dd:j,MM:k,yyyy:m}),!1}return!0}},{onAccept:m}),o=n.ref,p=n.setValue;return useEffect(function(){b&&isValid(b)&&p(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),o};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onComplete","stringValue","maskRef","e","current","formatArray","valueArray","validArray","map","marker","filter","item","length","date","join","Date","start","end","dd","MM","yyyy","type","getTime","onAccept","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDatePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onComplete = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n if (stringValue?.length !== formatProp.length && valueRef.current) {\n onChangeRef.current?.(null, { e });\n }\n },\n [formatProp],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date,\n pattern: formatProp,\n blocks: {\n // @ts-ignore\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n // @ts-ignore\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n // @ts-ignore\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept, onComplete },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"iEACA,OAASA,MAAM,GAANA,QAAT,CAAiBC,OAAjB,CAA0BC,gBAA1B,CAA4CC,KAAK,GAALA,OAA5C,KAAyD,UAAzD,CACA,OAASC,WAAT,CAAsBC,SAAtB,KAAuC,OAAvC,CACA,OAASC,KAAT,CAA+BC,QAA/B,KAA+C,aAA/C,CAQA,OAASC,aAAT,kDAGA,OACEC,8BADF,CAEEC,WAFF,CAGEC,QAHF,CAIEC,YAJF,kBAMA,OAASC,oBAAT,gBA2DA,MAAO,IAAMC,UAAS,CAAG,SAACC,CAAD,CAA2B,IAEhDC,EAFgD,CAS9CD,CAT8C,CAEhDC,KAFgD,CAGhDC,CAHgD,CAS9CF,CAT8C,CAGhDE,QAHgD,CAIhDC,CAJgD,CAS9CH,CAT8C,CAIhDG,OAJgD,CAKxCC,CALwC,CAS9CJ,CAT8C,CAKhDf,MALgD,CAMhDoB,CANgD,CAS9CL,CAT8C,CAMhDK,SANgD,CAOhDC,CAPgD,CAS9CN,CAT8C,CAOhDM,OAPgD,CAQhDC,CARgD,CAS9CP,CAT8C,CAQhDO,OARgD,CAU5CC,CAAW,CAAGf,aAAa,CAACS,CAAD,CAViB,CAW5CO,CAAQ,CAAGhB,aAAa,CAACQ,CAAD,CAXoB,CAY5CS,CAAU,CAAGjB,aAAa,CAACU,CAAD,CAZkB,CAc5CQ,CAAU,CAAGtB,WAAW,CAC5B,SAACuB,CAAD,CAAsBC,CAAtB,CAAwCC,CAAxC,CAAqD,IAC7CZ,EAAQ,CAAGM,CAAW,CAACO,OADsB,CAE7Cd,CAAK,CAAGQ,CAAQ,CAACM,OAF4B,CAInD,KACEd,CAAK,EACLf,OAAO,CAACe,CAAD,CADP,EAEAhB,OAAM,CAACgB,CAAD,CAAQG,CAAR,CAAN,GAA8BQ,CAHhC,GAQIV,CARJ,CAQc,CACZ,GAAI,CAACU,CAAL,CAIE,YAHIX,CAGJ,EAFEC,CAAQ,CAAC,IAAD,CAAO,CAAEY,CAAC,CAADA,CAAF,CAAP,CAEV,EALU,GAQNE,EAAW,CAAGpB,QAAQ,CAACQ,CAAD,CAAaC,CAAb,IARhB,CASNY,CAAU,CAAGrB,QAAQ,CAACgB,CAAD,CAAcP,CAAd,IATf,CAUNa,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAYzB,YAAW,CAACqB,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAVP,CAcZ,GAAIN,CAAW,CAACO,MAAZ,GAAuBL,CAAU,CAACK,MAAtC,CAA8C,CAC5C,GAAMC,EAAI,CAAGpC,MAAK,CAChB6B,CAAU,CAACQ,IAAX,CAAgB/B,8BAAhB,CADgB,CAEhBsB,CAAW,CAACS,IAAZ,CAAiB/B,8BAAjB,CAFgB,CAGhB,GAAIgC,KAHY,CAAlB,CAMA,GAAI,CAACvC,gBAAgB,CAACqC,CAAD,CAAO,CAAEG,KAAK,CAAEpB,CAAT,CAAkBqB,GAAG,CAAEtB,CAAvB,CAAP,CAArB,CAA+D,SACtCT,YAAY,CACjCe,CADiC,CAEjCR,CAFiC,CAGjCC,CAHiC,IAKjC,CAAC,IAAD,CAAO,IAAP,CAAa,MAAb,CALiC,CAD0B,uBACtDwB,CADsD,MAClDC,CADkD,MAC9CC,CAD8C,MAqB7D,iBAZArB,CAAU,CAACK,OAYX,qBAZA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAElC,oBAAoB,CAAC,CAAD,CADP,CAEnBc,WAAW,CAAXA,CAFmB,CAGnBiB,EAAE,CAAFA,CAHmB,CAInBC,EAAE,CAAFA,CAJmB,CAKnBC,IAAI,CAAJA,CALmB,CAMnBP,IAAI,CAAJA,CANmB,CAAX,CAYV,MAJIvB,CAIJ,EAHEC,CAAQ,CAAC,IAAD,CAAO,CAAEY,CAAC,CAADA,CAAF,CAAP,CAGV,CACD,CACDZ,CAAQ,CAACsB,CAAD,CAAO,CAAEV,CAAC,CAADA,CAAF,CAAP,CACT,CA/BD,IA+BWb,EA/BX,EAgCEC,CAAQ,CAAC,IAAD,CAAO,CAAEY,CAAC,CAADA,CAAF,CAAP,CAEX,CACF,CA9D2B,CA+D5B,QAACP,CAAD,WAACA,CAAD,QAACA,CAAO,CAAE0B,OAAT,EAAD,QAAqB3B,CAArB,WAAqBA,CAArB,QAAqBA,CAAO,CAAE2B,OAAT,EAArB,CAAyC7B,CAAzC,CAAqDC,CAArD,CA/D4B,CAdoB,CAgF5C6B,CAAQ,CAAG7C,WAAW,CAC1B,SAACuB,CAAD,CAAsBC,CAAtB,CAAwCC,CAAxC,CAAqD,CACnD,GAAI,QAAAF,CAAW,WAAXA,CAAA,QAAAA,CAAW,CAAEW,MAAb,IAAwBnB,CAAU,CAACmB,MAAnC,EAA6Cd,CAAQ,CAACM,OAA1D,CAAmE,iBACjEP,CAAW,CAACO,OADqD,qBACjE,OAAAP,CAAW,CAAW,IAAX,CAAiB,CAAEM,CAAC,CAADA,CAAF,CAAjB,CACZ,CACF,CALyB,CAM1B,CAACV,CAAD,CAN0B,CAhFsB,GAyFRZ,QAAQ,CAIhD,CACE2C,IAAI,CAAET,IADR,CAEEU,OAAO,CAAEhC,CAFX,CAGEiC,MAAM,CAAE,CAENN,IAAI,CAAE,CACJI,IAAI,CAAE5C,KAAK,CAAC+C,WADR,CAEJC,IAAI,CAAE,CAFF,CAGJC,EAAE,CAAE,IAHA,CAFA,CAQNV,EAAE,CAAE,CACFK,IAAI,CAAE5C,KAAK,CAAC+C,WADV,CAEFC,IAAI,CAAE,CAFJ,CAGFC,EAAE,CAAE,EAHF,CARE,CAcNX,EAAE,CAAE,CACFM,IAAI,CAAE5C,KAAK,CAAC+C,WADV,CAEFC,IAAI,CAAE,CAFJ,CAGFC,EAAE,CAAE,EAHF,CAdE,CAHV,CAuBEC,IAAI,GAvBN,CAwBEC,OAAO,GAxBT,CAyBEzD,MAAM,CAAE,gBAACuC,CAAD,QAAgBvC,QAAM,CAACuC,CAAD,CAAOpB,CAAP,CAAtB,CAzBV,CA0BEhB,KAAK,CAAE,eAACuD,CAAD,QAAoBvD,OAAK,CAACuD,CAAD,CAASvC,CAAT,CAAqB,GAAIsB,KAAzB,CAAzB,CA1BT,CA2BEkB,QAAQ,CAAE,kBAACD,CAAD,CAAoB,IACtB3B,EAAW,CAAGpB,QAAQ,CAACQ,CAAD,CAAaC,CAAb,IADA,CAEtBY,CAAU,CAAGrB,QAAQ,CAAC+C,CAAD,CAAStC,CAAT,IAFC,CAGtBa,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAYzB,YAAW,CAACqB,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAHS,CAO5B,GACEN,CAAW,CAACO,MAAZ,GAAuBL,CAAU,CAACK,MAAlC,EACA,CAACrC,OAAO,CACNE,MAAK,CACH6B,CAAU,CAACQ,IAAX,CAAgB/B,8BAAhB,CADG,CAEHsB,CAAW,CAACS,IAAZ,CAAiB/B,8BAAjB,CAFG,CAGH,GAAIgC,KAHD,CADC,CAFV,CASE,SACuB7B,YAAY,CACjC8C,CADiC,CAEjCvC,CAFiC,CAGjCC,CAHiC,IAKjC,CAAC,IAAD,CAAO,IAAP,CAAa,MAAb,CALiC,CADnC,uBACOwB,CADP,MACWC,CADX,MACeC,CADf,MAgBA,iBAPArB,CAAU,CAACK,OAOX,qBAPA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAElC,oBAAoB,CAAC,CAAD,CADP,CAEnBc,WAAW,CAAE+B,CAFM,CAGnBd,EAAE,CAAFA,CAHmB,CAInBC,EAAE,CAAFA,CAJmB,CAKnBC,IAAI,CAAJA,CALmB,CAAX,CAOV,GACD,CAED,QACD,CA/DH,CAJgD,CAqEhD,CAAEG,QAAQ,CAARA,CAAF,CAAYvB,UAAU,CAAVA,CAAZ,CArEgD,CAzFA,CAyF1CkC,CAzF0C,GAyF1CA,GAzF0C,CAyF3BC,CAzF2B,GAyFrCC,QAzFqC,CAwKlD,MANAzD,UAAS,CAAC,UAAM,CACVW,CAAK,EAAIf,OAAO,CAACe,CAAD,CADN,EAEZ6C,CAAc,CAAC7D,OAAM,CAACgB,CAAD,CAAQG,CAAR,CAAP,CAEjB,CAJQ,CAIN,QAACH,CAAD,WAACA,CAAD,QAACA,CAAK,CAAEgC,OAAP,EAAD,CAJM,CAMT,CAAOY,CACR,CAzKM"}
1
+ {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","dd","MM","yyyy","type","getTime","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDatePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n // @ts-ignore\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n // @ts-ignore\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n // @ts-ignore\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
@@ -39,4 +39,4 @@ export declare const DatePickerFieldTypeDateTime: React.ForwardRefExoticComponen
39
39
  caption?: string | undefined;
40
40
  labelPosition?: "left" | "top" | undefined;
41
41
  withClearButton?: boolean | undefined;
42
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "format" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "multiplicitySeconds" | "multiplicityMinutes" | "multiplicityHours"> & React.RefAttributes<HTMLDivElement>>;
42
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "multiplicitySeconds" | "multiplicityMinutes" | "multiplicityHours" | "format"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=a.multiplicityHours,k=a.multiplicityMinutes,l=a.multiplicitySeconds,m=useMutableRef(c),n=useMutableRef(b),o=useMutableRef(d),p=useCallback(function(a,b,c){var d=m.current,e=n.current;if(!(e&&isValid(e)&&_format(e,f)===a)&&d){if(!a)return void(e&&d(null,{e:c}));var j=getParts(f,g,!1),k=getParts(a,g,!1),l=j.map(function(a){return getPartDate(j,k,a)}).filter(function(a){return!!a});if(j.length===l.length){var y=_parse(k.join(datePickerPropSeparatorDefault),j.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(y,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),r=_slicedToArray(q,6),s=r[0],t=r[1],u=r[2],v=r[3],w=r[4],x=r[5];return null===(p=o.current)||void 0===p?void 0:p.call(o,{type:datePickerErrorTypes[0],stringValue:a,dd:s,MM:t,yyyy:u,date:y,HH:v,mm:w,ss:x}),void(e&&d(null,{e:c}))}d(y,{e:c})}else e&&d(null,{e:c})}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),q=useCallback(function(a,b,c){if((null===a||void 0===a?void 0:a.length)!==f.length&&n.current){var d;null===(d=m.current)||void 0===d?void 0:d.call(m,null,{e:c})}},[f]),r=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31},HH:j&&1<j?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,j,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:k&&1<k?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,k,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:l&&1<l?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,l,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),i=_slicedToArray(h,6),j=i[0],k=i[1],l=i[2],m=i[3],n=i[4],p=i[5];return null===(e=o.current)||void 0===e?void 0:e.call(o,{type:datePickerErrorTypes[1],stringValue:a,dd:j,MM:k,yyyy:l,HH:m,mm:n,ss:p}),!1}return!0}},{onAccept:q,onComplete:p}),s=r.ref,t=r.setValue;return useEffect(function(){b&&isValid(b)&&t(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),s};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=a.multiplicityHours,k=a.multiplicityMinutes,l=a.multiplicitySeconds,m=useMutableRef(c),n=useMutableRef(b),o=useMutableRef(d),p=useCallback(function(a,b,c){var d=m.current,e=n.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var j=getParts(f,g,!1),k=getParts(a,g,!1),l=j.map(function(a){return getPartDate(j,k,a)}).filter(function(a){return!!a});if(j.length===l.length){var y=_parse(k.join(datePickerPropSeparatorDefault),j.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(y,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),r=_slicedToArray(q,6),s=r[0],t=r[1],u=r[2],v=r[3],w=r[4],x=r[5];return null===(p=o.current)||void 0===p?void 0:p.call(o,{type:datePickerErrorTypes[0],stringValue:a,dd:s,MM:t,yyyy:u,date:y,HH:v,mm:w,ss:x}),void(e&&d(null,{e:c}))}d(y,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),q=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31},HH:j&&1<j?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,j,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:k&&1<k?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,k,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:l&&1<l?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,l,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),i=_slicedToArray(h,6),j=i[0],k=i[1],l=i[2],m=i[3],n=i[4],p=i[5];return null===(e=o.current)||void 0===e?void 0:e.call(o,{type:datePickerErrorTypes[1],stringValue:a,dd:j,MM:k,yyyy:l,HH:m,mm:n,ss:p}),!1}return!0}},{onAccept:p}),r=q.ref,s=q.setValue;return useEffect(function(){b&&isValid(b)&&s(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),r};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","useEffect","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","multiplicityHours","multiplicityMinutes","multiplicitySeconds","onChangeRef","valueRef","onErrorRef","onComplete","stringValue","maskRef","e","current","formatArray","valueArray","validArray","map","marker","filter","item","length","date","join","Date","start","end","dd","MM","yyyy","HH","mm","ss","type","getTime","onAccept","mask","pattern","blocks","MaskedRange","from","to","MaskedEnum","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport React, { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n getTimeEnum,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onComplete = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n if (stringValue?.length !== formatProp.length && valueRef.current) {\n onChangeRef.current?.(null, { e });\n }\n },\n [formatProp],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date,\n pattern: formatProp,\n blocks: {\n // @ts-ignore\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n // @ts-ignore\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n // @ts-ignore\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept, onComplete },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","useEffect","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","multiplicityHours","multiplicityMinutes","multiplicitySeconds","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","dd","MM","yyyy","HH","mm","ss","type","getTime","mask","pattern","blocks","MaskedRange","from","to","MaskedEnum","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n getTimeEnum,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
@@ -36,4 +36,4 @@ export declare const DatePickerFieldTypeMonth: React.ForwardRefExoticComponent<{
36
36
  caption?: string | undefined;
37
37
  labelPosition?: "left" | "top" | undefined;
38
38
  withClearButton?: boolean | undefined;
39
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "format" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate"> & React.RefAttributes<HTMLDivElement>>;
39
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "format"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)&&d){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var u=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(u,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["MM","yyyy"]),r=_slicedToArray(q,2),s=r[0],t=r[1];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,MM:s,yyyy:t,date:u}),void(e&&d(null,{e:c}))}d(u,{e:c})}else e&&d(null,{e:c})}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useCallback(function(a,b,c){if((null===a||void 0===a?void 0:a.length)!==f.length&&k.current){var d;null===(d=j.current)||void 0===d?void 0:d.call(j,null,{e:c})}},[f]),o=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["MM","yyyy"]),i=_slicedToArray(h,2),j=i[0],k=i[1];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,MM:j,yyyy:k}),!1}return!0}},{onAccept:n,onComplete:m}),p=o.ref,q=o.setValue;return useEffect(function(){b&&isValid(b)&&q(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),p};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var u=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(u,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["MM","yyyy"]),r=_slicedToArray(q,2),s=r[0],t=r[1];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,MM:s,yyyy:t,date:u}),void(e&&d(null,{e:c}))}d(u,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["MM","yyyy"]),i=_slicedToArray(h,2),j=i[0],k=i[1];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,MM:j,yyyy:k}),!1}return!0}},{onAccept:m}),o=n.ref,p=n.setValue;return useEffect(function(){b&&isValid(b)&&p(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),o};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onComplete","stringValue","maskRef","e","current","formatArray","valueArray","validArray","map","marker","filter","item","length","date","join","Date","start","end","MM","yyyy","type","getTime","onAccept","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonth/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeMonthPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeMonthProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onComplete = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n if (stringValue?.length !== formatProp.length && valueRef.current) {\n onChangeRef.current?.(null, { e });\n }\n },\n [formatProp],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date,\n pattern: formatProp,\n blocks: {\n // @ts-ignore\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n // @ts-ignore\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept, onComplete },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","MM","yyyy","type","getTime","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonth/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeMonthPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeMonthProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
@@ -39,4 +39,4 @@ export declare const DatePickerFieldTypeTime: React.ForwardRefExoticComponent<{
39
39
  caption?: string | undefined;
40
40
  labelPosition?: "left" | "top" | undefined;
41
41
  withClearButton?: boolean | undefined;
42
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "format" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "multiplicitySeconds" | "multiplicityMinutes" | "multiplicityHours"> & React.RefAttributes<HTMLDivElement>>;
42
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "multiplicitySeconds" | "multiplicityMinutes" | "multiplicityHours" | "format"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{useMutableRef}from"../../../hooks/useMutableRef";import{getPartDate,getParts,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,e=a.multiplicityHours,f=a.multiplicityMinutes,g=a.multiplicitySeconds,h=a.format,i=a.separator,j=a.maxDate,k=a.minDate,l=useMutableRef(c),m=useMutableRef(b),n=useMutableRef(d),o=useCallback(function(a,b,c){var d=l.current,e=m.current;if(!(e&&isValid(e)&&_format(e,h)===a)&&d){if(!a)return void(e&&d(null,{e:c}));var f=getParts(h,i,!1),g=getParts(a,i,!1),o=f.map(function(a){return getPartDate(f,g,a)}).filter(function(a){return!!a});if(f.length===o.length){var v=_parse(g.join(":"),f.join(":"),e||new Date);if(!isWithinInterval(v,{start:k,end:j})){var p,q=getPartsDate(a,h,":",!1,["HH","mm","ss"]),r=_slicedToArray(q,3),s=r[0],t=r[1],u=r[2];return null===(p=n.current)||void 0===p?void 0:p.call(n,{type:datePickerErrorTypes[0],stringValue:a,date:v,HH:s,mm:t,ss:u}),void(e&&d(null,{e:c}))}d(v,{e:c})}else e&&d(null,{e:c})}},[null===k||void 0===k?void 0:k.getTime(),null===j||void 0===j?void 0:j.getTime(),h,i]),p=useCallback(function(a,b,c){if((null===a||void 0===a?void 0:a.length)!==h.length&&m.current){var d;null===(d=l.current)||void 0===d?void 0:d.call(l,null,{e:c})}},[h]),q=useIMask({mask:Date,pattern:h,blocks:{HH:e&&1<e?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,e,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:f&&1<f?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,f,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:g&&1<g?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,g,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,h)},parse:function parse(a){return _parse(a,h,new Date)},validate:function validate(a){var b=getParts(h,i,!1),c=getParts(a,i,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(":"),b.join(":"),new Date))){var e,f=getPartsDate(a,h,":",!1,["HH","mm","ss"]),g=_slicedToArray(f,3),j=g[0],k=g[1],l=g[2];return null===(e=n.current)||void 0===e?void 0:e.call(n,{type:datePickerErrorTypes[1],stringValue:a,HH:j,mm:k,ss:l}),!1}return!0}},{onAccept:p,onComplete:o}),r=q.ref,s=q.setValue;return useEffect(function(){b&&isValid(b)&&s(_format(b,h))},[null===b||void 0===b?void 0:b.getTime()]),r};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{useMutableRef}from"../../../hooks/useMutableRef";import{getPartDate,getParts,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,e=a.multiplicityHours,f=a.multiplicityMinutes,g=a.multiplicitySeconds,h=a.format,i=a.separator,j=a.maxDate,k=a.minDate,l=useMutableRef(c),m=useMutableRef(b),n=useMutableRef(d),o=useCallback(function(a,b,c){var d=l.current,e=m.current;if(!(e&&isValid(e)&&_format(e,h)===a)){if((null===a||void 0===a?void 0:a.length)!==h.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var f=getParts(h,i,!1),g=getParts(a,i,!1),o=f.map(function(a){return getPartDate(f,g,a)}).filter(function(a){return!!a});if(f.length===o.length){var v=_parse(g.join(":"),f.join(":"),e||new Date);if(!isWithinInterval(v,{start:k,end:j})){var p,q=getPartsDate(a,h,":",!1,["HH","mm","ss"]),r=_slicedToArray(q,3),s=r[0],t=r[1],u=r[2];return null===(p=n.current)||void 0===p?void 0:p.call(n,{type:datePickerErrorTypes[0],stringValue:a,date:v,HH:s,mm:t,ss:u}),void(e&&d(null,{e:c}))}d(v,{e:c})}else e&&d(null,{e:c})}}},[null===k||void 0===k?void 0:k.getTime(),null===j||void 0===j?void 0:j.getTime(),h,i]),p=useIMask({mask:Date,pattern:h,blocks:{HH:e&&1<e?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,e,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:f&&1<f?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,f,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:g&&1<g?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,g,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,h)},parse:function parse(a){return _parse(a,h,new Date)},validate:function validate(a){var b=getParts(h,i,!1),c=getParts(a,i,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(":"),b.join(":"),new Date))){var e,f=getPartsDate(a,h,":",!1,["HH","mm","ss"]),g=_slicedToArray(f,3),j=g[0],k=g[1],l=g[2];return null===(e=n.current)||void 0===e?void 0:e.call(n,{type:datePickerErrorTypes[1],stringValue:a,HH:j,mm:k,ss:l}),!1}return!0}},{onAccept:o}),q=p.ref,r=p.setValue;return useEffect(function(){b&&isValid(b)&&r(_format(b,h))},[null===b||void 0===b?void 0:b.getTime()]),q};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","useEffect","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","getPartDate","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","multiplicityHours","multiplicityMinutes","multiplicitySeconds","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onComplete","stringValue","maskRef","e","current","formatArray","valueArray","validArray","map","marker","filter","item","length","date","join","Date","start","end","HH","mm","ss","type","getTime","onAccept","mask","pattern","blocks","MaskedEnum","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport React, { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { getPartDate, getParts, getPartsDate, getTimeEnum } from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onComplete = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(':'),\n formatArray.join(':'),\n value || new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n ':',\n false,\n ['HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n if (stringValue?.length !== formatProp.length && valueRef.current) {\n onChangeRef.current?.(null, { e });\n }\n },\n [formatProp],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date,\n pattern: formatProp,\n blocks: {\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n // @ts-ignore\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(valueArray.join(':'), formatArray.join(':'), new Date()),\n )\n ) {\n const [HH, mm, ss] = getPartsDate(string, formatProp, ':', false, [\n 'HH',\n 'mm',\n 'ss',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept, onComplete },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","useEffect","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","getPartDate","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","multiplicityHours","multiplicityMinutes","multiplicitySeconds","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","HH","mm","ss","type","getTime","mask","pattern","blocks","MaskedEnum","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { getPartDate, getParts, getPartsDate, getTimeEnum } from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(':'),\n formatArray.join(':'),\n value || new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n ':',\n false,\n ['HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(valueArray.join(':'), formatArray.join(':'), new Date()),\n )\n ) {\n const [HH, mm, ss] = getPartsDate(string, formatProp, ':', false, [\n 'HH',\n 'mm',\n 'ss',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
@@ -36,4 +36,4 @@ export declare const DatePickerFieldTypeYear: React.ForwardRefExoticComponent<{
36
36
  caption?: string | undefined;
37
37
  labelPosition?: "left" | "top" | undefined;
38
38
  withClearButton?: boolean | undefined;
39
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "format" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate"> & React.RefAttributes<HTMLDivElement>>;
39
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "caption" | "form" | "label" | "view" | "name" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "autoFocus" | "disabled" | "value" | "readOnly" | "required" | "size" | "separator" | "status" | "css" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "format"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)&&d){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var t=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(t,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["yyyy"]),r=_slicedToArray(q,1),s=r[0];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,yyyy:s,date:t}),void(e&&d(null,{e:c}))}d(t,{e:c})}else e&&d(null,{e:c})}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useCallback(function(a,b,c){if((null===a||void 0===a?void 0:a.length)!==f.length&&k.current){var d;null===(d=j.current)||void 0===d?void 0:d.call(j,null,{e:c})}},[f]),o=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["yyyy"]),i=_slicedToArray(h,1),j=i[0];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,yyyy:j}),!1}return!0}},{onAccept:n,onComplete:m}),p=o.ref,q=o.setValue;return useEffect(function(){b&&isValid(b)&&q(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),p};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var t=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(t,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["yyyy"]),r=_slicedToArray(q,1),s=r[0];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,yyyy:s,date:t}),void(e&&d(null,{e:c}))}d(t,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["yyyy"]),i=_slicedToArray(h,1),j=i[0];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,yyyy:j}),!1}return!0}},{onAccept:m}),o=n.ref,p=n.setValue;return useEffect(function(){b&&isValid(b)&&p(_format(b,f))},[null===b||void 0===b?void 0:b.getTime()]),o};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onComplete","stringValue","maskRef","e","current","formatArray","valueArray","validArray","map","marker","filter","item","length","date","join","Date","start","end","yyyy","type","getTime","onAccept","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYear/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeYearPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeYearProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onComplete = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n yyyy,\n date,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: Event) => {\n if (stringValue?.length !== formatProp.length && valueRef.current) {\n onChangeRef.current?.(null, { e });\n }\n },\n [formatProp],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date,\n pattern: formatProp,\n blocks: {\n // @ts-ignore\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [yyyy] = getPartsDate(string, formatProp, separator, false, [\n 'yyyy',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept, onComplete },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","yyyy","type","getTime","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYear/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeYearPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeYearProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n yyyy,\n date,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [yyyy] = getPartsDate(string, formatProp, separator, false, [\n 'yyyy',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
@@ -37,5 +37,5 @@ export declare type Props = PropsWithJsxAttributes<{
37
37
  onClickOutside?: ClickOutsideHandler;
38
38
  onSetDirection?: (direction: Direction) => void;
39
39
  } & PositioningProps>;
40
- export declare const Popover: React.ForwardRefExoticComponent<Pick<Props, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "direction" | "offset" | "position" | "arrowOffset" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth"> & React.RefAttributes<HTMLDivElement>>;
40
+ export declare const Popover: React.ForwardRefExoticComponent<Pick<Props, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "position" | "arrowOffset" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth"> & React.RefAttributes<HTMLDivElement>>;
41
41
  export {};
@@ -101,7 +101,7 @@ export declare function withDefaultGetters<ITEM>(props: ProgressStepBarProps<ITE
101
101
  getItemContent?: ProgressStepBarPropGetItemContent<ITEM> | undefined;
102
102
  getItemStatus?: ProgressStepBarPropGetItemStatus<ITEM> | undefined;
103
103
  getItemOnClick?: ProgressStepBarPropGetItemOnClick<ITEM> | undefined;
104
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "size" | "css" | "getItemLabel" | "getItemStatus" | "direction" | "onItemClick" | "getItemOnClick" | "getItemContent" | "steps" | "activeStepIndex" | "getItemLineStatus" | "getItemTooltipContent" | "getItemPoint" | "getItemProgress"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
104
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "size" | "css" | "getItemLabel" | "getItemStatus" | "onItemClick" | "getItemOnClick" | "direction" | "getItemContent" | "steps" | "activeStepIndex" | "getItemLineStatus" | "getItemTooltipContent" | "getItemPoint" | "getItemProgress"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
105
105
  label: string | undefined;
106
106
  } ? {} : {
107
107
  getItemLabel: ProgressStepBarPropGetItemLabel<ITEM>;
@@ -1,8 +1,8 @@
1
- import React, { CSSProperties } from 'react';
2
- declare type SkeletonBrickProps = {
3
- className?: string;
1
+ import { CSSProperties } from 'react';
2
+ import { PropsWithHTMLAttributes } from "../../../utils/types/PropsWithHTMLAttributes";
3
+ declare type SkeletonBrickProps = PropsWithHTMLAttributes<{
4
4
  width?: CSSProperties['width'];
5
5
  height: CSSProperties['height'];
6
- };
7
- export declare const SkeletonBrick: React.FC<SkeletonBrickProps>;
6
+ }, HTMLDivElement>;
7
+ export declare const SkeletonBrick: ({ className, width, height, style, ...otherProps }: SkeletonBrickProps) => JSX.Element;
8
8
  export {};
@@ -1,2 +1,2 @@
1
- import React from"react";import{cnSkeleton}from"../Skeleton";export var SkeletonBrick=function(a){var b=a.className,c=a.width,d=void 0===c?"100%":c,e=a.height;return React.createElement("div",{className:cnSkeleton(null,[b]),style:{width:d,height:e}})};
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","width","height","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React from"react";import{cnSkeleton}from"../Skeleton";export var SkeletonBrick=function(a){var b=a.className,c=a.width,d=void 0===c?"100%":c,e=a.height,f=a.style,g=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnSkeleton(null,[b]),style:_objectSpread({width:d,height:e},f)},g))};
2
2
  //# sourceMappingURL=SkeletonBrick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonBrick.js","names":["React","cnSkeleton","SkeletonBrick","className","width","height"],"sources":["../../../../../../src/components/Skeleton/SkeletonBrick/SkeletonBrick.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { cnSkeleton } from '../Skeleton';\n\ntype SkeletonBrickProps = {\n className?: string;\n width?: CSSProperties['width'];\n height: CSSProperties['height'];\n};\n\nexport const SkeletonBrick: React.FC<SkeletonBrickProps> = ({\n className,\n width = '100%',\n height,\n}) => (\n <div className={cnSkeleton(null, [className])} style={{ width, height }} />\n);\n"],"mappings":"AAAA,MAAOA,MAAP,KAAqC,OAArC,CAEA,OAASC,UAAT,mBAQA,MAAO,IAAMC,cAA2C,CAAG,eACzDC,EADyD,GACzDA,SADyD,KAEzDC,KAFyD,CAEzDA,CAFyD,YAEjD,MAFiD,GAGzDC,CAHyD,GAGzDA,MAHyD,OAKzD,4BAAK,SAAS,CAAEJ,UAAU,CAAC,IAAD,CAAO,CAACE,CAAD,CAAP,CAA1B,CAA+C,KAAK,CAAE,CAAEC,KAAK,CAALA,CAAF,CAASC,MAAM,CAANA,CAAT,CAAtD,EALyD,CAApD"}
1
+ {"version":3,"file":"SkeletonBrick.js","names":["React","cnSkeleton","SkeletonBrick","className","width","height","style","otherProps"],"sources":["../../../../../../src/components/Skeleton/SkeletonBrick/SkeletonBrick.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { cnSkeleton } from '../Skeleton';\n\ntype SkeletonBrickProps = PropsWithHTMLAttributes<\n {\n width?: CSSProperties['width'];\n height: CSSProperties['height'];\n },\n HTMLDivElement\n>;\n\nexport const SkeletonBrick = ({\n className,\n width = '100%',\n height,\n style,\n ...otherProps\n}: SkeletonBrickProps) => (\n <div\n className={cnSkeleton(null, [className])}\n style={{ width, height, ...style }}\n {...otherProps}\n />\n);\n"],"mappings":"+yBAAA,MAAOA,MAAP,KAAqC,OAArC,CAIA,OAASC,UAAT,mBAUA,MAAO,IAAMC,cAAa,CAAG,eAC3BC,EAD2B,GAC3BA,SAD2B,KAE3BC,KAF2B,CAE3BA,CAF2B,YAEnB,MAFmB,GAG3BC,CAH2B,GAG3BA,MAH2B,CAI3BC,CAJ2B,GAI3BA,KAJ2B,CAKxBC,CALwB,6CAO3B,0CACE,SAAS,CAAEN,UAAU,CAAC,IAAD,CAAO,CAACE,CAAD,CAAP,CADvB,CAEE,KAAK,gBAAIC,KAAK,CAALA,CAAJ,CAAWC,MAAM,CAANA,CAAX,EAAsBC,CAAtB,CAFP,EAGMC,CAHN,EAP2B,CAAtB"}
@@ -1,8 +1,8 @@
1
1
  import './SkeletonCircle.css';
2
- import React, { CSSProperties } from 'react';
3
- declare type SkeletonCircleProps = {
4
- className?: string;
2
+ import { CSSProperties } from 'react';
3
+ import { PropsWithHTMLAttributes } from "../../../utils/types/PropsWithHTMLAttributes";
4
+ declare type SkeletonCircleProps = PropsWithHTMLAttributes<{
5
5
  size: CSSProperties['width'] & CSSProperties['height'];
6
- };
7
- export declare const SkeletonCircle: React.FC<SkeletonCircleProps>;
6
+ }, HTMLDivElement>;
7
+ export declare const SkeletonCircle: ({ className, size, style, ...otherProps }: SkeletonCircleProps) => JSX.Element;
8
8
  export {};
@@ -1,2 +1,2 @@
1
- import"./SkeletonCircle.css";import React from"react";import{cn}from"../../../utils/bem";import{cnSkeleton}from"../Skeleton";var cnSkeletonCircle=cn("SkeletonCircle");export var SkeletonCircle=function(a){var b=a.className,c=a.size;return React.createElement("div",{className:cnSkeletonCircle(null,[cnSkeleton(),b]),style:{width:c,height:c}})};
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","size","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./SkeletonCircle.css";import React from"react";import{cn}from"../../../utils/bem";import{cnSkeleton}from"../Skeleton";var cnSkeletonCircle=cn("SkeletonCircle");export var SkeletonCircle=function(a){var b=a.className,c=a.size,d=a.style,e=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnSkeletonCircle(null,[cnSkeleton(),b]),style:_objectSpread({width:c,height:c},d)},e))};
2
2
  //# sourceMappingURL=SkeletonCircle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonCircle.js","names":["React","cn","cnSkeleton","cnSkeletonCircle","SkeletonCircle","className","size","width","height"],"sources":["../../../../../../src/components/Skeleton/SkeletonCircle/SkeletonCircle.tsx"],"sourcesContent":["import './SkeletonCircle.css';\n\nimport React, { CSSProperties } from 'react';\n\nimport { cn } from '##/utils/bem';\n\nimport { cnSkeleton } from '../Skeleton';\n\ntype SkeletonCircleProps = {\n className?: string;\n size: CSSProperties['width'] & CSSProperties['height'];\n};\n\nconst cnSkeletonCircle = cn('SkeletonCircle');\n\nexport const SkeletonCircle: React.FC<SkeletonCircleProps> = ({\n className,\n size,\n}) => (\n <div\n className={cnSkeletonCircle(null, [cnSkeleton(), className])}\n style={{ width: size, height: size }}\n />\n);\n"],"mappings":"AAAA,6BAEA,MAAOA,MAAP,KAAqC,OAArC,CAEA,OAASC,EAAT,0BAEA,OAASC,UAAT,mBAOA,GAAMC,iBAAgB,CAAGF,EAAE,CAAC,gBAAD,CAA3B,CAEA,MAAO,IAAMG,eAA6C,CAAG,eAC3DC,EAD2D,GAC3DA,SAD2D,CAE3DC,CAF2D,GAE3DA,IAF2D,OAI3D,4BACE,SAAS,CAAEH,gBAAgB,CAAC,IAAD,CAAO,CAACD,UAAU,EAAX,CAAeG,CAAf,CAAP,CAD7B,CAEE,KAAK,CAAE,CAAEE,KAAK,CAAED,CAAT,CAAeE,MAAM,CAAEF,CAAvB,CAFT,EAJ2D,CAAtD"}
1
+ {"version":3,"file":"SkeletonCircle.js","names":["React","cn","cnSkeleton","cnSkeletonCircle","SkeletonCircle","className","size","style","otherProps","width","height"],"sources":["../../../../../../src/components/Skeleton/SkeletonCircle/SkeletonCircle.tsx"],"sourcesContent":["import './SkeletonCircle.css';\n\nimport React, { CSSProperties } from 'react';\n\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { cnSkeleton } from '../Skeleton';\n\ntype SkeletonCircleProps = PropsWithHTMLAttributes<\n {\n size: CSSProperties['width'] & CSSProperties['height'];\n },\n HTMLDivElement\n>;\n\nconst cnSkeletonCircle = cn('SkeletonCircle');\n\nexport const SkeletonCircle = ({\n className,\n size,\n style,\n ...otherProps\n}: SkeletonCircleProps) => (\n <div\n className={cnSkeletonCircle(null, [cnSkeleton(), className])}\n style={{ width: size, height: size, ...style }}\n {...otherProps}\n />\n);\n"],"mappings":"qyBAAA,6BAEA,MAAOA,MAAP,KAAqC,OAArC,CAEA,OAASC,EAAT,0BAGA,OAASC,UAAT,mBASA,GAAMC,iBAAgB,CAAGF,EAAE,CAAC,gBAAD,CAA3B,CAEA,MAAO,IAAMG,eAAc,CAAG,eAC5BC,EAD4B,GAC5BA,SAD4B,CAE5BC,CAF4B,GAE5BA,IAF4B,CAG5BC,CAH4B,GAG5BA,KAH4B,CAIzBC,CAJyB,6CAM5B,0CACE,SAAS,CAAEL,gBAAgB,CAAC,IAAD,CAAO,CAACD,UAAU,EAAX,CAAeG,CAAf,CAAP,CAD7B,CAEE,KAAK,gBAAII,KAAK,CAAEH,CAAX,CAAiBI,MAAM,CAAEJ,CAAzB,EAAkCC,CAAlC,CAFP,EAGMC,CAHN,EAN4B,CAAvB"}
@@ -1,13 +1,13 @@
1
1
  import './SkeletonText.css';
2
2
  import React from 'react';
3
3
  import { TextPropLineHeight, TextPropSize } from "../../Text";
4
+ import { PropsWithHTMLAttributes } from "../../../utils/types/PropsWithHTMLAttributes";
4
5
  import { SkeletonBrick } from '../Skeleton';
5
- declare type SkeletonTextProps = {
6
- className?: string;
6
+ declare type SkeletonTextProps = PropsWithHTMLAttributes<{
7
7
  rows: number;
8
8
  fontSize?: TextPropSize;
9
9
  lineHeight?: TextPropLineHeight;
10
- };
10
+ }, HTMLDivElement>;
11
11
  export declare const getRowWidth: (idx: number, total: number) => React.ComponentProps<typeof SkeletonBrick>['height'];
12
12
  export declare const SkeletonText: React.FC<SkeletonTextProps>;
13
13
  export {};
@@ -1,2 +1,2 @@
1
- import"./SkeletonText.css";import React from"react";import{textPropLineHeightDefault,textPropSizeDefault}from"../../Text";import{cn}from"../../../utils/bem";import{SkeletonBrick}from"../Skeleton";var cnSkeletonText=cn("SkeletonText");export var getRowWidth=function(a,b){if(a===b-1)return"50%";switch(a%3){case 0:return"100%";case 1:return"85%";case 2:return"93%";}return"100%"};export var SkeletonText=function(a){var b=a.className,c=a.rows,d=a.fontSize,e=void 0===d?textPropSizeDefault:d,f=a.lineHeight,g=void 0===f?textPropLineHeightDefault:f,h="var(--size-text-".concat(e,")"),i="var(--line-height-text-".concat(g,")");return React.createElement("div",{className:cnSkeletonText(null,[b]),key:c},Array(c).fill(null).map(function(a,b){return React.createElement("div",{key:b,className:cnSkeletonText("Row"),style:{fontSize:h,height:i}},React.createElement(SkeletonBrick,{width:getRowWidth(b,c),height:h}))}))};
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","rows","fontSize","lineHeight"];import"./SkeletonText.css";import React from"react";import{textPropLineHeightDefault,textPropSizeDefault}from"../../Text";import{cn}from"../../../utils/bem";import{SkeletonBrick}from"../Skeleton";var cnSkeletonText=cn("SkeletonText");export var getRowWidth=function(a,b){if(a===b-1)return"50%";switch(a%3){case 0:return"100%";case 1:return"85%";case 2:return"93%";}return"100%"};export var SkeletonText=function(a){var b=a.className,c=a.rows,d=a.fontSize,e=void 0===d?textPropSizeDefault:d,f=a.lineHeight,g=void 0===f?textPropLineHeightDefault:f,h=_objectWithoutProperties(a,_excluded),i="var(--size-text-".concat(e,")"),j="var(--line-height-text-".concat(g,")");return React.createElement("div",Object.assign({className:cnSkeletonText(null,[b]),key:c},h),Array(c).fill(null).map(function(a,b){return React.createElement("div",{key:b,className:cnSkeletonText("Row"),style:{fontSize:i,height:j}},React.createElement(SkeletonBrick,{width:getRowWidth(b,c),height:i}))}))};
2
2
  //# sourceMappingURL=SkeletonText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonText.js","names":["React","textPropLineHeightDefault","textPropSizeDefault","cn","SkeletonBrick","cnSkeletonText","getRowWidth","idx","total","SkeletonText","className","rows","fontSize","lineHeight","varFontSize","varLineHeight","Array","fill","map","_v","height"],"sources":["../../../../../../src/components/Skeleton/SkeletonText/SkeletonText.tsx"],"sourcesContent":["import './SkeletonText.css';\n\nimport React from 'react';\n\nimport {\n TextPropLineHeight,\n textPropLineHeightDefault,\n TextPropSize,\n textPropSizeDefault,\n} from '##/components/Text';\nimport { cn } from '##/utils/bem';\n\nimport { SkeletonBrick } from '../Skeleton';\n\ntype SkeletonTextProps = {\n className?: string;\n rows: number;\n fontSize?: TextPropSize;\n lineHeight?: TextPropLineHeight;\n};\n\nconst cnSkeletonText = cn('SkeletonText');\n\nexport const getRowWidth = (\n idx: number,\n total: number,\n): React.ComponentProps<typeof SkeletonBrick>['height'] => {\n if (idx === total - 1) {\n return '50%';\n }\n\n switch (idx % 3) {\n case 0:\n return '100%';\n case 1:\n return '85%';\n case 2:\n return '93%';\n }\n\n return '100%';\n};\n\nexport const SkeletonText: React.FC<SkeletonTextProps> = ({\n className,\n rows,\n fontSize = textPropSizeDefault,\n lineHeight = textPropLineHeightDefault,\n}) => {\n const varFontSize = `var(--size-text-${fontSize})`;\n const varLineHeight = `var(--line-height-text-${lineHeight})`;\n return (\n <div\n className={cnSkeletonText(null, [className])}\n key={\n /* форсируем полный ререндер компонента при смене количества строк,\n чтобы анимация у всех строк запустилась заново */\n rows\n }\n >\n {new Array(rows).fill(null).map((_v, idx) => (\n <div\n key={idx}\n className={cnSkeletonText('Row')}\n style={{ fontSize: varFontSize, height: varLineHeight }}\n >\n <SkeletonBrick width={getRowWidth(idx, rows)} height={varFontSize} />\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"AAAA,2BAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAEEC,yBAFF,CAIEC,mBAJF,kBAMA,OAASC,EAAT,0BAEA,OAASC,aAAT,mBASA,GAAMC,eAAc,CAAGF,EAAE,CAAC,cAAD,CAAzB,CAEA,MAAO,IAAMG,YAAW,CAAG,SACzBC,CADyB,CAEzBC,CAFyB,CAGgC,CACzD,GAAID,CAAG,GAAKC,CAAK,CAAG,CAApB,CACE,MAAO,KAAP,CAGF,OAAQD,CAAG,CAAG,CAAd,EACE,IAAK,EAAL,CACE,MAAO,MAAP,CACF,IAAK,EAAL,CACE,MAAO,KAAP,CACF,IAAK,EAAL,CACE,MAAO,KAAP,CANJ,CASA,MAAO,MACR,CAlBM,CAoBP,MAAO,IAAME,aAAyC,CAAG,WAKnD,IAJJC,EAII,GAJJA,SAII,CAHJC,CAGI,GAHJA,IAGI,KAFJC,QAEI,CAFJA,CAEI,YAFOV,mBAEP,OADJW,UACI,CADJA,CACI,YADSZ,yBACT,GACEa,CAAW,2BAAsBF,CAAtB,KADb,CAEEG,CAAa,kCAA6BF,CAA7B,KAFf,CAGJ,MACE,4BACE,SAAS,CAAER,cAAc,CAAC,IAAD,CAAO,CAACK,CAAD,CAAP,CAD3B,CAEE,GAAG,CAGDC,CALJ,EAQOK,KAAJ,CAAUL,CAAV,EAAgBM,IAAhB,CAAqB,IAArB,EAA2BC,GAA3B,CAA+B,SAACC,CAAD,CAAKZ,CAAL,QAC9B,4BACE,GAAG,CAAEA,CADP,CAEE,SAAS,CAAEF,cAAc,CAAC,KAAD,CAF3B,CAGE,KAAK,CAAE,CAAEO,QAAQ,CAAEE,CAAZ,CAAyBM,MAAM,CAAEL,CAAjC,CAHT,EAKE,oBAAC,aAAD,EAAe,KAAK,CAAET,WAAW,CAACC,CAAD,CAAMI,CAAN,CAAjC,CAA8C,MAAM,CAAEG,CAAtD,EALF,CAD8B,CAA/B,CARH,CAmBH,CA5BM"}
1
+ {"version":3,"file":"SkeletonText.js","names":["React","textPropLineHeightDefault","textPropSizeDefault","cn","SkeletonBrick","cnSkeletonText","getRowWidth","idx","total","SkeletonText","props","className","rows","fontSize","lineHeight","otherProps","varFontSize","varLineHeight","Array","fill","map","_v","height"],"sources":["../../../../../../src/components/Skeleton/SkeletonText/SkeletonText.tsx"],"sourcesContent":["import './SkeletonText.css';\n\nimport React from 'react';\n\nimport {\n TextPropLineHeight,\n textPropLineHeightDefault,\n TextPropSize,\n textPropSizeDefault,\n} from '##/components/Text';\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { SkeletonBrick } from '../Skeleton';\n\ntype SkeletonTextProps = PropsWithHTMLAttributes<\n {\n rows: number;\n fontSize?: TextPropSize;\n lineHeight?: TextPropLineHeight;\n },\n HTMLDivElement\n>;\n\nconst cnSkeletonText = cn('SkeletonText');\n\nexport const getRowWidth = (\n idx: number,\n total: number,\n): React.ComponentProps<typeof SkeletonBrick>['height'] => {\n if (idx === total - 1) {\n return '50%';\n }\n\n switch (idx % 3) {\n case 0:\n return '100%';\n case 1:\n return '85%';\n case 2:\n return '93%';\n }\n\n return '100%';\n};\n\nexport const SkeletonText: React.FC<SkeletonTextProps> = (\n props: SkeletonTextProps,\n) => {\n const {\n className,\n rows,\n fontSize = textPropSizeDefault,\n lineHeight = textPropLineHeightDefault,\n ...otherProps\n } = props;\n\n const varFontSize = `var(--size-text-${fontSize})`;\n const varLineHeight = `var(--line-height-text-${lineHeight})`;\n\n return (\n <div\n className={cnSkeletonText(null, [className])}\n key={\n /* форсируем полный ререндер компонента при смене количества строк,\n чтобы анимация у всех строк запустилась заново */\n rows\n }\n {...otherProps}\n >\n {new Array(rows).fill(null).map((_v, idx) => (\n <div\n key={idx}\n className={cnSkeletonText('Row')}\n style={{ fontSize: varFontSize, height: varLineHeight }}\n >\n <SkeletonBrick width={getRowWidth(idx, rows)} height={varFontSize} />\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"gJAAA,2BAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAEEC,yBAFF,CAIEC,mBAJF,kBAMA,OAASC,EAAT,0BAGA,OAASC,aAAT,mBAWA,GAAMC,eAAc,CAAGF,EAAE,CAAC,cAAD,CAAzB,CAEA,MAAO,IAAMG,YAAW,CAAG,SACzBC,CADyB,CAEzBC,CAFyB,CAGgC,CACzD,GAAID,CAAG,GAAKC,CAAK,CAAG,CAApB,CACE,MAAO,KAAP,CAGF,OAAQD,CAAG,CAAG,CAAd,EACE,IAAK,EAAL,CACE,MAAO,MAAP,CACF,IAAK,EAAL,CACE,MAAO,KAAP,CACF,IAAK,EAAL,CACE,MAAO,KAAP,CANJ,CASA,MAAO,MACR,CAlBM,CAoBP,MAAO,IAAME,aAAyC,CAAG,SACvDC,CADuD,CAEpD,IAEDC,EAFC,CAOCD,CAPD,CAEDC,SAFC,CAGDC,CAHC,CAOCF,CAPD,CAGDE,IAHC,GAOCF,CAPD,CAIDG,QAJC,CAIDA,CAJC,YAIUX,mBAJV,KAOCQ,CAPD,CAKDI,UALC,CAKDA,CALC,YAKYb,yBALZ,GAMEc,CANF,0BAOCL,CAPD,YASGM,CAAW,2BAAsBH,CAAtB,KATd,CAUGI,CAAa,kCAA6BH,CAA7B,KAVhB,CAYH,MACE,0CACE,SAAS,CAAET,cAAc,CAAC,IAAD,CAAO,CAACM,CAAD,CAAP,CAD3B,CAEE,GAAG,CAGDC,CALJ,EAOMG,CAPN,EASOG,KAAJ,CAAUN,CAAV,EAAgBO,IAAhB,CAAqB,IAArB,EAA2BC,GAA3B,CAA+B,SAACC,CAAD,CAAKd,CAAL,QAC9B,4BACE,GAAG,CAAEA,CADP,CAEE,SAAS,CAAEF,cAAc,CAAC,KAAD,CAF3B,CAGE,KAAK,CAAE,CAAEQ,QAAQ,CAAEG,CAAZ,CAAyBM,MAAM,CAAEL,CAAjC,CAHT,EAKE,oBAAC,aAAD,EAAe,KAAK,CAAEX,WAAW,CAACC,CAAD,CAAMK,CAAN,CAAjC,CAA8C,MAAM,CAAEI,CAAtD,EALF,CAD8B,CAA/B,CATH,CAoBH,CAnCM"}
@@ -1,4 +1,4 @@
1
1
  import './Tooltip.css';
2
2
  import React from 'react';
3
3
  import { TooltipProps } from './types';
4
- export declare const Tooltip: React.ForwardRefExoticComponent<Pick<TooltipProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "status" | "direction" | "offset" | "position" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth" | "isOpen"> & React.RefAttributes<HTMLDivElement>>;
4
+ export declare const Tooltip: React.ForwardRefExoticComponent<Pick<TooltipProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "status" | "position" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth" | "isOpen"> & React.RefAttributes<HTMLDivElement>>;
@@ -21,4 +21,4 @@ export declare type TooltipProps = PropsWithJsxAttributes<{
21
21
  offset?: number;
22
22
  onSetDirection?: (direction: Direction) => void;
23
23
  } & PositioningProps>;
24
- export declare const Tooltip: React.ForwardRefExoticComponent<Pick<TooltipProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "status" | "direction" | "offset" | "position" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth"> & React.RefAttributes<HTMLDivElement>>;
24
+ export declare const Tooltip: React.ForwardRefExoticComponent<Pick<TooltipProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "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" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "status" | "position" | "offset" | "direction" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,12 @@
1
+ export declare const defaultVars: {
2
+ readonly color: {
3
+ readonly primary: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
4
+ readonly accent: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
5
+ readonly invert: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
6
+ };
7
+ readonly control: readonly ["--control-radius", "--control-border-width", "--control-height-l", "--control-height-m", "--control-height-s", "--control-height-xs", "--control-box-size-m", "--control-box-size-l", "--control-space-l", "--control-space-m", "--control-space-s", "--control-space-xs", "--control-text-size-l", "--control-text-size-m", "--control-text-size-s", "--control-text-size-xs"];
8
+ readonly font: readonly ["--font-primary", "--font-mono"];
9
+ readonly size: readonly ["--size-text-2xs", "--size-text-xs", "--size-text-s", "--size-text-m", "--size-text-l", "--size-text-xl", "--size-text-2xl", "--size-text-3xl", "--size-text-4xl", "--size-text-5xl", "--size-text-6xl", "--line-height-text-2xs", "--line-height-text-xs", "--line-height-text-s", "--line-height-text-m", "--line-height-text-l"];
10
+ readonly space: readonly ["--space-3xs", "--space-2xs", "--space-xs", "--space-s", "--space-m", "--space-l", "--space-xl", "--space-2xl", "--space-3xl", "--space-4xl", "--space-5xl", "--space-6xl"];
11
+ readonly shadow: readonly ["--shadow-group", "--shadow-layer", "--shadow-modal"];
12
+ };
@@ -0,0 +1,2 @@
1
+ var cssColorVars=["--color-bg-default","--color-bg-secondary","--color-bg-brand","--color-bg-link","--color-bg-border","--color-bg-stripe","--color-bg-ghost","--color-bg-tone","--color-bg-soft","--color-bg-system","--color-bg-normal","--color-bg-success","--color-bg-caution","--color-bg-warning","--color-bg-alert","--color-bg-critical","--color-typo-primary","--color-typo-secondary","--color-typo-ghost","--color-typo-brand","--color-typo-system","--color-typo-normal","--color-typo-success","--color-typo-caution","--color-typo-warning","--color-typo-alert","--color-typo-critical","--color-typo-link","--color-typo-link-minor","--color-typo-link-hover","--color-scroll-bg","--color-scroll-thumb","--color-scroll-thumb-hover","--color-control-bg-default","--color-control-typo-default","--color-control-typo-placeholder","--color-control-bg-border-default","--color-control-bg-border-default-hover","--color-control-bg-border-focus","--color-control-bg-focus","--color-control-bg-active","--color-control-bg-primary","--color-control-bg-primary-hover","--color-control-typo-primary","--color-control-typo-primary-hover","--color-control-bg-secondary","--color-control-bg-border-secondary","--color-control-bg-border-secondary-hover","--color-control-typo-secondary","--color-control-typo-secondary-hover","--color-control-bg-ghost","--color-control-bg-ghost-hover","--color-control-typo-ghost","--color-control-typo-ghost-hover","--color-control-bg-clear","--color-control-bg-clear-hover","--color-control-typo-clear","--color-control-typo-clear-hover","--color-control-bg-disable","--color-control-bg-border-disable","--color-control-typo-disable"],cssControlVars=["--control-radius","--control-border-width","--control-height-l","--control-height-m","--control-height-s","--control-height-xs","--control-box-size-m","--control-box-size-l","--control-space-l","--control-space-m","--control-space-s","--control-space-xs","--control-text-size-l","--control-text-size-m","--control-text-size-s","--control-text-size-xs"],cssFontVars=["--font-primary","--font-mono"],cssSizeVars=["--size-text-2xs","--size-text-xs","--size-text-s","--size-text-m","--size-text-l","--size-text-xl","--size-text-2xl","--size-text-3xl","--size-text-4xl","--size-text-5xl","--size-text-6xl","--line-height-text-2xs","--line-height-text-xs","--line-height-text-s","--line-height-text-m","--line-height-text-l"],cssSpaceVars=["--space-3xs","--space-2xs","--space-xs","--space-s","--space-m","--space-l","--space-xl","--space-2xl","--space-3xl","--space-4xl","--space-5xl","--space-6xl"],cssShadowVars=["--shadow-group","--shadow-layer","--shadow-modal"];export var defaultVars={color:{primary:cssColorVars,accent:cssColorVars,invert:cssColorVars},control:cssControlVars,font:cssFontVars,size:cssSizeVars,space:cssSpaceVars,shadow:cssShadowVars};
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["cssColorVars","cssControlVars","cssFontVars","cssSizeVars","cssSpaceVars","cssShadowVars","defaultVars","color","primary","accent","invert","control","font","size","space","shadow"],"sources":["../../../../../src/hooks/useThemeVars/helpers.ts"],"sourcesContent":["const cssColorVars = [\n '--color-bg-default',\n '--color-bg-secondary',\n '--color-bg-brand',\n '--color-bg-link',\n '--color-bg-border',\n '--color-bg-stripe',\n '--color-bg-ghost',\n '--color-bg-tone',\n '--color-bg-soft',\n '--color-bg-system',\n '--color-bg-normal',\n '--color-bg-success',\n '--color-bg-caution',\n '--color-bg-warning',\n '--color-bg-alert',\n '--color-bg-critical',\n '--color-typo-primary',\n '--color-typo-secondary',\n '--color-typo-ghost',\n '--color-typo-brand',\n '--color-typo-system',\n '--color-typo-normal',\n '--color-typo-success',\n '--color-typo-caution',\n '--color-typo-warning',\n '--color-typo-alert',\n '--color-typo-critical',\n '--color-typo-link',\n '--color-typo-link-minor',\n '--color-typo-link-hover',\n '--color-scroll-bg',\n '--color-scroll-thumb',\n '--color-scroll-thumb-hover',\n '--color-control-bg-default',\n '--color-control-typo-default',\n '--color-control-typo-placeholder',\n '--color-control-bg-border-default',\n '--color-control-bg-border-default-hover',\n '--color-control-bg-border-focus',\n '--color-control-bg-focus',\n '--color-control-bg-active',\n '--color-control-bg-primary',\n '--color-control-bg-primary-hover',\n '--color-control-typo-primary',\n '--color-control-typo-primary-hover',\n '--color-control-bg-secondary',\n '--color-control-bg-border-secondary',\n '--color-control-bg-border-secondary-hover',\n '--color-control-typo-secondary',\n '--color-control-typo-secondary-hover',\n '--color-control-bg-ghost',\n '--color-control-bg-ghost-hover',\n '--color-control-typo-ghost',\n '--color-control-typo-ghost-hover',\n '--color-control-bg-clear',\n '--color-control-bg-clear-hover',\n '--color-control-typo-clear',\n '--color-control-typo-clear-hover',\n '--color-control-bg-disable',\n '--color-control-bg-border-disable',\n '--color-control-typo-disable',\n] as const;\n\nconst cssControlVars = [\n '--control-radius',\n '--control-border-width',\n '--control-height-l',\n '--control-height-m',\n '--control-height-s',\n '--control-height-xs',\n '--control-box-size-m',\n '--control-box-size-l',\n '--control-space-l',\n '--control-space-m',\n '--control-space-s',\n '--control-space-xs',\n '--control-text-size-l',\n '--control-text-size-m',\n '--control-text-size-s',\n '--control-text-size-xs',\n] as const;\n\nconst cssFontVars = ['--font-primary', '--font-mono'] as const;\n\nconst cssSizeVars = [\n '--size-text-2xs',\n '--size-text-xs',\n '--size-text-s',\n '--size-text-m',\n '--size-text-l',\n '--size-text-xl',\n '--size-text-2xl',\n '--size-text-3xl',\n '--size-text-4xl',\n '--size-text-5xl',\n '--size-text-6xl',\n '--line-height-text-2xs',\n '--line-height-text-xs',\n '--line-height-text-s',\n '--line-height-text-m',\n '--line-height-text-l',\n] as const;\n\nconst cssSpaceVars = [\n '--space-3xs',\n '--space-2xs',\n '--space-xs',\n '--space-s',\n '--space-m',\n '--space-l',\n '--space-xl',\n '--space-2xl',\n '--space-3xl',\n '--space-4xl',\n '--space-5xl',\n '--space-6xl',\n] as const;\n\nconst cssShadowVars = [\n '--shadow-group',\n '--shadow-layer',\n '--shadow-modal',\n] as const;\n\nexport const defaultVars = {\n color: {\n primary: cssColorVars,\n accent: cssColorVars,\n invert: cssColorVars,\n },\n control: cssControlVars,\n font: cssFontVars,\n size: cssSizeVars,\n space: cssSpaceVars,\n shadow: cssShadowVars,\n} as const;\n"],"mappings":"GAAMA,aAAY,CAAG,CACnB,oBADmB,CAEnB,sBAFmB,CAGnB,kBAHmB,CAInB,iBAJmB,CAKnB,mBALmB,CAMnB,mBANmB,CAOnB,kBAPmB,CAQnB,iBARmB,CASnB,iBATmB,CAUnB,mBAVmB,CAWnB,mBAXmB,CAYnB,oBAZmB,CAanB,oBAbmB,CAcnB,oBAdmB,CAenB,kBAfmB,CAgBnB,qBAhBmB,CAiBnB,sBAjBmB,CAkBnB,wBAlBmB,CAmBnB,oBAnBmB,CAoBnB,oBApBmB,CAqBnB,qBArBmB,CAsBnB,qBAtBmB,CAuBnB,sBAvBmB,CAwBnB,sBAxBmB,CAyBnB,sBAzBmB,CA0BnB,oBA1BmB,CA2BnB,uBA3BmB,CA4BnB,mBA5BmB,CA6BnB,yBA7BmB,CA8BnB,yBA9BmB,CA+BnB,mBA/BmB,CAgCnB,sBAhCmB,CAiCnB,4BAjCmB,CAkCnB,4BAlCmB,CAmCnB,8BAnCmB,CAoCnB,kCApCmB,CAqCnB,mCArCmB,CAsCnB,yCAtCmB,CAuCnB,iCAvCmB,CAwCnB,0BAxCmB,CAyCnB,2BAzCmB,CA0CnB,4BA1CmB,CA2CnB,kCA3CmB,CA4CnB,8BA5CmB,CA6CnB,oCA7CmB,CA8CnB,8BA9CmB,CA+CnB,qCA/CmB,CAgDnB,2CAhDmB,CAiDnB,gCAjDmB,CAkDnB,sCAlDmB,CAmDnB,0BAnDmB,CAoDnB,gCApDmB,CAqDnB,4BArDmB,CAsDnB,kCAtDmB,CAuDnB,0BAvDmB,CAwDnB,gCAxDmB,CAyDnB,4BAzDmB,CA0DnB,kCA1DmB,CA2DnB,4BA3DmB,CA4DnB,mCA5DmB,CA6DnB,8BA7DmB,C,CAgEfC,cAAc,CAAG,CACrB,kBADqB,CAErB,wBAFqB,CAGrB,oBAHqB,CAIrB,oBAJqB,CAKrB,oBALqB,CAMrB,qBANqB,CAOrB,sBAPqB,CAQrB,sBARqB,CASrB,mBATqB,CAUrB,mBAVqB,CAWrB,mBAXqB,CAYrB,oBAZqB,CAarB,uBAbqB,CAcrB,uBAdqB,CAerB,uBAfqB,CAgBrB,wBAhBqB,C,CAmBjBC,WAAW,CAAG,CAAC,gBAAD,CAAmB,aAAnB,C,CAEdC,WAAW,CAAG,CAClB,iBADkB,CAElB,gBAFkB,CAGlB,eAHkB,CAIlB,eAJkB,CAKlB,eALkB,CAMlB,gBANkB,CAOlB,iBAPkB,CAQlB,iBARkB,CASlB,iBATkB,CAUlB,iBAVkB,CAWlB,iBAXkB,CAYlB,wBAZkB,CAalB,uBAbkB,CAclB,sBAdkB,CAelB,sBAfkB,CAgBlB,sBAhBkB,C,CAmBdC,YAAY,CAAG,CACnB,aADmB,CAEnB,aAFmB,CAGnB,YAHmB,CAInB,WAJmB,CAKnB,WALmB,CAMnB,WANmB,CAOnB,YAPmB,CAQnB,aARmB,CASnB,aATmB,CAUnB,aAVmB,CAWnB,aAXmB,CAYnB,aAZmB,C,CAefC,aAAa,CAAG,CACpB,gBADoB,CAEpB,gBAFoB,CAGpB,gBAHoB,C,CAMtB,MAAO,IAAMC,YAAW,CAAG,CACzBC,KAAK,CAAE,CACLC,OAAO,CAAER,YADJ,CAELS,MAAM,CAAET,YAFH,CAGLU,MAAM,CAAEV,YAHH,CADkB,CAMzBW,OAAO,CAAEV,cANgB,CAOzBW,IAAI,CAAEV,WAPmB,CAQzBW,IAAI,CAAEV,WARmB,CASzBW,KAAK,CAAEV,YATkB,CAUzBW,MAAM,CAAEV,aAViB,CAApB"}
@@ -0,0 +1,2 @@
1
+ export * from './useThemeVars';
2
+ export { defaultVars } from './helpers';
@@ -0,0 +1,2 @@
1
+ export*from"./useThemeVars";export{defaultVars}from"./helpers";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["defaultVars"],"sources":["../../../../../src/hooks/useThemeVars/index.ts"],"sourcesContent":["export * from './useThemeVars';\n\nexport { defaultVars } from './helpers';\n"],"mappings":"AAAA,4BAEA,OAASA,WAAT"}
@@ -0,0 +1,58 @@
1
+ import { defaultVars } from './helpers';
2
+ export declare type Vars = {
3
+ readonly color: {
4
+ readonly primary: readonly string[];
5
+ readonly accent: readonly string[];
6
+ readonly invert: readonly string[];
7
+ };
8
+ readonly control: readonly string[];
9
+ readonly font: readonly string[];
10
+ readonly size: readonly string[];
11
+ readonly space: readonly string[];
12
+ readonly shadow: readonly string[];
13
+ };
14
+ export declare type ThemeVars<T extends Vars = typeof defaultVars> = {
15
+ color: {
16
+ primary: {
17
+ [key in T['color']['primary'][number]]: string;
18
+ };
19
+ accent: {
20
+ [key in T['color']['accent'][number]]: string;
21
+ };
22
+ invert: {
23
+ [key in T['color']['invert'][number]]: string;
24
+ };
25
+ };
26
+ control: {
27
+ [key in T['control'][number]]: string;
28
+ };
29
+ font: {
30
+ [key in T['font'][number]]: string;
31
+ };
32
+ size: {
33
+ [key in T['size'][number]]: string;
34
+ };
35
+ space: {
36
+ [key in T['space'][number]]: string;
37
+ };
38
+ shadow: {
39
+ [key in T['shadow'][number]]: string;
40
+ };
41
+ };
42
+ declare type UseThemeVarsOptions<T> = {
43
+ vars?: T;
44
+ deps?: [];
45
+ };
46
+ export declare const useThemeVars: <T extends Vars = {
47
+ readonly color: {
48
+ readonly primary: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
49
+ readonly accent: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
50
+ readonly invert: readonly ["--color-bg-default", "--color-bg-secondary", "--color-bg-brand", "--color-bg-link", "--color-bg-border", "--color-bg-stripe", "--color-bg-ghost", "--color-bg-tone", "--color-bg-soft", "--color-bg-system", "--color-bg-normal", "--color-bg-success", "--color-bg-caution", "--color-bg-warning", "--color-bg-alert", "--color-bg-critical", "--color-typo-primary", "--color-typo-secondary", "--color-typo-ghost", "--color-typo-brand", "--color-typo-system", "--color-typo-normal", "--color-typo-success", "--color-typo-caution", "--color-typo-warning", "--color-typo-alert", "--color-typo-critical", "--color-typo-link", "--color-typo-link-minor", "--color-typo-link-hover", "--color-scroll-bg", "--color-scroll-thumb", "--color-scroll-thumb-hover", "--color-control-bg-default", "--color-control-typo-default", "--color-control-typo-placeholder", "--color-control-bg-border-default", "--color-control-bg-border-default-hover", "--color-control-bg-border-focus", "--color-control-bg-focus", "--color-control-bg-active", "--color-control-bg-primary", "--color-control-bg-primary-hover", "--color-control-typo-primary", "--color-control-typo-primary-hover", "--color-control-bg-secondary", "--color-control-bg-border-secondary", "--color-control-bg-border-secondary-hover", "--color-control-typo-secondary", "--color-control-typo-secondary-hover", "--color-control-bg-ghost", "--color-control-bg-ghost-hover", "--color-control-typo-ghost", "--color-control-typo-ghost-hover", "--color-control-bg-clear", "--color-control-bg-clear-hover", "--color-control-typo-clear", "--color-control-typo-clear-hover", "--color-control-bg-disable", "--color-control-bg-border-disable", "--color-control-typo-disable"];
51
+ };
52
+ readonly control: readonly ["--control-radius", "--control-border-width", "--control-height-l", "--control-height-m", "--control-height-s", "--control-height-xs", "--control-box-size-m", "--control-box-size-l", "--control-space-l", "--control-space-m", "--control-space-s", "--control-space-xs", "--control-text-size-l", "--control-text-size-m", "--control-text-size-s", "--control-text-size-xs"];
53
+ readonly font: readonly ["--font-primary", "--font-mono"];
54
+ readonly size: readonly ["--size-text-2xs", "--size-text-xs", "--size-text-s", "--size-text-m", "--size-text-l", "--size-text-xl", "--size-text-2xl", "--size-text-3xl", "--size-text-4xl", "--size-text-5xl", "--size-text-6xl", "--line-height-text-2xs", "--line-height-text-xs", "--line-height-text-s", "--line-height-text-m", "--line-height-text-l"];
55
+ readonly space: readonly ["--space-3xs", "--space-2xs", "--space-xs", "--space-s", "--space-m", "--space-l", "--space-xl", "--space-2xl", "--space-3xl", "--space-4xl", "--space-5xl", "--space-6xl"];
56
+ readonly shadow: readonly ["--shadow-group", "--shadow-layer", "--shadow-modal"];
57
+ }>(options?: UseThemeVarsOptions<T> | undefined) => ThemeVars<T>;
58
+ export {};
@@ -0,0 +1,2 @@
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import{useMemo}from"react";import{cnTheme,useTheme}from"../../components/Theme/Theme";import{getStyleProps}from"../useStyleProps";import{defaultVars}from"./helpers";var addElements=function(){for(var a=[],b=0;b<arguments.length;b++){var c=0>b||arguments.length<=b?void 0:arguments[b],d=document.createElement("div");d.setAttribute("class",cnTheme(c)),document.body.append(d),a.push(d)}return a},removeElements=function(a){for(var b=0;b<a.length;b++)document.body.removeChild(a[b])};export var useThemeVars=function(a){var b=(null===a||void 0===a?void 0:a.vars)||defaultVars,c=useTheme(),d=c.theme;return useMemo(function(){var a=addElements(_objectSpread(_objectSpread({},d),{},{color:d.color.primary}),{color:d.color.accent},{color:d.color.invert}),c={color:{primary:getStyleProps(a[0],b.color.primary),accent:getStyleProps(a[1],b.color.accent),invert:getStyleProps(a[2],b.color.invert)},control:getStyleProps(a[0],b.control),font:getStyleProps(a[0],b.font),size:getStyleProps(a[0],b.size),space:getStyleProps(a[0],b.space),shadow:getStyleProps(a[0],b.shadow)};return removeElements(a),c},[d.color.primary,d.color.accent,d.color.invert,d.control,d.font,d.size,d.space,d.shadow].concat(_toConsumableArray(null!==a&&void 0!==a&&a.deps?a.deps:[])))};
2
+ //# sourceMappingURL=useThemeVars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThemeVars.js","names":["useMemo","cnTheme","useTheme","getStyleProps","defaultVars","addElements","elements","index","length","mods","element","document","createElement","setAttribute","body","append","push","removeElements","array","removeChild","useThemeVars","options","variables","vars","theme","color","primary","accent","invert","themeVars","control","font","size","space","shadow","deps"],"sources":["../../../../../src/hooks/useThemeVars/useThemeVars.ts"],"sourcesContent":["/* eslint-disable no-unused-vars */\nimport { useMemo } from 'react';\n\nimport { cnTheme, useTheme } from '##/components/Theme/Theme';\nimport { getStyleProps } from '##/hooks/useStyleProps';\n\nimport { defaultVars } from './helpers';\n\nexport type Vars = {\n readonly color: {\n readonly primary: readonly string[];\n readonly accent: readonly string[];\n readonly invert: readonly string[];\n };\n readonly control: readonly string[];\n readonly font: readonly string[];\n readonly size: readonly string[];\n readonly space: readonly string[];\n readonly shadow: readonly string[];\n};\n\nexport type ThemeVars<T extends Vars = typeof defaultVars> = {\n color: {\n primary: { [key in T['color']['primary'][number]]: string };\n accent: { [key in T['color']['accent'][number]]: string };\n invert: { [key in T['color']['invert'][number]]: string };\n };\n control: { [key in T['control'][number]]: string };\n font: { [key in T['font'][number]]: string };\n size: { [key in T['size'][number]]: string };\n space: { [key in T['space'][number]]: string };\n shadow: { [key in T['shadow'][number]]: string };\n};\n\ntype UseThemeVarsOptions<T> = {\n vars?: T;\n deps?: [];\n};\n\nconst addElements = (...array: {}[]): HTMLDivElement[] => {\n const elements: HTMLDivElement[] = [];\n for (let index = 0; index < array.length; index++) {\n const mods = array[index];\n const element = document.createElement('div');\n element.setAttribute('class', cnTheme(mods));\n document.body.append(element);\n elements.push(element);\n }\n return elements;\n};\n\nconst removeElements = (array: HTMLDivElement[]) => {\n for (let index = 0; index < array.length; index++) {\n document.body.removeChild(array[index]);\n }\n};\n\nexport const useThemeVars = <T extends Vars = typeof defaultVars>(\n options?: UseThemeVarsOptions<T>,\n) => {\n const variables = options?.vars || defaultVars;\n\n const { theme } = useTheme();\n\n return useMemo(() => {\n const elements = addElements(\n {\n ...theme,\n color: theme.color.primary,\n },\n { color: theme.color.accent },\n { color: theme.color.invert },\n );\n\n const themeVars = {\n color: {\n primary: getStyleProps(elements[0], variables.color.primary),\n accent: getStyleProps(elements[1], variables.color.accent),\n invert: getStyleProps(elements[2], variables.color.invert),\n },\n control: getStyleProps(elements[0], variables.control),\n font: getStyleProps(elements[0], variables.font),\n size: getStyleProps(elements[0], variables.size),\n space: getStyleProps(elements[0], variables.space),\n shadow: getStyleProps(elements[0], variables.shadow),\n } as ThemeVars<T>;\n\n removeElements(elements);\n\n return themeVars;\n }, [\n theme.color.primary,\n theme.color.accent,\n theme.color.invert,\n theme.control,\n theme.font,\n theme.size,\n theme.space,\n theme.shadow,\n ...(options?.deps ? options.deps : []),\n ]);\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@consta/uikit",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0",
4
4
  "keywords": [
5
5
  "ui-kit",
6
6
  "design-system",
@@ -16,14 +16,14 @@
16
16
  "peerDependencies": {
17
17
  "@bem-react/classname": "^1.6.0",
18
18
  "@bem-react/classnames": "^1.3.10",
19
- "@consta/icons": "^0.11.0",
19
+ "@consta/icons": "^1.0.0",
20
20
  "compute-scroll-into-view": "^1.0.17",
21
21
  "date-fns": "^2.30.0",
22
22
  "react": ">= 16.8.0",
23
23
  "react-dom": ">= 16.8.0",
24
24
  "react-dropzone": "11.3.4",
25
- "react-imask": "^7.1.3",
26
25
  "react-textarea-autosize": "^8.5.3",
26
+ "react-imask": "^7.2.1",
27
27
  "react-transition-group": "^4.4.5"
28
28
  },
29
29
  "files": [
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/hooks/useThemeVars";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/hooks/useThemeVars";