@epam/ai-dial-ui-kit 0.15.0-dev.50 → 0.15.0-dev.51

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.
package/dist/CHANGELOG.md CHANGED
@@ -19,6 +19,8 @@ Versions match the git tags on the `development` branch.
19
19
 
20
20
  ### Added
21
21
 
22
+ - **`InteractiveTooltip` (2.0) — `trigger`, to open the panel by click or tap** — the panel opens on hover or focus and renders nothing on a mobile screen, so a trigger whose only job is to reveal it, such as an info chip, showed nothing on a phone ([ai-dial-chat#9250](https://github.com/epam/ai-dial-chat/issues/9250)). `trigger={InteractiveTooltipTrigger.Click}` opens the panel on a click or tap and keeps it open until a second click on the trigger, a press outside or Escape. It works on every screen size and ignores hover and focus; with a controlled `open` it still reports through `onOpenChange`. The default, `InteractiveTooltipTrigger.Hover`, changes nothing, so the `InteractiveTooltip`s inside `Select` and `Dropdown` and every host that does not pass it are unchanged. Do not use `Click` on a trigger that has its own action, since the same tap would run both. Additive.
23
+
22
24
  - **`Slider` (2.0) — `showTooltip`, `showTicks`, `leftContent`, `rightContent`** — the rest of the new slider design. `showTooltip` shows the formatted value in a bubble above the thumb; `showTicks` marks every step on the unfilled track for a discrete slider. Both are hidden while disabled. The bubble is `aria-hidden`, because the input already announces the value through `aria-valuetext`. `leftContent` and `rightContent` are the slider container's side slots, centred on the track: an icon on the left, a `NumberInput` or the value as text on the right. The kit does not sync a `NumberInput` placed there; the caller passes it the same `value` and setter. All four are opt-in.
23
25
 
24
26
  - **`SchemaRenderer` (2.0)** — a JSON Schema form built only from 2.0 controls. `DialSchemaRenderer` exists only in 1.0, so a 2.0 screen that renders a schema-driven form had to mix in 1.0 inputs, selects and the 1.0 `Dropdown` surface. The 2.0 renderer keeps the 1.0 props, except `jsonEditorTheme`: the three variants, `oneOf`/`anyOf` with select or radio selectors, arrays with discriminator types, key-value maps, `dial:resource` options, `skipUntouched`, `renderField` and `texts`. Primitives render as `Input`, `NumberInput`, `PasswordInput`, `Select`, `Switch` or `RadioGroup`. Values the schema does not describe are edited as JSON in a monospace `Textarea`, not in Monaco, so the form loads no editor bundle. Section headers are real toggle buttons with `aria-expanded`, and the remove and info buttons sit next to the toggle instead of inside it. Every control has an accessible name, including array items and key-value rows. `renderField` replaces only the control, so the field keeps its label and error. Stamps `DIAL_KIT_CLASS.schemaRenderer` (`dial-kit-schema-renderer`) on the root and `DIAL_KIT_CLASS.schemaRendererSection` (`dial-kit-schema-renderer-section`) on each section card. The schema types, enums and utils are shared with 1.0 from neutral modules; the 1.0 import paths still work. Additive.
@@ -0,0 +1 @@
1
+ "use strict";const t=require("react/jsx-runtime"),g=require("./DateCellRenderer-CZNa4jVJ.cjs"),$=require("@tabler/icons-react"),a=require("react"),h=require("./merge-classes-BEJXjzkx.cjs"),p=require("@floating-ui/react"),he=require("./icon-DhjrDQ8I.cjs"),re=require("./icon-CrGVkVpG.cjs"),C=require("./IconButton-DHOFapLo.cjs"),gt=require("classnames");function ht(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const de=ht(a);var xe=(e=>(e.Top="top",e.Right="right",e.Bottom="bottom",e.Left="left",e))(xe||{}),fe=(e=>(e.Hover="hover",e.Click="click",e))(fe||{});const xt=7,bt=2,St=500,It="fill-control-inverted",Nt="z-tooltip max-w-[376px] whitespace-pre-wrap break-words rounded-lg bg-control-inverted px-3 py-2 dial-small-text text-control-inverted shadow-xs",We=a.createContext(null),Ke=()=>{const e=a.useContext(We);if(e==null)throw new Error("Tooltip components must be wrapped in <TooltipContainer />");return e},vt=({initialOpen:e=!1,placement:s=xe.Bottom,isTriggerClickable:n=!1,open:r,onOpenChange:i}={})=>{const[d,c]=a.useState(e),u=a.useRef(null),m=r??d,x=i??c,S=p.useFloating({placement:s,open:m,onOpenChange:x,whileElementsMounted:p.autoUpdate,middleware:[p.offset(xt+bt),p.flip({fallbackAxisSideDirection:"start",padding:5}),p.shift({padding:5}),p.arrow({element:u})]}),f=p.useHover(S.context,{move:!1,enabled:r==null,mouseOnly:n,delay:{open:St,close:0}}),I=p.useFocus(S.context,{enabled:r==null}),y=p.useDismiss(S.context),L=p.useRole(S.context,{role:"tooltip"}),w=p.useInteractions([f,I,y,L]);return a.useEffect(()=>{if(!m)return;const T=S.refs.reference.current;if(!(T instanceof Element))return;const R=new IntersectionObserver(([M])=>{M.isIntersecting||x(!1)},{root:null,threshold:0});return R.observe(T),()=>R.disconnect()},[m,S.refs.reference,x]),a.useMemo(()=>({open:m,setOpen:x,arrowRef:u,...w,...S}),[m,x,w,S])},we=({children:e,...s})=>{const n=vt(s);return t.jsx(We.Provider,{value:n,children:e})},Re=({style:e,...s})=>{const n=Ke(),r=C.useHasHover(),i=g.useThemeScope(),d=a.useRef(null),c=p.useMergeRefs([n.refs.setFloating,d]);return!n.open||!r?null:t.jsx(p.FloatingPortal,{id:"tooltip-portal",children:t.jsxs("div",{ref:c,"data-placement":n.placement,style:{...n.floatingStyles,...e},...n.getFloatingProps(s),className:gt(Nt,i,n.getFloatingProps(s).className,g.DIAL_KIT_CLASS.tooltip),children:[s.children,t.jsx(p.FloatingArrow,{ref:n.arrowRef,context:n.context,className:It})]})})},De=({children:e,asChild:s=!1,...n})=>{const r=Ke(),i=s&&a.isValidElement(e),d=i?e.props?.ref:null,c=p.useMergeRefs([r.refs.setReference,...d?[d]:[]]);if(i){const u=e.props;return a.cloneElement(e,r.getReferenceProps({...u,...n,className:h.mergeClasses(u.className,n.className)||void 0,ref:c}))}return t.jsx("span",{ref:c,...r.getReferenceProps(n),className:n.className??"text-start",children:e})},Ue=({hideTooltip:e=!1,tooltip:s,children:n,asChild:r=!1,triggerClassName:i,contentClassName:d,...c})=>{const u=!e&&!!s;return t.jsxs(we,{...c,children:[t.jsx(De,{asChild:r,className:i,children:n}),u&&t.jsx(Re,{className:d,children:s})]})},Ge={[C.ButtonVariant.Primary]:{[C.ButtonAppearance.Solid]:"dial-kit-primary-solid-button",[C.ButtonAppearance.Ghost]:"dial-kit-primary-ghost-button",[C.ButtonAppearance.Link]:"dial-kit-primary-link-button"},[C.ButtonVariant.Neutral]:{[C.ButtonAppearance.Solid]:"dial-kit-neutral-solid-button",[C.ButtonAppearance.Outlined]:"dial-kit-neutral-outlined-button"},[C.ButtonVariant.Danger]:{[C.ButtonAppearance.Solid]:"dial-kit-danger-solid-button",[C.ButtonAppearance.Ghost]:"dial-kit-danger-ghost-button",[C.ButtonAppearance.Outlined]:"dial-kit-danger-outlined-button"},[C.ButtonVariant.Static]:{[C.ButtonAppearance.Solid]:"dial-kit-static-solid-button"},[C.ButtonVariant.Starter]:{[C.ButtonAppearance.Outlined]:"dial-kit-starter-outlined-button"},[C.ButtonVariant.Success]:{},[C.ButtonVariant.Secondary]:{},[C.ButtonVariant.Tertiary]:{}},Et=e=>{e.preventDefault()},$e=(e,s,n)=>{const r=s!=null&&!s.hideTooltip&&s.tooltip!=null&&s.tooltip!=="";return e&&r?{disabled:void 0,"aria-disabled":!0,onClick:Et}:{disabled:e,onClick:n}},qe=(e=C.ButtonVariant.Primary,s=C.ButtonAppearance.Solid)=>{const n=Ge[e]?.[s];return n||(console.warn(`Could not find Button styles for variant: ${e} and appearance: ${s}. Using default primary solid button styles.`),Ge[C.ButtonVariant.Primary][C.ButtonAppearance.Solid])},yt={[C.ElementSize.Small]:"size-[24px]",[C.ElementSize.Standard]:"size-[40px] dial-kit-enhanced-target",[C.ElementSize.Large]:"size-[48px] dial-kit-enhanced-target"},be=({variant:e,appearance:s=C.ButtonAppearance.Solid,size:n=C.ElementSize.Standard,className:r,icon:i,tooltipProps:d,type:c="button",disabled:u,...m})=>{const x=h.mergeClasses("dial-kit-base-icon-button dial-kit-base-button",e&&qe(e,s),yt[n],r),S=t.jsx("button",{...m,...$e(u,d,m.onClick),type:c,className:x,"aria-label":C.resolveAccessibleName(m["aria-label"],d?.tooltip),children:i});return d?t.jsx(Ue,{asChild:!0,...d,children:S}):S},Xe=({caption:e,onClick:s,"aria-label":n})=>{if(!e)return null;const r=h.mergeClasses("text-secondary hover:text-control-accent-hover active:text-control-accent-active","focus-visible:outline focus-visible:outline-focus",g.DIAL_KIT_CLASS.infoButton);return t.jsx(be,{"aria-label":n,className:r,icon:t.jsx($.IconInfoCircle,{size:re.DIAL_ICON_SIZE.SM,stroke:he.DIAL_KIT_ICON_STROKE,"aria-hidden":"true"}),onClick:s,size:C.ElementSize.Small,tooltipProps:{tooltip:e}})},je=({label:e,required:s,className:n,containerClassName:r,caption:i,size:d=C.ElementSize.Small,...c})=>e?t.jsxs("span",{className:h.mergeClasses("flex items-center gap-0.5",r,g.DIAL_KIT_CLASS.label),children:[t.jsxs("label",{...c,className:h.mergeClasses("text-secondary flex items-center gap-0.5",d===C.ElementSize.Small?"dial-tiny-semi-text":"dial-small-text",n),children:[typeof e=="string"?t.jsx("span",{className:"min-h-4",children:e}):e,s&&t.jsxs(t.Fragment,{children:[t.jsx("span",{"aria-hidden":"true",className:"text-error dial-tiny-text",children:"*"}),t.jsx("span",{className:"sr-only",children:"(required)"})]})]}),t.jsx(Xe,{caption:i})]}):null;var H=(e=>(e.None="none",e.Check="check",e.Tint="tint",e.Checkbox="checkbox",e.Highlight="highlight",e))(H||{});const Pe={size:14,stroke:3,"aria-hidden":!0},He=({isSelected:e=!1,isIndeterminate:s=!1,invalid:n=!1,disabled:r=!1,htmlFor:i,className:d})=>{const c=s||e,u=!!i,m=h.mergeClasses("grid size-[20px] shrink-0 place-items-center rounded border transition-colors duration-200",u&&"dial-kit-minimum-target",u&&"peer-focus-visible:outline peer-focus-visible:outline-focus",r?"border-transparent bg-control-disable-primary text-control-disable-primary":h.mergeClasses(n&&c&&"border-transparent bg-control-error text-control-permanent",n&&!c&&"border-error bg-control-neutral",!n&&c&&"border-transparent bg-control-accent text-control-permanent hover:bg-control-accent-hover",!n&&!c&&"border-default bg-control-neutral hover:border-accent hover:bg-control-accent-alpha-hover"),r?"cursor-not-allowed":u&&"cursor-pointer",d,g.DIAL_KIT_CLASS.checkboxBox),x=s?t.jsx($.IconMinus,{...Pe}):e&&t.jsx($.IconCheck,{...Pe});return u?t.jsx("label",{htmlFor:i,className:m,children:x}):t.jsx("span",{"aria-hidden":"true",className:m,children:x})},Me=({id:e,labelProps:s,isSelected:n=!1,isIndeterminate:r=!1,invalid:i=!1,disabled:d,onChange:c,caption:u,className:m,boxClassName:x,...S})=>{const f=a.useId(),I=e??f,y=u?`${I}-caption`:void 0,L=a.useCallback(T=>{c?.(T.target.checked)},[c]),w=a.useCallback(T=>{T&&(T.indeterminate=r)},[r]);return t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs("div",{className:h.mergeClasses("flex items-center gap-2",m,g.DIAL_KIT_CLASS.checkbox),children:[t.jsx("input",{...S,ref:w,type:"checkbox",id:I,checked:n,disabled:d,onChange:L,"aria-checked":r?"mixed":n,"aria-invalid":i||void 0,"aria-label":C.resolveAccessibleName(typeof s?.label!="string"?S["aria-label"]:void 0),"aria-describedby":y,className:"peer sr-only"}),t.jsx(He,{htmlFor:I,isSelected:n,isIndeterminate:r,invalid:i,disabled:d,className:x}),s&&t.jsx(je,{size:C.ElementSize.Standard,...s,htmlFor:I,className:h.mergeClasses("py-[1px]",d?"cursor-not-allowed text-control-disable-primary":"cursor-pointer text-primary",s.className)})]}),u&&t.jsx("span",{id:y,className:"dial-tiny-text text-secondary ml-[28px]",children:u})]})},Tt=8,kt=400,_t="z-interactive-tooltip max-w-[320px] rounded-xl bg-layer-0 p-4 dial-small-text text-primary shadow-md",pe=({content:e,placement:s=xe.Right,children:n,asChild:r=!1,hideTooltip:i=!1,initialOpen:d=!1,trigger:c=fe.Hover,open:u,onOpenChange:m,triggerClassName:x,contentClassName:S})=>{const f=g.useIsMobileScreen(),I=c===fe.Click,y=g.useThemeScope(),[L,w]=a.useState(d),T=u??L,R=K=>{m?.(K),u==null&&w(K)},M=p.useFloatingNodeId(),{refs:O,floatingStyles:q,context:k}=p.useFloating({nodeId:M,placement:s,open:T,onOpenChange:R,whileElementsMounted:p.autoUpdate,middleware:[p.offset(Tt),p.flip({padding:5}),p.shift({padding:5})]}),F=p.useHover(k,{enabled:u==null&&!I,handleClose:p.safePolygon(),delay:{open:kt,close:0}}),z=p.useFocus(k,{enabled:u==null&&!I}),v=p.useClick(k,{enabled:I}),X=p.useDismiss(k),{getReferenceProps:Y,getFloatingProps:te}=p.useInteractions([F,z,v,X]),W=a.useRef(null),Z=p.useMergeRefs(a.useMemo(()=>[O.setFloating,W],[O.setFloating])),_=r&&a.isValidElement(n),A=_?n.props?.ref:null,D=p.useMergeRefs(a.useMemo(()=>[O.setReference,...A?[A]:[]],[O.setReference,A])),J=!i&&(I||!f)&&!!e,E=_?a.cloneElement(n,Y({...n.props,ref:D,className:h.mergeClasses(n.props.className,x)||void 0})):t.jsx("span",{ref:D,...Y(),className:x??"text-start",children:n});return t.jsxs(t.Fragment,{children:[E,T&&J&&t.jsx(p.FloatingPortal,{id:"interactive-tooltip-portal",children:t.jsx(p.FloatingFocusManager,{context:k,modal:!1,initialFocus:-1,returnFocus:!1,order:["reference","content"],children:t.jsx("div",{ref:Z,"data-placement":k.placement,style:q,...te(),className:h.mergeClasses(_t,y,S,g.DIAL_KIT_CLASS.interactiveTooltip),children:e})})})]})},Oe="rounded-xl bg-layer-raised p-1 shadow-md",Be="flex flex-col gap-0.5",Ye=h.mergeClasses(Oe,"w-max"),Je=h.mergeClasses(Ye,Be,"py-2"),Qe=h.mergeClasses("flex w-full shrink-0 cursor-pointer items-center gap-2 px-3 h-[40px] rounded-lg","dial-small-text text-primary truncate","hover:bg-control-accent-alpha-hover","focus-visible:outline focus-visible:outline-focus"),et="bg-control-accent-alpha",At=h.mergeClasses(et,"text-accent"),Lt=h.mergeClasses("cursor-not-allowed text-control-disable-primary","bg-transparent hover:bg-transparent"),tt=4,wt=h.mergeClasses("flex items-center gap-2 align-middle","h-auto px-0 bg-transparent border-0"),Rt=h.mergeClasses("z-floating focus-visible:outline-none",Oe),Dt=Ye,jt=Je,Ht=h.mergeClasses(Be,"py-1"),Mt="my-1 border-t border-tertiary",ee=tt,Ot=t.jsx($.IconChevronRight,{size:re.DIAL_ICON_SIZE.SM,stroke:he.DIAL_KIT_ICON_STROKE,"aria-hidden":"true"}),Fe=(e,s)=>({appearance:r,...i})=>t.jsx(be,{...i,variant:e,appearance:r||s}),nt=(e,s)=>({variant:r,...i})=>t.jsx(be,{...i,variant:r||s,appearance:e}),Bt=Fe(C.ButtonVariant.Primary,C.ButtonAppearance.Solid),Ft=Fe(C.ButtonVariant.Neutral,C.ButtonAppearance.Solid),Vt=Fe(C.ButtonVariant.Danger,C.ButtonAppearance.Ghost),st=nt(C.ButtonAppearance.Ghost,C.ButtonVariant.Primary),Gt=nt(C.ButtonAppearance.Solid,C.ButtonVariant.Static),rt=({ariaLabel:e="Close",className:s,size:n=C.ElementSize.Small,onClose:r,...i})=>t.jsx(st,{...i,size:n,"aria-label":e,className:h.mergeClasses(s,g.DIAL_KIT_CLASS.closeButton),onClick:r,icon:t.jsx($.IconX,{size:n===C.ElementSize.Small?re.DIAL_ICON_SIZE.SM:re.DIAL_ICON_SIZE.MD,stroke:he.DIAL_KIT_ICON_STROKE,"aria-hidden":"true"})}),Pt=e=>{const s=a.useRef(null),[n,r]=a.useState(!1),[i,d]=a.useState(""),c=a.useRef(!1),u=a.useCallback(()=>{const x=s.current;x&&(c.current&&d(x.textContent??""),r(x.scrollWidth>x.clientWidth))},[]),m=a.useCallback(()=>g.scheduleMeasure(u),[u]);return a.useEffect(()=>{const x=s.current;if(x)return g.observeElementSize(x,u)},[u]),a.useEffect(()=>{c.current=typeof e!="string",m()},[e,m]),{ref:s,isTruncated:n,textContent:i,remeasure:m}},Se=({text:e,className:s,contentClassName:n,hideTooltip:r=!1,id:i,customTooltipContent:d,...c})=>{const{ref:u,isTruncated:m,textContent:x,remeasure:S}=Pt(e),f=typeof e=="string"?e:x,I=a.useMemo(()=>r||!m?null:d??f,[d,f,r,m]);return t.jsxs(we,{...c,children:[t.jsx(De,{asChild:!0,onMouseEnter:S,onFocusCapture:S,children:t.jsx("span",{id:i,ref:u,"aria-label":m&&f?f:void 0,className:h.mergeClasses("block min-w-0 max-w-full flex-1 truncate text-start",s,g.DIAL_KIT_CLASS.ellipsisTooltip),children:e})}),!!I&&t.jsx(Re,{className:n,children:I})]})},zt=t.jsx($.IconCheck,{size:re.DIAL_ICON_SIZE.SM,stroke:he.DIAL_KIT_ICON_STROKE,className:`shrink-0 ${g.DIAL_KIT_CLASS.menuItemCheck}`,"aria-hidden":!0}),Ce=({label:e,icon:s,description:n,mark:r=H.None,selected:i=!1,danger:d=!1,trailing:c,rightControl:u,ellipsisLabel:m=!1,labelClassName:x,children:S,className:f,disabled:I=!1,type:y="button",...L})=>{const w=i&&r===H.Highlight,T=i&&(r===H.Checkbox||r===H.Tint),R=h.mergeClasses(d&&"text-error",I&&"text-control-disable-primary"),M=h.mergeClasses(Qe,"aria-expanded:bg-control-accent-alpha-hover",w&&At,T&&et,I&&Lt,d&&"text-error",f,g.DIAL_KIT_CLASS.menuItem),O=t.jsxs("button",{type:y,disabled:I,"data-menu-item-row":u?"":void 0,className:u?"flex h-full min-w-0 flex-1 items-center gap-2 truncate text-start focus-visible:outline-none":M,...L,children:[S??t.jsxs(t.Fragment,{children:[r===H.Checkbox&&t.jsx(He,{isSelected:i,disabled:I}),s&&t.jsx(g.DialIcon,{icon:s,className:R}),m?t.jsx(Se,{text:e,className:h.mergeClasses(R,x)}):t.jsx("span",{className:h.mergeClasses("min-w-0 flex-1 truncate text-start",R,x),children:e}),n&&t.jsx("span",{className:h.mergeClasses("shrink-0 text-secondary dial-small-text",I&&"text-control-disable-primary"),children:n}),i&&r===H.Check&&zt]}),c&&t.jsx("span",{className:h.mergeClasses("ml-auto shrink-0",R),children:c})]});return u?t.jsxs("div",{role:"none",className:h.mergeClasses(M,"has-[[data-menu-item-row]:focus-visible]:outline","has-[[data-menu-item-row]:focus-visible]:outline-focus"),children:[O,u]}):O},ge=e=>e.mark??(e.selectable?H.Checkbox:H.None),ot=e=>e.selectable?"menuitemcheckbox":ge(e)===H.Check?"menuitemradio":"menuitem",Zt=({item:e,onRootClose:s})=>{const{isOpen:n,nodeId:r,refs:i,floatingStyles:d,context:c,getReferenceProps:u,getFloatingProps:m}=g.useSubMenuFloating(ee,"menu",!!e.disabled),x=a.useCallback(f=>I=>{f.disabled||(f.onClick?.({key:f.key,domEvent:I}),f.selectable||s())},[s]),S=t.jsx(Ce,{ref:i.setReference,role:"menuitem","aria-haspopup":"menu","aria-expanded":n,"aria-disabled":!!e.disabled,disabled:e.disabled,icon:e.icon,label:e.label,trailing:Ot,className:e.className,...u(),children:e.renderItem?.(e)});return t.jsxs(p.FloatingNode,{id:r,children:[e.interactiveTooltip?t.jsx(pe,{asChild:!0,placement:e.interactiveTooltip.placement,content:e.interactiveTooltip.content,contentClassName:e.interactiveTooltip.contentClassName,children:S}):S,n&&t.jsx(g.SubMenuPanel,{refs:i,floatingStyles:d,context:c,getFloatingProps:m,role:"menu",surfaceClassName:e.renderSubMenu?Dt:jt,children:e.renderSubMenu?e.renderSubMenu():t.jsxs(t.Fragment,{children:[e.menuHeader&&(typeof e.menuHeader=="function"?e.menuHeader():e.menuHeader),e.children.map(f=>{const I=ot(f),y=t.jsx(Ce,{role:I,"aria-checked":I==="menuitem"?void 0:!!f.checked,"aria-current":ge(f)===H.Highlight&&f.checked?!0:void 0,"aria-disabled":!!f.disabled,disabled:f.disabled,mark:ge(f),selected:!!f.checked,danger:f.danger,icon:f.icon,label:f.label,className:f.className,rightControl:f.rightControl,onClick:x(f),children:f.renderItem?.(f)});return t.jsx(a.Fragment,{children:f.interactiveTooltip?t.jsx(pe,{asChild:!0,placement:f.interactiveTooltip.placement,content:f.interactiveTooltip.content,contentClassName:f.interactiveTooltip.contentClassName,children:y}):y},f.key)}),e.menuFooter&&(typeof e.menuFooter=="function"?e.menuFooter():e.menuFooter)]})})]})},Wt='[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="option"]',Kt=e=>!e.hasAttribute("disabled")&&e.getAttribute("aria-disabled")!=="true",Ut=["ArrowDown","ArrowUp","Home","End"],$t=(e,s,n)=>{if(e==="Home")return 0;if(e==="End")return n-1;const r=e==="ArrowDown"?1:-1;return s===-1?r===1?0:n-1:(s+r+n)%n},qt=e=>"clientWidth"in e?e.clientWidth:e.getBoundingClientRect?.()?.width??0,at=({children:e,items:s,onItemClick:n,menuHeader:r,menuFooter:i,renderOverlay:d,trigger:c=[g.DropdownTrigger.Click],placement:u,disabled:m=!1,open:x,defaultOpen:S=!1,onOpenChange:f,closable:I=!1,onClose:y,className:L,overlayContentClassName:w,separatorClassName:T,listClassName:R,listStyle:M,outsidePressIgnoreRef:O,outsideClosable:q=!0,allowedPlacements:k,anchorToMouse:F=!1,matchReferenceWidth:z=!0,maxDropdownHeight:v,initialFocus:X})=>{const Y=g.useThemeScope(),[te,W]=a.useState(S),Z=x!==void 0,_=Z?!!x:te,A=a.useRef(null),[D,J]=a.useState(!0),E=a.useCallback((l,o,b)=>{l&&J(b!=="hover"&&b!=="safe-polygon"),Z||W(l),f?.(l)},[Z,f]),K=a.useId(),Ie=u===void 0,oe=p.useFloatingNodeId(),{refs:j,floatingStyles:U,context:V}=p.useFloating({nodeId:oe,placement:u,open:_,onOpenChange:E,whileElementsMounted:p.autoUpdate,middleware:[p.offset({mainAxis:ee,crossAxis:0}),Ie?p.autoPlacement({alignment:"start",crossAxis:!0,padding:ee,allowedPlacements:k}):p.flip({padding:ee}),p.shift({padding:ee}),p.size({padding:ee,apply({availableWidth:l,availableHeight:o,elements:b}){const N=b.floating,B=qt(b.reference);N.style.setProperty("--fui-available-height",`${Math.floor(o)}px`),N.style.setProperty("--reference-width",z?`${Math.round(B)}px`:"0px"),z?N.style.minWidth=`${Math.round(B)}px`:N.style.removeProperty("min-width"),N.style.maxWidth=`${Math.floor(l)}px`;const se=Math.floor(o);N.style.maxHeight=`${v?Math.min(se,v):se}px`}})]}),Q=p.useClick(V,{enabled:c.includes(g.DropdownTrigger.Click)&&!m}),Ne=p.useHover(V,{enabled:c.includes(g.DropdownTrigger.Hover)&&!m,move:!1,restMs:40,handleClose:p.safePolygon(),delay:{open:80,close:80}}),ne=p.useDismiss(V,{bubbles:!0,referencePress:!1,outsidePress:l=>{if(!q)return!1;const o=l.target;return!(O?.current&&o instanceof Node&&O.current.contains(o))}}),ae=p.useRole(V,{role:"menu"}),{getReferenceProps:ve,getFloatingProps:le}=p.useInteractions([Q,Ne,ne,ae]),G=a.useCallback((l,o)=>{j.setPositionReference({getBoundingClientRect:()=>({width:0,height:0,x:l,y:o,top:o,left:l,right:l,bottom:o})})},[j]),Ee=a.useCallback(l=>{!c.includes(g.DropdownTrigger.ContextMenu)||m||(l.preventDefault(),F&&(G(l.clientX,l.clientY),A.current=document.elementFromPoint(l.clientX,l.clientY)),E(!0))},[F,m,E,G,c]),ye=a.useCallback(l=>{!F||m||(c.includes(g.DropdownTrigger.ContextMenu)&&_&&E(!1),G(l.clientX,l.clientY),A.current=document.elementFromPoint(l.clientX,l.clientY))},[F,m,G,_,c,E]);a.useEffect(()=>{m&&_&&E(!1)},[m,_,E]);const Te=a.useCallback(l=>{if(l.defaultPrevented||!Ut.includes(l.key)||!l.currentTarget.contains(l.target))return;const o=Array.from(l.currentTarget.querySelectorAll(Wt)).filter(Kt);if(o.length===0)return;l.preventDefault();const b=l.currentTarget.ownerDocument.activeElement,N=o.findIndex(B=>B===b);o[$t(l.key,N,o.length)]?.focus()},[]),ce=a.useCallback(l=>o=>{l.disabled||(l.onClick?.({key:l.key,domEvent:o}),n?.({key:l.key,domEvent:o}),l.selectable||E(!1))},[n,E]),ie=a.useMemo(()=>d?d():s?t.jsxs(t.Fragment,{children:[r&&t.jsx(t.Fragment,{children:typeof r=="function"?r():r}),t.jsx("div",{role:"none",className:h.mergeClasses(Ht,w,g.DIAL_KIT_CLASS.dropdownList),"aria-label":"dropdown",children:s.map(l=>{if(l.type===g.DropdownItemType.Divider)return t.jsx("div",{role:"separator",className:h.mergeClasses(Mt,T)},l.key);if(l.type===g.DropdownItemType.PlainText)return t.jsx("div",{className:h.mergeClasses("px-3 py-2 text-secondary dial-caption-text",l.className),children:l.label},l.key);if(l.children?.length)return t.jsx(Zt,{item:l,onRootClose:()=>E(!1)},l.key);const o=ge(l),b=ot(l),N=t.jsx(Ce,{role:b,"aria-checked":b==="menuitem"?void 0:!!l.checked,"aria-current":o===H.Highlight&&l.checked?!0:void 0,"aria-disabled":!!l.disabled,disabled:l.disabled,mark:o,selected:!!l.checked,danger:l.danger,icon:l.icon,label:l.label,className:l.className,rightControl:l.rightControl,onClick:ce(l),children:l.renderItem?.(l)});return t.jsx(a.Fragment,{children:l.interactiveTooltip?t.jsx(pe,{asChild:!0,placement:l.interactiveTooltip.placement,content:l.interactiveTooltip.content,contentClassName:l.interactiveTooltip.contentClassName,children:N}):N},l.key)})}),i&&t.jsx(t.Fragment,{children:typeof i=="function"?i():i})]}):null,[ce,s,i,r,d,E,w,T]),ke=ve({onContextMenu:Ee,onMouseDown:ye});return a.useEffect(()=>{if(!_)return;const l=j.reference.current;let o=null;if(l instanceof Element?o=l:A.current instanceof Element&&(o=A.current),!o)return;const b=new IntersectionObserver(([N])=>{N.isIntersecting||E(!1)},{root:null,threshold:0});return b.observe(o),()=>b.disconnect()},[_,j.reference,E]),t.jsx(p.FloatingTree,{children:t.jsxs(p.FloatingNode,{id:oe,children:[t.jsx("span",{ref:j.setReference,className:h.mergeClasses(wt,m&&"!cursor-not-allowed opacity-75",L,g.DIAL_KIT_CLASS.dropdown),"aria-haspopup":"menu","aria-expanded":_,"aria-controls":K,...ke,children:e}),_&&t.jsx(p.FloatingPortal,{children:t.jsx(p.FloatingFocusManager,{context:V,modal:!1,initialFocus:X!==void 0?X:D?0:-1,returnFocus:!0,children:t.jsxs("div",{id:K,ref:j.setFloating,style:M?{...M,...U}:U,className:h.mergeClasses(Rt,!z&&"w-max","overflow-auto",Y,R),...le({onKeyDown:Te}),children:[I&&t.jsx("div",{className:"flex items-center justify-between px-2 pt-2",children:t.jsx(rt,{ariaLabel:"Close dropdown",onClose:l=>{y?.(l),E(!1)}})}),ie]})})})]})})},lt=e=>de.createElement("svg",{width:32,height:32,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},de.createElement("path",{d:"M20.2954 16.7035C20.2954 17.088 20.6029 17.4069 20.9737 17.4069C21.3445 17.4069 21.6519 17.088 21.6519 16.7035C21.6519 16.3189 21.3445 16 20.9737 16C20.6029 16 20.2954 16.3189 20.2954 16.7035Z",fill:"currentColor"}),de.createElement("path",{d:"M11.7041 16.7035C11.7041 17.088 11.3966 17.4069 11.0258 17.4069C10.655 17.4069 10.3476 17.088 10.3476 16.7035C10.3476 16.3189 10.655 16 11.0258 16C11.3966 16 11.7041 16.3189 11.7041 16.7035Z",fill:"currentColor"}),de.createElement("path",{d:"M19.0221 2.40002L19.5525 1.86969C19.4118 1.72904 19.221 1.65002 19.0221 1.65002V2.40002ZM26.5777 9.95558H27.3277C27.3277 9.75667 27.2487 9.5659 27.108 9.42525L26.5777 9.95558ZM5.42212 29.6H4.67212C4.67212 30.0142 5.00791 30.35 5.42212 30.35V29.6ZM8.44434 2.40002V1.65002V2.40002ZM13.8932 19.5173C13.8932 19.9315 14.229 20.2673 14.6432 20.2673C15.0574 20.2673 15.3932 19.9315 15.3932 19.5173H14.6432H13.8932ZM16.6063 19.5173C16.6063 19.9315 16.9421 20.2673 17.3563 20.2673C17.7705 20.2673 18.1063 19.9315 18.1063 19.5173H17.3563H16.6063ZM19.0221 2.40002H18.2721V8.44447H19.0221H19.7721V2.40002H19.0221ZM19.0221 8.44447H18.2721C18.2721 9.04415 18.5103 9.61927 18.9344 10.0433L19.4647 9.51299L19.995 8.98266C19.8523 8.83992 19.7721 8.64633 19.7721 8.44447H19.0221ZM19.4647 9.51299L18.9344 10.0433C19.3584 10.4674 19.9335 10.7056 20.5332 10.7056V9.95558V9.20558C20.3314 9.20558 20.1378 9.12539 19.995 8.98266L19.4647 9.51299ZM20.5332 9.95558V10.7056H26.5777V9.95558V9.20558H20.5332V9.95558ZM5.42212 29.6H6.17212V5.42225H5.42212H4.67212V29.6H5.42212ZM5.42212 5.42225H6.17212C6.17212 4.81962 6.41151 4.24167 6.83764 3.81554L6.30731 3.28521L5.77698 2.75488C5.06955 3.46231 4.67212 4.42179 4.67212 5.42225H5.42212ZM6.30731 3.28521L6.83764 3.81554C7.26376 3.38942 7.84171 3.15002 8.44434 3.15002V2.40002V1.65002C7.44389 1.65002 6.48441 2.04745 5.77698 2.75488L6.30731 3.28521ZM8.44434 2.40002V3.15002H19.0221V2.40002V1.65002H8.44434V2.40002ZM19.0221 2.40002L18.4918 2.93035L26.0473 10.4859L26.5777 9.95558L27.108 9.42525L19.5525 1.86969L19.0221 2.40002ZM26.5777 9.95558H25.8277V26.5778H26.5777H27.3277V9.95558H26.5777ZM26.5777 26.5778H25.8277C25.8277 27.1804 25.5883 27.7584 25.1622 28.1845L25.6925 28.7148L26.2228 29.2452C26.9302 28.5377 27.3277 27.5783 27.3277 26.5778H26.5777ZM25.6925 28.7148L25.1622 28.1845C24.736 28.6106 24.1581 28.85 23.5555 28.85V29.6V30.35C24.5559 30.35 25.5154 29.9526 26.2228 29.2452L25.6925 28.7148ZM23.5555 29.6V28.85H5.42212V29.6V30.35H23.5555V29.6ZM20.9737 16V16.75C20.9388 16.75 20.9181 16.7345 20.9119 16.7281C20.906 16.722 20.9019 16.7133 20.9019 16.7035H21.6519H22.4019C22.4019 15.9307 21.7842 15.25 20.9737 15.25V16ZM21.6519 16.7035H20.9019C20.9019 16.6936 20.906 16.685 20.9119 16.6788C20.9181 16.6724 20.9388 16.6569 20.9737 16.6569V17.4069V18.1569C21.7842 18.1569 22.4019 17.4762 22.4019 16.7035H21.6519ZM20.9737 17.4069V16.6569C21.0086 16.6569 21.0292 16.6724 21.0354 16.6788C21.0414 16.685 21.0454 16.6936 21.0454 16.7035H20.2954H19.5454C19.5454 17.4762 20.1631 18.1569 20.9737 18.1569V17.4069ZM20.2954 16.7035H21.0454C21.0454 16.7133 21.0414 16.722 21.0354 16.7281C21.0292 16.7345 21.0086 16.75 20.9737 16.75V16V15.25C20.1631 15.25 19.5454 15.9307 19.5454 16.7035H20.2954ZM11.0258 16V16.75C10.9909 16.75 10.9703 16.7345 10.9641 16.7281C10.9582 16.722 10.9541 16.7133 10.9541 16.7035H11.7041H12.4541C12.4541 15.9307 11.8364 15.25 11.0258 15.25V16ZM11.7041 16.7035H10.9541C10.9541 16.6936 10.9582 16.685 10.9641 16.6788C10.9703 16.6724 10.9909 16.6569 11.0258 16.6569V17.4069V18.1569C11.8364 18.1569 12.4541 17.4762 12.4541 16.7035H11.7041ZM11.0258 17.4069V16.6569C11.0607 16.6569 11.0814 16.6724 11.0876 16.6788C11.0935 16.685 11.0976 16.6936 11.0976 16.7035H10.3476H9.59757C9.59757 17.4762 10.2153 18.1569 11.0258 18.1569V17.4069ZM10.3476 16.7035H11.0976C11.0976 16.7133 11.0935 16.722 11.0876 16.7281C11.0814 16.7345 11.0607 16.75 11.0258 16.75V16V15.25C10.2153 15.25 9.59757 15.9307 9.59757 16.7035H10.3476ZM14.6432 19.5173H15.3932C15.3932 19.127 15.6889 18.8604 15.9998 18.8604V18.1104V17.3604C14.8094 17.3604 13.8932 18.3506 13.8932 19.5173H14.6432ZM15.9998 18.1104V18.8604C16.3106 18.8604 16.6063 19.127 16.6063 19.5173H17.3563H18.1063C18.1063 18.3506 17.1901 17.3604 15.9998 17.3604V18.1104Z",fill:"currentColor"})),ct=({id:e,name:s,value:n,labelProps:r,isSelected:i=!1,disabled:d,onChange:c,caption:u,className:m,...x})=>{const S=a.useId(),f=e??S,I=u?`${f}-caption`:void 0,y=a.useCallback(L=>{L.target.checked&&c?.(n)},[c,n]);return t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs("div",{className:h.mergeClasses("flex items-center gap-2 ",m,g.DIAL_KIT_CLASS.radio),children:[t.jsx("input",{...x,type:"radio",id:f,name:s,value:n,checked:i,disabled:d,onChange:y,"aria-label":C.resolveAccessibleName(typeof r?.label!="string"?x["aria-label"]:void 0),"aria-describedby":I,className:"peer sr-only"}),t.jsx("label",{htmlFor:f,className:h.mergeClasses("group grid size-[20px] shrink-0 place-items-center rounded-full border transition-colors duration-200 hover:bg-control-accent-alpha-hover","dial-kit-minimum-target","peer-focus-visible:outline peer-focus-visible:outline-focus",d?"cursor-not-allowed border-default bg-control-disable-primary":h.mergeClasses("cursor-pointer",i?"border border-accent bg-control-neutral":"border-default bg-control-neutral")),children:i&&t.jsx("span",{className:h.mergeClasses("size-3 rounded-full",d?"bg-control-disable-secondary":"bg-control-accent")})}),r&&t.jsx(je,{size:C.ElementSize.Standard,...r,htmlFor:f,className:h.mergeClasses("py-[1px]",d?"cursor-not-allowed text-control-disable-primary":"cursor-pointer text-primary",r.className)})]}),u&&t.jsx("span",{id:I,className:"dial-tiny-text text-secondary ml-[26px]",children:u})]})},ze=32,it=({title:e,description:s,icon:n,live:r=!1,className:i,titleClassName:d,descriptionClassName:c})=>t.jsxs("div",{role:r?"status":void 0,className:h.mergeClasses("flex size-full flex-col items-center justify-center gap-2 text-tertiary",i,g.DIAL_KIT_CLASS.noDataContent),children:[n??t.jsx(lt,{width:ze,height:ze,"aria-hidden":"true"}),t.jsx("span",{className:h.mergeClasses("dial-tiny-text text-secondary",d),children:e}),s&&t.jsx("span",{className:h.mergeClasses("dial-tiny-text text-secondary",c),children:s})]}),ut="dial-kit-grid",Xt="dial-kit-grid-with-selection",Yt="dial-kit-grid-without-header-borders",Jt="dial-kit-grid-row-select",Qt="dial-kit-grid-header-select",en="dial-kit-grid-selection-visible",tn="dial-kit-grid-align-right",Le=40,_e="0.5px solid var(--stroke-tertiary, #E0E6F0)",me={accentColor:"var(--bg-control-accent, #1D4ED8)",backgroundColor:"var(--bg-layer-raised, #FCFCFC)",oddRowBackgroundColor:"var(--bg-layer-sunken, #EEF1F7)",selectedRowBackgroundColor:"var(--bg-control-accent-alpha, #2764D90F)",rowHoverColor:"var(--bg-control-accent-alpha-hover, #2764D924)",borderColor:"var(--stroke-tertiary, #E0E6F0)",rowBorder:_e,headerRowBorder:_e,headerColumnBorder:_e,chromeBackgroundColor:"var(--bg-layer-base, #F5F7FA)",foregroundColor:"var(--text-primary, #161B2D)",headerTextColor:"var(--text-secondary, #57647A)",browserColorScheme:"light",headerFontSize:14,headerFontWeight:600,fontSize:14,fontFamily:"var(--theme-font, var(--font-inter))",spacing:4,borderRadius:4,wrapperBorderRadius:8};var P=(e=>(e.API="api",e.ROW_DATA_CHANGED="rowDataChanged",e.CHECKBOX_SELECTED="checkboxSelected",e))(P||{});const nn=({params:e,mode:s,label:n,radioName:r,rowId:i,disabled:d})=>{const c=e.node,[u,m]=a.useState(()=>!!c.isSelected());a.useEffect(()=>{const S=()=>m(!!c.isSelected());return S(),c.addEventListener("rowSelected",S),()=>c.removeEventListener("rowSelected",S)},[c]);const x=S=>{d||c.setSelected(S,s===g.GridSelectionMode.SINGLE,P.CHECKBOX_SELECTED)};return s===g.GridSelectionMode.SINGLE?t.jsx(ct,{name:r,value:i,isSelected:u,disabled:d,"aria-label":n,onChange:()=>x(!0)}):t.jsx(Me,{isSelected:u,disabled:d,"aria-label":n,onChange:x})},Ze=e=>{let s=0,n=0;return e.forEachNodeAfterFilter(r=>{r.selectable!==!1&&(n++,r.isSelected()&&s++)}),{selected:s,selectable:n}},sn=({api:e,label:s})=>{const[{selected:n,selectable:r},i]=a.useState(()=>Ze(e));a.useEffect(()=>{const c=()=>i(Ze(e));return c(),e.addEventListener("selectionChanged",c),e.addEventListener("modelUpdated",c),()=>{e.isDestroyed()||(e.removeEventListener("selectionChanged",c),e.removeEventListener("modelUpdated",c))}},[e]);const d=a.useCallback(c=>{if(c){e.selectAll("filtered",P.CHECKBOX_SELECTED);return}e.deselectAll("filtered",P.CHECKBOX_SELECTED)},[e]);return t.jsx(Me,{isSelected:r>0&&n===r,isIndeterminate:n>0&&n<r,disabled:r===0,"aria-label":s,onChange:d})},dt="en-US",mt={year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},Ae=40,rn={minWidth:Ae,width:Ae,maxWidth:Ae,resizable:!1,sortable:!1,filter:!1,floatingFilter:!1,suppressMovable:!0,suppressHeaderMenuButton:!0,suppressAutoSize:!0,suppressSizeToFit:!0},ft="dial-kit-grid-selection",on=150,an=100,ln=({columnDefs:e,rowData:s,additionalGridOptions:n,getContextMenuItems:r,className:i,ariaLabel:d="Data grid",wrapCustomCellRenderers:c=!0,disabledRowIds:u,selectedRowIds:m,onSelectionChange:x,onGridApiChange:S,getRowId:f,alternateOddRowColors:I=!1,filterPlaceholder:y="Enter value",emptyStateIcon:L,emptyStateTitle:w="No results found",emptyStateDescription:T="Sorry, we couldn't find any results for your search.",loading:R=!1,wrapperBorder:M=!0,withoutHeaderBorders:O=!1,allowDisabledContextMenu:q=!1,selectionMode:k,selectRowLabel:F,selectAllLabel:z="Select all rows"})=>{g.registerAgGridModulesOnce();const[v,X]=a.useState(),Y=g.useIsMobileScreen(),te=g.useIsTabletScreen(),W=a.useRef(new Set),Z=a.useRef(void 0),_=`dial-kit-grid-selection-${a.useId()}`,A=a.useRef({getRowId:f,getContextMenuItems:r,onSelectionChange:x,selectRowLabel:F,wrapCustomCellRenderers:c});A.current={getRowId:f,getContextMenuItems:r,onSelectionChange:x,selectRowLabel:F,wrapCustomCellRenderers:c};const D=a.useCallback(o=>{const b=A.current.getRowId;return b?b(o):String(o.id??JSON.stringify(o))},[]),J=!!r,E=!!c,K=a.useMemo(()=>g.themeBalham.withPart(g.colorSchemeLight).withParams({...me,oddRowBackgroundColor:I?me.oddRowBackgroundColor:me.backgroundColor,wrapperBorder:M}),[I,M]),Ie=a.useCallback(o=>{o.api.sizeColumnsToFit()},[]),oe=Y||te||(m?.size??0)>0,j=a.useCallback(o=>!!o&&!!u?.has(D(o)),[u,D]),U=a.useCallback((o,b,N)=>J?t.jsx(at,{trigger:[g.DropdownTrigger.ContextMenu],items:o.data?A.current.getContextMenuItems?.(o.data)??[]:[],anchorToMouse:!0,matchReferenceWidth:!0,className:h.mergeClasses("size-full",N&&"cursor-not-allowed opacity-75"),disabled:N&&!q,children:t.jsx("span",{className:"block min-w-0 max-w-full flex-1",children:b})}):b,[J,q]),V=a.useCallback(o=>{if(!o.data)return null;const b=j(o.data);return U(o,t.jsx(Se,{text:o.value==null?"":String(o.value),className:"max-w-full dial-small-text text-primary",hideTooltip:b}),b)},[j,U]),Q=a.useCallback(o=>o===P.API||o===P.ROW_DATA_CHANGED,[]),Ne=a.useMemo(()=>g.debounceFn(o=>{const N=(o.selectedNodes??[]).map(se=>se.data),B=new Set(N.map(D));W.current=B,Z.current=o.source,!Q(o.source)&&A.current.onSelectionChange?.(B,N)},an),[Q,D]),ne=a.useMemo(()=>{if(k)return{...rn,colId:ft,headerName:"",headerClass:Qt,cellClass:Jt,headerComponent:k===g.GridSelectionMode.MULTIPLE?sn:void 0,headerComponentParams:{label:z},cellRenderer:o=>{if(!o.data)return null;const b=D(o.data);return t.jsx(nn,{params:o,mode:k,rowId:b,radioName:_,label:A.current.selectRowLabel?.(o.data)??"Select row",disabled:u?.has(b)})}}},[k,z,D,u,_]),ae=a.useCallback(o=>{if(!o.cellRenderer)return{...o,cellRenderer:V};const b=A.current.wrapCustomCellRenderers;if(!(typeof b=="function"?b(o):!!b))return o;const B=o.cellRenderer;return{...o,cellRenderer:ue=>{const pt=j(ue.data),Ve=typeof B=="function"?B:void 0,Ct=Ve?t.jsx(Ve,{...ue}):V(ue);return U(ue,Ct,pt)}}},[j,V,U]),ve=a.useMemo(()=>{const o=E?(e??[]).map(ae):e??[];return ne?[ne,...o]:o},[e,E,ae,ne]),{defaultColDef:le,rowSelection:G,...Ee}=n??{},ye=a.useMemo(()=>({minWidth:on,resizable:!0,sortable:!0,floatingFilter:!0,filter:"agTextColumnFilter",filterParams:{filterPlaceholder:y,buttons:["reset"]},comparator:g.baseColumnComparator,...g.omitUndefined(le)}),[y,le]),Te=o=>{o.api.sizeColumnsToFit(),X(o.api),n?.onGridReady?.(o),S?.(o.api)};a.useEffect(()=>{v&&s&&v.setGridOption("rowData",s)},[v,s]);const ce=a.useCallback(()=>t.jsx(it,{live:!0,title:w,description:T,icon:L??t.jsx($.IconZoomCancel,{size:100,stroke:.5,"aria-hidden":"true"})}),[w,T,L]),ie=typeof G=="object"?G:void 0,ke=a.useMemo(()=>k?{isRowSelectable:o=>!j(o.data),...ie,mode:k===g.GridSelectionMode.SINGLE?"singleRow":"multiRow",checkboxes:!1,headerCheckbox:!1}:G,[G,ie,j,k]);a.useEffect(()=>{v&&s&&W.current.size&&W.current.forEach(o=>{const b=v.getRowNode(o);b&&!b.isSelected()&&b.setSelected(!0,!1,P.API)})},[v,s]),a.useEffect(()=>{v&&m&&(v.deselectAll("all",P.API),m.forEach(o=>{const b=v.getRowNode(o);b&&!b.isSelected()&&b.setSelected(!0,!1,P.API)}))},[v,m]);const l=a.useCallback(o=>o.data?D(o.data):"",[D]);return a.useEffect(()=>{const o=Q(Z.current);if(v&&m?.size&&o){const b=Array.from(m)[0];if(b){const N=v.getRowNode(b);N&&v.ensureNodeVisible(N)}}},[v,Q,m]),t.jsx("div",{className:h.mergeClasses(ut,"size-full",k&&Xt,k&&oe&&en,O&&Yt,i),role:"region","aria-label":d,"aria-busy":R,children:t.jsx("div",{className:"h-full overflow-x-auto",children:t.jsx(g.AgGridReact,{rowModelType:"clientSide",headerHeight:Le,rowHeight:Le,cellSelection:!1,theme:K,autoSizeStrategy:{type:"fitGridWidth"},columnDefs:ve,defaultColDef:ye,onGridSizeChanged:Ie,onGridReady:Te,loading:R,suppressCellFocus:!0,suppressDragLeaveHidesColumns:!0,noRowsOverlayComponent:ce,rowData:s,rowSelection:ke,onSelectionChanged:Ne,getRowId:l,...Ee})})})},cn=({value:e,locale:s=dt,options:n=mt,emptyPlaceholder:r,className:i,hideTooltip:d=!1})=>{const c=g.convertToDate(e),u=a.useMemo(()=>c?new Intl.DateTimeFormat(s,n).format(c):r,[c,r,s,n]),m=c?c.toISOString():void 0;return t.jsx(Se,{text:m?t.jsx("time",{dateTime:m,children:u}):t.jsx("span",{children:u}),className:h.mergeClasses("dial-small-text text-primary",i),hideTooltip:d})};exports.Checkbox=Me;exports.CheckboxBox=He;exports.CloseButton=rt;exports.DEFAULT_DATE_FORMAT_OPTIONS=mt;exports.DEFAULT_LOCALE=dt;exports.DangerIconButton=Vt;exports.DateCellRenderer=cn;exports.Dropdown=at;exports.EllipsisTooltip=Se;exports.GRID_ALIGN_RIGHT_CLASS=tn;exports.GRID_ROOT_CLASS=ut;exports.GRID_SELECTION_COLUMN_ID=ft;exports.GRID_THEME_PARAMS=me;exports.GhostIconButton=st;exports.Grid=ln;exports.IconButton=be;exports.InfoButton=Xe;exports.InteractiveTooltip=pe;exports.InteractiveTooltipTrigger=fe;exports.Label=je;exports.MenuItem=Ce;exports.MenuItemMark=H;exports.NeutralIconButton=Ft;exports.NoDataContent=it;exports.PrimaryIconButton=Bt;exports.ROW_HEIGHT=Le;exports.Radio=ct;exports.StaticIconButton=Gt;exports.SvgNoData=lt;exports.Tooltip=Ue;exports.TooltipContainer=we;exports.TooltipContent=Re;exports.TooltipPlacement=xe;exports.TooltipTrigger=De;exports.getButtonClassNames=qe;exports.getDisabledButtonProps=$e;exports.overlayGap=tt;exports.overlayItemClassName=Qe;exports.overlayListClassName=Be;exports.overlaySubMenuListClassName=Je;exports.overlaySurfaceClassName=Oe;
@@ -1,100 +1,104 @@
1
- import { jsx as n, jsxs as j, Fragment as w } from "react/jsx-runtime";
2
- import { useFloatingNodeId as H, useFloating as U, autoUpdate as G, offset as K, flip as Y, shift as k, useHover as q, safePolygon as z, useFocus as B, useDismiss as J, useInteractions as Q, useMergeRefs as u, FloatingPortal as W, FloatingFocusManager as X } from "@floating-ui/react";
3
- import { useState as Z, useRef as $, useMemo as d, isValidElement as ee, cloneElement as oe } from "react";
4
- import { useThemeScope as te } from "../ThemeScope/ThemeScope.js";
5
- import { useIsMobileScreen as se } from "../../../hooks/use-is-mobile-screen.js";
6
- import { TooltipPlacement as ne } from "../../../types/tooltip.js";
7
- import { mergeClasses as g } from "../../../utils/merge-classes.js";
8
- import { INTERACTIVE_TOOLTIP_GAP as le, INTERACTIVE_TOOLTIP_HOVER_OPEN_DELAY as ae, interactiveTooltipClassName as re } from "./constants.js";
9
- import { DIAL_KIT_CLASS as ie } from "../../../constants/public-class-names.js";
10
- const Re = ({
11
- content: a,
12
- placement: T = ne.Right,
1
+ import { jsx as i, jsxs as U, Fragment as G } from "react/jsx-runtime";
2
+ import { useFloatingNodeId as K, useFloating as Y, autoUpdate as q, offset as z, flip as B, shift as J, useHover as Q, safePolygon as W, useFocus as X, useClick as Z, useDismiss as $, useInteractions as ee, useMergeRefs as u, FloatingPortal as oe, FloatingFocusManager as te } from "@floating-ui/react";
3
+ import { useState as se, useRef as ne, useMemo as d, isValidElement as ie, cloneElement as le } from "react";
4
+ import { useThemeScope as re } from "../ThemeScope/ThemeScope.js";
5
+ import { useIsMobileScreen as ae } from "../../../hooks/use-is-mobile-screen.js";
6
+ import { InteractiveTooltipTrigger as T, TooltipPlacement as ce } from "../../../types/tooltip.js";
7
+ import { mergeClasses as I } from "../../../utils/merge-classes.js";
8
+ import { INTERACTIVE_TOOLTIP_GAP as fe, INTERACTIVE_TOOLTIP_HOVER_OPEN_DELAY as pe, interactiveTooltipClassName as me } from "./constants.js";
9
+ import { DIAL_KIT_CLASS as ge } from "../../../constants/public-class-names.js";
10
+ const Ee = ({
11
+ content: r,
12
+ placement: R = ce.Right,
13
13
  children: e,
14
- asChild: I = !1,
15
- hideTooltip: R = !1,
16
- initialOpen: F = !1,
14
+ asChild: C = !1,
15
+ hideTooltip: F = !1,
16
+ initialOpen: h = !1,
17
+ trigger: v = T.Hover,
17
18
  open: t,
18
- onOpenChange: h,
19
- triggerClassName: r,
20
- contentClassName: E
19
+ onOpenChange: E,
20
+ triggerClassName: a,
21
+ contentClassName: P
21
22
  }) => {
22
- const P = se(), C = te(), [v, N] = Z(F), i = t ?? v, O = (m) => {
23
- h?.(m), t == null && N(m);
24
- }, _ = H(), { refs: s, floatingStyles: S, context: o } = U({
25
- nodeId: _,
26
- placement: T,
27
- open: i,
28
- onOpenChange: O,
29
- whileElementsMounted: G,
23
+ const N = ae(), s = v === T.Click, O = re(), [_, S] = se(h), c = t ?? _, A = (g) => {
24
+ E?.(g), t == null && S(g);
25
+ }, M = K(), { refs: n, floatingStyles: b, context: o } = Y({
26
+ nodeId: M,
27
+ placement: R,
28
+ open: c,
29
+ onOpenChange: A,
30
+ whileElementsMounted: q,
30
31
  middleware: [
31
- K(le),
32
+ z(fe),
32
33
  /* No `fallbackAxisSideDirection`: a panel placed to the right should
33
34
  flip to the left when it does not fit, not drop to the perpendicular
34
35
  top/bottom axis, which reads as the panel landing in the wrong place.*/
35
- Y({ padding: 5 }),
36
- k({ padding: 5 })
36
+ B({ padding: 5 }),
37
+ J({ padding: 5 })
37
38
  ]
38
- }), A = q(o, {
39
- enabled: t == null,
39
+ }), L = Q(o, {
40
+ enabled: t == null && !s,
40
41
  /* Lets the pointer cross the gap between the trigger and the panel
41
42
  without closing it, so it can actually be reached and used. */
42
- handleClose: z(),
43
- delay: { open: ae, close: 0 }
44
- }), M = B(o, { enabled: t == null }), L = J(o), { getReferenceProps: c, getFloatingProps: V } = Q([
45
- A,
46
- M,
47
- L
48
- ]), b = $(null), x = u(
49
- d(() => [s.setFloating, b], [s.setFloating])
50
- ), f = I && ee(e), l = f ? e.props?.ref : null, p = u(
43
+ handleClose: W(),
44
+ delay: { open: pe, close: 0 }
45
+ }), V = X(o, {
46
+ enabled: t == null && !s
47
+ }), k = Z(o, { enabled: s }), x = $(o), { getReferenceProps: f, getFloatingProps: y } = ee([
48
+ L,
49
+ V,
50
+ k,
51
+ x
52
+ ]), D = ne(null), H = u(
53
+ d(() => [n.setFloating, D], [n.setFloating])
54
+ ), p = C && ie(e), l = p ? e.props?.ref : null, m = u(
51
55
  d(
52
- () => [s.setReference, ...l ? [l] : []],
53
- [s.setReference, l]
56
+ () => [n.setReference, ...l ? [l] : []],
57
+ [n.setReference, l]
54
58
  )
55
- ), y = !R && !P && !!a, D = f ? oe(
59
+ ), j = !F && (s || !N) && !!r, w = p ? le(
56
60
  e,
57
- c({
61
+ f({
58
62
  ...e.props,
59
- ref: p,
60
- className: g(
63
+ ref: m,
64
+ className: I(
61
65
  e.props.className,
62
- r
66
+ a
63
67
  ) || void 0
64
68
  })
65
- ) : /* @__PURE__ */ n(
69
+ ) : /* @__PURE__ */ i(
66
70
  "span",
67
71
  {
68
- ref: p,
69
- ...c(),
70
- className: r ?? "text-start",
72
+ ref: m,
73
+ ...f(),
74
+ className: a ?? "text-start",
71
75
  children: e
72
76
  }
73
77
  );
74
- return /* @__PURE__ */ j(w, { children: [
75
- D,
76
- i && y && /* @__PURE__ */ n(W, { id: "interactive-tooltip-portal", children: /* @__PURE__ */ n(
77
- X,
78
+ return /* @__PURE__ */ U(G, { children: [
79
+ w,
80
+ c && j && /* @__PURE__ */ i(oe, { id: "interactive-tooltip-portal", children: /* @__PURE__ */ i(
81
+ te,
78
82
  {
79
83
  context: o,
80
84
  modal: !1,
81
85
  initialFocus: -1,
82
86
  returnFocus: !1,
83
87
  order: ["reference", "content"],
84
- children: /* @__PURE__ */ n(
88
+ children: /* @__PURE__ */ i(
85
89
  "div",
86
90
  {
87
- ref: x,
91
+ ref: H,
88
92
  "data-placement": o.placement,
89
- style: S,
90
- ...V(),
91
- className: g(
92
- re,
93
- C,
94
- E,
95
- ie.interactiveTooltip
93
+ style: b,
94
+ ...y(),
95
+ className: I(
96
+ me,
97
+ O,
98
+ P,
99
+ ge.interactiveTooltip
96
100
  ),
97
- children: a
101
+ children: r
98
102
  }
99
103
  )
100
104
  }
@@ -102,5 +106,5 @@ const Re = ({
102
106
  ] });
103
107
  };
104
108
  export {
105
- Re as InteractiveTooltip
109
+ Ee as InteractiveTooltip
106
110
  };
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.15.0-dev.50",
3
- "generatedAt": "2026-10-07T22:13:33.462Z",
2
+ "version": "0.15.0-dev.51",
3
+ "generatedAt": "2026-10-08T09:20:27.087Z",
4
4
  "kit": {
5
5
  "name": "@epam/ai-dial-ui-kit",
6
6
  "description": "A modern UI kit for building AI DIAL interfaces with React",
@@ -4555,7 +4555,7 @@
4555
4555
  "name": "InteractiveTooltip",
4556
4556
  "category": "Components_2_0",
4557
4557
  "generation": "2.0",
4558
- "description": "A hover panel that, unlike , can hold its own interactive\ncontent.\naliases: HoverCard|InfoPopover\nDesign system 2.0\n\nOpens next to the trigger on hover or focus, the way a tooltip does, but\nstays open while the pointer moves into the panel so its content — links,\nbuttons, anything — can be hovered and clicked. It carries no `role`, since\nARIA's `tooltip` role forbids focusable content and this is meant to hold\nsome; a panel with meaningfully interactive content should still be\nreachable without a mouse (Tab from the trigger reaches it), but a purely\ndecorative one is fine to leave out of the tab order entirely.\n\nRenders nothing on a mobile screen, where there is no hover to reveal it —\nso, as with , a control must never depend on this panel alone\nto be understood or operated.",
4558
+ "description": "A hover panel that, unlike , can hold its own interactive\ncontent.\naliases: HoverCard|InfoPopover\nDesign system 2.0\n\nOpens next to the trigger on hover or focus, the way a tooltip does, but\nstays open while the pointer moves into the panel so its content — links,\nbuttons, anything — can be hovered and clicked. It carries no `role`, since\nARIA's `tooltip` role forbids focusable content and this is meant to hold\nsome; a panel with meaningfully interactive content should still be\nreachable without a mouse (Tab from the trigger reaches it), but a purely\ndecorative one is fine to leave out of the tab order entirely.\n\nRenders nothing on a mobile screen, where there is no hover to reveal it —\nso, as with , a control must never depend on this panel alone\nto be understood or operated. A trigger whose only job is to reveal the\npanel, such as an info chip, sets `trigger={InteractiveTooltipTrigger.Click}`\ninstead: the panel then opens on click or tap, works on every screen size,\nand no longer reacts to hover or focus. Do not use it on a trigger that has\nan action of its own, since the same tap would run both.",
4559
4559
  "props": [
4560
4560
  {
4561
4561
  "name": "content",
@@ -4597,6 +4597,12 @@
4597
4597
  "defaultValue": "false",
4598
4598
  "description": "Whether the panel starts open (uncontrolled only)"
4599
4599
  },
4600
+ {
4601
+ "name": "trigger",
4602
+ "type": "InteractiveTooltipTrigger",
4603
+ "required": false,
4604
+ "description": "What opens the panel: hover or focus, or a click or tap that keeps it open until dismissed"
4605
+ },
4600
4606
  {
4601
4607
  "name": "open",
4602
4608
  "type": "boolean",
@@ -12131,6 +12137,21 @@
12131
12137
  ],
12132
12138
  "sourceFile": "components/New/Tooltip/TooltipContext.tsx"
12133
12139
  },
12140
+ {
12141
+ "name": "InteractiveTooltipTrigger",
12142
+ "kind": "enum",
12143
+ "members": [
12144
+ {
12145
+ "name": "Hover",
12146
+ "value": "'hover'"
12147
+ },
12148
+ {
12149
+ "name": "Click",
12150
+ "value": "'click'"
12151
+ }
12152
+ ],
12153
+ "sourceFile": "types/tooltip.ts"
12154
+ },
12134
12155
  {
12135
12156
  "name": "TooltipPlacement",
12136
12157
  "kind": "enum",