@consta/uikit 4.6.4 → 4.7.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 (58) hide show
  1. package/__internal__/src/components/ListCanary/List.css +1 -0
  2. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.css +1 -0
  3. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.d.ts +4 -0
  4. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js +2 -0
  5. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js.map +1 -0
  6. package/__internal__/src/components/ListCanary/ListAddItem/index.d.ts +1 -0
  7. package/__internal__/src/components/ListCanary/ListAddItem/index.js +2 -0
  8. package/__internal__/src/components/ListCanary/ListAddItem/index.js.map +1 -0
  9. package/__internal__/src/components/ListCanary/ListCanary.d.ts +4 -0
  10. package/__internal__/src/components/ListCanary/ListCanary.js +2 -0
  11. package/__internal__/src/components/ListCanary/ListCanary.js.map +1 -0
  12. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.css +1 -0
  13. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.d.ts +4 -0
  14. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js +2 -0
  15. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js.map +1 -0
  16. package/__internal__/src/components/ListCanary/ListGroupLabel/index.d.ts +1 -0
  17. package/__internal__/src/components/ListCanary/ListGroupLabel/index.js +2 -0
  18. package/__internal__/src/components/ListCanary/ListGroupLabel/index.js.map +1 -0
  19. package/__internal__/src/components/ListCanary/ListItem/ListItem.css +1 -0
  20. package/__internal__/src/components/ListCanary/ListItem/ListItem.d.ts +4 -0
  21. package/__internal__/src/components/ListCanary/ListItem/ListItem.js +2 -0
  22. package/__internal__/src/components/ListCanary/ListItem/ListItem.js.map +1 -0
  23. package/__internal__/src/components/ListCanary/ListItem/index.d.ts +1 -0
  24. package/__internal__/src/components/ListCanary/ListItem/index.js +2 -0
  25. package/__internal__/src/components/ListCanary/ListItem/index.js.map +1 -0
  26. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.css +1 -0
  27. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.d.ts +6 -0
  28. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.js +2 -0
  29. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.js.map +1 -0
  30. package/__internal__/src/components/ListCanary/ListItemGrid/index.d.ts +1 -0
  31. package/__internal__/src/components/ListCanary/ListItemGrid/index.js +2 -0
  32. package/__internal__/src/components/ListCanary/ListItemGrid/index.js.map +1 -0
  33. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.css +1 -0
  34. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.d.ts +6 -0
  35. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js +2 -0
  36. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js.map +1 -0
  37. package/__internal__/src/components/ListCanary/ListLoader/index.d.ts +1 -0
  38. package/__internal__/src/components/ListCanary/ListLoader/index.js +2 -0
  39. package/__internal__/src/components/ListCanary/ListLoader/index.js.map +1 -0
  40. package/__internal__/src/components/ListCanary/helper.d.ts +59 -0
  41. package/__internal__/src/components/ListCanary/helper.js +2 -0
  42. package/__internal__/src/components/ListCanary/helper.js.map +1 -0
  43. package/__internal__/src/components/ListCanary/index.d.ts +6 -0
  44. package/__internal__/src/components/ListCanary/index.js +2 -0
  45. package/__internal__/src/components/ListCanary/index.js.map +1 -0
  46. package/__internal__/src/components/ListCanary/types.d.ts +28 -24
  47. package/__internal__/src/components/ListCanary/types.js +1 -1
  48. package/__internal__/src/components/ListCanary/types.js.map +1 -1
  49. package/__internal__/src/components/Radio/Radio.css +1 -1
  50. package/__internal__/src/components/Radio/Radio.d.ts +2 -2
  51. package/__internal__/src/components/Radio/Radio.js +1 -1
  52. package/__internal__/src/components/Radio/Radio.js.map +1 -1
  53. package/__internal__/src/components/RadioGroup/RadioGroup.css +1 -1
  54. package/__internal__/src/components/RadioGroup/helper.d.ts +1 -1
  55. package/__internal__/src/components/RadioGroup/types.d.ts +1 -1
  56. package/__internal__/src/components/RadioGroup/types.js +1 -1
  57. package/__internal__/src/components/RadioGroup/types.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ .List{padding:var(--list-space) 0}.List_size_s,.List_size_xs{--list-space:var(--space-2xs)}.List_size_l,.List_size_m{--list-space:var(--space-xs)}.List-Loader{width:100%}
@@ -0,0 +1 @@
1
+ .ListAddItem{--list-add-item-color:var(--color-control-typo-default);align-items:center;border-bottom:1px solid var(--color-control-bg-border-default);color:var(--list-add-item-color);cursor:pointer;display:inline-flex;font-size:var(--list-add-item-font-size);line-height:var(--line-height-text-xs);margin:0 var(--list-add-item-horizontal-space);padding:var(--list-add-item-verical-space) 0;width:calc(100% - var(--list-add-item-horizontal-space)*2)}.ListAddItem_size_xs{--list-add-item-font-size:var(--size-text-xs);--list-add-item-verical-space:calc(var(--space-l)/4);--list-add-item-horizontal-space:var(--space-xs);--list-add-item-icon-margin:var(--space-3xs)}.ListAddItem_size_xs.ListItem_indent_increased{--list-add-item-horizontal-space:var(--space-s)}.ListAddItem_size_s{--list-add-item-font-size:var(--size-text-s);--list-add-item-verical-space:calc(var(--space-l)/4);--list-add-item-horizontal-space:var(--space-xs);--list-add-item-icon-margin:var(--space-2xs)}.ListAddItem_size_s.ListItem_indent_increased{--list-add-item-horizontal-space:var(--space-s)}.ListAddItem_size_m{--list-add-item-font-size:var(--size-text-m);--list-add-item-verical-space:calc(var(--space-l)/2);--list-add-item-horizontal-space:var(--space-s);--list-add-item-icon-margin:var(--space-xs)}.ListAddItem_size_m.ListItem_indent_increased{--list-add-item-horizontal-space:var(--space-m)}.ListAddItem_size_l{--list-add-item-font-size:var(--size-text-l);--list-add-item-verical-space:var(--space-s);--list-add-item-horizontal-space:var(--space-s);--list-add-item-icon-margin:var(--space-xs)}.ListAddItem_size_l.ListItem_indent_increased{--list-add-item-horizontal-space:var(--space-l)}.ListAddItem_disabled{--list-add-item-color:var(--color-control-typo-disable);pointer-events:none}.ListAddItem-AddIcon{color:var(--list-add-item-color);margin-right:var(--list-add-item-icon-margin)}
@@ -0,0 +1,4 @@
1
+ import './ListAddItem.css';
2
+ import React from 'react';
3
+ import { ListAddItemProps } from '../types';
4
+ export declare const ListAddItem: React.ForwardRefExoticComponent<Pick<ListAddItemProps, "label" | "slot" | "style" | "title" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "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" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "disabled" | "size" | "indent"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","className","disabled","label"];import"./ListAddItem.css";import React,{forwardRef}from"react";import{IconAdd}from"../../../icons/IconAdd";import{cn}from"../../../utils/bem";import{defaultListPropSize}from"../types";var cnListAddItem=cn("ListAddItem"),iconSizeMap={xs:"xs",s:"xs",m:"s",l:"s"};export var ListAddItem=forwardRef(function(a,b){var c=a.size,d=void 0===c?defaultListPropSize:c,e=a.className,f=a.disabled,g=a.label,h=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnListAddItem({size:d,disabled:f},[e]),ref:b},h),React.createElement(IconAdd,{className:cnListAddItem("AddIcon"),size:iconSizeMap[d]}),g)});
2
+ //# sourceMappingURL=ListAddItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListAddItem.js","names":["React","forwardRef","IconAdd","cn","defaultListPropSize","cnListAddItem","iconSizeMap","xs","s","m","l","ListAddItem","props","ref","size","className","disabled","label","otherProps"],"sources":["../../../../../../src/components/ListCanary/ListAddItem/ListAddItem.tsx"],"sourcesContent":["import './ListAddItem.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { IconPropSize } from '##/icons/Icon';\nimport { IconAdd } from '##/icons/IconAdd';\nimport { cn } from '##/utils/bem';\n\nimport { defaultListPropSize, ListAddItemProps, ListPropSize } from '../types';\n\nconst cnListAddItem = cn('ListAddItem');\n\nconst iconSizeMap: Record<ListPropSize, IconPropSize> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n};\n\nexport const ListAddItem = forwardRef<HTMLDivElement, ListAddItemProps>(\n (props, ref) => {\n const {\n size = defaultListPropSize,\n className,\n disabled,\n label,\n ...otherProps\n } = props;\n return (\n <div\n className={cnListAddItem({ size, disabled }, [className])}\n ref={ref}\n {...otherProps}\n >\n <IconAdd\n className={cnListAddItem('AddIcon')}\n size={iconSizeMap[size]}\n />\n {label}\n </div>\n );\n },\n);\n"],"mappings":"2IAAA,0BAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAGA,OAASC,OAAT,8BACA,OAASC,EAAT,0BAEA,OAASC,mBAAT,gB,GAEMC,cAAa,CAAGF,EAAE,CAAC,aAAD,C,CAElBG,WAA+C,CAAG,CACtDC,EAAE,CAAE,IADkD,CAEtDC,CAAC,CAAE,IAFmD,CAGtDC,CAAC,CAAE,GAHmD,CAItDC,CAAC,CAAE,GAJmD,C,CAOxD,MAAO,IAAMC,YAAW,CAAGV,UAAU,CACnC,SAACW,CAAD,CAAQC,CAAR,CAAgB,CACd,MAMID,CANJ,CACEE,IADF,CACEA,CADF,YACSV,mBADT,GAEEW,CAFF,CAMIH,CANJ,CAEEG,SAFF,CAGEC,CAHF,CAMIJ,CANJ,CAGEI,QAHF,CAIEC,CAJF,CAMIL,CANJ,CAIEK,KAJF,CAKKC,CALL,0BAMIN,CANJ,YAOA,MACE,0CACE,SAAS,CAAEP,aAAa,CAAC,CAAES,IAAI,CAAJA,CAAF,CAAQE,QAAQ,CAARA,CAAR,CAAD,CAAqB,CAACD,CAAD,CAArB,CAD1B,CAEE,GAAG,CAAEF,CAFP,EAGMK,CAHN,EAKE,oBAAC,OAAD,EACE,SAAS,CAAEb,aAAa,CAAC,SAAD,CAD1B,CAEE,IAAI,CAAEC,WAAW,CAACQ,CAAD,CAFnB,EALF,CASGG,CATH,CAYH,CAtBkC,CAA9B"}
@@ -0,0 +1 @@
1
+ export * from './ListAddItem';
@@ -0,0 +1,2 @@
1
+ export*from"./ListAddItem";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/ListCanary/ListAddItem/index.tsx"],"sourcesContent":["export * from './ListAddItem';\n"],"mappings":"AAAA"}
@@ -0,0 +1,4 @@
1
+ import './List.css';
2
+ import { ListComponent } from './types';
3
+ export declare const cnList: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const List: ListComponent;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","isLoading","className","onItemClick","groups","disabled","getItemLabel","getItemLeftIcon","getItemLeftSide","getItemRightIcon","getItemRightSide","getItemKey","getItemAs","getItemAttributes","getItemGroupKey","getItemDisabled","getItemActive","getItemOnClick","getGroupKey","getGroupLabel","getGroupRightSide","renderItem","indent","onBlur","onFocus","size"];import"./List.css";import React,{forwardRef,useMemo}from"react";import{useRefs}from"../../hooks/useRefs";import{cn}from"../../utils/bem";import{getGroups}from"../../utils/getGroups";import{withDefaultGetters}from"./helper";import{ListGroupLabel}from"./ListGroupLabel/ListGroupLabel";import{ListItem}from"./ListItem/ListItem";import{ListLoader}from"./ListLoader/ListLoader";import{defaultListPropIndent,defaultListPropSize}from"./types";export var cnList=cn("List");var ListRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=c.isLoading,f=c.className,g=c.onItemClick,h=c.groups,i=c.disabled,j=c.getItemLabel,k=c.getItemLeftIcon,l=c.getItemLeftSide,m=c.getItemRightIcon,n=c.getItemRightSide,o=c.getItemKey,p=c.getItemAs,q=c.getItemAttributes,r=c.getItemGroupKey,s=c.getItemDisabled,t=c.getItemActive,u=c.getItemOnClick,v=c.getGroupKey,w=c.getGroupLabel,x=c.getGroupRightSide,y=c.renderItem,z=c.indent,A=void 0===z?defaultListPropIndent:z,B=c.onBlur,C=c.onFocus,D=c.size,E=void 0===D?defaultListPropSize:D,F=_objectWithoutProperties(c,_excluded),G=useMemo(function(){return getGroups(d,r,h,v,void 0)},[h,d]),H=useRefs(d.length),I=function(a){var b,c,e={label:j(a),disabled:s(a)||i,leftSide:l(a),leftIcon:k(a),rightSide:n(a),rightIcon:m(a),active:t(a),as:null!==(b=p(a))&&void 0!==b?b:"div"},f=u(a);return React.createElement(ListItem,Object.assign({},e,null!==(c=q(a))&&void 0!==c?c:{},{ref:H[d.indexOf(a)],size:E,onClick:f||g?function handleClick(b){null===f||void 0===f?void 0:f(b),null===g||void 0===g?void 0:g({e:b,item:a})}:void 0,indent:A}))};return React.createElement("div",Object.assign({className:cnList({size:E},[f]),ref:b},F),G.map(function(a){return React.createElement(React.Fragment,{key:a.key},a.group&&React.createElement(ListGroupLabel,{size:E,label:w(a.group),rightSide:x(a.group)}),a.items.map(function(b,c){return React.createElement(React.Fragment,{key:"".concat(a.key,"-").concat(c)},(null!==y&&void 0!==y?y:I)(b))}))}),e&&React.createElement(ListLoader,{size:E}))};export var List=forwardRef(ListRender);
2
+ //# sourceMappingURL=ListCanary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCanary.js","names":["React","forwardRef","useMemo","useRefs","cn","getGroups","withDefaultGetters","ListGroupLabel","ListItem","ListLoader","defaultListPropIndent","defaultListPropSize","cnList","ListRender","props","ref","items","isLoading","className","onItemClick","groupsProp","groups","disabled","getItemLabel","getItemLeftIcon","getItemLeftSide","getItemRightIcon","getItemRightSide","getItemKey","getItemAs","getItemAttributes","getItemGroupKey","getItemDisabled","getItemActive","getItemOnClick","getGroupKey","getGroupLabel","getGroupRightSide","renderItem","indent","onBlur","onFocus","size","otherProps","refs","length","renderItemDefault","item","params","label","leftSide","leftIcon","rightSide","rightIcon","active","as","onClick","indexOf","handleClick","e","map","group","key","index","List"],"sources":["../../../../../src/components/ListCanary/ListCanary.tsx"],"sourcesContent":["import './List.css';\n\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useRefs } from '##/hooks/useRefs';\nimport { cn } from '##/utils/bem';\nimport { getGroups } from '##/utils/getGroups';\n\nimport { withDefaultGetters } from './helper';\nimport { ListGroupLabel } from './ListGroupLabel/ListGroupLabel';\nimport { ListItem } from './ListItem/ListItem';\nimport { ListLoader } from './ListLoader/ListLoader';\nimport {\n DefaultListItem,\n defaultListPropIndent,\n defaultListPropSize,\n ListComponent,\n ListPropRenderItem,\n ListProps,\n} from './types';\n\nexport const cnList = cn('List');\n\nconst ListRender = (props: ListProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n isLoading,\n className,\n onItemClick,\n groups: groupsProp,\n disabled,\n getItemLabel,\n getItemLeftIcon,\n getItemLeftSide,\n getItemRightIcon,\n getItemRightSide,\n getItemKey,\n getItemAs,\n getItemAttributes,\n getItemGroupKey,\n getItemDisabled,\n getItemActive,\n getItemOnClick,\n getGroupKey,\n getGroupLabel,\n getGroupRightSide,\n renderItem,\n indent = defaultListPropIndent,\n onBlur,\n onFocus,\n size = defaultListPropSize,\n ...otherProps\n } = withDefaultGetters(props);\n\n const groups = useMemo(\n () => getGroups(items, getItemGroupKey, groupsProp, getGroupKey, undefined),\n [groupsProp, items],\n );\n\n type ITEM = typeof items[number];\n\n const refs = useRefs<HTMLDivElement>(items.length);\n\n const renderItemDefault: ListPropRenderItem<ITEM> = (item) => {\n const params: Omit<DefaultListItem, 'id'> = {\n label: getItemLabel(item),\n disabled: getItemDisabled(item) || disabled,\n leftSide: getItemLeftSide(item),\n leftIcon: getItemLeftIcon(item),\n rightSide: getItemRightSide(item),\n rightIcon: getItemRightIcon(item),\n active: getItemActive(item),\n as: getItemAs(item) ?? 'div',\n };\n\n const onClick = getItemOnClick(item);\n\n const handleClick: React.MouseEventHandler<HTMLElement> = (e) => {\n onClick?.(e);\n onItemClick?.({ e, item });\n };\n\n return (\n <ListItem\n {...params}\n {...(getItemAttributes(item) ?? {})}\n ref={refs[items.indexOf(item)]}\n size={size}\n onClick={onClick || onItemClick ? handleClick : undefined}\n indent={indent}\n />\n );\n };\n\n return (\n <div className={cnList({ size }, [className])} ref={ref} {...otherProps}>\n {groups.map((group) => {\n return (\n <React.Fragment key={group.key}>\n {group.group && (\n <ListGroupLabel\n size={size}\n label={getGroupLabel(group.group)}\n rightSide={getGroupRightSide(group.group)}\n />\n )}\n {group.items.map((item, index) => {\n return (\n <React.Fragment key={`${group.key}-${index}`}>\n {(renderItem ?? renderItemDefault)(item)}\n </React.Fragment>\n );\n })}\n </React.Fragment>\n );\n })}\n {isLoading && <ListLoader size={size} />}\n </div>\n );\n};\n\nexport const List = forwardRef(ListRender) as ListComponent;\n"],"mappings":"odAAA,mBAEA,MAAOA,MAAP,EAAgBC,UAAhB,CAA4BC,OAA5B,KAA2C,OAA3C,CAEA,OAASC,OAAT,2BACA,OAASC,EAAT,uBACA,OAASC,SAAT,6BAEA,OAASC,kBAAT,gBACA,OAASC,cAAT,uCACA,OAASC,QAAT,2BACA,OAASC,UAAT,+BACA,OAEEC,qBAFF,CAGEC,mBAHF,eASA,MAAO,IAAMC,OAAM,CAAGR,EAAE,CAAC,MAAD,CAAjB,CAEP,GAAMS,WAAU,CAAG,SAACC,CAAD,CAAmBC,CAAnB,CAAsD,OA6BnET,kBAAkB,CAACQ,CAAD,CA7BiD,CAErEE,CAFqE,GAErEA,KAFqE,CAGrEC,CAHqE,GAGrEA,SAHqE,CAIrEC,CAJqE,GAIrEA,SAJqE,CAKrEC,CALqE,GAKrEA,WALqE,CAM7DC,CAN6D,GAMrEC,MANqE,CAOrEC,CAPqE,GAOrEA,QAPqE,CAQrEC,CARqE,GAQrEA,YARqE,CASrEC,CATqE,GASrEA,eATqE,CAUrEC,CAVqE,GAUrEA,eAVqE,CAWrEC,CAXqE,GAWrEA,gBAXqE,CAYrEC,CAZqE,GAYrEA,gBAZqE,CAarEC,CAbqE,GAarEA,UAbqE,CAcrEC,CAdqE,GAcrEA,SAdqE,CAerEC,CAfqE,GAerEA,iBAfqE,CAgBrEC,CAhBqE,GAgBrEA,eAhBqE,CAiBrEC,CAjBqE,GAiBrEA,eAjBqE,CAkBrEC,CAlBqE,GAkBrEA,aAlBqE,CAmBrEC,CAnBqE,GAmBrEA,cAnBqE,CAoBrEC,CApBqE,GAoBrEA,WApBqE,CAqBrEC,CArBqE,GAqBrEA,aArBqE,CAsBrEC,CAtBqE,GAsBrEA,iBAtBqE,CAuBrEC,CAvBqE,GAuBrEA,UAvBqE,KAwBrEC,MAxBqE,CAwBrEA,CAxBqE,YAwB5D7B,qBAxB4D,GAyBrE8B,CAzBqE,GAyBrEA,MAzBqE,CA0BrEC,CA1BqE,GA0BrEA,OA1BqE,KA2BrEC,IA3BqE,CA2BrEA,CA3BqE,YA2B9D/B,mBA3B8D,GA4BlEgC,CA5BkE,uCA+BjEtB,CAAM,CAAGnB,OAAO,CACpB,iBAAMG,UAAS,CAACW,CAAD,CAAQe,CAAR,CAAyBX,CAAzB,CAAqCe,CAArC,QAAf,CADoB,CAEpB,CAACf,CAAD,CAAaJ,CAAb,CAFoB,CA/BiD,CAsCjE4B,CAAI,CAAGzC,OAAO,CAAiBa,CAAK,CAAC6B,MAAvB,CAtCmD,CAwCjEC,CAA2C,CAAG,SAACC,CAAD,CAAU,SACtDC,CAAmC,CAAG,CAC1CC,KAAK,CAAE1B,CAAY,CAACwB,CAAD,CADuB,CAE1CzB,QAAQ,CAAEU,CAAe,CAACe,CAAD,CAAf,EAAyBzB,CAFO,CAG1C4B,QAAQ,CAAEzB,CAAe,CAACsB,CAAD,CAHiB,CAI1CI,QAAQ,CAAE3B,CAAe,CAACuB,CAAD,CAJiB,CAK1CK,SAAS,CAAEzB,CAAgB,CAACoB,CAAD,CALe,CAM1CM,SAAS,CAAE3B,CAAgB,CAACqB,CAAD,CANe,CAO1CO,MAAM,CAAErB,CAAa,CAACc,CAAD,CAPqB,CAQ1CQ,EAAE,WAAE1B,CAAS,CAACkB,CAAD,CAAX,gBAAqB,KARmB,CADgB,CAYtDS,CAAO,CAAGtB,CAAc,CAACa,CAAD,CAZ8B,CAmB5D,MACE,qBAAC,QAAD,kBACMC,CADN,WAEOlB,CAAiB,CAACiB,CAAD,CAFxB,gBAEkC,EAFlC,EAGE,GAAG,CAAEH,CAAI,CAAC5B,CAAK,CAACyC,OAAN,CAAcV,CAAd,CAAD,CAHX,CAIE,IAAI,CAAEL,CAJR,CAKE,OAAO,CAAEc,CAAO,EAAIrC,CAAX,CAX6C,QAApDuC,YAAoD,CAACC,CAAD,CAAO,QAC/DH,CAD+D,WAC/DA,CAD+D,QAC/DA,CAAO,CAAGG,CAAH,CADwD,QAE/DxC,CAF+D,WAE/DA,CAF+D,QAE/DA,CAAW,CAAG,CAAEwC,CAAC,CAADA,CAAF,CAAKZ,IAAI,CAAJA,CAAL,CAAH,CACZ,CAQY,OALX,CAME,MAAM,CAAER,CANV,GASH,CArEsE,CAuEvE,MACE,0CAAK,SAAS,CAAE3B,MAAM,CAAC,CAAE8B,IAAI,CAAJA,CAAF,CAAD,CAAW,CAACxB,CAAD,CAAX,CAAtB,CAA+C,GAAG,CAAEH,CAApD,EAA6D4B,CAA7D,EACGtB,CAAM,CAACuC,GAAP,CAAW,SAACC,CAAD,CAAW,CACrB,MACE,qBAAC,KAAD,CAAO,QAAP,EAAgB,GAAG,CAAEA,CAAK,CAACC,GAA3B,EACGD,CAAK,CAACA,KAAN,EACC,oBAAC,cAAD,EACE,IAAI,CAAEnB,CADR,CAEE,KAAK,CAAEN,CAAa,CAACyB,CAAK,CAACA,KAAP,CAFtB,CAGE,SAAS,CAAExB,CAAiB,CAACwB,CAAK,CAACA,KAAP,CAH9B,EAFJ,CAQGA,CAAK,CAAC7C,KAAN,CAAY4C,GAAZ,CAAgB,SAACb,CAAD,CAAOgB,CAAP,CAAiB,CAChC,MACE,qBAAC,KAAD,CAAO,QAAP,EAAgB,GAAG,WAAKF,CAAK,CAACC,GAAX,aAAkBC,CAAlB,CAAnB,EACG,QAACzB,CAAD,WAACA,CAAD,CAACA,CAAD,CAAeQ,CAAf,EAAkCC,CAAlC,CADH,CAIH,CANA,CARH,CAiBH,CAnBA,CADH,CAqBG9B,CAAS,EAAI,oBAAC,UAAD,EAAY,IAAI,CAAEyB,CAAlB,EArBhB,CAwBH,CAhGD,CAkGA,MAAO,IAAMsB,KAAI,CAAG/D,UAAU,CAACY,UAAD,CAAvB"}
@@ -0,0 +1 @@
1
+ .ListGroupLabel{align-items:center;border-bottom:1px solid var(--color-control-bg-border-default);box-sizing:border-box;color:var(--color-typo-secondary);display:flex;font-size:var(--list-group-label-font-size);justify-content:space-between;letter-spacing:.05em;line-height:var(--line-height-text-xs);margin:0 var(--list-group-label-horizontal-margin);padding:var(--list-group-label-padding);text-transform:uppercase}.ListGroupLabel_size_xs{--list-group-label-font-size:var(--size-text-2xs);--list-group-label-padding:var(--space-s) 0 calc(var(--space-2xs)*1.5);--list-group-label-horizontal-margin:var(--space-xs)}.ListGroupLabel_size_s{--list-group-label-font-size:var(--size-text-2xs);--list-group-label-padding:var(--space-m) 0 var(--space-2xs);--list-group-label-horizontal-margin:var(--space-xs)}.ListGroupLabel_size_m{--list-group-label-font-size:var(--size-text-xs);--list-group-label-padding:var(--space-m) 0 var(--space-xs);--list-group-label-horizontal-margin:var(--space-s)}.ListGroupLabel_size_l{--list-group-label-font-size:var(--size-text-s);--list-group-label-padding:var(--space-l) 0 var(--space-s);--list-group-label-horizontal-margin:var(--space-s)}
@@ -0,0 +1,4 @@
1
+ import './ListGroupLabel.css';
2
+ import React from 'react';
3
+ import { ListGroupLabelProps } from '../types';
4
+ export declare const ListGroupLabel: React.ForwardRefExoticComponent<Pick<ListGroupLabelProps, "label" | "slot" | "style" | "title" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "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" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "rightSide"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["rightSide","size","label","className"];import"./ListGroupLabel.css";import React,{forwardRef}from"react";import{cn}from"../../../utils/bem";import{cnListItemGrid,renderSlot}from"../ListItemGrid";import{defaultListPropSize}from"../types";var cnListGroupLabel=cn("ListGroupLabel");export var ListGroupLabel=forwardRef(function(a,b){var c=a.rightSide,d=a.size,e=void 0===d?defaultListPropSize:d,f=a.label,g=a.className,h=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({ref:b,className:cnListGroupLabel({size:e},[cnListItemGrid(),g])},h),c?React.createElement("span",{className:cnListItemGrid("Slot",{position:"center"})},f):f,renderSlot(c,"right",e,void 0))});
2
+ //# sourceMappingURL=ListGroupLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListGroupLabel.js","names":["React","forwardRef","cn","cnListItemGrid","renderSlot","defaultListPropSize","cnListGroupLabel","ListGroupLabel","props","ref","rightSide","size","label","className","otherProps","position"],"sources":["../../../../../../src/components/ListCanary/ListGroupLabel/ListGroupLabel.tsx"],"sourcesContent":["import './ListGroupLabel.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { cn } from '##/utils/bem';\n\nimport { cnListItemGrid, renderSlot } from '../ListItemGrid';\nimport { defaultListPropSize, ListGroupLabelProps } from '../types';\n\nconst cnListGroupLabel = cn('ListGroupLabel');\n\nexport const ListGroupLabel = forwardRef<HTMLDivElement, ListGroupLabelProps>(\n (props, ref) => {\n const {\n rightSide,\n size = defaultListPropSize,\n label,\n className,\n ...otherProps\n } = props;\n\n return (\n <div\n ref={ref}\n className={cnListGroupLabel({ size }, [cnListItemGrid(), className])}\n {...otherProps}\n >\n {!rightSide ? (\n label\n ) : (\n <span className={cnListItemGrid('Slot', { position: 'center' })}>\n {label}\n </span>\n )}\n {renderSlot(rightSide, 'right', size, undefined)}\n </div>\n );\n },\n);\n"],"mappings":"4IAAA,6BAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,0BAEA,OAASC,cAAT,CAAyBC,UAAzB,uBACA,OAASC,mBAAT,gBAEA,GAAMC,iBAAgB,CAAGJ,EAAE,CAAC,gBAAD,CAA3B,CAEA,MAAO,IAAMK,eAAc,CAAGN,UAAU,CACtC,SAACO,CAAD,CAAQC,CAAR,CAAgB,CACd,GACEC,EADF,CAMIF,CANJ,CACEE,SADF,GAMIF,CANJ,CAEEG,IAFF,CAEEA,CAFF,YAESN,mBAFT,GAGEO,CAHF,CAMIJ,CANJ,CAGEI,KAHF,CAIEC,CAJF,CAMIL,CANJ,CAIEK,SAJF,CAKKC,CALL,0BAMIN,CANJ,YAQA,MACE,0CACE,GAAG,CAAEC,CADP,CAEE,SAAS,CAAEH,gBAAgB,CAAC,CAAEK,IAAI,CAAJA,CAAF,CAAD,CAAW,CAACR,cAAc,EAAf,CAAmBU,CAAnB,CAAX,CAF7B,EAGMC,CAHN,EAKIJ,CAAD,CAGC,4BAAM,SAAS,CAAEP,cAAc,CAAC,MAAD,CAAS,CAAEY,QAAQ,CAAE,QAAZ,CAAT,CAA/B,EACGH,CADH,CAHD,CACCA,CANJ,CAYGR,UAAU,CAACM,CAAD,CAAY,OAAZ,CAAqBC,CAArB,QAZb,CAeH,CA1BqC,CAAjC"}
@@ -0,0 +1 @@
1
+ export * from './ListGroupLabel';
@@ -0,0 +1,2 @@
1
+ export*from"./ListGroupLabel";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/ListCanary/ListGroupLabel/index.tsx"],"sourcesContent":["export * from './ListGroupLabel';\n"],"mappings":"AAAA"}
@@ -0,0 +1 @@
1
+ .ListItem{--list-item-color:var(--color-typo-primary);background:var(--color-control-bg-clear);padding:var(--list-item-vertical-space) var(--list-item-horizontal-space);position:relative;transition:color .3s}.ListItem.Text{color:var(--list-item-color)}.ListItem_interactive{cursor:pointer}.ListItem_interactive:hover{background-color:var(--color-control-bg-clear-hover)}.ListItem_size_xs{--list-item-vertical-space:var(--space-2xs);--list-item-horizontal-space:var(--space-xs)}.ListItem_size_xs.ListItem_indent_increased{--list-item-horizontal-space:var(--space-s)}.ListItem_size_s{--list-item-vertical-space:var(--space-2xs);--list-item-horizontal-space:var(--space-xs)}.ListItem_size_s.ListItem_indent_increased{--list-item-horizontal-space:var(--space-s)}.ListItem_size_m{--list-item-vertical-space:var(--space-xs);--list-item-horizontal-space:var(--space-s)}.ListItem_size_m.ListItem_indent_increased{--list-item-horizontal-space:var(--space-m)}.ListItem_size_l{--list-item-vertical-space:var(--space-xs);--list-item-horizontal-space:var(--space-s)}.ListItem_size_l.ListItem_indent_increased{--list-item-horizontal-space:var(--space-l)}.ListItem:before{background-color:transparent;bottom:0;content:"";left:0;position:absolute;top:0;transition:background-color .2 ease-in;width:var(--space-3xs)}.ListItem_active:before{background-color:var(--list-item-color)}.ListItem_active{--list-item-color:var(--color-control-typo-secondary)}.ListItem_disabled{--list-item-color:var(--color-control-typo-disable);cursor:auto}.ListItem-Icon{color:var(--list-item-color)}.ListItem-Label{word-wrap:break-word;flex:1}
@@ -0,0 +1,4 @@
1
+ import './ListItem.css';
2
+ import { ListItemComponent } from '../types';
3
+ export declare const cnListItem: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const ListItem: ListItemComponent;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","active","label","indent","disabled","className","leftSide","rightSide","rightIcon","leftIcon","as","onClick","onKeyDown"];import"./ListItem.css";import React,{forwardRef}from"react";import{Text}from"../../Text";import{cn}from"../../../utils/bem";import{cnListItemGrid,renderSlot}from"../ListItemGrid";import{defaultListPropSize}from"../types";export var cnListItem=cn("ListItem");var ListItemRender=function(a,b){var c=a.size,d=void 0===c?defaultListPropSize:c,e=a.active,f=a.label,g=a.indent,h=a.disabled,i=a.className,j=a.leftSide,k=a.rightSide,l=a.rightIcon,m=a.leftIcon,n=a.as,o=void 0===n?"div":n,p=a.onClick,q=a.onKeyDown,r=_objectWithoutProperties(a,_excluded),s=p&&!h?p:void 0;return React.createElement(Text,Object.assign({className:cnListItem({active:e,size:d,indent:g,disabled:h,interactive:!!s},[cnListItemGrid(),i]),as:o,onClick:s,lineHeight:"xs",size:d,ref:b},r),renderSlot(j,"left",d,m),l||l||j||m?React.createElement("span",{className:cnListItemGrid("Slot",{position:"center"})},f):f,renderSlot(k,"right",d,l))};export var ListItem=forwardRef(ListItemRender);
2
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.js","names":["React","forwardRef","Text","cn","cnListItemGrid","renderSlot","defaultListPropSize","cnListItem","ListItemRender","props","ref","size","active","label","indent","disabled","className","leftSide","rightSide","rightIcon","leftIcon","as","onClick","onKeyDown","otherProps","handleClick","interactive","position","ListItem"],"sources":["../../../../../../src/components/ListCanary/ListItem/ListItem.tsx"],"sourcesContent":["import './ListItem.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { Text } from '##/components/Text';\nimport { cn } from '##/utils/bem';\n\nimport { cnListItemGrid, renderSlot } from '../ListItemGrid';\nimport {\n defaultListPropSize,\n ListItemComponent,\n ListItemProps,\n} from '../types';\n\nexport const cnListItem = cn('ListItem');\n\nconst ListItemRender = (\n props: ListItemProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = defaultListPropSize,\n active,\n label,\n indent,\n disabled,\n className,\n leftSide,\n rightSide,\n rightIcon,\n leftIcon,\n as = 'div',\n onClick,\n onKeyDown,\n ...otherProps\n } = props;\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> | undefined =\n onClick && !disabled ? onClick : undefined;\n\n return (\n <Text\n className={cnListItem(\n { active, size, indent, disabled, interactive: !!handleClick },\n [cnListItemGrid(), className],\n )}\n as={as}\n onClick={handleClick}\n lineHeight=\"xs\"\n size={size}\n ref={ref}\n {...otherProps}\n >\n {renderSlot(leftSide, 'left', size, leftIcon)}\n {!rightIcon && !rightIcon && !leftSide && !leftIcon ? (\n label\n ) : (\n <span className={cnListItemGrid('Slot', { position: 'center' })}>\n {label}\n </span>\n )}\n {renderSlot(rightSide, 'right', size, rightIcon)}\n </Text>\n );\n};\n\nexport const ListItem = forwardRef(ListItemRender) as ListItemComponent;\n"],"mappings":"sOAAA,uBAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,IAAT,kBACA,OAASC,EAAT,0BAEA,OAASC,cAAT,CAAyBC,UAAzB,uBACA,OACEC,mBADF,gBAMA,MAAO,IAAMC,WAAU,CAAGJ,EAAE,CAAC,UAAD,CAArB,CAEP,GAAMK,eAAc,CAAG,SACrBC,CADqB,CAErBC,CAFqB,CAGlB,OAgBCD,CAhBD,CAEDE,IAFC,CAEDA,CAFC,YAEML,mBAFN,GAGDM,CAHC,CAgBCH,CAhBD,CAGDG,MAHC,CAIDC,CAJC,CAgBCJ,CAhBD,CAIDI,KAJC,CAKDC,CALC,CAgBCL,CAhBD,CAKDK,MALC,CAMDC,CANC,CAgBCN,CAhBD,CAMDM,QANC,CAODC,CAPC,CAgBCP,CAhBD,CAODO,SAPC,CAQDC,CARC,CAgBCR,CAhBD,CAQDQ,QARC,CASDC,CATC,CAgBCT,CAhBD,CASDS,SATC,CAUDC,CAVC,CAgBCV,CAhBD,CAUDU,SAVC,CAWDC,CAXC,CAgBCX,CAhBD,CAWDW,QAXC,GAgBCX,CAhBD,CAYDY,EAZC,CAYDA,CAZC,YAYI,KAZJ,GAaDC,CAbC,CAgBCb,CAhBD,CAaDa,OAbC,CAcDC,CAdC,CAgBCd,CAhBD,CAcDc,SAdC,CAeEC,CAfF,0BAgBCf,CAhBD,YAkBGgB,CAAgE,CACpEH,CAAO,EAAI,CAACP,CAAZ,CAAuBO,CAAvB,OAnBC,CAqBH,MACE,qBAAC,IAAD,gBACE,SAAS,CAAEf,UAAU,CACnB,CAAEK,MAAM,CAANA,CAAF,CAAUD,IAAI,CAAJA,CAAV,CAAgBG,MAAM,CAANA,CAAhB,CAAwBC,QAAQ,CAARA,CAAxB,CAAkCW,WAAW,CAAE,CAAC,CAACD,CAAjD,CADmB,CAEnB,CAACrB,cAAc,EAAf,CAAmBY,CAAnB,CAFmB,CADvB,CAKE,EAAE,CAAEK,CALN,CAME,OAAO,CAAEI,CANX,CAOE,UAAU,CAAC,IAPb,CAQE,IAAI,CAAEd,CARR,CASE,GAAG,CAAED,CATP,EAUMc,CAVN,EAYGnB,UAAU,CAACY,CAAD,CAAW,MAAX,CAAmBN,CAAnB,CAAyBS,CAAzB,CAZb,CAaID,CAAD,EAAeA,CAAf,EAA6BF,CAA7B,EAA0CG,CAA1C,CAGC,4BAAM,SAAS,CAAEhB,cAAc,CAAC,MAAD,CAAS,CAAEuB,QAAQ,CAAE,QAAZ,CAAT,CAA/B,EACGd,CADH,CAHD,CACCA,CAdJ,CAoBGR,UAAU,CAACa,CAAD,CAAY,OAAZ,CAAqBP,CAArB,CAA2BQ,CAA3B,CApBb,CAuBH,CAhDD,CAkDA,MAAO,IAAMS,SAAQ,CAAG3B,UAAU,CAACO,cAAD,CAA3B"}
@@ -0,0 +1 @@
1
+ export * from './ListItem';
@@ -0,0 +1,2 @@
1
+ export*from"./ListItem";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/ListCanary/ListItem/index.tsx"],"sourcesContent":["export * from './ListItem';\n"],"mappings":"AAAA"}
@@ -0,0 +1 @@
1
+ .ListItemGrid{word-wrap:break-word;box-sizing:border-box;gap:var(--space-xs);justify-content:space-between}.ListItemGrid,.ListItemGrid-Slot{align-items:center;display:flex}.ListItemGrid-Slot_position_left,.ListItemGrid-Slot_position_right{width:-webkit-max-content;width:-moz-max-content;width:max-content}.ListItemGrid-Slot_position_center{flex:1}
@@ -0,0 +1,6 @@
1
+ import './ListItemGrid.css';
2
+ import React from 'react';
3
+ import { IconComponent } from "../../../icons/Icon";
4
+ import { ListPropSize } from '../types';
5
+ export declare const cnListItemGrid: import("@bem-react/classname").ClassNameFormatter;
6
+ export declare const renderSlot: (side: React.ReactNode, position: 'left' | 'right', size: ListPropSize, icon: IconComponent | undefined) => JSX.Element[];
@@ -0,0 +1,2 @@
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import"./ListItemGrid.css";import React from"react";import{cn}from"../../../utils/bem";import{getByMap}from"../../../utils/getByMap";var iconSizeMap={xs:"xs",s:"xs",m:"s",l:"s"};export var cnListItemGrid=cn("ListItemGrid");export var renderSlot=function(a,b,c,d){var e=a?_toConsumableArray(Array.isArray(a)?a:[a]):[];if(d){var f=React.createElement(d,{size:getByMap(iconSizeMap,c)});"left"===b&&e.push(f),"right"===b&&e.unshift(f)}return e.map(function(a,c){return React.createElement("div",{className:cnListItemGrid("Slot",{position:b}),key:cnListItemGrid("Slot",{position:b,index:c})},a)})};
2
+ //# sourceMappingURL=ListItemGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItemGrid.js","names":["React","cn","getByMap","iconSizeMap","xs","s","m","l","cnListItemGrid","renderSlot","side","position","size","icon","sides","Array","isArray","render","push","unshift","map","item","index"],"sources":["../../../../../../src/components/ListCanary/ListItemGrid/ListItemGrid.tsx"],"sourcesContent":["import './ListItemGrid.css';\n\nimport React from 'react';\n\nimport { IconComponent, IconPropSize } from '##/icons/Icon';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\n\nimport { ListPropSize } from '../types';\n\nconst iconSizeMap: Record<ListPropSize, IconPropSize> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n};\n\nexport const cnListItemGrid = cn('ListItemGrid');\n\nexport const renderSlot = (\n side: React.ReactNode,\n position: 'left' | 'right',\n size: ListPropSize,\n icon: IconComponent | undefined,\n) => {\n const sides = side ? [...(Array.isArray(side) ? side : [side])] : [];\n if (icon) {\n const Icon = icon;\n const render = <Icon size={getByMap(iconSizeMap, size)} />;\n if (position === 'left') {\n sides.push(render);\n }\n if (position === 'right') {\n sides.unshift(render);\n }\n }\n return sides.map((item, index) => (\n <div\n className={cnListItemGrid('Slot', {\n position,\n })}\n key={cnListItemGrid('Slot', {\n position,\n index,\n })}\n >\n {item}\n </div>\n ));\n};\n"],"mappings":"yEAAA,2BAEA,MAAOA,MAAP,KAAkB,OAAlB,CAGA,OAASC,EAAT,0BACA,OAASC,QAAT,+BAIA,GAAMC,YAA+C,CAAG,CACtDC,EAAE,CAAE,IADkD,CAEtDC,CAAC,CAAE,IAFmD,CAGtDC,CAAC,CAAE,GAHmD,CAItDC,CAAC,CAAE,GAJmD,CAAxD,CAOA,MAAO,IAAMC,eAAc,CAAGP,EAAE,CAAC,cAAD,CAAzB,CAEP,MAAO,IAAMQ,WAAU,CAAG,SACxBC,CADwB,CAExBC,CAFwB,CAGxBC,CAHwB,CAIxBC,CAJwB,CAKrB,CACH,GAAMC,EAAK,CAAGJ,CAAI,oBAAQK,KAAK,CAACC,OAAN,CAAcN,CAAd,EAAsBA,CAAtB,CAA6B,CAACA,CAAD,CAArC,EAAgD,EAAlE,CACA,GAAIG,CAAJ,CAAU,IAEFI,EAAM,CAAG,oBADFJ,CACE,EAAM,IAAI,CAAEX,QAAQ,CAACC,WAAD,CAAcS,CAAd,CAApB,EAFP,CAGS,MAAb,GAAAD,CAHI,EAING,CAAK,CAACI,IAAN,CAAWD,CAAX,CAJM,CAMS,OAAb,GAAAN,CANI,EAONG,CAAK,CAACK,OAAN,CAAcF,CAAd,CAEH,CACD,MAAOH,EAAK,CAACM,GAAN,CAAU,SAACC,CAAD,CAAOC,CAAP,QACf,4BACE,SAAS,CAAEd,cAAc,CAAC,MAAD,CAAS,CAChCG,QAAQ,CAARA,CADgC,CAAT,CAD3B,CAIE,GAAG,CAAEH,cAAc,CAAC,MAAD,CAAS,CAC1BG,QAAQ,CAARA,CAD0B,CAE1BW,KAAK,CAALA,CAF0B,CAAT,CAJrB,EASGD,CATH,CADe,CAAV,CAaR,CA9BM"}
@@ -0,0 +1 @@
1
+ export * from './ListItemGrid';
@@ -0,0 +1,2 @@
1
+ export*from"./ListItemGrid";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/ListCanary/ListItemGrid/index.ts"],"sourcesContent":["export * from './ListItemGrid';\n"],"mappings":"AAAA"}
@@ -0,0 +1 @@
1
+ .ListLoader{box-sizing:border-box;cursor:wait;height:var(--loader-height);padding-left:var(--space-l);width:100%}.ListLoader-Container{align-items:center;display:inline-flex;height:100%;width:calc(var(--space-l) + var(--space-xs))}.ListLoader_size_xs{--loader-height:calc(var(--space-l)/2 + var(--size-text-xs))}.ListLoader_size_s{--loader-height:calc(var(--space-l)*5/4)}.ListLoader_size_m{--loader-height:calc(var(--space-l)*7/4)}.ListLoader_size_l{--loader-height:calc(var(--space-l) + var(--size-text-l))}.ListLoader-Loader.Loader{--backgroundColor:var(--color-control-typo-disable)}
@@ -0,0 +1,6 @@
1
+ import './ListLoader.css';
2
+ import React from 'react';
3
+ import { ListPropSize } from '../types';
4
+ export declare const ListLoader: React.FC<{
5
+ size?: ListPropSize;
6
+ }>;
@@ -0,0 +1,2 @@
1
+ import"./ListLoader.css";import React from"react";import{Loader}from"../../Loader";import{cn}from"../../../utils/bem";import{defaultListPropSize}from"../types";var cnListLoader=cn("ListLoader");export var ListLoader=function(a){var b=a.size,c=void 0===b?defaultListPropSize:b;return React.createElement("div",{className:cnListLoader({size:c})},React.createElement("div",{className:cnListLoader("Container")},React.createElement(Loader,{size:"s",className:cnListLoader("Loader")})))};
2
+ //# sourceMappingURL=ListLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListLoader.js","names":["React","Loader","cn","defaultListPropSize","cnListLoader","ListLoader","size"],"sources":["../../../../../../src/components/ListCanary/ListLoader/ListLoader.tsx"],"sourcesContent":["import './ListLoader.css';\n\nimport React from 'react';\n\nimport { Loader } from '##/components/Loader';\nimport { cn } from '##/utils/bem';\n\nimport { defaultListPropSize, ListPropSize } from '../types';\n\nconst cnListLoader = cn('ListLoader');\n\nexport const ListLoader: React.FC<{ size?: ListPropSize }> = ({\n size = defaultListPropSize,\n}) => {\n return (\n <div className={cnListLoader({ size })}>\n <div className={cnListLoader('Container')}>\n <Loader size=\"s\" className={cnListLoader('Loader')} />\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,yBAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,MAAT,oBACA,OAASC,EAAT,0BAEA,OAASC,mBAAT,gBAEA,GAAMC,aAAY,CAAGF,EAAE,CAAC,YAAD,CAAvB,CAEA,MAAO,IAAMG,WAA6C,CAAG,WAEvD,SADJC,IACI,CADJA,CACI,YADGH,mBACH,GACJ,MACE,4BAAK,SAAS,CAAEC,YAAY,CAAC,CAAEE,IAAI,CAAJA,CAAF,CAAD,CAA5B,EACE,2BAAK,SAAS,CAAEF,YAAY,CAAC,WAAD,CAA5B,EACE,oBAAC,MAAD,EAAQ,IAAI,CAAC,GAAb,CAAiB,SAAS,CAAEA,YAAY,CAAC,QAAD,CAAxC,EADF,CADF,CAMH,CAVM"}
@@ -0,0 +1 @@
1
+ export * from './ListLoader';
@@ -0,0 +1,2 @@
1
+ export*from"./ListLoader";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/ListCanary/ListLoader/index.tsx"],"sourcesContent":["export * from './ListLoader';\n"],"mappings":"AAAA"}
@@ -0,0 +1,59 @@
1
+ /// <reference types="react" />
2
+ import { DefaultListGroup, DefaultListItem, ListPropGetGroupKey, ListPropGetGroupLabel, ListPropGetGroupRightSide, ListPropGetItemActive, ListPropGetItemAs, ListPropGetItemAttributes, ListPropGetItemDisabled, ListPropGetItemGroupId, ListPropGetItemKey, ListPropGetItemLabel, ListPropGetItemLeftIcon, ListPropGetItemLeftSide, ListPropGetItemOnClick, ListPropGetItemRightIcon, ListPropGetItemRightSide, ListProps } from './types';
3
+ export declare function withDefaultGetters<ITEM = DefaultListItem, GROUP = DefaultListGroup>(props: ListProps<ITEM, GROUP>): {
4
+ size?: "s" | "m" | "xs" | "l" | undefined;
5
+ items: ITEM[];
6
+ indent?: "normal" | "increased" | undefined;
7
+ onItemClick?: import("./types").ListPropOnItemClick<ITEM> | undefined;
8
+ getItemKey?: ListPropGetItemKey<ITEM> | undefined;
9
+ getItemLabel?: ListPropGetItemLabel<ITEM> | undefined;
10
+ getItemDisabled?: ListPropGetItemDisabled<ITEM> | undefined;
11
+ getItemActive?: ListPropGetItemActive<ITEM> | undefined;
12
+ getItemLeftSide?: ListPropGetItemLeftSide<ITEM> | undefined;
13
+ getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM> | undefined;
14
+ getItemRightSide?: ListPropGetItemRightSide<ITEM> | undefined;
15
+ getItemRightIcon?: ListPropGetItemRightIcon<ITEM> | undefined;
16
+ getItemGroupKey?: ListPropGetItemGroupId<ITEM> | undefined;
17
+ getItemOnClick?: ListPropGetItemOnClick<ITEM> | undefined;
18
+ getItemAs?: ListPropGetItemAs<ITEM> | undefined;
19
+ getItemAttributes?: ListPropGetItemAttributes<ITEM> | undefined;
20
+ renderItem?: import("./types").ListPropRenderItem<ITEM> | undefined;
21
+ groups?: GROUP[] | undefined;
22
+ getGroupKey?: ListPropGetGroupKey<GROUP> | undefined;
23
+ getGroupLabel?: ListPropGetGroupLabel<GROUP> | undefined;
24
+ getGroupRightSide?: ListPropGetGroupRightSide<GROUP> | undefined;
25
+ isLoading?: boolean | undefined;
26
+ disabled?: boolean | undefined;
27
+ } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "disabled" | "size" | "css" | "items" | "isLoading" | "renderItem" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "indent" | "onItemClick" | "getItemRightSide" | "getItemLeftSide" | "getItemOnClick" | "getItemAs" | "getItemAttributes" | "getItemLeftIcon" | "getItemRightIcon" | "getItemActive" | "getGroupRightSide"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
28
+ label: string;
29
+ } ? {} : {
30
+ getItemLabel: ListPropGetItemLabel<ITEM>;
31
+ }) & (ITEM extends {
32
+ id: string | number;
33
+ } ? {} : {
34
+ getItemKey: ListPropGetItemKey<ITEM>;
35
+ }) & (GROUP extends {
36
+ label: string;
37
+ } ? {} : {
38
+ getGroupLabel: ListPropGetGroupLabel<GROUP>;
39
+ }) & (GROUP extends {
40
+ id: string | number;
41
+ } ? {} : {
42
+ getGroupKey: ListPropGetGroupKey<GROUP>;
43
+ }) & {
44
+ getItemLabel: ListPropGetItemLabel<DefaultListItem> | ListPropGetItemLabel<ITEM>;
45
+ getItemKey: ListPropGetItemKey<DefaultListItem> | ListPropGetItemKey<ITEM>;
46
+ getItemGroupKey: ListPropGetItemGroupId<DefaultListItem> | ListPropGetItemGroupId<ITEM>;
47
+ getItemActive: ListPropGetItemActive<DefaultListItem> | ListPropGetItemActive<ITEM>;
48
+ getItemDisabled: ListPropGetItemDisabled<DefaultListItem> | ListPropGetItemDisabled<ITEM>;
49
+ getItemLeftSide: ListPropGetItemLeftSide<DefaultListItem> | ListPropGetItemLeftSide<ITEM>;
50
+ getItemLeftIcon: ListPropGetItemLeftIcon<DefaultListItem> | ListPropGetItemLeftIcon<ITEM>;
51
+ getItemRightSide: ListPropGetItemRightSide<DefaultListItem> | ListPropGetItemRightSide<ITEM>;
52
+ getItemRightIcon: ListPropGetItemRightIcon<DefaultListItem> | ListPropGetItemRightIcon<ITEM>;
53
+ getItemOnClick: ListPropGetItemOnClick<DefaultListItem> | ListPropGetItemOnClick<ITEM>;
54
+ getGroupLabel: ListPropGetGroupLabel<DefaultListGroup> | ListPropGetGroupLabel<GROUP>;
55
+ getGroupKey: ListPropGetGroupKey<DefaultListGroup> | ListPropGetGroupKey<GROUP>;
56
+ getGroupRightSide: ListPropGetGroupRightSide<DefaultListGroup> | ListPropGetGroupRightSide<GROUP>;
57
+ getItemAs: ListPropGetItemAs<DefaultListItem> | ListPropGetItemAs<ITEM>;
58
+ getItemAttributes: ListPropGetItemAttributes<DefaultListItem> | ListPropGetItemAttributes<ITEM>;
59
+ };
@@ -0,0 +1,2 @@
1
+ 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}var defaultGetItemKey=function(a){return a.id},defaultGetItemLabel=function(a){return a.label},defaultGetItemDisabled=function(a){return a.disabled},defaultGetItemActive=function(a){return a.active},defaultGetItemGroupKey=function(a){return a.groupId},defaultGetItemLeftSide=function(a){return a.leftSide},defaultGetItemLeftIcon=function(a){return a.leftIcon},defaultGetItemRightSide=function(a){return a.rightSide},defaultGetItemRightIcon=function(a){return a.rightIcon},defaultGetItemAs=function(a){return a.as},defaultGetItemAttributes=function(a){return a.attributes},defaultGetItemOnClick=function(a){return a.onClick},defaultGetGroupKey=function(a){return a.id},defaultGetGroupLabel=function(a){return a.label},defaultGetGroupRightSide=function(a){return a.rightSide};export function withDefaultGetters(a){return _objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemKey:a.getItemKey||defaultGetItemKey,getItemGroupKey:a.getItemGroupKey||defaultGetItemGroupKey,getItemActive:a.getItemActive||defaultGetItemActive,getItemDisabled:a.getItemDisabled||defaultGetItemDisabled,getItemLeftSide:a.getItemLeftSide||defaultGetItemLeftSide,getItemLeftIcon:a.getItemLeftIcon||defaultGetItemLeftIcon,getItemRightSide:a.getItemRightSide||defaultGetItemRightSide,getItemRightIcon:a.getItemRightIcon||defaultGetItemRightIcon,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getGroupLabel:a.getGroupLabel||defaultGetGroupLabel,getGroupKey:a.getGroupKey||defaultGetGroupKey,getGroupRightSide:a.getGroupRightSide||defaultGetGroupRightSide,getItemAs:a.getItemAs||defaultGetItemAs,getItemAttributes:a.getItemAttributes||defaultGetItemAttributes})}
2
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemDisabled","disabled","defaultGetItemActive","active","defaultGetItemGroupKey","groupId","defaultGetItemLeftSide","leftSide","defaultGetItemLeftIcon","leftIcon","defaultGetItemRightSide","rightSide","defaultGetItemRightIcon","rightIcon","defaultGetItemAs","as","defaultGetItemAttributes","attributes","defaultGetItemOnClick","onClick","defaultGetGroupKey","group","defaultGetGroupLabel","defaultGetGroupRightSide","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemActive","getItemDisabled","getItemLeftSide","getItemLeftIcon","getItemRightSide","getItemRightIcon","getItemOnClick","getGroupLabel","getGroupKey","getGroupRightSide","getItemAs","getItemAttributes"],"sources":["../../../../../src/components/ListCanary/helper.ts"],"sourcesContent":["import {\n DefaultListGroup,\n DefaultListItem,\n ListPropGetGroupKey,\n ListPropGetGroupLabel,\n ListPropGetGroupRightSide,\n ListPropGetItemActive,\n ListPropGetItemAs,\n ListPropGetItemAttributes,\n ListPropGetItemDisabled,\n ListPropGetItemGroupId,\n ListPropGetItemKey,\n ListPropGetItemLabel,\n ListPropGetItemLeftIcon,\n ListPropGetItemLeftSide,\n ListPropGetItemOnClick,\n ListPropGetItemRightIcon,\n ListPropGetItemRightSide,\n ListProps,\n} from './types';\n\nconst defaultGetItemKey: ListPropGetItemKey<DefaultListItem> = (item) =>\n item.id;\nconst defaultGetItemLabel: ListPropGetItemLabel<DefaultListItem> = (item) =>\n item.label;\nconst defaultGetItemDisabled: ListPropGetItemDisabled<DefaultListItem> = (\n item,\n) => item.disabled;\nconst defaultGetItemActive: ListPropGetItemActive<DefaultListItem> = (item) =>\n item.active;\nconst defaultGetItemGroupKey: ListPropGetItemGroupId<DefaultListItem> = (\n item,\n) => item.groupId;\nconst defaultGetItemLeftSide: ListPropGetItemLeftSide<DefaultListItem> = (\n item,\n) => item.leftSide;\nconst defaultGetItemLeftIcon: ListPropGetItemLeftIcon<DefaultListItem> = (\n item,\n) => item.leftIcon;\nconst defaultGetItemRightSide: ListPropGetItemRightSide<DefaultListItem> = (\n item,\n) => item.rightSide;\nconst defaultGetItemRightIcon: ListPropGetItemRightIcon<DefaultListItem> = (\n item,\n) => item.rightIcon;\nconst defaultGetItemAs: ListPropGetItemAs<DefaultListItem> = (item) => item.as;\nconst defaultGetItemAttributes: ListPropGetItemAttributes<DefaultListItem> = (\n item,\n) => item.attributes;\nconst defaultGetItemOnClick: ListPropGetItemOnClick<DefaultListItem> = (item) =>\n item.onClick;\n\nconst defaultGetGroupKey: ListPropGetGroupKey<DefaultListGroup> = (group) =>\n group.id;\nconst defaultGetGroupLabel: ListPropGetGroupLabel<DefaultListGroup> = (group) =>\n group.label;\nconst defaultGetGroupRightSide: ListPropGetGroupRightSide<DefaultListGroup> = (\n group,\n) => group.rightSide;\n\nexport function withDefaultGetters<\n ITEM = DefaultListItem,\n GROUP = DefaultListGroup,\n>(props: ListProps<ITEM, GROUP>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemActive: props.getItemActive || defaultGetItemActive,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getItemLeftSide: props.getItemLeftSide || defaultGetItemLeftSide,\n getItemLeftIcon: props.getItemLeftIcon || defaultGetItemLeftIcon,\n getItemRightSide: props.getItemRightSide || defaultGetItemRightSide,\n getItemRightIcon: props.getItemRightIcon || defaultGetItemRightIcon,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getGroupRightSide: props.getGroupRightSide || defaultGetGroupRightSide,\n getItemAs: props.getItemAs || defaultGetItemAs,\n getItemAttributes: props.getItemAttributes || defaultGetItemAttributes,\n };\n}\n"],"mappings":"wqBAqBMA,kBAAsD,CAAG,SAACC,CAAD,QAC7DA,EAAI,CAACC,EADwD,C,CAEzDC,mBAA0D,CAAG,SAACF,CAAD,QACjEA,EAAI,CAACG,KAD4D,C,CAE7DC,sBAAgE,CAAG,SACvEJ,CADuE,QAEpEA,EAAI,CAACK,QAF+D,C,CAGnEC,oBAA4D,CAAG,SAACN,CAAD,QACnEA,EAAI,CAACO,MAD8D,C,CAE/DC,sBAA+D,CAAG,SACtER,CADsE,QAEnEA,EAAI,CAACS,OAF8D,C,CAGlEC,sBAAgE,CAAG,SACvEV,CADuE,QAEpEA,EAAI,CAACW,QAF+D,C,CAGnEC,sBAAgE,CAAG,SACvEZ,CADuE,QAEpEA,EAAI,CAACa,QAF+D,C,CAGnEC,uBAAkE,CAAG,SACzEd,CADyE,QAEtEA,EAAI,CAACe,SAFiE,C,CAGrEC,uBAAkE,CAAG,SACzEhB,CADyE,QAEtEA,EAAI,CAACiB,SAFiE,C,CAGrEC,gBAAoD,CAAG,SAAClB,CAAD,QAAUA,EAAI,CAACmB,EAAf,C,CACvDC,wBAAoE,CAAG,SAC3EpB,CAD2E,QAExEA,EAAI,CAACqB,UAFmE,C,CAGvEC,qBAA8D,CAAG,SAACtB,CAAD,QACrEA,EAAI,CAACuB,OADgE,C,CAGjEC,kBAAyD,CAAG,SAACC,CAAD,QAChEA,EAAK,CAACxB,EAD0D,C,CAE5DyB,oBAA6D,CAAG,SAACD,CAAD,QACpEA,EAAK,CAACtB,KAD8D,C,CAEhEwB,wBAAqE,CAAG,SAC5EF,CAD4E,QAEzEA,EAAK,CAACV,SAFmE,C,CAI9E,MAAO,SAASa,mBAAT,CAGLC,CAHK,CAG0B,CAC/B,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsB5B,mBAFtC,CAGE6B,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBhC,iBAHlC,CAIEiC,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBxB,sBAJ5C,CAKEyB,aAAa,CAAEJ,CAAK,CAACI,aAAN,EAAuB3B,oBALxC,CAME4B,eAAe,CAAEL,CAAK,CAACK,eAAN,EAAyB9B,sBAN5C,CAOE+B,eAAe,CAAEN,CAAK,CAACM,eAAN,EAAyBzB,sBAP5C,CAQE0B,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBxB,sBAR5C,CASEyB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BvB,uBAT9C,CAUEwB,gBAAgB,CAAET,CAAK,CAACS,gBAAN,EAA0BtB,uBAV9C,CAWEuB,cAAc,CAAEV,CAAK,CAACU,cAAN,EAAwBjB,qBAX1C,CAYEkB,aAAa,CAAEX,CAAK,CAACW,aAAN,EAAuBd,oBAZxC,CAaEe,WAAW,CAAEZ,CAAK,CAACY,WAAN,EAAqBjB,kBAbpC,CAcEkB,iBAAiB,CAAEb,CAAK,CAACa,iBAAN,EAA2Bf,wBAdhD,CAeEgB,SAAS,CAAEd,CAAK,CAACc,SAAN,EAAmBzB,gBAfhC,CAgBE0B,iBAAiB,CAAEf,CAAK,CAACe,iBAAN,EAA2BxB,wBAhBhD,EAkBD"}
@@ -0,0 +1,6 @@
1
+ export * from './ListCanary';
2
+ export * from './types';
3
+ export * from './ListAddItem';
4
+ export * from './ListItem';
5
+ export * from './ListLoader';
6
+ export * from './ListGroupLabel';
@@ -0,0 +1,2 @@
1
+ export*from"./ListCanary";export*from"./types";export*from"./ListAddItem";export*from"./ListItem";export*from"./ListLoader";export*from"./ListGroupLabel";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/ListCanary/index.tsx"],"sourcesContent":["export * from './ListCanary';\nexport * from './types';\nexport * from './ListAddItem';\nexport * from './ListItem';\nexport * from './ListLoader';\nexport * from './ListGroupLabel';\n"],"mappings":"AAAA,0BACA,qBACA,2BACA,wBACA,0BACA"}
@@ -1,13 +1,13 @@
1
1
  import { IconComponent } from '@consta/icons/Icon';
2
2
  import React from 'react';
3
+ import { PropsWithAsAttributes } from "../../utils/types/PropsWithAsAttributes";
3
4
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
4
- import { RenderItemProps } from '../SelectComponents/types';
5
- export declare const listPropForm: readonly ["default", "brick", "round"];
6
- export declare type ListPropForm = typeof listPropForm[number];
7
- export declare const defaultListPropForm: "default";
8
5
  export declare const listPropSize: readonly ["m", "xs", "s", "l"];
9
6
  export declare type ListPropSize = typeof listPropSize[number];
10
7
  export declare const defaultListPropSize: "m";
8
+ export declare const listPropIndent: readonly ["normal", "increased"];
9
+ export declare type ListPropIndent = typeof listPropIndent[number];
10
+ export declare const defaultListPropIndent: "normal";
11
11
  export declare type DefaultListGroup = {
12
12
  id: string | number;
13
13
  label: string;
@@ -17,44 +17,53 @@ export declare type DefaultListItem = {
17
17
  id: string | number;
18
18
  label: string;
19
19
  disabled?: boolean;
20
+ active?: boolean;
20
21
  groupId?: string | number;
21
22
  leftSide?: React.ReactNode;
22
23
  leftIcon?: IconComponent;
23
24
  rightSide?: React.ReactNode;
24
25
  rightIcon?: IconComponent;
26
+ onClick?: React.MouseEventHandler;
27
+ as?: keyof JSX.IntrinsicElements;
28
+ attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];
25
29
  };
26
- export declare type ListPropValue<ITEM, MULTIPLE extends boolean> = (MULTIPLE extends true ? ITEM[] : ITEM) | null | undefined;
27
- export declare type ListPropOnChange<ITEM, MULTIPLE extends boolean> = (props: {
28
- value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;
29
- e: React.SyntheticEvent;
30
+ export declare type ListPropOnItemClick<ITEM> = (params: {
31
+ e: React.MouseEvent;
32
+ item: ITEM;
30
33
  }) => void;
31
- export declare type ListPropRenderItem<ITEM> = (props: RenderItemProps<ITEM>) => React.ReactElement | null;
34
+ export declare type ListPropRenderItem<ITEM> = (item: ITEM) => React.ReactElement | null;
32
35
  export declare type ListPropGetItemKey<ITEM> = (item: ITEM) => string | number;
33
36
  export declare type ListPropGetItemLabel<ITEM> = (item: ITEM) => string;
34
37
  export declare type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
38
+ export declare type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;
35
39
  export declare type ListPropGetItemGroupId<ITEM> = (item: ITEM) => string | number | undefined;
36
40
  export declare type ListPropGetItemLeftSide<ITEM> = (item: ITEM) => React.ReactNode | undefined;
37
41
  export declare type ListPropGetItemLeftIcon<ITEM> = (item: ITEM) => IconComponent | undefined;
38
42
  export declare type ListPropGetItemRightSide<ITEM> = (item: ITEM) => React.ReactNode | undefined;
39
43
  export declare type ListPropGetItemRightIcon<ITEM> = (item: ITEM) => IconComponent | undefined;
44
+ export declare type ListPropGetItemAs<ITEM> = (item: ITEM) => keyof JSX.IntrinsicElements | undefined;
45
+ export declare type ListPropGetItemAttributes<ITEM> = (item: ITEM) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;
46
+ export declare type ListPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler | undefined;
40
47
  export declare type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;
41
48
  export declare type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string;
42
49
  export declare type ListPropGetGroupRightSide<GROUP> = (item: GROUP) => React.ReactNode | undefined;
43
- export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup, MULTIPLE extends boolean = false> = PropsWithHTMLAttributesAndRef<{
50
+ export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = PropsWithHTMLAttributesAndRef<{
44
51
  size?: ListPropSize;
45
- form?: ListPropForm;
46
- multiple?: MULTIPLE;
47
- value?: ListPropValue<ITEM, MULTIPLE>;
48
- onChange?: ListPropOnChange<ITEM, MULTIPLE>;
49
52
  items: ITEM[];
53
+ indent?: ListPropIndent;
54
+ onItemClick?: ListPropOnItemClick<ITEM>;
50
55
  getItemKey?: ListPropGetItemKey<ITEM>;
51
56
  getItemLabel?: ListPropGetItemLabel<ITEM>;
52
57
  getItemDisabled?: ListPropGetItemDisabled<ITEM>;
58
+ getItemActive?: ListPropGetItemActive<ITEM>;
53
59
  getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;
54
60
  getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;
55
61
  getItemRightSide?: ListPropGetItemRightSide<ITEM>;
56
62
  getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;
57
63
  getItemGroupKey?: ListPropGetItemGroupId<ITEM>;
64
+ getItemOnClick?: ListPropGetItemOnClick<ITEM>;
65
+ getItemAs?: ListPropGetItemAs<ITEM>;
66
+ getItemAttributes?: ListPropGetItemAttributes<ITEM>;
58
67
  renderItem?: ListPropRenderItem<ITEM>;
59
68
  groups?: GROUP[];
60
69
  getGroupKey?: ListPropGetGroupKey<GROUP>;
@@ -79,14 +88,13 @@ export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup,
79
88
  } ? {} : {
80
89
  getGroupKey: ListPropGetGroupKey<GROUP>;
81
90
  });
82
- export declare type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup, MULTIPLE extends boolean = false>(props: ListProps<ITEM, GROUP, MULTIPLE>) => React.ReactElement | null;
83
- export declare type ListItemProps = PropsWithHTMLAttributesAndRef<Omit<DefaultListItem, 'id' | 'groupId'> & {
91
+ export declare type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup>(props: ListProps<ITEM, GROUP>) => React.ReactElement | null;
92
+ export declare type ListItemProps<AS extends keyof JSX.IntrinsicElements = 'div'> = PropsWithAsAttributes<Omit<DefaultListItem, 'id' | 'groupId' | 'attributes' | 'onClick'> & {
84
93
  active?: boolean;
85
- hovered?: boolean;
86
- multiple?: boolean;
87
94
  size?: ListPropSize;
88
95
  indent?: 'normal' | 'increased';
89
- }, HTMLDivElement>;
96
+ }, AS> & React.RefAttributes<HTMLDivElement>;
97
+ export declare type ListItemComponent = <AS extends keyof JSX.IntrinsicElements = 'div'>(props: ListItemProps<AS>, ref: React.Ref<HTMLElement>) => React.ReactElement | null;
90
98
  export declare type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<{
91
99
  size?: ListPropSize;
92
100
  label?: string;
@@ -95,10 +103,6 @@ export declare type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<{
95
103
  export declare type ListAddItemProps = PropsWithHTMLAttributesAndRef<{
96
104
  size?: ListPropSize;
97
105
  label?: React.ReactNode;
98
- indent?: 'normal' | 'increased';
106
+ indent?: ListPropIndent;
99
107
  disabled?: boolean;
100
108
  }, HTMLDivElement>;
101
- export declare type ListWrapperProps = PropsWithHTMLAttributesAndRef<{
102
- size?: ListPropSize;
103
- form?: ListPropForm;
104
- }, HTMLDivElement>;
@@ -1,2 +1,2 @@
1
- export var listPropForm=["default","brick","round"];export var defaultListPropForm=listPropForm[0];export var listPropSize=["m","xs","s","l"];export var defaultListPropSize=listPropSize[0];
1
+ export var listPropSize=["m","xs","s","l"];export var defaultListPropSize=listPropSize[0];export var listPropIndent=["normal","increased"];export var defaultListPropIndent=listPropIndent[0];
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["listPropForm","defaultListPropForm","listPropSize","defaultListPropSize"],"sources":["../../../../../src/components/ListCanary/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { RenderItemProps } from '../SelectComponents/types';\n\nexport const listPropForm = ['default', 'brick', 'round'] as const;\nexport type ListPropForm = typeof listPropForm[number];\nexport const defaultListPropForm = listPropForm[0];\n\nexport const listPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type ListPropSize = typeof listPropSize[number];\nexport const defaultListPropSize = listPropSize[0];\n\nexport type DefaultListGroup = {\n id: string | number;\n label: string;\n rightSide?: React.ReactNode;\n};\n\nexport type DefaultListItem = {\n id: string | number;\n label: string;\n disabled?: boolean;\n groupId?: string | number;\n leftSide?: React.ReactNode;\n leftIcon?: IconComponent;\n rightSide?: React.ReactNode;\n rightIcon?: IconComponent;\n};\n\nexport type ListPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type ListPropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\n\nexport type ListPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\n\n// ITEMS\nexport type ListPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type ListPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type ListPropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type ListPropGetItemLeftSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type ListPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type ListPropGetItemRightSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type ListPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\n// GROUPS\nexport type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;\nexport type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string;\nexport type ListPropGetGroupRightSide<GROUP> = (\n item: GROUP,\n) => React.ReactNode | undefined;\n\nexport type ListProps<\n ITEM = DefaultListItem,\n GROUP = DefaultListGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n form?: ListPropForm;\n multiple?: MULTIPLE;\n value?: ListPropValue<ITEM, MULTIPLE>;\n onChange?: ListPropOnChange<ITEM, MULTIPLE>;\n items: ITEM[];\n getItemKey?: ListPropGetItemKey<ITEM>;\n getItemLabel?: ListPropGetItemLabel<ITEM>;\n getItemDisabled?: ListPropGetItemDisabled<ITEM>;\n getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;\n getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;\n getItemRightSide?: ListPropGetItemRightSide<ITEM>;\n getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;\n getItemGroupKey?: ListPropGetItemGroupId<ITEM>;\n renderItem?: ListPropRenderItem<ITEM>;\n groups?: GROUP[];\n getGroupKey?: ListPropGetGroupKey<GROUP>;\n getGroupLabel?: ListPropGetGroupLabel<GROUP>;\n getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;\n isLoading?: boolean;\n disabled?: boolean;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultListItem['label'] }\n ? {}\n : { getItemLabel: ListPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultListItem['id'] }\n ? {}\n : { getItemKey: ListPropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultListGroup['label'] }\n ? {}\n : { getGroupLabel: ListPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultListGroup['id'] }\n ? {}\n : { getGroupKey: ListPropGetGroupKey<GROUP> });\n\nexport type ListComponent = <\n ITEM = DefaultListItem,\n GROUP = DefaultListGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ListProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport type ListItemProps = PropsWithHTMLAttributesAndRef<\n Omit<DefaultListItem, 'id' | 'groupId'> & {\n active?: boolean;\n hovered?: boolean;\n multiple?: boolean;\n size?: ListPropSize;\n indent?: 'normal' | 'increased';\n },\n HTMLDivElement\n>;\n\nexport type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label?: string;\n rightSide?: React.ReactNode;\n },\n HTMLDivElement\n>;\n\nexport type ListAddItemProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label?: React.ReactNode;\n indent?: 'normal' | 'increased';\n disabled?: boolean;\n },\n HTMLDivElement\n>;\n\nexport type ListWrapperProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n form?: ListPropForm;\n },\n HTMLDivElement\n>;\n"],"mappings":"AAOA,MAAO,IAAMA,aAAY,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC,CAEP,MAAO,IAAME,aAAY,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC"}
1
+ {"version":3,"file":"types.js","names":["listPropSize","defaultListPropSize","listPropIndent","defaultListPropIndent"],"sources":["../../../../../src/components/ListCanary/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const listPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type ListPropSize = typeof listPropSize[number];\nexport const defaultListPropSize = listPropSize[0];\n\nexport const listPropIndent = ['normal', 'increased'] as const;\nexport type ListPropIndent = typeof listPropIndent[number];\nexport const defaultListPropIndent = listPropIndent[0];\n\nexport type DefaultListGroup = {\n id: string | number;\n label: string;\n rightSide?: React.ReactNode;\n};\n\nexport type DefaultListItem = {\n id: string | number;\n label: string;\n disabled?: boolean;\n active?: boolean;\n groupId?: string | number;\n leftSide?: React.ReactNode;\n leftIcon?: IconComponent;\n rightSide?: React.ReactNode;\n rightIcon?: IconComponent;\n onClick?: React.MouseEventHandler;\n as?: keyof JSX.IntrinsicElements;\n attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];\n};\n\nexport type ListPropOnItemClick<ITEM> = (params: {\n e: React.MouseEvent;\n item: ITEM;\n}) => void;\n\nexport type ListPropRenderItem<ITEM> = (\n item: ITEM,\n) => React.ReactElement | null;\n\n// ITEMS\nexport type ListPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type ListPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\nexport type ListPropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type ListPropGetItemLeftSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type ListPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type ListPropGetItemRightSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type ListPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type ListPropGetItemAs<ITEM> = (\n item: ITEM,\n) => keyof JSX.IntrinsicElements | undefined;\nexport type ListPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;\nexport type ListPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\n\n// GROUPS\nexport type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;\nexport type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string;\nexport type ListPropGetGroupRightSide<GROUP> = (\n item: GROUP,\n) => React.ReactNode | undefined;\n\nexport type ListProps<\n ITEM = DefaultListItem,\n GROUP = DefaultListGroup,\n> = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n items: ITEM[];\n indent?: ListPropIndent;\n onItemClick?: ListPropOnItemClick<ITEM>;\n getItemKey?: ListPropGetItemKey<ITEM>;\n getItemLabel?: ListPropGetItemLabel<ITEM>;\n getItemDisabled?: ListPropGetItemDisabled<ITEM>;\n getItemActive?: ListPropGetItemActive<ITEM>;\n getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;\n getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;\n getItemRightSide?: ListPropGetItemRightSide<ITEM>;\n getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;\n getItemGroupKey?: ListPropGetItemGroupId<ITEM>;\n getItemOnClick?: ListPropGetItemOnClick<ITEM>;\n getItemAs?: ListPropGetItemAs<ITEM>;\n getItemAttributes?: ListPropGetItemAttributes<ITEM>;\n renderItem?: ListPropRenderItem<ITEM>;\n groups?: GROUP[];\n getGroupKey?: ListPropGetGroupKey<GROUP>;\n getGroupLabel?: ListPropGetGroupLabel<GROUP>;\n getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;\n isLoading?: boolean;\n disabled?: boolean;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultListItem['label'] }\n ? {}\n : { getItemLabel: ListPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultListItem['id'] }\n ? {}\n : { getItemKey: ListPropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultListGroup['label'] }\n ? {}\n : { getGroupLabel: ListPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultListGroup['id'] }\n ? {}\n : { getGroupKey: ListPropGetGroupKey<GROUP> });\n\nexport type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup>(\n props: ListProps<ITEM, GROUP>,\n) => React.ReactElement | null;\n\nexport type ListItemProps<AS extends keyof JSX.IntrinsicElements = 'div'> =\n PropsWithAsAttributes<\n Omit<DefaultListItem, 'id' | 'groupId' | 'attributes' | 'onClick'> & {\n active?: boolean;\n size?: ListPropSize;\n indent?: 'normal' | 'increased';\n },\n AS\n > &\n React.RefAttributes<HTMLDivElement>;\n\nexport type ListItemComponent = <\n AS extends keyof JSX.IntrinsicElements = 'div',\n>(\n props: ListItemProps<AS>,\n ref: React.Ref<HTMLElement>,\n) => React.ReactElement | null;\n\nexport type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label?: string;\n rightSide?: React.ReactNode;\n },\n HTMLDivElement\n>;\n\nexport type ListAddItemProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label?: React.ReactNode;\n indent?: ListPropIndent;\n disabled?: boolean;\n },\n HTMLDivElement\n>;\n"],"mappings":"AAMA,MAAO,IAAMA,aAAY,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,QAAD,CAAW,WAAX,CAAvB,CAEP,MAAO,IAAMC,sBAAqB,CAAGD,cAAc,CAAC,CAAD,CAA5C"}
@@ -1 +1 @@
1
- .Radio{cursor:pointer;display:inline-flex;font-family:var(--font-sans);position:relative}.Radio-Input{-webkit-appearance:none;border:var(--control-border-width) solid;cursor:pointer;flex-shrink:0;margin:0;position:relative;transition:border-color .15s,background-color .15s}.Radio-Input,.Radio-Input:before{border-radius:50%;box-sizing:border-box;height:var(--box-size);width:var(--box-size)}.Radio-Input:before{content:"";left:calc(50% - var(--box-size)/2);opacity:0;position:absolute;top:calc(50% - var(--box-size)/2);transform:scale(0);transition:background-color .15s,opacity .15s,transform .15s}.Radio-Label{color:var(--color-control-typo-default);font-size:var(--radio-font-size);margin-left:var(--offset)}.Radio_size_m{--radio-font-size:var(--control-text-size-m);--box-size:var(--control-box-size-m);--offset:var(--space-xs)}.Radio_size_l{--radio-font-size:var(--control-text-size-l);--box-size:var(--control-box-size-l);--offset:var(--space-s)}.Radio_view_primary:hover .Radio-Input{border-color:var(--color-control-bg-border-default-hover)}.Radio_view_primary .Radio-Input{border-color:var(--color-control-bg-border-default)}.Radio_view_primary .Radio-Input:before{background-color:var(--color-control-bg-primary)}.Radio_view_primary .Radio-Input:checked{border-color:var(--color-control-bg-primary)}.Radio_view_primary .Radio-Input:checked:before{background-color:var(--color-control-bg-primary)}.Radio_view_primary:hover .Radio-Input:checked{border-color:var(--color-control-bg-primary-hover)}.Radio_view_primary:hover .Radio-Input:checked:before{background-color:var(--color-control-bg-primary-hover)}.Radio_view_ghost:hover .Radio-Input{border-color:var(--color-control-bg-border-default-hover)}.Radio_view_ghost .Radio-Input{border-color:var(--color-control-bg-border-default)}.Radio_view_ghost .Radio-Input:before{background-color:var(--color-control-bg-primary)}.Radio_view_ghost .Radio-Input:checked{background-color:var(--color-control-bg-ghost);border-color:var(--color-control-bg-border-default)}.Radio_view_ghost .Radio-Input:checked:before{background-color:var(--color-control-typo-ghost)}.Radio_view_ghost:hover .Radio-Input:checked{background-color:var(--color-control-bg-ghost-hover);border-color:var(--color-control-bg-border-default)}.Radio_view_ghost:hover .Radio-Input:checked:before{background-color:var(--color-control-typo-ghost-hover)}.Radio-Input:checked:before{opacity:1;transform:scale(.4)}.Radio_disabled{pointer-events:none}.Radio_disabled .Radio-Input:disabled{background-color:var(--color-control-bg-disable);border-color:transparent}.Radio_disabled .Radio-Input:disabled:before{background-color:var(--color-control-typo-disable)}.Radio_disabled .Radio-Input:disabled~.Radio-Label{color:var(--color-control-typo-disable)}.Radio_align_center{align-items:center}.Radio_align_top{align-items:top}.Radio_align_top .Radio-Input{margin-top:var(--space-3xs)}
1
+ .Radio{cursor:pointer;display:inline-flex;font-family:var(--font-sans);position:relative}.Radio-Input{-webkit-appearance:none;border:var(--control-border-width) solid;cursor:pointer;flex-shrink:0;margin:0;position:relative;transition:border-color .15s,background-color .15s}.Radio-Input,.Radio-Input:before{border-radius:50%;box-sizing:border-box;height:var(--radio-size);width:var(--radio-size)}.Radio-Input:before{content:"";left:calc(50% - var(--radio-size)/2);opacity:0;position:absolute;top:calc(50% - var(--radio-size)/2);transform:scale(0);transition:background-color .15s,opacity .15s,transform .15s}.Radio-Label{color:var(--color-control-typo-default);font-size:var(--radio-font-size);margin-left:var(--radio-offset)}.Radio_size_xs{--radio-font-size:var(--control-text-size-xs);--radio-size:var(--control-box-size-s);--radio-offset:var(--space-xs)}.Radio_size_s{--radio-font-size:var(--control-text-size-s);--radio-size:var(--control-box-size-s);--radio-offset:var(--space-xs)}.Radio_size_m{--radio-font-size:var(--control-text-size-m);--radio-size:var(--control-box-size-m);--radio-offset:var(--space-xs)}.Radio_size_l{--radio-font-size:var(--control-text-size-l);--radio-size:var(--control-box-size-l);--radio-offset:var(--space-s)}.Radio_view_primary:hover .Radio-Input{border-color:var(--color-control-bg-border-default-hover)}.Radio_view_primary .Radio-Input{border-color:var(--color-control-bg-border-default)}.Radio_view_primary .Radio-Input:before{background-color:var(--color-control-bg-primary)}.Radio_view_primary .Radio-Input:checked{border-color:var(--color-control-bg-primary)}.Radio_view_primary .Radio-Input:checked:before{background-color:var(--color-control-bg-primary)}.Radio_view_primary:hover .Radio-Input:checked{border-color:var(--color-control-bg-primary-hover)}.Radio_view_primary:hover .Radio-Input:checked:before{background-color:var(--color-control-bg-primary-hover)}.Radio_view_ghost:hover .Radio-Input{border-color:var(--color-control-bg-border-default-hover)}.Radio_view_ghost .Radio-Input{border-color:var(--color-control-bg-border-default)}.Radio_view_ghost .Radio-Input:before{background-color:var(--color-control-bg-primary)}.Radio_view_ghost .Radio-Input:checked{background-color:var(--color-control-bg-ghost);border-color:var(--color-control-bg-border-default)}.Radio_view_ghost .Radio-Input:checked:before{background-color:var(--color-control-typo-ghost)}.Radio_view_ghost:hover .Radio-Input:checked{background-color:var(--color-control-bg-ghost-hover);border-color:var(--color-control-bg-border-default)}.Radio_view_ghost:hover .Radio-Input:checked:before{background-color:var(--color-control-typo-ghost-hover)}.Radio-Input:checked:before{opacity:1;transform:scale(.4)}.Radio_disabled{pointer-events:none}.Radio_disabled .Radio-Input:disabled{background-color:var(--color-control-bg-disable);border-color:transparent}.Radio_disabled .Radio-Input:disabled:before{background-color:var(--color-control-typo-disable)}.Radio_disabled .Radio-Input:disabled~.Radio-Label{color:var(--color-control-typo-disable)}.Radio_align_center{align-items:center}.Radio_align_top{align-items:top}.Radio_align_top .Radio-Input{margin-top:var(--space-3xs)}
@@ -1,7 +1,7 @@
1
1
  import './Radio.css';
2
2
  import React from 'react';
3
3
  import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
4
- export declare const radioPropSize: readonly ["m", "l"];
4
+ export declare const radioPropSize: readonly ["m", "l", "s", "xs"];
5
5
  export declare type RadioPropSize = typeof radioPropSize[number];
6
6
  export declare const radioPropSizeDefault: RadioPropSize;
7
7
  export declare const radioPropView: readonly ["primary", "ghost"];
@@ -15,7 +15,7 @@ export declare type RadioPropOnChange = (object: {
15
15
  checked: boolean;
16
16
  }) => void;
17
17
  export declare type Props = {
18
- checked: boolean | undefined;
18
+ checked?: boolean;
19
19
  size?: RadioPropSize;
20
20
  view?: RadioPropView;
21
21
  align?: RadioPropAlign;
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["checked","name","size","view","align","disabled","className","label","onChange","onFocus","onBlur","readOnly","required","step","tabIndex","inputId","inputRef"];import"./Radio.css";import React,{useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{cn}from"../../utils/bem";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";export var radioPropSize=["m","l"];export var radioPropSizeDefault=radioPropSize[0];export var radioPropView=["primary","ghost"];export var radioPropViewDefault=radioPropView[0];export var radioPropAlign=["center","top"];export var radioPropAlignDefault=radioPropAlign[0];export var cnRadio=cn("Radio");export var COMPONENT_NAME="Radio";export var Radio=React.forwardRef(function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.checked,f=void 0!==e&&e,g=d.name,h=d.size,i=void 0===h?radioPropSizeDefault:h,j=d.view,k=void 0===j?radioPropViewDefault:j,l=d.align,m=void 0===l?radioPropAlignDefault:l,n=d.disabled,o=d.className,p=d.label,q=d.onChange,r=d.onFocus,s=d.onBlur,t=d.readOnly,u=d.required,v=d.step,w=d.tabIndex,x=d.inputId,y=d.inputRef,z=_objectWithoutProperties(d,_excluded);return React.createElement("label",Object.assign({},z,{className:cnRadio({size:i,view:k,disabled:n,align:m},[o]),ref:useForkRef([b,c])}),React.createElement("input",{type:"radio",name:g,className:cnRadio("Input",[cnMixFocus()]),checked:f,disabled:n,onChange:function handleChange(a){q&&q({e:a,checked:!f})},onFocus:r,onBlur:s,readOnly:t,required:u,step:v,id:x,tabIndex:w,ref:y}),p&&React.createElement("span",{className:cnRadio("Label")},p))});
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["checked","name","size","view","align","disabled","className","label","onChange","onFocus","onBlur","readOnly","required","step","tabIndex","inputId","inputRef"];import"./Radio.css";import React,{useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{cn}from"../../utils/bem";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";export var radioPropSize=["m","l","s","xs"];export var radioPropSizeDefault=radioPropSize[0];export var radioPropView=["primary","ghost"];export var radioPropViewDefault=radioPropView[0];export var radioPropAlign=["center","top"];export var radioPropAlignDefault=radioPropAlign[0];export var cnRadio=cn("Radio");export var COMPONENT_NAME="Radio";export var Radio=React.forwardRef(function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.checked,f=void 0!==e&&e,g=d.name,h=d.size,i=void 0===h?radioPropSizeDefault:h,j=d.view,k=void 0===j?radioPropViewDefault:j,l=d.align,m=void 0===l?radioPropAlignDefault:l,n=d.disabled,o=d.className,p=d.label,q=d.onChange,r=d.onFocus,s=d.onBlur,t=d.readOnly,u=d.required,v=d.step,w=d.tabIndex,x=d.inputId,y=d.inputRef,z=_objectWithoutProperties(d,_excluded);return React.createElement("label",Object.assign({},z,{className:cnRadio({size:i,view:k,disabled:n,align:m},[o]),ref:useForkRef([b,c])}),React.createElement("input",{type:"radio",name:g,className:cnRadio("Input",[cnMixFocus()]),checked:f,disabled:n,onChange:function handleChange(a){q&&q({e:a,checked:!f})},onFocus:r,onBlur:s,readOnly:t,required:u,step:v,id:x,tabIndex:w,ref:y}),p&&React.createElement("span",{className:cnRadio("Label")},p))});
2
2
  //# sourceMappingURL=Radio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":["React","useRef","useForkRef","cnMixFocus","cn","usePropsHandler","radioPropSize","radioPropSizeDefault","radioPropView","radioPropViewDefault","radioPropAlign","radioPropAlignDefault","cnRadio","COMPONENT_NAME","Radio","forwardRef","props","ref","radioRef","checked","name","size","view","align","disabled","className","label","onChange","onFocus","onBlur","readOnly","required","step","tabIndex","inputId","inputRef","otherProps","handleChange","e"],"sources":["../../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import './Radio.css';\n\nimport React, { ChangeEventHandler, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../utils/bem';\nimport { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\n\nexport const radioPropSize = ['m', 'l'] as const;\nexport type RadioPropSize = typeof radioPropSize[number];\nexport const radioPropSizeDefault: RadioPropSize = radioPropSize[0];\n\nexport const radioPropView = ['primary', 'ghost'] as const;\nexport type RadioPropView = typeof radioPropView[number];\nexport const radioPropViewDefault: RadioPropView = radioPropView[0];\n\nexport const radioPropAlign = ['center', 'top'] as const;\nexport type RadioPropAlign = typeof radioPropAlign[number];\nexport const radioPropAlignDefault: RadioPropAlign = radioPropAlign[0];\n\nexport type RadioPropOnChange = (object: {\n e: React.ChangeEvent<HTMLInputElement>;\n checked: boolean;\n}) => void;\n\nexport type Props = {\n checked: boolean | undefined;\n size?: RadioPropSize;\n view?: RadioPropView;\n align?: RadioPropAlign;\n disabled?: boolean;\n className?: string;\n label?: string;\n onChange?: RadioPropOnChange;\n name?: string;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n autoFocus?: boolean;\n readOnly?: boolean;\n required?: boolean;\n step?: number | string;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLInputElement>;\n children?: never;\n for?: string;\n inputId?: string;\n};\n\nexport type RadioProps = PropsWithHTMLAttributes<Props, HTMLLabelElement>;\n\nexport const cnRadio = cn('Radio');\n\nexport const COMPONENT_NAME = 'Radio' as const;\n\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props, ref) => {\n const radioRef = useRef<HTMLLabelElement>(null);\n\n const {\n checked = false,\n name,\n size = radioPropSizeDefault,\n view = radioPropViewDefault,\n align = radioPropAlignDefault,\n disabled,\n className,\n label,\n onChange,\n onFocus,\n onBlur,\n readOnly,\n required,\n step,\n tabIndex,\n inputId,\n inputRef,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, radioRef);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n if (onChange) {\n onChange({ e, checked: !checked });\n }\n };\n\n return (\n <label\n {...otherProps}\n className={cnRadio({ size, view, disabled, align }, [className])}\n ref={useForkRef([ref, radioRef])}\n >\n <input\n type=\"radio\"\n name={name}\n className={cnRadio('Input', [cnMixFocus()])}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n readOnly={readOnly}\n required={required}\n step={step}\n id={inputId}\n tabIndex={tabIndex}\n ref={inputRef}\n />\n {label && <span className={cnRadio('Label')}>{label}</span>}\n </label>\n );\n },\n);\n"],"mappings":"sQAAA,oBAEA,MAAOA,MAAP,EAAoCC,MAApC,KAAkD,OAAlD,CAEA,OAASC,UAAT,yCACA,OAASC,UAAT,oCACA,OAASC,EAAT,uBAEA,OAASC,eAAT,2CAEA,MAAO,IAAMC,cAAa,CAAG,CAAC,GAAD,CAAM,GAAN,CAAtB,CAEP,MAAO,IAAMC,qBAAmC,CAAGD,aAAa,CAAC,CAAD,CAAzD,CAEP,MAAO,IAAME,cAAa,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAtB,CAEP,MAAO,IAAMC,qBAAmC,CAAGD,aAAa,CAAC,CAAD,CAAzD,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,QAAD,CAAW,KAAX,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAgCP,MAAO,IAAME,QAAO,CAAGR,EAAE,CAAC,OAAD,CAAlB,CAEP,MAAO,IAAMS,eAAc,CAAG,OAAvB,CAEP,MAAO,IAAMC,MAAK,CAAGd,KAAK,CAACe,UAAN,CACnB,SAACC,CAAD,CAAQC,CAAR,CAAgB,IACRC,EAAQ,CAAGjB,MAAM,CAAmB,IAAnB,CADT,GAsBVI,eAAe,CAACQ,cAAD,CAAiBG,CAAjB,CAAwBE,CAAxB,CAtBL,KAIZC,OAJY,CAIZA,CAJY,eAKZC,CALY,GAKZA,IALY,KAMZC,IANY,CAMZA,CANY,YAMLd,oBANK,OAOZe,IAPY,CAOZA,CAPY,YAOLb,oBAPK,OAQZc,KARY,CAQZA,CARY,YAQJZ,qBARI,GASZa,CATY,GASZA,QATY,CAUZC,CAVY,GAUZA,SAVY,CAWZC,CAXY,GAWZA,KAXY,CAYZC,CAZY,GAYZA,QAZY,CAaZC,CAbY,GAaZA,OAbY,CAcZC,CAdY,GAcZA,MAdY,CAeZC,CAfY,GAeZA,QAfY,CAgBZC,CAhBY,GAgBZA,QAhBY,CAiBZC,CAjBY,GAiBZA,IAjBY,CAkBZC,CAlBY,GAkBZA,QAlBY,CAmBZC,CAnBY,GAmBZA,OAnBY,CAoBZC,CApBY,GAoBZA,QApBY,CAqBTC,CArBS,uCA8Bd,MACE,8CACMA,CADN,EAEE,SAAS,CAAExB,OAAO,CAAC,CAAES,IAAI,CAAJA,CAAF,CAAQC,IAAI,CAAJA,CAAR,CAAcE,QAAQ,CAARA,CAAd,CAAwBD,KAAK,CAALA,CAAxB,CAAD,CAAkC,CAACE,CAAD,CAAlC,CAFpB,CAGE,GAAG,CAAEvB,UAAU,CAAC,CAACe,CAAD,CAAMC,CAAN,CAAD,CAHjB,GAKE,6BACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAEE,CAFR,CAGE,SAAS,CAAER,OAAO,CAAC,OAAD,CAAU,CAACT,UAAU,EAAX,CAAV,CAHpB,CAIE,OAAO,CAAEgB,CAJX,CAKE,QAAQ,CAAEK,CALZ,CAME,QAAQ,CAlB6C,QAArDa,aAAqD,CAACC,CAAD,CAAO,CAC5DX,CAD4D,EAE9DA,CAAQ,CAAC,CAAEW,CAAC,CAADA,CAAF,CAAKnB,OAAO,CAAE,CAACA,CAAf,CAAD,CAEX,CAQG,CAOE,OAAO,CAAES,CAPX,CAQE,MAAM,CAAEC,CARV,CASE,QAAQ,CAAEC,CATZ,CAUE,QAAQ,CAAEC,CAVZ,CAWE,IAAI,CAAEC,CAXR,CAYE,EAAE,CAAEE,CAZN,CAaE,QAAQ,CAAED,CAbZ,CAcE,GAAG,CAAEE,CAdP,EALF,CAqBGT,CAAK,EAAI,4BAAM,SAAS,CAAEd,OAAO,CAAC,OAAD,CAAxB,EAAoCc,CAApC,CArBZ,CAwBH,CAxDkB,CAAd"}
1
+ {"version":3,"file":"Radio.js","names":["React","useRef","useForkRef","cnMixFocus","cn","usePropsHandler","radioPropSize","radioPropSizeDefault","radioPropView","radioPropViewDefault","radioPropAlign","radioPropAlignDefault","cnRadio","COMPONENT_NAME","Radio","forwardRef","props","ref","radioRef","checked","name","size","view","align","disabled","className","label","onChange","onFocus","onBlur","readOnly","required","step","tabIndex","inputId","inputRef","otherProps","handleChange","e"],"sources":["../../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import './Radio.css';\n\nimport React, { ChangeEventHandler, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../utils/bem';\nimport { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\n\nexport const radioPropSize = ['m', 'l', 's', 'xs'] as const;\nexport type RadioPropSize = typeof radioPropSize[number];\nexport const radioPropSizeDefault: RadioPropSize = radioPropSize[0];\n\nexport const radioPropView = ['primary', 'ghost'] as const;\nexport type RadioPropView = typeof radioPropView[number];\nexport const radioPropViewDefault: RadioPropView = radioPropView[0];\n\nexport const radioPropAlign = ['center', 'top'] as const;\nexport type RadioPropAlign = typeof radioPropAlign[number];\nexport const radioPropAlignDefault: RadioPropAlign = radioPropAlign[0];\n\nexport type RadioPropOnChange = (object: {\n e: React.ChangeEvent<HTMLInputElement>;\n checked: boolean;\n}) => void;\n\nexport type Props = {\n checked?: boolean;\n size?: RadioPropSize;\n view?: RadioPropView;\n align?: RadioPropAlign;\n disabled?: boolean;\n className?: string;\n label?: string;\n onChange?: RadioPropOnChange;\n name?: string;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n autoFocus?: boolean;\n readOnly?: boolean;\n required?: boolean;\n step?: number | string;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLInputElement>;\n children?: never;\n for?: string;\n inputId?: string;\n};\n\nexport type RadioProps = PropsWithHTMLAttributes<Props, HTMLLabelElement>;\n\nexport const cnRadio = cn('Radio');\n\nexport const COMPONENT_NAME = 'Radio' as const;\n\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props, ref) => {\n const radioRef = useRef<HTMLLabelElement>(null);\n\n const {\n checked = false,\n name,\n size = radioPropSizeDefault,\n view = radioPropViewDefault,\n align = radioPropAlignDefault,\n disabled,\n className,\n label,\n onChange,\n onFocus,\n onBlur,\n readOnly,\n required,\n step,\n tabIndex,\n inputId,\n inputRef,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, radioRef);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n if (onChange) {\n onChange({ e, checked: !checked });\n }\n };\n\n return (\n <label\n {...otherProps}\n className={cnRadio({ size, view, disabled, align }, [className])}\n ref={useForkRef([ref, radioRef])}\n >\n <input\n type=\"radio\"\n name={name}\n className={cnRadio('Input', [cnMixFocus()])}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n readOnly={readOnly}\n required={required}\n step={step}\n id={inputId}\n tabIndex={tabIndex}\n ref={inputRef}\n />\n {label && <span className={cnRadio('Label')}>{label}</span>}\n </label>\n );\n },\n);\n"],"mappings":"sQAAA,oBAEA,MAAOA,MAAP,EAAoCC,MAApC,KAAkD,OAAlD,CAEA,OAASC,UAAT,yCACA,OAASC,UAAT,oCACA,OAASC,EAAT,uBAEA,OAASC,eAAT,2CAEA,MAAO,IAAMC,cAAa,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAgB,IAAhB,CAAtB,CAEP,MAAO,IAAMC,qBAAmC,CAAGD,aAAa,CAAC,CAAD,CAAzD,CAEP,MAAO,IAAME,cAAa,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAtB,CAEP,MAAO,IAAMC,qBAAmC,CAAGD,aAAa,CAAC,CAAD,CAAzD,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,QAAD,CAAW,KAAX,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAgCP,MAAO,IAAME,QAAO,CAAGR,EAAE,CAAC,OAAD,CAAlB,CAEP,MAAO,IAAMS,eAAc,CAAG,OAAvB,CAEP,MAAO,IAAMC,MAAK,CAAGd,KAAK,CAACe,UAAN,CACnB,SAACC,CAAD,CAAQC,CAAR,CAAgB,IACRC,EAAQ,CAAGjB,MAAM,CAAmB,IAAnB,CADT,GAsBVI,eAAe,CAACQ,cAAD,CAAiBG,CAAjB,CAAwBE,CAAxB,CAtBL,KAIZC,OAJY,CAIZA,CAJY,eAKZC,CALY,GAKZA,IALY,KAMZC,IANY,CAMZA,CANY,YAMLd,oBANK,OAOZe,IAPY,CAOZA,CAPY,YAOLb,oBAPK,OAQZc,KARY,CAQZA,CARY,YAQJZ,qBARI,GASZa,CATY,GASZA,QATY,CAUZC,CAVY,GAUZA,SAVY,CAWZC,CAXY,GAWZA,KAXY,CAYZC,CAZY,GAYZA,QAZY,CAaZC,CAbY,GAaZA,OAbY,CAcZC,CAdY,GAcZA,MAdY,CAeZC,CAfY,GAeZA,QAfY,CAgBZC,CAhBY,GAgBZA,QAhBY,CAiBZC,CAjBY,GAiBZA,IAjBY,CAkBZC,CAlBY,GAkBZA,QAlBY,CAmBZC,CAnBY,GAmBZA,OAnBY,CAoBZC,CApBY,GAoBZA,QApBY,CAqBTC,CArBS,uCA8Bd,MACE,8CACMA,CADN,EAEE,SAAS,CAAExB,OAAO,CAAC,CAAES,IAAI,CAAJA,CAAF,CAAQC,IAAI,CAAJA,CAAR,CAAcE,QAAQ,CAARA,CAAd,CAAwBD,KAAK,CAALA,CAAxB,CAAD,CAAkC,CAACE,CAAD,CAAlC,CAFpB,CAGE,GAAG,CAAEvB,UAAU,CAAC,CAACe,CAAD,CAAMC,CAAN,CAAD,CAHjB,GAKE,6BACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAEE,CAFR,CAGE,SAAS,CAAER,OAAO,CAAC,OAAD,CAAU,CAACT,UAAU,EAAX,CAAV,CAHpB,CAIE,OAAO,CAAEgB,CAJX,CAKE,QAAQ,CAAEK,CALZ,CAME,QAAQ,CAlB6C,QAArDa,aAAqD,CAACC,CAAD,CAAO,CAC5DX,CAD4D,EAE9DA,CAAQ,CAAC,CAAEW,CAAC,CAADA,CAAF,CAAKnB,OAAO,CAAE,CAACA,CAAf,CAAD,CAEX,CAQG,CAOE,OAAO,CAAES,CAPX,CAQE,MAAM,CAAEC,CARV,CASE,QAAQ,CAAEC,CATZ,CAUE,QAAQ,CAAEC,CAVZ,CAWE,IAAI,CAAEC,CAXR,CAYE,EAAE,CAAEE,CAZN,CAaE,QAAQ,CAAED,CAbZ,CAcE,GAAG,CAAEE,CAdP,EALF,CAqBGT,CAAK,EAAI,4BAAM,SAAS,CAAEd,OAAO,CAAC,OAAD,CAAxB,EAAoCc,CAApC,CArBZ,CAwBH,CAxDkB,CAAd"}
@@ -1 +1 @@
1
- .RadioGroup{display:flex}.RadioGroup_direction_column{flex-direction:column}.RadioGroup_direction_column .RadioGroup-Item:not(:last-child){margin-bottom:var(--offset)}.RadioGroup_direction_row{flex-direction:row}.RadioGroup_direction_row .RadioGroup-Item:not(:last-child){margin-right:var(--offset)}.RadioGroup_size_m{--offset:var(--space-xs)}.RadioGroup_size_l{--offset:var(--space-s)}
1
+ .RadioGroup{display:flex}.RadioGroup_direction_column{flex-direction:column}.RadioGroup_direction_column .RadioGroup-Item:not(:last-child){margin-bottom:var(--offset)}.RadioGroup_direction_row{flex-direction:row}.RadioGroup_direction_row .RadioGroup-Item:not(:last-child){margin-right:var(--offset)}.RadioGroup_size_xs{--offset:var(--space-3xs)}.RadioGroup_size_s{--offset:var(--space-2xs)}.RadioGroup_size_m{--offset:var(--space-xs)}.RadioGroup_size_l{--offset:var(--space-s)}
@@ -12,7 +12,7 @@ export declare const withDefaultGetters: (props: RadioGroupProps) => {
12
12
  }) => void;
13
13
  name?: string | undefined;
14
14
  direction?: "row" | "column" | undefined;
15
- size?: "m" | "l" | undefined;
15
+ size?: "s" | "m" | "xs" | "l" | undefined;
16
16
  view?: "primary" | "ghost" | undefined;
17
17
  disabled?: boolean | undefined;
18
18
  className?: string | undefined;
@@ -7,7 +7,7 @@ export declare type RadioGroupDefaultItem = {
7
7
  export declare const radioGroupDirections: readonly ["column", "row"];
8
8
  export declare type RadioGroupDirection = typeof radioGroupDirections[number];
9
9
  export declare const radioGroupDefaultDirection: RadioGroupDirection;
10
- export declare const radioGroupSizes: readonly ["m", "l"];
10
+ export declare const radioGroupSizes: readonly ["m", "l", "xs", "s"];
11
11
  export declare type RadioGroupPropSize = typeof radioGroupSizes[number];
12
12
  export declare const radioGroupDefaultSize: RadioGroupPropSize;
13
13
  export declare const radioGroupViews: readonly ["primary", "ghost"];
@@ -1,2 +1,2 @@
1
- export var radioGroupDirections=["column","row"];export var radioGroupDefaultDirection=radioGroupDirections[0];export var radioGroupSizes=["m","l"];export var radioGroupDefaultSize=radioGroupSizes[0];export var radioGroupViews=["primary","ghost"];export var radioGroupDefaultView=radioGroupViews[0];export var radioGroupPropAlign=["center","top"];export var radioGroupPropAlignDefault=radioGroupPropAlign[0];
1
+ export var radioGroupDirections=["column","row"];export var radioGroupDefaultDirection=radioGroupDirections[0];export var radioGroupSizes=["m","l","xs","s"];export var radioGroupDefaultSize=radioGroupSizes[0];export var radioGroupViews=["primary","ghost"];export var radioGroupDefaultView=radioGroupViews[0];export var radioGroupPropAlign=["center","top"];export var radioGroupPropAlignDefault=radioGroupPropAlign[0];
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["radioGroupDirections","radioGroupDefaultDirection","radioGroupSizes","radioGroupDefaultSize","radioGroupViews","radioGroupDefaultView","radioGroupPropAlign","radioGroupPropAlignDefault"],"sources":["../../../../../src/components/RadioGroup/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport type RadioGroupDefaultItem = {\n label: string;\n disabled?: boolean;\n};\n\nexport const radioGroupDirections = ['column', 'row'] as const;\nexport type RadioGroupDirection = typeof radioGroupDirections[number];\nexport const radioGroupDefaultDirection: RadioGroupDirection =\n radioGroupDirections[0];\n\nexport const radioGroupSizes = ['m', 'l'] as const;\nexport type RadioGroupPropSize = typeof radioGroupSizes[number];\nexport const radioGroupDefaultSize: RadioGroupPropSize = radioGroupSizes[0];\n\nexport const radioGroupViews = ['primary', 'ghost'] as const;\nexport type RadioGroupPropView = typeof radioGroupViews[number];\nexport const radioGroupDefaultView: RadioGroupPropView = radioGroupViews[0];\n\nexport const radioGroupPropAlign = ['center', 'top'] as const;\nexport type RadioGroupPropAlign = typeof radioGroupPropAlign[number];\nexport const radioGroupPropAlignDefault: RadioGroupPropAlign =\n radioGroupPropAlign[0];\n\nexport type RadioGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type RadioGroupPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\n\nexport type RadioGroupProps<ITEM = RadioGroupDefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n align?: RadioGroupPropAlign;\n value?: ITEM | null;\n items: ITEM[];\n getItemLabel?: RadioGroupPropGetItemLabel<ITEM>;\n getItemDisabled?: RadioGroupPropGetItemDisabled<ITEM>;\n onChange: (props: {\n e: React.ChangeEvent<HTMLInputElement>;\n value: ITEM;\n }) => void;\n name?: string;\n direction?: RadioGroupDirection;\n size?: RadioGroupPropSize;\n view?: RadioGroupPropView;\n disabled?: boolean;\n className?: string;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: RadioGroupDefaultItem['label'] }\n ? {}\n : {\n getItemLabel: RadioGroupPropGetItemLabel<ITEM>;\n });\n\nexport type RadioGroupComponent = <ITEM = RadioGroupDefaultItem>(\n props: RadioGroupProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":"AAOA,MAAO,IAAMA,qBAAoB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA7B,CAEP,MAAO,IAAMC,2BAA+C,CAC1DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,gBAAe,CAAG,CAAC,GAAD,CAAM,GAAN,CAAxB,CAEP,MAAO,IAAMC,sBAAyC,CAAGD,eAAe,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,gBAAe,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAxB,CAEP,MAAO,IAAMC,sBAAyC,CAAGD,eAAe,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,oBAAmB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA5B,CAEP,MAAO,IAAMC,2BAA+C,CAC1DD,mBAAmB,CAAC,CAAD,CADd"}
1
+ {"version":3,"file":"types.js","names":["radioGroupDirections","radioGroupDefaultDirection","radioGroupSizes","radioGroupDefaultSize","radioGroupViews","radioGroupDefaultView","radioGroupPropAlign","radioGroupPropAlignDefault"],"sources":["../../../../../src/components/RadioGroup/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport type RadioGroupDefaultItem = {\n label: string;\n disabled?: boolean;\n};\n\nexport const radioGroupDirections = ['column', 'row'] as const;\nexport type RadioGroupDirection = typeof radioGroupDirections[number];\nexport const radioGroupDefaultDirection: RadioGroupDirection =\n radioGroupDirections[0];\n\nexport const radioGroupSizes = ['m', 'l', 'xs', 's'] as const;\nexport type RadioGroupPropSize = typeof radioGroupSizes[number];\nexport const radioGroupDefaultSize: RadioGroupPropSize = radioGroupSizes[0];\n\nexport const radioGroupViews = ['primary', 'ghost'] as const;\nexport type RadioGroupPropView = typeof radioGroupViews[number];\nexport const radioGroupDefaultView: RadioGroupPropView = radioGroupViews[0];\n\nexport const radioGroupPropAlign = ['center', 'top'] as const;\nexport type RadioGroupPropAlign = typeof radioGroupPropAlign[number];\nexport const radioGroupPropAlignDefault: RadioGroupPropAlign =\n radioGroupPropAlign[0];\n\nexport type RadioGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type RadioGroupPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\n\nexport type RadioGroupProps<ITEM = RadioGroupDefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n align?: RadioGroupPropAlign;\n value?: ITEM | null;\n items: ITEM[];\n getItemLabel?: RadioGroupPropGetItemLabel<ITEM>;\n getItemDisabled?: RadioGroupPropGetItemDisabled<ITEM>;\n onChange: (props: {\n e: React.ChangeEvent<HTMLInputElement>;\n value: ITEM;\n }) => void;\n name?: string;\n direction?: RadioGroupDirection;\n size?: RadioGroupPropSize;\n view?: RadioGroupPropView;\n disabled?: boolean;\n className?: string;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: RadioGroupDefaultItem['label'] }\n ? {}\n : {\n getItemLabel: RadioGroupPropGetItemLabel<ITEM>;\n });\n\nexport type RadioGroupComponent = <ITEM = RadioGroupDefaultItem>(\n props: RadioGroupProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":"AAOA,MAAO,IAAMA,qBAAoB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA7B,CAEP,MAAO,IAAMC,2BAA+C,CAC1DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,gBAAe,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,IAAX,CAAiB,GAAjB,CAAxB,CAEP,MAAO,IAAMC,sBAAyC,CAAGD,eAAe,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,gBAAe,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAxB,CAEP,MAAO,IAAMC,sBAAyC,CAAGD,eAAe,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,oBAAmB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA5B,CAEP,MAAO,IAAMC,2BAA+C,CAC1DD,mBAAmB,CAAC,CAAD,CADd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@consta/uikit",
3
- "version": "4.6.4",
3
+ "version": "4.7.0",
4
4
  "keywords": [
5
5
  "ui-kit",
6
6
  "design-system",