@weavix/tracker-components 0.0.3 → 0.1.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 (277) hide show
  1. package/README.md +191 -19
  2. package/build/cjs/assets/icons/keyResult.d.ts +4 -0
  3. package/build/cjs/assets/icons/keyResult.js +21 -0
  4. package/build/cjs/assets/icons/keyResult.js.map +1 -0
  5. package/build/cjs/components/FieldsSelect/FieldsSelect.classname.js +1 -1
  6. package/build/cjs/components/FieldsSelect/FieldsSelect.classname.js.map +1 -1
  7. package/build/cjs/components/Icon/EntityIcon/EntityIcon.classname.js +1 -1
  8. package/build/cjs/components/Icon/EntityIcon/EntityIcon.classname.js.map +1 -1
  9. package/build/cjs/components/Icon/GoalIcon/GoalIcon.d.ts +6 -0
  10. package/build/cjs/components/Icon/GoalIcon/GoalIcon.js +24 -0
  11. package/build/cjs/components/Icon/GoalIcon/GoalIcon.js.map +1 -0
  12. package/build/cjs/components/Icon/GoalIcon/README.md +123 -0
  13. package/build/cjs/components/Icon/GoalIcon/index.d.ts +1 -0
  14. package/build/cjs/components/Icon/GoalIcon/index.js +13 -0
  15. package/build/cjs/components/Icon/GoalIcon/index.js.map +1 -0
  16. package/build/cjs/components/Icon/Icon.classname.js +1 -1
  17. package/build/cjs/components/Icon/Icon.classname.js.map +1 -1
  18. package/build/cjs/components/Icon/IconRefuge/IconRefuge.classname.js +1 -1
  19. package/build/cjs/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
  20. package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.classname.js +1 -1
  21. package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.classname.js.map +1 -1
  22. package/build/cjs/components/Icon/IssueTypeIcon/README.md +105 -23
  23. package/build/cjs/components/Icon/KeyResultIcon/KeyResultIcon.d.ts +4 -0
  24. package/build/cjs/components/Icon/KeyResultIcon/KeyResultIcon.js +35 -0
  25. package/build/cjs/components/Icon/KeyResultIcon/KeyResultIcon.js.map +1 -0
  26. package/build/cjs/components/Icon/KeyResultIcon/README.md +73 -0
  27. package/build/cjs/components/Icon/KeyResultIcon/i18n.d.ts +6 -0
  28. package/build/cjs/components/Icon/KeyResultIcon/i18n.js +13 -0
  29. package/build/cjs/components/Icon/KeyResultIcon/i18n.js.map +1 -0
  30. package/build/cjs/components/Icon/KeyResultIcon/index.d.ts +2 -0
  31. package/build/cjs/components/Icon/KeyResultIcon/index.js +13 -0
  32. package/build/cjs/components/Icon/KeyResultIcon/index.js.map +1 -0
  33. package/build/cjs/components/Icon/MetaEntityIcon/MetaEntityIcon.d.ts +7 -0
  34. package/build/cjs/components/Icon/MetaEntityIcon/MetaEntityIcon.js +46 -0
  35. package/build/cjs/components/Icon/MetaEntityIcon/MetaEntityIcon.js.map +1 -0
  36. package/build/cjs/components/Icon/MetaEntityIcon/README.md +126 -0
  37. package/build/cjs/components/Icon/MetaEntityIcon/index.d.ts +2 -0
  38. package/build/cjs/components/Icon/MetaEntityIcon/index.js +13 -0
  39. package/build/cjs/components/Icon/MetaEntityIcon/index.js.map +1 -0
  40. package/build/cjs/components/Icon/PortfolioIcon/README.md +87 -9
  41. package/build/cjs/components/Icon/PortfolioIcon/index.d.ts +2 -0
  42. package/build/cjs/components/Icon/PortfolioIcon/index.js +13 -0
  43. package/build/cjs/components/Icon/PortfolioIcon/index.js.map +1 -0
  44. package/build/cjs/components/Icon/ProjectIcon/README.md +133 -9
  45. package/build/cjs/components/Icon/ProjectIcon/index.d.ts +2 -0
  46. package/build/cjs/components/Icon/ProjectIcon/index.js +13 -0
  47. package/build/cjs/components/Icon/ProjectIcon/index.js.map +1 -0
  48. package/build/cjs/components/Icon/index.d.ts +7 -2
  49. package/build/cjs/components/Icon/index.js +57 -2
  50. package/build/cjs/components/Icon/index.js.map +1 -1
  51. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.d.ts +1 -0
  52. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.js +9 -0
  53. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.js.map +1 -0
  54. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +10 -0
  55. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js +65 -0
  56. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -0
  57. package/build/cjs/components/MetaEntitiesSelect/README.md +183 -0
  58. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.d.ts +15 -0
  59. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.js +69 -0
  60. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.js.map +1 -0
  61. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.d.ts +1 -0
  62. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.js +9 -0
  63. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.js.map +1 -0
  64. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.css +18 -0
  65. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.css.map +1 -0
  66. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.d.ts +10 -0
  67. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.js +33 -0
  68. package/build/cjs/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.js.map +1 -0
  69. package/build/cjs/components/MetaEntitiesSelect/i18n.d.ts +6 -0
  70. package/build/cjs/components/MetaEntitiesSelect/i18n.js +13 -0
  71. package/build/cjs/components/MetaEntitiesSelect/i18n.js.map +1 -0
  72. package/build/cjs/components/MetaEntitiesSelect/index.d.ts +2 -0
  73. package/build/cjs/components/MetaEntitiesSelect/index.js +13 -0
  74. package/build/cjs/components/MetaEntitiesSelect/index.js.map +1 -0
  75. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.d.ts +2 -0
  76. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +11 -0
  77. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -0
  78. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityId.d.ts +2 -0
  79. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityId.js +10 -0
  80. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityId.js.map +1 -0
  81. package/build/cjs/components/PluginFieldsSelect/PluginFieldsSelect.d.ts +1 -1
  82. package/build/cjs/components/PluginFieldsSelect/PluginFieldsSelect.js.map +1 -1
  83. package/build/cjs/components/QueueIcon/QueueIcon.classname.js +1 -1
  84. package/build/cjs/components/QueueIcon/QueueIcon.classname.js.map +1 -1
  85. package/build/cjs/components/QueueSelect/QueueSelect.classname.js +1 -1
  86. package/build/cjs/components/QueueSelect/QueueSelect.classname.js.map +1 -1
  87. package/build/cjs/components/QueueSelect/QueueSelect.css.map +1 -1
  88. package/build/cjs/components/Select/Autocomplete.d.ts +1 -1
  89. package/build/cjs/components/Select/MultiAutocomplete.d.ts +1 -1
  90. package/build/cjs/components/Select/Select.classname.js +1 -1
  91. package/build/cjs/components/Select/Select.classname.js.map +1 -1
  92. package/build/cjs/components/Select/Select.css.map +1 -1
  93. package/build/cjs/components/Select/Select.d.ts +1 -1
  94. package/build/cjs/components/Select/SelectSearch/SelectSearch.classname.js +1 -1
  95. package/build/cjs/components/Select/SelectSearch/SelectSearch.classname.js.map +1 -1
  96. package/build/cjs/components/Select/SelectSearch/SelectSearch.d.ts +1 -1
  97. package/build/cjs/components/Select/SelectSearch/SelectSearch.js +2 -2
  98. package/build/cjs/components/Select/SelectSearch/SelectSearch.js.map +1 -1
  99. package/build/cjs/components/Select/SelectSearch/hooks/useSelectSearch.d.ts +2 -2
  100. package/build/cjs/components/Select/SelectSearch/hooks/useSelectSearch.js.map +1 -1
  101. package/build/cjs/components/Select/TagsSelect/TagsSelect.classname.js +1 -1
  102. package/build/cjs/components/Select/TagsSelect/TagsSelect.classname.js.map +1 -1
  103. package/build/cjs/components/Suggest/Suggest.classname.d.ts +1 -0
  104. package/build/cjs/components/Suggest/Suggest.classname.js +9 -0
  105. package/build/cjs/components/Suggest/Suggest.classname.js.map +1 -0
  106. package/build/cjs/components/Suggest/Suggest.css +24 -0
  107. package/build/cjs/components/Suggest/Suggest.css.map +1 -0
  108. package/build/cjs/components/Suggest/Suggest.d.ts +147 -0
  109. package/build/cjs/components/Suggest/Suggest.js +621 -0
  110. package/build/cjs/components/Suggest/Suggest.js.map +1 -0
  111. package/build/cjs/components/Suggest/i18n.d.ts +22 -0
  112. package/build/cjs/components/Suggest/i18n.js +29 -0
  113. package/build/cjs/components/Suggest/i18n.js.map +1 -0
  114. package/build/cjs/components/Suggest/index.d.ts +1 -0
  115. package/build/cjs/components/Suggest/index.js +17 -0
  116. package/build/cjs/components/Suggest/index.js.map +1 -0
  117. package/build/cjs/components/TrackerDisclosure/README.md +205 -0
  118. package/build/cjs/components/TrackerDisclosure/TrackerDisclosure.classname.js +1 -1
  119. package/build/cjs/components/TrackerDisclosure/TrackerDisclosure.classname.js.map +1 -1
  120. package/build/cjs/components/TrackerSelect/TrackerSelect.classname.js +1 -1
  121. package/build/cjs/components/TrackerSelect/TrackerSelect.classname.js.map +1 -1
  122. package/build/cjs/components/TrackerSelect/TrackerSelect.css.map +1 -1
  123. package/build/cjs/components/useOnFocusOutside/OutsideFocusHandlerContainer.d.ts +9 -0
  124. package/build/cjs/components/useOnFocusOutside/OutsideFocusHandlerContainer.js +31 -0
  125. package/build/cjs/components/useOnFocusOutside/OutsideFocusHandlerContainer.js.map +1 -0
  126. package/build/cjs/components/useOnFocusOutside/useOnFocusOutside.d.ts +1 -0
  127. package/build/cjs/components/useOnFocusOutside/useOnFocusOutside.js +38 -0
  128. package/build/cjs/components/useOnFocusOutside/useOnFocusOutside.js.map +1 -0
  129. package/build/cjs/hooks/useConditionallyControlledState.d.ts +1 -0
  130. package/build/cjs/hooks/useConditionallyControlledState.js +15 -0
  131. package/build/cjs/hooks/useConditionallyControlledState.js.map +1 -0
  132. package/build/cjs/hooks/useLocalizedString.d.ts +1 -1
  133. package/build/cjs/hooks/useLocalizedString.js.map +1 -1
  134. package/build/cjs/index.d.ts +1 -0
  135. package/build/cjs/index.js +12 -0
  136. package/build/cjs/index.js.map +1 -1
  137. package/build/esm/assets/icons/keyResult.d.ts +4 -0
  138. package/build/esm/assets/icons/keyResult.js +13 -0
  139. package/build/esm/components/FieldsSelect/FieldsSelect.classname.js +1 -1
  140. package/build/esm/components/FieldsSelect/FieldsSelect.classname.js.map +1 -1
  141. package/build/esm/components/Icon/EntityIcon/EntityIcon.classname.js +1 -1
  142. package/build/esm/components/Icon/EntityIcon/EntityIcon.classname.js.map +1 -1
  143. package/build/esm/components/Icon/GoalIcon/GoalIcon.d.ts +6 -0
  144. package/build/esm/components/Icon/GoalIcon/GoalIcon.js +17 -0
  145. package/build/esm/components/Icon/GoalIcon/GoalIcon.js.map +1 -0
  146. package/build/esm/components/Icon/GoalIcon/README.md +123 -0
  147. package/build/esm/components/Icon/GoalIcon/index.d.ts +1 -0
  148. package/build/esm/components/Icon/GoalIcon/index.js +2 -0
  149. package/build/esm/components/Icon/GoalIcon/index.js.map +1 -0
  150. package/build/esm/components/Icon/Icon.classname.js +1 -1
  151. package/build/esm/components/Icon/Icon.classname.js.map +1 -1
  152. package/build/esm/components/Icon/IconRefuge/IconRefuge.classname.js +1 -1
  153. package/build/esm/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
  154. package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.classname.js +1 -1
  155. package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.classname.js.map +1 -1
  156. package/build/esm/components/Icon/IssueTypeIcon/README.md +105 -23
  157. package/build/esm/components/Icon/KeyResultIcon/KeyResultIcon.d.ts +4 -0
  158. package/build/esm/components/Icon/KeyResultIcon/KeyResultIcon.js +28 -0
  159. package/build/esm/components/Icon/KeyResultIcon/KeyResultIcon.js.map +1 -0
  160. package/build/esm/components/Icon/KeyResultIcon/README.md +73 -0
  161. package/build/esm/components/Icon/KeyResultIcon/i18n.d.ts +6 -0
  162. package/build/esm/components/Icon/KeyResultIcon/i18n.js +7 -0
  163. package/build/esm/components/Icon/KeyResultIcon/i18n.js.map +1 -0
  164. package/build/esm/components/Icon/KeyResultIcon/index.d.ts +2 -0
  165. package/build/esm/components/Icon/KeyResultIcon/index.js +2 -0
  166. package/build/esm/components/Icon/KeyResultIcon/index.js.map +1 -0
  167. package/build/esm/components/Icon/MetaEntityIcon/MetaEntityIcon.d.ts +7 -0
  168. package/build/esm/components/Icon/MetaEntityIcon/MetaEntityIcon.js +39 -0
  169. package/build/esm/components/Icon/MetaEntityIcon/MetaEntityIcon.js.map +1 -0
  170. package/build/esm/components/Icon/MetaEntityIcon/README.md +126 -0
  171. package/build/esm/components/Icon/MetaEntityIcon/index.d.ts +2 -0
  172. package/build/esm/components/Icon/MetaEntityIcon/index.js +2 -0
  173. package/build/esm/components/Icon/MetaEntityIcon/index.js.map +1 -0
  174. package/build/esm/components/Icon/PortfolioIcon/README.md +87 -9
  175. package/build/esm/components/Icon/PortfolioIcon/index.d.ts +2 -0
  176. package/build/esm/components/Icon/PortfolioIcon/index.js +2 -0
  177. package/build/esm/components/Icon/PortfolioIcon/index.js.map +1 -0
  178. package/build/esm/components/Icon/ProjectIcon/README.md +133 -9
  179. package/build/esm/components/Icon/ProjectIcon/index.d.ts +2 -0
  180. package/build/esm/components/Icon/ProjectIcon/index.js +2 -0
  181. package/build/esm/components/Icon/ProjectIcon/index.js.map +1 -0
  182. package/build/esm/components/Icon/index.d.ts +7 -2
  183. package/build/esm/components/Icon/index.js +7 -2
  184. package/build/esm/components/Icon/index.js.map +1 -1
  185. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.d.ts +1 -0
  186. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.js +3 -0
  187. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.classname.js.map +1 -0
  188. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +10 -0
  189. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js +57 -0
  190. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -0
  191. package/build/esm/components/MetaEntitiesSelect/README.md +183 -0
  192. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.d.ts +15 -0
  193. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.js +61 -0
  194. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggest/EntitiesSuggest.js.map +1 -0
  195. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.d.ts +1 -0
  196. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.js +3 -0
  197. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.classname.js.map +1 -0
  198. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.css +18 -0
  199. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.css.map +1 -0
  200. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.d.ts +10 -0
  201. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.js +26 -0
  202. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.js.map +1 -0
  203. package/build/esm/components/MetaEntitiesSelect/components/EntitiesSuggestItem/EntitiesSuggestItem.scss +24 -0
  204. package/build/esm/components/MetaEntitiesSelect/i18n.d.ts +6 -0
  205. package/build/esm/components/MetaEntitiesSelect/i18n.js +7 -0
  206. package/build/esm/components/MetaEntitiesSelect/i18n.js.map +1 -0
  207. package/build/esm/components/MetaEntitiesSelect/index.d.ts +2 -0
  208. package/build/esm/components/MetaEntitiesSelect/index.js +2 -0
  209. package/build/esm/components/MetaEntitiesSelect/index.js.map +1 -0
  210. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.d.ts +2 -0
  211. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +5 -0
  212. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -0
  213. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityId.d.ts +2 -0
  214. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityId.js +4 -0
  215. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityId.js.map +1 -0
  216. package/build/esm/components/PluginFieldsSelect/PluginFieldsSelect.d.ts +1 -1
  217. package/build/esm/components/PluginFieldsSelect/PluginFieldsSelect.js.map +1 -1
  218. package/build/esm/components/QueueIcon/QueueIcon.classname.js +1 -1
  219. package/build/esm/components/QueueIcon/QueueIcon.classname.js.map +1 -1
  220. package/build/esm/components/QueueSelect/QueueSelect.classname.js +1 -1
  221. package/build/esm/components/QueueSelect/QueueSelect.classname.js.map +1 -1
  222. package/build/esm/components/QueueSelect/QueueSelect.css.map +1 -1
  223. package/build/esm/components/QueueSelect/QueueSelect.scss +4 -8
  224. package/build/esm/components/Select/Autocomplete.d.ts +1 -1
  225. package/build/esm/components/Select/MultiAutocomplete.d.ts +1 -1
  226. package/build/esm/components/Select/Select.classname.js +1 -1
  227. package/build/esm/components/Select/Select.classname.js.map +1 -1
  228. package/build/esm/components/Select/Select.css.map +1 -1
  229. package/build/esm/components/Select/Select.d.ts +1 -1
  230. package/build/esm/components/Select/Select.scss +3 -4
  231. package/build/esm/components/Select/SelectSearch/SelectSearch.classname.js +1 -1
  232. package/build/esm/components/Select/SelectSearch/SelectSearch.classname.js.map +1 -1
  233. package/build/esm/components/Select/SelectSearch/SelectSearch.d.ts +1 -1
  234. package/build/esm/components/Select/SelectSearch/SelectSearch.js +1 -1
  235. package/build/esm/components/Select/SelectSearch/SelectSearch.js.map +1 -1
  236. package/build/esm/components/Select/SelectSearch/hooks/useSelectSearch.d.ts +2 -2
  237. package/build/esm/components/Select/SelectSearch/hooks/useSelectSearch.js.map +1 -1
  238. package/build/esm/components/Select/TagsSelect/TagsSelect.classname.js +1 -1
  239. package/build/esm/components/Select/TagsSelect/TagsSelect.classname.js.map +1 -1
  240. package/build/esm/components/Suggest/Suggest.classname.d.ts +1 -0
  241. package/build/esm/components/Suggest/Suggest.classname.js +3 -0
  242. package/build/esm/components/Suggest/Suggest.classname.js.map +1 -0
  243. package/build/esm/components/Suggest/Suggest.css +24 -0
  244. package/build/esm/components/Suggest/Suggest.css.map +1 -0
  245. package/build/esm/components/Suggest/Suggest.d.ts +147 -0
  246. package/build/esm/components/Suggest/Suggest.js +613 -0
  247. package/build/esm/components/Suggest/Suggest.js.map +1 -0
  248. package/build/esm/components/Suggest/Suggest.scss +30 -0
  249. package/build/esm/components/Suggest/i18n.d.ts +22 -0
  250. package/build/esm/components/Suggest/i18n.js +23 -0
  251. package/build/esm/components/Suggest/i18n.js.map +1 -0
  252. package/build/esm/components/Suggest/index.d.ts +1 -0
  253. package/build/esm/components/Suggest/index.js +2 -0
  254. package/build/esm/components/Suggest/index.js.map +1 -0
  255. package/build/esm/components/TrackerDisclosure/README.md +205 -0
  256. package/build/esm/components/TrackerDisclosure/TrackerDisclosure.classname.js +1 -1
  257. package/build/esm/components/TrackerDisclosure/TrackerDisclosure.classname.js.map +1 -1
  258. package/build/esm/components/TrackerSelect/TrackerSelect.classname.js +1 -1
  259. package/build/esm/components/TrackerSelect/TrackerSelect.classname.js.map +1 -1
  260. package/build/esm/components/TrackerSelect/TrackerSelect.css.map +1 -1
  261. package/build/esm/components/TrackerSelect/TrackerSelect.scss +3 -5
  262. package/build/esm/components/useOnFocusOutside/OutsideFocusHandlerContainer.d.ts +9 -0
  263. package/build/esm/components/useOnFocusOutside/OutsideFocusHandlerContainer.js +24 -0
  264. package/build/esm/components/useOnFocusOutside/OutsideFocusHandlerContainer.js.map +1 -0
  265. package/build/esm/components/useOnFocusOutside/useOnFocusOutside.d.ts +1 -0
  266. package/build/esm/components/useOnFocusOutside/useOnFocusOutside.js +31 -0
  267. package/build/esm/components/useOnFocusOutside/useOnFocusOutside.js.map +1 -0
  268. package/build/esm/hooks/useConditionallyControlledState.d.ts +1 -0
  269. package/build/esm/hooks/useConditionallyControlledState.js +9 -0
  270. package/build/esm/hooks/useConditionallyControlledState.js.map +1 -0
  271. package/build/esm/hooks/useLocalizedString.d.ts +1 -1
  272. package/build/esm/hooks/useLocalizedString.js.map +1 -1
  273. package/build/esm/index.d.ts +1 -0
  274. package/build/esm/index.js +1 -0
  275. package/build/esm/index.js.map +1 -1
  276. package/build/esm/styles/mixins.scss +8 -0
  277. package/package.json +3 -4
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "PortfolioIcon", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _PortfolioIcon.PortfolioIcon;
10
+ }
11
+ });
12
+ var _PortfolioIcon = require("./PortfolioIcon");
13
+ // #sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_PortfolioIcon","require"],"sources":["index.ts"],"sourcesContent":["export {PortfolioIcon} from './PortfolioIcon';\nexport type {PortfolioIconProps} from './PortfolioIcon';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA","ignoreList":[]}
@@ -1,51 +1,175 @@
1
1
  # ProjectIcon
2
2
 
3
3
  <!-- description:start -->
4
- Component displaying an icon for a project entity
4
+ Displays a colored icon for a Tracker project entity. The icon color is deterministically derived from the `projectId`, so the same project always renders the same color across sessions and environments.
5
5
  <!-- description:end -->
6
6
 
7
+ ## Usage
8
+
9
+ ```tsx
10
+ import {ProjectIcon} from '@weavix/tracker-components';
11
+
12
+ <ProjectIcon projectId={123} />
13
+ ```
14
+
7
15
  ## Component props
8
16
 
9
17
  <!-- props:start -->
10
18
  ```ts
11
19
  {
12
20
  /**
13
- * Project ID used to generate a deterministic color
21
+ * Project ID used to generate a deterministic color.
22
+ * Accepts either the numeric shortId or a string entity ID.
14
23
  */
15
24
  projectId?: number | string;
25
+
16
26
  /**
17
- * Additional class
27
+ * Additional CSS class applied to the root element.
18
28
  */
19
29
  className?: string;
30
+
20
31
  /**
21
- * Entity type label (defaults to "project")
32
+ * Entity type label. Defaults to "project".
22
33
  */
23
34
  type?: string;
35
+
24
36
  /**
25
- * Size of the SVG icon inside the container in pixels
37
+ * Size of the SVG icon inside the container in pixels.
26
38
  * @default 16
27
39
  */
28
40
  size?: number;
41
+
29
42
  /**
30
- * Size of the icon container in pixels
43
+ * Size of the icon container (the colored square) in pixels.
31
44
  * @default 24
32
45
  */
33
46
  refugeSize?: number;
47
+
34
48
  /**
35
- * Whether to render a colored background behind the icon
49
+ * Whether to render a colored background behind the icon.
36
50
  * @default true
37
51
  */
38
52
  withBackground?: boolean;
53
+
39
54
  /**
40
- * Border radius variant of the icon container
55
+ * Border radius variant of the icon container.
41
56
  * @default 'm'
42
57
  */
43
58
  radius?: 'm' | 'l';
59
+
44
60
  /**
45
- * Alpha (opacity) of the icon color
61
+ * Alpha (opacity) of the icon foreground color.
46
62
  * @default 1
47
63
  */
48
64
  colorAlpha?: number;
49
65
  }
50
66
  ```
51
67
  <!-- props:end -->
68
+
69
+ ---
70
+
71
+ ## Examples
72
+
73
+ ### Default
74
+
75
+ ```tsx
76
+ import {ProjectIcon} from '@weavix/tracker-components';
77
+
78
+ <ProjectIcon projectId={123} />
79
+ ```
80
+
81
+ ### Without background
82
+
83
+ ```tsx
84
+ // Renders only the colored SVG, no background square
85
+ <ProjectIcon projectId={123} withBackground={false} />
86
+ ```
87
+
88
+ ### Custom size
89
+
90
+ ```tsx
91
+ <ProjectIcon projectId={123} size={20} refugeSize={32} />
92
+ ```
93
+
94
+ ### Large radius
95
+
96
+ ```tsx
97
+ <ProjectIcon projectId={123} radius="l" />
98
+ ```
99
+
100
+ ### Alongside project name
101
+
102
+ ```tsx
103
+ import {ProjectIcon} from '@weavix/tracker-components';
104
+
105
+ export const ProjectLabel = ({project}: {project: {shortId: number; name: string}}) => (
106
+ <div style={{display: 'flex', alignItems: 'center', gap: 8}}>
107
+ <ProjectIcon projectId={project.shortId} />
108
+ <span>{project.name}</span>
109
+ </div>
110
+ );
111
+ ```
112
+
113
+ ### Multiple projects (each gets a unique color)
114
+
115
+ ```tsx
116
+ const projects = [
117
+ {shortId: 1, name: 'Backend API'},
118
+ {shortId: 2, name: 'Mobile App'},
119
+ {shortId: 3, name: 'Design System'},
120
+ ];
121
+
122
+ projects.map((p) => (
123
+ <div key={p.shortId} style={{display: 'flex', alignItems: 'center', gap: 8}}>
124
+ <ProjectIcon projectId={p.shortId} />
125
+ <span>{p.name}</span>
126
+ </div>
127
+ ));
128
+ ```
129
+
130
+ ### Rendering from a Tracker API response
131
+
132
+ The Tracker entities search endpoint returns `shortId` as a number — pass it directly:
133
+
134
+ ```tsx
135
+ import React, {useEffect, useState} from 'react';
136
+ import {ProjectIcon} from '@weavix/tracker-components';
137
+ import type {MetaEntityV2} from '@weavix/tracker-api-types';
138
+
139
+ interface Props {
140
+ trackerApi: TrackerApi;
141
+ }
142
+
143
+ export const ProjectList: React.FC<Props> = ({trackerApi}) => {
144
+ const [projects, setProjects] = useState<MetaEntityV2[]>([]);
145
+
146
+ useEffect(() => {
147
+ trackerApi.v3
148
+ .post['/entities/{entityType}/_search']({
149
+ pathParams: {entityType: 'project'},
150
+ queryParams: {fields: ['summary'], page: 1, perPage: 20},
151
+ bodyParams: {filter: {}, filterTypes: ['ALL'], input: ''},
152
+ })
153
+ .then((result) => setProjects(result.data));
154
+ }, [trackerApi]);
155
+
156
+ return (
157
+ <ul>
158
+ {projects.map((project) => (
159
+ <li key={project.id} style={{display: 'flex', alignItems: 'center', gap: 8}}>
160
+ <ProjectIcon projectId={project.shortId} />
161
+ <span>{project.fields?.summary?.value ?? project.id}</span>
162
+ </li>
163
+ ))}
164
+ </ul>
165
+ );
166
+ };
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Notes
172
+
173
+ - `withBackground` defaults to `true` for projects (vs `false` for [`PortfolioIcon`](../PortfolioIcon/README.md)).
174
+ - Pass `projectId` as the **numeric `shortId`** from the Tracker API for consistent color generation. String IDs are also accepted.
175
+ - To render the correct icon for an arbitrary meta entity type, use [`MetaEntityIcon`](../MetaEntityIcon/README.md) instead.
@@ -0,0 +1,2 @@
1
+ export { ProjectIcon } from './ProjectIcon';
2
+ export type { ProjectIconProps } from './ProjectIcon';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ProjectIcon", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ProjectIcon.ProjectIcon;
10
+ }
11
+ });
12
+ var _ProjectIcon = require("./ProjectIcon");
13
+ // #sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ProjectIcon","require"],"sources":["index.ts"],"sourcesContent":["export {ProjectIcon} from './ProjectIcon';\nexport type {ProjectIconProps} from './ProjectIcon';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA","ignoreList":[]}
@@ -1,3 +1,8 @@
1
+ export * from './EntityIcon';
2
+ export * from './GoalIcon';
3
+ export * from './IconRefuge';
1
4
  export * from './IssueTypeIcon';
2
- export * from './PortfolioIcon/PortfolioIcon';
3
- export * from './ProjectIcon/ProjectIcon';
5
+ export * from './KeyResultIcon';
6
+ export * from './MetaEntityIcon';
7
+ export * from './PortfolioIcon';
8
+ export * from './ProjectIcon';
@@ -3,6 +3,39 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _EntityIcon = require("./EntityIcon");
7
+ Object.keys(_EntityIcon).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _EntityIcon[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _EntityIcon[key];
14
+ }
15
+ });
16
+ });
17
+ var _GoalIcon = require("./GoalIcon");
18
+ Object.keys(_GoalIcon).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _GoalIcon[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _GoalIcon[key];
25
+ }
26
+ });
27
+ });
28
+ var _IconRefuge = require("./IconRefuge");
29
+ Object.keys(_IconRefuge).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _IconRefuge[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _IconRefuge[key];
36
+ }
37
+ });
38
+ });
6
39
  var _IssueTypeIcon = require("./IssueTypeIcon");
7
40
  Object.keys(_IssueTypeIcon).forEach(function (key) {
8
41
  if (key === "default" || key === "__esModule") return;
@@ -14,7 +47,29 @@ Object.keys(_IssueTypeIcon).forEach(function (key) {
14
47
  }
15
48
  });
16
49
  });
17
- var _PortfolioIcon = require("./PortfolioIcon/PortfolioIcon");
50
+ var _KeyResultIcon = require("./KeyResultIcon");
51
+ Object.keys(_KeyResultIcon).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _KeyResultIcon[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _KeyResultIcon[key];
58
+ }
59
+ });
60
+ });
61
+ var _MetaEntityIcon = require("./MetaEntityIcon");
62
+ Object.keys(_MetaEntityIcon).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _MetaEntityIcon[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _MetaEntityIcon[key];
69
+ }
70
+ });
71
+ });
72
+ var _PortfolioIcon = require("./PortfolioIcon");
18
73
  Object.keys(_PortfolioIcon).forEach(function (key) {
19
74
  if (key === "default" || key === "__esModule") return;
20
75
  if (key in exports && exports[key] === _PortfolioIcon[key]) return;
@@ -25,7 +80,7 @@ Object.keys(_PortfolioIcon).forEach(function (key) {
25
80
  }
26
81
  });
27
82
  });
28
- var _ProjectIcon = require("./ProjectIcon/ProjectIcon");
83
+ var _ProjectIcon = require("./ProjectIcon");
29
84
  Object.keys(_ProjectIcon).forEach(function (key) {
30
85
  if (key === "default" || key === "__esModule") return;
31
86
  if (key in exports && exports[key] === _ProjectIcon[key]) return;
@@ -1 +1 @@
1
- {"version":3,"names":["_IssueTypeIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_PortfolioIcon","_ProjectIcon"],"sources":["index.ts"],"sourcesContent":["export * from './IssueTypeIcon';\nexport * from './PortfolioIcon/PortfolioIcon';\nexport * from './ProjectIcon/ProjectIcon';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,YAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,YAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,YAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,YAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_EntityIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_GoalIcon","_IconRefuge","_IssueTypeIcon","_KeyResultIcon","_MetaEntityIcon","_PortfolioIcon","_ProjectIcon"],"sources":["index.ts"],"sourcesContent":["export * from './EntityIcon';\nexport * from './GoalIcon';\nexport * from './IconRefuge';\nexport * from './IssueTypeIcon';\nexport * from './KeyResultIcon';\nexport * from './MetaEntityIcon';\nexport * from './PortfolioIcon';\nexport * from './ProjectIcon';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const cnMetaEntitiesSelect: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cnMetaEntitiesSelect = void 0;
7
+ var _cn = require("./../cn");
8
+ var cnMetaEntitiesSelect = exports.cnMetaEntitiesSelect = (0, _cn.block)('meta-entities-select');
9
+ // #sourceMappingURL=MetaEntitiesSelect.classname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cn","require","cnMetaEntitiesSelect","exports","block"],"sources":["MetaEntitiesSelect.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnMetaEntitiesSelect = block('meta-entities-select');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,SAAK,EAAC,sBAAsB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { FC } from 'react';
2
+ import type { MetaEntityV2 } from '@weavix/tracker-api-types';
3
+ import type { EntitiesSuggestProps } from './components/EntitiesSuggest/EntitiesSuggest';
4
+ type EntitiesSuggestPropsToOmit = 'getItemId' | 'getSuggestTextFromClickedItem' | 'renderItem';
5
+ export type MetaEntitiesSelectProps = Omit<EntitiesSuggestProps<MetaEntityV2>, EntitiesSuggestPropsToOmit> & {
6
+ className?: string;
7
+ itemClassName?: string;
8
+ };
9
+ export declare const MetaEntitiesSelect: FC<MetaEntitiesSelectProps>;
10
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MetaEntitiesSelect = void 0;
7
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _uikit = require("@gravity-ui/uikit");
12
+ var _Icon = require("./../Icon");
13
+ var _useLocalizedString2 = require("./../../hooks/useLocalizedString");
14
+ var _MetaEntitiesSelect = require("./MetaEntitiesSelect.classname");
15
+ var _EntitiesSuggest = require("./components/EntitiesSuggest/EntitiesSuggest");
16
+ var _EntitiesSuggestItem = require("./components/EntitiesSuggestItem/EntitiesSuggestItem");
17
+ var _i18n = require("./i18n");
18
+ var _getMetaEntityDisplay = require("./utils/getMetaEntityDisplay");
19
+ var _getMetaEntityId = require("./utils/getMetaEntityId");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
+ var _excluded = ["className", "itemClassName", "placeholder", "text", "onTextChange"];
24
+ var MetaEntitiesSelect = exports.MetaEntitiesSelect = function MetaEntitiesSelect(_ref) {
25
+ var className = _ref.className,
26
+ itemClassName = _ref.itemClassName,
27
+ placeholder = _ref.placeholder,
28
+ initialText = _ref.text,
29
+ onTextChange = _ref.onTextChange,
30
+ suggestProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ var config = (0, _uikit.getConfig)();
32
+ var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
33
+ t = _useLocalizedString.t;
34
+ var _useState = (0, _react.useState)(initialText !== null && initialText !== void 0 ? initialText : ''),
35
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
+ text = _useState2[0],
37
+ setText = _useState2[1];
38
+ var handleTextChange = (0, _react.useCallback)(function (value) {
39
+ setText(value);
40
+ onTextChange === null || onTextChange === void 0 || onTextChange(value);
41
+ }, [setText, onTextChange]);
42
+ var renderItem = (0, _react.useCallback)(function (entity) {
43
+ var entityName = (0, _getMetaEntityDisplay.getMetaEntityDisplay)(entity);
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_EntitiesSuggestItem.EntitiesSuggestItem, {
45
+ id: entity.id,
46
+ name: entityName,
47
+ className: (0, _MetaEntitiesSelect.cnMetaEntitiesSelect)('item', itemClassName),
48
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.MetaEntityIcon, {
49
+ entity: entity
50
+ })
51
+ }, entity.id);
52
+ }, [itemClassName]);
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_EntitiesSuggest.EntitiesSuggest, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, suggestProps), {}, {
54
+ className: (0, _MetaEntitiesSelect.cnMetaEntitiesSelect)(null, className),
55
+ renderItem: renderItem,
56
+ placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('placeholder'),
57
+ getItemsOnMount: true,
58
+ showItemsOnNoText: true,
59
+ getItemId: _getMetaEntityId.getMetaEntityId,
60
+ getSuggestTextFromClickedItem: _getMetaEntityDisplay.getMetaEntityDisplay,
61
+ text: text,
62
+ onTextChange: handleTextChange
63
+ }));
64
+ };
65
+ // #sourceMappingURL=MetaEntitiesSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_Icon","_useLocalizedString2","_MetaEntitiesSelect","_EntitiesSuggest","_EntitiesSuggestItem","_i18n","_getMetaEntityDisplay","_getMetaEntityId","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","MetaEntitiesSelect","exports","_ref","className","itemClassName","placeholder","initialText","text","onTextChange","suggestProps","_objectWithoutProperties","_excluded","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","_useState","useState","_useState2","_slicedToArray","setText","handleTextChange","useCallback","value","renderItem","entity","entityName","getMetaEntityDisplay","_jsx","EntitiesSuggestItem","id","name","cnMetaEntitiesSelect","icon","MetaEntityIcon","EntitiesSuggest","_objectSpread","getItemsOnMount","showItemsOnNoText","getItemId","getMetaEntityId","getSuggestTextFromClickedItem"],"sources":["MetaEntitiesSelect.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {useCallback, useState} from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\nimport type {MetaEntityV2} from '@weavix/tracker-api-types';\n\nimport {MetaEntityIcon} from '~/src/components/Icon/';\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnMetaEntitiesSelect} from './MetaEntitiesSelect.classname';\nimport {EntitiesSuggest} from './components/EntitiesSuggest/EntitiesSuggest';\nimport type {EntitiesSuggestProps} from './components/EntitiesSuggest/EntitiesSuggest';\nimport {EntitiesSuggestItem} from './components/EntitiesSuggestItem/EntitiesSuggestItem';\nimport {defaultMessages} from './i18n';\nimport {getMetaEntityDisplay} from './utils/getMetaEntityDisplay';\nimport {getMetaEntityId} from './utils/getMetaEntityId';\n\ntype EntitiesSuggestPropsToOmit = 'getItemId' | 'getSuggestTextFromClickedItem' | 'renderItem';\n\nexport type MetaEntitiesSelectProps = Omit<\n EntitiesSuggestProps<MetaEntityV2>,\n EntitiesSuggestPropsToOmit\n> & {\n className?: string;\n itemClassName?: string;\n};\n\nexport const MetaEntitiesSelect: FC<MetaEntitiesSelectProps> = ({\n className,\n itemClassName,\n placeholder,\n text: initialText,\n onTextChange,\n ...suggestProps\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const [text, setText] = useState(initialText ?? '');\n const handleTextChange = useCallback(\n (value: string) => {\n setText(value);\n onTextChange?.(value);\n },\n [setText, onTextChange],\n );\n\n const renderItem = useCallback(\n (entity: MetaEntityV2) => {\n const entityName = getMetaEntityDisplay(entity);\n return (\n <EntitiesSuggestItem\n key={entity.id}\n id={entity.id}\n name={entityName}\n className={cnMetaEntitiesSelect('item', itemClassName)}\n icon={<MetaEntityIcon entity={entity} />}\n />\n );\n },\n [itemClassName],\n );\n\n return (\n <EntitiesSuggest<MetaEntityV2>\n {...suggestProps}\n className={cnMetaEntitiesSelect(null, className)}\n renderItem={renderItem}\n placeholder={placeholder ?? t('placeholder')}\n getItemsOnMount\n showItemsOnNoText\n getItemId={getMetaEntityId}\n getSuggestTextFromClickedItem={getMetaEntityDisplay}\n text={text}\n onTextChange={handleTextChange}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,183 @@
1
+ # MetaEntitiesSelect
2
+
3
+ <!-- description:start -->
4
+ A suggest-based select component for choosing Tracker meta entities (projects, portfolios, goals, or reports) inside a plugin. Renders each entity with its icon and display name, supports async item fetching, loading states, error display, and a clear button.
5
+ <!-- description:end -->
6
+
7
+ ## Usage
8
+
9
+ ```tsx
10
+ import {MetaEntitiesSelect} from '@weavix/tracker-components';
11
+ import type {MetaEntitiesSelectProps} from '@weavix/tracker-components';
12
+ import type {MetaEntityV2} from '@weavix/tracker-api-types';
13
+
14
+ <MetaEntitiesSelect
15
+ getItems={(text) => fetchProjects(text)}
16
+ onChange={(entity) => console.log('selected', entity)}
17
+ />;
18
+ ```
19
+
20
+ ## Component props
21
+
22
+ <!-- props:start -->
23
+ ```ts
24
+ {
25
+ /**
26
+ * Async or sync function called to fetch items.
27
+ * Receives the current text input and should return a list of MetaEntityV2 objects.
28
+ * Called on mount (getItemsOnMount) and on every text change.
29
+ */
30
+ getItems?: (text: string) => MetaEntityV2[] | Promise<MetaEntityV2[]>;
31
+
32
+ /**
33
+ * Callback fired when the user selects an entity from the suggest list.
34
+ */
35
+ onChange?: (entity: MetaEntityV2) => void;
36
+
37
+ /**
38
+ * Callback fired when the text input value changes.
39
+ */
40
+ onTextChange?: (text: string) => void;
41
+
42
+ /**
43
+ * Current text value of the input (controlled).
44
+ */
45
+ text?: string;
46
+
47
+ /**
48
+ * Placeholder text shown when the input is empty.
49
+ * @default 'Select a project'
50
+ */
51
+ placeholder?: string;
52
+
53
+ /**
54
+ * Error message or boolean to display an error state on the control.
55
+ */
56
+ error?: string | boolean;
57
+
58
+ /**
59
+ * Whether to show a clear (×) button when a value is selected.
60
+ * @default true
61
+ */
62
+ hasClear?: boolean;
63
+
64
+ /**
65
+ * Additional CSS class applied to the root element.
66
+ */
67
+ className?: string;
68
+
69
+ /**
70
+ * Additional CSS class applied to each item in the suggest list.
71
+ */
72
+ itemClassName?: string;
73
+ }
74
+ ```
75
+ <!-- props:end -->
76
+
77
+ ## Types
78
+
79
+ ```ts
80
+ // From @weavix/tracker-api-types
81
+ type MetaEntityV2 = {
82
+ id: string;
83
+ shortId: number;
84
+ entityType: 'project' | 'portfolio' | 'report' | 'goal';
85
+ self: string;
86
+ version: number;
87
+ createdBy: {self: string; id: string; display: string};
88
+ createdAt: string;
89
+ updatedAt: string;
90
+ fields?: {
91
+ summary?: {value: string};
92
+ [key: string]: unknown;
93
+ };
94
+ };
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Tracker API
100
+
101
+ `MetaEntitiesSelect` is data-agnostic — it accepts items via the `getItems` prop. You are responsible for fetching data from the Tracker API and passing it to the component.
102
+
103
+ ### Getting projects
104
+
105
+ Use the entities search endpoint to fetch projects (or other entity types):
106
+
107
+ ```ts
108
+ const result = await trackerApi.v3.post['/entities/{entityType}/_search']({
109
+ pathParams: {
110
+ entityType: 'project',
111
+ },
112
+ queryParams: {
113
+ fields: ['summary'],
114
+ page:1,
115
+ perPage: 50,
116
+ },
117
+ bodyParams: {
118
+ filter: {},
119
+ filterTypes: ['ALL'],
120
+ input,
121
+ },
122
+ });
123
+ return result.data; // MetaEntityV2[]
124
+ ```
125
+
126
+ > **Other entity types:** The `entityType` path parameter accepts `'portfolio' | 'project' | 'report' | 'goal'`. Use the appropriate value depending on which entities you want to display in the select.
127
+
128
+ > **Result:** Always return `result.data` from the API response.
129
+
130
+ ---
131
+
132
+ ### Example — Projects select with Tracker API
133
+
134
+ Fetches projects on every text change using the entities search endpoint. Request errors are caught and passed to the component via the `error` prop.
135
+
136
+ ```tsx
137
+ import React, {useState} from 'react';
138
+ import {MetaEntitiesSelect} from '@weavix/tracker-components';
139
+ import type {MetaEntityV2} from '@weavix/tracker-api-types';
140
+
141
+ interface Props {
142
+ trackerApi: TrackerApi; // your Tracker API client
143
+ onChange: (entity: MetaEntityV2) => void;
144
+ }
145
+
146
+ export const ProjectSelect: React.FC<Props> = ({trackerApi, onChange}) => {
147
+ const [error, setError] = useState<string | undefined>(undefined);
148
+
149
+ const getItems = async (input: string): Promise<MetaEntityV2[]> => {
150
+ setError(undefined);
151
+ try {
152
+ const result = await trackerApi.v3.post['/entities/{entityType}/_search']({
153
+ pathParams: {
154
+ entityType: 'project',
155
+ },
156
+ queryParams: {
157
+ fields: ['summary'],
158
+ page:1,
159
+ perPage: 50,
160
+ },
161
+ bodyParams: {
162
+ filter: {},
163
+ filterTypes: ['ALL'],
164
+ input,
165
+ },
166
+ });
167
+ return result.data;
168
+ } catch (err) {
169
+ setError(err instanceof Error ? err.message : 'Failed to load projects');
170
+ return [];
171
+ }
172
+ };
173
+
174
+ return (
175
+ <MetaEntitiesSelect
176
+ getItems={getItems}
177
+ onChange={onChange}
178
+ error={error}
179
+ placeholder="Select a project"
180
+ />
181
+ );
182
+ };
183
+ ```
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { Ref } from 'react';
3
+ import { SuggestView } from '~/src/components/Suggest';
4
+ import type { SuggestProps } from '~/src/components/Suggest';
5
+ type SuggestPropsToOmit = 'text' | 'onTextUpdate' | 'applicableInputValue' | 'onInputEnterKeyDown' | 'onUpdate';
6
+ export type EntitiesSuggestProps<EntityType extends unknown = {}> = Omit<SuggestProps<EntityType>, SuggestPropsToOmit> & {
7
+ onChange?: (entity: EntityType | null) => void;
8
+ getItemId: (item: EntityType) => string | number;
9
+ getSuggestTextFromClickedItem: (item: EntityType) => string;
10
+ suggestRef?: Ref<SuggestView<EntityType>>;
11
+ text?: string;
12
+ onTextChange?: (text: string) => void;
13
+ };
14
+ export declare const EntitiesSuggest: <EntityType extends unknown = {}>({ onItemClick, onChange, hasClear, debounce, getItems, getItemId, getSuggestTextFromClickedItem, suggestRef, text: providedText, onTextChange, getItemsOnMount, ...suggestProps }: EntitiesSuggestProps<EntityType>) => React.JSX.Element;
15
+ export {};