@consta/uikit 4.7.0 → 4.7.1

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 (117) hide show
  1. package/ListCanary/index.d.ts +1 -0
  2. package/ListCanary/index.js +1 -0
  3. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.d.ts +1 -6
  4. package/__internal__/src/components/Breadcrumbs/useElements.d.ts +6 -6
  5. package/__internal__/src/components/Breadcrumbs/useElements.js +1 -1
  6. package/__internal__/src/components/Breadcrumbs/useElements.js.map +1 -1
  7. package/__internal__/src/components/ContextMenu/ContextMenu.js +1 -1
  8. package/__internal__/src/components/ContextMenu/ContextMenu.js.map +1 -1
  9. package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.css +1 -1
  10. package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
  11. package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
  12. package/__internal__/src/components/ContextMenu/ContextMenuLevel/index.d.ts +1 -0
  13. package/__internal__/src/components/ContextMenu/ContextMenuLevel/index.js +2 -0
  14. package/__internal__/src/components/ContextMenu/ContextMenuLevel/index.js.map +1 -0
  15. package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js +1 -1
  16. package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js.map +1 -1
  17. package/__internal__/src/components/ContextMenu/ContextMenuLevels/index.d.ts +1 -0
  18. package/__internal__/src/components/ContextMenu/ContextMenuLevels/index.js +2 -0
  19. package/__internal__/src/components/ContextMenu/ContextMenuLevels/index.js.map +1 -0
  20. package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
  21. package/__internal__/src/components/ContextMenu/types.d.ts +6 -1
  22. package/__internal__/src/components/ContextMenu/types.js +1 -1
  23. package/__internal__/src/components/ContextMenu/types.js.map +1 -1
  24. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.d.ts +1 -2
  25. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js +1 -1
  26. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js.map +1 -1
  27. package/__internal__/src/components/ListCanary/ListAddItem/index.js.map +1 -1
  28. package/__internal__/src/components/ListCanary/ListBox/ListBox.css +1 -0
  29. package/__internal__/src/components/ListCanary/ListBox/ListBox.d.ts +3 -0
  30. package/__internal__/src/components/ListCanary/ListBox/ListBox.js +2 -0
  31. package/__internal__/src/components/ListCanary/ListBox/ListBox.js.map +1 -0
  32. package/__internal__/src/components/ListCanary/ListBox/cnListBox.d.ts +2 -0
  33. package/__internal__/src/components/ListCanary/ListBox/cnListBox.js +2 -0
  34. package/__internal__/src/components/ListCanary/ListBox/cnListBox.js.map +1 -0
  35. package/__internal__/src/components/ListCanary/ListBox/index.d.ts +3 -0
  36. package/__internal__/src/components/ListCanary/ListBox/index.js +2 -0
  37. package/__internal__/src/components/ListCanary/ListBox/index.js.map +1 -0
  38. package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpase.d.ts +3 -0
  39. package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpase.js +2 -0
  40. package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpase.js.map +1 -0
  41. package/__internal__/src/components/ListCanary/ListCanary.d.ts +0 -1
  42. package/__internal__/src/components/ListCanary/ListCanary.js +1 -1
  43. package/__internal__/src/components/ListCanary/ListCanary.js.map +1 -1
  44. package/__internal__/src/components/ListCanary/ListDivider/ListDivider.css +1 -0
  45. package/__internal__/src/components/ListCanary/ListDivider/ListDivider.d.ts +5 -0
  46. package/__internal__/src/components/ListCanary/ListDivider/ListDivider.js +2 -0
  47. package/__internal__/src/components/ListCanary/ListDivider/ListDivider.js.map +1 -0
  48. package/__internal__/src/components/ListCanary/ListDivider/index.d.ts +1 -0
  49. package/__internal__/src/components/ListCanary/ListDivider/index.js +2 -0
  50. package/__internal__/src/components/ListCanary/ListDivider/index.js.map +1 -0
  51. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.css +1 -1
  52. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.d.ts +2 -1
  53. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js +1 -1
  54. package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js.map +1 -1
  55. package/__internal__/src/components/ListCanary/ListGroupLabel/index.js.map +1 -1
  56. package/__internal__/src/components/ListCanary/ListItem/ListItem.css +1 -1
  57. package/__internal__/src/components/ListCanary/ListItem/ListItem.js +1 -1
  58. package/__internal__/src/components/ListCanary/ListItem/ListItem.js.map +1 -1
  59. package/__internal__/src/components/ListCanary/ListItem/index.js.map +1 -1
  60. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.js +1 -1
  61. package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.js.map +1 -1
  62. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.css +1 -1
  63. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.d.ts +7 -3
  64. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js +1 -1
  65. package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js.map +1 -1
  66. package/__internal__/src/components/ListCanary/ListLoader/index.js.map +1 -1
  67. package/__internal__/src/components/ListCanary/helper.d.ts +17 -19
  68. package/__internal__/src/components/ListCanary/helper.js +1 -1
  69. package/__internal__/src/components/ListCanary/helper.js.map +1 -1
  70. package/__internal__/src/components/ListCanary/index.d.ts +4 -0
  71. package/__internal__/src/components/ListCanary/index.js +1 -1
  72. package/__internal__/src/components/ListCanary/index.js.map +1 -1
  73. package/__internal__/src/components/ListCanary/maps.d.ts +9 -0
  74. package/__internal__/src/components/ListCanary/maps.js +2 -0
  75. package/__internal__/src/components/ListCanary/maps.js.map +1 -0
  76. package/__internal__/src/components/ListCanary/types.d.ts +55 -31
  77. package/__internal__/src/components/ListCanary/types.js +1 -1
  78. package/__internal__/src/components/ListCanary/types.js.map +1 -1
  79. package/__internal__/src/components/Popover/helpers.d.ts +1 -1
  80. package/__internal__/src/components/Popover/helpers.js.map +1 -1
  81. package/__internal__/src/components/SelectComponents/SelectCreateButton/SelectCreateButton.css +1 -1
  82. package/__internal__/src/components/SelectComponents/SelectCreateButton/SelectCreateButton.d.ts +1 -1
  83. package/__internal__/src/components/SelectComponents/SelectCreateButton/SelectCreateButton.js +1 -1
  84. package/__internal__/src/components/SelectComponents/SelectCreateButton/SelectCreateButton.js.map +1 -1
  85. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.css +1 -1
  86. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
  87. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
  88. package/__internal__/src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.d.ts +1 -3
  89. package/__internal__/src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.js +1 -1
  90. package/__internal__/src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.js.map +1 -1
  91. package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.css +1 -1
  92. package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js +1 -1
  93. package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js.map +1 -1
  94. package/__internal__/src/components/SelectComponents/helpers.d.ts +1 -1
  95. package/__internal__/src/components/SelectComponents/helpers.js +1 -1
  96. package/__internal__/src/components/SelectComponents/helpers.js.map +1 -1
  97. package/__internal__/src/components/TagBase/TagBase.d.ts +1 -1
  98. package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.css +1 -1
  99. package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.d.ts +1 -1
  100. package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.js +1 -1
  101. package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.js.map +1 -1
  102. package/__internal__/src/hooks/useRefs/useRefs.d.ts +3 -1
  103. package/__internal__/src/hooks/useRefs/useRefs.js +1 -1
  104. package/__internal__/src/hooks/useRefs/useRefs.js.map +1 -1
  105. package/__internal__/src/hooks/useSelect/useSelect.d.ts +1 -6
  106. package/__internal__/src/mixs/MixSpace/MixSpace.d.ts +17 -17
  107. package/__internal__/src/mixs/MixSpace/MixSpace.js.map +1 -1
  108. package/__internal__/src/utils/getGroups.d.ts +1 -1
  109. package/__internal__/src/utils/getGroups.js.map +1 -1
  110. package/package.json +1 -1
  111. package/__internal__/src/components/ContextMenu/ContextMenuItem/ContextMenuItem.css +0 -1
  112. package/__internal__/src/components/ContextMenu/ContextMenuItem/ContextMenuItem.d.ts +0 -4
  113. package/__internal__/src/components/ContextMenu/ContextMenuItem/ContextMenuItem.js +0 -2
  114. package/__internal__/src/components/ContextMenu/ContextMenuItem/ContextMenuItem.js.map +0 -1
  115. package/__internal__/src/components/ListCanary/List.css +0 -1
  116. package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.css +0 -1
  117. package/__internal__/src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.css +0 -1
@@ -1 +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"}
1
+ {"version":3,"file":"helper.js","names":["defaultGetItemLabel","item","label","defaultGetItemDisabled","disabled","defaultGetItemActive","active","defaultGetItemChecked","checked","defaultGetItemStatus","status","defaultGetItemGroupKey","groupId","defaultGetItemLeftSide","leftSide","defaultGetItemLeftIcon","leftIcon","defaultGetItemRightSide","rightSide","defaultGetItemRightIcon","rightIcon","defaultGetItemOnClick","onClick","defaultGetGroupKey","group","id","defaultGetGroupLabel","defaultGetGroupRightSide","withDefaultGetters","props","getItemLabel","getItemGroupKey","getItemActive","getItemChecked","getItemDisabled","getItemLeftSide","getItemLeftIcon","getItemRightSide","getItemRightIcon","getItemStatus","getItemOnClick","getGroupLabel","getGroupKey","getGroupRightSide"],"sources":["../../../../../src/components/ListCanary/helper.ts"],"sourcesContent":["import {\n DefaultListGroup,\n DefaultListItem,\n ListPropGetGroupKey,\n ListPropGetGroupLabel,\n ListPropGetGroupRightSide,\n ListPropGetItemActive,\n ListPropGetItemChecked,\n ListPropGetItemDisabled,\n ListPropGetItemGroupId,\n ListPropGetItemLabel,\n ListPropGetItemLeftIcon,\n ListPropGetItemLeftSide,\n ListPropGetItemOnClick,\n ListPropGetItemRightIcon,\n ListPropGetItemRightSide,\n ListPropGetItemStatus,\n ListProps,\n} from './types';\n\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 defaultGetItemChecked: ListPropGetItemChecked<DefaultListItem> = (item) =>\n item.checked;\nconst defaultGetItemStatus: ListPropGetItemStatus<DefaultListItem> = (item) =>\n item.status;\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;\n\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 getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemActive: props.getItemActive || defaultGetItemActive,\n getItemChecked: props.getItemChecked || defaultGetItemChecked,\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 getItemStatus: props.getItemStatus || defaultGetItemStatus,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getGroupRightSide: props.getGroupRightSide || defaultGetGroupRightSide,\n };\n}\n"],"mappings":"wqBAoBMA,oBAA0D,CAAG,SAACC,CAAD,QACjEA,EAAI,CAACC,KAD4D,C,CAE7DC,sBAAgE,CAAG,SACvEF,CADuE,QAEpEA,EAAI,CAACG,QAF+D,C,CAGnEC,oBAA4D,CAAG,SAACJ,CAAD,QACnEA,EAAI,CAACK,MAD8D,C,CAE/DC,qBAA8D,CAAG,SAACN,CAAD,QACrEA,EAAI,CAACO,OADgE,C,CAEjEC,oBAA4D,CAAG,SAACR,CAAD,QACnEA,EAAI,CAACS,MAD8D,C,CAE/DC,sBAA+D,CAAG,SACtEV,CADsE,QAEnEA,EAAI,CAACW,OAF8D,C,CAGlEC,sBAAgE,CAAG,SACvEZ,CADuE,QAEpEA,EAAI,CAACa,QAF+D,C,CAGnEC,sBAAgE,CAAG,SACvEd,CADuE,QAEpEA,EAAI,CAACe,QAF+D,C,CAGnEC,uBAAkE,CAAG,SACzEhB,CADyE,QAEtEA,EAAI,CAACiB,SAFiE,C,CAGrEC,uBAAkE,CAAG,SACzElB,CADyE,QAEtEA,EAAI,CAACmB,SAFiE,C,CAIrEC,qBAA8D,CAAG,SAACpB,CAAD,QACrEA,EAAI,CAACqB,OADgE,C,CAGjEC,kBAAyD,CAAG,SAACC,CAAD,QAChEA,EAAK,CAACC,EAD0D,C,CAE5DC,oBAA6D,CAAG,SAACF,CAAD,QACpEA,EAAK,CAACtB,KAD8D,C,CAEhEyB,wBAAqE,CAAG,SAC5EH,CAD4E,QAEzEA,EAAK,CAACN,SAFmE,C,CAI9E,MAAO,SAASU,mBAAT,CAGLC,CAHK,CAG0B,CAC/B,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsB9B,mBAFtC,CAGE+B,eAAe,CAAEF,CAAK,CAACE,eAAN,EAAyBpB,sBAH5C,CAIEqB,aAAa,CAAEH,CAAK,CAACG,aAAN,EAAuB3B,oBAJxC,CAKE4B,cAAc,CAAEJ,CAAK,CAACI,cAAN,EAAwB1B,qBAL1C,CAME2B,eAAe,CAAEL,CAAK,CAACK,eAAN,EAAyB/B,sBAN5C,CAOEgC,eAAe,CAAEN,CAAK,CAACM,eAAN,EAAyBtB,sBAP5C,CAQEuB,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBrB,sBAR5C,CASEsB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BpB,uBAT9C,CAUEqB,gBAAgB,CAAET,CAAK,CAACS,gBAAN,EAA0BnB,uBAV9C,CAWEoB,aAAa,CAAEV,CAAK,CAACU,aAAN,EAAuB9B,oBAXxC,CAYE+B,cAAc,CAAEX,CAAK,CAACW,cAAN,EAAwBnB,qBAZ1C,CAaEoB,aAAa,CAAEZ,CAAK,CAACY,aAAN,EAAuBf,oBAbxC,CAcEgB,WAAW,CAAEb,CAAK,CAACa,WAAN,EAAqBnB,kBAdpC,CAeEoB,iBAAiB,CAAEd,CAAK,CAACc,iBAAN,EAA2BhB,wBAfhD,EAiBD"}
@@ -4,3 +4,7 @@ export * from './ListAddItem';
4
4
  export * from './ListItem';
5
5
  export * from './ListLoader';
6
6
  export * from './ListGroupLabel';
7
+ export * from './ListItemGrid';
8
+ export * from './ListBox';
9
+ export * from './ListDivider';
10
+ export * from './maps';
@@ -1,2 +1,2 @@
1
- export*from"./ListCanary";export*from"./types";export*from"./ListAddItem";export*from"./ListItem";export*from"./ListLoader";export*from"./ListGroupLabel";
1
+ export*from"./ListCanary";export*from"./types";export*from"./ListAddItem";export*from"./ListItem";export*from"./ListLoader";export*from"./ListGroupLabel";export*from"./ListItemGrid";export*from"./ListBox";export*from"./ListDivider";export*from"./maps";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +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
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/ListCanary/index.ts"],"sourcesContent":["export * from './ListCanary';\nexport * from './types';\nexport * from './ListAddItem';\nexport * from './ListItem';\nexport * from './ListLoader';\nexport * from './ListGroupLabel';\nexport * from './ListItemGrid';\nexport * from './ListBox';\nexport * from './ListDivider';\nexport * from './maps';\n"],"mappings":"AAAA,0BACA,qBACA,2BACA,wBACA,0BACA,8BACA,4BACA,uBACA,2BACA"}
@@ -0,0 +1,9 @@
1
+ import { IconPropSize } from '@consta/icons/Icon';
2
+ import { Space } from "../../mixs/MixSpace";
3
+ import { ListPropSize } from './types';
4
+ export declare const mapHorisontalSpase: Record<ListPropSize, Space>;
5
+ export declare const mapHorisontalSpaseIncreased: Record<ListPropSize, Space>;
6
+ export declare const mapGroupVerticalSpaseTop: Record<ListPropSize, Space>;
7
+ export declare const mapGroupVerticalSpaseBottom: Record<ListPropSize, Space>;
8
+ export declare const mapItemVerticalPadding: Record<ListPropSize, Space>;
9
+ export declare const mapIconSize: Record<ListPropSize, IconPropSize>;
@@ -0,0 +1,2 @@
1
+ export var mapHorisontalSpase={xs:"xs",s:"xs",m:"s",l:"s"};export var mapHorisontalSpaseIncreased={xs:"s",s:"s",m:"m",l:"l"};export var mapGroupVerticalSpaseTop={xs:"s",s:"m",m:"m",l:"l"};export var mapGroupVerticalSpaseBottom={xs:"2xs",s:"2xs",m:"xs",l:"s"};export var mapItemVerticalPadding={xs:"2xs",s:"2xs",m:"xs",l:"xs"};export var mapIconSize={xs:"xs",s:"xs",m:"s",l:"s"};
2
+ //# sourceMappingURL=maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maps.js","names":["mapHorisontalSpase","xs","s","m","l","mapHorisontalSpaseIncreased","mapGroupVerticalSpaseTop","mapGroupVerticalSpaseBottom","mapItemVerticalPadding","mapIconSize"],"sources":["../../../../../src/components/ListCanary/maps.ts"],"sourcesContent":["import { IconPropSize } from '@consta/icons/Icon';\n\nimport { Space } from '##/mixs/MixSpace';\n\nimport { ListPropSize } from './types';\n\nexport const mapHorisontalSpase: Record<ListPropSize, Space> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n};\n\nexport const mapHorisontalSpaseIncreased: Record<ListPropSize, Space> = {\n xs: 's',\n s: 's',\n m: 'm',\n l: 'l',\n};\n\nexport const mapGroupVerticalSpaseTop: Record<ListPropSize, Space> = {\n xs: 's',\n s: 'm',\n m: 'm',\n l: 'l',\n};\n\nexport const mapGroupVerticalSpaseBottom: Record<ListPropSize, Space> = {\n xs: '2xs',\n s: '2xs',\n m: 'xs',\n l: 's',\n};\n\nexport const mapItemVerticalPadding: Record<ListPropSize, Space> = {\n xs: '2xs',\n s: '2xs',\n m: 'xs',\n l: 'xs',\n};\n\nexport const mapIconSize: Record<ListPropSize, IconPropSize> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n};\n"],"mappings":"AAMA,MAAO,IAAMA,mBAA+C,CAAG,CAC7DC,EAAE,CAAE,IADyD,CAE7DC,CAAC,CAAE,IAF0D,CAG7DC,CAAC,CAAE,GAH0D,CAI7DC,CAAC,CAAE,GAJ0D,CAAxD,CAOP,MAAO,IAAMC,4BAAwD,CAAG,CACtEJ,EAAE,CAAE,GADkE,CAEtEC,CAAC,CAAE,GAFmE,CAGtEC,CAAC,CAAE,GAHmE,CAItEC,CAAC,CAAE,GAJmE,CAAjE,CAOP,MAAO,IAAME,yBAAqD,CAAG,CACnEL,EAAE,CAAE,GAD+D,CAEnEC,CAAC,CAAE,GAFgE,CAGnEC,CAAC,CAAE,GAHgE,CAInEC,CAAC,CAAE,GAJgE,CAA9D,CAOP,MAAO,IAAMG,4BAAwD,CAAG,CACtEN,EAAE,CAAE,KADkE,CAEtEC,CAAC,CAAE,KAFmE,CAGtEC,CAAC,CAAE,IAHmE,CAItEC,CAAC,CAAE,GAJmE,CAAjE,CAOP,MAAO,IAAMI,uBAAmD,CAAG,CACjEP,EAAE,CAAE,KAD6D,CAEjEC,CAAC,CAAE,KAF8D,CAGjEC,CAAC,CAAE,IAH8D,CAIjEC,CAAC,CAAE,IAJ8D,CAA5D,CAOP,MAAO,IAAMK,YAA+C,CAAG,CAC7DR,EAAE,CAAE,IADyD,CAE7DC,CAAC,CAAE,IAF0D,CAG7DC,CAAC,CAAE,GAH0D,CAI7DC,CAAC,CAAE,GAJ0D,CAAxD"}
@@ -1,41 +1,49 @@
1
1
  import { IconComponent } from '@consta/icons/Icon';
2
2
  import React from 'react';
3
+ import { MixSpaceProps } from "../../mixs/MixSpace";
4
+ import { Group } from "../../utils/getGroups";
3
5
  import { PropsWithAsAttributes } from "../../utils/types/PropsWithAsAttributes";
4
6
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
5
7
  export declare const listPropSize: readonly ["m", "xs", "s", "l"];
6
8
  export declare type ListPropSize = typeof listPropSize[number];
7
9
  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";
10
+ export declare const listPropInnerOffset: readonly ["normal", "increased"];
11
+ export declare type ListPropInnerOffset = typeof listPropInnerOffset[number];
12
+ export declare const defaultListPropInnerOffset: "normal";
13
+ export declare const listPropStatus: readonly ["alert", "success", "warning"];
14
+ export declare type ListPropStatus = typeof listPropStatus[number];
15
+ export declare const listPropForm: readonly ["default", "brick", "round"];
16
+ export declare type ListPropForm = typeof listPropForm[number];
17
+ export declare const defaultListPropForm: "default";
11
18
  export declare type DefaultListGroup = {
12
19
  id: string | number;
13
- label: string;
20
+ label?: string;
14
21
  rightSide?: React.ReactNode;
15
22
  };
16
23
  export declare type DefaultListItem = {
17
- id: string | number;
18
- label: string;
24
+ label: React.ReactNode;
19
25
  disabled?: boolean;
20
26
  active?: boolean;
27
+ checked?: boolean;
28
+ status?: ListPropStatus;
21
29
  groupId?: string | number;
22
30
  leftSide?: React.ReactNode;
23
31
  leftIcon?: IconComponent;
24
32
  rightSide?: React.ReactNode;
25
33
  rightIcon?: IconComponent;
26
34
  onClick?: React.MouseEventHandler;
27
- as?: keyof JSX.IntrinsicElements;
28
- attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];
29
35
  };
30
- export declare type ListPropOnItemClick<ITEM> = (params: {
36
+ export declare type ListPropOnItemClick<ITEM> = (item: ITEM, params: {
31
37
  e: React.MouseEvent;
32
38
  item: ITEM;
33
39
  }) => void;
34
40
  export declare type ListPropRenderItem<ITEM> = (item: ITEM) => React.ReactElement | null;
35
- export declare type ListPropGetItemKey<ITEM> = (item: ITEM) => string | number;
36
- export declare type ListPropGetItemLabel<ITEM> = (item: ITEM) => string;
41
+ export declare type ListPropGetItemLabel<ITEM> = (item: ITEM) => React.ReactNode;
42
+ export declare type ListPropGetItemAdditionalClassName<ITEM> = (item: ITEM) => string;
37
43
  export declare type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
38
44
  export declare type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;
45
+ export declare type ListPropGetItemChecked<ITEM> = (item: ITEM) => boolean | undefined;
46
+ export declare type ListPropGetItemStatus<ITEM> = (item: ITEM) => ListPropStatus | undefined;
39
47
  export declare type ListPropGetItemGroupId<ITEM> = (item: ITEM) => string | number | undefined;
40
48
  export declare type ListPropGetItemLeftSide<ITEM> = (item: ITEM) => React.ReactNode | undefined;
41
49
  export declare type ListPropGetItemLeftIcon<ITEM> = (item: ITEM) => IconComponent | undefined;
@@ -44,45 +52,47 @@ export declare type ListPropGetItemRightIcon<ITEM> = (item: ITEM) => IconCompone
44
52
  export declare type ListPropGetItemAs<ITEM> = (item: ITEM) => keyof JSX.IntrinsicElements | undefined;
45
53
  export declare type ListPropGetItemAttributes<ITEM> = (item: ITEM) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;
46
54
  export declare type ListPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler | undefined;
55
+ export declare type ListPropSortGroup<ITEM, GROUP> = (a: Group<ITEM, GROUP>, b: Group<ITEM, GROUP>) => number;
47
56
  export declare type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;
48
- export declare type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string;
57
+ export declare type ListPropGetGroupAdditionalClassName<GROUP> = (item: GROUP) => string;
58
+ export declare type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string | undefined;
49
59
  export declare type ListPropGetGroupRightSide<GROUP> = (item: GROUP) => React.ReactNode | undefined;
50
- export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = PropsWithHTMLAttributesAndRef<{
60
+ export declare type ListPropGetItemRef<ITEM> = (item: ITEM) => React.RefObject<HTMLElement> | undefined;
61
+ export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = {
51
62
  size?: ListPropSize;
52
63
  items: ITEM[];
53
- indent?: ListPropIndent;
64
+ innerOffset?: ListPropInnerOffset;
65
+ itemSpase?: MixSpaceProps;
66
+ groupLabelSpase?: MixSpaceProps;
67
+ dividerSpase?: MixSpaceProps;
54
68
  onItemClick?: ListPropOnItemClick<ITEM>;
55
- getItemKey?: ListPropGetItemKey<ITEM>;
56
69
  getItemLabel?: ListPropGetItemLabel<ITEM>;
57
70
  getItemDisabled?: ListPropGetItemDisabled<ITEM>;
58
71
  getItemActive?: ListPropGetItemActive<ITEM>;
72
+ getItemChecked?: ListPropGetItemActive<ITEM>;
59
73
  getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;
60
74
  getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;
61
75
  getItemRightSide?: ListPropGetItemRightSide<ITEM>;
62
76
  getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;
63
77
  getItemGroupKey?: ListPropGetItemGroupId<ITEM>;
64
78
  getItemOnClick?: ListPropGetItemOnClick<ITEM>;
79
+ getItemStatus?: ListPropGetItemStatus<ITEM>;
65
80
  getItemAs?: ListPropGetItemAs<ITEM>;
66
81
  getItemAttributes?: ListPropGetItemAttributes<ITEM>;
82
+ getItemRef?: ListPropGetItemRef<ITEM>;
83
+ getItemAdditionalClassName?: ListPropGetItemAdditionalClassName<ITEM>;
67
84
  renderItem?: ListPropRenderItem<ITEM>;
68
85
  groups?: GROUP[];
69
86
  getGroupKey?: ListPropGetGroupKey<GROUP>;
70
87
  getGroupLabel?: ListPropGetGroupLabel<GROUP>;
71
88
  getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;
72
- isLoading?: boolean;
89
+ sortGroup?: ListPropSortGroup<ITEM, GROUP>;
90
+ getGroupAdditionalClassName?: ListPropGetGroupAdditionalClassName<GROUP>;
73
91
  disabled?: boolean;
74
- }, HTMLDivElement> & (ITEM extends {
92
+ } & (ITEM extends {
75
93
  label: DefaultListItem['label'];
76
94
  } ? {} : {
77
95
  getItemLabel: ListPropGetItemLabel<ITEM>;
78
- }) & (ITEM extends {
79
- id: DefaultListItem['id'];
80
- } ? {} : {
81
- getItemKey: ListPropGetItemKey<ITEM>;
82
- }) & (GROUP extends {
83
- label: DefaultListGroup['label'];
84
- } ? {} : {
85
- getGroupLabel: ListPropGetGroupLabel<GROUP>;
86
96
  }) & (GROUP extends {
87
97
  id: DefaultListGroup['id'];
88
98
  } ? {} : {
@@ -90,19 +100,33 @@ export declare type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup>
90
100
  });
91
101
  export declare type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup>(props: ListProps<ITEM, GROUP>) => React.ReactElement | null;
92
102
  export declare type ListItemProps<AS extends keyof JSX.IntrinsicElements = 'div'> = PropsWithAsAttributes<Omit<DefaultListItem, 'id' | 'groupId' | 'attributes' | 'onClick'> & {
93
- active?: boolean;
94
103
  size?: ListPropSize;
95
- indent?: 'normal' | 'increased';
104
+ innerOffset?: 'normal' | 'increased';
105
+ space?: MixSpaceProps;
96
106
  }, AS> & React.RefAttributes<HTMLDivElement>;
97
107
  export declare type ListItemComponent = <AS extends keyof JSX.IntrinsicElements = 'div'>(props: ListItemProps<AS>, ref: React.Ref<HTMLElement>) => React.ReactElement | null;
98
108
  export declare type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<{
99
109
  size?: ListPropSize;
100
- label?: string;
110
+ label: string;
111
+ innerOffset?: ListPropInnerOffset;
101
112
  rightSide?: React.ReactNode;
113
+ space?: MixSpaceProps;
114
+ }, HTMLDivElement>;
115
+ export declare type ListDividerProps = PropsWithHTMLAttributesAndRef<{
116
+ size?: ListPropSize;
117
+ innerOffset?: ListPropInnerOffset;
118
+ space?: MixSpaceProps;
119
+ }, HTMLDivElement>;
120
+ export declare type ListBoxProps = PropsWithHTMLAttributesAndRef<{
121
+ size?: ListPropSize;
122
+ form?: ListPropForm;
123
+ border?: boolean;
124
+ shadow?: boolean;
102
125
  }, HTMLDivElement>;
103
126
  export declare type ListAddItemProps = PropsWithHTMLAttributesAndRef<{
104
127
  size?: ListPropSize;
105
- label?: React.ReactNode;
106
- indent?: ListPropIndent;
107
- disabled?: boolean;
128
+ label: React.ReactNode;
129
+ innerOffset?: ListPropInnerOffset;
130
+ active?: boolean;
131
+ underLine?: boolean;
108
132
  }, HTMLDivElement>;
@@ -1,2 +1,2 @@
1
- export var listPropSize=["m","xs","s","l"];export var defaultListPropSize=listPropSize[0];export var listPropIndent=["normal","increased"];export var defaultListPropIndent=listPropIndent[0];
1
+ export var listPropSize=["m","xs","s","l"];export var defaultListPropSize=listPropSize[0];export var listPropInnerOffset=["normal","increased"];export var defaultListPropInnerOffset=listPropInnerOffset[0];export var listPropStatus=["alert","success","warning"];export var listPropForm=["default","brick","round"];export var defaultListPropForm=listPropForm[0];
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"types.js","names":["listPropSize","defaultListPropSize","listPropInnerOffset","defaultListPropInnerOffset","listPropStatus","listPropForm","defaultListPropForm"],"sources":["../../../../../src/components/ListCanary/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { MixSpaceProps } from '##/mixs/MixSpace';\nimport { Group } from '##/utils/getGroups';\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 listPropInnerOffset = ['normal', 'increased'] as const;\nexport type ListPropInnerOffset = typeof listPropInnerOffset[number];\nexport const defaultListPropInnerOffset = listPropInnerOffset[0];\n\nexport const listPropStatus = ['alert', 'success', 'warning'] as const;\nexport type ListPropStatus = typeof listPropStatus[number];\n\nexport const listPropForm = ['default', 'brick', 'round'] as const;\nexport type ListPropForm = typeof listPropForm[number];\nexport const defaultListPropForm = listPropForm[0];\n\nexport type DefaultListGroup = {\n id: string | number;\n label?: string;\n rightSide?: React.ReactNode;\n};\n\nexport type DefaultListItem = {\n label: React.ReactNode;\n disabled?: boolean;\n active?: boolean;\n checked?: boolean;\n status?: ListPropStatus;\n groupId?: string | number;\n leftSide?: React.ReactNode;\n leftIcon?: IconComponent;\n rightSide?: React.ReactNode;\n rightIcon?: IconComponent;\n onClick?: React.MouseEventHandler;\n};\n\nexport type ListPropOnItemClick<ITEM> = (\n item: ITEM,\n params: {\n e: React.MouseEvent;\n item: ITEM;\n },\n) => void;\n\nexport type ListPropRenderItem<ITEM> = (\n item: ITEM,\n) => React.ReactElement | null;\n\n// ITEMS\n\nexport type ListPropGetItemLabel<ITEM> = (item: ITEM) => React.ReactNode;\n\nexport type ListPropGetItemAdditionalClassName<ITEM> = (item: ITEM) => string;\n\nexport type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemChecked<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemStatus<ITEM> = (\n item: ITEM,\n) => ListPropStatus | undefined;\n\nexport type ListPropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\n\nexport type ListPropGetItemLeftSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemRightSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemAs<ITEM> = (\n item: ITEM,\n) => keyof JSX.IntrinsicElements | undefined;\n\nexport type ListPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;\n\nexport type ListPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\n\nexport type ListPropSortGroup<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\n// GROUPS\nexport type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;\nexport type ListPropGetGroupAdditionalClassName<GROUP> = (\n item: GROUP,\n) => string;\n\nexport type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string | undefined;\nexport type ListPropGetGroupRightSide<GROUP> = (\n item: GROUP,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRef<ITEM> = (\n item: ITEM,\n) => React.RefObject<HTMLElement> | undefined;\n\nexport type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = {\n size?: ListPropSize;\n items: ITEM[];\n innerOffset?: ListPropInnerOffset;\n itemSpase?: MixSpaceProps;\n groupLabelSpase?: MixSpaceProps;\n dividerSpase?: MixSpaceProps;\n onItemClick?: ListPropOnItemClick<ITEM>;\n getItemLabel?: ListPropGetItemLabel<ITEM>;\n getItemDisabled?: ListPropGetItemDisabled<ITEM>;\n getItemActive?: ListPropGetItemActive<ITEM>;\n getItemChecked?: 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 getItemStatus?: ListPropGetItemStatus<ITEM>;\n getItemAs?: ListPropGetItemAs<ITEM>;\n getItemAttributes?: ListPropGetItemAttributes<ITEM>;\n getItemRef?: ListPropGetItemRef<ITEM>;\n getItemAdditionalClassName?: ListPropGetItemAdditionalClassName<ITEM>;\n renderItem?: ListPropRenderItem<ITEM>;\n groups?: GROUP[];\n getGroupKey?: ListPropGetGroupKey<GROUP>;\n getGroupLabel?: ListPropGetGroupLabel<GROUP>;\n getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;\n sortGroup?: ListPropSortGroup<ITEM, GROUP>;\n getGroupAdditionalClassName?: ListPropGetGroupAdditionalClassName<GROUP>;\n disabled?: boolean;\n} & (ITEM extends { label: DefaultListItem['label'] }\n ? {}\n : { getItemLabel: ListPropGetItemLabel<ITEM> }) &\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 size?: ListPropSize;\n innerOffset?: 'normal' | 'increased';\n space?: MixSpaceProps;\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 innerOffset?: ListPropInnerOffset;\n rightSide?: React.ReactNode;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListDividerProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n innerOffset?: ListPropInnerOffset;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListBoxProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n form?: ListPropForm;\n border?: boolean;\n shadow?: boolean;\n },\n HTMLDivElement\n>;\n\nexport type ListAddItemProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label: React.ReactNode;\n innerOffset?: ListPropInnerOffset;\n active?: boolean;\n underLine?: boolean;\n },\n HTMLDivElement\n>;\n"],"mappings":"AAQA,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,oBAAmB,CAAG,CAAC,QAAD,CAAW,WAAX,CAA5B,CAEP,MAAO,IAAMC,2BAA0B,CAAGD,mBAAmB,CAAC,CAAD,CAAtD,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAvB,CAGP,MAAO,IAAMC,aAAY,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC"}
@@ -1,5 +1,5 @@
1
1
  import { Direction, Position } from './Popover';
2
- declare type Size = Pick<ClientRect, 'width' | 'height'>;
2
+ declare type Size = Pick<DOMRect, 'width' | 'height'>;
3
3
  declare type PositionsByDirection = Record<Direction, NonNullable<Position>>;
4
4
  export declare const getPositionsByDirection: ({ contentSize, anchorSize, position: { x, y }, arrowOffset, offset, }: {
5
5
  contentSize: Size;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["getPosition","x","y","Math","round","getPositionsByDirection","contentSize","anchorSize","position","arrowOffset","offset","contentWidth","width","contentHeight","height","anchorWidth","anchorHeight","anchorCenter","xForRightDirections","xForLeftDirections","xForVerticalDirections","right","center","left","yForDownDirections","yForUpDirections","yForHorizontalDirections","up","down","xForStartLeftDirections","xForStartRightDirections","yForStartUpDirections","yForStartDownDirections","upLeft","upCenter","upRight","downLeft","downCenter","downRight","rightUp","rightCenter","rightDown","leftUp","leftCenter","leftDown","downStartLeft","downStartRight","upStartLeft","upStartRight","leftStartUp","leftStartDown","rightStartUp","rightStartDown","getComputedPositionAndDirection","initialPosition","viewportSize","initialDirection","direction","possibleDirections","bannedDirections","spareDirection","positionsByDirection","filter","dir","includes","find","pos","isFittingDown","isFittingUp","isFittingLeft","isFittingRight"],"sources":["../../../../../src/components/Popover/helpers.ts"],"sourcesContent":["import { Direction, Position } from './Popover';\n\ntype Size = Pick<ClientRect, 'width' | 'height'>;\n\ntype PositionsByDirection = Record<Direction, NonNullable<Position>>;\n\nconst getPosition = (x: number, y: number): NonNullable<Position> => ({\n x: Math.round(x),\n y: Math.round(y),\n});\n\nexport const getPositionsByDirection = ({\n contentSize,\n anchorSize,\n position: { x, y },\n arrowOffset = 0,\n offset = 0,\n}: {\n contentSize: Size;\n anchorSize: Size;\n position: NonNullable<Position>;\n arrowOffset?: number;\n offset?: number;\n}): PositionsByDirection => {\n const { width: contentWidth, height: contentHeight } = contentSize;\n const { width: anchorWidth, height: anchorHeight } = anchorSize;\n const anchorCenter = {\n x: x + anchorWidth / 2,\n y: y + anchorHeight / 2,\n };\n\n const xForRightDirections = x + anchorWidth + offset;\n const xForLeftDirections = x - contentWidth - offset;\n const xForVerticalDirections = {\n right: anchorCenter.x - arrowOffset,\n center: anchorCenter.x - contentWidth / 2,\n left: anchorCenter.x - contentWidth + arrowOffset,\n };\n\n const yForDownDirections = y + anchorHeight + offset;\n const yForUpDirections = y - contentHeight - offset;\n const yForHorizontalDirections = {\n up: anchorCenter.y - contentHeight + arrowOffset,\n center: anchorCenter.y - contentHeight / 2,\n down: anchorCenter.y - arrowOffset,\n };\n\n const xForStartLeftDirections = x;\n const xForStartRightDirections = x - contentWidth + anchorWidth;\n\n const yForStartUpDirections = y;\n const yForStartDownDirections = y - contentHeight + anchorHeight;\n\n return {\n upLeft: getPosition(xForVerticalDirections.left, yForUpDirections),\n upCenter: getPosition(xForVerticalDirections.center, yForUpDirections),\n upRight: getPosition(xForVerticalDirections.right, yForUpDirections),\n\n downLeft: getPosition(xForVerticalDirections.left, yForDownDirections),\n downCenter: getPosition(xForVerticalDirections.center, yForDownDirections),\n downRight: getPosition(xForVerticalDirections.right, yForDownDirections),\n\n rightUp: getPosition(xForRightDirections, yForHorizontalDirections.up),\n rightCenter: getPosition(\n xForRightDirections,\n yForHorizontalDirections.center,\n ),\n rightDown: getPosition(xForRightDirections, yForHorizontalDirections.down),\n\n leftUp: getPosition(xForLeftDirections, yForHorizontalDirections.up),\n leftCenter: getPosition(\n xForLeftDirections,\n yForHorizontalDirections.center,\n ),\n leftDown: getPosition(xForLeftDirections, yForHorizontalDirections.down),\n\n downStartLeft: getPosition(xForStartLeftDirections, yForDownDirections),\n downStartRight: getPosition(xForStartRightDirections, yForDownDirections),\n\n upStartLeft: getPosition(xForStartLeftDirections, yForUpDirections),\n upStartRight: getPosition(xForStartRightDirections, yForUpDirections),\n\n leftStartUp: getPosition(xForLeftDirections, yForStartUpDirections),\n leftStartDown: getPosition(xForLeftDirections, yForStartDownDirections),\n\n rightStartUp: getPosition(xForRightDirections, yForStartUpDirections),\n rightStartDown: getPosition(xForRightDirections, yForStartDownDirections),\n };\n};\n\ntype ComputedPositionAndDirectionParams = {\n // Координата точки, к которой крепится поповер. Для якоря — координата левой верхней точки якоря\n position: Position;\n contentSize: Size;\n viewportSize: Size;\n anchorSize?: Size;\n offset?: number;\n arrowOffset?: number;\n direction: Direction;\n spareDirection: Direction;\n possibleDirections: readonly Direction[];\n bannedDirections: readonly Direction[];\n};\n\nexport const getComputedPositionAndDirection = ({\n position: initialPosition,\n contentSize,\n viewportSize,\n anchorSize = { width: 0, height: 0 },\n arrowOffset,\n direction: initialDirection,\n possibleDirections,\n bannedDirections,\n spareDirection,\n offset = 0,\n}: ComputedPositionAndDirectionParams): {\n direction: Direction;\n position: Position;\n} => {\n if (!initialPosition) {\n return { position: initialPosition, direction: initialDirection };\n }\n\n const positionsByDirection = getPositionsByDirection({\n contentSize,\n anchorSize,\n position: initialPosition,\n arrowOffset,\n offset,\n });\n\n const direction =\n [initialDirection, ...possibleDirections]\n .filter((dir) => !bannedDirections.includes(dir))\n .find((dir) => {\n const pos = positionsByDirection[dir];\n const { width, height } = contentSize;\n\n const isFittingDown = pos.y + height <= viewportSize.height;\n const isFittingUp = pos.y >= 0;\n\n const isFittingLeft = pos.x >= 0;\n const isFittingRight = pos.x + width <= viewportSize.width;\n\n return isFittingUp && isFittingDown && isFittingLeft && isFittingRight;\n }) || spareDirection;\n\n return {\n direction,\n position: positionsByDirection[direction],\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["getPosition","x","y","Math","round","getPositionsByDirection","contentSize","anchorSize","position","arrowOffset","offset","contentWidth","width","contentHeight","height","anchorWidth","anchorHeight","anchorCenter","xForRightDirections","xForLeftDirections","xForVerticalDirections","right","center","left","yForDownDirections","yForUpDirections","yForHorizontalDirections","up","down","xForStartLeftDirections","xForStartRightDirections","yForStartUpDirections","yForStartDownDirections","upLeft","upCenter","upRight","downLeft","downCenter","downRight","rightUp","rightCenter","rightDown","leftUp","leftCenter","leftDown","downStartLeft","downStartRight","upStartLeft","upStartRight","leftStartUp","leftStartDown","rightStartUp","rightStartDown","getComputedPositionAndDirection","initialPosition","viewportSize","initialDirection","direction","possibleDirections","bannedDirections","spareDirection","positionsByDirection","filter","dir","includes","find","pos","isFittingDown","isFittingUp","isFittingLeft","isFittingRight"],"sources":["../../../../../src/components/Popover/helpers.ts"],"sourcesContent":["import { Direction, Position } from './Popover';\n\ntype Size = Pick<DOMRect, 'width' | 'height'>;\n\ntype PositionsByDirection = Record<Direction, NonNullable<Position>>;\n\nconst getPosition = (x: number, y: number): NonNullable<Position> => ({\n x: Math.round(x),\n y: Math.round(y),\n});\n\nexport const getPositionsByDirection = ({\n contentSize,\n anchorSize,\n position: { x, y },\n arrowOffset = 0,\n offset = 0,\n}: {\n contentSize: Size;\n anchorSize: Size;\n position: NonNullable<Position>;\n arrowOffset?: number;\n offset?: number;\n}): PositionsByDirection => {\n const { width: contentWidth, height: contentHeight } = contentSize;\n const { width: anchorWidth, height: anchorHeight } = anchorSize;\n const anchorCenter = {\n x: x + anchorWidth / 2,\n y: y + anchorHeight / 2,\n };\n\n const xForRightDirections = x + anchorWidth + offset;\n const xForLeftDirections = x - contentWidth - offset;\n const xForVerticalDirections = {\n right: anchorCenter.x - arrowOffset,\n center: anchorCenter.x - contentWidth / 2,\n left: anchorCenter.x - contentWidth + arrowOffset,\n };\n\n const yForDownDirections = y + anchorHeight + offset;\n const yForUpDirections = y - contentHeight - offset;\n const yForHorizontalDirections = {\n up: anchorCenter.y - contentHeight + arrowOffset,\n center: anchorCenter.y - contentHeight / 2,\n down: anchorCenter.y - arrowOffset,\n };\n\n const xForStartLeftDirections = x;\n const xForStartRightDirections = x - contentWidth + anchorWidth;\n\n const yForStartUpDirections = y;\n const yForStartDownDirections = y - contentHeight + anchorHeight;\n\n return {\n upLeft: getPosition(xForVerticalDirections.left, yForUpDirections),\n upCenter: getPosition(xForVerticalDirections.center, yForUpDirections),\n upRight: getPosition(xForVerticalDirections.right, yForUpDirections),\n\n downLeft: getPosition(xForVerticalDirections.left, yForDownDirections),\n downCenter: getPosition(xForVerticalDirections.center, yForDownDirections),\n downRight: getPosition(xForVerticalDirections.right, yForDownDirections),\n\n rightUp: getPosition(xForRightDirections, yForHorizontalDirections.up),\n rightCenter: getPosition(\n xForRightDirections,\n yForHorizontalDirections.center,\n ),\n rightDown: getPosition(xForRightDirections, yForHorizontalDirections.down),\n\n leftUp: getPosition(xForLeftDirections, yForHorizontalDirections.up),\n leftCenter: getPosition(\n xForLeftDirections,\n yForHorizontalDirections.center,\n ),\n leftDown: getPosition(xForLeftDirections, yForHorizontalDirections.down),\n\n downStartLeft: getPosition(xForStartLeftDirections, yForDownDirections),\n downStartRight: getPosition(xForStartRightDirections, yForDownDirections),\n\n upStartLeft: getPosition(xForStartLeftDirections, yForUpDirections),\n upStartRight: getPosition(xForStartRightDirections, yForUpDirections),\n\n leftStartUp: getPosition(xForLeftDirections, yForStartUpDirections),\n leftStartDown: getPosition(xForLeftDirections, yForStartDownDirections),\n\n rightStartUp: getPosition(xForRightDirections, yForStartUpDirections),\n rightStartDown: getPosition(xForRightDirections, yForStartDownDirections),\n };\n};\n\ntype ComputedPositionAndDirectionParams = {\n // Координата точки, к которой крепится поповер. Для якоря — координата левой верхней точки якоря\n position: Position;\n contentSize: Size;\n viewportSize: Size;\n anchorSize?: Size;\n offset?: number;\n arrowOffset?: number;\n direction: Direction;\n spareDirection: Direction;\n possibleDirections: readonly Direction[];\n bannedDirections: readonly Direction[];\n};\n\nexport const getComputedPositionAndDirection = ({\n position: initialPosition,\n contentSize,\n viewportSize,\n anchorSize = { width: 0, height: 0 },\n arrowOffset,\n direction: initialDirection,\n possibleDirections,\n bannedDirections,\n spareDirection,\n offset = 0,\n}: ComputedPositionAndDirectionParams): {\n direction: Direction;\n position: Position;\n} => {\n if (!initialPosition) {\n return { position: initialPosition, direction: initialDirection };\n }\n\n const positionsByDirection = getPositionsByDirection({\n contentSize,\n anchorSize,\n position: initialPosition,\n arrowOffset,\n offset,\n });\n\n const direction =\n [initialDirection, ...possibleDirections]\n .filter((dir) => !bannedDirections.includes(dir))\n .find((dir) => {\n const pos = positionsByDirection[dir];\n const { width, height } = contentSize;\n\n const isFittingDown = pos.y + height <= viewportSize.height;\n const isFittingUp = pos.y >= 0;\n\n const isFittingLeft = pos.x >= 0;\n const isFittingRight = pos.x + width <= viewportSize.width;\n\n return isFittingUp && isFittingDown && isFittingLeft && isFittingRight;\n }) || spareDirection;\n\n return {\n direction,\n position: positionsByDirection[direction],\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .SelectCreateButton{background-color:var(--color-control-bg-clear);border:none;color:var(--color-control-typo-default);cursor:pointer;display:block;font-size:var(--font-size);padding:var(--vertical-space) var(--horizontal-space);position:relative}.SelectCreateButton_size_xs{--horizontal-space:calc(var(--control-space-xs)*0.5);--vertical-space:calc(var(--control-space-s)*0.25);--font-size:var(--control-text-size-xs)}.SelectCreateButton_size_s{--horizontal-space:calc(var(--control-space-s)*0.5);--vertical-space:calc(var(--control-space-s)*0.25);--font-size:var(--control-text-size-s)}.SelectCreateButton_size_m{--horizontal-space:calc(var(--control-space-m)*0.5);--vertical-space:calc(var(--control-space-s)*0.5);--font-size:var(--control-text-size-m)}.SelectCreateButton_size_l{--horizontal-space:calc(var(--control-space-l)*0.5);--vertical-space:calc(var(--control-space-s)*0.5);--font-size:var(--control-text-size-l)}.SelectCreateButton_hovered{background-color:var(--color-control-bg-clear-hover)}.SelectCreateButton_active{color:var(--color-control-typo-secondary)}.SelectCreateButton_indent_increased{padding-left:calc(var(--horizontal-space)*2.6)}
1
+ .ListItem.SelectCreateButton:hover:not(.ListItem_active){background:transparent}
@@ -1,6 +1,6 @@
1
1
  import './SelectCreateButton.css';
2
2
  import React from 'react';
3
- import { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';
3
+ import { PropsWithHTMLAttributes } from "../../../utils/types/PropsWithHTMLAttributes";
4
4
  import { PropSize } from '../types';
5
5
  declare type SelectCreateButtonProps = PropsWithHTMLAttributes<{
6
6
  labelForCreate?: string;
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","labelForCreate","inputValue","active","hovered","size","indent"];import"./SelectCreateButton.css";import React from"react";import{cn}from"../../../utils/bem";export var cnSelectCreateButton=cn("SelectCreateButton");export var SelectCreateButton=function(a){var b=a.className,c=a.labelForCreate,d=a.inputValue,e=a.active,f=a.hovered,g=a.size,h=a.indent,i=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},i,{className:cnSelectCreateButton({active:e,hovered:f,size:g,indent:h},[b]),"aria-selected":e,role:"option"}),c," \xAB",React.createElement("b",null,d),"\xBB")};
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","labelForCreate","inputValue","active","hovered","size","indent"];import"./SelectCreateButton.css";import React from"react";import{ListAddItem}from"../../ListCanary";import{cn}from"../../../utils/bem";export var cnSelectCreateButton=cn("SelectCreateButton");export var SelectCreateButton=function(a){var b=a.className,c=a.labelForCreate,d=a.inputValue,e=a.active,f=a.hovered,g=a.size,h=a.indent,i=_objectWithoutProperties(a,_excluded);return React.createElement(ListAddItem,Object.assign({},i,{className:cnSelectCreateButton(null,[b]),"aria-selected":e,role:"option",active:f,size:g,innerOffset:h,label:React.createElement(React.Fragment,null,c," \xAB",React.createElement("b",null,d),"\xBB")}))};
2
2
  //# sourceMappingURL=SelectCreateButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCreateButton.js","names":["React","cn","cnSelectCreateButton","SelectCreateButton","props","className","labelForCreate","inputValue","active","hovered","size","indent","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectCreateButton/SelectCreateButton.tsx"],"sourcesContent":["import './SelectCreateButton.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport { PropSize } from '../types';\n\ntype SelectCreateButtonProps = PropsWithHTMLAttributes<\n {\n labelForCreate?: string;\n inputValue?: string;\n active: boolean;\n hovered: boolean;\n size: PropSize;\n indent: 'normal' | 'increased';\n },\n HTMLDivElement\n>;\n\nexport const cnSelectCreateButton = cn('SelectCreateButton');\n\nexport const SelectCreateButton: React.FC<SelectCreateButtonProps> = (\n props,\n) => {\n const {\n className,\n labelForCreate,\n inputValue,\n active,\n hovered,\n size,\n indent,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n className={cnSelectCreateButton({ active, hovered, size, indent }, [\n className,\n ])}\n aria-selected={active}\n role=\"option\"\n >\n {labelForCreate} «<b>{inputValue}</b>»\n </div>\n );\n};\n"],"mappings":"kLAAA,iCAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BAgBA,MAAO,IAAMC,qBAAoB,CAAGD,EAAE,CAAC,oBAAD,CAA/B,CAEP,MAAO,IAAME,mBAAqD,CAAG,SACnEC,CADmE,CAEhE,CACH,GACEC,EADF,CASID,CATJ,CACEC,SADF,CAEEC,CAFF,CASIF,CATJ,CAEEE,cAFF,CAGEC,CAHF,CASIH,CATJ,CAGEG,UAHF,CAIEC,CAJF,CASIJ,CATJ,CAIEI,MAJF,CAKEC,CALF,CASIL,CATJ,CAKEK,OALF,CAMEC,CANF,CASIN,CATJ,CAMEM,IANF,CAOEC,CAPF,CASIP,CATJ,CAOEO,MAPF,CAQKC,CARL,0BASIR,CATJ,YAWA,MACE,4CACMQ,CADN,EAEE,SAAS,CAAEV,oBAAoB,CAAC,CAAEM,MAAM,CAANA,CAAF,CAAUC,OAAO,CAAPA,CAAV,CAAmBC,IAAI,CAAJA,CAAnB,CAAyBC,MAAM,CAANA,CAAzB,CAAD,CAAoC,CACjEN,CADiE,CAApC,CAFjC,CAKE,gBAAeG,CALjB,CAME,IAAI,CAAC,QANP,GAQGF,CARH,SAQoB,6BAAIC,CAAJ,CARpB,QAWH,CA1BM"}
1
+ {"version":3,"file":"SelectCreateButton.js","names":["React","ListAddItem","cn","cnSelectCreateButton","SelectCreateButton","props","className","labelForCreate","inputValue","active","hovered","size","indent","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectCreateButton/SelectCreateButton.tsx"],"sourcesContent":["import './SelectCreateButton.css';\n\nimport React from 'react';\n\nimport { ListAddItem } from '##/components/ListCanary';\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { PropSize } from '../types';\n\ntype SelectCreateButtonProps = PropsWithHTMLAttributes<\n {\n labelForCreate?: string;\n inputValue?: string;\n active: boolean;\n hovered: boolean;\n size: PropSize;\n indent: 'normal' | 'increased';\n },\n HTMLDivElement\n>;\n\nexport const cnSelectCreateButton = cn('SelectCreateButton');\n\nexport const SelectCreateButton: React.FC<SelectCreateButtonProps> = (\n props,\n) => {\n const {\n className,\n labelForCreate,\n inputValue,\n active,\n hovered,\n size,\n indent,\n ...otherProps\n } = props;\n\n return (\n <ListAddItem\n {...otherProps}\n className={cnSelectCreateButton(null, [className])}\n aria-selected={active}\n role=\"option\"\n active={hovered}\n size={size}\n innerOffset={indent}\n label={\n <>\n {labelForCreate} «<b>{inputValue}</b>»\n </>\n }\n />\n );\n};\n"],"mappings":"kLAAA,iCAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,WAAT,wBACA,OAASC,EAAT,0BAiBA,MAAO,IAAMC,qBAAoB,CAAGD,EAAE,CAAC,oBAAD,CAA/B,CAEP,MAAO,IAAME,mBAAqD,CAAG,SACnEC,CADmE,CAEhE,CACH,GACEC,EADF,CASID,CATJ,CACEC,SADF,CAEEC,CAFF,CASIF,CATJ,CAEEE,cAFF,CAGEC,CAHF,CASIH,CATJ,CAGEG,UAHF,CAIEC,CAJF,CASIJ,CATJ,CAIEI,MAJF,CAKEC,CALF,CASIL,CATJ,CAKEK,OALF,CAMEC,CANF,CASIN,CATJ,CAMEM,IANF,CAOEC,CAPF,CASIP,CATJ,CAOEO,MAPF,CAQKC,CARL,0BASIR,CATJ,YAWA,MACE,qBAAC,WAAD,kBACMQ,CADN,EAEE,SAAS,CAAEV,oBAAoB,CAAC,IAAD,CAAO,CAACG,CAAD,CAAP,CAFjC,CAGE,gBAAeG,CAHjB,CAIE,IAAI,CAAC,QAJP,CAKE,MAAM,CAAEC,CALV,CAME,IAAI,CAAEC,CANR,CAOE,WAAW,CAAEC,CAPf,CAQE,KAAK,CACH,wCACGL,CADH,SACoB,6BAAIC,CAAJ,CADpB,QATJ,GAeH,CA9BM"}
@@ -1 +1 @@
1
- .SelectDropdown{background:var(--color-bg-default);border:var(--control-border-width) solid var(--color-control-bg-border-default);box-shadow:var(--shadow-layer);box-sizing:border-box;font-size:var(--font-size);margin:-1px 0 -1px;min-width:220px;outline:none;overflow:hidden}.SelectDropdown_size_xs{--input-height:var(--control-height-xs);--font-size:var(--control-text-size-xs);--input-space:calc(var(--control-space-xs)*0.5);--list-spase:var(--space-2xs)}.SelectDropdown_size_s{--input-height:var(--control-height-s);--font-size:var(--control-text-size-s);--input-space:calc(var(--control-space-s)*0.5);--list-spase:var(--space-2xs)}.SelectDropdown_size_m{--input-height:var(--control-height-m);--font-size:var(--control-text-size-m);--input-space:calc(var(--control-space-m)*0.5);--list-spase:var(--space-xs)}.SelectDropdown_size_l{--input-height:var(--control-height-l);--font-size:var(--control-text-size-l);--input-space:calc(var(--control-space-l)*0.5);--list-spase:var(--space-xs)}.SelectDropdown_form_default{border-radius:var(--control-radius)}.SelectDropdown_form_brick{border-radius:0}.SelectDropdown_form_round{border-radius:calc(var(--input-height)*.5)}.SelectDropdown-LabelForEmptyItems,.SelectDropdown-LabelForNotFound{padding:0 var(--space-xs)}.SelectDropdown-List{line-height:120%;max-height:200px;overflow-y:auto;padding:var(--list-spase) 0;width:100%}
1
+ .SelectDropdown{min-width:220px;outline:none}.SelectDropdown-List{max-height:200px;overflow:auto}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","renderItem","visibleItems","isLoading","getGroupLabel","notFound"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./SelectDropdown.css";import React,{Fragment,useMemo,useRef}from"react";import{Transition}from"react-transition-group";import{isOptionForCreate}from"../../../hooks/useSelect/useSelect";import{animateTimeout,cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate/MixPopoverAnimate";import{cn}from"../../../utils/bem";import{fabricIndex}from"../../../utils/fabricIndex";import{Popover}from"../../Popover/Popover";import{Text}from"../../Text/Text";import{SelectCreateButton}from"../SelectCreateButton/SelectCreateButton";import{SelectGroupLabel}from"../SelectGroupLabel/SelectGroupLabel";import{SelectLoader}from"../SelectLoader/SelectLoader";export var selectDropdownform=["default","brick","round"];export var defaultSelectDropdownPropForm=selectDropdownform[0];var cnSelectDropdown=cn("SelectDropdown");export var SelectDropdown=function(a){var b=a.controlRef,c=a.size,d=a.getOptionProps,e=a.dropdownRef,f=a.labelForCreate,g=a.className,h=a.labelForNotFound,i=a.labelForEmptyItems,j=a.hasItems,k=!(void 0!==j)||j,l=a.form,m=a.isOpen,n=a.renderItem,o=a.visibleItems,p=a.isLoading,q=a.getGroupLabel,r=a.notFound,s=_objectWithoutProperties(a,_excluded),t="round"===l?"increased":"normal",u=useRef(null),v=useMemo(function(){return 0<o.filter(function(a){return isOptionForCreate(a)||Array.isArray(a.items)&&0<a.items.length}).length},[o]);return React.createElement(Transition,{in:m,unmountOnExit:!0,nodeRef:u,timeout:animateTimeout},function(a){var j=fabricIndex(-1);return React.createElement(Popover,Object.assign({},s,{anchorRef:b,direction:"downStartLeft",possibleDirections:["downStartLeft","upStartLeft","downStartRight","upStartRight"],offset:"2xs",ref:u,role:"listbox",className:cnSelectDropdown({form:l,size:c},[g,cnMixPopoverAnimate({animate:a})]),equalAnchorWidth:!0}),React.createElement("div",{className:cnSelectDropdown("List",{size:c,form:l}),ref:e},p&&React.createElement(SelectLoader,{mode:v?"blur":"empty"}),o.map(function(a){return isOptionForCreate(a)?React.createElement(SelectCreateButton,Object.assign({size:c,labelForCreate:f,inputValue:a.label,indent:t},d({index:j(),item:a}))):React.createElement(Fragment,{key:a.key},a.group&&q&&React.createElement(SelectGroupLabel,{label:q(a.group),size:c,indent:t}),a.items.map(function(b,c){return React.createElement(Fragment,{key:"".concat(a.key,"-").concat(c)},n(_objectSpread({item:b},d({index:j(),item:b}))))}))}),!p&&k&&r&&h&&React.createElement(Text,{className:cnSelectDropdown("LabelForNotFound")},h),!p&&!k&&i&&React.createElement(Text,{className:cnSelectDropdown("LabelForEmptyItems")},i)))})};
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","renderItem","visibleItems","isLoading","getGroupLabel","notFound"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./SelectDropdown.css";import React,{Fragment,useMemo,useRef}from"react";import{Transition}from"react-transition-group";import{cnListBox,ListItem,mapVerticalSpase}from"../../ListCanary";import{cnMixSpace}from"../../../mixs/MixSpace";import{isOptionForCreate}from"../../../hooks/useSelect/useSelect";import{animateTimeout,cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate/MixPopoverAnimate";import{cn}from"../../../utils/bem";import{fabricIndex}from"../../../utils/fabricIndex";import{Popover}from"../../Popover/Popover";import{SelectCreateButton}from"../SelectCreateButton/SelectCreateButton";import{SelectGroupLabel}from"../SelectGroupLabel/SelectGroupLabel";import{SelectLoader}from"../SelectLoader/SelectLoader";export var selectDropdownform=["default","brick","round"];export var defaultSelectDropdownPropForm=selectDropdownform[0];var cnSelectDropdown=cn("SelectDropdown");export var SelectDropdown=function(a){var b=a.controlRef,c=a.size,d=a.getOptionProps,e=a.dropdownRef,f=a.labelForCreate,g=a.className,h=a.labelForNotFound,i=a.labelForEmptyItems,j=a.hasItems,k=!(void 0!==j)||j,l=a.form,m=a.isOpen,n=a.renderItem,o=a.visibleItems,p=a.isLoading,q=a.getGroupLabel,r=a.notFound,s=_objectWithoutProperties(a,_excluded),t="round"===l?"increased":"normal",u=useRef(null),v=useMemo(function(){return 0<o.filter(function(a){return isOptionForCreate(a)||Array.isArray(a.items)&&0<a.items.length}).length},[o]);return React.createElement(Transition,{in:m,unmountOnExit:!0,nodeRef:u,timeout:animateTimeout},function(a){var j=fabricIndex(-1);return React.createElement(Popover,Object.assign({},s,{anchorRef:b,direction:"downStartLeft",possibleDirections:["downStartLeft","upStartLeft","downStartRight","upStartRight"],offset:"2xs",ref:u,role:"listbox",className:cnSelectDropdown(null,[cnListBox({size:c,form:l,border:!0,shadow:!0}),cnMixPopoverAnimate({animate:a}),g]),equalAnchorWidth:!0}),React.createElement("div",{className:cnSelectDropdown("List",[cnMixSpace({pV:mapVerticalSpase[c]})]),ref:e},p&&React.createElement(SelectLoader,{mode:v?"blur":"empty"}),o.map(function(a){return isOptionForCreate(a)?React.createElement(SelectCreateButton,Object.assign({size:c,labelForCreate:f,inputValue:a.label,indent:t},d({index:j(),item:a}))):React.createElement(Fragment,{key:a.key},a.group&&q&&React.createElement(SelectGroupLabel,{label:q(a.group),size:c,indent:t}),a.items.map(function(b,c){return React.createElement(Fragment,{key:"".concat(a.key,"-").concat(c)},n(_objectSpread({item:b},d({index:j(),item:b}))))}))}),!p&&k&&r&&h&&React.createElement(ListItem,{size:c,label:h,innerOffset:t},h),!p&&!k&&i&&React.createElement(ListItem,{size:c,label:h,innerOffset:t},i)))})};
2
2
  //# sourceMappingURL=SelectDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdown.js","names":["React","Fragment","useMemo","useRef","Transition","isOptionForCreate","animateTimeout","cnMixPopoverAnimate","cn","fabricIndex","Popover","Text","SelectCreateButton","SelectGroupLabel","SelectLoader","selectDropdownform","defaultSelectDropdownPropForm","cnSelectDropdown","SelectDropdown","props","controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","renderItem","visibleItems","isLoading","getGroupLabel","notFound","otherProps","indent","popoverRef","isListShowed","filter","group","Array","isArray","items","length","animate","getIndex","map","label","index","item","key","i"],"sources":["../../../../../../src/components/SelectComponents/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import './SelectDropdown.css';\n\nimport React, { Fragment, useMemo, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n GetOptionPropsResult,\n isOptionForCreate,\n OptionForCreate,\n OptionProps,\n} from '../../../hooks/useSelect/useSelect';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '../../../mixs/MixPopoverAnimate/MixPopoverAnimate';\nimport { cn } from '../../../utils/bem';\nimport { fabricIndex } from '../../../utils/fabricIndex';\nimport { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';\nimport { Popover } from '../../Popover/Popover';\nimport { Text } from '../../Text/Text';\nimport { SelectCreateButton } from '../SelectCreateButton/SelectCreateButton';\nimport { SelectGroupLabel } from '../SelectGroupLabel/SelectGroupLabel';\nimport { SelectLoader } from '../SelectLoader/SelectLoader';\nimport { PropSize, RenderItemProps } from '../types';\n\nexport const selectDropdownform = ['default', 'brick', 'round'] as const;\nexport type SelectDropdownPropForm = typeof selectDropdownform[number];\nexport const defaultSelectDropdownPropForm = selectDropdownform[0];\n\ntype Props<ITEM, GROUP> = PropsWithJsxAttributes<{\n size: PropSize;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n getOptionProps(props: OptionProps<ITEM>): GetOptionPropsResult;\n form: SelectDropdownPropForm;\n isOpen: boolean;\n isLoading?: boolean;\n renderItem: (props: RenderItemProps<ITEM>) => JSX.Element | null;\n visibleItems: (\n | OptionForCreate\n | {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n groupIndex: number;\n }\n )[];\n getGroupLabel?: (group: GROUP) => string;\n labelForCreate?: string;\n labelForNotFound?: string;\n labelForEmptyItems?: string;\n notFound?: boolean;\n hasItems?: boolean;\n}>;\n\ntype SelectDropdown = <ITEM, GROUP>(\n props: Props<ITEM, GROUP>,\n) => React.ReactElement | null;\n\nconst cnSelectDropdown = cn('SelectDropdown');\n\nexport const SelectDropdown: SelectDropdown = (props) => {\n const {\n controlRef,\n size,\n getOptionProps,\n dropdownRef,\n labelForCreate,\n className,\n labelForNotFound,\n labelForEmptyItems,\n hasItems = true,\n form,\n isOpen,\n renderItem,\n visibleItems,\n isLoading,\n getGroupLabel,\n notFound,\n ...otherProps\n } = props;\n\n const indent = form === 'round' ? 'increased' : 'normal';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const isListShowed = useMemo(() => {\n return (\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) ||\n (Array.isArray(group.items) && group.items.length > 0),\n ).length > 0\n );\n }, [visibleItems]);\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n nodeRef={popoverRef}\n timeout={animateTimeout}\n >\n {(animate) => {\n const getIndex = fabricIndex(-1);\n return (\n <Popover\n {...otherProps}\n anchorRef={controlRef}\n direction=\"downStartLeft\"\n possibleDirections={[\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset=\"2xs\"\n ref={popoverRef}\n role=\"listbox\"\n className={cnSelectDropdown({ form, size }, [\n className,\n cnMixPopoverAnimate({ animate }),\n ])}\n equalAnchorWidth\n >\n <div\n className={cnSelectDropdown('List', { size, form })}\n ref={dropdownRef}\n >\n {isLoading && (\n <SelectLoader mode={isListShowed ? 'blur' : 'empty'} />\n )}\n {visibleItems.map((group) => {\n if (isOptionForCreate(group)) {\n return (\n <SelectCreateButton\n size={size}\n labelForCreate={labelForCreate}\n inputValue={group.label}\n indent={indent}\n {...getOptionProps({ index: getIndex(), item: group })}\n />\n );\n }\n return (\n <Fragment key={group.key}>\n {group.group && getGroupLabel && (\n <SelectGroupLabel\n label={getGroupLabel(group.group)}\n size={size}\n indent={indent}\n />\n )}\n {group.items.map((item, i) => {\n return (\n <Fragment key={`${group.key}-${i}`}>\n {renderItem({\n item,\n ...getOptionProps({ index: getIndex(), item }),\n })}\n </Fragment>\n );\n })}\n </Fragment>\n );\n })}\n {!isLoading && hasItems && notFound && labelForNotFound && (\n <Text className={cnSelectDropdown('LabelForNotFound')}>\n {labelForNotFound}\n </Text>\n )}\n {!isLoading && !hasItems && labelForEmptyItems && (\n <Text className={cnSelectDropdown('LabelForEmptyItems')}>\n {labelForEmptyItems}\n </Text>\n )}\n </div>\n </Popover>\n );\n }}\n </Transition>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectDropdown.js","names":["React","Fragment","useMemo","useRef","Transition","cnListBox","ListItem","mapVerticalSpase","cnMixSpace","isOptionForCreate","animateTimeout","cnMixPopoverAnimate","cn","fabricIndex","Popover","SelectCreateButton","SelectGroupLabel","SelectLoader","selectDropdownform","defaultSelectDropdownPropForm","cnSelectDropdown","SelectDropdown","props","controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","renderItem","visibleItems","isLoading","getGroupLabel","notFound","otherProps","indent","popoverRef","isListShowed","filter","group","Array","isArray","items","length","animate","getIndex","border","shadow","pV","map","label","index","item","key","i"],"sources":["../../../../../../src/components/SelectComponents/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import './SelectDropdown.css';\n\nimport React, { Fragment, useMemo, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n cnListBox,\n ListItem,\n mapVerticalSpase,\n} from '##/components/ListCanary';\nimport { cnMixSpace } from '##/mixs/MixSpace';\n\nimport {\n GetOptionPropsResult,\n isOptionForCreate,\n OptionForCreate,\n OptionProps,\n} from '../../../hooks/useSelect/useSelect';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '../../../mixs/MixPopoverAnimate/MixPopoverAnimate';\nimport { cn } from '../../../utils/bem';\nimport { fabricIndex } from '../../../utils/fabricIndex';\nimport { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';\nimport { Popover } from '../../Popover/Popover';\nimport { SelectCreateButton } from '../SelectCreateButton/SelectCreateButton';\nimport { SelectGroupLabel } from '../SelectGroupLabel/SelectGroupLabel';\nimport { SelectLoader } from '../SelectLoader/SelectLoader';\nimport { PropSize, RenderItemProps } from '../types';\n\nexport const selectDropdownform = ['default', 'brick', 'round'] as const;\nexport type SelectDropdownPropForm = typeof selectDropdownform[number];\nexport const defaultSelectDropdownPropForm = selectDropdownform[0];\n\ntype Props<ITEM, GROUP> = PropsWithJsxAttributes<{\n size: PropSize;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n getOptionProps(props: OptionProps<ITEM>): GetOptionPropsResult;\n form: SelectDropdownPropForm;\n isOpen: boolean;\n isLoading?: boolean;\n renderItem: (props: RenderItemProps<ITEM>) => JSX.Element | null;\n visibleItems: (\n | OptionForCreate\n | {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n groupIndex: number;\n }\n )[];\n getGroupLabel?: (group: GROUP) => string;\n labelForCreate?: string;\n labelForNotFound?: string;\n labelForEmptyItems?: string;\n notFound?: boolean;\n hasItems?: boolean;\n}>;\n\ntype SelectDropdown = <ITEM, GROUP>(\n props: Props<ITEM, GROUP>,\n) => React.ReactElement | null;\n\nconst cnSelectDropdown = cn('SelectDropdown');\n\nexport const SelectDropdown: SelectDropdown = (props) => {\n const {\n controlRef,\n size,\n getOptionProps,\n dropdownRef,\n labelForCreate,\n className,\n labelForNotFound,\n labelForEmptyItems,\n hasItems = true,\n form,\n isOpen,\n renderItem,\n visibleItems,\n isLoading,\n getGroupLabel,\n notFound,\n ...otherProps\n } = props;\n\n const indent = form === 'round' ? 'increased' : 'normal';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const isListShowed = useMemo(() => {\n return (\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) ||\n (Array.isArray(group.items) && group.items.length > 0),\n ).length > 0\n );\n }, [visibleItems]);\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n nodeRef={popoverRef}\n timeout={animateTimeout}\n >\n {(animate) => {\n const getIndex = fabricIndex(-1);\n return (\n <Popover\n {...otherProps}\n anchorRef={controlRef}\n direction=\"downStartLeft\"\n possibleDirections={[\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset=\"2xs\"\n ref={popoverRef}\n role=\"listbox\"\n className={cnSelectDropdown(null, [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixPopoverAnimate({ animate }),\n className,\n ])}\n equalAnchorWidth\n >\n <div\n className={cnSelectDropdown('List', [\n cnMixSpace({\n pV: mapVerticalSpase[size],\n }),\n ])}\n ref={dropdownRef}\n >\n {isLoading && (\n <SelectLoader mode={isListShowed ? 'blur' : 'empty'} />\n )}\n {visibleItems.map((group) => {\n if (isOptionForCreate(group)) {\n return (\n <SelectCreateButton\n size={size}\n labelForCreate={labelForCreate}\n inputValue={group.label}\n indent={indent}\n {...getOptionProps({ index: getIndex(), item: group })}\n />\n );\n }\n return (\n <Fragment key={group.key}>\n {group.group && getGroupLabel && (\n <SelectGroupLabel\n label={getGroupLabel(group.group)}\n size={size}\n indent={indent}\n />\n )}\n {group.items.map((item, i) => {\n return (\n <Fragment key={`${group.key}-${i}`}>\n {renderItem({\n item,\n ...getOptionProps({ index: getIndex(), item }),\n })}\n </Fragment>\n );\n })}\n </Fragment>\n );\n })}\n {!isLoading && hasItems && notFound && labelForNotFound && (\n <ListItem\n size={size}\n label={labelForNotFound}\n innerOffset={indent}\n >\n {labelForNotFound}\n </ListItem>\n )}\n {!isLoading && !hasItems && labelForEmptyItems && (\n <ListItem\n size={size}\n label={labelForNotFound}\n innerOffset={indent}\n >\n {labelForEmptyItems}\n </ListItem>\n )}\n </div>\n </Popover>\n );\n }}\n </Transition>\n );\n};\n"],"mappings":"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"}
@@ -1,12 +1,10 @@
1
- import './SelectGroupLabel.css';
2
1
  import React from 'react';
3
2
  import { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';
4
3
  import { PropSize } from '../types';
5
4
  declare type SelectGroupLabelProps = PropsWithHTMLAttributes<{
6
- label?: string;
5
+ label: string;
7
6
  size: PropSize;
8
7
  indent: 'normal' | 'increased';
9
8
  }, HTMLDivElement>;
10
- export declare const cnSelectGroupLabel: import("@bem-react/classname").ClassNameFormatter;
11
9
  export declare const SelectGroupLabel: React.FC<SelectGroupLabelProps>;
12
10
  export {};
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","label","size","indent"];import"./SelectGroupLabel.css";import React from"react";import{cn}from"../../../utils/bem";export var cnSelectGroupLabel=cn("SelectGroupLabel");export var SelectGroupLabel=function(a){var b=a.className,c=a.label,d=a.size,e=a.indent,f=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},f,{className:cnSelectGroupLabel({size:d,indent:e},[b])}),c)};
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["indent"];import React from"react";import{ListGroupLabel}from"../../ListCanary";export var SelectGroupLabel=function(a){var b=a.indent,c=_objectWithoutProperties(a,_excluded);return React.createElement(ListGroupLabel,Object.assign({},c,{innerOffset:b}))};
2
2
  //# sourceMappingURL=SelectGroupLabel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectGroupLabel.js","names":["React","cn","cnSelectGroupLabel","SelectGroupLabel","props","className","label","size","indent","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.tsx"],"sourcesContent":["import './SelectGroupLabel.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport { PropSize } from '../types';\n\ntype SelectGroupLabelProps = PropsWithHTMLAttributes<\n {\n label?: string;\n size: PropSize;\n indent: 'normal' | 'increased';\n },\n HTMLDivElement\n>;\n\nexport const cnSelectGroupLabel = cn('SelectGroupLabel');\n\nexport const SelectGroupLabel: React.FC<SelectGroupLabelProps> = (props) => {\n const { className, label, size, indent, ...otherProps } = props;\n\n return (\n <div\n {...otherProps}\n className={cnSelectGroupLabel({ size, indent }, [className])}\n >\n {label}\n </div>\n );\n};\n"],"mappings":"yIAAA,+BAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BAaA,MAAO,IAAMC,mBAAkB,CAAGD,EAAE,CAAC,kBAAD,CAA7B,CAEP,MAAO,IAAME,iBAAiD,CAAG,SAACC,CAAD,CAAW,CAC1E,GAAQC,EAAR,CAA0DD,CAA1D,CAAQC,SAAR,CAAmBC,CAAnB,CAA0DF,CAA1D,CAAmBE,KAAnB,CAA0BC,CAA1B,CAA0DH,CAA1D,CAA0BG,IAA1B,CAAgCC,CAAhC,CAA0DJ,CAA1D,CAAgCI,MAAhC,CAA2CC,CAA3C,0BAA0DL,CAA1D,YAEA,MACE,4CACMK,CADN,EAEE,SAAS,CAAEP,kBAAkB,CAAC,CAAEK,IAAI,CAAJA,CAAF,CAAQC,MAAM,CAANA,CAAR,CAAD,CAAmB,CAACH,CAAD,CAAnB,CAF/B,GAIGC,CAJH,CAOH,CAXM"}
1
+ {"version":3,"file":"SelectGroupLabel.js","names":["React","ListGroupLabel","SelectGroupLabel","props","indent","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectGroupLabel/SelectGroupLabel.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ListGroupLabel } from '##/components/ListCanary';\n\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport { PropSize } from '../types';\n\ntype SelectGroupLabelProps = PropsWithHTMLAttributes<\n {\n label: string;\n size: PropSize;\n indent: 'normal' | 'increased';\n },\n HTMLDivElement\n>;\n\nexport const SelectGroupLabel: React.FC<SelectGroupLabelProps> = (props) => {\n const { indent, ...otherProps } = props;\n\n return <ListGroupLabel {...otherProps} innerOffset={indent} />;\n};\n"],"mappings":"8GAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,cAAT,wBAcA,MAAO,IAAMC,iBAAiD,CAAG,SAACC,CAAD,CAAW,CAC1E,GAAQC,EAAR,CAAkCD,CAAlC,CAAQC,MAAR,CAAmBC,CAAnB,0BAAkCF,CAAlC,YAEA,MAAO,qBAAC,cAAD,kBAAoBE,CAApB,EAAgC,WAAW,CAAED,CAA7C,GACR,CAJM"}
@@ -1 +1 @@
1
- .SelectItem{--text-color:var(--color-control-typo-default);word-wrap:break-word;background-color:var(--color-control-bg-clear);color:var(--text-color);cursor:pointer;font-size:var(--font-size);min-height:calc(var(--vertical-space)*2 + var(--font-size)*1.2);padding:var(--vertical-space) var(--horizontal-space);position:relative}.SelectItem_size_xs{--horizontal-space:calc(var(--control-space-xs)*0.5);--vertical-space:calc(var(--control-space-s)*0.25);--font-size:var(--control-text-size-xs)}.SelectItem_size_s{--horizontal-space:calc(var(--control-space-s)*0.5);--vertical-space:calc(var(--control-space-s)*0.25);--font-size:var(--control-text-size-s)}.SelectItem_size_m{--horizontal-space:calc(var(--control-space-m)*0.5);--vertical-space:calc(var(--control-space-s)*0.5);--font-size:var(--control-text-size-m)}.SelectItem_size_l{--horizontal-space:calc(var(--control-space-l)*0.5);--vertical-space:calc(var(--control-space-s)*0.5);--font-size:var(--control-text-size-l)}.SelectItem_hovered{background-color:var(--color-control-bg-clear-hover)}.SelectItem_active{--text-color:var(--color-control-typo-secondary)}.SelectItem_disabled{--text-color:var(--color-control-typo-disable)}.SelectItem_multiple{align-items:center;display:flex}.SelectItem_indent_increased{padding-left:calc(var(--horizontal-space)*2.6)}.SelectItem:not(.SelectItem_multiple):before{background-color:transparent;bottom:0;content:"";left:0;position:absolute;top:0;transition:background-color .2s ease-in;width:2px}.SelectItem:not(.SelectItem_multiple).SelectItem_active:before{background-color:var(--text-color)}.SelectItem-Checkbox{margin-right:var(--space-xs)}
1
+ .ListItem.SelectItem:hover:not(.ListItem_active){background:transparent}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","label","active","hovered","multiple","size","indent","disabled"];import"./SelectItem.css";import React from"react";import{cn}from"../../../utils/bem";import{getByMap}from"../../../utils/getByMap";import{Checkbox}from"../../Checkbox/Checkbox";export var cnSelectItem=cn("SelectItem");var sizeCheckboxMap={xs:"m",s:"m",m:"l",l:"l"};export var SelectItem=function(a){var b=a.className,c=a.label,d=a.active,e=a.hovered,f=a.multiple,g=a.size,h=a.indent,i=a.disabled,j=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},j,{className:cnSelectItem({active:d,hovered:e,multiple:f,size:g,indent:h,disabled:i},[b]),"aria-selected":d,"aria-disabled":i,role:"option"}),f&&React.createElement(Checkbox,{className:cnSelectItem("Checkbox"),checked:d,size:getByMap(sizeCheckboxMap,g)}),c)};
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","label","active","hovered","multiple","size","indent","disabled"];import"./SelectItem.css";import React from"react";import{ListItem}from"../../ListCanary";import{cn}from"../../../utils/bem";import{Checkbox}from"../../Checkbox/Checkbox";var sizeCheckboxMap={xs:"m",s:"m",m:"l",l:"l"};export var cnSelectItem=cn("SelectItem");export var SelectItem=function(a){var b=a.className,c=a.label,d=a.active,e=a.hovered,f=a.multiple,g=a.size,h=a.indent,i=a.disabled,j=_objectWithoutProperties(a,_excluded);return React.createElement(ListItem,Object.assign({},j,{className:cnSelectItem(null,[b]),"aria-selected":d,"aria-disabled":i,role:"option",label:c,innerOffset:h,size:g,active:e,checked:!f&&d,disabled:i,leftSide:f&&React.createElement(Checkbox,{checked:d,size:sizeCheckboxMap[g]})}),c)};
2
2
  //# sourceMappingURL=SelectItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.js","names":["React","cn","getByMap","Checkbox","cnSelectItem","sizeCheckboxMap","xs","s","m","l","SelectItem","props","className","label","active","hovered","multiple","size","indent","disabled","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectItem/SelectItem.tsx"],"sourcesContent":["import './SelectItem.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { getByMap } from '../../../utils/getByMap';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport { Checkbox, CheckboxPropSize } from '../../Checkbox/Checkbox';\nimport { PropSize } from '../types';\n\nexport type SelectItemProps = PropsWithHTMLAttributes<\n {\n label: string;\n active: boolean;\n hovered: boolean;\n multiple: boolean;\n size: PropSize;\n indent: 'normal' | 'increased';\n disabled: boolean | undefined;\n },\n HTMLDivElement\n>;\n\nexport const cnSelectItem = cn('SelectItem');\n\nconst sizeCheckboxMap: Record<PropSize, CheckboxPropSize> = {\n xs: 'm',\n s: 'm',\n m: 'l',\n l: 'l',\n};\n\nexport const SelectItem: React.FC<SelectItemProps> = (props) => {\n const {\n className,\n label,\n active,\n hovered,\n multiple,\n size,\n indent,\n disabled,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n className={cnSelectItem(\n { active, hovered, multiple, size, indent, disabled },\n [className],\n )}\n aria-selected={active}\n aria-disabled={disabled}\n role=\"option\"\n >\n {multiple && (\n <Checkbox\n className={cnSelectItem('Checkbox')}\n checked={active}\n size={getByMap(sizeCheckboxMap, size)}\n />\n )}\n {label}\n </div>\n );\n};\n"],"mappings":"kLAAA,yBAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BACA,OAASC,QAAT,+BAEA,OAASC,QAAT,+BAgBA,MAAO,IAAMC,aAAY,CAAGH,EAAE,CAAC,YAAD,CAAvB,CAEP,GAAMI,gBAAmD,CAAG,CAC1DC,EAAE,CAAE,GADsD,CAE1DC,CAAC,CAAE,GAFuD,CAG1DC,CAAC,CAAE,GAHuD,CAI1DC,CAAC,CAAE,GAJuD,CAA5D,CAOA,MAAO,IAAMC,WAAqC,CAAG,SAACC,CAAD,CAAW,CAC9D,GACEC,EADF,CAUID,CAVJ,CACEC,SADF,CAEEC,CAFF,CAUIF,CAVJ,CAEEE,KAFF,CAGEC,CAHF,CAUIH,CAVJ,CAGEG,MAHF,CAIEC,CAJF,CAUIJ,CAVJ,CAIEI,OAJF,CAKEC,CALF,CAUIL,CAVJ,CAKEK,QALF,CAMEC,CANF,CAUIN,CAVJ,CAMEM,IANF,CAOEC,CAPF,CAUIP,CAVJ,CAOEO,MAPF,CAQEC,CARF,CAUIR,CAVJ,CAQEQ,QARF,CASKC,CATL,0BAUIT,CAVJ,YAYA,MACE,4CACMS,CADN,EAEE,SAAS,CAAEhB,YAAY,CACrB,CAAEU,MAAM,CAANA,CAAF,CAAUC,OAAO,CAAPA,CAAV,CAAmBC,QAAQ,CAARA,CAAnB,CAA6BC,IAAI,CAAJA,CAA7B,CAAmCC,MAAM,CAANA,CAAnC,CAA2CC,QAAQ,CAARA,CAA3C,CADqB,CAErB,CAACP,CAAD,CAFqB,CAFzB,CAME,gBAAeE,CANjB,CAOE,gBAAeK,CAPjB,CAQE,IAAI,CAAC,QARP,GAUGH,CAAQ,EACP,oBAAC,QAAD,EACE,SAAS,CAAEZ,YAAY,CAAC,UAAD,CADzB,CAEE,OAAO,CAAEU,CAFX,CAGE,IAAI,CAAEZ,QAAQ,CAACG,eAAD,CAAkBY,CAAlB,CAHhB,EAXJ,CAiBGJ,CAjBH,CAoBH,CAlCM"}
1
+ {"version":3,"file":"SelectItem.js","names":["React","ListItem","cn","Checkbox","sizeCheckboxMap","xs","s","m","l","cnSelectItem","SelectItem","props","className","label","active","hovered","multiple","size","indent","disabled","otherProps"],"sources":["../../../../../../src/components/SelectComponents/SelectItem/SelectItem.tsx"],"sourcesContent":["import './SelectItem.css';\n\nimport React from 'react';\n\nimport { ListItem } from '##/components/ListCanary';\nimport { cn } from '##/utils/bem';\n\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport { Checkbox, CheckboxPropSize } from '../../Checkbox/Checkbox';\nimport { PropSize } from '../types';\n\nexport type SelectItemProps = PropsWithHTMLAttributes<\n {\n label: string;\n active: boolean;\n hovered: boolean;\n multiple: boolean;\n size: PropSize;\n indent: 'normal' | 'increased';\n disabled: boolean | undefined;\n },\n HTMLDivElement\n>;\n\nconst sizeCheckboxMap: Record<PropSize, CheckboxPropSize> = {\n xs: 'm',\n s: 'm',\n m: 'l',\n l: 'l',\n};\n\nexport const cnSelectItem = cn('SelectItem');\n\nexport const SelectItem: React.FC<SelectItemProps> = (props) => {\n const {\n className,\n label,\n active,\n hovered,\n multiple,\n size,\n indent,\n disabled,\n ...otherProps\n } = props;\n\n return (\n <ListItem\n {...otherProps}\n className={cnSelectItem(null, [className])}\n aria-selected={active}\n aria-disabled={disabled}\n role=\"option\"\n label={label}\n innerOffset={indent}\n size={size}\n active={hovered}\n checked={!multiple && active}\n disabled={disabled}\n leftSide={\n multiple && <Checkbox checked={active} size={sizeCheckboxMap[size]} />\n }\n >\n {label}\n </ListItem>\n );\n};\n"],"mappings":"kLAAA,yBAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,QAAT,wBACA,OAASC,EAAT,0BAGA,OAASC,QAAT,+BAgBA,GAAMC,gBAAmD,CAAG,CAC1DC,EAAE,CAAE,GADsD,CAE1DC,CAAC,CAAE,GAFuD,CAG1DC,CAAC,CAAE,GAHuD,CAI1DC,CAAC,CAAE,GAJuD,CAA5D,CAOA,MAAO,IAAMC,aAAY,CAAGP,EAAE,CAAC,YAAD,CAAvB,CAEP,MAAO,IAAMQ,WAAqC,CAAG,SAACC,CAAD,CAAW,CAC9D,GACEC,EADF,CAUID,CAVJ,CACEC,SADF,CAEEC,CAFF,CAUIF,CAVJ,CAEEE,KAFF,CAGEC,CAHF,CAUIH,CAVJ,CAGEG,MAHF,CAIEC,CAJF,CAUIJ,CAVJ,CAIEI,OAJF,CAKEC,CALF,CAUIL,CAVJ,CAKEK,QALF,CAMEC,CANF,CAUIN,CAVJ,CAMEM,IANF,CAOEC,CAPF,CAUIP,CAVJ,CAOEO,MAPF,CAQEC,CARF,CAUIR,CAVJ,CAQEQ,QARF,CASKC,CATL,0BAUIT,CAVJ,YAYA,MACE,qBAAC,QAAD,kBACMS,CADN,EAEE,SAAS,CAAEX,YAAY,CAAC,IAAD,CAAO,CAACG,CAAD,CAAP,CAFzB,CAGE,gBAAeE,CAHjB,CAIE,gBAAeK,CAJjB,CAKE,IAAI,CAAC,QALP,CAME,KAAK,CAAEN,CANT,CAOE,WAAW,CAAEK,CAPf,CAQE,IAAI,CAAED,CARR,CASE,MAAM,CAAEF,CATV,CAUE,OAAO,CAAE,CAACC,CAAD,EAAaF,CAVxB,CAWE,QAAQ,CAAEK,CAXZ,CAYE,QAAQ,CACNH,CAAQ,EAAI,oBAAC,QAAD,EAAU,OAAO,CAAEF,CAAnB,CAA2B,IAAI,CAAEV,eAAe,CAACa,CAAD,CAAhD,EAbhB,GAgBGJ,CAhBH,CAmBH,CAjCM"}
@@ -1,4 +1,4 @@
1
1
  export declare const defaultlabelForNotFound = "\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";
2
- export declare const defaultlabelForCreate = "+";
2
+ export declare const defaultlabelForCreate = "";
3
3
  export declare const defaultLabelForEmptyItems = "\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";
4
4
  export declare const getInputWidth: (controlInnerRef: React.RefObject<HTMLDivElement>, helperInputFakeElement: React.RefObject<HTMLDivElement>) => number;
@@ -1,2 +1,2 @@
1
- export var defaultlabelForNotFound="\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";export var defaultlabelForCreate="+";export var defaultLabelForEmptyItems="\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";export var getInputWidth=function(a,b){if(!a.current||!b.current)return 20;var c=b.current.offsetWidth+20,d=a.current?a.current.offsetWidth-15:2,e=c>d?d:c;return e};
1
+ export var defaultlabelForNotFound="\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";export var defaultlabelForCreate="";export var defaultLabelForEmptyItems="\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";export var getInputWidth=function(a,b){if(!a.current||!b.current)return 20;var c=b.current.offsetWidth+20,d=a.current?a.current.offsetWidth-15:2,e=c>d?d:c;return e};
2
2
  //# sourceMappingURL=helpers.js.map