@weavix/tracker-components 0.1.2 → 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 (94) hide show
  1. package/README.md +29 -1
  2. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
  3. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js +9 -0
  4. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
  5. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
  6. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
  7. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
  8. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js +80 -0
  9. package/build/cjs/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
  10. package/build/cjs/components/Icon/PriorityIcon/README.md +172 -0
  11. package/build/cjs/components/Icon/PriorityIcon/i18n.d.ts +6 -0
  12. package/build/cjs/components/Icon/PriorityIcon/i18n.js +13 -0
  13. package/build/cjs/components/Icon/PriorityIcon/i18n.js.map +1 -0
  14. package/build/cjs/components/Icon/PriorityIcon/index.d.ts +3 -0
  15. package/build/cjs/components/Icon/PriorityIcon/index.js +13 -0
  16. package/build/cjs/components/Icon/PriorityIcon/index.js.map +1 -0
  17. package/build/cjs/components/Icon/PriorityIcon/types.d.ts +1 -0
  18. package/build/cjs/components/Icon/PriorityIcon/types.js +6 -0
  19. package/build/cjs/components/Icon/PriorityIcon/types.js.map +1 -0
  20. package/build/cjs/components/Icon/StatusIcon/README.md +128 -0
  21. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
  22. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js +9 -0
  23. package/build/cjs/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
  24. package/build/cjs/components/Icon/StatusIcon/StatusIcon.css +28 -0
  25. package/build/cjs/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
  26. package/build/cjs/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
  27. package/build/cjs/components/Icon/StatusIcon/StatusIcon.js +43 -0
  28. package/build/cjs/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
  29. package/build/cjs/components/Icon/StatusIcon/i18n.d.ts +6 -0
  30. package/build/cjs/components/Icon/StatusIcon/i18n.js +13 -0
  31. package/build/cjs/components/Icon/StatusIcon/i18n.js.map +1 -0
  32. package/build/cjs/components/Icon/StatusIcon/index.d.ts +3 -0
  33. package/build/cjs/components/Icon/StatusIcon/index.js +13 -0
  34. package/build/cjs/components/Icon/StatusIcon/index.js.map +1 -0
  35. package/build/cjs/components/Icon/StatusIcon/types.d.ts +3 -0
  36. package/build/cjs/components/Icon/StatusIcon/types.js +6 -0
  37. package/build/cjs/components/Icon/StatusIcon/types.js.map +1 -0
  38. package/build/cjs/components/Icon/StatusIcon/utils.d.ts +3 -0
  39. package/build/cjs/components/Icon/StatusIcon/utils.js +39 -0
  40. package/build/cjs/components/Icon/StatusIcon/utils.js.map +1 -0
  41. package/build/cjs/components/Icon/index.d.ts +2 -0
  42. package/build/cjs/components/Icon/index.js +22 -0
  43. package/build/cjs/components/Icon/index.js.map +1 -1
  44. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.d.ts +1 -0
  45. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js +3 -0
  46. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.classname.js.map +1 -0
  47. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css +45 -0
  48. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.css.map +1 -0
  49. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.d.ts +13 -0
  50. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js +73 -0
  51. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.js.map +1 -0
  52. package/build/esm/components/Icon/PriorityIcon/PriorityIcon.scss +64 -0
  53. package/build/esm/components/Icon/PriorityIcon/README.md +172 -0
  54. package/build/esm/components/Icon/PriorityIcon/i18n.d.ts +6 -0
  55. package/build/esm/components/Icon/PriorityIcon/i18n.js +7 -0
  56. package/build/esm/components/Icon/PriorityIcon/i18n.js.map +1 -0
  57. package/build/esm/components/Icon/PriorityIcon/index.d.ts +3 -0
  58. package/build/esm/components/Icon/PriorityIcon/index.js +2 -0
  59. package/build/esm/components/Icon/PriorityIcon/index.js.map +1 -0
  60. package/build/esm/components/Icon/PriorityIcon/types.d.ts +1 -0
  61. package/build/esm/components/Icon/PriorityIcon/types.js +2 -0
  62. package/build/esm/components/Icon/PriorityIcon/types.js.map +1 -0
  63. package/build/esm/components/Icon/StatusIcon/README.md +128 -0
  64. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.d.ts +1 -0
  65. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js +3 -0
  66. package/build/esm/components/Icon/StatusIcon/StatusIcon.classname.js.map +1 -0
  67. package/build/esm/components/Icon/StatusIcon/StatusIcon.css +28 -0
  68. package/build/esm/components/Icon/StatusIcon/StatusIcon.css.map +1 -0
  69. package/build/esm/components/Icon/StatusIcon/StatusIcon.d.ts +10 -0
  70. package/build/esm/components/Icon/StatusIcon/StatusIcon.js +36 -0
  71. package/build/esm/components/Icon/StatusIcon/StatusIcon.js.map +1 -0
  72. package/build/esm/components/Icon/StatusIcon/StatusIcon.scss +46 -0
  73. package/build/esm/components/Icon/StatusIcon/i18n.d.ts +6 -0
  74. package/build/esm/components/Icon/StatusIcon/i18n.js +7 -0
  75. package/build/esm/components/Icon/StatusIcon/i18n.js.map +1 -0
  76. package/build/esm/components/Icon/StatusIcon/index.d.ts +3 -0
  77. package/build/esm/components/Icon/StatusIcon/index.js +2 -0
  78. package/build/esm/components/Icon/StatusIcon/index.js.map +1 -0
  79. package/build/esm/components/Icon/StatusIcon/types.d.ts +3 -0
  80. package/build/esm/components/Icon/StatusIcon/types.js +2 -0
  81. package/build/esm/components/Icon/StatusIcon/types.js.map +1 -0
  82. package/build/esm/components/Icon/StatusIcon/utils.d.ts +3 -0
  83. package/build/esm/components/Icon/StatusIcon/utils.js +33 -0
  84. package/build/esm/components/Icon/StatusIcon/utils.js.map +1 -0
  85. package/build/esm/components/Icon/index.d.ts +2 -0
  86. package/build/esm/components/Icon/index.js +2 -0
  87. package/build/esm/components/Icon/index.js.map +1 -1
  88. package/package.json +1 -1
  89. package/build/cjs/components/Icon/Icon.classname.d.ts +0 -1
  90. package/build/cjs/components/Icon/Icon.classname.js +0 -9
  91. package/build/cjs/components/Icon/Icon.classname.js.map +0 -1
  92. package/build/esm/components/Icon/Icon.classname.d.ts +0 -1
  93. package/build/esm/components/Icon/Icon.classname.js +0 -3
  94. package/build/esm/components/Icon/Icon.classname.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StatusIcon = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _uikit = require("@gravity-ui/uikit");
9
+ var _useLocalizedString2 = require("./../../../hooks/useLocalizedString");
10
+ var _IconRefuge = require("../IconRefuge");
11
+ var _StatusIcon = require("./StatusIcon.classname");
12
+ var _i18n = require("./i18n");
13
+ var _utils = require("./utils");
14
+ require("./StatusIcon.css");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ var StatusIcon = exports.StatusIcon = function StatusIcon(_ref) {
18
+ var className = _ref.className,
19
+ containerClassName = _ref.containerClassName,
20
+ statusType = _ref.statusType,
21
+ _ref$size = _ref.size,
22
+ size = _ref$size === void 0 ? 16 : _ref$size,
23
+ title = _ref.title;
24
+ var config = (0, _uikit.getConfig)();
25
+ var _useLocalizedString = (0, _useLocalizedString2.useLocalizedString)(_i18n.defaultMessages, config.lang),
26
+ t = _useLocalizedString.t;
27
+ var ariaLabel = title ? t('status-label', {
28
+ status: title
29
+ }) : undefined;
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconRefuge.IconRefuge, {
31
+ containerClassName: containerClassName,
32
+ className: (0, _StatusIcon.cnStatusIcon)({
33
+ status: statusType
34
+ }, className),
35
+ data: (0, _utils.getSvgForStatusType)(statusType),
36
+ refugeSize: size,
37
+ title: title,
38
+ "aria-label": ariaLabel,
39
+ "aria-hidden": !title || undefined
40
+ });
41
+ };
42
+ StatusIcon.displayName = 'StatusIcon';
43
+ // #sourceMappingURL=StatusIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_useLocalizedString2","_IconRefuge","_StatusIcon","_i18n","_utils","_jsxRuntime","e","__esModule","default","StatusIcon","exports","_ref","className","containerClassName","statusType","_ref$size","size","title","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","t","ariaLabel","status","undefined","_jsx","IconRefuge","cnStatusIcon","data","getSvgForStatusType","refugeSize","displayName"],"sources":["StatusIcon.tsx"],"sourcesContent":["import React, {type FC} from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {IconRefuge, type IconRefugeProps} from '../IconRefuge';\n\nimport {cnStatusIcon} from './StatusIcon.classname';\nimport {defaultMessages} from './i18n';\nimport type {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\nimport {getSvgForStatusType} from './utils';\n\nimport './StatusIcon.scss';\n\nexport type StatusIconProps = Partial<Pick<IconRefugeProps, 'containerClassName' | 'title'>> & {\n statusType?: IssueStatus | MetaEntityStatus | GoalStatus;\n size?: number;\n className?: string;\n};\n\nexport const StatusIcon: FC<StatusIconProps> = ({\n className,\n containerClassName,\n statusType,\n size = 16,\n title,\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const ariaLabel = title ? t('status-label', {status: title}) : undefined;\n\n return (\n <IconRefuge\n containerClassName={containerClassName}\n className={cnStatusIcon({status: statusType}, className)}\n data={getSvgForStatusType(statusType)}\n refugeSize={size}\n title={title}\n aria-label={ariaLabel}\n aria-hidden={!title || undefined}\n />\n );\n};\n\nStatusIcon.displayName = 'StatusIcon';\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AAEAA,OAAA;AAA2B,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQpB,IAAMG,UAA+B,GAAAC,OAAA,CAAAD,UAAA,GAAG,SAAlCA,UAA+BA,CAAAE,IAAA,EAMtC;EAAA,IALFC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAClBC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAAC,SAAA,GAAAJ,IAAA,CACVK,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IACTE,KAAK,GAAAN,IAAA,CAALM,KAAK;EAEL,IAAMC,MAAM,GAAG,IAAAC,gBAAS,EAAC,CAAC;EAC1B,IAAAC,mBAAA,GAAY,IAAAC,uCAAkB,EAACC,qBAAe,EAAEJ,MAAM,CAACK,IAAI,CAAC;IAArDC,CAAC,GAAAJ,mBAAA,CAADI,CAAC;EACR,IAAMC,SAAS,GAAGR,KAAK,GAAGO,CAAC,CAAC,cAAc,EAAE;IAACE,MAAM,EAAET;EAAK,CAAC,CAAC,GAAGU,SAAS;EAExE,oBACI,IAAAC,eAAA,EAACC,sBAAU;IACPhB,kBAAkB,EAAEA,kBAAmB;IACvCD,SAAS,EAAE,IAAAkB,wBAAY,EAAC;MAACJ,MAAM,EAAEZ;IAAU,CAAC,EAAEF,SAAS,CAAE;IACzDmB,IAAI,EAAE,IAAAC,0BAAmB,EAAClB,UAAU,CAAE;IACtCmB,UAAU,EAAEjB,IAAK;IACjBC,KAAK,EAAEA,KAAM;IACb,cAAYQ,SAAU;IACtB,eAAa,CAACR,KAAK,IAAIU;EAAU,CACpC,CAAC;AAEV,CAAC;AAEDlB,UAAU,CAACyB,WAAW,GAAG,YAAY","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export declare const defaultMessages: {
2
+ 'status-label': {
3
+ ru: string;
4
+ en: string;
5
+ };
6
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultMessages = void 0;
7
+ var defaultMessages = exports.defaultMessages = {
8
+ 'status-label': {
9
+ ru: 'Статус: {status}',
10
+ en: 'Status: {status}'
11
+ }
12
+ };
13
+ // #sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["defaultMessages","exports","ru","en"],"sources":["i18n.ts"],"sourcesContent":["export const defaultMessages = {\n 'status-label': {\n ru: 'Статус: {status}',\n en: 'Status: {status}',\n },\n};\n"],"mappings":";;;;;;AAAO,IAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC3B,cAAc,EAAE;IACZE,EAAE,EAAE,kBAAkB;IACtBC,EAAE,EAAE;EACR;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { StatusIcon } from './StatusIcon';
2
+ export type { StatusIconProps } from './StatusIcon';
3
+ export type { GoalStatus, IssueStatus, MetaEntityStatus } from './types';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "StatusIcon", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _StatusIcon.StatusIcon;
10
+ }
11
+ });
12
+ var _StatusIcon = require("./StatusIcon");
13
+ // #sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StatusIcon","require"],"sources":["index.ts"],"sourcesContent":["export {StatusIcon} from './StatusIcon';\nexport type {StatusIconProps} from './StatusIcon';\nexport type {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export type IssueStatus = 'new' | 'inProgress' | 'paused' | 'done' | 'cancelled' | 'unknown';
2
+ export type MetaEntityStatus = 'draft' | 'in_progress' | 'launched' | 'postponed' | 'at_risk' | 'blocked' | 'according_to_plan' | 'draft2' | 'cancelled';
3
+ export type GoalStatus = 'draft' | 'according_to_plan' | 'at_risk' | 'blocked' | 'achieved' | 'partially_achieved' | 'not_achieved' | 'exceeded' | 'cancelled';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ // #sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type IssueStatus = 'new' | 'inProgress' | 'paused' | 'done' | 'cancelled' | 'unknown';\n\nexport type MetaEntityStatus =\n | 'draft'\n | 'in_progress'\n | 'launched'\n | 'postponed'\n | 'at_risk'\n | 'blocked'\n | 'according_to_plan'\n | 'draft2'\n | 'cancelled';\n\nexport type GoalStatus =\n | 'draft'\n | 'according_to_plan'\n | 'at_risk'\n | 'blocked'\n | 'achieved'\n | 'partially_achieved'\n | 'not_achieved'\n | 'exceeded'\n | 'cancelled';\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type IconData } from '@gravity-ui/uikit';
2
+ import { GoalStatus, IssueStatus, MetaEntityStatus } from './types';
3
+ export declare function getSvgForStatusType(statusType?: IssueStatus | MetaEntityStatus | GoalStatus): IconData;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSvgForStatusType = getSvgForStatusType;
7
+ var _icons = require("@gravity-ui/icons");
8
+ function getSvgForStatusType(statusType) {
9
+ switch (statusType) {
10
+ case 'new':
11
+ case 'draft':
12
+ case 'draft2':
13
+ return _icons.CircleDashed;
14
+ case 'done':
15
+ case 'launched':
16
+ case 'achieved':
17
+ case 'partially_achieved':
18
+ return _icons.CircleCheck;
19
+ case 'cancelled':
20
+ case 'not_achieved':
21
+ return _icons.CircleXmark;
22
+ case 'inProgress':
23
+ case 'in_progress':
24
+ case 'according_to_plan':
25
+ return _icons.CirclePlay;
26
+ case 'paused':
27
+ case 'postponed':
28
+ return _icons.CirclePause;
29
+ case 'at_risk':
30
+ return _icons.CircleExclamation;
31
+ case 'exceeded':
32
+ return _icons.SealCheck;
33
+ case 'blocked':
34
+ return _icons.CircleStop;
35
+ default:
36
+ return _icons.CircleQuestion;
37
+ }
38
+ }
39
+ // #sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_icons","require","getSvgForStatusType","statusType","CircleDashed","CircleCheck","CircleXmark","CirclePlay","CirclePause","CircleExclamation","SealCheck","CircleStop","CircleQuestion"],"sources":["utils.ts"],"sourcesContent":["import {\n CircleCheck,\n CircleDashed,\n CircleExclamation,\n CirclePause,\n CirclePlay,\n CircleQuestion,\n CircleStop,\n CircleXmark,\n SealCheck,\n} from '@gravity-ui/icons';\nimport {type IconData} from '@gravity-ui/uikit';\n\nimport {GoalStatus, IssueStatus, MetaEntityStatus} from './types';\n\nexport function getSvgForStatusType(\n statusType?: IssueStatus | MetaEntityStatus | GoalStatus,\n): IconData {\n switch (statusType) {\n case 'new':\n case 'draft':\n case 'draft2':\n return CircleDashed;\n case 'done':\n case 'launched':\n case 'achieved':\n case 'partially_achieved':\n return CircleCheck;\n case 'cancelled':\n case 'not_achieved':\n return CircleXmark;\n case 'inProgress':\n case 'in_progress':\n case 'according_to_plan':\n return CirclePlay;\n case 'paused':\n case 'postponed':\n return CirclePause;\n case 'at_risk':\n return CircleExclamation;\n case 'exceeded':\n return SealCheck;\n case 'blocked':\n return CircleStop;\n default:\n return CircleQuestion;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAeO,SAASC,mBAAmBA,CAC/BC,UAAwD,EAChD;EACR,QAAQA,UAAU;IACd,KAAK,KAAK;IACV,KAAK,OAAO;IACZ,KAAK,QAAQ;MACT,OAAOC,mBAAY;IACvB,KAAK,MAAM;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,oBAAoB;MACrB,OAAOC,kBAAW;IACtB,KAAK,WAAW;IAChB,KAAK,cAAc;MACf,OAAOC,kBAAW;IACtB,KAAK,YAAY;IACjB,KAAK,aAAa;IAClB,KAAK,mBAAmB;MACpB,OAAOC,iBAAU;IACrB,KAAK,QAAQ;IACb,KAAK,WAAW;MACZ,OAAOC,kBAAW;IACtB,KAAK,SAAS;MACV,OAAOC,wBAAiB;IAC5B,KAAK,UAAU;MACX,OAAOC,gBAAS;IACpB,KAAK,SAAS;MACV,OAAOC,iBAAU;IACrB;MACI,OAAOC,qBAAc;EAC7B;AACJ","ignoreList":[]}
@@ -5,4 +5,6 @@ export * from './IssueTypeIcon';
5
5
  export * from './KeyResultIcon';
6
6
  export * from './MetaEntityIcon';
7
7
  export * from './PortfolioIcon';
8
+ export * from './PriorityIcon';
8
9
  export * from './ProjectIcon';
10
+ export * from './StatusIcon';
@@ -80,6 +80,17 @@ Object.keys(_PortfolioIcon).forEach(function (key) {
80
80
  }
81
81
  });
82
82
  });
83
+ var _PriorityIcon = require("./PriorityIcon");
84
+ Object.keys(_PriorityIcon).forEach(function (key) {
85
+ if (key === "default" || key === "__esModule") return;
86
+ if (key in exports && exports[key] === _PriorityIcon[key]) return;
87
+ Object.defineProperty(exports, key, {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _PriorityIcon[key];
91
+ }
92
+ });
93
+ });
83
94
  var _ProjectIcon = require("./ProjectIcon");
84
95
  Object.keys(_ProjectIcon).forEach(function (key) {
85
96
  if (key === "default" || key === "__esModule") return;
@@ -91,4 +102,15 @@ Object.keys(_ProjectIcon).forEach(function (key) {
91
102
  }
92
103
  });
93
104
  });
105
+ var _StatusIcon = require("./StatusIcon");
106
+ Object.keys(_StatusIcon).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _StatusIcon[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function () {
112
+ return _StatusIcon[key];
113
+ }
114
+ });
115
+ });
94
116
  // #sourceMappingURL=index.js.map
@@ -1 +1 @@
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":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,SAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,SAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,SAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,SAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,cAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,cAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,cAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,cAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,cAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,cAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,cAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,cAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,eAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,eAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,eAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,eAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,cAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,cAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAU,cAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,cAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,YAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,YAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAW,YAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,YAAA,CAAAX,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","_PriorityIcon","_ProjectIcon","_StatusIcon"],"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 './PriorityIcon';\nexport * from './ProjectIcon';\nexport * from './StatusIcon';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const cnPriorityIcon: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,3 @@
1
+ import { block } from "./../../cn";
2
+ export var cnPriorityIcon = block('priority-icon');
3
+ // #sourceMappingURL=PriorityIcon.classname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["block","cnPriorityIcon"],"sources":["PriorityIcon.classname.ts"],"sourcesContent":["import {block} from '~/src/components/cn';\n\nexport const cnPriorityIcon = block('priority-icon');\n"],"mappings":"AAAA,SAAQA,KAAK;AAEb,OAAO,IAAMC,cAAc,GAAGD,KAAK,CAAC,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,73 @@
1
+ import React from 'react';
2
+ import { ChevronDownWide, ChevronUpWide, ChevronsDownWide, ChevronsUpWide, CircleExclamation, Equal } from '@gravity-ui/icons';
3
+ import { getConfig } from '@gravity-ui/uikit';
4
+ import { useLocalizedString } from "./../../../hooks/useLocalizedString";
5
+ import { IconRefuge } from "../IconRefuge";
6
+ import { cnPriorityIcon } from "./PriorityIcon.classname";
7
+ import { defaultMessages } from "./i18n";
8
+ import "./PriorityIcon.css";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ var getIconData = function getIconData(priority, metaEntity) {
11
+ switch (priority) {
12
+ case 'blocker':
13
+ return CircleExclamation;
14
+ case 'critical':
15
+ return metaEntity ? CircleExclamation : ChevronsUpWide;
16
+ case 'minor':
17
+ return ChevronDownWide;
18
+ case 'trivial':
19
+ case 'minimal':
20
+ return ChevronsDownWide;
21
+ case 'important':
22
+ return ChevronUpWide;
23
+ default:
24
+ return Equal;
25
+ }
26
+ };
27
+ export var PriorityIcon = function PriorityIcon(_ref) {
28
+ var className = _ref.className,
29
+ containerClassName = _ref.containerClassName,
30
+ _ref$priority = _ref.priority,
31
+ priority = _ref$priority === void 0 ? 'normal' : _ref$priority,
32
+ _ref$size = _ref.size,
33
+ size = _ref$size === void 0 ? 16 : _ref$size,
34
+ title = _ref.title,
35
+ showBackground = _ref.showBackground,
36
+ backgroundSize = _ref.backgroundSize,
37
+ metaEntity = _ref.metaEntity;
38
+ var config = getConfig();
39
+ var _useLocalizedString = useLocalizedString(defaultMessages, config.lang),
40
+ t = _useLocalizedString.t;
41
+ var ariaLabel = title ? t('priority-label', {
42
+ priority: title
43
+ }) : undefined;
44
+ var iconNode = /*#__PURE__*/_jsx(IconRefuge, {
45
+ containerClassName: containerClassName,
46
+ className: cnPriorityIcon({
47
+ priority: priority,
48
+ metaEntity: metaEntity
49
+ }, className),
50
+ data: getIconData(priority, metaEntity),
51
+ refugeSize: size,
52
+ title: title,
53
+ "aria-label": ariaLabel,
54
+ "aria-hidden": !title || undefined
55
+ });
56
+ if (!showBackground) {
57
+ return iconNode;
58
+ }
59
+ return /*#__PURE__*/_jsx("div", {
60
+ className: cnPriorityIcon('background', {
61
+ priority: priority,
62
+ metaEntity: metaEntity
63
+ }),
64
+ style: backgroundSize ? {
65
+ width: backgroundSize,
66
+ height: backgroundSize,
67
+ minWidth: backgroundSize
68
+ } : undefined,
69
+ children: iconNode
70
+ });
71
+ };
72
+ PriorityIcon.displayName = 'PriorityIcon';
73
+ // #sourceMappingURL=PriorityIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ChevronDownWide","ChevronUpWide","ChevronsDownWide","ChevronsUpWide","CircleExclamation","Equal","getConfig","useLocalizedString","IconRefuge","cnPriorityIcon","defaultMessages","jsx","_jsx","getIconData","priority","metaEntity","PriorityIcon","_ref","className","containerClassName","_ref$priority","_ref$size","size","title","showBackground","backgroundSize","config","_useLocalizedString","lang","t","ariaLabel","undefined","iconNode","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":"AAAA,OAAOA,KAAK,MAAiB,OAAO;AAEpC,SACIC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,cAAc,EACdC,iBAAiB,EACjBC,KAAK,QACF,mBAAmB;AAC1B,SAAuBC,SAAS,QAAO,mBAAmB;AAE1D,SAAQC,kBAAkB;AAG1B,SAAQC,UAAU;AAElB,SAAQC,cAAc;AACtB,SAAQC,eAAe;AAGvB;AAA6B,SAAAC,GAAA,IAAAC,IAAA;AAW7B,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,QAAkB,EAAEC,UAAoB,EAAe;EACxE,QAAQD,QAAQ;IACZ,KAAK,SAAS;MACV,OAAOV,iBAAiB;IAC5B,KAAK,UAAU;MACX,OAAOW,UAAU,GAAGX,iBAAiB,GAAGD,cAAc;IAC1D,KAAK,OAAO;MACR,OAAOH,eAAe;IAC1B,KAAK,SAAS;IACd,KAAK,SAAS;MACV,OAAOE,gBAAgB;IAC3B,KAAK,WAAW;MACZ,OAAOD,aAAa;IACxB;MACI,OAAOI,KAAK;EACpB;AACJ,CAAC;AAED,OAAO,IAAMW,YAAmC,GAAG,SAAtCA,YAAmCA,CAAAC,IAAA,EAS1C;EAAA,IARFC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAAAC,aAAA,GAAAH,IAAA,CAClBH,QAAQ;IAARA,QAAQ,GAAAM,aAAA,cAAG,QAAQ,GAAAA,aAAA;IAAAC,SAAA,GAAAJ,IAAA,CACnBK,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IACTE,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,cAAc,GAAAP,IAAA,CAAdO,cAAc;IACdC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdV,UAAU,GAAAE,IAAA,CAAVF,UAAU;EAEV,IAAMW,MAAM,GAAGpB,SAAS,CAAC,CAAC;EAC1B,IAAAqB,mBAAA,GAAYpB,kBAAkB,CAACG,eAAe,EAAEgB,MAAM,CAACE,IAAI,CAAC;IAArDC,CAAC,GAAAF,mBAAA,CAADE,CAAC;EACR,IAAMC,SAAS,GAAGP,KAAK,GAAGM,CAAC,CAAC,gBAAgB,EAAE;IAACf,QAAQ,EAAES;EAAK,CAAC,CAAC,GAAGQ,SAAS;EAE5E,IAAMC,QAAQ,gBACVpB,IAAA,CAACJ,UAAU;IACPW,kBAAkB,EAAEA,kBAAmB;IACvCD,SAAS,EAAET,cAAc,CAAC;MAACK,QAAQ,EAARA,QAAQ;MAAEC,UAAU,EAAVA;IAAU,CAAC,EAAEG,SAAS,CAAE;IAC7De,IAAI,EAAEpB,WAAW,CAACC,QAAQ,EAAEC,UAAU,CAAE;IACxCmB,UAAU,EAAEZ,IAAK;IACjBC,KAAK,EAAEA,KAAM;IACb,cAAYO,SAAU;IACtB,eAAa,CAACP,KAAK,IAAIQ;EAAU,CACpC,CACJ;EAED,IAAI,CAACP,cAAc,EAAE;IACjB,OAAOQ,QAAQ;EACnB;EAEA,oBACIpB,IAAA;IACIM,SAAS,EAAET,cAAc,CAAC,YAAY,EAAE;MAACK,QAAQ,EAARA,QAAQ;MAAEC,UAAU,EAAVA;IAAU,CAAC,CAAE;IAChEoB,KAAK,EACDV,cAAc,GACR;MACIW,KAAK,EAAEX,cAAc;MACrBY,MAAM,EAAEZ,cAAc;MACtBa,QAAQ,EAAEb;IACd,CAAC,GACDM,SACT;IAAAQ,QAAA,EAEAP;EAAQ,CACR,CAAC;AAEd,CAAC;AAEDhB,YAAY,CAACwB,WAAW,GAAG,cAAc","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ .tpc-priority-icon {
2
+ &_priority_blocker {
3
+ color: var(--g-color-text-danger);
4
+ }
5
+
6
+ &_priority_critical {
7
+ color: var(--g-color-text-warning-heavy);
8
+
9
+ &.tpc-priority-icon_metaEntity {
10
+ color: var(--g-color-text-danger-heavy);
11
+ }
12
+ }
13
+
14
+ &_priority_important {
15
+ color: var(--g-color-text-warning);
16
+ }
17
+
18
+ &_priority_trivial {
19
+ color: var(--g-color-text-hint);
20
+ }
21
+
22
+ &_priority_normal,
23
+ &_priority_minor,
24
+ &_priority_minimal {
25
+ color: var(--g-color-text-secondary);
26
+ }
27
+
28
+ &__background {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+
33
+ width: 100%;
34
+ height: 100%;
35
+
36
+ border-radius: 50%;
37
+ }
38
+
39
+ &__background_priority_blocker {
40
+ background: var(--g-color-base-danger-light);
41
+ }
42
+
43
+ &__background_priority_critical {
44
+ background: var(--g-color-base-warning-light);
45
+
46
+ &.tpc-priority-icon-background_metaEntity {
47
+ background: var(--g-color-base-danger-light);
48
+ }
49
+ }
50
+
51
+ &__background_priority_important {
52
+ background: var(--g-color-base-warning-light);
53
+ }
54
+
55
+ &__background_priority_trivial {
56
+ background: var(--g-color-base-neutral-light);
57
+ }
58
+
59
+ &__background_priority_normal,
60
+ &__background_priority_minor,
61
+ &__background_priority_minimal {
62
+ background: var(--g-color-base-neutral-light);
63
+ }
64
+ }
@@ -0,0 +1,172 @@
1
+ # PriorityIcon
2
+
3
+ <!-- description:start -->
4
+ Displays the icon for a Tracker issue priority level (blocker, critical, normal, minor, etc.). Each priority maps to a distinct icon and color. Unknown priority keys fall back to the normal icon.
5
+ <!-- description:end -->
6
+
7
+ ## Usage
8
+
9
+ ```tsx
10
+ import {PriorityIcon} from '@weavix/tracker-components';
11
+
12
+ <PriorityIcon priority="critical" />
13
+ ```
14
+
15
+ ## Component props
16
+
17
+ <!-- props:start -->
18
+ ```ts
19
+ {
20
+ /**
21
+ * Priority key. Known values are listed below; any other string is
22
+ * accepted and falls back to the normal icon.
23
+ */
24
+ priority?:
25
+ | 'blocker'
26
+ | 'critical'
27
+ | 'important'
28
+ | 'minor'
29
+ | 'minimal'
30
+ | 'normal'
31
+ | 'trivial'
32
+ | string;
33
+
34
+ /**
35
+ * Size of the icon in pixels.
36
+ * @default 16
37
+ */
38
+ size?: number;
39
+
40
+ /**
41
+ * Additional CSS class applied to the icon element.
42
+ */
43
+ className?: string;
44
+
45
+ /**
46
+ * Additional CSS class applied to the outer container element.
47
+ */
48
+ containerClassName?: string;
49
+
50
+ /**
51
+ * Human-readable display name for the priority (e.g. `"Critical"`, `"Normal"`).
52
+ * When provided, an accessible label `"Priority: <title>"` is rendered for
53
+ * screen readers. When omitted, the icon is treated as decorative (`aria-hidden`).
54
+ */
55
+ title?: string;
56
+
57
+ /**
58
+ * When true, renders a circular colored background behind the icon.
59
+ */
60
+ showBackground?: boolean;
61
+
62
+ /**
63
+ * Size of the background circle in pixels. Only used when `showBackground` is true.
64
+ */
65
+ backgroundSize?: number;
66
+
67
+ /**
68
+ * When true, applies meta-entity color variants (e.g. `critical` uses
69
+ * the blocker icon and danger color instead of warning).
70
+ */
71
+ metaEntity?: boolean;
72
+ }
73
+ ```
74
+ <!-- props:end -->
75
+
76
+ ---
77
+
78
+ ## Examples
79
+
80
+ ### Single icon
81
+
82
+ ```tsx
83
+ import {PriorityIcon} from '@weavix/tracker-components';
84
+
85
+ <PriorityIcon priority="blocker" />
86
+ <PriorityIcon priority="critical" />
87
+ <PriorityIcon priority="normal" />
88
+ ```
89
+
90
+ ### Custom size
91
+
92
+ ```tsx
93
+ <PriorityIcon priority="critical" size={24} />
94
+ <PriorityIcon priority="critical" size={32} />
95
+ ```
96
+
97
+ ### With background
98
+
99
+ ```tsx
100
+ <PriorityIcon priority="blocker" showBackground backgroundSize={32} />
101
+ ```
102
+
103
+ ### Alongside issue summary
104
+
105
+ ```tsx
106
+ import {PriorityIcon} from '@weavix/tracker-components';
107
+
108
+ export const IssueRow = ({issue}: {issue: {priority: string; summary: string}}) => (
109
+ <div style={{display: 'flex', alignItems: 'center', gap: 8}}>
110
+ <PriorityIcon priority={issue.priority} size={16} />
111
+ <span>{issue.summary}</span>
112
+ </div>
113
+ );
114
+ ```
115
+
116
+ ### All known priorities
117
+
118
+ ```tsx
119
+ import {PriorityIcon} from '@weavix/tracker-components';
120
+
121
+ const PRIORITIES = [
122
+ 'blocker', 'critical', 'important', 'normal', 'minor', 'minimal', 'trivial',
123
+ ] as const;
124
+
125
+ export const PriorityGallery = () => (
126
+ <div style={{display: 'flex', flexWrap: 'wrap', gap: 16}}>
127
+ {PRIORITIES.map((p) => (
128
+ <div key={p} style={{display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 4}}>
129
+ <PriorityIcon priority={p} size={24} />
130
+ <span style={{fontSize: 11}}>{p}</span>
131
+ </div>
132
+ ))}
133
+ </div>
134
+ );
135
+ ```
136
+
137
+ ### From Tracker API
138
+
139
+ Requires the `"tracker:issues:read"` permission in your plugin's `manifest.json`:
140
+
141
+ ```json
142
+ {
143
+ "permissions": {
144
+ "data": ["tracker:issues:read"]
145
+ }
146
+ }
147
+ ```
148
+
149
+ ```tsx
150
+ import {PriorityIcon} from '@weavix/tracker-components';
151
+
152
+ const priority = await trackerApi.v3.get['/issues/{id}/{field}']({
153
+ pathParams: {
154
+ id: 'ISSUEKEY-1',
155
+ field: 'priority',
156
+ },
157
+ });
158
+
159
+ <PriorityIcon
160
+ priority={priority.data.key}
161
+ title={priority.data.display}
162
+ />
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Notes
168
+
169
+ - The `priority` value is matched case-sensitively against the known keys. Values returned by the Tracker API (e.g. `"blocker"`, `"critical"`) match directly without transformation.
170
+ - Passing an unknown string does not throw — the component renders the normal (default) icon.
171
+ - When `title` is omitted the icon is treated as decorative and gets `aria-hidden="true"`. Pass `title` (e.g. `priority.display` from the API) to make the icon accessible.
172
+ - The `metaEntity` prop changes the icon and color for `critical` priority to match the blocker appearance, used in meta-entity contexts like goals and projects.
@@ -0,0 +1,6 @@
1
+ export declare const defaultMessages: {
2
+ 'priority-label': {
3
+ ru: string;
4
+ en: string;
5
+ };
6
+ };
@@ -0,0 +1,7 @@
1
+ export var defaultMessages = {
2
+ 'priority-label': {
3
+ ru: 'Приоритет: {priority}',
4
+ en: 'Priority: {priority}'
5
+ }
6
+ };
7
+ // #sourceMappingURL=i18n.js.map