impact-ui 4.0.15 → 4.0.17

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 (112) hide show
  1. package/README.md +3 -1
  2. package/dist/_virtual/index13.js +2 -2
  3. package/dist/_virtual/index14.js +2 -2
  4. package/dist/_virtual/index15.js +2 -2
  5. package/dist/components/CreateItemFlow/CreateItemFlow.types.d.ts +39 -16
  6. package/dist/components/CreateItemFlow/CreateItemFlow.types.d.ts.map +1 -1
  7. package/dist/components/CreateItemFlow/index.d.ts +2 -1
  8. package/dist/components/CreateItemFlow/index.d.ts.map +1 -1
  9. package/dist/components/CreateItemFlow/index.js +116 -66
  10. package/dist/components/DatePicker/datePickerDropdown.d.ts.map +1 -1
  11. package/dist/components/DatePicker/datePickerDropdown.js +3 -0
  12. package/dist/components/DatePicker/datePickerFooter.d.ts +3 -1
  13. package/dist/components/DatePicker/datePickerFooter.d.ts.map +1 -1
  14. package/dist/components/DatePicker/datePickerFooter.js +24 -2
  15. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts +1 -1
  16. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts.map +1 -1
  17. package/dist/components/DateRangePicker/dateRangePickerDropdown.js +35 -12
  18. package/dist/components/DateRangePicker/dateRangePickerFooter.d.ts +1 -1
  19. package/dist/components/DateRangePicker/dateRangePickerFooter.d.ts.map +1 -1
  20. package/dist/components/DateRangePicker/dateRangePickerFooter.js +5 -3
  21. package/dist/components/DateRangePicker/index.d.ts.map +1 -1
  22. package/dist/components/DateRangePicker/index.js +2 -0
  23. package/dist/components/DynamicLayout/index.d.ts +9 -12
  24. package/dist/components/DynamicLayout/index.d.ts.map +1 -1
  25. package/dist/components/DynamicLayout/index.js +37 -34
  26. package/dist/components/Header/index.js +2 -2
  27. package/dist/components/NewCreateItemFlow/NewCreateItemFlow.types.d.ts +21 -0
  28. package/dist/components/NewCreateItemFlow/NewCreateItemFlow.types.d.ts.map +1 -0
  29. package/dist/components/NewCreateItemFlow/index.d.ts +5 -0
  30. package/dist/components/NewCreateItemFlow/index.d.ts.map +1 -0
  31. package/dist/components/NewCreateItemFlow/index.js +93 -0
  32. package/dist/components/NewDynamicLayout/NewDynamicLayout.types.d.ts +26 -0
  33. package/dist/components/NewDynamicLayout/NewDynamicLayout.types.d.ts.map +1 -0
  34. package/dist/components/NewDynamicLayout/index.d.ts +15 -0
  35. package/dist/components/NewDynamicLayout/index.d.ts.map +1 -0
  36. package/dist/components/NewDynamicLayout/index.js +45 -0
  37. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.d.ts.map +1 -1
  38. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.js +6 -31
  39. package/dist/components/Notification/NotificationBody/NotificationPanelContent.js +2 -2
  40. package/dist/components/Notification/NotificationBody/NotificationTaskList.js +1 -2
  41. package/dist/components/Notification/index.js +1 -1
  42. package/dist/components/Table/AgGridHeader.d.ts.map +1 -1
  43. package/dist/components/Table/AgGridHeader.js +3 -1
  44. package/dist/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +1 -1
  45. package/dist/components/Table/Table.types.d.ts +4 -0
  46. package/dist/components/Table/Table.types.d.ts.map +1 -1
  47. package/dist/components/Table/filterUtils.d.ts +13 -0
  48. package/dist/components/Table/filterUtils.d.ts.map +1 -1
  49. package/dist/components/Table/filterUtils.js +18 -9
  50. package/dist/components/Table/index.d.ts.map +1 -1
  51. package/dist/components/Table/index.js +15 -5
  52. package/dist/components/Table/tableFunctions.d.ts +1 -0
  53. package/dist/components/Table/tableFunctions.d.ts.map +1 -1
  54. package/dist/components/Table/tableFunctions.js +2 -2
  55. package/dist/components/Table/tableHeader.d.ts +2 -1
  56. package/dist/components/Table/tableHeader.d.ts.map +1 -1
  57. package/dist/components/Table/tableHeader.js +2 -0
  58. package/dist/components/Table/tableMoreOptions.d.ts +2 -1
  59. package/dist/components/Table/tableMoreOptions.d.ts.map +1 -1
  60. package/dist/components/Table/tableMoreOptions.js +58 -14
  61. package/dist/components/Table/tableSettings.d.ts.map +1 -1
  62. package/dist/components/Table/tableSettings.js +3 -2
  63. package/dist/components/TableOld/index.d.ts.map +1 -1
  64. package/dist/components/TableOld/index.js +36 -10
  65. package/dist/components/TableOld/tableFunctions.d.ts +1 -0
  66. package/dist/components/TableOld/tableFunctions.d.ts.map +1 -1
  67. package/dist/components/TableOld/tableFunctions.js +2 -2
  68. package/dist/components/TableOld/tableHeader.d.ts +2 -1
  69. package/dist/components/TableOld/tableHeader.d.ts.map +1 -1
  70. package/dist/components/TableOld/tableHeader.js +2 -0
  71. package/dist/components/index.d.ts +5 -1
  72. package/dist/components/index.d.ts.map +1 -1
  73. package/dist/components/index.js +4 -0
  74. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts +17 -0
  75. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts.map +1 -0
  76. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.js +52 -0
  77. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.d.ts +12 -0
  78. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.d.ts.map +1 -0
  79. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.js +264 -0
  80. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.d.ts +39 -0
  81. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.d.ts.map +1 -0
  82. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.js +298 -0
  83. package/dist/components/shared/tableColumnSettings/columnsTabV36.d.ts +2 -0
  84. package/dist/components/shared/tableColumnSettings/columnsTabV36.d.ts.map +1 -0
  85. package/dist/components/shared/tableColumnSettings/columnsTabV36.js +1531 -0
  86. package/dist/components/shared/tableColumnSettings/index.d.ts +4 -0
  87. package/dist/components/shared/tableColumnSettings/index.d.ts.map +1 -0
  88. package/dist/components/shared/tableColumnSettings/tableSettingsV36.d.ts +41 -0
  89. package/dist/components/shared/tableColumnSettings/tableSettingsV36.d.ts.map +1 -0
  90. package/dist/components/shared/tableColumnSettings/tableSettingsV36.js +328 -0
  91. package/dist/i18n/I18nContext.d.ts.map +1 -1
  92. package/dist/i18n/I18nContext.js +1 -0
  93. package/dist/locales/de-DE.json.d.ts +12 -0
  94. package/dist/locales/de-DE.json.js +12 -0
  95. package/dist/locales/en-US.json.d.ts +13 -1
  96. package/dist/locales/en-US.json.js +13 -1
  97. package/dist/locales/es-ES.json.d.ts +678 -0
  98. package/dist/locales/es-ES.json.js +611 -0
  99. package/dist/locales/index.d.ts.map +1 -1
  100. package/dist/locales/index.js +11 -3
  101. package/dist/mcp-component-registry.json +102 -60
  102. package/dist/node_modules/@impactsmartsuite/impact-icons/dist/index.js +128 -75
  103. package/dist/node_modules/call-bind/index.js +1 -1
  104. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  105. package/dist/node_modules/moment/dist/locale/es.js +98 -0
  106. package/dist/node_modules/react-with-styles-interface-css/dist/index.js +1 -1
  107. package/dist/stories/LocaleDictionaryCollapse.d.ts.map +1 -1
  108. package/dist/stories/tableStoryDefaults.d.ts +18 -0
  109. package/dist/stories/tableStoryDefaults.d.ts.map +1 -0
  110. package/dist/stories/tableStoryManyColumns.d.ts +44 -0
  111. package/dist/stories/tableStoryManyColumns.d.ts.map +1 -0
  112. package/package.json +1 -1
@@ -1,15 +1,12 @@
1
- import { default as React } from 'react';
1
+ import { DynamicLayoutProps } from './DynamicLayout.types';
2
2
 
3
- interface DynamicLayoutProps {
4
- title?: React.ReactNode;
5
- description?: React.ReactNode;
6
- leftPanel?: React.ReactNode;
7
- rightContent: React.ReactElement;
8
- leftPanelWidth?: string | number;
9
- className?: string;
10
- footer?: React.ReactNode;
11
- [key: string]: unknown;
3
+ export type { DynamicLayoutProps, InjectedLayoutProps } from './DynamicLayout.types';
4
+ /**
5
+ * Two-panel layout: left panel (fixed width) and right content that receives
6
+ * contentRef and hasScroll for scroll detection.
7
+ */
8
+ export declare function DynamicLayout({ leftPanel, rightContent, leftPanelWidth, className, showStepper, ...props }: DynamicLayoutProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare namespace DynamicLayout {
10
+ var displayName: string;
12
11
  }
13
- export declare const DynamicLayout: ({ title, description, leftPanel, rightContent, leftPanelWidth, className, footer, ...props }: DynamicLayoutProps) => import("react/jsx-runtime").JSX.Element;
14
- export {};
15
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAE1D,OAAO,6BAA6B,CAAC;AAGrC,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,GAAI,8FAS3B,kBAAkB,4CAgCpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicLayout/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,6BAA6B,CAAC;AAErC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAErF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,cAAc,EACd,SAAc,EACd,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE,kBAAkB,2CA+CpB;yBAtDe,aAAa"}
@@ -1,45 +1,48 @@
1
- !function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes ia-shimmer-horizontal{0%{background-position:100% 0}to{background-position:0 0}}@keyframes ia-shimmer-vertical{0%{background-position:0 100%}to{background-position:0 0}}@property --ia-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ia-shimmer-circular{0%{--ia-shimmer-angle:0deg}to{--ia-shimmer-angle:360deg}}.ia-shimmer{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ltr{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ltr{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--rtl{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(270deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--rtl{animation:none;background-image:linear-gradient(270deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--btt{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--btt{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ttb{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ttb{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--circular{background-color:#e8edf5;background-repeat:no-repeat;--ia-shimmer-angle:0deg;animation:ia-shimmer-circular 1.6s linear infinite;background-image:conic-gradient(from var(--ia-shimmer-angle),#eceef4 0deg,#e8edf5 80deg,#d5dbe8 160deg,#e8edf5 260deg,#eceef4 1turn);background-size:100% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--circular{animation:none;background-image:conic-gradient(from 0deg,#eceef4,#e8edf5,#d5dbe8,#e8edf5 1turn)}}:root{--ia-focus-color:#4259ee;--ia-focus-bg:#fff;--ia-focus-ring-width:2px;--ia-focus-ring-offset:2px;--ia-modal-backdrop:#0d152ccc}*,:after,:before{box-sizing:border-box}body,textarea{font-style:normal;font-weight:500}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:initial}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{font-family:Manrope,sans-serif}.impact-notification-separator{background-color:#d9dde7;display:inline-block;height:16px;width:1.5px}.impact-notification-horizontal-separator{background-color:#d9dde7;display:inline-block;height:1px;width:100%}ul.storybook-order-list{list-style-type:disc;padding-left:12px}ul.storybook-order-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-list li strong{font-weight:800}ul.storybook-order-child-list{list-style-type:circle;padding-left:20px}ul.storybook-order-child-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-child-list li strong{font-weight:800}.dynamic-layout-container{background-color:#fff;border-radius:24px!important;box-shadow:0 0 4px #ababab40;display:flex;flex-direction:column;top:0;right:24px;bottom:24px;left:24px;justify-content:center;position:absolute}.dynamic-layout-container .dynamic-layout-header{border-bottom:1px solid #d9dde7;display:flex;flex-direction:column;gap:8px;padding:24px}.dynamic-layout-container .dynamic-layout-header h1{color:#0d152c;font-size:24px;font-weight:800;line-height:36px}.dynamic-layout-container .dynamic-layout-header p{color:#7a8294;font-size:12px;font-weight:500;line-height:16px;text-transform:capitalize}.dynamic-layout-container .dynamic-layout-body{background-position:100% 0;background-repeat:no-repeat;background-size:contain;border-bottom-right-radius:24px;display:flex;flex:1;min-height:0;overflow:hidden;padding:24px}.dynamic-layout-container .dynamic-layout-body .left-panel{border-right:1px solid #d9dde7;padding-right:24px;width:var(--left-panel-width,220px)}.dynamic-layout-container .dynamic-layout-body .left-panel .left-panel-content{display:flex;flex-direction:column;height:100%;justify-content:space-between}.dynamic-layout-container .dynamic-layout-body .left-panel .left-panel-image{height:130px;margin:0 auto;width:132px}.dynamic-layout-container .dynamic-layout-body .right-column{display:flex;flex-direction:column;justify-content:space-between;min-height:0;padding-left:24px;width:calc(100% - var(--left-panel-width, 220px))}.dynamic-layout-container .dynamic-layout-body .right-column .right-content{display:flex;flex:1;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto}.dynamic-layout-container .dynamic-layout-body .right-column .dynamic-layout-footer{border-top:1px solid #d9dde7;display:flex;justify-content:space-between;padding-top:24px}.dynamic-layout-container .dynamic-layout-body .right-column .dynamic-layout-footer .footer-right-group{align-items:center;display:flex;gap:12px}@media screen and (min-width:1400px) and (max-width:1600px){.dynamic-layout-body{padding:20px}.left-panel-image{width:100%}}@media screen and (max-width:1399px){.dynamic-layout-body{padding:16px}.left-panel{flex-shrink:0;padding-right:16px;width:fit-content}.right-column{flex:1;padding-left:16px;width:auto}.left-panel-image{height:auto;max-width:132px;width:100%}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}}();
1
+ !function(){"use strict";try{if("undefined"!=typeof document){var t=document.createElement("style");t.appendChild(document.createTextNode('.dynamic-layout-container{background-color:#fff;border-radius:8px;box-shadow:0 0 4px #ababab40;box-sizing:border-box;display:flex;top:90px;right:230px;bottom:90px;left:230px;position:absolute}.dynamic-layout-container .left-panel{border-right:1px solid #d9dde7;box-sizing:border-box;padding:100px 48px;width:375px}.dynamic-layout-container .left-panel h1{color:#1a1a1a;font-size:24px;font-weight:600;margin-bottom:16px}.dynamic-layout-container .left-panel p{color:#666;font-size:14px;line-height:1.5}.dynamic-layout-container .right-content{background-color:#fff;border-radius:0 8px 8px 0;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:100px 120px;width:calc(100% - 375px)}.dynamic-layout-container .right-content.with-stepper{padding-top:50px}.dynamic-layout-container .right-content .content-wrapper{flex:1;overflow-y:auto}.dynamic-layout-container .right-content .content-wrapper.no-scroll+.actions:before{display:none}.dynamic-layout-container .right-content .content-wrapper .heading{margin-bottom:32px}.dynamic-layout-container .right-content .content-wrapper .heading h2{color:#1a1a1a;font-size:20px;font-weight:600;margin-bottom:8px}.dynamic-layout-container .right-content .content-wrapper .heading .field-label{color:#666;font-size:14px;margin-bottom:8px}.dynamic-layout-container .right-content .content-wrapper .form-section{margin-bottom:32px}.dynamic-layout-container .right-content .content-wrapper .form-section .field-group{display:flex;flex-wrap:wrap;gap:24px;justify-content:flex-start;margin-bottom:24px}.dynamic-layout-container .right-content .actions{background:#fff;display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:12px;position:relative}.dynamic-layout-container .right-content .actions:before{background:#d9dde7;content:"";height:1px;left:-25px;position:absolute;right:-25px;top:0}@media screen and (min-width:1400px) and (max-width:1600px){.dynamic-layout-container{top:90px;right:150px;bottom:90px;left:150px}.dynamic-layout-container .right-content{padding:50px 90px}.dynamic-layout-container .left-panel-image{width:100%}}@media screen and (max-width:1399px){.dynamic-layout-container .left-panel{width:300px}.dynamic-layout-container .right-content{width:calc(100% - 300px)}.dynamic-layout-container{top:90px;right:100px;bottom:90px;left:100px}.dynamic-layout-container .right-content{padding:50px 60px}.dynamic-layout-container .left-panel-image{width:100%}}')),document.head.appendChild(t)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}}();
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
- import React__default, { useRef } from "react";
3
+ import React__default, { useRef, useState, useLayoutEffect } from "react";
4
4
 
5
- import { getAssetUrl } from "../../utils/assetBase.js";
6
- import Box from "../../node_modules/@mui/material/Box/Box.js";
7
- const DynamicLayout = ({
8
- title,
9
- description,
5
+ function DynamicLayout({
10
6
  leftPanel,
11
7
  rightContent,
12
8
  leftPanelWidth,
13
- className,
14
- footer,
9
+ className = "",
10
+ showStepper = false,
15
11
  ...props
16
- }) => {
12
+ }) {
17
13
  const contentRef = useRef(null);
18
- const contentBackgroundImage = getAssetUrl("images/review-tech-bg.webp");
19
- return /* @__PURE__ */ jsxs(Box, { className: `dynamic-layout-container ${className || ""}`, ...props, children: [
20
- /* @__PURE__ */ jsxs(Box, { className: "dynamic-layout-header", children: [
21
- /* @__PURE__ */ jsx("h1", { children: title }),
22
- description && /* @__PURE__ */ jsx("p", { children: description })
23
- ] }),
24
- /* @__PURE__ */ jsxs(
25
- Box,
26
- {
27
- className: "dynamic-layout-body",
28
- style: leftPanelWidth ? {
29
- "--left-panel-width": typeof leftPanelWidth === "number" ? `${leftPanelWidth}px` : leftPanelWidth
30
- } : void 0,
31
- sx: { backgroundImage: `url(${contentBackgroundImage})` },
32
- children: [
33
- /* @__PURE__ */ jsx(Box, { className: "left-panel", children: leftPanel }),
34
- /* @__PURE__ */ jsxs(Box, { className: "right-column", children: [
35
- /* @__PURE__ */ jsx(Box, { className: "right-content", children: React__default.cloneElement(rightContent, { contentRef }) }),
36
- footer && /* @__PURE__ */ jsx(Box, { className: "dynamic-layout-footer", children: footer })
37
- ] })
38
- ]
39
- }
40
- )
14
+ const [hasScroll, setHasScroll] = useState(false);
15
+ useLayoutEffect(() => {
16
+ const el = contentRef.current;
17
+ const checkScroll = () => {
18
+ if (!el) return;
19
+ setHasScroll(el.scrollHeight > el.clientHeight);
20
+ };
21
+ checkScroll();
22
+ window.addEventListener("resize", checkScroll);
23
+ const resizeObserver = typeof ResizeObserver !== "undefined" ? new ResizeObserver(checkScroll) : null;
24
+ if (resizeObserver && el) resizeObserver.observe(el);
25
+ const mutationObserver = typeof MutationObserver !== "undefined" ? new MutationObserver(checkScroll) : null;
26
+ if (mutationObserver && el) {
27
+ mutationObserver.observe(el, {
28
+ childList: true,
29
+ subtree: true,
30
+ characterData: true,
31
+ attributes: true
32
+ });
33
+ }
34
+ return () => {
35
+ window.removeEventListener("resize", checkScroll);
36
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
37
+ mutationObserver == null ? void 0 : mutationObserver.disconnect();
38
+ };
39
+ }, [rightContent]);
40
+ return /* @__PURE__ */ jsxs("div", { className: `dynamic-layout-container ${className}`.trim(), ...props, children: [
41
+ /* @__PURE__ */ jsx("div", { className: "left-panel", style: { width: leftPanelWidth }, children: leftPanel }),
42
+ /* @__PURE__ */ jsx("div", { className: `right-content ${showStepper ? "with-stepper" : ""}`, children: React__default.cloneElement(rightContent, { contentRef, hasScroll }) })
41
43
  ] });
42
- };
44
+ }
45
+ DynamicLayout.displayName = "DynamicLayout";
43
46
  export {
44
47
  DynamicLayout
45
48
  };
@@ -19,8 +19,8 @@ const MessageIcon = getAssetUrl("icons/message-icon.svg");
19
19
  const NotificationDNDIcon = getAssetUrl("icons/notification-dnd.svg");
20
20
  const CommentIconHeaderSvg = getAssetUrl("icons/comment-gray.svg");
21
21
  const GlobalIcon = getAssetUrl("icons/Globe.svg");
22
- const FLAG_WIDTH = 20;
23
- const FLAG_HEIGHT = 14;
22
+ const FLAG_WIDTH = 24;
23
+ const FLAG_HEIGHT = 20;
24
24
  const renderLanguageFlag = (icon) => {
25
25
  if (!icon) {
26
26
  return /* @__PURE__ */ jsx("span", { className: "impact-header-language-flag-placeholder" });
@@ -0,0 +1,21 @@
1
+ import { ReactNode, CSSProperties, Ref } from 'react';
2
+ import { ButtonProps } from '../Button/Button.types';
3
+
4
+ export interface NewCreateItemFlowProps {
5
+ leftPanelWidth?: string | number;
6
+ leftPanelContent?: ReactNode;
7
+ leftPanelImage?: ReactNode;
8
+ rightContent?: ReactNode;
9
+ title?: string;
10
+ description?: string;
11
+ prevButtonProps?: Partial<ButtonProps>;
12
+ extraButtonProp?: ReactNode;
13
+ nextButtonProps?: Partial<ButtonProps>;
14
+ customCSS?: CSSProperties;
15
+ className?: string;
16
+ }
17
+ export interface RightContentPanelProps {
18
+ contentRef?: Ref<HTMLDivElement>;
19
+ children?: ReactNode;
20
+ }
21
+ //# sourceMappingURL=NewCreateItemFlow.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewCreateItemFlow.types.d.ts","sourceRoot":"","sources":["../../../src/components/NewCreateItemFlow/NewCreateItemFlow.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NewCreateItemFlowProps } from './NewCreateItemFlow.types';
3
+
4
+ export declare const NewCreateItemFlow: React.MemoExoticComponent<({ leftPanelWidth, leftPanelContent, leftPanelImage, rightContent, title, description, prevButtonProps, extraButtonProp, nextButtonProps, customCSS, className, }: NewCreateItemFlowProps) => import("react/jsx-runtime").JSX.Element>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NewCreateItemFlow/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAOpC,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,iCAAiC,CAAC;AAiGzC,eAAO,MAAM,iBAAiB,+LAnD3B,sBAAsB,6CAmDwC,CAAC"}
@@ -0,0 +1,93 @@
1
+ !function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes ia-shimmer-horizontal{0%{background-position:100% 0}to{background-position:0 0}}@keyframes ia-shimmer-vertical{0%{background-position:0 100%}to{background-position:0 0}}@property --ia-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ia-shimmer-circular{0%{--ia-shimmer-angle:0deg}to{--ia-shimmer-angle:360deg}}.ia-shimmer{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ltr{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ltr{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--rtl{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(270deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--rtl{animation:none;background-image:linear-gradient(270deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--btt{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--btt{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ttb{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ttb{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--circular{background-color:#e8edf5;background-repeat:no-repeat;--ia-shimmer-angle:0deg;animation:ia-shimmer-circular 1.6s linear infinite;background-image:conic-gradient(from var(--ia-shimmer-angle),#eceef4 0deg,#e8edf5 80deg,#d5dbe8 160deg,#e8edf5 260deg,#eceef4 1turn);background-size:100% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--circular{animation:none;background-image:conic-gradient(from 0deg,#eceef4,#e8edf5,#d5dbe8,#e8edf5 1turn)}}:root{--ia-focus-color:#4259ee;--ia-focus-bg:#fff;--ia-focus-ring-width:2px;--ia-focus-ring-offset:2px;--ia-modal-backdrop:#0d152ccc}*,:after,:before{box-sizing:border-box}body,textarea{font-style:normal;font-weight:500}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:initial}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{font-family:Manrope,sans-serif}.impact-notification-separator{background-color:#d9dde7;display:inline-block;height:16px;width:1.5px}.impact-notification-horizontal-separator{background-color:#d9dde7;display:inline-block;height:1px;width:100%}ul.storybook-order-list{list-style-type:disc;padding-left:12px}ul.storybook-order-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-list li strong{font-weight:800}ul.storybook-order-child-list{list-style-type:circle;padding-left:20px}ul.storybook-order-child-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-child-list li strong{font-weight:800}.content-wrapper{flex:1;min-height:100%}.form-section{width:100%}.form-section .form-section-title{color:#0d152c;font-size:16px;font-weight:600;margin-bottom:12px}.form-section .form-filter-block{background:#f7f9fd;border-radius:8px;margin-top:20px;padding:12px}.form-section .form-filter-block .form-filter-title{color:#0d152c;font-size:14px;font-weight:600;margin-bottom:16px}.form-section .form-filter-block .form-filter-fields{display:flex;flex-wrap:wrap;gap:24px}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}}();
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React__default, { memo } from "react";
4
+ import default_1 from "../../node_modules/@mui/icons-material/ChevronLeft.js";
5
+ import default_1$1 from "../../node_modules/@mui/icons-material/ChevronRight.js";
6
+ import { getAssetUrl } from "../../utils/assetBase.js";
7
+ import { Button } from "../Button/index.js";
8
+ import { NewDynamicLayout } from "../NewDynamicLayout/index.js";
9
+
10
+ import { useTranslation } from "../../i18n/useTranslation.js";
11
+ const createFlowImage = getAssetUrl("icons/create-item-flow-img.webp");
12
+ const LeftPanelContent = ({ leftPanelContent, leftPanelImage }) => {
13
+ const { t } = useTranslation();
14
+ return /* @__PURE__ */ jsxs("div", { className: "left-panel-content", children: [
15
+ leftPanelContent,
16
+ leftPanelImage ? leftPanelImage : /* @__PURE__ */ jsx(
17
+ "img",
18
+ {
19
+ alt: t("createItemFlow.imageAlt"),
20
+ className: "left-panel-image",
21
+ src: createFlowImage
22
+ }
23
+ )
24
+ ] });
25
+ };
26
+ const RightContentPanel = ({ contentRef, children }) => /* @__PURE__ */ jsx("div", { ref: contentRef, className: "content-wrapper", children });
27
+ const NewCreateItemFlowComponent = ({
28
+ leftPanelWidth,
29
+ leftPanelContent = null,
30
+ leftPanelImage = null,
31
+ rightContent,
32
+ title,
33
+ description = "",
34
+ prevButtonProps = {},
35
+ extraButtonProp,
36
+ nextButtonProps = {},
37
+ customCSS,
38
+ className
39
+ }) => {
40
+ const { t } = useTranslation();
41
+ const {
42
+ children: prevLabel = t("createItemFlow.back"),
43
+ icon: prevIcon,
44
+ ...restPrevProps
45
+ } = prevButtonProps;
46
+ const {
47
+ children: nextLabel = t("createItemFlow.next"),
48
+ icon: nextIcon,
49
+ ...restNextProps
50
+ } = nextButtonProps;
51
+ const resolvedTitle = title ?? t("createItemFlow.defaultTitle");
52
+ return /* @__PURE__ */ jsx(
53
+ NewDynamicLayout,
54
+ {
55
+ className,
56
+ description,
57
+ footer: /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
58
+ /* @__PURE__ */ jsx(
59
+ Button,
60
+ {
61
+ icon: "icon" in prevButtonProps ? prevIcon : /* @__PURE__ */ jsx(default_1, {}),
62
+ variant: restPrevProps.variant ?? "tertiary",
63
+ ...restPrevProps,
64
+ children: prevLabel
65
+ }
66
+ ),
67
+ /* @__PURE__ */ jsxs("div", { className: "footer-right-group", children: [
68
+ extraButtonProp,
69
+ /* @__PURE__ */ jsx(
70
+ Button,
71
+ {
72
+ icon: "icon" in nextButtonProps ? nextIcon : /* @__PURE__ */ jsx(default_1$1, {}),
73
+ iconPlacement: nextButtonProps.iconPlacement ?? "right",
74
+ variant: restNextProps.variant ?? "primary",
75
+ ...restNextProps,
76
+ children: nextLabel
77
+ }
78
+ )
79
+ ] })
80
+ ] }),
81
+ leftPanel: /* @__PURE__ */ jsx(LeftPanelContent, { leftPanelContent, leftPanelImage }),
82
+ leftPanelWidth,
83
+ rightContent: /* @__PURE__ */ jsx(RightContentPanel, { children: rightContent }),
84
+ style: customCSS,
85
+ title: resolvedTitle
86
+ }
87
+ );
88
+ };
89
+ const NewCreateItemFlow = memo(NewCreateItemFlowComponent);
90
+ NewCreateItemFlow.displayName = "NewCreateItemFlow";
91
+ export {
92
+ NewCreateItemFlow
93
+ };
@@ -0,0 +1,26 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { BaseComponentProps } from '../../types';
3
+
4
+ export interface InjectedLayoutProps {
5
+ contentRef: React.RefObject<HTMLDivElement | null>;
6
+ hasScroll: boolean;
7
+ }
8
+ export interface NewDynamicLayoutProps extends BaseComponentProps {
9
+ /**
10
+ * Left panel content (e.g. title, description, image)
11
+ */
12
+ leftPanel: ReactNode;
13
+ /**
14
+ * Right side content (single element; receives contentRef and hasScroll via cloneElement)
15
+ */
16
+ rightContent: ReactElement<InjectedLayoutProps>;
17
+ /**
18
+ * Width of the left panel (e.g. "375px" or "300px")
19
+ */
20
+ leftPanelWidth?: string | number;
21
+ /**
22
+ * Whether to show stepper styling on the right content area
23
+ */
24
+ showStepper?: boolean;
25
+ }
26
+ //# sourceMappingURL=NewDynamicLayout.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewDynamicLayout.types.d.ts","sourceRoot":"","sources":["../../../src/components/NewDynamicLayout/NewDynamicLayout.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+
3
+ interface NewDynamicLayoutProps {
4
+ title?: React.ReactNode;
5
+ description?: React.ReactNode;
6
+ leftPanel?: React.ReactNode;
7
+ rightContent: React.ReactElement;
8
+ leftPanelWidth?: string | number;
9
+ className?: string;
10
+ footer?: React.ReactNode;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare const NewDynamicLayout: ({ title, description, leftPanel, rightContent, leftPanelWidth, className, footer, ...props }: NewDynamicLayoutProps) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NewDynamicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAE1D,OAAO,gCAAgC,CAAC;AAGxC,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,GAAI,8FAS9B,qBAAqB,4CAgCvB,CAAC"}
@@ -0,0 +1,45 @@
1
+ !function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes ia-shimmer-horizontal{0%{background-position:100% 0}to{background-position:0 0}}@keyframes ia-shimmer-vertical{0%{background-position:0 100%}to{background-position:0 0}}@property --ia-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ia-shimmer-circular{0%{--ia-shimmer-angle:0deg}to{--ia-shimmer-angle:360deg}}.ia-shimmer{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ltr{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ltr{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--rtl{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(270deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--rtl{animation:none;background-image:linear-gradient(270deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--btt{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--btt{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ttb{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ttb{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--circular{background-color:#e8edf5;background-repeat:no-repeat;--ia-shimmer-angle:0deg;animation:ia-shimmer-circular 1.6s linear infinite;background-image:conic-gradient(from var(--ia-shimmer-angle),#eceef4 0deg,#e8edf5 80deg,#d5dbe8 160deg,#e8edf5 260deg,#eceef4 1turn);background-size:100% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--circular{animation:none;background-image:conic-gradient(from 0deg,#eceef4,#e8edf5,#d5dbe8,#e8edf5 1turn)}}:root{--ia-focus-color:#4259ee;--ia-focus-bg:#fff;--ia-focus-ring-width:2px;--ia-focus-ring-offset:2px;--ia-modal-backdrop:#0d152ccc}*,:after,:before{box-sizing:border-box}body,textarea{font-style:normal;font-weight:500}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:initial}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{font-family:Manrope,sans-serif}.impact-notification-separator{background-color:#d9dde7;display:inline-block;height:16px;width:1.5px}.impact-notification-horizontal-separator{background-color:#d9dde7;display:inline-block;height:1px;width:100%}ul.storybook-order-list{list-style-type:disc;padding-left:12px}ul.storybook-order-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-list li strong{font-weight:800}ul.storybook-order-child-list{list-style-type:circle;padding-left:20px}ul.storybook-order-child-list li{font-size:12px;line-height:20px;padding-bottom:8px}ul.storybook-order-child-list li strong{font-weight:800}.new-dynamic-layout-container{background-color:#fff;border-radius:24px!important;box-shadow:0 0 4px #ababab40;display:flex;flex-direction:column;top:0;right:24px;bottom:24px;left:24px;justify-content:center;position:absolute}.new-dynamic-layout-container .new-dynamic-layout-header{border-bottom:1px solid #d9dde7;display:flex;flex-direction:column;gap:8px;padding:24px}.new-dynamic-layout-container .new-dynamic-layout-header h1{color:#0d152c;font-size:24px;font-weight:800;line-height:36px}.new-dynamic-layout-container .new-dynamic-layout-header p{color:#7a8294;font-size:12px;font-weight:500;line-height:16px;text-transform:capitalize}.new-dynamic-layout-container .new-dynamic-layout-body{background-position:100% 0;background-repeat:no-repeat;background-size:contain;border-bottom-right-radius:24px;display:flex;flex:1;min-height:0;overflow:hidden;padding:24px}.new-dynamic-layout-container .new-dynamic-layout-body .left-panel{border-right:1px solid #d9dde7;padding-right:24px;width:var(--left-panel-width,220px)}.new-dynamic-layout-container .new-dynamic-layout-body .left-panel .left-panel-content{display:flex;flex-direction:column;height:100%;justify-content:space-between}.new-dynamic-layout-container .new-dynamic-layout-body .left-panel .left-panel-image{height:130px;margin:0 auto;width:132px}.new-dynamic-layout-container .new-dynamic-layout-body .right-column{display:flex;flex-direction:column;justify-content:space-between;min-height:0;padding-left:24px;width:calc(100% - var(--left-panel-width, 220px))}.new-dynamic-layout-container .new-dynamic-layout-body .right-column .right-content{display:flex;flex:1;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto}.new-dynamic-layout-container .new-dynamic-layout-body .right-column .new-dynamic-layout-footer{border-top:1px solid #d9dde7;display:flex;justify-content:space-between;padding-top:24px}.new-dynamic-layout-container .new-dynamic-layout-body .right-column .new-dynamic-layout-footer .footer-right-group{align-items:center;display:flex;gap:12px}@media screen and (min-width:1400px) and (max-width:1600px){.new-dynamic-layout-body{padding:20px}.left-panel-image{width:100%}}@media screen and (max-width:1399px){.new-dynamic-layout-body{padding:16px}.left-panel{flex-shrink:0;padding-right:16px;width:fit-content}.right-column{flex:1;padding-left:16px;width:auto}.left-panel-image{height:auto;max-width:132px;width:100%}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}}();
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import React__default, { useRef } from "react";
4
+
5
+ import { getAssetUrl } from "../../utils/assetBase.js";
6
+ import Box from "../../node_modules/@mui/material/Box/Box.js";
7
+ const NewDynamicLayout = ({
8
+ title,
9
+ description,
10
+ leftPanel,
11
+ rightContent,
12
+ leftPanelWidth,
13
+ className,
14
+ footer,
15
+ ...props
16
+ }) => {
17
+ const contentRef = useRef(null);
18
+ const contentBackgroundImage = getAssetUrl("images/review-tech-bg.webp");
19
+ return /* @__PURE__ */ jsxs(Box, { className: `new-dynamic-layout-container ${className || ""}`, ...props, children: [
20
+ /* @__PURE__ */ jsxs(Box, { className: "new-dynamic-layout-header", children: [
21
+ /* @__PURE__ */ jsx("h1", { children: title }),
22
+ description && /* @__PURE__ */ jsx("p", { children: description })
23
+ ] }),
24
+ /* @__PURE__ */ jsxs(
25
+ Box,
26
+ {
27
+ className: "new-dynamic-layout-body",
28
+ style: leftPanelWidth ? {
29
+ "--left-panel-width": typeof leftPanelWidth === "number" ? `${leftPanelWidth}px` : leftPanelWidth
30
+ } : void 0,
31
+ sx: { backgroundImage: `url(${contentBackgroundImage})` },
32
+ children: [
33
+ /* @__PURE__ */ jsx(Box, { className: "left-panel", children: leftPanel }),
34
+ /* @__PURE__ */ jsxs(Box, { className: "right-column", children: [
35
+ /* @__PURE__ */ jsx(Box, { className: "right-content", children: React__default.cloneElement(rightContent, { contentRef }) }),
36
+ footer && /* @__PURE__ */ jsx(Box, { className: "new-dynamic-layout-footer", children: footer })
37
+ ] })
38
+ ]
39
+ }
40
+ )
41
+ ] });
42
+ };
43
+ export {
44
+ NewDynamicLayout
45
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationListItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Notification/NotificationBody/NotificationList/NotificationListItem.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,wBAAwB,EAExB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAiGlC,UAAU,yBAAyB;IACjC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmDD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,IAAI,EACJ,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,aAAqB,EACrB,qBAA6B,GAC9B,EAAE,yBAAyB,2CA4Z3B"}
1
+ {"version":3,"file":"NotificationListItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Notification/NotificationBody/NotificationList/NotificationListItem.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,wBAAwB,EAExB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAoGlC,UAAU,yBAAyB;IACjC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmDD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,IAAI,EACJ,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,aAAqB,EACrB,qBAA6B,GAC9B,EAAE,yBAAyB,2CA0Y3B"}
@@ -1,6 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useState, useRef, useCallback, useEffect, useMemo } from "react";
3
- import { NotificationRead as NotificationRead_default, NotificationBookmark as NotificationBookmark_default, BookMarkedFill as BookMarkedFill_default } from "../../../../node_modules/@impactsmartsuite/impact-icons/dist/index.js";
4
3
  import default_1$1 from "../../../../node_modules/@mui/icons-material/BookmarkBorderOutlined.js";
5
4
  import default_1 from "../../../../node_modules/@mui/icons-material/DeleteOutlineOutlined.js";
6
5
  import default_1$2 from "../../../../node_modules/@mui/icons-material/FileDownloadOutlined.js";
@@ -13,6 +12,9 @@ import { Tooltip } from "../../../Tooltip/index.js";
13
12
  import { useTranslation } from "../../../../i18n/useTranslation.js";
14
13
  const OpenInNewIcon = getAssetUrl("icons/OpenInNew.svg");
15
14
  const SyncReloadIcon = getAssetUrl("icons/SyncReload.svg");
15
+ const NotificationReadIcon = getAssetUrl("icons/notification-read.svg");
16
+ const NotificationBookmarkIcon = getAssetUrl("icons/notification-bookmark.svg");
17
+ const BookMarkedFillIcon = getAssetUrl("icons/bookMarkedFill.svg");
16
18
  const NOTIFICATION_DESCRIPTION_VISIBLE_MAX = 150;
17
19
  function getVisibleTextLengthFromHtml(html) {
18
20
  if (!html) {
@@ -299,32 +301,14 @@ function NotificationListItem({
299
301
  list.titleIconsContent
300
302
  ] }),
301
303
  showHeaderIcons && /* @__PURE__ */ jsx("span", { className: "impact-notification-separator" }),
302
- list.showNOverdueIcon && /* @__PURE__ */ jsx(Tooltip, { orientation: "top", title: t("notification.noOverdue"), variant: "tertiary", children: /* @__PURE__ */ jsx(
303
- NotificationRead_default,
304
- {
305
- "aria-hidden": void 0,
306
- "aria-label": t("notification.readAlt"),
307
- height: 16,
308
- role: "img",
309
- width: 16
310
- }
311
- ) }),
304
+ list.showNOverdueIcon && /* @__PURE__ */ jsx(Tooltip, { orientation: "top", title: t("notification.noOverdue"), variant: "tertiary", children: /* @__PURE__ */ jsx("img", { alt: "notification-read", src: NotificationReadIcon }) }),
312
305
  list.showFastApproachingIcon && /* @__PURE__ */ jsx(
313
306
  Tooltip,
314
307
  {
315
308
  orientation: "top",
316
309
  title: t("notification.fastApproaching"),
317
310
  variant: "tertiary",
318
- children: /* @__PURE__ */ jsx(
319
- NotificationBookmark_default,
320
- {
321
- "aria-hidden": void 0,
322
- "aria-label": t("notification.bookmarkAlt"),
323
- height: 16,
324
- role: "img",
325
- width: 16
326
- }
327
- )
311
+ children: /* @__PURE__ */ jsx("img", { alt: "notification-bookmark", src: NotificationBookmarkIcon })
328
312
  }
329
313
  )
330
314
  ]
@@ -362,16 +346,7 @@ function NotificationListItem({
362
346
  {
363
347
  className: list.bookMarked ? "impact-notification-list-item-bookmark-btn" : void 0,
364
348
  disabled: list.showBookMark,
365
- icon: list.bookMarked ? /* @__PURE__ */ jsx(
366
- BookMarkedFill_default,
367
- {
368
- "aria-hidden": void 0,
369
- "aria-label": t("notification.bookmarked"),
370
- height: 20,
371
- role: "img",
372
- width: 20
373
- }
374
- ) : /* @__PURE__ */ jsx(default_1$1, {}),
349
+ icon: list.bookMarked ? /* @__PURE__ */ jsx("img", { alt: "bookmarked", src: BookMarkedFillIcon }) : /* @__PURE__ */ jsx(default_1$1, {}),
375
350
  size: "small",
376
351
  variant: "text",
377
352
  onClick: (event) => {
@@ -54,7 +54,6 @@ function NotificationPanelContent({
54
54
  isMultiSelectFilter: panel.isMultiSelectFilter,
55
55
  isWithSearch,
56
56
  listTypes,
57
- onSearchChange,
58
57
  moveToPendingDropdownOptions,
59
58
  notificationList,
60
59
  notificationPanels,
@@ -64,7 +63,8 @@ function NotificationPanelContent({
64
63
  showBadgeLoader,
65
64
  showNotificationListLoader,
66
65
  type: panel.value,
67
- onNotificationScrollToBottom
66
+ onNotificationScrollToBottom,
67
+ onSearchChange
68
68
  }
69
69
  );
70
70
  }
@@ -102,8 +102,7 @@ function NotificationTaskList({
102
102
  }, [debouncedSearch]);
103
103
  const handleSearch = useCallback(
104
104
  (event) => {
105
- var _a2;
106
- const value = ((_a2 = event == null ? void 0 : event.target) == null ? void 0 : _a2.value) ?? "";
105
+ const value = event.target.value ?? "";
107
106
  setSearchInput(value);
108
107
  debouncedSearch(value, event);
109
108
  },
@@ -100,7 +100,6 @@ function Notification({
100
100
  isHoverOnCard,
101
101
  isWithSearch,
102
102
  moveToPendingDropdownOptions,
103
- onSearchChange,
104
103
  notificationPanels: notificationPanels ?? [],
105
104
  notificationTabs: notificationTabs ?? [],
106
105
  scrollThreshold,
@@ -108,6 +107,7 @@ function Notification({
108
107
  showBadgeLoader,
109
108
  showNotificationListLoader,
110
109
  onNotificationScrollToBottom,
110
+ onSearchChange,
111
111
  onSettingButtonClick
112
112
  }
113
113
  ) }),
@@ -1 +1 @@
1
- {"version":3,"file":"AgGridHeader.d.ts","sourceRoot":"","sources":["../../../src/components/Table/AgGridHeader.tsx"],"names":[],"mappings":"AA8BA,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,oBAA2B,EAC3B,GAAG,IAAI,EACR;;;;;;;;;;CAAA,kDA+8BA;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AgGridHeader.d.ts","sourceRoot":"","sources":["../../../src/components/Table/AgGridHeader.tsx"],"names":[],"mappings":"AA8BA,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,oBAA2B,EAC3B,GAAG,IAAI,EACR;;;;;;;;;;CAAA,kDAi9BA;AAED,eAAe,YAAY,CAAC"}
@@ -649,7 +649,9 @@ function AgGridHeader({
649
649
  iconClickOnDisabled: (_X = (_W = rest.column) == null ? void 0 : _W.colDef) == null ? void 0 : _X.toShowDuplicateColumnInAdvanceSearch,
650
650
  inputProps: {
651
651
  ...isNumericSearchColumn ? {
652
- inputMode: "decimal",
652
+ // "text" so Shift+Minus (_) is not blocked by decimal inputMode; keys are
653
+ // still validated in handleNumericKeyDown / isPartialNumericInput.
654
+ inputMode: "text",
653
655
  onKeyDown: handleNumericKeyDown,
654
656
  onPaste: (e) => {
655
657
  handleNumericPaste(e, applySearchText);
@@ -277,7 +277,7 @@ const NewAdvanceSearchModalItem = ({
277
277
  Input,
278
278
  {
279
279
  inputProps: isNumericColumn ? {
280
- inputMode: "decimal",
280
+ inputMode: "text",
281
281
  onKeyDown: handleNumericKeyDown,
282
282
  onPaste: (event) => {
283
283
  handleNumericPaste(event, valueField.onChange);
@@ -1,8 +1,12 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { AgGridReactProps } from 'ag-grid-react';
3
3
 
4
+ /** Columns tab in table settings: legacy nested tree, or TableV36-style lazy mount + virtualization. */
5
+ export type ColumnSettingsMode = 'legacy' | 'v36';
4
6
  /** Table wraps AG Grid but uses string tokens for row density; omit AG Grid's numeric-only `rowHeight`. */
5
7
  export interface TableProps extends Omit<AgGridReactProps, 'rowHeight'> {
8
+ /** @default 'legacy' */
9
+ columnSettingsMode?: ColumnSettingsMode;
6
10
  tableHeader?: string;
7
11
  rowHeight?: 'comfort' | 'compact' | number;
8
12
  height?: string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,2GAA2G;AAC3G,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,wGAAwG;AACxG,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElD,2GAA2G;AAC3G,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;IACrE,wBAAwB;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -30,10 +30,18 @@ export declare const roundedFilterValueGetter: (decimals?: number) => (params: a
30
30
  /**
31
31
  * Matches any value that is, or could still become, a decimal number.
32
32
  * Intermediate states such as "", "-", "1." are allowed so the user can keep typing.
33
+ * Underscores are also allowed between digits (and trailing, mid-type) since they are
34
+ * used as a digit-group separator by some data sources — e.g. "124_56", "1_234_567" —
35
+ * mirroring the underscore support already in `cleanNumericValue`/`GROUPED_DIGITS`.
33
36
  * @param {string} value - The candidate input value
34
37
  * @returns {boolean} - true when the value may be entered into a numeric field
35
38
  */
36
39
  export declare const isPartialNumericInput: (value: any) => boolean;
40
+ /**
41
+ * Maps a keydown event to the character that would be inserted into a numeric field.
42
+ * Shift+Minus is often reported as key "-" (not "_"), which must still become "_".
43
+ */
44
+ export declare const resolveNumericKeyInsert: (event: any) => any;
37
45
  /**
38
46
  * Inserts a pasted value into a numeric field, reading it the way it was rendered:
39
47
  * currency symbols, thousands separators and percent signs are dropped, accounting
@@ -57,6 +65,11 @@ export declare const handleNumericPaste: (event: any, applyValue: any) => void;
57
65
  * Rejecting the key press rather than the resulting value keeps the caret in place;
58
66
  * pasting is handled by handleNumericPaste, and drag-drop by the isPartialNumericInput
59
67
  * check on change.
68
+ *
69
+ * The resulting value (current value with this key spliced in at the caret/selection) is
70
+ * checked against `isPartialNumericInput` directly, rather than hand-rolling per-character
71
+ * rules, so every character this gate accepts — digits, one ".", a leading "-", and now
72
+ * "_" as a digit-group separator — stays in lockstep with what onChange/paste allow.
60
73
  * @param {object} event - React keyboard event from a numeric input
61
74
  */
62
75
  export declare const handleNumericKeyDown: (event: any) => void;