@magicx-eng/ai-autocomplete-react 0.39.2 → 0.39.4
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/index.js +22 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -214,6 +214,12 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
214
214
|
transition: opacity var(--aia-placeholder-fade, 120ms) ease-out;
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
/* The core updates state only at compositionend, so the editor still reads empty during IME composition.
|
|
218
|
+
Hide the placeholder beside the composing text. */
|
|
219
|
+
.aia-input-IW-P-[data-aia-empty="true"][data-placeholder][data-aia-composing]::before {
|
|
220
|
+
content: none;
|
|
221
|
+
}
|
|
222
|
+
|
|
217
223
|
.aia-input-IW-P-[data-aia-placeholder-leaving]::before {
|
|
218
224
|
opacity: 0;
|
|
219
225
|
}
|
|
@@ -621,14 +627,20 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
621
627
|
crossing it at half strength. --aia-surface is what the dropdown paints
|
|
622
628
|
itself with, so theming the surface retints the fade with it. z-index: -1
|
|
623
629
|
keeps it under the footer's own content but, via the footer's stacking
|
|
624
|
-
context, above the option rows.
|
|
630
|
+
context, above the option rows.
|
|
631
|
+
The gradient is solid from the footer's top edge, so no option shows
|
|
632
|
+
behind the hint, badge or scroll arrow. */
|
|
625
633
|
[data-aia-dropdown] [data-aia-footer]::before {
|
|
626
634
|
content: "";
|
|
627
635
|
position: absolute;
|
|
628
636
|
inset: var(--aia-footer-fade-inset, -20px 0 0);
|
|
629
637
|
z-index: -1;
|
|
630
638
|
pointer-events: none;
|
|
631
|
-
background: linear-gradient(
|
|
639
|
+
background: linear-gradient(
|
|
640
|
+
to bottom,
|
|
641
|
+
transparent,
|
|
642
|
+
var(--aia-surface, #ffffff) var(--aia-footer-fade-lead, 20px)
|
|
643
|
+
);
|
|
632
644
|
}
|
|
633
645
|
|
|
634
646
|
/* The glass surface is translucent \u2014 there's no solid color to dissolve into,
|
|
@@ -710,7 +722,11 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
710
722
|
/* ...and the fade runs the other way, out of the footer and down into the list. */
|
|
711
723
|
:where(.magicx-aia[data-options-position="above"]) [data-aia-dropdown] [data-aia-footer]::before,
|
|
712
724
|
[data-aia-dropdown][data-options-position="above"] [data-aia-footer]::before {
|
|
713
|
-
background: linear-gradient(
|
|
725
|
+
background: linear-gradient(
|
|
726
|
+
to top,
|
|
727
|
+
transparent,
|
|
728
|
+
var(--aia-surface, #ffffff) var(--aia-footer-fade-lead, 20px)
|
|
729
|
+
);
|
|
714
730
|
}
|
|
715
731
|
|
|
716
732
|
/* Disable all animations when data-animations="off" */
|
|
@@ -2286,7 +2302,7 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
2286
2302
|
opacity: 0;
|
|
2287
2303
|
}
|
|
2288
2304
|
}
|
|
2289
|
-
`,document.head.appendChild(e)}var q={item:"aia-item-d4vpD",content:"aia-content-T-Qba",riseIn:"aia-riseIn-etXZT",fadeIn:"aia-fadeIn-I8u35",tappable:"aia-tappable-70KcX",nonTappable:"aia-nonTappable-xSZM-",highlighted:"aia-highlighted-Hb0SU",tag:"aia-tag-e3Fwe",pressed:"aia-pressed-98o-r",pressCompress:"aia-pressCompress-ICV3q",scrollHint:"aia-scrollHint-xKXPt",skeletonPulse:"aia-skeletonPulse-plvdD",text:"aia-text-yqoh9",skeletonBarIn:"aia-skeletonBarIn-ZlEM0",parameter:"aia-parameter-Dt2zF",icon:"aia-icon-Qw938",count:"aia-count-IpYbQ",image:"aia-image-YZAbO",skeletonOut:"aia-skeletonOut-x6NRd"};import{Fragment as qa,jsx as ke,jsxs as dt}from"react/jsx-runtime";function Ot({option:e,isHighlighted:o,onSelect:t,onHighlight:a,onUnhighlight:n,id:r,loading:i,showIcon:c=!0,showImage:l=!0,showCount:v=!0,scrollHint:P,enterDelayMs:C=0}){let[g]=lt(C),[b,S]=lt(!1),L=l?Ha(e.image_url):[],z=L[0]??null,[K,O]=lt([]),I=L.find(E=>!K.includes(E))??null,F=Wa(()=>!z&&c&&e.icon_svg?Ka(e.icon_svg):null,[z,c,e.icon_svg]),M=v?Na(e.item_count):null,
|
|
2305
|
+
`,document.head.appendChild(e)}var q={item:"aia-item-d4vpD",content:"aia-content-T-Qba",riseIn:"aia-riseIn-etXZT",fadeIn:"aia-fadeIn-I8u35",tappable:"aia-tappable-70KcX",nonTappable:"aia-nonTappable-xSZM-",highlighted:"aia-highlighted-Hb0SU",tag:"aia-tag-e3Fwe",pressed:"aia-pressed-98o-r",pressCompress:"aia-pressCompress-ICV3q",scrollHint:"aia-scrollHint-xKXPt",skeletonPulse:"aia-skeletonPulse-plvdD",text:"aia-text-yqoh9",skeletonBarIn:"aia-skeletonBarIn-ZlEM0",parameter:"aia-parameter-Dt2zF",icon:"aia-icon-Qw938",count:"aia-count-IpYbQ",image:"aia-image-YZAbO",skeletonOut:"aia-skeletonOut-x6NRd"};import{Fragment as qa,jsx as ke,jsxs as dt}from"react/jsx-runtime";function Ot({option:e,isHighlighted:o,onSelect:t,onHighlight:a,onUnhighlight:n,id:r,loading:i,showIcon:c=!0,showImage:l=!0,showCount:v=!0,scrollHint:P,enterDelayMs:C=0}){let[g]=lt(C),[b,S]=lt(!1),L=l?Ha(e.image_url):[],z=L[0]??null,[K,O]=lt([]),I=L.find(E=>!K.includes(E))??null,F=Wa(()=>!z&&c&&e.icon_svg?Ka(e.icon_svg):null,[z,c,e.icon_svg]),M=v?Na(e.item_count):null,y=_a(void 0);Ga(()=>()=>clearTimeout(y.current),[]);let N=()=>{i||!e.is_tappable||b||(S(!0),t(e),clearTimeout(y.current),y.current=setTimeout(()=>S(!1),170))},G=[q.item,o&&!i?q.highlighted:"",e.is_tappable?q.tappable:q.nonTappable,b?q.pressed:"",P?q.scrollHint:""].filter(Boolean).join(" ");return ke("div",{id:r,role:"option","data-aia-option":"","data-aia-loading":i?"":void 0,"data-aia-icon":F&&e.icon?e.icon:void 0,"data-aia-image":z?"":void 0,"data-aia-item-count":M!==null?e.item_count:void 0,"aria-selected":o,className:G,style:{[Ba]:`${g}ms`},tabIndex:i||!e.is_tappable?-1:0,onClick:N,onKeyDown:E=>{!i&&e.is_tappable&&(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),N())},onMouseEnter:!i&&e.is_tappable?a:void 0,onMouseLeave:n,children:dt("span",{className:q.content,children:[z&&ke("span",{className:`${q.image} magicx-aia-option-image`,"aria-hidden":"true",children:ke("img",{src:I??z,alt:"",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer",draggable:!1,hidden:I===null,onError:()=>{I!==null&&O(E=>[...E,I])}})}),F&&ke("span",{className:`${q.icon} magicx-aia-option-icon`,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:F}}),dt("span",{className:q.text,children:[e.matchedText?Fa(Dt(e),e.matchedText).map((E,V)=>E.bold?ke("strong",{children:E.text},V):E.text):Dt(e),e.parameterLabel&&dt(qa,{children:[" ",ke("span",{className:`${q.parameter} magicx-aia-option-parameter`,children:e.parameterLabel})]})]}),e.tag&&ke("span",{className:q.tag,children:e.tag}),M!==null&&ke("span",{className:`${q.count} magicx-aia-option-count`,children:M})]})})}import{jsx as Mt}from"react/jsx-runtime";function Ja(){let[e,o]=Nt(Ua);return $a(()=>{if(typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(Ya),a=()=>o(t.matches);return a(),t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[]),e}function Ft({options:e,activeIndex:o,onSelect:t,onHighlight:a,onUnhighlight:n,listboxId:r,loading:i,groupKey:c="",optionsPosition:l="below",showIcons:v=!0,showImages:P=!0,showCounts:C=!0}){let g=Ja(),b=zt(null),[S,L]=Nt(null),z=zt(null);Xa(()=>{if(i&&Va(z.current,e))return;z.current=i?null:e;let O=b.current,F=O&&!i&&Qa(e.length,g)?ja(O):null;L(F?Lt(e.length,g,F.rowWidths,F.gridWidth):null)},[e,g,i]);let K=S??Lt(e.length,g,null,null);return Mt(Rt,{min:"250px",max:"1fr",gap:"0",scroll:!0,scrollResetKey:c,template:K.template,maxHeight:K.maxHeight,innerRef:O=>{b.current=O},"data-aia-group":c,children:e.map((O,I)=>Mt(Ot,{option:O,isHighlighted:I===o,onSelect:t,onHighlight:()=>a(I),onUnhighlight:n?()=>n(I):void 0,id:`${r}-option-${I}`,loading:i,showIcon:v,showImage:P,showCount:C,scrollHint:!i&&K.scrollHintIndices.includes(I),enterDelayMs:i?0:Za(I,K.cols,e.length,l)},`${c}\0${O.text}`))})}if(typeof document<"u"&&!document.getElementById("ac-style-8414cd5f")){let e=document.createElement("style");e.id="ac-style-8414cd5f",e.textContent=`.aia-stack {
|
|
2290
2306
|
display: flex;
|
|
2291
2307
|
flex-direction: column;
|
|
2292
2308
|
gap: var(--aia-stack-space, 0.5rem);
|
|
@@ -2301,7 +2317,7 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
2301
2317
|
align-items: end;
|
|
2302
2318
|
}
|
|
2303
2319
|
/* data-align="stretch" is the flex default \u2014 no rule needed. */
|
|
2304
|
-
`,document.head.appendChild(e)}import{jsx as ei}from"react/jsx-runtime";function Bt({space:e,align:o="stretch",className:t,children:a,...n}){let r=e?{"--aia-stack-space":e}:void 0;return ei("div",{className:t?`aia-stack ${t}`:"aia-stack","data-align":o,style:r,...n,children:a})}import{jsx as Z,jsxs as ct}from"react/jsx-runtime";var di=[159,119,164],ci=()=>{},Ht=()=>{};function pi(e){let o=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches,[t,a]=li(o);if(Oe(()=>{if(e!=="auto"||typeof window>"u"||typeof window.matchMedia!="function")return;let n=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>a(n.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[e]),e!==void 0)return e==="auto"?t?"dark":"light":e}function hi(e,o){let t=De(null);Oe(()=>{let a=e.current,n=o.current;if(!a||!n)return;let r=a.querySelector(".aia-grid[data-scroll]");if(t.current&&t.current.grid!==r&&(t.current.controller.destroy(),t.current=null),r&&!t.current){t.current={grid:r,controller:ti({dropdown:a,grid:r,button:n})};return}t.current?.controller.update()}),Oe(()=>()=>{t.current?.controller.destroy(),t.current=null},[])}function ui(e,o){let t=De(o);t.current=o;let a=De(null);Oe(()=>{let n=e.current;if(n){if(!a.current){a.current=ai({dropdown:n,isOpen:()=>t.current});return}a.current.update()}}),Oe(()=>()=>{a.current?.destroy(),a.current=null},[])}function pt({suggestions:e,activeIndex:o,onSelect:t,onHighlight:a,onUnhighlight:n,isOpen:r,id:i,className:c,pills:l,onPillClick:v,showPills:P=!0,onSkip:C,showSkipButton:g=!0,showOptionIcons:b=!0,showOptionImages:S=!0,showOptionCounts:L=!0,skipDisabled:z=!1,activeSelected:K=!1,isLoading:O=!1,skeletonExiting:I=!1,isInputEmpty:F=!1,language:M,products:
|
|
2320
|
+
`,document.head.appendChild(e)}import{jsx as ei}from"react/jsx-runtime";function Bt({space:e,align:o="stretch",className:t,children:a,...n}){let r=e?{"--aia-stack-space":e}:void 0;return ei("div",{className:t?`aia-stack ${t}`:"aia-stack","data-align":o,style:r,...n,children:a})}import{jsx as Z,jsxs as ct}from"react/jsx-runtime";var di=[159,119,164],ci=()=>{},Ht=()=>{};function pi(e){let o=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches,[t,a]=li(o);if(Oe(()=>{if(e!=="auto"||typeof window>"u"||typeof window.matchMedia!="function")return;let n=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>a(n.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[e]),e!==void 0)return e==="auto"?t?"dark":"light":e}function hi(e,o){let t=De(null);Oe(()=>{let a=e.current,n=o.current;if(!a||!n)return;let r=a.querySelector(".aia-grid[data-scroll]");if(t.current&&t.current.grid!==r&&(t.current.controller.destroy(),t.current=null),r&&!t.current){t.current={grid:r,controller:ti({dropdown:a,grid:r,button:n})};return}t.current?.controller.update()}),Oe(()=>()=>{t.current?.controller.destroy(),t.current=null},[])}function ui(e,o){let t=De(o);t.current=o;let a=De(null);Oe(()=>{let n=e.current;if(n){if(!a.current){a.current=ai({dropdown:n,isOpen:()=>t.current});return}a.current.update()}}),Oe(()=>()=>{a.current?.destroy(),a.current=null},[])}function pt({suggestions:e,activeIndex:o,onSelect:t,onHighlight:a,onUnhighlight:n,isOpen:r,id:i,className:c,pills:l,onPillClick:v,showPills:P=!0,onSkip:C,showSkipButton:g=!0,showOptionIcons:b=!0,showOptionImages:S=!0,showOptionCounts:L=!0,skipDisabled:z=!1,activeSelected:K=!1,isLoading:O=!1,skeletonExiting:I=!1,isInputEmpty:F=!1,language:M,products:y,onProductSelect:N,onProductFocusChange:G,productsLayout:E="row",productImageFallback:V="image",formatType:ce="options",dateView:W=null,selectedDateIso:pe=null,selectedDateRange:Ce=null,dateRangeStart:he=null,onPreviousMonth:u,onNextMonth:Pe,optionsPosition:ie="below",mode:ue}){let oe=pi(ue),ge=oe!==void 0,U=De(null),$=De(null);hi(U,$),Oe(()=>{if(U.current)return ii(U.current)},[]);let s=e[0]?.options??[],m=!!(l&&l.length>0&&v),f=!!(y&&y.length>0),w=r&&(s.length>0||P&&m||O||f);ui(U,w);let k={suggestions:e,activeIndex:o,pills:l,showPills:P,showSkipButton:g,showOptionIcons:b,showOptionImages:S,showOptionCounts:L,skipDisabled:z,activeSelected:K,isLoading:O,skeletonExiting:I,isInputEmpty:F,products:y,formatType:ce,dateView:W,selectedDateIso:pe,selectedDateRange:Ce,dateRangeStart:he},T=De(k);w&&(T.current=k);let p=w?k:T.current,B=si(M),j=p.suggestions[0],Q=j?.options??[],me=p.activeIndex>=0&&!!Q[p.activeIndex]?.is_tappable,ne=ri(p.pills??[],B.keepTyping),J=!!(ne.length>0&&v),fe=p.showPills&&J,Se=p.showPills&&!J&&p.isLoading,x=fe||Se,be=J&&oi(ne)&&p.showSkipButton&&!p.isInputEmpty&&!!C,we=ne[0]?.text,re=ni(p.formatType)&&p.dateView!=null,h=Q.length>0&&!re,Ie=Q.length>0&&re&&!p.isLoading,Ne=p.isLoading&&!h&&!Ie,ve=p.products??[];return ct("div",{ref:U,id:i,role:"listbox","data-aia-dropdown":"","data-options-position":ie,"data-mode":oe,"data-aia-loading":p.isLoading?"":void 0,"data-aia-skeleton-exiting":p.skeletonExiting?"":void 0,"data-aia-has-products":ve.length>0?"":void 0,className:`${ge?"magicx-aia ":""}${se.dropdown} ${w?se.visible:""} ${c??""}`,onMouseDown:ee=>ee.preventDefault(),children:[ct(Bt,{space:"8px",children:[(x||be)&&ct(Ke,{noWrap:!0,className:se.pillBar,"data-aia-pillbar":"",children:[x&&Z("span",{className:se.pillScroll,"data-aia-pill-scroll":"",children:Z(Ve,{pills:ne,activePillIndex:0,activeSelected:p.activeSelected,onSelectPill:v??(()=>{}),rounded:!0,loading:p.isLoading})}),be&&Z("button",{type:"button",tabIndex:-1,className:se.skip,"data-aia-skip":"",disabled:p.isLoading||p.skipDisabled,"aria-label":we?`${B.skipLabel} ${we}`:B.skipLabel,onClick:C,children:B.skip})]}),h&&Z(Ft,{options:Q,activeIndex:p.activeIndex,onSelect:t,onHighlight:a,onUnhighlight:n,listboxId:i,loading:p.isLoading,groupKey:j?`${j.parameter} ${j.text}`:"",optionsPosition:ie,showIcons:p.showOptionIcons,showImages:p.showOptionImages,showCounts:p.showOptionCounts}),Ie&&p.dateView&&Z(Pt,{options:Q,activeIndex:p.activeIndex,listboxId:i,view:p.dateView,selection:{selectedIso:p.selectedDateIso??null,selectedRange:p.selectedDateRange??null,rangeStart:p.dateRangeStart??null},onSelect:t,onHighlight:a,onUnhighlight:n,onPreviousMonth:u??Ht,onNextMonth:Pe??Ht}),Ne&&Z("div",{className:se.skeletonBars,"data-aia-skeleton-bars":"",children:di.map(ee=>Z("span",{className:se.skeletonBar,style:{width:ee}},`bar-${ee}`))}),Z(At,{products:ve,listboxId:i,onSelect:N??ci,onFocusChange:G,focusable:w,layout:E,imageFallback:V,strings:B}),Z(It,{isOptionHighlighted:me,isInputEmpty:p.isInputEmpty,strings:B})]}),Z("button",{ref:$,type:"button",tabIndex:-1,className:se.scrollArrow,"data-aia-scroll-arrow":"","aria-label":B.scrollArrow,"aria-hidden":"true",children:Z("svg",{viewBox:"0 0 16 16",width:"18",height:"18",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",children:Z("path",{d:"M4 6.5 8 10.5l4-4"})})})]})}import{buildSubmitResult as Ai,ModeController as Ri,setCursorOffset as Di,uiStringsFor as Oi}from"@magicx-eng/ai-autocomplete-vanilla";import{uiStringsFor as gi}from"@magicx-eng/ai-autocomplete-vanilla";if(typeof document<"u"&&!document.getElementById("ac-style-fdee06e6")){let e=document.createElement("style");e.id="ac-style-fdee06e6",e.textContent=`.aia-submitButton-otz7H {
|
|
2305
2321
|
flex-shrink: 0;
|
|
2306
2322
|
width: 32px;
|
|
2307
2323
|
height: 32px;
|
|
@@ -2354,5 +2370,5 @@ import{buildSubmitResult as Tn,cellDay as En,cellIso as An,DATE_RANGE_META_END a
|
|
|
2354
2370
|
);
|
|
2355
2371
|
cursor: default;
|
|
2356
2372
|
}
|
|
2357
|
-
`,document.head.appendChild(e)}var Kt={submitButton:"aia-submitButton-otz7H"};import{jsx as ht}from"react/jsx-runtime";function Gt({disabled:e,onClick:o,label:t=gi().submit}){return ht("button",{type:"button","data-aia-submit":"",className:Kt.submitButton,disabled:e,onClick:a=>{a.stopPropagation(),o()},"aria-label":t,children:ht("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":t,children:ht("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}import{AIAutocomplete as mi,dateSelectionFor as fi,identifiedParamLabel as bi,withoutTraditionalAutocomplete as wi}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as jt,useEffect as Le,useRef as H,useState as vi}from"react";import{useRef as Wt}from"react";function _t(e){let o=Wt(e);o.current=e;let t=Object.keys(e??{}).sort().join("\0"),a=Wt({key:"",overrides:void 0});if(a.current.key!==t){let n={};for(let r of Object.keys(e??{})){let i=(c,l,v)=>{let P=o.current?.[r];return P?P(c,l,v):[]};n[r]=i}a.current={key:t,overrides:e?n:void 0}}return{overrides:a.current.overrides,key:t}}import{useRef as qt}from"react";function Ut(e){let o=qt(e);o.current=e;let t=qt(null);t.current===null&&(t.current={fetch:(n,r)=>{let i=o.current;return i?i.fetch(n,r):Promise.reject(new Error("products config removed"))},transform:n=>o.current?.transform(n)??[],get limit(){return o.current?.limit}});let a=e!==void 0;return{config:a?t.current:void 0,enabled:a}}var xi={text:"",completedParams:[],identifiedParams:[],skippedParams:[],pendingSpan:null,suggestions:[],products:[],traditionalAutocomplete:!1,customFields:null,optionSearch:null,activeDropdownIndex:-1,newParamId:null,isLoading:!0,isReady:!1,error:null,segments:[],actionableSuggestions:[],filteredOptions:[],dropdownLoading:!0,dropdownOptions:[],skeletonOptions:null,skeletonSuggestion:null,dropdownSuggestion:null,skeletonRequested:!1,skeletonExiting:!1,activeFormatType:"options",dateView:null,dateRangeStart:null,placeholderText:"",optionQuery:"",isSearchingOptions:!1,isDropdownOpen:!1,isActivePillSelected:!1,filterBase:0,filterInProgress:!1,pillTapped:!1,skipNextFetch:!1,lastRawQuery:"",isFocused:!1,dropdownHeld:!1,editingParam:null,editingIdentified:null,editingAnchor:null,editingTail:null,caretOffset:null,inSelectionAnimation:!1,dateViewMonth:null,pendingRangeStart:null};function ut({onSubmit:e,onResult:o,onError:t,optionOverrides:a,maskCompletedText:n,apiConfig:r,additionalContext:i,language:c,productId:l,visitorId:v,columns:P=2,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showOptionIcons:L,showOptionImages:z,showOptionCounts:K,showSkipButton:O,showProducts:I,productImageFallback:F="image",onFocus:M,onBlur:k,value:N,completedParams:G,onChange:E,onParamsChange:V,products:ce,mapProducts:W,onProductSelect:pe,source:Ce,setCursor:he}){let u=H(null),[Pe,ie]=vi(null),ue=H(e);ue.current=e;let oe=H(o);oe.current=o;let ge=H(t);ge.current=t;let U=H(E);U.current=E;let $=H(V);$.current=V;let s=H(M);s.current=M;let m=H(k);m.current=k;let f=H(he);f.current=he;let w=H(pe);w.current=pe;let y=H(v);y.current=v;let T=H(()=>{let d=y.current;return typeof d=="function"?d():d}).current,p=Ut(ce),B=H(W);B.current=W;let j=H((d,_)=>{let A=B.current;return A?A(d,_):d}).current,Q=W?j:void 0,me=_t(a);Le(()=>{if(typeof document>"u")return;let d=new mi(document.createElement("div"),{renderMode:"headless",apiConfig:r,additionalContext:i,language:c,productId:l,visitorId:T,optionOverrides:me.overrides,maskCompletedText:n,columns:P,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showProducts:I,source:Ce,value:N,completedParams:G,onSubmit:(...A)=>ue.current?.(...A),onResult:(...A)=>oe.current?.(...A),onError:(...A)=>ge.current?.(...A),onChange:(...A)=>U.current?.(...A),onParamsChange:(...A)=>$.current?.(...A),onFocus:()=>s.current?.(),onBlur:()=>m.current?.(),onProductSelect:A=>w.current?.(A),setCursor:A=>f.current?.(A),products:p.config,mapProducts:Q});u.current=d,ie(d.getState());let _=d.subscribe(A=>ie(A));return()=>{_(),d.destroy(),u.current===d&&(u.current=null)}},[]),Le(()=>{N!==void 0&&u.current?.setValue(N)},[N]),Le(()=>{G!==void 0&&u.current?.setCompletedParams(G)},[G]);let ne=JSON.stringify(r??null),J;try{J=JSON.stringify(i??null)}catch{J="[unstringifiable]"}Le(()=>{u.current?.update({apiConfig:r,additionalContext:i,language:c,productId:l,optionOverrides:me.overrides,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showProducts:I})},[ne,J,c,l,me.key,C,g,b,S,I]);let fe=H(!1);Le(()=>{if(!fe.current){fe.current=!0;return}u.current?.update({products:p.config})},[p.enabled]),Le(()=>{u.current?.update({mapProducts:Q})},[Q]);let Se=H(null);Se.current===null&&(Se.current={handleTextChange:d=>u.current?.handleTextChange(d),handleKeyDown:d=>{let _="nativeEvent"in d?d.nativeEvent:d;u.current?.handleKeyDown(_)},setFocused:d=>u.current?.setFocused(d),startEditingParam:d=>u.current?.startEditingParam(d),exitEditMode:()=>u.current?.exitEditMode(),handleCaretAfterInput:d=>u.current?.handleCaretAfterInput(d),handleCaretMove:d=>u.current?.handleCaretMove(d),replaceEditingRange:d=>u.current?.replaceEditingRange(d)??!1,setActivePill:d=>u.current?.setActivePill(d),skipActivePill:()=>u.current?.skipActivePill(),removeLastParam:()=>u.current?.removeLastParam(),clearNewParamId:()=>u.current?.clearNewParamId(),reset:()=>u.current?.reset(),refreshProducts:()=>u.current?.refreshProducts(),recordSubmit:d=>u.current?.recordSubmit(d),selectOption:d=>u.current?.selectOption(d),selectProduct:d=>u.current?.selectProduct(d),setActiveDropdownIndex:d=>u.current?.setActiveDropdownIndex(d),clearHighlight:d=>u.current?.clearHighlight(d),showPreviousMonth:()=>u.current?.showPreviousMonth(),showNextMonth:()=>u.current?.showNextMonth(),handleFocus:()=>u.current?.setFocused(!0),handleBlur:()=>u.current?.setFocused(!1)});let x=Se.current,be=jt(d=>{let _=d.target.value,at=_.length>0&&!d.nativeEvent?.isComposing&&_[0]!==_[0].toUpperCase()?_[0].toUpperCase()+_.slice(1):_;u.current?.handleTextChange(at)},[]),we=jt(d=>{u.current?.handleKeyDown(d.nativeEvent)},[]),re=u.current,h=Pe??xi,Ie=N!==void 0?N:h.text,Ne=G!==void 0?G:h.completedParams,ve=h.actionableSuggestions,ee=ve[0],_e=wi(ve),Te=re?.listboxId??"",et=h.activeDropdownIndex>=0&&re?`${Te}-option-${h.activeDropdownIndex}`:void 0,xe=h.editingParam,Ee=h.editingIdentified,Fe=xe?{parameter:xe.suggestionParameter,text:xe.suggestionPlaceholder,required:!0,options:xe.options}:Ee?{parameter:Ee.parameter,text:bi(Ee.parameter),required:!0,options:[]}:null,qe=h.dropdownSuggestion??Fe??ee,tt=Fe?[Fe]:ve,Be=fi(h),Ue=!re||h.dropdownLoading;return{completedParams:Ne,skippedParams:h.skippedParams,identifiedParams:h.identifiedParams,suggestionPills:_e,setActivePill:x.setActivePill,skipActivePill:x.skipActivePill,removeLastParam:x.removeLastParam,segments:h.segments,newParamId:h.newParamId,clearNewParamId:x.clearNewParamId,suggestions:h.suggestions,activeIndex:h.activeDropdownIndex,isReady:h.isReady,isLoading:Ue,isFocused:h.isFocused,isDropdownOpen:h.isDropdownOpen,isActivePillSelected:h.isActivePillSelected,placeholderText:h.placeholderText,listboxId:Te,error:h.error,products:h.products,customFields:h.customFields,selectProduct:x.selectProduct,handleTextChange:x.handleTextChange,handleKeyDown:x.handleKeyDown,setFocused:x.setFocused,editingParam:xe,editingIdentified:Ee,editingAnchor:h.editingAnchor,caretOffset:h.caretOffset,startEditingParam:x.startEditingParam,exitEditMode:x.exitEditMode,handleCaretAfterInput:x.handleCaretAfterInput,handleCaretMove:x.handleCaretMove,replaceEditingRange:x.replaceEditingRange,inputProps:{value:Ie,placeholder:h.placeholderText||void 0,onChange:be,onKeyDown:we,onFocus:x.handleFocus,onBlur:x.handleBlur,role:"combobox","aria-expanded":h.isDropdownOpen,"aria-activedescendant":et,"aria-autocomplete":"list","aria-controls":Te},reset:x.reset,refreshProducts:x.refreshProducts,recordSubmit:x.recordSubmit,dropdownProps:{suggestions:qe?[{...qe,options:h.dropdownOptions}]:[],activeIndex:h.activeDropdownIndex,onSelect:x.selectOption,onHighlight:x.setActiveDropdownIndex,onUnhighlight:x.clearHighlight,isOpen:h.isDropdownOpen,id:Te,pills:tt,activeSelected:h.isActivePillSelected,onPillClick:x.setActivePill,onSkip:x.skipActivePill,showSkipButton:(O??!0)&&!xe&&!Ee,showOptionIcons:L??!0,showOptionImages:z??!0,showOptionCounts:K??!0,skipDisabled:h.inSelectionAnimation,isLoading:Ue,skeletonExiting:h.skeletonExiting,isInputEmpty:Ie.trim().length===0,language:c,products:h.products,productImageFallback:F,onProductSelect:x.selectProduct,onProductFocusChange:x.setFocused,formatType:h.activeFormatType,dateView:h.dateView,selectedDateIso:Be.selectedIso,selectedDateRange:Be.selectedRange,dateRangeStart:Be.rangeStart,onPreviousMonth:x.showPreviousMonth,onNextMonth:x.showNextMonth,optionsPosition:g??"below"}}}import{chipIdFromTap as yi,extractPlainText as Qt,getCursorOffset as Yt,keepCaretOnChip as ki,plainTextLength as Ci,renderEditableContent as Pi,setCursorOffset as Zt}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as X,useEffect as Xe,useLayoutEffect as gt,useRef as ze}from"react";var Je;function Si(){if(Je!==void 0)return Je;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),Je=e.contentEditable==="plaintext-only",Je}function Vt(e){let{segments:o,showChipIcons:t=!0,showChipImages:a=!0,newParamId:n,editingParam:r,editingIdentified:i,editingAnchor:c,caretOffset:l,placeholderText:v,isFocused:P,isDropdownOpen:C,listboxId:g,activeDescendantId:b,autoFocus:S,handleTextChange:L,handleKeyDown:z,handleCaretAfterInput:K,handleCaretMove:O,startEditingParam:I,replaceEditingRange:F,setFocused:M}=e,k=ze(null),N=ze(!1),G=ze(""),E=ze(""),V=ze(null),ce=ze(0);V.current=l,Xe(()=>{if(!S)return;let s=k.current;if(!s)return;document.activeElement===s?M(!0):s.focus();let m=s.ownerDocument??document,f=m.getSelection(),w=f&&f.rangeCount>0&&s.contains(f.anchorNode);if(f&&!w){let y=m.createRange();y.selectNodeContents(s),y.collapse(!0),f.removeAllRanges(),f.addRange(y)}},[S,M]),Xe(()=>{let s=k.current;if(!s)return;let m=s.ownerDocument??document,f=()=>{let w=m.getSelection();if(!w||w.rangeCount===0||!w.anchorNode||!s.contains(w.anchorNode))return;let y=w.anchorNode,T=y.nodeType===Node.ELEMENT_NODE?y:y.parentElement,B=(w.isCollapsed?T?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,j=r?.id??i?.id??null;if(B&&B!==j){I(B);return}performance.now()-ce.current<50||O(Yt(s))};return m.addEventListener("selectionchange",f),()=>m.removeEventListener("selectionchange",f)},[r,i,I,O]),Xe(()=>{let s=k.current;if(!s)return;let m=f=>{let w=yi(s,f.target);w&&(I(w),ki(s,w))};return s.addEventListener("click",m),()=>s.removeEventListener("click",m)},[I]),gt(()=>{let s=k.current;s&&Pi({input:s,segments:o,newParamId:n,editingParamId:r?.id??null,placeholderText:v??"",isFocused:P,showChipIcons:t,showChipImages:a})},[o,n,r,v,P,t,a]),gt(()=>{let s=G.current,m=n??"";if(G.current=m,!m||m===s)return;let f=k.current;if(!f)return;f.focus();let w=V.current??Ci(f);Zt(f,w)},[n]),gt(()=>{let s=E.current,m=r?.id??"";if(E.current=m,!m||m===s||c==null)return;let f=k.current;f&&Zt(f,c)},[r,c]);let W=X(()=>{if(N.current)return;let s=k.current;if(!s)return;let m=Qt(s),w=m.length>0&&m[0]!==m[0].toUpperCase()?m[0].toUpperCase()+m.slice(1):m;L(w)},[L]),pe=X(()=>{ce.current=performance.now(),W();let s=k.current;s&&K(Yt(s))},[W,K]);Xe(()=>{let s=k.current;if(!s)return;let m=f=>{let w=f,y=w.inputType;if(y==="insertParagraph"||y==="insertLineBreak"||y==="insertFromDrop"){f.preventDefault();return}if(y.startsWith("insert")||y.startsWith("delete")){let T=y.startsWith("delete")?"":w.data??"";F(T)&&f.preventDefault()}};return s.addEventListener("beforeinput",m),()=>s.removeEventListener("beforeinput",m)},[F]);let Ce=X(()=>{N.current=!0},[]),he=X(()=>{N.current=!1,W()},[W]),u=X(s=>{s.preventDefault();let m=k.current;if(!m)return;let f=(s.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!f)return;let w=m.ownerDocument??document,y=w.getSelection();if(!y||y.rangeCount===0)return;let T=y.getRangeAt(0);if(!m.contains(T.startContainer))return;T.deleteContents();let p=w.createTextNode(f);T.insertNode(p),T.setStartAfter(p),T.collapse(!0),y.removeAllRanges(),y.addRange(T),W()},[W]),Pe=X(s=>z(s),[z]),ie=X(()=>M(!0),[M]),ue=X(()=>M(!1),[M]),oe=X(()=>k.current?.focus(),[]),ge=X(()=>k.current?.blur(),[]),U=X(()=>{let s=k.current;return s?Qt(s):""},[]),$=Si()?"plaintext-only":"true";return{inputRef:k,editorProps:{ref:k,contentEditable:$,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":g,"aria-expanded":C,"aria-activedescendant":b,spellCheck:!0,enterKeyHint:"send",onInput:pe,onKeyDown:Pe,onCompositionStart:Ce,onCompositionEnd:he,onPaste:u,onFocus:ie,onBlur:ue},getPlainText:U,focus:oe,blur:ge}}import{jsx as Me,jsxs as ft}from"react/jsx-runtime";function Li(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var zi=Ii(function({onSubmit:o,onResult:t,onError:a,optionOverrides:n,maskCompletedText:r,className:i,apiConfig:c,additionalContext:l,language:v,productId:P,visitorId:C,columns:g,pillPlacement:b="dropdown",mode:S="auto",optionsPosition:L="below",animations:z=!0,dropdownTrigger:K,closeDropdownOnBlur:O,showNonTappableOptions:I,showOptionIcons:F=!0,showChipIcons:M=!0,showChipImages:k=!0,showOptionImages:N=!0,showOptionCounts:G=!0,showSkipButton:E,showProducts:V,productsLayout:ce,productImageFallback:W,autoFocus:pe=!0,onFocus:Ce,onBlur:he,value:u,completedParams:Pe,onChange:ie,onParamsChange:ue,products:oe,mapProducts:ge,onProductSelect:U,submitButton:$,resetOnSubmit:s=!0},m){let f=We(null),w=We(null),y=We(()=>{}),T=We(null),p=We(null);$t(()=>{let R=f.current;if(R)return T.current?T.current.setMode(S):T.current=new Ri(R,S),()=>{T.current?.destroy(),T.current=null}},[S]);let B=mt(R=>{let te=p.current?.current;te&&(te.focus(),Di(te,R))},[]),{completedParams:j,skippedParams:Q,identifiedParams:me,isReady:ne,customFields:J,suggestionPills:fe,setActivePill:Se,skipActivePill:x,segments:be,newParamId:we,clearNewParamId:re,placeholderText:h,isFocused:Ie,isDropdownOpen:Ne,isActivePillSelected:ve,isLoading:ee,activeIndex:_e,listboxId:Te,handleTextChange:et,handleKeyDown:xe,setFocused:Ee,editingParam:Fe,editingIdentified:qe,editingAnchor:tt,caretOffset:Be,startEditingParam:Ue,handleCaretAfterInput:d,handleCaretMove:_,replaceEditingRange:A,dropdownProps:at,reset:je,refreshProducts:bt,recordSubmit:wt}=ut({onSubmit:R=>y.current(R),onResult:t,onError:a,optionOverrides:n,maskCompletedText:r,apiConfig:c,additionalContext:l,language:v,productId:P,visitorId:C,columns:g,dropdownTrigger:K,optionsPosition:L,closeDropdownOnBlur:O,showNonTappableOptions:I,showOptionIcons:F,showOptionImages:N,showOptionCounts:G,showSkipButton:E,showProducts:V,onFocus:Ce,onBlur:he,value:u,completedParams:Pe,onChange:ie,onParamsChange:ue,products:oe,mapProducts:ge,onProductSelect:U,source:"full-sdk",setCursor:B});$t(()=>{if(!we)return;let R=window.setTimeout(()=>re(),650);return()=>window.clearTimeout(R)},[we,re]);let Xt=_e>=0?`${Te}-option-${_e}`:void 0,{inputRef:it,editorProps:Jt,focus:Qe,blur:vt,getPlainText:xt}=Vt({segments:be,newParamId:we,editingParam:Fe,editingIdentified:qe,editingAnchor:tt,caretOffset:Be,placeholderText:h,isFocused:Ie,showChipIcons:M,showChipImages:k,isDropdownOpen:Ne,listboxId:Te,activeDescendantId:Xt,autoFocus:pe,handleTextChange:et,handleKeyDown:xe,handleCaretAfterInput:d,handleCaretMove:_,startEditingParam:Ue,replaceEditingRange:A,setFocused:Ee});p.current=it,Ei(()=>{let R=w.current,te=it.current;if(!R||!te)return;let He=()=>{let kt=R.firstElementChild;if(!kt)return;let ia=kt.getBoundingClientRect(),oa=te.getBoundingClientRect();ia.top>=oa.bottom-2?R.setAttribute("data-aia-pill-wrapped",""):R.removeAttribute("data-aia-pill-wrapped")};He();let yt=new ResizeObserver(He);return yt.observe(te),()=>yt.disconnect()},[be,fe.length,ee,it]),Ti(m,()=>({focus:Qe,blur:vt,reset:je,refreshProducts:bt,setMode:R=>T.current?.setMode(R),skipActivePill:x}),[Qe,vt,je,bt,x]);let Ye=!!be.length||j.length>0,ot=mt(R=>{if(!Ye)return;let te=xt(),He=Ai(te,j,Q,{identifiedParams:me,isReady:ne,customFields:J});R&&wt(He),o(He),s&&je()},[wt,s,Ye,j,Q,me,ne,J,o,je,xt]);y.current=()=>ot(!1);let ea=mt(R=>{R.target?.closest("[data-aia-pill]")||Qe()},[Qe]),ta=b==="inline",aa=b==="dropdown";return ft("div",{ref:f,className:`magicx-aia ${Ae.container} ${i??""}`,"data-pill-placement":b,"data-options-position":L,"data-animations":z?"on":"off","data-mode":Li(S),children:[Me(pt,{...at,showPills:aa,productsLayout:ce,productImageFallback:W}),ft("div",{className:Ae.inputWrapper,"data-aia-input-wrapper":"",onClick:ea,children:[ft("div",{className:Ae.editorArea,"data-aia-editor":"",children:[Me("div",{...Jt,className:Ae.input,"data-aia-input":""}),ta&&(ee||fe.length>0)&&Me("span",{ref:w,className:Ae.pillListContainer,"data-aia-pill-list-container":"",children:Me(Ve,{pills:fe,activePillIndex:0,activeSelected:ve,onSelectPill:Se,loading:ee})})]}),$===null?null:$===void 0?Me(Gt,{disabled:!Ye,onClick:()=>ot(!0),label:Oi(v).submit}):Me("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:Ae.submitSlot,onClick:R=>{Ye&&(R.stopPropagation(),ot(!0))},children:$})]})]})});export{zi as AIAutocomplete,pt as AIAutocompleteDropdown,Rn as DATE_RANGE_META_END,Dn as DATE_RANGE_META_START,On as DEFAULT_OPTION_COUNT_UNIT,qn as PRODUCT_PATH_PREFIX,er as WEEKDAY_LABELS,Tn as buildSubmitResult,En as cellDay,An as cellIso,Ln as dateCellMarks,zn as formatDate,Mn as formatDateRange,Nn as formatOptionCount,Fn as isoDate,Bn as monthLabel,Hn as optionCountLabel,Kn as optionHasImage,Gn as optionImageSources,Wn as optionImageSrc,_n as optionLabel,Un as parseDate,jn as parseLooseDate,Qn as parseLooseDateRange,Yn as productFromMatchedItem,Zn as productImageSources,Vn as productsFromCustomFields,$n as sanitizeOptionIconSvg,Xn as selectedRangeFor,ut as useAIAutocomplete,Jn as visibleDateRange,tr as withSkippedParams};
|
|
2373
|
+
`,document.head.appendChild(e)}var Kt={submitButton:"aia-submitButton-otz7H"};import{jsx as ht}from"react/jsx-runtime";function Gt({disabled:e,onClick:o,label:t=gi().submit}){return ht("button",{type:"button","data-aia-submit":"",className:Kt.submitButton,disabled:e,onClick:a=>{a.stopPropagation(),o()},"aria-label":t,children:ht("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":t,children:ht("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}import{AIAutocomplete as mi,dateSelectionFor as fi,identifiedParamLabel as bi,withoutTraditionalAutocomplete as wi}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as jt,useEffect as Le,useRef as H,useState as vi}from"react";import{useRef as Wt}from"react";function _t(e){let o=Wt(e);o.current=e;let t=Object.keys(e??{}).sort().join("\0"),a=Wt({key:"",overrides:void 0});if(a.current.key!==t){let n={};for(let r of Object.keys(e??{})){let i=(c,l,v)=>{let P=o.current?.[r];return P?P(c,l,v):[]};n[r]=i}a.current={key:t,overrides:e?n:void 0}}return{overrides:a.current.overrides,key:t}}import{useRef as qt}from"react";function Ut(e){let o=qt(e);o.current=e;let t=qt(null);t.current===null&&(t.current={fetch:(n,r)=>{let i=o.current;return i?i.fetch(n,r):Promise.reject(new Error("products config removed"))},transform:n=>o.current?.transform(n)??[],get limit(){return o.current?.limit}});let a=e!==void 0;return{config:a?t.current:void 0,enabled:a}}var xi={text:"",completedParams:[],identifiedParams:[],skippedParams:[],pendingSpan:null,suggestions:[],products:[],traditionalAutocomplete:!1,customFields:null,optionSearch:null,activeDropdownIndex:-1,newParamId:null,isLoading:!0,isReady:!1,error:null,segments:[],actionableSuggestions:[],filteredOptions:[],dropdownLoading:!0,dropdownOptions:[],skeletonOptions:null,skeletonSuggestion:null,dropdownSuggestion:null,skeletonRequested:!1,skeletonExiting:!1,activeFormatType:"options",dateView:null,dateRangeStart:null,placeholderText:"",optionQuery:"",isSearchingOptions:!1,isDropdownOpen:!1,isActivePillSelected:!1,filterBase:0,filterInProgress:!1,pillTapped:!1,skipNextFetch:!1,lastRawQuery:"",isFocused:!1,dropdownHeld:!1,editingParam:null,editingIdentified:null,editingAnchor:null,editingTail:null,caretOffset:null,inSelectionAnimation:!1,dateViewMonth:null,pendingRangeStart:null};function ut({onSubmit:e,onResult:o,onError:t,optionOverrides:a,maskCompletedText:n,apiConfig:r,additionalContext:i,language:c,productId:l,visitorId:v,columns:P=2,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showOptionIcons:L,showOptionImages:z,showOptionCounts:K,showSkipButton:O,showProducts:I,productImageFallback:F="image",onFocus:M,onBlur:y,value:N,completedParams:G,onChange:E,onParamsChange:V,products:ce,mapProducts:W,onProductSelect:pe,source:Ce,setCursor:he}){let u=H(null),[Pe,ie]=vi(null),ue=H(e);ue.current=e;let oe=H(o);oe.current=o;let ge=H(t);ge.current=t;let U=H(E);U.current=E;let $=H(V);$.current=V;let s=H(M);s.current=M;let m=H(y);m.current=y;let f=H(he);f.current=he;let w=H(pe);w.current=pe;let k=H(v);k.current=v;let T=H(()=>{let d=k.current;return typeof d=="function"?d():d}).current,p=Ut(ce),B=H(W);B.current=W;let j=H((d,_)=>{let A=B.current;return A?A(d,_):d}).current,Q=W?j:void 0,me=_t(a);Le(()=>{if(typeof document>"u")return;let d=new mi(document.createElement("div"),{renderMode:"headless",apiConfig:r,additionalContext:i,language:c,productId:l,visitorId:T,optionOverrides:me.overrides,maskCompletedText:n,columns:P,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showProducts:I,source:Ce,value:N,completedParams:G,onSubmit:(...A)=>ue.current?.(...A),onResult:(...A)=>oe.current?.(...A),onError:(...A)=>ge.current?.(...A),onChange:(...A)=>U.current?.(...A),onParamsChange:(...A)=>$.current?.(...A),onFocus:()=>s.current?.(),onBlur:()=>m.current?.(),onProductSelect:A=>w.current?.(A),setCursor:A=>f.current?.(A),products:p.config,mapProducts:Q});u.current=d,ie(d.getState());let _=d.subscribe(A=>ie(A));return()=>{_(),d.destroy(),u.current===d&&(u.current=null)}},[]),Le(()=>{N!==void 0&&u.current?.setValue(N)},[N]),Le(()=>{G!==void 0&&u.current?.setCompletedParams(G)},[G]);let ne=JSON.stringify(r??null),J;try{J=JSON.stringify(i??null)}catch{J="[unstringifiable]"}Le(()=>{u.current?.update({apiConfig:r,additionalContext:i,language:c,productId:l,optionOverrides:me.overrides,dropdownTrigger:C,optionsPosition:g,closeDropdownOnBlur:b,showNonTappableOptions:S,showProducts:I})},[ne,J,c,l,me.key,C,g,b,S,I]);let fe=H(!1);Le(()=>{if(!fe.current){fe.current=!0;return}u.current?.update({products:p.config})},[p.enabled]),Le(()=>{u.current?.update({mapProducts:Q})},[Q]);let Se=H(null);Se.current===null&&(Se.current={handleTextChange:d=>u.current?.handleTextChange(d),handleKeyDown:d=>{let _="nativeEvent"in d?d.nativeEvent:d;u.current?.handleKeyDown(_)},setFocused:d=>u.current?.setFocused(d),startEditingParam:d=>u.current?.startEditingParam(d),exitEditMode:()=>u.current?.exitEditMode(),handleCaretAfterInput:d=>u.current?.handleCaretAfterInput(d),handleCaretMove:d=>u.current?.handleCaretMove(d),replaceEditingRange:d=>u.current?.replaceEditingRange(d)??!1,setActivePill:d=>u.current?.setActivePill(d),skipActivePill:()=>u.current?.skipActivePill(),removeLastParam:()=>u.current?.removeLastParam(),clearNewParamId:()=>u.current?.clearNewParamId(),reset:()=>u.current?.reset(),refreshProducts:()=>u.current?.refreshProducts(),recordSubmit:d=>u.current?.recordSubmit(d),selectOption:d=>u.current?.selectOption(d),selectProduct:d=>u.current?.selectProduct(d),setActiveDropdownIndex:d=>u.current?.setActiveDropdownIndex(d),clearHighlight:d=>u.current?.clearHighlight(d),showPreviousMonth:()=>u.current?.showPreviousMonth(),showNextMonth:()=>u.current?.showNextMonth(),handleFocus:()=>u.current?.setFocused(!0),handleBlur:()=>u.current?.setFocused(!1)});let x=Se.current,be=jt(d=>{let _=d.target.value,at=_.length>0&&!d.nativeEvent?.isComposing&&_[0]!==_[0].toUpperCase()?_[0].toUpperCase()+_.slice(1):_;u.current?.handleTextChange(at)},[]),we=jt(d=>{u.current?.handleKeyDown(d.nativeEvent)},[]),re=u.current,h=Pe??xi,Ie=N!==void 0?N:h.text,Ne=G!==void 0?G:h.completedParams,ve=h.actionableSuggestions,ee=ve[0],_e=wi(ve),Te=re?.listboxId??"",et=h.activeDropdownIndex>=0&&re?`${Te}-option-${h.activeDropdownIndex}`:void 0,xe=h.editingParam,Ee=h.editingIdentified,Fe=xe?{parameter:xe.suggestionParameter,text:xe.suggestionPlaceholder,required:!0,options:xe.options}:Ee?{parameter:Ee.parameter,text:bi(Ee.parameter),required:!0,options:[]}:null,qe=h.dropdownSuggestion??Fe??ee,tt=Fe?[Fe]:ve,Be=fi(h),Ue=!re||h.dropdownLoading;return{completedParams:Ne,skippedParams:h.skippedParams,identifiedParams:h.identifiedParams,suggestionPills:_e,setActivePill:x.setActivePill,skipActivePill:x.skipActivePill,removeLastParam:x.removeLastParam,segments:h.segments,newParamId:h.newParamId,clearNewParamId:x.clearNewParamId,suggestions:h.suggestions,activeIndex:h.activeDropdownIndex,isReady:h.isReady,isLoading:Ue,isFocused:h.isFocused,isDropdownOpen:h.isDropdownOpen,isActivePillSelected:h.isActivePillSelected,placeholderText:h.placeholderText,listboxId:Te,error:h.error,products:h.products,customFields:h.customFields,selectProduct:x.selectProduct,handleTextChange:x.handleTextChange,handleKeyDown:x.handleKeyDown,setFocused:x.setFocused,editingParam:xe,editingIdentified:Ee,editingAnchor:h.editingAnchor,caretOffset:h.caretOffset,startEditingParam:x.startEditingParam,exitEditMode:x.exitEditMode,handleCaretAfterInput:x.handleCaretAfterInput,handleCaretMove:x.handleCaretMove,replaceEditingRange:x.replaceEditingRange,inputProps:{value:Ie,placeholder:h.placeholderText||void 0,onChange:be,onKeyDown:we,onFocus:x.handleFocus,onBlur:x.handleBlur,role:"combobox","aria-expanded":h.isDropdownOpen,"aria-activedescendant":et,"aria-autocomplete":"list","aria-controls":Te},reset:x.reset,refreshProducts:x.refreshProducts,recordSubmit:x.recordSubmit,dropdownProps:{suggestions:qe?[{...qe,options:h.dropdownOptions}]:[],activeIndex:h.activeDropdownIndex,onSelect:x.selectOption,onHighlight:x.setActiveDropdownIndex,onUnhighlight:x.clearHighlight,isOpen:h.isDropdownOpen,id:Te,pills:tt,activeSelected:h.isActivePillSelected,onPillClick:x.setActivePill,onSkip:x.skipActivePill,showSkipButton:(O??!0)&&!xe&&!Ee,showOptionIcons:L??!0,showOptionImages:z??!0,showOptionCounts:K??!0,skipDisabled:h.inSelectionAnimation,isLoading:Ue,skeletonExiting:h.skeletonExiting,isInputEmpty:Ie.trim().length===0,language:c,products:h.products,productImageFallback:F,onProductSelect:x.selectProduct,onProductFocusChange:x.setFocused,formatType:h.activeFormatType,dateView:h.dateView,selectedDateIso:Be.selectedIso,selectedDateRange:Be.selectedRange,dateRangeStart:Be.rangeStart,onPreviousMonth:x.showPreviousMonth,onNextMonth:x.showNextMonth,optionsPosition:g??"below"}}}import{chipIdFromTap as yi,extractPlainText as Qt,getCursorOffset as Yt,keepCaretOnChip as ki,plainTextLength as Ci,renderEditableContent as Pi,setCursorOffset as Zt}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as X,useEffect as Xe,useLayoutEffect as gt,useRef as ze}from"react";var Je;function Si(){if(Je!==void 0)return Je;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),Je=e.contentEditable==="plaintext-only",Je}function Vt(e){let{segments:o,showChipIcons:t=!0,showChipImages:a=!0,newParamId:n,editingParam:r,editingIdentified:i,editingAnchor:c,caretOffset:l,placeholderText:v,isFocused:P,isDropdownOpen:C,listboxId:g,activeDescendantId:b,autoFocus:S,handleTextChange:L,handleKeyDown:z,handleCaretAfterInput:K,handleCaretMove:O,startEditingParam:I,replaceEditingRange:F,setFocused:M}=e,y=ze(null),N=ze(!1),G=ze(""),E=ze(""),V=ze(null),ce=ze(0);V.current=l,Xe(()=>{if(!S)return;let s=y.current;if(!s)return;document.activeElement===s?M(!0):s.focus();let m=s.ownerDocument??document,f=m.getSelection(),w=f&&f.rangeCount>0&&s.contains(f.anchorNode);if(f&&!w){let k=m.createRange();k.selectNodeContents(s),k.collapse(!0),f.removeAllRanges(),f.addRange(k)}},[S,M]),Xe(()=>{let s=y.current;if(!s)return;let m=s.ownerDocument??document,f=()=>{let w=m.getSelection();if(!w||w.rangeCount===0||!w.anchorNode||!s.contains(w.anchorNode))return;let k=w.anchorNode,T=k.nodeType===Node.ELEMENT_NODE?k:k.parentElement,B=(w.isCollapsed?T?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,j=r?.id??i?.id??null;if(B&&B!==j){I(B);return}performance.now()-ce.current<50||O(Yt(s))};return m.addEventListener("selectionchange",f),()=>m.removeEventListener("selectionchange",f)},[r,i,I,O]),Xe(()=>{let s=y.current;if(!s)return;let m=f=>{let w=yi(s,f.target);w&&(I(w),ki(s,w))};return s.addEventListener("click",m),()=>s.removeEventListener("click",m)},[I]),gt(()=>{let s=y.current;s&&Pi({input:s,segments:o,newParamId:n,editingParamId:r?.id??null,placeholderText:v??"",isFocused:P,showChipIcons:t,showChipImages:a})},[o,n,r,v,P,t,a]),gt(()=>{let s=G.current,m=n??"";if(G.current=m,!m||m===s)return;let f=y.current;if(!f)return;f.focus();let w=V.current??Ci(f);Zt(f,w)},[n]),gt(()=>{let s=E.current,m=r?.id??"";if(E.current=m,!m||m===s||c==null)return;let f=y.current;f&&Zt(f,c)},[r,c]);let W=X(()=>{if(N.current)return;let s=y.current;if(!s)return;let m=Qt(s),w=m.length>0&&m[0]!==m[0].toUpperCase()?m[0].toUpperCase()+m.slice(1):m;L(w)},[L]),pe=X(()=>{ce.current=performance.now(),W();let s=y.current;s&&K(Yt(s))},[W,K]);Xe(()=>{let s=y.current;if(!s)return;let m=f=>{let w=f,k=w.inputType;if(k==="insertParagraph"||k==="insertLineBreak"||k==="insertFromDrop"){f.preventDefault();return}if(k.startsWith("insert")||k.startsWith("delete")){let T=k.startsWith("delete")?"":w.data??"";F(T)&&f.preventDefault()}};return s.addEventListener("beforeinput",m),()=>s.removeEventListener("beforeinput",m)},[F]);let Ce=X(()=>{N.current=!0,y.current?.setAttribute("data-aia-composing","true")},[]),he=X(()=>{N.current=!1,y.current?.removeAttribute("data-aia-composing"),W()},[W]),u=X(s=>{s.preventDefault();let m=y.current;if(!m)return;let f=(s.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!f)return;let w=m.ownerDocument??document,k=w.getSelection();if(!k||k.rangeCount===0)return;let T=k.getRangeAt(0);if(!m.contains(T.startContainer))return;T.deleteContents();let p=w.createTextNode(f);T.insertNode(p),T.setStartAfter(p),T.collapse(!0),k.removeAllRanges(),k.addRange(T),W()},[W]),Pe=X(s=>z(s),[z]),ie=X(()=>M(!0),[M]),ue=X(()=>M(!1),[M]),oe=X(()=>y.current?.focus(),[]),ge=X(()=>y.current?.blur(),[]),U=X(()=>{let s=y.current;return s?Qt(s):""},[]),$=Si()?"plaintext-only":"true";return{inputRef:y,editorProps:{ref:y,contentEditable:$,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":g,"aria-expanded":C,"aria-activedescendant":b,spellCheck:!0,enterKeyHint:"send",onInput:pe,onKeyDown:Pe,onCompositionStart:Ce,onCompositionEnd:he,onPaste:u,onFocus:ie,onBlur:ue},getPlainText:U,focus:oe,blur:ge}}import{jsx as Me,jsxs as ft}from"react/jsx-runtime";function Li(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var zi=Ii(function({onSubmit:o,onResult:t,onError:a,optionOverrides:n,maskCompletedText:r,className:i,apiConfig:c,additionalContext:l,language:v,productId:P,visitorId:C,columns:g,pillPlacement:b="dropdown",mode:S="auto",optionsPosition:L="below",animations:z=!0,dropdownTrigger:K,closeDropdownOnBlur:O,showNonTappableOptions:I,showOptionIcons:F=!0,showChipIcons:M=!0,showChipImages:y=!0,showOptionImages:N=!0,showOptionCounts:G=!0,showSkipButton:E,showProducts:V,productsLayout:ce,productImageFallback:W,autoFocus:pe=!0,onFocus:Ce,onBlur:he,value:u,completedParams:Pe,onChange:ie,onParamsChange:ue,products:oe,mapProducts:ge,onProductSelect:U,submitButton:$,resetOnSubmit:s=!0},m){let f=We(null),w=We(null),k=We(()=>{}),T=We(null),p=We(null);$t(()=>{let R=f.current;if(R)return T.current?T.current.setMode(S):T.current=new Ri(R,S),()=>{T.current?.destroy(),T.current=null}},[S]);let B=mt(R=>{let te=p.current?.current;te&&(te.focus(),Di(te,R))},[]),{completedParams:j,skippedParams:Q,identifiedParams:me,isReady:ne,customFields:J,suggestionPills:fe,setActivePill:Se,skipActivePill:x,segments:be,newParamId:we,clearNewParamId:re,placeholderText:h,isFocused:Ie,isDropdownOpen:Ne,isActivePillSelected:ve,isLoading:ee,activeIndex:_e,listboxId:Te,handleTextChange:et,handleKeyDown:xe,setFocused:Ee,editingParam:Fe,editingIdentified:qe,editingAnchor:tt,caretOffset:Be,startEditingParam:Ue,handleCaretAfterInput:d,handleCaretMove:_,replaceEditingRange:A,dropdownProps:at,reset:je,refreshProducts:bt,recordSubmit:wt}=ut({onSubmit:R=>k.current(R),onResult:t,onError:a,optionOverrides:n,maskCompletedText:r,apiConfig:c,additionalContext:l,language:v,productId:P,visitorId:C,columns:g,dropdownTrigger:K,optionsPosition:L,closeDropdownOnBlur:O,showNonTappableOptions:I,showOptionIcons:F,showOptionImages:N,showOptionCounts:G,showSkipButton:E,showProducts:V,onFocus:Ce,onBlur:he,value:u,completedParams:Pe,onChange:ie,onParamsChange:ue,products:oe,mapProducts:ge,onProductSelect:U,source:"full-sdk",setCursor:B});$t(()=>{if(!we)return;let R=window.setTimeout(()=>re(),650);return()=>window.clearTimeout(R)},[we,re]);let Xt=_e>=0?`${Te}-option-${_e}`:void 0,{inputRef:it,editorProps:Jt,focus:Qe,blur:vt,getPlainText:xt}=Vt({segments:be,newParamId:we,editingParam:Fe,editingIdentified:qe,editingAnchor:tt,caretOffset:Be,placeholderText:h,isFocused:Ie,showChipIcons:M,showChipImages:y,isDropdownOpen:Ne,listboxId:Te,activeDescendantId:Xt,autoFocus:pe,handleTextChange:et,handleKeyDown:xe,handleCaretAfterInput:d,handleCaretMove:_,startEditingParam:Ue,replaceEditingRange:A,setFocused:Ee});p.current=it,Ei(()=>{let R=w.current,te=it.current;if(!R||!te)return;let He=()=>{let kt=R.firstElementChild;if(!kt)return;let ia=kt.getBoundingClientRect(),oa=te.getBoundingClientRect();ia.top>=oa.bottom-2?R.setAttribute("data-aia-pill-wrapped",""):R.removeAttribute("data-aia-pill-wrapped")};He();let yt=new ResizeObserver(He);return yt.observe(te),()=>yt.disconnect()},[be,fe.length,ee,it]),Ti(m,()=>({focus:Qe,blur:vt,reset:je,refreshProducts:bt,setMode:R=>T.current?.setMode(R),skipActivePill:x}),[Qe,vt,je,bt,x]);let Ye=!!be.length||j.length>0,ot=mt(R=>{if(!Ye)return;let te=xt(),He=Ai(te,j,Q,{identifiedParams:me,isReady:ne,customFields:J});R&&wt(He),o(He),s&&je()},[wt,s,Ye,j,Q,me,ne,J,o,je,xt]);k.current=()=>ot(!1);let ea=mt(R=>{R.target?.closest("[data-aia-pill]")||Qe()},[Qe]),ta=b==="inline",aa=b==="dropdown";return ft("div",{ref:f,className:`magicx-aia ${Ae.container} ${i??""}`,"data-pill-placement":b,"data-options-position":L,"data-animations":z?"on":"off","data-mode":Li(S),children:[Me(pt,{...at,showPills:aa,productsLayout:ce,productImageFallback:W}),ft("div",{className:Ae.inputWrapper,"data-aia-input-wrapper":"",onClick:ea,children:[ft("div",{className:Ae.editorArea,"data-aia-editor":"",children:[Me("div",{...Jt,className:Ae.input,"data-aia-input":""}),ta&&(ee||fe.length>0)&&Me("span",{ref:w,className:Ae.pillListContainer,"data-aia-pill-list-container":"",children:Me(Ve,{pills:fe,activePillIndex:0,activeSelected:ve,onSelectPill:Se,loading:ee})})]}),$===null?null:$===void 0?Me(Gt,{disabled:!Ye,onClick:()=>ot(!0),label:Oi(v).submit}):Me("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:Ae.submitSlot,onClick:R=>{Ye&&(R.stopPropagation(),ot(!0))},children:$})]})]})});export{zi as AIAutocomplete,pt as AIAutocompleteDropdown,Rn as DATE_RANGE_META_END,Dn as DATE_RANGE_META_START,On as DEFAULT_OPTION_COUNT_UNIT,qn as PRODUCT_PATH_PREFIX,er as WEEKDAY_LABELS,Tn as buildSubmitResult,En as cellDay,An as cellIso,Ln as dateCellMarks,zn as formatDate,Mn as formatDateRange,Nn as formatOptionCount,Fn as isoDate,Bn as monthLabel,Hn as optionCountLabel,Kn as optionHasImage,Gn as optionImageSources,Wn as optionImageSrc,_n as optionLabel,Un as parseDate,jn as parseLooseDate,Qn as parseLooseDateRange,Yn as productFromMatchedItem,Zn as productImageSources,Vn as productsFromCustomFields,$n as sanitizeOptionIconSvg,Xn as selectedRangeFor,ut as useAIAutocomplete,Jn as visibleDateRange,tr as withSkippedParams};
|
|
2358
2374
|
//# sourceMappingURL=index.mjs.map
|