@magicx-eng/ai-autocomplete-react 0.28.0 → 0.29.1
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/README.md +1 -1
- package/dist/index.d.mts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +46 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -37
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END as sn,DATE_RANGE_META_START as ln,DEFAULT_OPTION_COUNT_UNIT as dn,dateCellMarks as cn,formatDate as pn,formatDateRange as hn,formatOptionCount as un,isoDate as mn,monthLabel as gn,optionCountLabel as fn,optionHasImage as bn,optionImageSrc as vn,optionLabel as wn,PRODUCT_PATH_PREFIX as xn,parseDate as yn,parseLooseDate as kn,parseLooseDateRange as Cn,productFromMatchedItem as Pn,productsFromCustomFields as Sn,sanitizeOptionIconSvg as In,selectedRangeFor as En,visibleDateRange as Tn,WEEKDAY_LABELS as An,withSkippedParams as Rn}from"@magicx-eng/ai-autocomplete-vanilla";import{forwardRef as ni,useCallback as it,useEffect as Bt,useImperativeHandle as ri,useLayoutEffect as si,useRef as
|
|
1
|
+
import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END as sn,DATE_RANGE_META_START as ln,DEFAULT_OPTION_COUNT_UNIT as dn,dateCellMarks as cn,formatDate as pn,formatDateRange as hn,formatOptionCount as un,isoDate as mn,monthLabel as gn,optionCountLabel as fn,optionHasImage as bn,optionImageSrc as vn,optionLabel as wn,PRODUCT_PATH_PREFIX as xn,parseDate as yn,parseLooseDate as kn,parseLooseDateRange as Cn,productFromMatchedItem as Pn,productsFromCustomFields as Sn,sanitizeOptionIconSvg as In,selectedRangeFor as En,visibleDateRange as Tn,WEEKDAY_LABELS as An,withSkippedParams as Rn}from"@magicx-eng/ai-autocomplete-vanilla";import{forwardRef as ni,useCallback as it,useEffect as Bt,useImperativeHandle as ri,useLayoutEffect as si,useRef as Oe}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-67791514")){let e=document.createElement("style");e.id="ac-style-67791514",e.textContent=`.aia-container-KKjFU {
|
|
2
2
|
position: relative;
|
|
3
3
|
/* Inherits the host page's font by default. Consumers can pin a specific
|
|
4
4
|
font on the library via \`--aia-font-family: 'Custom Font'\` without
|
|
@@ -262,7 +262,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
262
262
|
opacity: 0;
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
-
`,document.head.appendChild(e)}var
|
|
265
|
+
`,document.head.appendChild(e)}var ke={container:"aia-container-KKjFU",inputWrapper:"aia-inputWrapper-FLq1b",editorArea:"aia-editorArea-7rBWq",input:"aia-input-IW-P-",pillListContainer:"aia-pillListContainer-h92IA",submitSlot:"aia-submitSlot-GhuCM",aiaPillReveal:"aia-aiaPillReveal-wf05b"};import{attachScrollArrow as _a,isCalendarFormat as qa,SCROLL_ARROW_LABEL as Ua}from"@magicx-eng/ai-autocomplete-vanilla";import{useEffect as Ve,useRef as Ge,useState as Qa}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-0ae03977")){let e=document.createElement("style");e.id="ac-style-0ae03977",e.textContent=`/*
|
|
266
266
|
* Built-in appearance defaults \u2014 zero specificity via :where().
|
|
267
267
|
* Consumer CSS always wins without !important.
|
|
268
268
|
*
|
|
@@ -1041,7 +1041,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1041
1041
|
opacity: 0.25;
|
|
1042
1042
|
}
|
|
1043
1043
|
}
|
|
1044
|
-
`,document.head.appendChild(e)}var
|
|
1044
|
+
`,document.head.appendChild(e)}var re={dropdown:"aia-dropdown-yz2KC",visible:"aia-visible-QCoXj",scrollArrow:"aia-scrollArrow-uUzV0","magicx-aia-scroll-arrow-bob":"aia-magicx-aia-scroll-arrow-bob-z-HXC",pillBar:"aia-pillBar-pwTXe",pillScroll:"aia-pillScroll-Tpzus",skip:"aia-skip-7-olS",skeletonBars:"aia-skeletonBars-HVr9C",skeletonBarsIn:"aia-skeletonBarsIn-BdPrL",skeletonBarsOut:"aia-skeletonBarsOut-TqKeD",skeletonBar:"aia-skeletonBar-O3xIx",aiaSkeletonPulse:"aia-aiaSkeletonPulse-G8W7q"};import{cellDay as Vt,cellIso as Se,dateCellMarks as Xt,isoDate as Jt,monthLabel as ea,visibleDateRange as ta,WEEKDAY_LABELS as aa}from"@magicx-eng/ai-autocomplete-vanilla";import{useState as ia}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-f687bd03")){let e=document.createElement("style");e.id="ac-style-f687bd03",e.textContent=`/* --- Datepicker (replaces the options grid for date suggestions) ---
|
|
1045
1045
|
|
|
1046
1046
|
One of three hand-maintained copies (vanilla styles.css, this file, Angular's
|
|
1047
1047
|
date-grid.component.css). Only the class-naming layer differs \u2014 the
|
|
@@ -1204,7 +1204,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1204
1204
|
opacity: 0.8;
|
|
1205
1205
|
background: rgba(var(--aia-streak-rgb, 255, 255, 255), 0.06);
|
|
1206
1206
|
}
|
|
1207
|
-
`,document.head.appendChild(e)}var
|
|
1207
|
+
`,document.head.appendChild(e)}var O={datepicker:"aia-datepicker-6RrTs",header:"aia-header-z4LRk",month:"aia-month-urB2T",nav:"aia-nav-ap4AN",weekdays:"aia-weekdays-3EA3q",grid:"aia-grid-mQCgw",weekday:"aia-weekday-3lF4B",cell:"aia-cell-59k0y",number:"aia-number-aoT01",day:"aia-day-cB3u9",blank:"aia-blank-ivgRC",past:"aia-past-CEZsj",highlighted:"aia-highlighted-YIdtK",today:"aia-today-iI3ME",inRange:"aia-inRange-r9S2q",selected:"aia-selected-28KDn",pressed:"aia-pressed-bEyyN"};import{jsx as V,jsxs as ct}from"react/jsx-runtime";var oa=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function pt({options:e,activeIndex:o,listboxId:t,view:n,selection:r,onSelect:i,onHighlight:a,onUnhighlight:l,onPreviousMonth:w,onNextMonth:b}){let v=Jt(new Date),C=ta({pendingStart:r.rangeStart,highlightedIso:Se(e[o]),selected:r.selectedRange});return ct("div",{className:O.datepicker,"data-aia-datepicker":"",children:[ct("div",{className:O.header,children:[V("button",{type:"button",tabIndex:-1,className:O.nav,"data-aia-date-prev":"","aria-label":"Previous month",onMouseDown:g=>g.preventDefault(),onClick:w,children:"\u2039"}),V("span",{className:O.month,"data-aia-date-month":"","aria-live":"polite",children:ea(n)}),V("button",{type:"button",tabIndex:-1,className:O.nav,"data-aia-date-next":"","aria-label":"Next month",onMouseDown:g=>g.preventDefault(),onClick:b,children:"\u203A"})]}),V("div",{className:O.weekdays,"aria-hidden":"true",children:aa.map((g,x)=>V("span",{className:O.weekday,children:g},oa[x]))}),V("div",{className:O.grid,"data-aia-date-grid":"",children:e.map((g,x)=>V(na,{option:g,id:`${t}-option-${x}`,index:x,isHighlighted:x===o&&g.is_tappable,isToday:Se(g)===v,isPast:Se(g)!=null&&Se(g)<v,marks:Xt(Se(g),{selectedIso:r.selectedIso,range:C}),onSelect:i,onHighlight:a,onUnhighlight:l},Se(g)??`pad-${x}`))})]})}function na({option:e,id:o,index:t,isHighlighted:n,isToday:r,isPast:i,marks:a,onSelect:l,onHighlight:w,onUnhighlight:b}){let[v,C]=ia(!1),g=Vt(e);if(g==null)return V("div",{id:o,role:"option","data-aia-option":"","data-aia-date-cell":"","aria-hidden":"true","aria-selected":!1,tabIndex:-1,className:`${O.cell} ${O.blank}`});let x=()=>{C(!0),l(e),setTimeout(()=>C(!1),170)},T=[O.cell,O.day,i?O.past:"",n?O.highlighted:"",r?O.today:"",a.inRange?O.inRange:"",a.selected?O.selected:"",v?O.pressed:""].filter(Boolean).join(" ");return V("div",{id:o,role:"option","data-aia-option":"","data-aia-date-cell":"","aria-selected":n,"aria-label":e.text,tabIndex:0,className:T,onClick:x,onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),x())},onMouseEnter:()=>w(t),onMouseLeave:b?()=>b(t):void 0,children:V("span",{className:O.number,children:g})})}import{ATTRIBUTION_URL as ra,buildAttributionUrl as sa,getFooterHint as la}from"@magicx-eng/ai-autocomplete-vanilla";import{useEffect as da,useState as ca}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-5259a217")){let e=document.createElement("style");e.id="ac-style-5259a217",e.textContent=`.aia-cluster {
|
|
1208
1208
|
display: flex;
|
|
1209
1209
|
flex-wrap: wrap;
|
|
1210
1210
|
gap: var(--aia-cluster-gap, 0.5rem);
|
|
@@ -1244,7 +1244,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1244
1244
|
.aia-cluster[data-justify="around"] {
|
|
1245
1245
|
justify-content: space-around;
|
|
1246
1246
|
}
|
|
1247
|
-
`,document.head.appendChild(e)}import{jsx as ht}from"react/jsx-runtime";function Ae({gap:e,align:o="center",justify:
|
|
1247
|
+
`,document.head.appendChild(e)}import{jsx as ht}from"react/jsx-runtime";function Ae({gap:e,align:o="center",justify:t="start",noWrap:n=!1,inline:r=!1,className:i,children:a,...l}){let w=e?{"--aia-cluster-gap":e}:void 0,b={className:i?`aia-cluster ${i}`:"aia-cluster","data-align":o,"data-justify":t,"data-nowrap":n||void 0,"data-inline":r||void 0,style:w,...l};return r?ht("span",{...b,children:a}):ht("div",{...b,children:a})}if(typeof document<"u"&&!document.getElementById("ac-style-56b0c577")){let e=document.createElement("style");e.id="ac-style-56b0c577",e.textContent=`/* The footer adds its own 8px horizontal inset so it stays clear of the
|
|
1248
1248
|
dropdown's rounded edges. The top inset (--aia-footer-gap) adds breathing
|
|
1249
1249
|
room above the hint/branding row so the footer doesn't butt against the last
|
|
1250
1250
|
option row \u2014 additive to the dropdown's 8px section gap. */
|
|
@@ -1286,7 +1286,6 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1286
1286
|
gap: 2px;
|
|
1287
1287
|
text-decoration: none;
|
|
1288
1288
|
cursor: pointer;
|
|
1289
|
-
transition: opacity 150ms ease-out;
|
|
1290
1289
|
}
|
|
1291
1290
|
|
|
1292
1291
|
/* The two content groups carry a solid surface fill so the keyboard hint and
|
|
@@ -1321,7 +1320,17 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1321
1320
|
gap: 4px;
|
|
1322
1321
|
}
|
|
1323
1322
|
|
|
1324
|
-
|
|
1323
|
+
/* Hover dims the brand's text and badge rather than the link itself: the
|
|
1324
|
+
link's opacity is pinned inline so a stylesheet can't fade the attribution
|
|
1325
|
+
out (vanilla guardAttribution.ts), and its pill fill is the dropdown's own
|
|
1326
|
+
surface, so dimming it never showed anyway. */
|
|
1327
|
+
.aia-brand-Al-lR,
|
|
1328
|
+
.aia-badge-Fk9vg {
|
|
1329
|
+
transition: opacity 150ms ease-out;
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
.aia-brandLink-r4f3R:hover .aia-brand-Al-lR,
|
|
1333
|
+
.aia-brandLink-r4f3R:hover .aia-badge-Fk9vg {
|
|
1325
1334
|
opacity: 0.7;
|
|
1326
1335
|
}
|
|
1327
1336
|
|
|
@@ -1378,7 +1387,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1378
1387
|
justify-content: flex-end;
|
|
1379
1388
|
}
|
|
1380
1389
|
}
|
|
1381
|
-
`,document.head.appendChild(e)}var
|
|
1390
|
+
`,document.head.appendChild(e)}var se={footer:"aia-footer-qQQ7x",hintGroup:"aia-hintGroup-ZzbPf",brandLink:"aia-brandLink-r4f3R",brand:"aia-brand-Al-lR",badge:"aia-badge-Fk9vg",key:"aia-key-Bz1H-",hint:"aia-hint-GKEOH",row:"aia-row-BgZ6Q"};import{jsx as Re,jsxs as Qe}from"react/jsx-runtime";function ut({isOptionHighlighted:e=!1,isInputEmpty:o=!1}){let{key:t,hint:n}=la(e,o),[r,i]=ca(ra);return da(()=>{i(sa())},[]),Re("footer",{className:se.footer,"data-aia-footer":"",children:Qe(Ae,{justify:"between",noWrap:!0,className:se.row,children:[Qe(Ae,{gap:"5px",className:se.hintGroup,children:[Re("kbd",{className:se.key,children:t}),Re("span",{className:se.hint,children:n})]}),Qe("a",{className:se.brandLink,href:r,target:"_blank",rel:"noopener noreferrer",children:[Re("span",{className:se.brand,children:"AI"}),Re("span",{className:se.badge,children:"Autocomplete"})]})]})})}if(typeof document<"u"&&!document.getElementById("ac-style-199d0432")){let e=document.createElement("style");e.id="ac-style-199d0432",e.textContent=`/* ParamPill (Figma "ParamPill") \u2014 unfilled suggestion pill: transparent fill,
|
|
1382
1391
|
no outline. ~28px via 6px padding + 14px text + the 1px border (border-box).
|
|
1383
1392
|
The border is kept as a 1px transparent line so the box stays the same size
|
|
1384
1393
|
as it was when the outline was dashed. */
|
|
@@ -1454,7 +1463,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1454
1463
|
opacity: 0;
|
|
1455
1464
|
}
|
|
1456
1465
|
}
|
|
1457
|
-
`,document.head.appendChild(e)}var be={pill:"aia-pill-6Ga7S",fadeIn:"aia-fadeIn-Ux4eQ",rounded:"aia-rounded-y7xA9",skeleton:"aia-skeleton-57P0T",skeletonIn:"aia-skeletonIn-54kMv",skeletonPulse:"aia-skeletonPulse-xGcUy",skeletonOut:"aia-skeletonOut-1sJ-r"};import{jsx as pa}from"react/jsx-runtime";var
|
|
1466
|
+
`,document.head.appendChild(e)}var be={pill:"aia-pill-6Ga7S",fadeIn:"aia-fadeIn-Ux4eQ",rounded:"aia-rounded-y7xA9",skeleton:"aia-skeleton-57P0T",skeletonIn:"aia-skeletonIn-54kMv",skeletonPulse:"aia-skeletonPulse-xGcUy",skeletonOut:"aia-skeletonOut-1sJ-r"};import{jsx as pa}from"react/jsx-runtime";var je={selected:1,first:.7,next:.4,last:.2};function mt({label:e,state:o,rounded:t,loading:n,onClick:r}){let i=[be.pill,t?be.rounded:"",n?be.skeleton:""].filter(Boolean).join(" ");return pa("button",{type:"button","data-aia-pill":"","data-aia-loading":n?"":void 0,tabIndex:-1,contentEditable:!1,suppressContentEditableWarning:!0,className:i,style:{opacity:je[o]},onMouseDown:a=>a.preventDefault(),onClick:n?void 0:r,disabled:n,children:e})}if(typeof document<"u"&&!document.getElementById("ac-style-0fcb7940")){let e=document.createElement("style");e.id="ac-style-0fcb7940",e.textContent=`.aia-list-qvLqO {
|
|
1458
1467
|
position: relative;
|
|
1459
1468
|
z-index: 1;
|
|
1460
1469
|
pointer-events: auto;
|
|
@@ -1464,7 +1473,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1464
1473
|
align-items: center;
|
|
1465
1474
|
vertical-align: middle;
|
|
1466
1475
|
}
|
|
1467
|
-
`,document.head.appendChild(e)}var
|
|
1476
|
+
`,document.head.appendChild(e)}var Ye={list:"aia-list-qvLqO"};import{jsx as He}from"react/jsx-runtime";var ha=[125,69];function gt(e){return e===0?"first":e===1?"next":"last"}function Fe({pills:e,activePillIndex:o,onSelectPill:t,activeSelected:n,rounded:r,loading:i}){return i&&e.length===0?He("span",{className:Ye.list,"data-aia-pill-list-loading":"",children:ha.map((a,l)=>He("span",{"data-aia-pill-skeleton":"",className:`${be.pill} ${r?be.rounded:""} ${be.skeleton}`,style:{width:a,opacity:je[gt(l)]}},`skel-${a}`))}):He("span",{className:Ye.list,"data-aia-pill-list-loading":i?"":void 0,children:e.map((a,l)=>{let w=!!n&&l===o;return He(mt,{label:a.text,state:w?"selected":gt(l),selected:w,rounded:r,loading:i,onClick:()=>t(l)},`${a.type}-${a.text}`)})})}import{attachProductRowWheel as ua,productInitial as ma}from"@magicx-eng/ai-autocomplete-vanilla";import{useEffect as ga,useRef as fa,useState as ba}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-fef1688d")){let e=document.createElement("style");e.id="ac-style-fef1688d",e.textContent=`/* Product strip \u2014 the React counterpart of the vanilla core's strip rules
|
|
1468
1477
|
(packages/vanilla/src/styles.css). Same tokens, same defaults, so a consumer
|
|
1469
1478
|
theming one package sees the same result in the other.
|
|
1470
1479
|
|
|
@@ -1692,7 +1701,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1692
1701
|
.aia-section-Hugfg[data-aia-products-layout="list"] .aia-body-ly032 {
|
|
1693
1702
|
flex: 1 1 auto;
|
|
1694
1703
|
}
|
|
1695
|
-
`,document.head.appendChild(e)}var
|
|
1704
|
+
`,document.head.appendChild(e)}var U={section:"aia-section-Hugfg",label:"aia-label-nuc93",row:"aia-row-WDVBX",card:"aia-card-JBGYT",media:"aia-media-RrbGe",image:"aia-image-5pNL7",body:"aia-body-ly032",vendor:"aia-vendor-Gvu7G",title:"aia-title-gCNmq",price:"aia-price-gULcE"};import{jsx as ve,jsxs as Ke}from"react/jsx-runtime";function ft({products:e,listboxId:o,onSelect:t,onFocusChange:n,focusable:r=!0,layout:i="row",imageFallback:a="image"}){let l=e.length>0,w=fa(null);if(ga(()=>{let v=w.current;if(!(!l||!v))return ua(v)},[l]),!l)return null;let b=`${o}-products-label`;return Ke("section",{className:U.section,"data-aia-products":"","data-aia-products-layout":i,role:"group","aria-labelledby":b,children:[ve("div",{className:U.label,id:b,"data-aia-products-label":"",children:"Products"}),ve("div",{ref:w,className:U.row,"data-aia-products-row":"",children:e.map((v,C)=>ve(va,{product:v,id:`${o}-product-${C}`,onSelect:t,onFocusChange:n,focusable:r,imageFallback:a},v.id))})]})}function va({product:e,id:o,onSelect:t,onFocusChange:n,focusable:r,imageFallback:i}){let a=l=>{l.metaKey||l.ctrlKey||l.shiftKey||l.altKey||l.button!==0||(l.preventDefault(),t(e))};return Ke("a",{id:o,className:U.card,"data-aia-product":"",role:"option","aria-selected":!1,href:e.url,tabIndex:r?0:-1,onClick:a,onKeyDown:l=>{l.key!=="Enter"&&l.key!==" "||(l.preventDefault(),t(e))},onFocus:()=>n?.(!0),onBlur:l=>{l.relatedTarget?.closest("[data-aia-dropdown]")||n?.(!1)},children:[ve(wa,{src:e.imageUrl?.trim(),title:e.title,fallback:i},e.imageUrl?.trim()??""),Ke("span",{className:U.body,children:[e.vendor?ve("span",{className:U.vendor,children:e.vendor}):null,ve("span",{className:U.title,children:e.title}),e.price?ve("span",{className:U.price,children:e.price}):null]})]})}function wa({src:e,title:o,fallback:t}){let[n,r]=ba(!1),i=!!e&&!n,a=!i&&t==="initial";return Ke("span",{className:U.media,"aria-hidden":"true","data-aia-product-placeholder":!i&&!a?"":void 0,"data-aia-product-initial":a?"":void 0,children:[i?ve("img",{className:U.image,src:e,alt:"",loading:"lazy",decoding:"async",onError:()=>r(!0)}):null,a?ma(o):null]})}import{isOptionsGridMobileViewport as La,measureOptionsGrid as Ma,needsOptionsGridMeasurement as za,OPTIONS_GRID_MOBILE_QUERY as Na,optionEnterDelayMs as Ba,planOptionsGrid as wt,sameOptionRows as Ha}from"@magicx-eng/ai-autocomplete-vanilla";import{useEffect as Fa,useLayoutEffect as Ka,useRef as xt,useState as kt}from"react";import{optionsGridTemplateColumns as xa}from"@magicx-eng/ai-autocomplete-vanilla";import{useLayoutEffect as ya,useRef as ka}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-948e58da")){let e=document.createElement("style");e.id="ac-style-948e58da",e.textContent=`.aia-grid {
|
|
1696
1705
|
display: grid;
|
|
1697
1706
|
grid-template-columns: repeat(
|
|
1698
1707
|
auto-fit,
|
|
@@ -1701,8 +1710,18 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1701
1710
|
gap: var(--aia-grid-gap, 0);
|
|
1702
1711
|
}
|
|
1703
1712
|
|
|
1704
|
-
/* Scrollable variant \u2014 capped height
|
|
1705
|
-
|
|
1713
|
+
/* Scrollable variant \u2014 capped height, rows packed from the top instead of
|
|
1714
|
+
stretching to fill the container.
|
|
1715
|
+
|
|
1716
|
+
The scrollbar is hidden in every engine, as the product strip's and the
|
|
1717
|
+
input's already are: the list stays scrollable by wheel, trackpad, touch
|
|
1718
|
+
and keyboard, and the dropdown's "more below" arrow says there is more.
|
|
1719
|
+
Styling it instead (a thin, tinted bar) looked right only in Chrome, whose
|
|
1720
|
+
macOS overlay scrollbar ignores the ::-webkit-scrollbar rules \u2014 Safari drew
|
|
1721
|
+
a permanent bar over the list.
|
|
1722
|
+
|
|
1723
|
+
overscroll-behavior: contain keeps a wheel or trackpad fling that runs past
|
|
1724
|
+
either end of the list from scrolling the page behind the dropdown. */
|
|
1706
1725
|
.aia-grid[data-scroll] {
|
|
1707
1726
|
grid-auto-rows: min-content;
|
|
1708
1727
|
align-content: start;
|
|
@@ -1712,20 +1731,13 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
1712
1731
|
appearance.css for why. */
|
|
1713
1732
|
max-height: var(--aia-grid-max-height, 120px);
|
|
1714
1733
|
overflow-y: auto;
|
|
1715
|
-
|
|
1716
|
-
scrollbar-
|
|
1734
|
+
overscroll-behavior: contain;
|
|
1735
|
+
scrollbar-width: none;
|
|
1717
1736
|
}
|
|
1718
1737
|
.aia-grid[data-scroll]::-webkit-scrollbar {
|
|
1719
|
-
|
|
1720
|
-
}
|
|
1721
|
-
.aia-grid[data-scroll]::-webkit-scrollbar-track {
|
|
1722
|
-
background: transparent;
|
|
1723
|
-
}
|
|
1724
|
-
.aia-grid[data-scroll]::-webkit-scrollbar-thumb {
|
|
1725
|
-
background: var(--aia-scrollbar-thumb, rgba(0, 0, 0, 0.3));
|
|
1726
|
-
border-radius: 3px;
|
|
1738
|
+
display: none;
|
|
1727
1739
|
}
|
|
1728
|
-
`,document.head.appendChild(e)}import{jsx as Ca}from"react/jsx-runtime";function bt({min:e="16rem",max:o,gap:
|
|
1740
|
+
`,document.head.appendChild(e)}import{jsx as Ca}from"react/jsx-runtime";function bt({min:e="16rem",max:o,gap:t,scroll:n=!1,maxHeight:r,scrollResetKey:i,cols:a,template:l,innerRef:w,className:b,children:v,...C}){let g=ka(null);ya(()=>{if(i===void 0)return;let T=g.current;T&&(T.scrollTop=0)},[i]);let x={"--aia-grid-min":e};return o&&(x["--aia-grid-max"]=o),t&&(x["--aia-grid-gap"]=t),r&&(x["--aia-grid-max-height"]=r),a&&(x.gridTemplateColumns=xa(a)),l&&(x.gridTemplateColumns=l),Ca("div",{ref:T=>{g.current=T,w?.(T)},className:b?`aia-grid ${b}`:"aia-grid","data-scroll":n||void 0,style:x,...C,children:v})}import{formatOptionCount as Pa,OPTION_ENTER_DELAY_VAR as Sa,optionImageSrc as Ia,optionLabel as Ea,sanitizeOptionIconSvg as Ta}from"@magicx-eng/ai-autocomplete-vanilla";import{useEffect as Aa,useMemo as Ra,useRef as Da,useState as Ze}from"react";if(typeof document<"u"&&!document.getElementById("ac-style-82820da7")){let e=document.createElement("style");e.id="ac-style-82820da7",e.textContent=`.aia-item-d4vpD {
|
|
1729
1741
|
position: relative;
|
|
1730
1742
|
/* Clip, not visible: the entrance rise below runs on the inner content,
|
|
1731
1743
|
and a transformed box extends its scroll container's scrollable area.
|
|
@@ -2044,12 +2056,13 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
2044
2056
|
}
|
|
2045
2057
|
|
|
2046
2058
|
/* A row without a picture, in a grid where other rows have one, lines up
|
|
2047
|
-
with them: it becomes the same centred flex row, its icon sits centred
|
|
2048
|
-
tile-sized box,
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2059
|
+
with them: it becomes the same centred flex row, and its icon sits centred
|
|
2060
|
+
in a tile-sized box, so an icon row's text starts where a picture row's
|
|
2061
|
+
does. A row with neither a picture nor an icon is not indented to match:
|
|
2062
|
+
its text sits flush left, as it would in a grid with no pictures. Grids
|
|
2063
|
+
with no pictures keep the inline icon and hanging indent above. The text
|
|
2064
|
+
is left to size itself: letting it grow here would out-rank the
|
|
2065
|
+
loading-bar rule that makes a skeleton bar hug its text. */
|
|
2053
2066
|
[data-aia-group]:has(.aia-image-YZAbO) .aia-content-T-Qba:not(:has(.aia-image-YZAbO)) {
|
|
2054
2067
|
display: flex;
|
|
2055
2068
|
flex: 1 1 auto;
|
|
@@ -2069,10 +2082,6 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
2069
2082
|
margin-right: 0;
|
|
2070
2083
|
}
|
|
2071
2084
|
|
|
2072
|
-
[data-aia-group]:has(.aia-image-YZAbO) .aia-content-T-Qba:not(:has(.aia-image-YZAbO)):not(:has(.aia-icon-Qw938)) {
|
|
2073
|
-
padding-left: calc(var(--aia-option-image-size, 40px) + var(--aia-option-image-gap, 12px));
|
|
2074
|
-
}
|
|
2075
|
-
|
|
2076
2085
|
@keyframes aia-skeletonPulse-plvdD {
|
|
2077
2086
|
0%,
|
|
2078
2087
|
100% {
|
|
@@ -2115,7 +2124,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
2115
2124
|
opacity: 0;
|
|
2116
2125
|
}
|
|
2117
2126
|
}
|
|
2118
|
-
`,document.head.appendChild(e)}var
|
|
2127
|
+
`,document.head.appendChild(e)}var H={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",icon:"aia-icon-Qw938",count:"aia-count-IpYbQ",image:"aia-image-YZAbO",skeletonOut:"aia-skeletonOut-x6NRd"};import{jsx as Ce,jsxs as Oa}from"react/jsx-runtime";function vt({option:e,isHighlighted:o,onSelect:t,onHighlight:n,onUnhighlight:r,id:i,loading:a,showIcon:l=!0,showImage:w=!0,showCount:b=!0,scrollHint:v,enterDelayMs:C=0}){let[g]=Ze(C),[x,T]=Ze(!1),S=w?Ia(e.image_url):null,[M,z]=Ze(null),I=Ra(()=>!S&&l&&e.icon_svg?Ta(e.icon_svg):null,[S,l,e.icon_svg]),A=b?Pa(e.item_count):null,R=Da(void 0);Aa(()=>()=>clearTimeout(R.current),[]);let E=()=>{a||!e.is_tappable||x||(T(!0),t(e),clearTimeout(R.current),R.current=setTimeout(()=>T(!1),170))},P=[H.item,o&&!a?H.highlighted:"",e.is_tappable?H.tappable:H.nonTappable,x?H.pressed:"",v?H.scrollHint:""].filter(Boolean).join(" ");return Ce("div",{id:i,role:"option","data-aia-option":"","data-aia-loading":a?"":void 0,"data-aia-icon":I&&e.icon?e.icon:void 0,"data-aia-image":S?"":void 0,"data-aia-item-count":A!==null?e.item_count:void 0,"aria-selected":o,className:P,style:{[Sa]:`${g}ms`},tabIndex:a||!e.is_tappable?-1:0,onClick:E,onKeyDown:N=>{!a&&e.is_tappable&&(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),E())},onMouseEnter:!a&&e.is_tappable?n:void 0,onMouseLeave:r,children:Oa("span",{className:H.content,children:[S&&Ce("span",{className:`${H.image} magicx-aia-option-image`,"aria-hidden":"true",children:Ce("img",{src:S,alt:"",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer",draggable:!1,hidden:M===S,onError:()=>z(S)})}),I&&Ce("span",{className:`${H.icon} magicx-aia-option-icon`,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:I}}),Ce("span",{className:H.text,children:Ea(e)}),e.tag&&Ce("span",{className:H.tag,children:e.tag}),A!==null&&Ce("span",{className:`${H.count} magicx-aia-option-count`,children:A})]})})}import{jsx as yt}from"react/jsx-runtime";function Ga(){let[e,o]=kt(La);return Fa(()=>{if(typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(Na),n=()=>o(t.matches);return n(),t.addEventListener("change",n),()=>t.removeEventListener("change",n)},[]),e}function Ct({options:e,activeIndex:o,onSelect:t,onHighlight:n,onUnhighlight:r,listboxId:i,loading:a,groupKey:l="",optionsPosition:w="below",showIcons:b=!0,showImages:v=!0,showCounts:C=!0}){let g=Ga(),x=xt(null),[T,S]=kt(null),M=xt(null);Ka(()=>{if(a&&Ha(M.current,e))return;M.current=a?null:e;let I=x.current,R=I&&!a&&za(e.length,g)?Ma(I):null;S(R?wt(e.length,g,R.rowWidths,R.gridWidth):null)},[e,g,a]);let z=T??wt(e.length,g,null,null);return yt(bt,{min:"250px",max:"1fr",gap:"0",scroll:!0,scrollResetKey:l,template:z.template,maxHeight:z.maxHeight,innerRef:I=>{x.current=I},"data-aia-group":l,children:e.map((I,A)=>yt(vt,{option:I,isHighlighted:A===o,onSelect:t,onHighlight:()=>n(A),onUnhighlight:r?()=>r(A):void 0,id:`${i}-option-${A}`,loading:a,showIcon:b,showImage:v,showCount:C,scrollHint:!a&&z.scrollHintIndices.includes(A),enterDelayMs:a?0:Ba(A,z.cols,e.length,w)},`${l}\0${I.text}`))})}if(typeof document<"u"&&!document.getElementById("ac-style-8414cd5f")){let e=document.createElement("style");e.id="ac-style-8414cd5f",e.textContent=`.aia-stack {
|
|
2119
2128
|
display: flex;
|
|
2120
2129
|
flex-direction: column;
|
|
2121
2130
|
gap: var(--aia-stack-space, 0.5rem);
|
|
@@ -2130,7 +2139,7 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
2130
2139
|
align-items: end;
|
|
2131
2140
|
}
|
|
2132
2141
|
/* data-align="stretch" is the flex default \u2014 no rule needed. */
|
|
2133
|
-
`,document.head.appendChild(e)}import{jsx as Wa}from"react/jsx-runtime";function Pt({space:e,align:o="stretch",className:
|
|
2142
|
+
`,document.head.appendChild(e)}import{jsx as Wa}from"react/jsx-runtime";function Pt({space:e,align:o="stretch",className:t,children:n,...r}){let i=e?{"--aia-stack-space":e}:void 0;return Wa("div",{className:t?`aia-stack ${t}`:"aia-stack","data-align":o,style:i,...r,children:n})}import{jsx as K,jsxs as $e}from"react/jsx-runtime";var ja=[159,119,164],Ya=()=>{},St=()=>{};function Za(e){let o=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches,[t,n]=Qa(o);if(Ve(()=>{if(e!=="auto"||typeof window>"u"||typeof window.matchMedia!="function")return;let r=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>n(r.matches);return r.addEventListener("change",i),()=>r.removeEventListener("change",i)},[e]),e!==void 0)return e==="auto"?t?"dark":"light":e}function $a(e,o){let t=Ge(null);Ve(()=>{let n=e.current,r=o.current;if(!n||!r)return;let i=n.querySelector(".aia-grid[data-scroll]");if(t.current&&t.current.grid!==i&&(t.current.controller.destroy(),t.current=null),i&&!t.current){t.current={grid:i,controller:_a({dropdown:n,grid:i,button:r})};return}t.current?.controller.update()}),Ve(()=>()=>{t.current?.controller.destroy(),t.current=null},[])}function Xe({suggestions:e,activeIndex:o,onSelect:t,onHighlight:n,onUnhighlight:r,isOpen:i,id:a,className:l,pills:w,onPillClick:b,showPills:v=!0,onSkip:C,showSkipButton:g=!0,showOptionIcons:x=!0,showOptionImages:T=!0,showOptionCounts:S=!0,skipDisabled:M=!1,activeSelected:z=!1,isLoading:I=!1,skeletonExiting:A=!1,isInputEmpty:R=!1,products:E,onProductSelect:P,onProductFocusChange:N,productsLayout:le="row",productImageFallback:X="image",formatType:de="options",dateView:J=null,selectedDateIso:c=null,selectedDateRange:we=null,dateRangeStart:ce=null,onPreviousMonth:pe,onNextMonth:he,optionsPosition:ee="below",mode:ue}){let W=Za(ue),te=W!==void 0,ae=Ge(null),j=Ge(null);$a(ae,j);let ie=e[0]?.options??[],d=!!(w&&w.length>0&&b),p=!!(E&&E.length>0),f=i&&(ie.length>0||v&&d||I||p),k={suggestions:e,activeIndex:o,pills:w,showPills:v,showSkipButton:g,showOptionIcons:x,showOptionImages:T,showOptionCounts:S,skipDisabled:M,activeSelected:z,isLoading:I,skeletonExiting:A,isInputEmpty:R,products:E,formatType:de,dateView:J,selectedDateIso:c,selectedDateRange:we,dateRangeStart:ce},y=Ge(k);f&&(y.current=k);let s=f?k:y.current,m=s.suggestions[0],B=m?.options??[],me=s.activeIndex>=0&&!!B[s.activeIndex]?.is_tappable,_=!!(s.pills&&s.pills.length>0&&b),h=s.showPills&&_,xe=s.showPills&&!_&&s.isLoading,ge=h||xe,Y=_&&s.showSkipButton&&!s.isInputEmpty&&!!C,ye=s.pills?.[0]?.text,oe=qa(s.formatType)&&s.dateView!=null,Pe=B.length>0&&!oe,q=B.length>0&&oe&&!s.isLoading,ne=s.isLoading&&!Pe&&!q,Z=s.products??[];return $e("div",{ref:ae,id:a,role:"listbox","data-aia-dropdown":"","data-options-position":ee,"data-mode":W,"data-aia-loading":s.isLoading?"":void 0,"data-aia-skeleton-exiting":s.skeletonExiting?"":void 0,"data-aia-has-products":Z.length>0?"":void 0,className:`${te?"magicx-aia ":""}${re.dropdown} ${f?re.visible:""} ${l??""}`,onMouseDown:$=>$.preventDefault(),children:[$e(Pt,{space:"8px",children:[(ge||Y)&&$e(Ae,{noWrap:!0,className:re.pillBar,"data-aia-pillbar":"",children:[ge&&K("span",{className:re.pillScroll,"data-aia-pill-scroll":"",children:K(Fe,{pills:s.pills??[],activePillIndex:0,activeSelected:s.activeSelected,onSelectPill:b??(()=>{}),rounded:!0,loading:s.isLoading})}),Y&&K("button",{type:"button",tabIndex:-1,className:re.skip,"data-aia-skip":"",disabled:s.isLoading||s.skipDisabled,"aria-label":ye?`Skip ${ye}`:"Skip",onClick:C,children:"skip"})]}),Pe&&K(Ct,{options:B,activeIndex:s.activeIndex,onSelect:t,onHighlight:n,onUnhighlight:r,listboxId:a,loading:s.isLoading,groupKey:m?`${m.type} ${m.text}`:"",optionsPosition:ee,showIcons:s.showOptionIcons,showImages:s.showOptionImages,showCounts:s.showOptionCounts}),q&&s.dateView&&K(pt,{options:B,activeIndex:s.activeIndex,listboxId:a,view:s.dateView,selection:{selectedIso:s.selectedDateIso??null,selectedRange:s.selectedDateRange??null,rangeStart:s.dateRangeStart??null},onSelect:t,onHighlight:n,onUnhighlight:r,onPreviousMonth:pe??St,onNextMonth:he??St}),ne&&K("div",{className:re.skeletonBars,"data-aia-skeleton-bars":"",children:ja.map($=>K("span",{className:re.skeletonBar,style:{width:$}},`bar-${$}`))}),K(ft,{products:Z,listboxId:a,onSelect:P??Ya,onFocusChange:N,focusable:f,layout:le,imageFallback:X}),K(ut,{isOptionHighlighted:me,isInputEmpty:s.isInputEmpty})]}),K("button",{ref:j,type:"button",tabIndex:-1,className:re.scrollArrow,"data-aia-scroll-arrow":"","aria-label":Ua,"aria-hidden":"true",children:K("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:K("path",{d:"M4 6.5 8 10.5l4-4"})})})]})}import{buildSubmitResult as li,ModeController as di,setCursorOffset as ci}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 {
|
|
2134
2143
|
flex-shrink: 0;
|
|
2135
2144
|
width: 32px;
|
|
2136
2145
|
height: 32px;
|
|
@@ -2183,5 +2192,5 @@ import{buildSubmitResult as on,cellDay as nn,cellIso as rn,DATE_RANGE_META_END a
|
|
|
2183
2192
|
);
|
|
2184
2193
|
cursor: default;
|
|
2185
2194
|
}
|
|
2186
|
-
`,document.head.appendChild(e)}var It={submitButton:"aia-submitButton-otz7H"};import{jsx as Je}from"react/jsx-runtime";function Et({disabled:e,onClick:o}){return Je("button",{type:"button","data-aia-submit":"",className:It.submitButton,disabled:e,onClick:a=>{a.stopPropagation(),o()},"aria-label":"Submit",children:Je("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":"Submit",children:Je("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}import{AIAutocomplete as Va,dateSelectionFor as Xa,identifiedParamLabel as Ja}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as Dt,useEffect as Oe,useRef as K,useState as ei}from"react";import{useRef as Tt}from"react";function At(e){let o=Tt(e);o.current=e;let a=Object.keys(e??{}).sort().join("\0"),n=Tt({key:"",overrides:void 0});if(n.current.key!==a){let r={};for(let t of Object.keys(e??{})){let s=(l,v,w)=>{let b=o.current?.[t];return b?b(l,v,w):[]};r[t]=s}n.current={key:a,overrides:e?r:void 0}}return{overrides:n.current.overrides,key:a}}import{useRef as Rt}from"react";function Ot(e){let o=Rt(e);o.current=e;let a=Rt(null);a.current===null&&(a.current={fetch:(r,t)=>{let s=o.current;return s?s.fetch(r,t):Promise.reject(new Error("products config removed"))},transform:r=>o.current?.transform(r)??[],get limit(){return o.current?.limit}});let n=e!==void 0;return{config:n?a.current:void 0,enabled:n}}var ti={text:"",completedParams:[],identifiedParams:[],skippedParams:[],pendingSpan:null,suggestions:[],products:[],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,editingParam:null,editingIdentified:null,editingAnchor:null,editingTail:null,caretOffset:null,inSelectionAnimation:!1,dateViewMonth:null,pendingRangeStart:null};function et({onSubmit:e,onResult:o,onError:a,optionOverrides:n,maskCompletedText:r,apiConfig:t,additionalContext:s,columns:l=2,dropdownTrigger:v,optionsPosition:w,closeDropdownOnBlur:b,showNonTappableOptions:u,showOptionIcons:y,showOptionImages:S,showOptionCounts:x,showSkipButton:z,showProducts:L,productImageFallback:I="image",onFocus:T,onBlur:M,value:O,completedParams:R,onChange:C,onParamsChange:_,products:de,onProductSelect:X,source:ce,setCursor:J}){let p=K(null),[we,pe]=ei(null),he=K(e);he.current=e;let ee=K(o);ee.current=o;let ue=K(a);ue.current=a;let te=K(C);te.current=C;let q=K(_);q.current=_;let U=K(T);U.current=T;let ae=K(M);ae.current=M;let ie=K(J);ie.current=J;let oe=K(X);oe.current=X;let d=Ot(de),c=At(n);Oe(()=>{if(typeof document>"u")return;let g=new Va(document.createElement("div"),{renderMode:"headless",apiConfig:t,additionalContext:s,optionOverrides:c.overrides,maskCompletedText:r,columns:l,dropdownTrigger:v,optionsPosition:w,closeDropdownOnBlur:b,showNonTappableOptions:u,showProducts:L,source:ce,value:O,completedParams:R,onSubmit:(...D)=>he.current?.(...D),onResult:(...D)=>ee.current?.(...D),onError:(...D)=>ue.current?.(...D),onChange:(...D)=>te.current?.(...D),onParamsChange:(...D)=>q.current?.(...D),onFocus:()=>U.current?.(),onBlur:()=>ae.current?.(),onProductSelect:D=>oe.current?.(D),setCursor:D=>ie.current?.(D),products:d.config});p.current=g,pe(g.getState());let H=g.subscribe(D=>pe(D));return()=>{H(),g.destroy(),p.current===g&&(p.current=null)}},[]),Oe(()=>{O!==void 0&&p.current?.setValue(O)},[O]),Oe(()=>{R!==void 0&&p.current?.setCompletedParams(R)},[R]);let f=JSON.stringify(t??null),k;try{k=JSON.stringify(s??null)}catch{k="[unstringifiable]"}Oe(()=>{p.current?.update({apiConfig:t,additionalContext:s,optionOverrides:c.overrides,dropdownTrigger:v,optionsPosition:w,closeDropdownOnBlur:b,showNonTappableOptions:u,showProducts:L})},[f,k,c.key,v,w,b,u,L]);let i=K(!1);Oe(()=>{if(!i.current){i.current=!0;return}p.current?.update({products:d.config})},[d.enabled]);let P=K(null);P.current===null&&(P.current={handleTextChange:g=>p.current?.handleTextChange(g),handleKeyDown:g=>{let H="nativeEvent"in g?g.nativeEvent:g;p.current?.handleKeyDown(H)},setFocused:g=>p.current?.setFocused(g),startEditingParam:g=>p.current?.startEditingParam(g),exitEditMode:()=>p.current?.exitEditMode(),handleCaretAfterInput:g=>p.current?.handleCaretAfterInput(g),handleCaretMove:g=>p.current?.handleCaretMove(g),replaceEditingRange:g=>p.current?.replaceEditingRange(g)??!1,setActivePill:g=>p.current?.setActivePill(g),skipActivePill:()=>p.current?.skipActivePill(),removeLastParam:()=>p.current?.removeLastParam(),clearNewParamId:()=>p.current?.clearNewParamId(),reset:()=>p.current?.reset(),selectOption:g=>p.current?.selectOption(g),selectProduct:g=>p.current?.selectProduct(g),setActiveDropdownIndex:g=>p.current?.setActiveDropdownIndex(g),showPreviousMonth:()=>p.current?.showPreviousMonth(),showNextMonth:()=>p.current?.showNextMonth(),handleFocus:()=>p.current?.setFocused(!0),handleBlur:()=>p.current?.setFocused(!1)});let m=P.current,Q=Dt(g=>{let H=g.target.value,_e=H.length>0&&!g.nativeEvent?.isComposing&&H[0]!==H[0].toUpperCase()?H[0].toUpperCase()+H.slice(1):H;p.current?.handleTextChange(_e)},[]),Y=Dt(g=>{p.current?.handleKeyDown(g.nativeEvent)},[]),ne=p.current,h=we??ti,me=O!==void 0?O:h.text,ge=R!==void 0?R:h.completedParams,j=h.actionableSuggestions,xe=j[0],re=ne?.listboxId??"",Ce=h.activeDropdownIndex>=0&&ne?`${re}-option-${h.activeDropdownIndex}`:void 0,Z=h.editingParam,$=h.editingIdentified,B=Z?{type:Z.suggestionType,text:Z.suggestionPlaceholder,required:!0,options:Z.options}:$?{type:$.type,text:Ja($.type),required:!0,options:[]}:null,Ee=h.dropdownSuggestion??B??xe,Le=B?[B]:j,Te=Xa(h),Me=!ne||h.dropdownLoading;return{completedParams:ge,skippedParams:h.skippedParams,identifiedParams:h.identifiedParams,suggestionPills:j,setActivePill:m.setActivePill,skipActivePill:m.skipActivePill,removeLastParam:m.removeLastParam,segments:h.segments,newParamId:h.newParamId,clearNewParamId:m.clearNewParamId,suggestions:h.suggestions,activeIndex:h.activeDropdownIndex,isReady:h.isReady,isLoading:Me,isFocused:h.isFocused,isDropdownOpen:h.isDropdownOpen,isActivePillSelected:h.isActivePillSelected,placeholderText:h.placeholderText,listboxId:re,error:h.error,products:h.products,customFields:h.customFields,selectProduct:m.selectProduct,handleTextChange:m.handleTextChange,handleKeyDown:m.handleKeyDown,setFocused:m.setFocused,editingParam:Z,editingIdentified:$,editingAnchor:h.editingAnchor,caretOffset:h.caretOffset,startEditingParam:m.startEditingParam,exitEditMode:m.exitEditMode,handleCaretAfterInput:m.handleCaretAfterInput,handleCaretMove:m.handleCaretMove,replaceEditingRange:m.replaceEditingRange,inputProps:{value:me,placeholder:h.placeholderText||void 0,onChange:Q,onKeyDown:Y,onFocus:m.handleFocus,onBlur:m.handleBlur,role:"combobox","aria-expanded":h.isDropdownOpen,"aria-activedescendant":Ce,"aria-autocomplete":"list","aria-controls":re},reset:m.reset,dropdownProps:{suggestions:Ee?[{...Ee,options:h.dropdownOptions}]:[],activeIndex:h.activeDropdownIndex,onSelect:m.selectOption,onHighlight:m.setActiveDropdownIndex,isOpen:h.isDropdownOpen,id:re,pills:Le,activeSelected:h.isActivePillSelected,onPillClick:m.setActivePill,onSkip:m.skipActivePill,showSkipButton:(z??!0)&&!Z&&!$,showOptionIcons:y??!0,showOptionImages:S??!0,showOptionCounts:x??!0,skipDisabled:h.inSelectionAnimation,isLoading:Me,skeletonExiting:h.skeletonExiting,isInputEmpty:me.trim().length===0,products:h.products,productImageFallback:I,onProductSelect:m.selectProduct,onProductFocusChange:m.setFocused,formatType:h.activeFormatType,dateView:h.dateView,selectedDateIso:Te.selectedIso,selectedDateRange:Te.selectedRange,dateRangeStart:Te.rangeStart,onPreviousMonth:m.showPreviousMonth,onNextMonth:m.showNextMonth,optionsPosition:w??"below"}}}import{extractPlainText as Lt,getCursorOffset as Mt,plainTextLength as ai,renderEditableContent as ii,setCursorOffset as zt}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as W,useEffect as tt,useLayoutEffect as at,useRef as Se}from"react";var We;function oi(){if(We!==void 0)return We;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),We=e.contentEditable==="plaintext-only",We}function Nt(e){let{segments:o,showChipIcons:a=!0,showChipImages:n=!0,newParamId:r,editingParam:t,editingIdentified:s,editingAnchor:l,caretOffset:v,placeholderText:w,isFocused:b,isDropdownOpen:u,listboxId:y,activeDescendantId:S,autoFocus:x,handleTextChange:z,handleKeyDown:L,handleCaretAfterInput:I,handleCaretMove:T,startEditingParam:M,replaceEditingRange:O,setFocused:R}=e,C=Se(null),_=Se(!1),de=Se(""),X=Se(""),ce=Se(null),J=Se(0);ce.current=v,tt(()=>{if(!x)return;let d=C.current;if(!d)return;document.activeElement===d?R(!0):d.focus();let c=d.ownerDocument??document,f=c.getSelection(),k=f&&f.rangeCount>0&&d.contains(f.anchorNode);if(f&&!k){let i=c.createRange();i.selectNodeContents(d),i.collapse(!0),f.removeAllRanges(),f.addRange(i)}},[x,R]),tt(()=>{let d=C.current;if(!d)return;let c=d.ownerDocument??document,f=()=>{let k=c.getSelection();if(!k||k.rangeCount===0||!k.anchorNode||!d.contains(k.anchorNode))return;let i=k.anchorNode,P=i.nodeType===Node.ELEMENT_NODE?i:i.parentElement,Q=(k.isCollapsed?P?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,Y=t?.id??s?.id??null;if(Q&&Q!==Y){M(Q);return}performance.now()-J.current<50||T(Mt(d))};return c.addEventListener("selectionchange",f),()=>c.removeEventListener("selectionchange",f)},[t,s,M,T]),at(()=>{let d=C.current;d&&ii({input:d,segments:o,newParamId:r,editingParamId:t?.id??null,placeholderText:w??"",isFocused:b,showChipIcons:a,showChipImages:n})},[o,r,t,w,b,a,n]),at(()=>{let d=de.current,c=r??"";if(de.current=c,!c||c===d)return;let f=C.current;if(!f)return;f.focus();let k=ce.current??ai(f);zt(f,k)},[r]),at(()=>{let d=X.current,c=t?.id??"";if(X.current=c,!c||c===d||l==null)return;let f=C.current;f&&zt(f,l)},[t,l]);let p=W(()=>{if(_.current)return;let d=C.current;if(!d)return;let c=Lt(d),k=c.length>0&&c[0]!==c[0].toUpperCase()?c[0].toUpperCase()+c.slice(1):c;z(k)},[z]),we=W(()=>{J.current=performance.now(),p();let d=C.current;d&&I(Mt(d))},[p,I]);tt(()=>{let d=C.current;if(!d)return;let c=f=>{let k=f,i=k.inputType;if(i==="insertParagraph"||i==="insertLineBreak"||i==="insertFromDrop"){f.preventDefault();return}if(i.startsWith("insert")||i.startsWith("delete")){let P=i.startsWith("delete")?"":k.data??"";O(P)&&f.preventDefault()}};return d.addEventListener("beforeinput",c),()=>d.removeEventListener("beforeinput",c)},[O]);let pe=W(()=>{_.current=!0},[]),he=W(()=>{_.current=!1,p()},[p]),ee=W(d=>{d.preventDefault();let c=C.current;if(!c)return;let f=(d.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!f)return;let k=c.ownerDocument??document,i=k.getSelection();if(!i||i.rangeCount===0)return;let P=i.getRangeAt(0);if(!c.contains(P.startContainer))return;P.deleteContents();let m=k.createTextNode(f);P.insertNode(m),P.setStartAfter(m),P.collapse(!0),i.removeAllRanges(),i.addRange(P),p()},[p]),ue=W(d=>L(d),[L]),te=W(()=>R(!0),[R]),q=W(()=>R(!1),[R]),U=W(()=>C.current?.focus(),[]),ae=W(()=>C.current?.blur(),[]),ie=W(()=>{let d=C.current;return d?Lt(d):""},[]),oe=oi()?"plaintext-only":"true";return{inputRef:C,editorProps:{ref:C,contentEditable:oe,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":y,"aria-expanded":u,"aria-activedescendant":S,spellCheck:!0,enterKeyHint:"send",onInput:we,onKeyDown:ue,onCompositionStart:pe,onCompositionEnd:he,onPaste:ee,onFocus:te,onBlur:q},getPlainText:ie,focus:U,blur:ae}}import{jsx as Ie,jsxs as ot}from"react/jsx-runtime";function pi(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var hi=ni(function({onSubmit:o,onResult:a,onError:n,optionOverrides:r,maskCompletedText:t,className:s,apiConfig:l,additionalContext:v,columns:w,pillPlacement:b="dropdown",mode:u="auto",optionsPosition:y="below",animations:S=!0,dropdownTrigger:x,closeDropdownOnBlur:z,showNonTappableOptions:L,showOptionIcons:I=!0,showChipIcons:T=!0,showChipImages:M=!0,showOptionImages:O=!0,showOptionCounts:R=!0,showSkipButton:C,showProducts:_,productsLayout:de,productImageFallback:X,autoFocus:ce=!0,onFocus:J,onBlur:p,value:we,completedParams:pe,onChange:he,onParamsChange:ee,products:ue,onProductSelect:te,submitButton:q,resetOnSubmit:U=!0},ae){let ie=De(null),oe=De(null),d=De(()=>{}),c=De(null),f=De(null);Bt(()=>{let E=ie.current;if(E)return c.current?c.current.setMode(u):c.current=new di(E,u),()=>{c.current?.destroy(),c.current=null}},[u]);let k=it(E=>{let fe=f.current?.current;fe&&(fe.focus(),ci(fe,E))},[]),{completedParams:i,skippedParams:P,identifiedParams:m,isReady:Q,customFields:Y,suggestionPills:ne,setActivePill:h,skipActivePill:me,segments:ge,newParamId:j,clearNewParamId:xe,placeholderText:re,isFocused:Ce,isDropdownOpen:Z,isActivePillSelected:$,isLoading:B,activeIndex:Ee,listboxId:Le,handleTextChange:Te,handleKeyDown:Me,setFocused:g,editingParam:H,editingIdentified:D,editingAnchor:_e,caretOffset:Ht,startEditingParam:Ft,handleCaretAfterInput:Kt,handleCaretMove:Gt,replaceEditingRange:Wt,dropdownProps:_t,reset:ze}=et({onSubmit:E=>d.current(E),onResult:a,onError:n,optionOverrides:r,maskCompletedText:t,apiConfig:l,additionalContext:v,columns:w,dropdownTrigger:x,optionsPosition:y,closeDropdownOnBlur:z,showNonTappableOptions:L,showOptionIcons:I,showOptionImages:O,showOptionCounts:R,showSkipButton:C,showProducts:_,onFocus:J,onBlur:p,value:we,completedParams:pe,onChange:he,onParamsChange:ee,products:ue,onProductSelect:te,source:"full-sdk",setCursor:k});Bt(()=>{if(!j)return;let E=window.setTimeout(()=>xe(),650);return()=>window.clearTimeout(E)},[j,xe]);let qt=Ee>=0?`${Le}-option-${Ee}`:void 0,{inputRef:qe,editorProps:Ut,focus:Ne,blur:nt,getPlainText:rt}=Nt({segments:ge,newParamId:j,editingParam:H,editingIdentified:D,editingAnchor:_e,caretOffset:Ht,placeholderText:re,isFocused:Ce,showChipIcons:T,showChipImages:M,isDropdownOpen:Z,listboxId:Le,activeDescendantId:qt,autoFocus:ce,handleTextChange:Te,handleKeyDown:Me,handleCaretAfterInput:Kt,handleCaretMove:Gt,startEditingParam:Ft,replaceEditingRange:Wt,setFocused:g});f.current=qe,si(()=>{let E=oe.current,fe=qe.current;if(!E||!fe)return;let st=()=>{let dt=E.firstElementChild;if(!dt)return;let Zt=dt.getBoundingClientRect(),$t=fe.getBoundingClientRect();Zt.top>=$t.bottom-2?E.setAttribute("data-aia-pill-wrapped",""):E.removeAttribute("data-aia-pill-wrapped")};st();let lt=new ResizeObserver(st);return lt.observe(fe),()=>lt.disconnect()},[ge,ne.length,B,qe]),ri(ae,()=>({focus:Ne,blur:nt,reset:ze,setMode:E=>c.current?.setMode(E),skipActivePill:me}),[Ne,nt,ze,me]);let Be=!!ge.length||i.length>0,Ue=it(()=>{if(!Be)return;let E=rt();o(li(E,i,P,{identifiedParams:m,isReady:Q,customFields:Y})),U&&ze()},[U,Be,i,P,m,Q,Y,o,ze,rt]);d.current=Ue;let Qt=it(E=>{E.target?.closest("[data-aia-pill]")||Ne()},[Ne]),Yt=b==="inline",jt=b==="dropdown";return ot("div",{ref:ie,className:`magicx-aia ${ye.container} ${s??""}`,"data-pill-placement":b,"data-options-position":y,"data-animations":S?"on":"off","data-mode":pi(u),children:[Ie(Xe,{..._t,showPills:jt,productsLayout:de,productImageFallback:X}),ot("div",{className:ye.inputWrapper,"data-aia-input-wrapper":"",onClick:Qt,children:[ot("div",{className:ye.editorArea,"data-aia-editor":"",children:[Ie("div",{...Ut,className:ye.input,"data-aia-input":""}),Yt&&(B||ne.length>0)&&Ie("span",{ref:oe,className:ye.pillListContainer,"data-aia-pill-list-container":"",children:Ie(Fe,{pills:ne,activePillIndex:0,activeSelected:$,onSelectPill:h,loading:B})})]}),q===null?null:q===void 0?Ie(Et,{disabled:!Be,onClick:Ue}):Ie("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:ye.submitSlot,onClick:E=>{Be&&(E.stopPropagation(),Ue())},children:q})]})]})});export{hi as AIAutocomplete,Xe as AIAutocompleteDropdown,sn as DATE_RANGE_META_END,ln as DATE_RANGE_META_START,dn as DEFAULT_OPTION_COUNT_UNIT,xn as PRODUCT_PATH_PREFIX,An as WEEKDAY_LABELS,on as buildSubmitResult,nn as cellDay,rn as cellIso,cn as dateCellMarks,pn as formatDate,hn as formatDateRange,un as formatOptionCount,mn as isoDate,gn as monthLabel,fn as optionCountLabel,bn as optionHasImage,vn as optionImageSrc,wn as optionLabel,yn as parseDate,kn as parseLooseDate,Cn as parseLooseDateRange,Pn as productFromMatchedItem,Sn as productsFromCustomFields,In as sanitizeOptionIconSvg,En as selectedRangeFor,et as useAIAutocomplete,Tn as visibleDateRange,Rn as withSkippedParams};
|
|
2195
|
+
`,document.head.appendChild(e)}var It={submitButton:"aia-submitButton-otz7H"};import{jsx as Je}from"react/jsx-runtime";function Et({disabled:e,onClick:o}){return Je("button",{type:"button","data-aia-submit":"",className:It.submitButton,disabled:e,onClick:t=>{t.stopPropagation(),o()},"aria-label":"Submit",children:Je("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":"Submit",children:Je("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}import{AIAutocomplete as Va,dateSelectionFor as Xa,identifiedParamLabel as Ja}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as Ot,useEffect as De,useRef as G,useState as ei}from"react";import{useRef as Tt}from"react";function At(e){let o=Tt(e);o.current=e;let t=Object.keys(e??{}).sort().join("\0"),n=Tt({key:"",overrides:void 0});if(n.current.key!==t){let r={};for(let i of Object.keys(e??{})){let a=(l,w,b)=>{let v=o.current?.[i];return v?v(l,w,b):[]};r[i]=a}n.current={key:t,overrides:e?r:void 0}}return{overrides:n.current.overrides,key:t}}import{useRef as Rt}from"react";function Dt(e){let o=Rt(e);o.current=e;let t=Rt(null);t.current===null&&(t.current={fetch:(r,i)=>{let a=o.current;return a?a.fetch(r,i):Promise.reject(new Error("products config removed"))},transform:r=>o.current?.transform(r)??[],get limit(){return o.current?.limit}});let n=e!==void 0;return{config:n?t.current:void 0,enabled:n}}var ti={text:"",completedParams:[],identifiedParams:[],skippedParams:[],pendingSpan:null,suggestions:[],products:[],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,editingParam:null,editingIdentified:null,editingAnchor:null,editingTail:null,caretOffset:null,inSelectionAnimation:!1,dateViewMonth:null,pendingRangeStart:null};function et({onSubmit:e,onResult:o,onError:t,optionOverrides:n,maskCompletedText:r,apiConfig:i,additionalContext:a,columns:l=2,dropdownTrigger:w,optionsPosition:b,closeDropdownOnBlur:v,showNonTappableOptions:C,showOptionIcons:g,showOptionImages:x,showOptionCounts:T,showSkipButton:S,showProducts:M,productImageFallback:z="image",onFocus:I,onBlur:A,value:R,completedParams:E,onChange:P,onParamsChange:N,products:le,onProductSelect:X,source:de,setCursor:J}){let c=G(null),[we,ce]=ei(null),pe=G(e);pe.current=e;let he=G(o);he.current=o;let ee=G(t);ee.current=t;let ue=G(P);ue.current=P;let W=G(N);W.current=N;let te=G(I);te.current=I;let ae=G(A);ae.current=A;let j=G(J);j.current=J;let ie=G(X);ie.current=X;let d=Dt(le),p=At(n);De(()=>{if(typeof document>"u")return;let u=new Va(document.createElement("div"),{renderMode:"headless",apiConfig:i,additionalContext:a,optionOverrides:p.overrides,maskCompletedText:r,columns:l,dropdownTrigger:w,optionsPosition:b,closeDropdownOnBlur:v,showNonTappableOptions:C,showProducts:M,source:de,value:R,completedParams:E,onSubmit:(...L)=>pe.current?.(...L),onResult:(...L)=>he.current?.(...L),onError:(...L)=>ee.current?.(...L),onChange:(...L)=>ue.current?.(...L),onParamsChange:(...L)=>W.current?.(...L),onFocus:()=>te.current?.(),onBlur:()=>ae.current?.(),onProductSelect:L=>ie.current?.(L),setCursor:L=>j.current?.(L),products:d.config});c.current=u,ce(u.getState());let F=u.subscribe(L=>ce(L));return()=>{F(),u.destroy(),c.current===u&&(c.current=null)}},[]),De(()=>{R!==void 0&&c.current?.setValue(R)},[R]),De(()=>{E!==void 0&&c.current?.setCompletedParams(E)},[E]);let f=JSON.stringify(i??null),k;try{k=JSON.stringify(a??null)}catch{k="[unstringifiable]"}De(()=>{c.current?.update({apiConfig:i,additionalContext:a,optionOverrides:p.overrides,dropdownTrigger:w,optionsPosition:b,closeDropdownOnBlur:v,showNonTappableOptions:C,showProducts:M})},[f,k,p.key,w,b,v,C,M]);let y=G(!1);De(()=>{if(!y.current){y.current=!0;return}c.current?.update({products:d.config})},[d.enabled]);let s=G(null);s.current===null&&(s.current={handleTextChange:u=>c.current?.handleTextChange(u),handleKeyDown:u=>{let F="nativeEvent"in u?u.nativeEvent:u;c.current?.handleKeyDown(F)},setFocused:u=>c.current?.setFocused(u),startEditingParam:u=>c.current?.startEditingParam(u),exitEditMode:()=>c.current?.exitEditMode(),handleCaretAfterInput:u=>c.current?.handleCaretAfterInput(u),handleCaretMove:u=>c.current?.handleCaretMove(u),replaceEditingRange:u=>c.current?.replaceEditingRange(u)??!1,setActivePill:u=>c.current?.setActivePill(u),skipActivePill:()=>c.current?.skipActivePill(),removeLastParam:()=>c.current?.removeLastParam(),clearNewParamId:()=>c.current?.clearNewParamId(),reset:()=>c.current?.reset(),selectOption:u=>c.current?.selectOption(u),selectProduct:u=>c.current?.selectProduct(u),setActiveDropdownIndex:u=>c.current?.setActiveDropdownIndex(u),clearHighlight:u=>c.current?.clearHighlight(u),showPreviousMonth:()=>c.current?.showPreviousMonth(),showNextMonth:()=>c.current?.showNextMonth(),handleFocus:()=>c.current?.setFocused(!0),handleBlur:()=>c.current?.setFocused(!1)});let m=s.current,B=Ot(u=>{let F=u.target.value,_e=F.length>0&&!u.nativeEvent?.isComposing&&F[0]!==F[0].toUpperCase()?F[0].toUpperCase()+F.slice(1):F;c.current?.handleTextChange(_e)},[]),me=Ot(u=>{c.current?.handleKeyDown(u.nativeEvent)},[]),_=c.current,h=we??ti,xe=R!==void 0?R:h.text,ge=E!==void 0?E:h.completedParams,Y=h.actionableSuggestions,ye=Y[0],oe=_?.listboxId??"",Pe=h.activeDropdownIndex>=0&&_?`${oe}-option-${h.activeDropdownIndex}`:void 0,q=h.editingParam,ne=h.editingIdentified,Z=q?{type:q.suggestionType,text:q.suggestionPlaceholder,required:!0,options:q.options}:ne?{type:ne.type,text:Ja(ne.type),required:!0,options:[]}:null,$=h.dropdownSuggestion??Z??ye,Le=Z?[Z]:Y,Te=Xa(h),Me=!_||h.dropdownLoading;return{completedParams:ge,skippedParams:h.skippedParams,identifiedParams:h.identifiedParams,suggestionPills:Y,setActivePill:m.setActivePill,skipActivePill:m.skipActivePill,removeLastParam:m.removeLastParam,segments:h.segments,newParamId:h.newParamId,clearNewParamId:m.clearNewParamId,suggestions:h.suggestions,activeIndex:h.activeDropdownIndex,isReady:h.isReady,isLoading:Me,isFocused:h.isFocused,isDropdownOpen:h.isDropdownOpen,isActivePillSelected:h.isActivePillSelected,placeholderText:h.placeholderText,listboxId:oe,error:h.error,products:h.products,customFields:h.customFields,selectProduct:m.selectProduct,handleTextChange:m.handleTextChange,handleKeyDown:m.handleKeyDown,setFocused:m.setFocused,editingParam:q,editingIdentified:ne,editingAnchor:h.editingAnchor,caretOffset:h.caretOffset,startEditingParam:m.startEditingParam,exitEditMode:m.exitEditMode,handleCaretAfterInput:m.handleCaretAfterInput,handleCaretMove:m.handleCaretMove,replaceEditingRange:m.replaceEditingRange,inputProps:{value:xe,placeholder:h.placeholderText||void 0,onChange:B,onKeyDown:me,onFocus:m.handleFocus,onBlur:m.handleBlur,role:"combobox","aria-expanded":h.isDropdownOpen,"aria-activedescendant":Pe,"aria-autocomplete":"list","aria-controls":oe},reset:m.reset,dropdownProps:{suggestions:$?[{...$,options:h.dropdownOptions}]:[],activeIndex:h.activeDropdownIndex,onSelect:m.selectOption,onHighlight:m.setActiveDropdownIndex,onUnhighlight:m.clearHighlight,isOpen:h.isDropdownOpen,id:oe,pills:Le,activeSelected:h.isActivePillSelected,onPillClick:m.setActivePill,onSkip:m.skipActivePill,showSkipButton:(S??!0)&&!q&&!ne,showOptionIcons:g??!0,showOptionImages:x??!0,showOptionCounts:T??!0,skipDisabled:h.inSelectionAnimation,isLoading:Me,skeletonExiting:h.skeletonExiting,isInputEmpty:xe.trim().length===0,products:h.products,productImageFallback:z,onProductSelect:m.selectProduct,onProductFocusChange:m.setFocused,formatType:h.activeFormatType,dateView:h.dateView,selectedDateIso:Te.selectedIso,selectedDateRange:Te.selectedRange,dateRangeStart:Te.rangeStart,onPreviousMonth:m.showPreviousMonth,onNextMonth:m.showNextMonth,optionsPosition:b??"below"}}}import{extractPlainText as Lt,getCursorOffset as Mt,plainTextLength as ai,renderEditableContent as ii,setCursorOffset as zt}from"@magicx-eng/ai-autocomplete-vanilla";import{useCallback as Q,useEffect as tt,useLayoutEffect as at,useRef as Ie}from"react";var We;function oi(){if(We!==void 0)return We;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),We=e.contentEditable==="plaintext-only",We}function Nt(e){let{segments:o,showChipIcons:t=!0,showChipImages:n=!0,newParamId:r,editingParam:i,editingIdentified:a,editingAnchor:l,caretOffset:w,placeholderText:b,isFocused:v,isDropdownOpen:C,listboxId:g,activeDescendantId:x,autoFocus:T,handleTextChange:S,handleKeyDown:M,handleCaretAfterInput:z,handleCaretMove:I,startEditingParam:A,replaceEditingRange:R,setFocused:E}=e,P=Ie(null),N=Ie(!1),le=Ie(""),X=Ie(""),de=Ie(null),J=Ie(0);de.current=w,tt(()=>{if(!T)return;let d=P.current;if(!d)return;document.activeElement===d?E(!0):d.focus();let p=d.ownerDocument??document,f=p.getSelection(),k=f&&f.rangeCount>0&&d.contains(f.anchorNode);if(f&&!k){let y=p.createRange();y.selectNodeContents(d),y.collapse(!0),f.removeAllRanges(),f.addRange(y)}},[T,E]),tt(()=>{let d=P.current;if(!d)return;let p=d.ownerDocument??document,f=()=>{let k=p.getSelection();if(!k||k.rangeCount===0||!k.anchorNode||!d.contains(k.anchorNode))return;let y=k.anchorNode,s=y.nodeType===Node.ELEMENT_NODE?y:y.parentElement,B=(k.isCollapsed?s?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,me=i?.id??a?.id??null;if(B&&B!==me){A(B);return}performance.now()-J.current<50||I(Mt(d))};return p.addEventListener("selectionchange",f),()=>p.removeEventListener("selectionchange",f)},[i,a,A,I]),at(()=>{let d=P.current;d&&ii({input:d,segments:o,newParamId:r,editingParamId:i?.id??null,placeholderText:b??"",isFocused:v,showChipIcons:t,showChipImages:n})},[o,r,i,b,v,t,n]),at(()=>{let d=le.current,p=r??"";if(le.current=p,!p||p===d)return;let f=P.current;if(!f)return;f.focus();let k=de.current??ai(f);zt(f,k)},[r]),at(()=>{let d=X.current,p=i?.id??"";if(X.current=p,!p||p===d||l==null)return;let f=P.current;f&&zt(f,l)},[i,l]);let c=Q(()=>{if(N.current)return;let d=P.current;if(!d)return;let p=Lt(d),k=p.length>0&&p[0]!==p[0].toUpperCase()?p[0].toUpperCase()+p.slice(1):p;S(k)},[S]),we=Q(()=>{J.current=performance.now(),c();let d=P.current;d&&z(Mt(d))},[c,z]);tt(()=>{let d=P.current;if(!d)return;let p=f=>{let k=f,y=k.inputType;if(y==="insertParagraph"||y==="insertLineBreak"||y==="insertFromDrop"){f.preventDefault();return}if(y.startsWith("insert")||y.startsWith("delete")){let s=y.startsWith("delete")?"":k.data??"";R(s)&&f.preventDefault()}};return d.addEventListener("beforeinput",p),()=>d.removeEventListener("beforeinput",p)},[R]);let ce=Q(()=>{N.current=!0},[]),pe=Q(()=>{N.current=!1,c()},[c]),he=Q(d=>{d.preventDefault();let p=P.current;if(!p)return;let f=(d.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!f)return;let k=p.ownerDocument??document,y=k.getSelection();if(!y||y.rangeCount===0)return;let s=y.getRangeAt(0);if(!p.contains(s.startContainer))return;s.deleteContents();let m=k.createTextNode(f);s.insertNode(m),s.setStartAfter(m),s.collapse(!0),y.removeAllRanges(),y.addRange(s),c()},[c]),ee=Q(d=>M(d),[M]),ue=Q(()=>E(!0),[E]),W=Q(()=>E(!1),[E]),te=Q(()=>P.current?.focus(),[]),ae=Q(()=>P.current?.blur(),[]),j=Q(()=>{let d=P.current;return d?Lt(d):""},[]),ie=oi()?"plaintext-only":"true";return{inputRef:P,editorProps:{ref:P,contentEditable:ie,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":g,"aria-expanded":C,"aria-activedescendant":x,spellCheck:!0,enterKeyHint:"send",onInput:we,onKeyDown:ee,onCompositionStart:ce,onCompositionEnd:pe,onPaste:he,onFocus:ue,onBlur:W},getPlainText:j,focus:te,blur:ae}}import{jsx as Ee,jsxs as ot}from"react/jsx-runtime";function pi(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var hi=ni(function({onSubmit:o,onResult:t,onError:n,optionOverrides:r,maskCompletedText:i,className:a,apiConfig:l,additionalContext:w,columns:b,pillPlacement:v="dropdown",mode:C="auto",optionsPosition:g="below",animations:x=!0,dropdownTrigger:T,closeDropdownOnBlur:S,showNonTappableOptions:M,showOptionIcons:z=!0,showChipIcons:I=!0,showChipImages:A=!0,showOptionImages:R=!0,showOptionCounts:E=!0,showSkipButton:P,showProducts:N,productsLayout:le,productImageFallback:X,autoFocus:de=!0,onFocus:J,onBlur:c,value:we,completedParams:ce,onChange:pe,onParamsChange:he,products:ee,onProductSelect:ue,submitButton:W,resetOnSubmit:te=!0},ae){let j=Oe(null),ie=Oe(null),d=Oe(()=>{}),p=Oe(null),f=Oe(null);Bt(()=>{let D=j.current;if(D)return p.current?p.current.setMode(C):p.current=new di(D,C),()=>{p.current?.destroy(),p.current=null}},[C]);let k=it(D=>{let fe=f.current?.current;fe&&(fe.focus(),ci(fe,D))},[]),{completedParams:y,skippedParams:s,identifiedParams:m,isReady:B,customFields:me,suggestionPills:_,setActivePill:h,skipActivePill:xe,segments:ge,newParamId:Y,clearNewParamId:ye,placeholderText:oe,isFocused:Pe,isDropdownOpen:q,isActivePillSelected:ne,isLoading:Z,activeIndex:$,listboxId:Le,handleTextChange:Te,handleKeyDown:Me,setFocused:u,editingParam:F,editingIdentified:L,editingAnchor:_e,caretOffset:Ht,startEditingParam:Ft,handleCaretAfterInput:Kt,handleCaretMove:Gt,replaceEditingRange:Wt,dropdownProps:_t,reset:ze}=et({onSubmit:D=>d.current(D),onResult:t,onError:n,optionOverrides:r,maskCompletedText:i,apiConfig:l,additionalContext:w,columns:b,dropdownTrigger:T,optionsPosition:g,closeDropdownOnBlur:S,showNonTappableOptions:M,showOptionIcons:z,showOptionImages:R,showOptionCounts:E,showSkipButton:P,showProducts:N,onFocus:J,onBlur:c,value:we,completedParams:ce,onChange:pe,onParamsChange:he,products:ee,onProductSelect:ue,source:"full-sdk",setCursor:k});Bt(()=>{if(!Y)return;let D=window.setTimeout(()=>ye(),650);return()=>window.clearTimeout(D)},[Y,ye]);let qt=$>=0?`${Le}-option-${$}`:void 0,{inputRef:qe,editorProps:Ut,focus:Ne,blur:nt,getPlainText:rt}=Nt({segments:ge,newParamId:Y,editingParam:F,editingIdentified:L,editingAnchor:_e,caretOffset:Ht,placeholderText:oe,isFocused:Pe,showChipIcons:I,showChipImages:A,isDropdownOpen:q,listboxId:Le,activeDescendantId:qt,autoFocus:de,handleTextChange:Te,handleKeyDown:Me,handleCaretAfterInput:Kt,handleCaretMove:Gt,startEditingParam:Ft,replaceEditingRange:Wt,setFocused:u});f.current=qe,si(()=>{let D=ie.current,fe=qe.current;if(!D||!fe)return;let st=()=>{let dt=D.firstElementChild;if(!dt)return;let Zt=dt.getBoundingClientRect(),$t=fe.getBoundingClientRect();Zt.top>=$t.bottom-2?D.setAttribute("data-aia-pill-wrapped",""):D.removeAttribute("data-aia-pill-wrapped")};st();let lt=new ResizeObserver(st);return lt.observe(fe),()=>lt.disconnect()},[ge,_.length,Z,qe]),ri(ae,()=>({focus:Ne,blur:nt,reset:ze,setMode:D=>p.current?.setMode(D),skipActivePill:xe}),[Ne,nt,ze,xe]);let Be=!!ge.length||y.length>0,Ue=it(()=>{if(!Be)return;let D=rt();o(li(D,y,s,{identifiedParams:m,isReady:B,customFields:me})),te&&ze()},[te,Be,y,s,m,B,me,o,ze,rt]);d.current=Ue;let Qt=it(D=>{D.target?.closest("[data-aia-pill]")||Ne()},[Ne]),jt=v==="inline",Yt=v==="dropdown";return ot("div",{ref:j,className:`magicx-aia ${ke.container} ${a??""}`,"data-pill-placement":v,"data-options-position":g,"data-animations":x?"on":"off","data-mode":pi(C),children:[Ee(Xe,{..._t,showPills:Yt,productsLayout:le,productImageFallback:X}),ot("div",{className:ke.inputWrapper,"data-aia-input-wrapper":"",onClick:Qt,children:[ot("div",{className:ke.editorArea,"data-aia-editor":"",children:[Ee("div",{...Ut,className:ke.input,"data-aia-input":""}),jt&&(Z||_.length>0)&&Ee("span",{ref:ie,className:ke.pillListContainer,"data-aia-pill-list-container":"",children:Ee(Fe,{pills:_,activePillIndex:0,activeSelected:ne,onSelectPill:h,loading:Z})})]}),W===null?null:W===void 0?Ee(Et,{disabled:!Be,onClick:Ue}):Ee("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:ke.submitSlot,onClick:D=>{Be&&(D.stopPropagation(),Ue())},children:W})]})]})});export{hi as AIAutocomplete,Xe as AIAutocompleteDropdown,sn as DATE_RANGE_META_END,ln as DATE_RANGE_META_START,dn as DEFAULT_OPTION_COUNT_UNIT,xn as PRODUCT_PATH_PREFIX,An as WEEKDAY_LABELS,on as buildSubmitResult,nn as cellDay,rn as cellIso,cn as dateCellMarks,pn as formatDate,hn as formatDateRange,un as formatOptionCount,mn as isoDate,gn as monthLabel,fn as optionCountLabel,bn as optionHasImage,vn as optionImageSrc,wn as optionLabel,yn as parseDate,kn as parseLooseDate,Cn as parseLooseDateRange,Pn as productFromMatchedItem,Sn as productsFromCustomFields,In as sanitizeOptionIconSvg,En as selectedRangeFor,et as useAIAutocomplete,Tn as visibleDateRange,Rn as withSkippedParams};
|
|
2187
2196
|
//# sourceMappingURL=index.mjs.map
|