@weavix/tracker-components 0.1.1 → 0.1.3

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 (131) hide show
  1. package/README.md +29 -1
  2. package/build/cjs/components/Icon/EntityIcon/EntityIcon.js +2 -3
  3. package/build/cjs/components/Icon/EntityIcon/EntityIcon.js.map +1 -1
  4. package/build/cjs/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
  5. package/build/cjs/components/Icon/IconRefuge/IconRefuge.css +0 -3
  6. package/build/cjs/components/Icon/IconRefuge/IconRefuge.css.map +1 -1
  7. package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.js +30 -50
  8. package/build/cjs/components/Icon/IssueTypeIcon/IssueTypeIcon.js.map +1 -1
  9. package/build/cjs/components/Icon/IssueTypeIcon/README.md +42 -0
  10. package/build/cjs/components/Icon/MetaEntityIcon/README.md +10 -0
  11. package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.d.ts +4 -1
  12. package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.js +1 -0
  13. package/build/cjs/components/Icon/PortfolioIcon/PortfolioIcon.js.map +1 -1
  14. package/build/cjs/components/Icon/PortfolioIcon/README.md +7 -0
  15. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
  16. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js +9 -0
  17. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
  18. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
  19. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
  20. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
  21. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js +80 -0
  22. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
  23. package/build/cjs/components/Icon/PriorityIcon/README.md +172 -0
  24. package/build/cjs/components/Icon/PriorityIcon/i18n.d.ts +6 -0
  25. package/build/cjs/components/Icon/PriorityIcon/i18n.js +13 -0
  26. package/build/cjs/components/Icon/PriorityIcon/i18n.js.map +1 -0
  27. package/build/cjs/components/Icon/PriorityIcon/index.d.ts +3 -0
  28. package/build/cjs/components/Icon/PriorityIcon/index.js +13 -0
  29. package/build/cjs/components/Icon/PriorityIcon/index.js.map +1 -0
  30. package/build/cjs/components/Icon/PriorityIcon/types.d.ts +1 -0
  31. package/build/cjs/components/Icon/PriorityIcon/types.js +6 -0
  32. package/build/cjs/components/Icon/PriorityIcon/types.js.map +1 -0
  33. package/build/cjs/components/Icon/StatusIcon/README.md +128 -0
  34. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
  35. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js +9 -0
  36. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
  37. package/build/cjs/components/Icon/StatusIcon/StatusIcon.css +28 -0
  38. package/build/cjs/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
  39. package/build/cjs/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
  40. package/build/cjs/components/Icon/StatusIcon/StatusIcon.js +43 -0
  41. package/build/cjs/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
  42. package/build/cjs/components/Icon/StatusIcon/i18n.d.ts +6 -0
  43. package/build/cjs/components/Icon/StatusIcon/i18n.js +13 -0
  44. package/build/cjs/components/Icon/StatusIcon/i18n.js.map +1 -0
  45. package/build/cjs/components/Icon/StatusIcon/index.d.ts +3 -0
  46. package/build/cjs/components/Icon/StatusIcon/index.js +13 -0
  47. package/build/cjs/components/Icon/StatusIcon/index.js.map +1 -0
  48. package/build/cjs/components/Icon/StatusIcon/types.d.ts +3 -0
  49. package/build/cjs/components/Icon/StatusIcon/types.js +6 -0
  50. package/build/cjs/components/Icon/StatusIcon/types.js.map +1 -0
  51. package/build/cjs/components/Icon/StatusIcon/utils.d.ts +3 -0
  52. package/build/cjs/components/Icon/StatusIcon/utils.js +39 -0
  53. package/build/cjs/components/Icon/StatusIcon/utils.js.map +1 -0
  54. package/build/cjs/components/Icon/index.d.ts +2 -0
  55. package/build/cjs/components/Icon/index.js +22 -0
  56. package/build/cjs/components/Icon/index.js.map +1 -1
  57. package/build/cjs/components/MetaEntitiesSelect/README.md +10 -0
  58. package/build/cjs/components/PluginFieldsSelect/README.md +18 -0
  59. package/build/cjs/components/QueueSelect/README.md +10 -0
  60. package/build/esm/components/Icon/EntityIcon/EntityIcon.js +2 -3
  61. package/build/esm/components/Icon/EntityIcon/EntityIcon.js.map +1 -1
  62. package/build/esm/components/Icon/IconRefuge/IconRefuge.classname.js.map +1 -1
  63. package/build/esm/components/Icon/IconRefuge/IconRefuge.css +0 -3
  64. package/build/esm/components/Icon/IconRefuge/IconRefuge.css.map +1 -1
  65. package/build/esm/components/Icon/IconRefuge/IconRefuge.scss +0 -4
  66. package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.js +30 -50
  67. package/build/esm/components/Icon/IssueTypeIcon/IssueTypeIcon.js.map +1 -1
  68. package/build/esm/components/Icon/IssueTypeIcon/README.md +42 -0
  69. package/build/esm/components/Icon/MetaEntityIcon/README.md +10 -0
  70. package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.d.ts +4 -1
  71. package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.js +1 -0
  72. package/build/esm/components/Icon/PortfolioIcon/PortfolioIcon.js.map +1 -1
  73. package/build/esm/components/Icon/PortfolioIcon/README.md +7 -0
  74. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
  75. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js +3 -0
  76. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
  77. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
  78. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
  79. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
  80. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js +73 -0
  81. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
  82. package/build/esm/components/Icon/{Icon.scss → PriorityIcon/PriorityIcon.scss} +26 -8
  83. package/build/esm/components/Icon/PriorityIcon/README.md +172 -0
  84. package/build/esm/components/Icon/PriorityIcon/i18n.d.ts +6 -0
  85. package/build/esm/components/Icon/PriorityIcon/i18n.js +7 -0
  86. package/build/esm/components/Icon/PriorityIcon/i18n.js.map +1 -0
  87. package/build/esm/components/Icon/PriorityIcon/index.d.ts +3 -0
  88. package/build/esm/components/Icon/PriorityIcon/index.js +2 -0
  89. package/build/esm/components/Icon/PriorityIcon/index.js.map +1 -0
  90. package/build/esm/components/Icon/PriorityIcon/types.d.ts +1 -0
  91. package/build/esm/components/Icon/PriorityIcon/types.js +2 -0
  92. package/build/esm/components/Icon/PriorityIcon/types.js.map +1 -0
  93. package/build/esm/components/Icon/StatusIcon/README.md +128 -0
  94. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
  95. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js +3 -0
  96. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
  97. package/build/esm/components/Icon/StatusIcon/StatusIcon.css +28 -0
  98. package/build/esm/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
  99. package/build/esm/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
  100. package/build/esm/components/Icon/StatusIcon/StatusIcon.js +36 -0
  101. package/build/esm/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
  102. package/build/esm/components/Icon/StatusIcon/StatusIcon.scss +46 -0
  103. package/build/esm/components/Icon/StatusIcon/i18n.d.ts +6 -0
  104. package/build/esm/components/Icon/StatusIcon/i18n.js +7 -0
  105. package/build/esm/components/Icon/StatusIcon/i18n.js.map +1 -0
  106. package/build/esm/components/Icon/StatusIcon/index.d.ts +3 -0
  107. package/build/esm/components/Icon/StatusIcon/index.js +2 -0
  108. package/build/esm/components/Icon/StatusIcon/index.js.map +1 -0
  109. package/build/esm/components/Icon/StatusIcon/types.d.ts +3 -0
  110. package/build/esm/components/Icon/StatusIcon/types.js +2 -0
  111. package/build/esm/components/Icon/StatusIcon/types.js.map +1 -0
  112. package/build/esm/components/Icon/StatusIcon/utils.d.ts +3 -0
  113. package/build/esm/components/Icon/StatusIcon/utils.js +33 -0
  114. package/build/esm/components/Icon/StatusIcon/utils.js.map +1 -0
  115. package/build/esm/components/Icon/index.d.ts +2 -0
  116. package/build/esm/components/Icon/index.js +2 -0
  117. package/build/esm/components/Icon/index.js.map +1 -1
  118. package/build/esm/components/MetaEntitiesSelect/README.md +10 -0
  119. package/build/esm/components/PluginFieldsSelect/README.md +18 -0
  120. package/build/esm/components/QueueSelect/README.md +10 -0
  121. package/package.json +1 -1
  122. package/build/cjs/components/Icon/Icon.classname.d.ts +0 -1
  123. package/build/cjs/components/Icon/Icon.classname.js +0 -9
  124. package/build/cjs/components/Icon/Icon.classname.js.map +0 -1
  125. package/build/cjs/components/Icon/Icon.css +0 -33
  126. package/build/cjs/components/Icon/Icon.css.map +0 -1
  127. package/build/esm/components/Icon/Icon.classname.d.ts +0 -1
  128. package/build/esm/components/Icon/Icon.classname.js +0 -3
  129. package/build/esm/components/Icon/Icon.classname.js.map +0 -1
  130. package/build/esm/components/Icon/Icon.css +0 -33
  131. package/build/esm/components/Icon/Icon.css.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @weavix/tracker-components
2
2
 
3
- Shared UI component library for **Yandex Tracker plugins**. Provides ready-made React components for selecting queues, fields, and meta entities (projects, portfolios, goals), displaying issue-type and entity icons, and building collapsible sections — all styled to match the Tracker design system.
3
+ Shared UI component library for **Yandex Tracker plugins**. Provides ready-made React components for selecting queues, fields, and meta entities (projects, portfolios, goals), displaying issue-type, priority, status, and entity icons, and building collapsible sections — all styled to match the Tracker design system.
4
4
 
5
5
  ---
6
6
 
@@ -35,6 +35,8 @@ pnpm add @weavix/tracker-components
35
35
  | Component | Description | README |
36
36
  |---|---|---|
37
37
  | [`IssueTypeIcon`](#issuetypeicon) | Icon for a Tracker issue type (task, bug, epic, …). | [→ README](src/components/Icon/IssueTypeIcon/README.md) |
38
+ | [`PriorityIcon`](#priorityicon) | Icon for an issue priority level (blocker, critical, normal, …). Supports optional colored background. | [→ README](src/components/Icon/PriorityIcon/README.md) |
39
+ | [`StatusIcon`](#statusicon) | Icon for a Tracker issue status. Maps `IssueStatus` values to distinct icons and colors. | [→ README](src/components/Icon/StatusIcon/README.md) |
38
40
  | [`MetaEntityIcon`](#metaentityicon) | Dispatcher icon that renders the correct icon for any meta entity type (project, portfolio, goal, key result). | [→ README](src/components/Icon/MetaEntityIcon/README.md) |
39
41
  | [`ProjectIcon`](#projecticon) | Colored icon for a project entity. Color is deterministically derived from the project ID. | [→ README](src/components/Icon/ProjectIcon/README.md) |
40
42
  | [`PortfolioIcon`](#portfolioicon) | Colored icon for a portfolio entity. Color is deterministically derived from the portfolio ID. | [→ README](src/components/Icon/PortfolioIcon/README.md) |
@@ -125,6 +127,32 @@ import {IssueTypeIcon} from '@weavix/tracker-components';
125
127
 
126
128
  ---
127
129
 
130
+ ### PriorityIcon
131
+
132
+ ```tsx
133
+ import {PriorityIcon} from '@weavix/tracker-components';
134
+
135
+ <PriorityIcon priority="critical" />
136
+ <PriorityIcon priority="blocker" showBackground backgroundSize={32} />
137
+ ```
138
+
139
+ → Full documentation: [src/components/Icon/PriorityIcon/README.md](src/components/Icon/PriorityIcon/README.md)
140
+
141
+ ---
142
+
143
+ ### StatusIcon
144
+
145
+ ```tsx
146
+ import {StatusIcon} from '@weavix/tracker-components';
147
+
148
+ <StatusIcon statusType="inProgress" />
149
+ <StatusIcon statusType="done" size={24} title="Done" />
150
+ ```
151
+
152
+ → Full documentation: [src/components/Icon/StatusIcon/README.md](src/components/Icon/StatusIcon/README.md)
153
+
154
+ ---
155
+
128
156
  ### MetaEntityIcon
129
157
 
130
158
  ```tsx
@@ -15,8 +15,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
15
15
  var EntityIcon = exports.EntityIcon = /*#__PURE__*/(0, _react.memo)(function (_ref) {
16
16
  var data = _ref.data,
17
17
  className = _ref.className,
18
- _ref$id = _ref.id,
19
- id = _ref$id === void 0 ? ' ' : _ref$id,
18
+ id = _ref.id,
20
19
  type = _ref.type,
21
20
  _ref$refugeSize = _ref.refugeSize,
22
21
  refugeSize = _ref$refugeSize === void 0 ? 24 : _ref$refugeSize,
@@ -32,7 +31,7 @@ var EntityIcon = exports.EntityIcon = /*#__PURE__*/(0, _react.memo)(function (_r
32
31
  colorAlpha = _ref$colorAlpha === void 0 ? 1 : _ref$colorAlpha;
33
32
  var theme = (0, _uikit.useThemeType)();
34
33
  var randomColor = (0, _uikit.useColorGenerator)({
35
- seed: String(id),
34
+ seed: id !== undefined ? String(id) : ' ',
36
35
  theme: theme
37
36
  });
38
37
  var color = "rgba(".concat(randomColor.rgb.r, ",").concat(randomColor.rgb.g, ",").concat(randomColor.rgb.b, ",").concat(colorAlpha, ")");
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_IconRefuge","_EntityIcon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EntityIcon","exports","memo","_ref","data","className","_ref$id","id","type","_ref$refugeSize","refugeSize","_ref$size","size","_ref$alpha","alpha","_ref$withBackground","withBackground","_ref$radius","radius","_ref$colorAlpha","colorAlpha","theme","useThemeType","randomColor","useColorGenerator","seed","String","color","concat","rgb","g","b","backgroundColor","containerStyle","background","_jsx","IconRefuge","containerClassName","cnEntityIcon","displayName"],"sources":["EntityIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {memo} from 'react';\n\nimport {type IconData, useColorGenerator, useThemeType} from '@gravity-ui/uikit';\n\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnEntityIcon} from './EntityIcon.classname';\n\nimport './EntityIcon.scss';\n\nexport type EntityIconProps = {\n data: IconData;\n className?: string;\n id?: number | string;\n type?: string;\n refugeSize?: number;\n size?: number;\n alpha?: number;\n withBackground?: boolean;\n radius?: 'm' | 'l';\n colorAlpha?: number;\n};\n\nexport const EntityIcon: FC<EntityIconProps> = memo(\n ({\n data,\n className,\n id = ' ',\n type,\n refugeSize = 24,\n size = 16,\n alpha = 0.15,\n withBackground = true,\n radius = 'm',\n colorAlpha = 1,\n }) => {\n const theme = useThemeType();\n\n const randomColor = useColorGenerator({seed: String(id), theme});\n\n const color = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${colorAlpha})`;\n const backgroundColor = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${alpha})`;\n\n const containerStyle: {\n background?: string;\n color?: string;\n } = {};\n\n if (withBackground) {\n containerStyle.background = backgroundColor;\n containerStyle.color = color;\n } else {\n containerStyle.color = backgroundColor;\n }\n\n return (\n <IconRefuge\n data={data}\n containerClassName={cnEntityIcon({type, radius}, className)}\n refugeSize={refugeSize}\n size={size}\n containerStyle={containerStyle}\n />\n );\n },\n);\n\nEntityIcon.displayName = 'EntityIcon';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_IconRefuge","_EntityIcon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EntityIcon","exports","memo","_ref","data","className","id","type","_ref$refugeSize","refugeSize","_ref$size","size","_ref$alpha","alpha","_ref$withBackground","withBackground","_ref$radius","radius","_ref$colorAlpha","colorAlpha","theme","useThemeType","randomColor","useColorGenerator","seed","undefined","String","color","concat","rgb","g","b","backgroundColor","containerStyle","background","_jsx","IconRefuge","containerClassName","cnEntityIcon","displayName"],"sources":["EntityIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {memo} from 'react';\n\nimport {type IconData, useColorGenerator, useThemeType} from '@gravity-ui/uikit';\n\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnEntityIcon} from './EntityIcon.classname';\n\nimport './EntityIcon.scss';\n\nexport type EntityIconProps = {\n data: IconData;\n className?: string;\n id?: number | string;\n type?: string;\n refugeSize?: number;\n size?: number;\n alpha?: number;\n withBackground?: boolean;\n radius?: 'm' | 'l';\n colorAlpha?: number;\n};\n\nexport const EntityIcon: FC<EntityIconProps> = memo(\n ({\n data,\n className,\n id,\n type,\n refugeSize = 24,\n size = 16,\n alpha = 0.15,\n withBackground = true,\n radius = 'm',\n colorAlpha = 1,\n }) => {\n const theme = useThemeType();\n\n const randomColor = useColorGenerator({seed: id !== undefined ? String(id) : ' ', theme});\n\n const color = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${colorAlpha})`;\n const backgroundColor = `rgba(${randomColor.rgb.r},${randomColor.rgb.g},${randomColor.rgb.b},${alpha})`;\n\n const containerStyle: {\n background?: string;\n color?: string;\n } = {};\n\n if (withBackground) {\n containerStyle.background = backgroundColor;\n containerStyle.color = color;\n } else {\n containerStyle.color = backgroundColor;\n }\n\n return (\n <IconRefuge\n data={data}\n containerClassName={cnEntityIcon({type, radius}, className)}\n refugeSize={refugeSize}\n size={size}\n containerStyle={containerStyle}\n />\n );\n },\n);\n\nEntityIcon.displayName = 'EntityIcon';\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_cn","require","cnIconRefuge","exports","block"],"sources":["IconRefuge.classname.tsx"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnIconRefuge = block('icon-refuge');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,SAAK,EAAC,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_cn","require","cnIconRefuge","exports","block"],"sources":["IconRefuge.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnIconRefuge = block('icon-refuge');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,SAAK,EAAC,aAAa,CAAC","ignoreList":[]}
@@ -3,9 +3,6 @@
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  }
6
- .tpc-icon-refuge_inline {
7
- display: inline-flex;
8
- }
9
6
  .tpc-icon-refuge__hidden-label {
10
7
  position: absolute;
11
8
  overflow: hidden;
@@ -1 +1 @@
1
- {"version":3,"sources":["IconRefuge.scss"],"names":[],"mappings":"AAAA;EACI,oBAAA;EACA,mBAAA;EACA,uBAAA;AACJ;AACI;EACI,oBAAA;AACR;AAEI;EACI,kBAAA;EAEA,gBAAA;EACA,mBAAA;EAEA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EAEA,mBAAA;AAHR","file":"IconRefuge.css","sourcesContent":[".tpc-icon-refuge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n &_inline {\n display: inline-flex;\n }\n\n &__hidden-label {\n position: absolute;\n\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n\n white-space: nowrap;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["IconRefuge.scss"],"names":[],"mappings":"AAAA;EACI,oBAAA;EACA,mBAAA;EACA,uBAAA;AACJ;AACI;EACI,kBAAA;EAEA,gBAAA;EACA,mBAAA;EAEA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EAEA,mBAAA;AAFR","file":"IconRefuge.css","sourcesContent":[".tpc-icon-refuge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n &__hidden-label {\n position: absolute;\n\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n\n white-space: nowrap;\n }\n}\n"],"sourceRoot":""}
@@ -7,7 +7,6 @@ exports.IssueTypeIcon = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _uikit = require("@gravity-ui/uikit");
9
9
  var _useLocalizedString2 = require("./../../../hooks/useLocalizedString");
10
- var _Icon = require("../Icon.classname");
11
10
  var _IconRefuge = require("../IconRefuge");
12
11
  var _IssueTypeIcon = require("./IssueTypeIcon.classname");
13
12
  var _i18n = require("./i18n");
@@ -32,47 +31,28 @@ var _technicalDebt = _interopRequireDefault(require("../../../assets/icons/issue
32
31
  require("./IssueTypeIcon.css");
33
32
  var _jsxRuntime = require("react/jsx-runtime");
34
33
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
35
- var getIconData = function getIconData(issueType) {
36
- switch (issueType) {
37
- case 'bug':
38
- return _bug.default;
39
- case 'design':
40
- return _design.default;
41
- case 'epic':
42
- return _epic.default;
43
- case 'improvement':
44
- return _improvement.default;
45
- case 'incident':
46
- return _incident.default;
47
- case 'info':
48
- return _info.default;
49
- case 'newFeature':
50
- return _newFeature.default;
51
- case 'query':
52
- return _query.default;
53
- case 'refactoring':
54
- return _refactoring.default;
55
- case 'release':
56
- return _release.default;
57
- case 'research':
58
- return _research.default;
59
- case 'serviceRequest':
60
- return _serviceRequest.default;
61
- case 'story':
62
- return _story.default;
63
- case 'subBug':
64
- return _subbug.default;
65
- case 'subTask':
66
- return _subtask.default;
67
- case 'technicalDebt':
68
- return _technicalDebt.default;
69
- case 'milestone':
70
- return _milestone.default;
71
- default:
72
- return _task.default;
73
- }
34
+ var ISSUE_TYPE_ICONS = {
35
+ bug: _bug.default,
36
+ design: _design.default,
37
+ epic: _epic.default,
38
+ improvement: _improvement.default,
39
+ incident: _incident.default,
40
+ info: _info.default,
41
+ milestone: _milestone.default,
42
+ newFeature: _newFeature.default,
43
+ query: _query.default,
44
+ refactoring: _refactoring.default,
45
+ release: _release.default,
46
+ research: _research.default,
47
+ serviceRequest: _serviceRequest.default,
48
+ story: _story.default,
49
+ subBug: _subbug.default,
50
+ subTask: _subtask.default,
51
+ task: _task.default,
52
+ technicalDebt: _technicalDebt.default
74
53
  };
75
54
  var IssueTypeIcon = exports.IssueTypeIcon = function IssueTypeIcon(_ref) {
55
+ var _ISSUE_TYPE_ICONS$iss;
76
56
  var className = _ref.className,
77
57
  containerClassName = _ref.containerClassName,
78
58
  _ref$issueType = _ref.issueType,
@@ -83,20 +63,20 @@ var IssueTypeIcon = exports.IssueTypeIcon = function IssueTypeIcon(_ref) {
83
63
  var config = (0, _uikit.getConfig)();
84
64
  var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
85
65
  t = _useLocalizedString.t;
86
- var ariaLabel = title && t('type-label', {
87
- type: title
88
- });
66
+ var ariaLabel = title ? t('type-label', {
67
+ type: issueType
68
+ }) : undefined;
89
69
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconRefuge.IconRefuge, {
90
- className: (0, _Icon.cnIcon)({
91
- issueType: issueType
92
- }, [(0, _IssueTypeIcon.cnIssueTypeIcon)({
70
+ className: (0, _IssueTypeIcon.cnIssueTypeIcon)({
93
71
  type: issueType
94
- }, className)]),
72
+ }, className),
95
73
  containerClassName: containerClassName,
96
- data: getIconData(issueType),
74
+ data: (_ISSUE_TYPE_ICONS$iss = ISSUE_TYPE_ICONS[issueType]) !== null && _ISSUE_TYPE_ICONS$iss !== void 0 ? _ISSUE_TYPE_ICONS$iss : _task.default,
97
75
  refugeSize: size,
98
- "aria-label": ariaLabel
76
+ title: title,
77
+ "aria-label": ariaLabel,
78
+ "aria-hidden": !title || undefined
99
79
  });
100
80
  };
101
- IssueTypeIcon.displayName = (0, _Icon.cnIcon)();
81
+ IssueTypeIcon.displayName = 'IssueTypeIcon';
102
82
  // #sourceMappingURL=IssueTypeIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_useLocalizedString2","_Icon","_IconRefuge","_IssueTypeIcon","_i18n","_bug","_design","_epic","_improvement","_incident","_info","_milestone","_newFeature","_query","_refactoring","_release","_research","_serviceRequest","_story","_subbug","_subtask","_task","_technicalDebt","_jsxRuntime","e","__esModule","default","getIconData","issueType","bugIcon","designIcon","epicIcon","improvementIcon","incidentIcon","infoIcon","newFeatureIcon","queryIcon","refactoringIcon","releaseIcon","researchIcon","serviceRequestIcon","storyIcon","subbugIcon","subtaskIcon","technicalDebtIcon","milestoneIcon","taskIcon","IssueTypeIcon","exports","_ref","className","containerClassName","_ref$issueType","_ref$size","size","title","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","type","_jsx","IconRefuge","cnIcon","cnIssueTypeIcon","data","refugeSize","displayName"],"sources":["IssueTypeIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnIcon} from '../Icon.classname';\nimport type {IconRefugeProps} from '../IconRefuge';\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnIssueTypeIcon} from './IssueTypeIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {IssueType} from './types';\n\nimport bugIcon from '../../../../assets/icons/issue-type/bug.svg';\nimport designIcon from '../../../../assets/icons/issue-type/design.svg';\nimport epicIcon from '../../../../assets/icons/issue-type/epic.svg';\nimport improvementIcon from '../../../../assets/icons/issue-type/improvement.svg';\nimport incidentIcon from '../../../../assets/icons/issue-type/incident.svg';\nimport infoIcon from '../../../../assets/icons/issue-type/info.svg';\nimport milestoneIcon from '../../../../assets/icons/issue-type/milestone.svg';\nimport newFeatureIcon from '../../../../assets/icons/issue-type/new-feature.svg';\nimport queryIcon from '../../../../assets/icons/issue-type/query.svg';\nimport refactoringIcon from '../../../../assets/icons/issue-type/refactoring.svg';\nimport releaseIcon from '../../../../assets/icons/issue-type/release.svg';\nimport researchIcon from '../../../../assets/icons/issue-type/research.svg';\nimport serviceRequestIcon from '../../../../assets/icons/issue-type/service-request.svg';\nimport storyIcon from '../../../../assets/icons/issue-type/story.svg';\nimport subbugIcon from '../../../../assets/icons/issue-type/subbug.svg';\nimport subtaskIcon from '../../../../assets/icons/issue-type/subtask.svg';\nimport taskIcon from '../../../../assets/icons/issue-type/task.svg';\nimport technicalDebtIcon from '../../../../assets/icons/issue-type/technical-debt.svg';\n\nimport './IssueTypeIcon.scss';\n\nexport type IssueTypeIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n className?: string;\n size?: number;\n issueType?: IssueType;\n};\n\nconst getIconData = (issueType: string) => {\n switch (issueType) {\n case 'bug':\n return bugIcon;\n case 'design':\n return designIcon;\n case 'epic':\n return epicIcon;\n case 'improvement':\n return improvementIcon;\n case 'incident':\n return incidentIcon;\n case 'info':\n return infoIcon;\n case 'newFeature':\n return newFeatureIcon;\n case 'query':\n return queryIcon;\n case 'refactoring':\n return refactoringIcon;\n case 'release':\n return releaseIcon;\n case 'research':\n return researchIcon;\n case 'serviceRequest':\n return serviceRequestIcon;\n case 'story':\n return storyIcon;\n case 'subBug':\n return subbugIcon;\n case 'subTask':\n return subtaskIcon;\n case 'technicalDebt':\n return technicalDebtIcon;\n case 'milestone':\n return milestoneIcon;\n\n default:\n return taskIcon;\n }\n};\n\nexport const IssueTypeIcon: FC<IssueTypeIconProps> = ({\n className,\n containerClassName,\n issueType = 'task',\n size = 16,\n title,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title && t('type-label', {type: title});\n\n return (\n <IconRefuge\n className={cnIcon({issueType}, [cnIssueTypeIcon({type: issueType}, className)])}\n containerClassName={containerClassName}\n data={getIconData(issueType)}\n refugeSize={size}\n aria-label={ariaLabel}\n />\n );\n};\n\nIssueTypeIcon.displayName = cnIcon();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_useLocalizedString2","_IconRefuge","_IssueTypeIcon","_i18n","_bug","_design","_epic","_improvement","_incident","_info","_milestone","_newFeature","_query","_refactoring","_release","_research","_serviceRequest","_story","_subbug","_subtask","_task","_technicalDebt","_jsxRuntime","e","__esModule","default","ISSUE_TYPE_ICONS","bug","bugIcon","design","designIcon","epic","epicIcon","improvement","improvementIcon","incident","incidentIcon","info","infoIcon","milestone","milestoneIcon","newFeature","newFeatureIcon","query","queryIcon","refactoring","refactoringIcon","release","releaseIcon","research","researchIcon","serviceRequest","serviceRequestIcon","story","storyIcon","subBug","subbugIcon","subTask","subtaskIcon","task","taskIcon","technicalDebt","technicalDebtIcon","IssueTypeIcon","exports","_ref","_ISSUE_TYPE_ICONS$iss","className","containerClassName","_ref$issueType","issueType","_ref$size","size","title","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","type","undefined","_jsx","IconRefuge","cnIssueTypeIcon","data","refugeSize","displayName"],"sources":["IssueTypeIcon.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React from 'react';\n\nimport {type IconData, getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport type {IconRefugeProps} from '../IconRefuge';\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnIssueTypeIcon} from './IssueTypeIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {IssueType} from './types';\n\nimport bugIcon from '../../../../assets/icons/issue-type/bug.svg';\nimport designIcon from '../../../../assets/icons/issue-type/design.svg';\nimport epicIcon from '../../../../assets/icons/issue-type/epic.svg';\nimport improvementIcon from '../../../../assets/icons/issue-type/improvement.svg';\nimport incidentIcon from '../../../../assets/icons/issue-type/incident.svg';\nimport infoIcon from '../../../../assets/icons/issue-type/info.svg';\nimport milestoneIcon from '../../../../assets/icons/issue-type/milestone.svg';\nimport newFeatureIcon from '../../../../assets/icons/issue-type/new-feature.svg';\nimport queryIcon from '../../../../assets/icons/issue-type/query.svg';\nimport refactoringIcon from '../../../../assets/icons/issue-type/refactoring.svg';\nimport releaseIcon from '../../../../assets/icons/issue-type/release.svg';\nimport researchIcon from '../../../../assets/icons/issue-type/research.svg';\nimport serviceRequestIcon from '../../../../assets/icons/issue-type/service-request.svg';\nimport storyIcon from '../../../../assets/icons/issue-type/story.svg';\nimport subbugIcon from '../../../../assets/icons/issue-type/subbug.svg';\nimport subtaskIcon from '../../../../assets/icons/issue-type/subtask.svg';\nimport taskIcon from '../../../../assets/icons/issue-type/task.svg';\nimport technicalDebtIcon from '../../../../assets/icons/issue-type/technical-debt.svg';\n\nimport './IssueTypeIcon.scss';\n\nexport type IssueTypeIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n className?: string;\n size?: number;\n issueType?: IssueType;\n};\n\nconst ISSUE_TYPE_ICONS: Record<IssueType, IconData> = {\n bug: bugIcon,\n design: designIcon,\n epic: epicIcon,\n improvement: improvementIcon,\n incident: incidentIcon,\n info: infoIcon,\n milestone: milestoneIcon,\n newFeature: newFeatureIcon,\n query: queryIcon,\n refactoring: refactoringIcon,\n release: releaseIcon,\n research: researchIcon,\n serviceRequest: serviceRequestIcon,\n story: storyIcon,\n subBug: subbugIcon,\n subTask: subtaskIcon,\n task: taskIcon,\n technicalDebt: technicalDebtIcon,\n};\n\nexport const IssueTypeIcon: FC<IssueTypeIconProps> = ({\n className,\n containerClassName,\n issueType = 'task',\n size = 16,\n title,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('type-label', {type: issueType}) : undefined;\n\n return (\n <IconRefuge\n className={cnIssueTypeIcon({type: issueType}, className)}\n containerClassName={containerClassName}\n data={ISSUE_TYPE_ICONS[issueType] ?? taskIcon}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n};\n\nIssueTypeIcon.displayName = 'IssueTypeIcon';\n"],"mappings":"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","ignoreList":[]}
@@ -52,6 +52,19 @@ import {IssueTypeIcon} from '@weavix/tracker-components';
52
52
  * Additional CSS class applied to the root element.
53
53
  */
54
54
  className?: string;
55
+
56
+ /**
57
+ * Additional CSS class applied to the outer container element.
58
+ */
59
+ containerClassName?: string;
60
+
61
+ /**
62
+ * Human-readable display name for the issue type (e.g. `"Bug"`, `"Story"`).
63
+ * When provided, an accessible label `"Type: <issueType>"` is rendered for
64
+ * screen readers and `title` is forwarded to the icon container.
65
+ * When omitted, the icon is treated as decorative (`aria-hidden`).
66
+ */
67
+ title?: string;
55
68
  }
56
69
  ```
57
70
  <!-- props:end -->
@@ -114,9 +127,38 @@ export const IssueTypeGallery = () => (
114
127
  );
115
128
  ```
116
129
 
130
+ ### From Tracker API
131
+
132
+ Requires the `"tracker:issuetypes:read"` permission in your plugin's `manifest.json`:
133
+
134
+ ```json
135
+ {
136
+ "permissions": {
137
+ "data": ["tracker:issuetypes:read"]
138
+ }
139
+ }
140
+ ```
141
+
142
+ ```tsx
143
+ import {IssueTypeIcon} from '@weavix/tracker-components';
144
+
145
+ const issueType = await trackerApi.v3.get['/issues/{id}/{field}']({
146
+ pathParams: {
147
+ id: 'ISSUEKEY-1',
148
+ field: 'type',
149
+ },
150
+ });
151
+
152
+ <IssueTypeIcon
153
+ issueType={issueType.data.key}
154
+ title={issueType.data.display}
155
+ />
156
+ ```
157
+
117
158
  ---
118
159
 
119
160
  ## Notes
120
161
 
121
162
  - The `issueType` value is matched case-sensitively against the known keys. Values returned by the Tracker API (e.g. `"newFeature"`, `"subTask"`) match directly without transformation.
122
163
  - Passing an unknown string does not throw — the component renders a generic fallback icon.
164
+ - When `title` is omitted the icon is treated as decorative and gets `aria-hidden="true"`. Pass `title` (e.g. `type.display` from the API) to make the icon accessible.
@@ -76,6 +76,16 @@ import {MetaEntityIcon} from '@weavix/tracker-components';
76
76
 
77
77
  ### Rendering from a Tracker API response
78
78
 
79
+ Requires the `"tracker:entities:write"` permission in your plugin's `manifest.json`:
80
+
81
+ ```json
82
+ {
83
+ "permissions": {
84
+ "data": ["tracker:entities:write"]
85
+ }
86
+ }
87
+ ```
88
+
79
89
  `MetaEntityIcon` accepts the shape returned directly by the Tracker entities search endpoint, so you can pass `result.data[i]` without any mapping:
80
90
 
81
91
  ```tsx
@@ -3,4 +3,7 @@ import type { EntityIconProps } from '../EntityIcon';
3
3
  export type PortfolioIconProps = {
4
4
  portfolioId: string;
5
5
  } & Omit<EntityIconProps, 'data' | 'id' | 'alpha'>;
6
- export declare const PortfolioIcon: ({ portfolioId, ...props }: PortfolioIconProps) => React.JSX.Element;
6
+ export declare const PortfolioIcon: {
7
+ ({ portfolioId, ...props }: PortfolioIconProps): React.JSX.Element;
8
+ displayName: string;
9
+ };
@@ -23,4 +23,5 @@ var PortfolioIcon = exports.PortfolioIcon = function PortfolioIcon(_ref) {
23
23
  withBackground: false
24
24
  }, props));
25
25
  };
26
+ PortfolioIcon.displayName = 'PortfolioIcon';
26
27
  // #sourceMappingURL=PortfolioIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_EntityIcon","_portfolio","_jsxRuntime","e","__esModule","default","PortfolioIcon","exports","_ref","portfolioId","props","_objectWithoutProperties","_excluded","_jsx","EntityIcon","_objectSpread","data","portfolioIcon","id","type","alpha","withBackground"],"sources":["PortfolioIcon.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {EntityIconProps} from '../EntityIcon';\nimport {EntityIcon} from '../EntityIcon';\n\nimport portfolioIcon from '../../../../assets/icons/portfolio.svg';\n\nexport type PortfolioIconProps = {portfolioId: string} & Omit<\n EntityIconProps,\n 'data' | 'id' | 'alpha'\n>;\n\nexport const PortfolioIcon = ({portfolioId, ...props}: PortfolioIconProps) => (\n <EntityIcon\n data={portfolioIcon}\n id={portfolioId}\n type=\"portfolio\"\n alpha={0.5}\n withBackground={false}\n {...props}\n />\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAmE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAO5D,IAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,IAAA;EAAA,IAAKC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAKC,KAAK,OAAAC,iCAAA,EAAAH,IAAA,EAAAI,SAAA;EAAA,oBAChD,IAAAC,eAAA,EAACC,sBAAU,MAAAC,sBAAA;IACPC,IAAI,EAAEC,kBAAc;IACpBC,EAAE,EAAET,WAAY;IAChBU,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAE,GAAI;IACXC,cAAc,EAAE;EAAM,GAClBX,KAAK,CACZ,CAAC;AAAA,CACL","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_EntityIcon","_portfolio","_jsxRuntime","e","__esModule","default","PortfolioIcon","exports","_ref","portfolioId","props","_objectWithoutProperties","_excluded","_jsx","EntityIcon","_objectSpread","data","portfolioIcon","id","type","alpha","withBackground","displayName"],"sources":["PortfolioIcon.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {EntityIconProps} from '../EntityIcon';\nimport {EntityIcon} from '../EntityIcon';\n\nimport portfolioIcon from '../../../../assets/icons/portfolio.svg';\n\nexport type PortfolioIconProps = {portfolioId: string} & Omit<\n EntityIconProps,\n 'data' | 'id' | 'alpha'\n>;\n\nexport const PortfolioIcon = ({portfolioId, ...props}: PortfolioIconProps) => (\n <EntityIcon\n data={portfolioIcon}\n id={portfolioId}\n type=\"portfolio\"\n alpha={0.5}\n withBackground={false}\n {...props}\n />\n);\n\nPortfolioIcon.displayName = 'PortfolioIcon';\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAmE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAO5D,IAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,IAAA;EAAA,IAAKC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAKC,KAAK,OAAAC,iCAAA,EAAAH,IAAA,EAAAI,SAAA;EAAA,oBAChD,IAAAC,eAAA,EAACC,sBAAU,MAAAC,sBAAA;IACPC,IAAI,EAAEC,kBAAc;IACpBC,EAAE,EAAET,WAAY;IAChBU,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAE,GAAI;IACXC,cAAc,EAAE;EAAM,GAClBX,KAAK,CACZ,CAAC;AAAA,CACL;AAEDJ,aAAa,CAACgB,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -47,10 +47,17 @@ import {PortfolioIcon} from '@weavix/tracker-components';
47
47
 
48
48
  /**
49
49
  * Whether to render a colored background behind the icon.
50
+ * `PortfolioIcon` defaults this to `false`; `EntityIcon`'s own default is `true`.
50
51
  * @default false
51
52
  */
52
53
  withBackground?: boolean;
53
54
 
55
+ /**
56
+ * Alpha (opacity) of the icon foreground color, in the range 0–1.
57
+ * @default 1
58
+ */
59
+ colorAlpha?: number;
60
+
54
61
  /**
55
62
  * Border radius variant of the icon container.
56
63
  * @default 'm'
@@ -0,0 +1 @@
1
+ export declare const cnPriorityIcon: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cnPriorityIcon = void 0;
7
+ var _cn = require("./../../cn");
8
+ var cnPriorityIcon = exports.cnPriorityIcon = (0, _cn.block)('priority-icon');
9
+ // #sourceMappingURL=PriorityIcon.classname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cn","require","cnPriorityIcon","exports","block"],"sources":["PriorityIcon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnPriorityIcon = block('priority-icon');\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEO,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,SAAK,EAAC,eAAe,CAAC","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ .tpc-priority-icon_priority_blocker {
2
+ color: var(--g-color-text-danger);
3
+ }
4
+ .tpc-priority-icon_priority_critical {
5
+ color: var(--g-color-text-warning-heavy);
6
+ }
7
+ .tpc-priority-icon_priority_critical.tpc-priority-icon_metaEntity {
8
+ color: var(--g-color-text-danger-heavy);
9
+ }
10
+ .tpc-priority-icon_priority_important {
11
+ color: var(--g-color-text-warning);
12
+ }
13
+ .tpc-priority-icon_priority_trivial {
14
+ color: var(--g-color-text-hint);
15
+ }
16
+ .tpc-priority-icon_priority_normal, .tpc-priority-icon_priority_minor, .tpc-priority-icon_priority_minimal {
17
+ color: var(--g-color-text-secondary);
18
+ }
19
+ .tpc-priority-icon__background {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ width: 100%;
24
+ height: 100%;
25
+ border-radius: 50%;
26
+ }
27
+ .tpc-priority-icon__background_priority_blocker {
28
+ background: var(--g-color-base-danger-light);
29
+ }
30
+ .tpc-priority-icon__background_priority_critical {
31
+ background: var(--g-color-base-warning-light);
32
+ }
33
+ .tpc-priority-icon__background_priority_critical.tpc-priority-icon-background_metaEntity {
34
+ background: var(--g-color-base-danger-light);
35
+ }
36
+ .tpc-priority-icon__background_priority_important {
37
+ background: var(--g-color-base-warning-light);
38
+ }
39
+ .tpc-priority-icon__background_priority_trivial {
40
+ background: var(--g-color-base-neutral-light);
41
+ }
42
+ .tpc-priority-icon__background_priority_normal, .tpc-priority-icon__background_priority_minor, .tpc-priority-icon__background_priority_minimal {
43
+ background: var(--g-color-base-neutral-light);
44
+ }
45
+ /*# sourceMappingURL=PriorityIcon.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PriorityIcon.scss"],"names":[],"mappings":"AACI;EACI,iCAAA;AAAR;AAGI;EACI,wCAAA;AADR;AAGQ;EACI,uCAAA;AADZ;AAKI;EACI,kCAAA;AAHR;AAMI;EACI,+BAAA;AAJR;AAOI;EAGI,oCAAA;AAPR;AAUI;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;EAEA,WAAA;EACA,YAAA;EAEA,kBAAA;AAVR;AAaI;EACI,4CAAA;AAXR;AAcI;EACI,6CAAA;AAZR;AAcQ;EACI,4CAAA;AAZZ;AAgBI;EACI,6CAAA;AAdR;AAiBI;EACI,6CAAA;AAfR;AAkBI;EAGI,6CAAA;AAlBR","file":"PriorityIcon.css","sourcesContent":[".tpc-priority-icon {\n &_priority_blocker {\n color: var(--g-color-text-danger);\n }\n\n &_priority_critical {\n color: var(--g-color-text-warning-heavy);\n\n &.tpc-priority-icon_metaEntity {\n color: var(--g-color-text-danger-heavy);\n }\n }\n\n &_priority_important {\n color: var(--g-color-text-warning);\n }\n\n &_priority_trivial {\n color: var(--g-color-text-hint);\n }\n\n &_priority_normal,\n &_priority_minor,\n &_priority_minimal {\n color: var(--g-color-text-secondary);\n }\n\n &__background {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 100%;\n\n border-radius: 50%;\n }\n\n &__background_priority_blocker {\n background: var(--g-color-base-danger-light);\n }\n\n &__background_priority_critical {\n background: var(--g-color-base-warning-light);\n\n &.tpc-priority-icon-background_metaEntity {\n background: var(--g-color-base-danger-light);\n }\n }\n\n &__background_priority_important {\n background: var(--g-color-base-warning-light);\n }\n\n &__background_priority_trivial {\n background: var(--g-color-base-neutral-light);\n }\n\n &__background_priority_normal,\n &__background_priority_minor,\n &__background_priority_minimal {\n background: var(--g-color-base-neutral-light);\n }\n}\n"],"sourceRoot":""}
@@ -0,0 +1,13 @@
1
+ import { type FC } from 'react';
2
+ import type { IconRefugeProps } from '../IconRefuge';
3
+ import type { Priority } from './types';
4
+ import './PriorityIcon.scss';
5
+ export type PriorityIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {
6
+ className?: string;
7
+ size?: number;
8
+ priority?: Priority;
9
+ showBackground?: boolean;
10
+ backgroundSize?: number;
11
+ metaEntity?: boolean;
12
+ };
13
+ export declare const PriorityIcon: FC<PriorityIconProps>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PriorityIcon = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _icons = require("@gravity-ui/icons");
9
+ var _uikit = require("@gravity-ui/uikit");
10
+ var _useLocalizedString2 = require("./../../../hooks/useLocalizedString");
11
+ var _IconRefuge = require("../IconRefuge");
12
+ var _PriorityIcon = require("./PriorityIcon.classname");
13
+ var _i18n = require("./i18n");
14
+ require("./PriorityIcon.css");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ var getIconData = function getIconData(priority, metaEntity) {
18
+ switch (priority) {
19
+ case 'blocker':
20
+ return _icons.CircleExclamation;
21
+ case 'critical':
22
+ return metaEntity ? _icons.CircleExclamation : _icons.ChevronsUpWide;
23
+ case 'minor':
24
+ return _icons.ChevronDownWide;
25
+ case 'trivial':
26
+ case 'minimal':
27
+ return _icons.ChevronsDownWide;
28
+ case 'important':
29
+ return _icons.ChevronUpWide;
30
+ default:
31
+ return _icons.Equal;
32
+ }
33
+ };
34
+ var PriorityIcon = exports.PriorityIcon = function PriorityIcon(_ref) {
35
+ var className = _ref.className,
36
+ containerClassName = _ref.containerClassName,
37
+ _ref$priority = _ref.priority,
38
+ priority = _ref$priority === void 0 ? 'normal' : _ref$priority,
39
+ _ref$size = _ref.size,
40
+ size = _ref$size === void 0 ? 16 : _ref$size,
41
+ title = _ref.title,
42
+ showBackground = _ref.showBackground,
43
+ backgroundSize = _ref.backgroundSize,
44
+ metaEntity = _ref.metaEntity;
45
+ var config = (0, _uikit.getConfig)();
46
+ var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
47
+ t = _useLocalizedString.t;
48
+ var ariaLabel = title ? t('priority-label', {
49
+ priority: title
50
+ }) : undefined;
51
+ var iconNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconRefuge.IconRefuge, {
52
+ containerClassName: containerClassName,
53
+ className: (0, _PriorityIcon.cnPriorityIcon)({
54
+ priority: priority,
55
+ metaEntity: metaEntity
56
+ }, className),
57
+ data: getIconData(priority, metaEntity),
58
+ refugeSize: size,
59
+ title: title,
60
+ "aria-label": ariaLabel,
61
+ "aria-hidden": !title || undefined
62
+ });
63
+ if (!showBackground) {
64
+ return iconNode;
65
+ }
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
67
+ className: (0, _PriorityIcon.cnPriorityIcon)('background', {
68
+ priority: priority,
69
+ metaEntity: metaEntity
70
+ }),
71
+ style: backgroundSize ? {
72
+ width: backgroundSize,
73
+ height: backgroundSize,
74
+ minWidth: backgroundSize
75
+ } : undefined,
76
+ children: iconNode
77
+ });
78
+ };
79
+ PriorityIcon.displayName = 'PriorityIcon';
80
+ // #sourceMappingURL=PriorityIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_icons","_uikit","_useLocalizedString2","_IconRefuge","_PriorityIcon","_i18n","_jsxRuntime","e","__esModule","default","getIconData","priority","metaEntity","CircleExclamation","ChevronsUpWide","ChevronDownWide","ChevronsDownWide","ChevronUpWide","Equal","PriorityIcon","exports","_ref","className","containerClassName","_ref$priority","_ref$size","size","title","showBackground","backgroundSize","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","undefined","iconNode","_jsx","IconRefuge","cnPriorityIcon","data","refugeSize","style","width","height","minWidth","children","displayName"],"sources":["PriorityIcon.tsx"],"sourcesContent":["import React, {type FC} from 'react';\n\nimport {\n ChevronDownWide,\n ChevronUpWide,\n ChevronsDownWide,\n ChevronsUpWide,\n CircleExclamation,\n Equal,\n} from '@gravity-ui/icons';\nimport {type IconData, getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport type {IconRefugeProps} from '../IconRefuge';\nimport {IconRefuge} from '../IconRefuge';\n\nimport {cnPriorityIcon} from './PriorityIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {Priority} from './types';\n\nimport './PriorityIcon.scss';\n\nexport type PriorityIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n className?: string;\n size?: number;\n priority?: Priority;\n showBackground?: boolean;\n backgroundSize?: number;\n metaEntity?: boolean;\n};\n\nconst getIconData = (priority: Priority, metaEntity?: boolean): IconData => {\n switch (priority) {\n case 'blocker':\n return CircleExclamation;\n case 'critical':\n return metaEntity ? CircleExclamation : ChevronsUpWide;\n case 'minor':\n return ChevronDownWide;\n case 'trivial':\n case 'minimal':\n return ChevronsDownWide;\n case 'important':\n return ChevronUpWide;\n default:\n return Equal;\n }\n};\n\nexport const PriorityIcon: FC<PriorityIconProps> = ({\n className,\n containerClassName,\n priority = 'normal',\n size = 16,\n title,\n showBackground,\n backgroundSize,\n metaEntity,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('priority-label', {priority: title}) : undefined;\n\n const iconNode = (\n <IconRefuge\n containerClassName={containerClassName}\n className={cnPriorityIcon({priority, metaEntity}, className)}\n data={getIconData(priority, metaEntity)}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n\n if (!showBackground) {\n return iconNode;\n }\n\n return (\n <div\n className={cnPriorityIcon('background', {priority, metaEntity})}\n style={\n backgroundSize\n ? {\n width: backgroundSize,\n height: backgroundSize,\n minWidth: backgroundSize,\n }\n : undefined\n }\n >\n {iconNode}\n </div>\n );\n};\n\nPriorityIcon.displayName = 'PriorityIcon';\n"],"mappings":"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","ignoreList":[]}