@servicetitan/marketing-ui 1.5.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/components/ads/ads-stat.js +4 -4
  2. package/dist/components/ads/ads-stat.js.map +1 -1
  3. package/dist/components/charts/funnel-chart/components/funnel-chart.js +4 -4
  4. package/dist/components/charts/funnel-chart/components/funnel-chart.js.map +1 -1
  5. package/dist/components/charts/funnel-chart/components/funnel-svg.js +4 -4
  6. package/dist/components/charts/funnel-chart/components/funnel-svg.js.map +1 -1
  7. package/dist/components/charts/funnel-chart/funnel-chart.stories.js +5 -5
  8. package/dist/components/charts/funnel-chart/funnel-chart.stories.js.map +1 -1
  9. package/dist/components/charts/line-chart/components/body.js +11 -11
  10. package/dist/components/charts/line-chart/components/body.js.map +1 -1
  11. package/dist/components/charts/line-chart/components/body.module.less +1 -1
  12. package/dist/components/charts/line-chart/components/container.js +5 -5
  13. package/dist/components/charts/line-chart/components/container.js.map +1 -1
  14. package/dist/components/charts/line-chart/components/hover-popover.js +7 -7
  15. package/dist/components/charts/line-chart/components/hover-popover.js.map +1 -1
  16. package/dist/components/charts/line-chart/components/hover-popover.module.less +1 -1
  17. package/dist/components/charts/line-chart/components/sidebar.js +3 -3
  18. package/dist/components/charts/line-chart/components/sidebar.js.map +1 -1
  19. package/dist/components/charts/line-chart/components/sidebar.module.less +2 -2
  20. package/dist/components/charts/line-chart/components/stuff.js +6 -6
  21. package/dist/components/charts/line-chart/components/stuff.js.map +1 -1
  22. package/dist/components/charts/line-chart/components/svg-bars.js +9 -9
  23. package/dist/components/charts/line-chart/components/svg-bars.js.map +1 -1
  24. package/dist/components/charts/line-chart/components/svg-body.js +6 -6
  25. package/dist/components/charts/line-chart/components/svg-body.js.map +1 -1
  26. package/dist/components/charts/line-chart/components/svg-lines.js +5 -5
  27. package/dist/components/charts/line-chart/components/svg-lines.js.map +1 -1
  28. package/dist/components/charts/line-chart/line-chart.stories.js +7 -7
  29. package/dist/components/charts/line-chart/line-chart.stories.js.map +1 -1
  30. package/dist/components/charts/line-chart/stores/line-chart.store.d.ts.map +1 -1
  31. package/dist/components/charts/line-chart/stores/line-chart.store.js +10 -7
  32. package/dist/components/charts/line-chart/stores/line-chart.store.js.map +1 -1
  33. package/dist/components/charts/line-chart/stores/svg.store.js +2 -2
  34. package/dist/components/charts/line-chart/stores/svg.store.js.map +1 -1
  35. package/dist/components/charts/line-chart/utils/formatters.js +2 -2
  36. package/dist/components/charts/line-chart/utils/formatters.js.map +1 -1
  37. package/dist/components/charts/line-chart/utils/labels.js +16 -16
  38. package/dist/components/charts/line-chart/utils/labels.js.map +1 -1
  39. package/dist/components/charts/pie-chart/components/pie-chart.js +4 -4
  40. package/dist/components/charts/pie-chart/components/pie-chart.js.map +1 -1
  41. package/dist/components/charts/pie-chart/components/pie.js +14 -14
  42. package/dist/components/charts/pie-chart/components/pie.js.map +1 -1
  43. package/dist/components/charts/pie-chart/pie-chart.stories.js +3 -3
  44. package/dist/components/charts/pie-chart/pie-chart.stories.js.map +1 -1
  45. package/dist/components/charts/pie-chart/utils/const.js +1 -1
  46. package/dist/components/charts/pie-chart/utils/const.js.map +1 -1
  47. package/dist/components/image-cropper/image-cropper.js +2 -2
  48. package/dist/components/image-cropper/image-cropper.js.map +1 -1
  49. package/dist/components/image-cropper/image-cropper.stories.js +2 -2
  50. package/dist/components/image-cropper/image-cropper.stories.js.map +1 -1
  51. package/dist/components/stat/stat-card.d.ts.map +1 -1
  52. package/dist/components/stat/stat-card.js +10 -9
  53. package/dist/components/stat/stat-card.js.map +1 -1
  54. package/dist/components/stat/stat-card.module.less +7 -0
  55. package/dist/components/stat/stat-cards.stories.js +5 -5
  56. package/dist/components/stat/stat-cards.stories.js.map +1 -1
  57. package/dist/components/stat/stat-extended-card.d.ts.map +1 -1
  58. package/dist/components/stat/stat-extended-card.js +22 -2
  59. package/dist/components/stat/stat-extended-card.js.map +1 -1
  60. package/dist/components/stat/stat-extended-card.stories.js +4 -4
  61. package/dist/components/stat/stat-extended-card.stories.js.map +1 -1
  62. package/dist/components/ui/centered-spinner.js +1 -1
  63. package/dist/components/ui/centered-spinner.js.map +1 -1
  64. package/dist/components/ui/centered-spinner.stories.js +4 -4
  65. package/dist/components/ui/centered-spinner.stories.js.map +1 -1
  66. package/dist/components/ui/date-range-picker/date-range-picker.js +5 -5
  67. package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
  68. package/dist/components/ui/date-range-picker/date-range-picker.module.less +1 -1
  69. package/dist/components/ui/date-range-picker/date-range-picker.stories.js +3 -3
  70. package/dist/components/ui/date-range-picker/date-range-picker.stories.js.map +1 -1
  71. package/dist/components/ui/disabled-button.js +1 -1
  72. package/dist/components/ui/disabled-button.js.map +1 -1
  73. package/dist/components/ui/line-text/line-text-body.stories.js +3 -3
  74. package/dist/components/ui/line-text/line-text-body.stories.js.map +1 -1
  75. package/dist/components/ui/line-text/line-text-head.stories.js +3 -3
  76. package/dist/components/ui/line-text/line-text-head.stories.js.map +1 -1
  77. package/dist/components/ui/line-text/line-text.js +7 -7
  78. package/dist/components/ui/line-text/line-text.js.map +1 -1
  79. package/dist/utils/date/date-range-picker-options.js +2 -2
  80. package/dist/utils/date/date-range-picker-options.js.map +1 -1
  81. package/dist/utils/date/date-range-picker-state.js +1 -1
  82. package/dist/utils/date/date-range-picker-state.js.map +1 -1
  83. package/dist/utils/date/date.js +1 -1
  84. package/dist/utils/date/date.js.map +1 -1
  85. package/dist/utils/formatters.js +8 -8
  86. package/dist/utils/formatters.js.map +1 -1
  87. package/dist/utils/use-client-rect.js +4 -4
  88. package/dist/utils/use-client-rect.js.map +1 -1
  89. package/package.json +2 -2
  90. package/src/components/charts/line-chart/components/body.module.less +1 -1
  91. package/src/components/charts/line-chart/components/body.tsx +1 -1
  92. package/src/components/charts/line-chart/components/hover-popover.module.less +1 -1
  93. package/src/components/charts/line-chart/components/sidebar.module.less +2 -2
  94. package/src/components/charts/line-chart/components/stuff.tsx +1 -1
  95. package/src/components/charts/line-chart/stores/line-chart.store.ts +5 -2
  96. package/src/components/stat/stat-card.module.less +7 -0
  97. package/src/components/stat/stat-card.module.less.d.ts +1 -0
  98. package/src/components/stat/stat-card.tsx +3 -1
  99. package/src/components/stat/stat-extended-card.tsx +4 -3
  100. package/src/components/ui/date-range-picker/date-range-picker.module.less +1 -1
  101. package/src/utils/__tests__/formatters.test.ts +1 -1
  102. package/src/utils/formatters.ts +1 -1
@@ -25,7 +25,7 @@ const formatPercentValue = (value) => {
25
25
  if (!value) {
26
26
  return '0';
27
27
  }
28
- const valueMain = value ? Math.abs(Math.floor(value)) : 0;
28
+ const valueMain = value ? Math.abs(Math.round(value)) : 0;
29
29
  if (valueMain > 0) {
30
30
  return accounting.formatNumber(valueMain, 0);
31
31
  }
@@ -45,27 +45,27 @@ const formatMoney = (value) => (value < 0 ? '-' : '') + accounting.formatMoney(M
45
45
  exports.formatMoney = formatMoney;
46
46
  const formatPercent100 = (value) => `${formatPercentValue(value)}%`;
47
47
  exports.formatPercent100 = formatPercent100;
48
- const formatPercent = (value) => exports.formatPercent100(value * 100);
48
+ const formatPercent = (value) => (0, exports.formatPercent100)(value * 100);
49
49
  exports.formatPercent = formatPercent;
50
50
  const formatNumber = (value) => accounting.formatNumber(value, 0, ',');
51
51
  exports.formatNumber = formatNumber;
52
52
  const formatValue = (value, format) => {
53
53
  if (format === 'money') {
54
- return exports.formatMoney(value);
54
+ return (0, exports.formatMoney)(value);
55
55
  }
56
56
  if (format === 'percent') {
57
- return exports.formatPercent(value);
57
+ return (0, exports.formatPercent)(value);
58
58
  }
59
59
  if (format === 'percent-100') {
60
- return exports.formatPercent100(value);
60
+ return (0, exports.formatPercent100)(value);
61
61
  }
62
62
  if (format === 'number') {
63
- return exports.formatNumber(value);
63
+ return (0, exports.formatNumber)(value);
64
64
  }
65
65
  if (format === 'rate') {
66
- return exports.formatRate(value);
66
+ return (0, exports.formatRate)(value);
67
67
  }
68
- return exports.formatNumber(value);
68
+ return (0, exports.formatNumber)(value);
69
69
  };
70
70
  exports.formatValue = formatValue;
71
71
  //# sourceMappingURL=formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAIzC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE;IACjD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,GAAG,CAAC;KACd;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,SAAS,GAAG,CAAC,EAAE;QACf,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAChD;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IAChD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;IAE7D,OAAO,GAAG,SAAS,IAAI,YAAY,GAAG,CAAC;AAC3C,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACjD,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AADtE,QAAA,WAAW,eAC2D;AAC5E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAA9E,QAAA,gBAAgB,oBAA8D;AACpF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,wBAAgB,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAAzE,QAAA,aAAa,iBAA4D;AAC/E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAAjF,QAAA,YAAY,gBAAqE;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAwB,EAAE,EAAE;IACnE,IAAI,MAAM,KAAK,OAAO,EAAE;QACpB,OAAO,mBAAW,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,qBAAa,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,IAAI,MAAM,KAAK,aAAa,EAAE;QAC1B,OAAO,wBAAgB,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE;QACrB,OAAO,oBAAY,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,MAAM,EAAE;QACnB,OAAO,kBAAU,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,oBAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAtBW,QAAA,WAAW,eAsBtB"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAIzC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE;IACjD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,GAAG,CAAC;KACd;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,SAAS,GAAG,CAAC,EAAE;QACf,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAChD;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IAChD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;IAE7D,OAAO,GAAG,SAAS,IAAI,YAAY,GAAG,CAAC;AAC3C,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACjD,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AADtE,QAAA,WAAW,eAC2D;AAC5E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAA9E,QAAA,gBAAgB,oBAA8D;AACpF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAA,wBAAgB,EAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAAzE,QAAA,aAAa,iBAA4D;AAC/E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAAjF,QAAA,YAAY,gBAAqE;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAwB,EAAE,EAAE;IACnE,IAAI,MAAM,KAAK,OAAO,EAAE;QACpB,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;KAC/B;IAED,IAAI,MAAM,KAAK,aAAa,EAAE;QAC1B,OAAO,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE;QACrB,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,MAAM,EAAE;QACnB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAtBW,QAAA,WAAW,eAsBtB"}
@@ -22,14 +22,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.useClientRect = void 0;
23
23
  const react_1 = __importStar(require("react"));
24
24
  const useClientRect = () => {
25
- const element = react_1.useRef(null);
26
- const [rect, setRect] = react_1.useState(null);
27
- const handleResize = react_1.useCallback(() => {
25
+ const element = (0, react_1.useRef)(null);
26
+ const [rect, setRect] = (0, react_1.useState)(null);
27
+ const handleResize = (0, react_1.useCallback)(() => {
28
28
  if (element.current) {
29
29
  setRect(element.current.getBoundingClientRect());
30
30
  }
31
31
  }, []);
32
- react_1.useEffect(() => {
32
+ (0, react_1.useEffect)(() => {
33
33
  if (!rect) {
34
34
  return;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwE;AAEjE,MAAM,aAAa,GAAG,GAI3B,EAAE;IACA,MAAM,OAAO,GAAG,cAAM,CAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,gBAAQ,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,mBAAW,CAAC,GAAG,EAAE;QAClC,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACpD;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iBAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED;;;WAGG;QACH,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;;YACvB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,qBAAqB,EAAE,CAAC;YAEzD,IACI,OAAO;gBACP,IAAI;gBACJ,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;oBACzB,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;oBAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAC3B;gBACE,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,eAAK,CAAC,WAAW,CACzB,CAAC,IAAwB,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACzC;aAAM;YACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAxDW,QAAA,aAAa,iBAwDxB"}
1
+ {"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwE;AAEjE,MAAM,aAAa,GAAG,GAI3B,EAAE;IACA,MAAM,OAAO,GAAG,IAAA,cAAM,EAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAClC,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACpD;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED;;;WAGG;QACH,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;;YACvB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,qBAAqB,EAAE,CAAC;YAEzD,IACI,OAAO;gBACP,IAAI;gBACJ,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;oBACzB,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;oBAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAC3B;gBACE,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,eAAK,CAAC,WAAW,CACzB,CAAC,IAAwB,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACzC;aAAM;YACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAxDW,QAAA,aAAa,iBAwDxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/marketing-ui",
3
- "version": "1.5.0",
3
+ "version": "1.8.0",
4
4
  "description": "Marketing UI component and utils",
5
5
  "repository": {
6
6
  "type": "git",
@@ -50,5 +50,5 @@
50
50
  "less": true,
51
51
  "webpack": false
52
52
  },
53
- "gitHead": "e30c18044c37f4d8b8c18855499bd5dab801bc5c"
53
+ "gitHead": "fbd5f09b2656da18e7dd0e03d6a7aa05cc4f8cc6"
54
54
  }
@@ -1,7 +1,7 @@
1
1
  @import (reference) '~@servicetitan/tokens/dist/tokens.less';
2
2
 
3
3
  .chart-wrapper {
4
- height: 250px;
4
+ height: 440px;
5
5
  position: relative;
6
6
  }
7
7
 
@@ -98,7 +98,7 @@ export const Body: React.FC<{ classNameTitle?: string }> = provide({ singletons:
98
98
  />
99
99
  )}
100
100
  {display.metricsTitlePosition === 'bottom' && (
101
- <Stack direction="row" justifyContent="center" className="p-2">
101
+ <Stack direction="row" justifyContent="center" className="p-3">
102
102
  <MetricsTitle metrics={metrics} />
103
103
  </Stack>
104
104
  )}
@@ -6,7 +6,7 @@
6
6
  width: 1px;
7
7
  top: 0;
8
8
  background-color: @color-neutral-60;
9
- padding: @spacing-2 0;
9
+ padding: @spacing-2 @spacing-0;
10
10
  }
11
11
 
12
12
  .trigger {
@@ -63,7 +63,7 @@
63
63
  }
64
64
 
65
65
  .sidebar-no-title {
66
- padding: 0 0 0 @spacing-2;
66
+ padding: @spacing-0 @spacing-0 @spacing-0 @spacing-2;
67
67
  }
68
68
  }
69
69
 
@@ -82,6 +82,6 @@
82
82
  }
83
83
 
84
84
  .sidebar-no-title {
85
- padding: 0 @spacing-2 0 0;
85
+ padding: @spacing-0 @spacing-2 @spacing-0 @spacing-0;
86
86
  }
87
87
  }
@@ -47,7 +47,7 @@ export const MetricsTitle: React.FC<MetricsTitleProps> = ({ metrics }) => (
47
47
  label={m.title}
48
48
  color={m.color}
49
49
  dashed={m.opts?.dashed}
50
- className="m-x-1"
50
+ className="m-r-4"
51
51
  />
52
52
  ))}
53
53
  </Stack>
@@ -43,10 +43,13 @@ const getSideMetricsSettings = (
43
43
  .filter(metricValues => stackedBarMetricIDs.includes(metricValues.metricId))
44
44
  .map(metric => metric.values);
45
45
 
46
- const summedStackedMetrics = stackChartMetricValues[0].map((value, i) =>
46
+ const summedStackedMetrics = stackChartMetricValues[0]?.map((value, i) =>
47
47
  stackChartMetricValues.reduce((sum, metricValues) => sum + metricValues[i], 0)
48
48
  );
49
- maxRange = Math.max(...summedStackedMetrics, maxRange);
49
+
50
+ if (summedStackedMetrics?.length) {
51
+ maxRange = Math.max(...summedStackedMetrics, maxRange);
52
+ }
50
53
  }
51
54
 
52
55
  if (!maxRange) {
@@ -2,6 +2,13 @@
2
2
 
3
3
  .stat-diff {
4
4
  white-space: nowrap;
5
+ span {
6
+ font-size: @typescale-0;
7
+ }
8
+ }
9
+
10
+ .stat-extended-diff {
11
+ margin-bottom: 2px;
5
12
  }
6
13
 
7
14
  .title {
@@ -1,4 +1,5 @@
1
1
  export const __esModule: true;
2
2
  export const statDiff: string;
3
+ export const statExtendedDiff: string;
3
4
  export const title: string;
4
5
 
@@ -55,7 +55,8 @@ export const StatDiff: React.FC<StatDiffProps> = ({
55
55
  }) => {
56
56
  const percents = format === 'percent';
57
57
  const [absDiff, diffPercent, isIncrease] = calculateDiff(value ?? 0, prev ?? 0, percents);
58
- let text = absDiff === 0 ? '' : isIncrease ? '▲ ' : '▼ ';
58
+ const diff = absDiff === 0 ? '' : isIncrease ? '▲ ' : '▼ ';
59
+ let text = '';
59
60
 
60
61
  if (percents) {
61
62
  text += formatDifferencePercentage(absDiff, isIncrease);
@@ -80,6 +81,7 @@ export const StatDiff: React.FC<StatDiffProps> = ({
80
81
  )}
81
82
  size={size ?? 'small'}
82
83
  >
84
+ <span>{diff}</span>
83
85
  {value === undefined ? '\u00A0' : text}
84
86
  </BodyText>
85
87
  );
@@ -3,6 +3,7 @@ import classNames from 'classnames';
3
3
  import { BodyText, Icon, Headline, Eyebrow, Stack, Tooltip } from '@servicetitan/design-system';
4
4
  import { formatValue } from '../../utils/formatters';
5
5
  import { StatDiff } from './stat-card';
6
+ import * as Styles from './stat-card.module.less';
6
7
 
7
8
  export interface StatExtendedCardProps {
8
9
  title: string;
@@ -54,11 +55,11 @@ export const StatExtendedCard: FC<StatExtendedCardProps> = ({
54
55
  </Tooltip>
55
56
  )}
56
57
  </Stack>
57
- <Eyebrow size="small" className="m-t-3 c-black">
58
+ <Eyebrow size="small" className="m-t-2 c-black">
58
59
  {title2}
59
60
  </Eyebrow>
60
61
 
61
- <Stack justifyContent="space-between">
62
+ <Stack justifyContent="space-between" className="m-t-half">
62
63
  <Stack alignItems="flex-end" className="flex-grow-1 flex-basis-0">
63
64
  <Headline className="m-b-0-i m-r-half fw-normal-i" size="xlarge">
64
65
  {formatValue(value, format)}
@@ -72,7 +73,7 @@ export const StatExtendedCard: FC<StatExtendedCardProps> = ({
72
73
  format={format}
73
74
  inverted={inverted}
74
75
  neutral={neutral}
75
- className="m-l-1"
76
+ className={classNames(Styles.statExtendedDiff, 'm-l-1')}
76
77
  />
77
78
  ) : undefined}
78
79
  </Stack>
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .FormField__label {
16
- margin: 0;
16
+ margin: @spacing-0;
17
17
  }
18
18
 
19
19
  .DateRangeTrigger__shortLabel {
@@ -35,7 +35,7 @@ describe('formatPercent', () => {
35
35
  [0, '0%'],
36
36
  [0.1, '10%'],
37
37
  [0.0011, '0.1%'],
38
- [0.9999, '99%'],
38
+ [0.9999, '100%'],
39
39
  ];
40
40
 
41
41
  tc.map(([value, result]) =>
@@ -7,7 +7,7 @@ const formatPercentValue = (value: number): string => {
7
7
  return '0';
8
8
  }
9
9
 
10
- const valueMain = value ? Math.abs(Math.floor(value)) : 0;
10
+ const valueMain = value ? Math.abs(Math.round(value)) : 0;
11
11
 
12
12
  if (valueMain > 0) {
13
13
  return accounting.formatNumber(valueMain, 0);