@magicx-eng/ai-autocomplete-react 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/index.d.mts +20 -2
- package/dist/index.d.ts +20 -2
- package/dist/index.js +73 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +73 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -335,6 +335,7 @@ function App() {
|
|
|
335
335
|
| `visitorId?` | `string \| (() => string \| undefined)` | — | Stable UUID v4 for this visitor, kept across page loads, or a function returning it. See [Visitor id and submits](#visitor-id-and-submits). |
|
|
336
336
|
| `additionalContext?` | `Record<string, unknown>` | — | Optional user context. Include whatever you know about the user (a profile, preferences, workspace, anything) to personalize suggested parameters and options to them. |
|
|
337
337
|
| `language?` | `string` | browser language | BCP 47 language tag of the shopper (e.g. `"es"`), sent with every suggestion request. Default: the browser language (`navigator.language`), else `"en-US"`. |
|
|
338
|
+
| `productId?` | `string` | — | Your product id. When set, what the dropdown offers before anything is typed is read from a cacheable URL for your product, with no credential, instead of a suggestion request; it falls back to a suggestion request when it cannot be read. |
|
|
338
339
|
| `optionOverrides?` | `OptionOverrides` | — | Supply the options for a parameter yourself, per suggestion type — fixed, computed, or fetched as the user types. See [Option Overrides](#option-overrides). |
|
|
339
340
|
| `maskCompletedText?` | `boolean` | `false` | When `true`, omits completed params' literal text from API requests (for masking PII/sensitive values from the server). |
|
|
340
341
|
| `className?` | `string` | — | CSS class applied to the container. |
|
|
@@ -901,6 +902,12 @@ Legacy `--aia-color-*` variables are still supported as fallbacks.
|
|
|
901
902
|
}
|
|
902
903
|
```
|
|
903
904
|
|
|
905
|
+
### Short screens
|
|
906
|
+
|
|
907
|
+
When the open dropdown would run past the edge of the visible screen — most often a phone with its on-screen keyboard up, or a short browser window — it shrinks to the space that is left and scrolls as one: the options, the product strip and the footer move together, so scrolling down past the last option brings the products into view. The pill bar scrolls with them. Each time the dropdown opens it checks again, and while it is open it follows the keyboard opening and closing and the page scrolling.
|
|
908
|
+
|
|
909
|
+
While fitted, the dropdown root carries `data-aia-fit`, and the height it is capped at is in its `--aia-dropdown-fit-height` property. Every option shows in that one scroll, so the option list's usual limit of visible rows does not apply.
|
|
910
|
+
|
|
904
911
|
### Selector Hooks
|
|
905
912
|
|
|
906
913
|
For styling beyond the CSS variables, target these stable `data-aia-*` attributes (CSS-module class hashes are not part of the public API):
|
|
@@ -918,7 +925,7 @@ For styling beyond the CSS variables, target these stable `data-aia-*` attribute
|
|
|
918
925
|
| `[data-aia-skip]` | The pill bar's trailing "skip" button. Tune via `--aia-skip-font-size` / `--aia-skip-color` / `--aia-skip-color-hover` / `--aia-skip-hover-bg` |
|
|
919
926
|
| `[data-aia-option]` | Each suggestion option |
|
|
920
927
|
| `[data-aia-scroll-arrow]` | The "more below" arrow on the dropdown — carries `data-aia-visible` while shown |
|
|
921
|
-
| `[data-aia-dropdown]` | The dropdown root (listbox). Carries `data-aia-has-products` while the product strip has cards. |
|
|
928
|
+
| `[data-aia-dropdown]` | The dropdown root (listbox). Carries `data-aia-has-products` while the product strip has cards, and `data-aia-fit` while it is fitted to a short screen (see [Short screens](#short-screens)). |
|
|
922
929
|
| `[data-aia-datepicker]` | The calendar, rendered in place of the option list for a date parameter |
|
|
923
930
|
| `[data-aia-date-month]` | The "March 2026" header label |
|
|
924
931
|
| `[data-aia-date-prev]` / `[data-aia-date-next]` | The month arrows |
|
package/dist/index.d.mts
CHANGED
|
@@ -56,6 +56,13 @@ interface AIAutocompleteProps {
|
|
|
56
56
|
* Default: the browser language (`navigator.language`), else `"en-US"`.
|
|
57
57
|
*/
|
|
58
58
|
language?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Your product id. When set, what the dropdown offers before anything is
|
|
61
|
+
* typed is read from a cacheable URL for your product, with no credential,
|
|
62
|
+
* instead of a suggestion request; it falls back to a suggestion request
|
|
63
|
+
* when it cannot be read.
|
|
64
|
+
*/
|
|
65
|
+
productId?: string;
|
|
59
66
|
/**
|
|
60
67
|
* Stable id for this visitor, kept by the host across page loads. Rides on
|
|
61
68
|
* telemetry events so searches can be joined to what the visitor does
|
|
@@ -210,6 +217,13 @@ interface UseAIAutocompleteOptions {
|
|
|
210
217
|
* Default: the browser language (`navigator.language`), else `"en-US"`.
|
|
211
218
|
*/
|
|
212
219
|
language?: string;
|
|
220
|
+
/**
|
|
221
|
+
* Your product id. When set, what the dropdown offers before anything is
|
|
222
|
+
* typed is read from a cacheable URL for your product, with no credential,
|
|
223
|
+
* instead of a suggestion request; it falls back to a suggestion request
|
|
224
|
+
* when it cannot be read.
|
|
225
|
+
*/
|
|
226
|
+
productId?: string;
|
|
213
227
|
/**
|
|
214
228
|
* Stable id for this visitor, kept by the host across page loads. Rides on
|
|
215
229
|
* telemetry events so searches can be joined to what the visitor does
|
|
@@ -525,7 +539,11 @@ interface AIAutocompleteDropdownProps {
|
|
|
525
539
|
skeletonExiting?: boolean;
|
|
526
540
|
/** When the input has no typed text, the footer hint reads "tab to select". Provided by `dropdownProps` from the hook. */
|
|
527
541
|
isInputEmpty?: boolean;
|
|
528
|
-
/**
|
|
542
|
+
/**
|
|
543
|
+
* The widget language, provided by `dropdownProps` from the hook.
|
|
544
|
+
* UI languages: en, es, fr, pt-BR, it, tr, id, pl, de, nl, sv, nb, da, fi, ja, ko, zh-CN and zh-TW.
|
|
545
|
+
* Unsupported languages use English.
|
|
546
|
+
*/
|
|
529
547
|
language?: string;
|
|
530
548
|
/** Product cards to render below the options grid. Provided by `dropdownProps` from the hook. Empty (the default) renders no strip. */
|
|
531
549
|
products?: Product[];
|
|
@@ -593,6 +611,6 @@ declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProp
|
|
|
593
611
|
|
|
594
612
|
declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, onUnhighlight, isOpen, id, className, pills, onPillClick, showPills, onSkip, showSkipButton, showOptionIcons, showOptionImages, showOptionCounts, skipDisabled, activeSelected, isLoading, skeletonExiting, isInputEmpty, language, products, onProductSelect, onProductFocusChange, productsLayout, productImageFallback, formatType, dateView, selectedDateIso, selectedDateRange, dateRangeStart, onPreviousMonth, onNextMonth, optionsPosition, mode, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
|
|
595
613
|
|
|
596
|
-
declare function useAIAutocomplete({ onSubmit, onResult, onError, optionOverrides, maskCompletedText, apiConfig, additionalContext, language, visitorId, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, showOptionIcons, showOptionImages, showOptionCounts, showSkipButton, showProducts, productImageFallback, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, products, mapProducts, onProductSelect, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
614
|
+
declare function useAIAutocomplete({ onSubmit, onResult, onError, optionOverrides, maskCompletedText, apiConfig, additionalContext, language, productId, visitorId, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, showOptionIcons, showOptionImages, showOptionCounts, showSkipButton, showProducts, productImageFallback, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, products, mapProducts, onProductSelect, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
597
615
|
|
|
598
616
|
export { AIAutocomplete, AIAutocompleteDropdown, type AIAutocompleteDropdownProps, type AIAutocompleteHandle, type AIAutocompleteProps, type UseAIAutocompleteOptions, type UseAIAutocompleteReturn, useAIAutocomplete };
|
package/dist/index.d.ts
CHANGED
|
@@ -56,6 +56,13 @@ interface AIAutocompleteProps {
|
|
|
56
56
|
* Default: the browser language (`navigator.language`), else `"en-US"`.
|
|
57
57
|
*/
|
|
58
58
|
language?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Your product id. When set, what the dropdown offers before anything is
|
|
61
|
+
* typed is read from a cacheable URL for your product, with no credential,
|
|
62
|
+
* instead of a suggestion request; it falls back to a suggestion request
|
|
63
|
+
* when it cannot be read.
|
|
64
|
+
*/
|
|
65
|
+
productId?: string;
|
|
59
66
|
/**
|
|
60
67
|
* Stable id for this visitor, kept by the host across page loads. Rides on
|
|
61
68
|
* telemetry events so searches can be joined to what the visitor does
|
|
@@ -210,6 +217,13 @@ interface UseAIAutocompleteOptions {
|
|
|
210
217
|
* Default: the browser language (`navigator.language`), else `"en-US"`.
|
|
211
218
|
*/
|
|
212
219
|
language?: string;
|
|
220
|
+
/**
|
|
221
|
+
* Your product id. When set, what the dropdown offers before anything is
|
|
222
|
+
* typed is read from a cacheable URL for your product, with no credential,
|
|
223
|
+
* instead of a suggestion request; it falls back to a suggestion request
|
|
224
|
+
* when it cannot be read.
|
|
225
|
+
*/
|
|
226
|
+
productId?: string;
|
|
213
227
|
/**
|
|
214
228
|
* Stable id for this visitor, kept by the host across page loads. Rides on
|
|
215
229
|
* telemetry events so searches can be joined to what the visitor does
|
|
@@ -525,7 +539,11 @@ interface AIAutocompleteDropdownProps {
|
|
|
525
539
|
skeletonExiting?: boolean;
|
|
526
540
|
/** When the input has no typed text, the footer hint reads "tab to select". Provided by `dropdownProps` from the hook. */
|
|
527
541
|
isInputEmpty?: boolean;
|
|
528
|
-
/**
|
|
542
|
+
/**
|
|
543
|
+
* The widget language, provided by `dropdownProps` from the hook.
|
|
544
|
+
* UI languages: en, es, fr, pt-BR, it, tr, id, pl, de, nl, sv, nb, da, fi, ja, ko, zh-CN and zh-TW.
|
|
545
|
+
* Unsupported languages use English.
|
|
546
|
+
*/
|
|
529
547
|
language?: string;
|
|
530
548
|
/** Product cards to render below the options grid. Provided by `dropdownProps` from the hook. Empty (the default) renders no strip. */
|
|
531
549
|
products?: Product[];
|
|
@@ -593,6 +611,6 @@ declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProp
|
|
|
593
611
|
|
|
594
612
|
declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, onUnhighlight, isOpen, id, className, pills, onPillClick, showPills, onSkip, showSkipButton, showOptionIcons, showOptionImages, showOptionCounts, skipDisabled, activeSelected, isLoading, skeletonExiting, isInputEmpty, language, products, onProductSelect, onProductFocusChange, productsLayout, productImageFallback, formatType, dateView, selectedDateIso, selectedDateRange, dateRangeStart, onPreviousMonth, onNextMonth, optionsPosition, mode, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
|
|
595
613
|
|
|
596
|
-
declare function useAIAutocomplete({ onSubmit, onResult, onError, optionOverrides, maskCompletedText, apiConfig, additionalContext, language, visitorId, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, showOptionIcons, showOptionImages, showOptionCounts, showSkipButton, showProducts, productImageFallback, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, products, mapProducts, onProductSelect, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
614
|
+
declare function useAIAutocomplete({ onSubmit, onResult, onError, optionOverrides, maskCompletedText, apiConfig, additionalContext, language, productId, visitorId, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, showOptionIcons, showOptionImages, showOptionCounts, showSkipButton, showProducts, productImageFallback, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, products, mapProducts, onProductSelect, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
597
615
|
|
|
598
616
|
export { AIAutocomplete, AIAutocompleteDropdown, type AIAutocompleteDropdownProps, type AIAutocompleteHandle, type AIAutocompleteProps, type UseAIAutocompleteOptions, type UseAIAutocompleteReturn, useAIAutocomplete };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var ft=Object.defineProperty;var na=Object.getOwnPropertyDescriptor;var ra=Object.getOwnPropertyNames;var sa=Object.prototype.hasOwnProperty;var la=(e,a)=>{for(var t in a)ft(e,t,{get:a[t],enumerable:!0})},da=(e,a,t,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of ra(a))!sa.call(e,o)&&o!==t&&ft(e,o,{get:()=>a[o],enumerable:!(i=na(a,o))||i.enumerable});return e};var ca=e=>da(ft({},"__esModule",{value:!0}),e);var Sa={};la(Sa,{AIAutocomplete:()=>Vt,AIAutocompleteDropdown:()=>lt,DATE_RANGE_META_END:()=>s.DATE_RANGE_META_END,DATE_RANGE_META_START:()=>s.DATE_RANGE_META_START,DEFAULT_OPTION_COUNT_UNIT:()=>s.DEFAULT_OPTION_COUNT_UNIT,PRODUCT_PATH_PREFIX:()=>s.PRODUCT_PATH_PREFIX,WEEKDAY_LABELS:()=>s.WEEKDAY_LABELS,buildSubmitResult:()=>s.buildSubmitResult,cellDay:()=>s.cellDay,cellIso:()=>s.cellIso,dateCellMarks:()=>s.dateCellMarks,formatDate:()=>s.formatDate,formatDateRange:()=>s.formatDateRange,formatOptionCount:()=>s.formatOptionCount,isoDate:()=>s.isoDate,monthLabel:()=>s.monthLabel,optionCountLabel:()=>s.optionCountLabel,optionHasImage:()=>s.optionHasImage,optionImageSources:()=>s.optionImageSources,optionImageSrc:()=>s.optionImageSrc,optionLabel:()=>s.optionLabel,parseDate:()=>s.parseDate,parseLooseDate:()=>s.parseLooseDate,parseLooseDateRange:()=>s.parseLooseDateRange,productFromMatchedItem:()=>s.productFromMatchedItem,productImageSources:()=>s.productImageSources,productsFromCustomFields:()=>s.productsFromCustomFields,sanitizeOptionIconSvg:()=>s.sanitizeOptionIconSvg,selectedRangeFor:()=>s.selectedRangeFor,useAIAutocomplete:()=>ct,visibleDateRange:()=>s.visibleDateRange,withSkippedParams:()=>s.withSkippedParams});module.exports=ca(Sa);var s=require("@magicx-eng/ai-autocomplete-vanilla");var N=require("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 @@
|
|
|
262
262
|
opacity: 0;
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
-
`,document.head.appendChild(e)}var We={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"};var
|
|
265
|
+
`,document.head.appendChild(e)}var We={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"};var me=require("@magicx-eng/ai-autocomplete-vanilla"),q=require("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
|
*
|
|
@@ -735,6 +735,59 @@
|
|
|
735
735
|
background: var(--aia-surface, #ffffff);
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
|
+
|
|
739
|
+
/* Fitted to the visible viewport. When the open panel would run past the
|
|
740
|
+
screen's edge (a phone's keyboard, a short window), the core's viewportFit
|
|
741
|
+
controller sets data-aia-fit and caps the panel at the space that is left
|
|
742
|
+
(--aia-dropdown-fit-height). The section stack becomes the one scroll box:
|
|
743
|
+
the options grid drops its own row cap, so options, product strip and
|
|
744
|
+
footer scroll together and the strip is reached by scrolling past the last
|
|
745
|
+
option instead of being cut off below it. Nothing slides under the footer
|
|
746
|
+
any more, so its reserved band goes, as it does with a product strip.
|
|
747
|
+
Declared last: the two-attribute selector ties the unwrapped
|
|
748
|
+
above-position rule some copies carry, and must win it on source order. */
|
|
749
|
+
[data-aia-dropdown][data-aia-fit] {
|
|
750
|
+
max-height: var(--aia-dropdown-fit-height, none);
|
|
751
|
+
--aia-grid-scroll-bottom: 0px;
|
|
752
|
+
--aia-grid-overlap-bottom: 0px;
|
|
753
|
+
--aia-grid-scroll-top: 0px;
|
|
754
|
+
--aia-grid-overlap-top: 0px;
|
|
755
|
+
--aia-footer-fade-lead: 0px;
|
|
756
|
+
--aia-footer-row-min-height: 0px;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
/* The stack is the panel's flex child, so it shrinks to the cap and scrolls.
|
|
760
|
+
It reaches 6px into the panel's side padding on each side: the product row
|
|
761
|
+
hangs that far outside the stack (its cards' hover fill), and a scroll box
|
|
762
|
+
clips sideways as well as down. The scrollbar is hidden, as the grid's is. */
|
|
763
|
+
[data-aia-dropdown][data-aia-fit] > .aia-stack {
|
|
764
|
+
flex: 1 1 auto;
|
|
765
|
+
min-height: 0;
|
|
766
|
+
margin-inline: -6px;
|
|
767
|
+
padding-inline: 6px;
|
|
768
|
+
overflow-x: hidden;
|
|
769
|
+
overflow-y: auto;
|
|
770
|
+
overscroll-behavior: contain;
|
|
771
|
+
scrollbar-width: none;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
[data-aia-dropdown][data-aia-fit] > .aia-stack::-webkit-scrollbar {
|
|
775
|
+
display: none;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/* Sections keep their own height and overflow the stack instead. Flex items
|
|
779
|
+
shrink by default, and one that clips (the pill bar is overflow: hidden)
|
|
780
|
+
has no content floor to stop it \u2014 it collapsed to nothing. */
|
|
781
|
+
[data-aia-dropdown][data-aia-fit] > .aia-stack > * {
|
|
782
|
+
flex-shrink: 0;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
/* The grid shows every row and leaves the scrolling to the stack. Not a
|
|
786
|
+
scroll box at all, so a swipe that starts on an option scrolls the panel. */
|
|
787
|
+
[data-aia-dropdown][data-aia-fit] .aia-grid[data-scroll] {
|
|
788
|
+
max-height: none;
|
|
789
|
+
overflow: visible;
|
|
790
|
+
}
|
|
738
791
|
`,document.head.appendChild(e)}if(typeof document<"u"&&!document.getElementById("ac-style-3819c762")){let e=document.createElement("style");e.id="ac-style-3819c762",e.textContent=`.aia-dropdown-yz2KC {
|
|
739
792
|
position: absolute;
|
|
740
793
|
left: 0;
|
|
@@ -1045,7 +1098,7 @@
|
|
|
1045
1098
|
opacity: 0.25;
|
|
1046
1099
|
}
|
|
1047
1100
|
}
|
|
1048
|
-
`,document.head.appendChild(e)}var xe={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"};var M=require("@magicx-eng/ai-autocomplete-vanilla"),
|
|
1101
|
+
`,document.head.appendChild(e)}var xe={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"};var M=require("@magicx-eng/ai-autocomplete-vanilla"),At=require("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) ---
|
|
1049
1102
|
|
|
1050
1103
|
One of three hand-maintained copies (vanilla styles.css, this file, Angular's
|
|
1051
1104
|
date-grid.component.css). Only the class-naming layer differs \u2014 the
|
|
@@ -1208,7 +1261,7 @@
|
|
|
1208
1261
|
opacity: 0.8;
|
|
1209
1262
|
background: rgba(var(--aia-streak-rgb, 255, 255, 255), 0.06);
|
|
1210
1263
|
}
|
|
1211
|
-
`,document.head.appendChild(e)}var
|
|
1264
|
+
`,document.head.appendChild(e)}var L={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"};var J=require("react/jsx-runtime"),pa=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function Rt({options:e,activeIndex:a,listboxId:t,view:i,selection:o,onSelect:r,onHighlight:n,onUnhighlight:h,onPreviousMonth:d,onNextMonth:x}){let E=(0,M.isoDate)(new Date),I=(0,M.visibleDateRange)({pendingStart:o.rangeStart,highlightedIso:(0,M.cellIso)(e[a]),selected:o.selectedRange});return(0,J.jsxs)("div",{className:L.datepicker,"data-aia-datepicker":"",children:[(0,J.jsxs)("div",{className:L.header,children:[(0,J.jsx)("button",{type:"button",tabIndex:-1,className:L.nav,"data-aia-date-prev":"","aria-label":"Previous month",onMouseDown:m=>m.preventDefault(),onClick:d,children:"\u2039"}),(0,J.jsx)("span",{className:L.month,"data-aia-date-month":"","aria-live":"polite",children:(0,M.monthLabel)(i)}),(0,J.jsx)("button",{type:"button",tabIndex:-1,className:L.nav,"data-aia-date-next":"","aria-label":"Next month",onMouseDown:m=>m.preventDefault(),onClick:x,children:"\u203A"})]}),(0,J.jsx)("div",{className:L.weekdays,"aria-hidden":"true",children:M.WEEKDAY_LABELS.map((m,w)=>(0,J.jsx)("span",{className:L.weekday,children:m},pa[w]))}),(0,J.jsx)("div",{className:L.grid,"data-aia-date-grid":"",children:e.map((m,w)=>(0,J.jsx)(ha,{option:m,id:`${t}-option-${w}`,index:w,isHighlighted:w===a&&m.is_tappable,isToday:(0,M.cellIso)(m)===E,isPast:(0,M.cellIso)(m)!=null&&(0,M.cellIso)(m)<E,marks:(0,M.dateCellMarks)((0,M.cellIso)(m),{selectedIso:o.selectedIso,range:I}),onSelect:r,onHighlight:n,onUnhighlight:h},(0,M.cellIso)(m)??`pad-${w}`))})]})}function ha({option:e,id:a,index:t,isHighlighted:i,isToday:o,isPast:r,marks:n,onSelect:h,onHighlight:d,onUnhighlight:x}){let[E,I]=(0,At.useState)(!1),m=(0,M.cellDay)(e);if(m==null)return(0,J.jsx)("div",{id:a,role:"option","data-aia-option":"","data-aia-date-cell":"","aria-hidden":"true","aria-selected":!1,tabIndex:-1,className:`${L.cell} ${L.blank}`});let w=()=>{I(!0),h(e),setTimeout(()=>I(!1),170)},T=[L.cell,L.day,r?L.past:"",i?L.highlighted:"",o?L.today:"",n.inRange?L.inRange:"",n.selected?L.selected:"",E?L.pressed:""].filter(Boolean).join(" ");return(0,J.jsx)("div",{id:a,role:"option","data-aia-option":"","data-aia-date-cell":"","aria-selected":i,"aria-label":e.text,tabIndex:0,className:T,onClick:w,onKeyDown:F=>{(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),w())},onMouseEnter:()=>d(t),onMouseLeave:x?()=>x(t):void 0,children:(0,J.jsx)("span",{className:L.number,children:m})})}var Me=require("@magicx-eng/ai-autocomplete-vanilla"),nt=require("react");if(typeof document<"u"&&!document.getElementById("ac-style-5259a217")){let e=document.createElement("style");e.id="ac-style-5259a217",e.textContent=`.aia-cluster {
|
|
1212
1265
|
display: flex;
|
|
1213
1266
|
flex-wrap: wrap;
|
|
1214
1267
|
gap: var(--aia-cluster-gap, 0.5rem);
|
|
@@ -1248,7 +1301,7 @@
|
|
|
1248
1301
|
.aia-cluster[data-justify="around"] {
|
|
1249
1302
|
justify-content: space-around;
|
|
1250
1303
|
}
|
|
1251
|
-
`,document.head.appendChild(e)}var
|
|
1304
|
+
`,document.head.appendChild(e)}var bt=require("react/jsx-runtime");function $e({gap:e,align:a="center",justify:t="start",noWrap:i=!1,inline:o=!1,className:r,children:n,...h}){let d=e?{"--aia-cluster-gap":e}:void 0,x={className:r?`aia-cluster ${r}`:"aia-cluster","data-align":a,"data-justify":t,"data-nowrap":i||void 0,"data-inline":o||void 0,style:d,...h};return o?(0,bt.jsx)("span",{...x,children:n}):(0,bt.jsx)("div",{...x,children:n})}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
|
|
1252
1305
|
dropdown's rounded edges. The top inset (--aia-footer-gap) adds breathing
|
|
1253
1306
|
room above the hint/branding row so the footer doesn't butt against the last
|
|
1254
1307
|
option row \u2014 additive to the dropdown's 8px section gap. */
|
|
@@ -1395,7 +1448,7 @@
|
|
|
1395
1448
|
justify-content: flex-end;
|
|
1396
1449
|
}
|
|
1397
1450
|
}
|
|
1398
|
-
`,document.head.appendChild(e)}var ye={footer:"aia-footer-qQQ7x",row:"aia-row-BgZ6Q",hintGroup:"aia-hintGroup-ZzbPf",brandLink:"aia-brandLink-r4f3R",key:"aia-key-Bz1H-",hint:"aia-hint-GKEOH",brand:"aia-brand-Al-lR",badge:"aia-badge-Fk9vg"};var
|
|
1451
|
+
`,document.head.appendChild(e)}var ye={footer:"aia-footer-qQQ7x",row:"aia-row-BgZ6Q",hintGroup:"aia-hintGroup-ZzbPf",brandLink:"aia-brandLink-r4f3R",key:"aia-key-Bz1H-",hint:"aia-hint-GKEOH",brand:"aia-brand-Al-lR",badge:"aia-badge-Fk9vg"};var de=require("react/jsx-runtime");function Ot({isOptionHighlighted:e=!1,isInputEmpty:a=!1,strings:t=(0,Me.uiStringsFor)()}){let{key:i,hint:o}=(0,Me.getFooterHint)(e,a,t),[r,n]=(0,nt.useState)(Me.ATTRIBUTION_URL);return(0,nt.useEffect)(()=>{n((0,Me.buildAttributionUrl)())},[]),(0,de.jsx)("footer",{className:ye.footer,"data-aia-footer":"",children:(0,de.jsxs)($e,{justify:"between",noWrap:!0,className:ye.row,children:[(0,de.jsxs)($e,{gap:"5px",className:ye.hintGroup,children:[(0,de.jsx)("kbd",{className:ye.key,children:i}),(0,de.jsx)("span",{className:ye.hint,children:o})]}),(0,de.jsxs)("a",{className:ye.brandLink,href:r,target:"_blank",rel:"noopener noreferrer",children:[(0,de.jsx)("span",{className:ye.brand,children:"AI"}),(0,de.jsx)("span",{className:ye.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,
|
|
1399
1452
|
no outline. ~28px via 6px padding + 14px text + the 1px border (border-box).
|
|
1400
1453
|
The border is kept as a 1px transparent line so the box stays the same size
|
|
1401
1454
|
as it was when the outline was dashed. */
|
|
@@ -1471,7 +1524,7 @@
|
|
|
1471
1524
|
opacity: 0;
|
|
1472
1525
|
}
|
|
1473
1526
|
}
|
|
1474
|
-
`,document.head.appendChild(e)}var
|
|
1527
|
+
`,document.head.appendChild(e)}var Ne={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"};var Lt=require("react/jsx-runtime"),wt={selected:1,first:.7,next:.4,last:.2};function Dt({label:e,state:a,rounded:t,loading:i,onClick:o}){let r=[Ne.pill,t?Ne.rounded:"",i?Ne.skeleton:""].filter(Boolean).join(" ");return(0,Lt.jsx)("button",{type:"button","data-aia-pill":"","data-aia-loading":i?"":void 0,tabIndex:-1,contentEditable:!1,suppressContentEditableWarning:!0,className:r,style:{opacity:wt[a]},onMouseDown:n=>n.preventDefault(),onClick:i?void 0:o,disabled:i,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 {
|
|
1475
1528
|
position: relative;
|
|
1476
1529
|
z-index: 1;
|
|
1477
1530
|
pointer-events: auto;
|
|
@@ -1481,7 +1534,7 @@
|
|
|
1481
1534
|
align-items: center;
|
|
1482
1535
|
vertical-align: middle;
|
|
1483
1536
|
}
|
|
1484
|
-
`,document.head.appendChild(e)}var vt={list:"aia-list-qvLqO"};var
|
|
1537
|
+
`,document.head.appendChild(e)}var vt={list:"aia-list-qvLqO"};var Xe=require("react/jsx-runtime"),ua=[125,69];function zt(e){return e===0?"first":e===1?"next":"last"}function rt({pills:e,activePillIndex:a,onSelectPill:t,activeSelected:i,rounded:o,loading:r}){return r&&e.length===0?(0,Xe.jsx)("span",{className:vt.list,"data-aia-pill-list-loading":"",children:ua.map((n,h)=>(0,Xe.jsx)("span",{"data-aia-pill-skeleton":"",className:`${Ne.pill} ${o?Ne.rounded:""} ${Ne.skeleton}`,style:{width:n,opacity:wt[zt(h)]}},`skel-${n}`))}):(0,Xe.jsx)("span",{className:vt.list,"data-aia-pill-list-loading":r?"":void 0,children:e.map((n,h)=>{let d=!!i&&h===a;return(0,Xe.jsx)(Dt,{label:n.text,state:d?"selected":zt(h),selected:d,rounded:o,loading:r,onClick:()=>t(h)},`${n.parameter}-${n.text}`)})})}var ce=require("@magicx-eng/ai-autocomplete-vanilla"),qe=require("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
|
|
1485
1538
|
(packages/vanilla/src/styles.css). Same tokens, same defaults, so a consumer
|
|
1486
1539
|
theming one package sees the same result in the other.
|
|
1487
1540
|
|
|
@@ -1765,7 +1818,7 @@
|
|
|
1765
1818
|
letter-spacing: 0.02em;
|
|
1766
1819
|
text-align: center;
|
|
1767
1820
|
}
|
|
1768
|
-
`,document.head.appendChild(e)}var
|
|
1821
|
+
`,document.head.appendChild(e)}var oe={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",badge:"aia-badge-j9Hcd"};var Z=require("react/jsx-runtime");function Mt({products:e,listboxId:a,onSelect:t,onFocusChange:i,focusable:o=!0,layout:r="row",imageFallback:n="image",strings:h=(0,ce.uiStringsFor)()}){let d=e.length>0,x=(0,qe.useRef)(null);if((0,qe.useEffect)(()=>{let I=x.current;if(!(!d||!I))return(0,ce.attachProductRowWheel)(I)},[d]),!d)return null;let E=`${a}-products-label`;return(0,Z.jsxs)("section",{className:oe.section,"data-aia-products":"","data-aia-products-layout":r,role:"group","aria-labelledby":E,children:[(0,Z.jsx)("div",{className:oe.label,id:E,"data-aia-products-label":"",children:h.products}),(0,Z.jsx)("div",{ref:x,className:oe.row,"data-aia-products-row":"",children:e.map((I,m)=>(0,Z.jsx)(ga,{product:I,id:`${a}-product-${m}`,onSelect:t,onFocusChange:i,focusable:o,imageFallback:n,soldOut:h.soldOut},I.id))})]})}function ga({product:e,id:a,onSelect:t,onFocusChange:i,focusable:o,imageFallback:r,soldOut:n}){let h=d=>{d.metaKey||d.ctrlKey||d.shiftKey||d.altKey||d.button!==0||(d.preventDefault(),t(e))};return(0,Z.jsxs)("a",{id:a,className:oe.card,"data-aia-product":"","data-aia-product-sold-out":e.available===!1?"":void 0,role:"option","aria-selected":!1,href:e.url,tabIndex:o?0:-1,onClick:h,onKeyDown:d=>{d.key!=="Enter"&&d.key!==" "||(d.preventDefault(),t(e))},onFocus:()=>i?.(!0),onBlur:d=>{d.relatedTarget?.closest("[data-aia-dropdown]")||i?.(!1)},children:[(0,Z.jsx)(ma,{sources:(0,ce.productImageSources)(e.imageUrl),title:e.title,fallback:r},(0,ce.productImageSrc)(e.imageUrl)??""),(0,Z.jsxs)("span",{className:oe.body,children:[e.vendor?(0,Z.jsx)("span",{className:oe.vendor,children:e.vendor}):null,(0,Z.jsx)("span",{className:oe.title,children:e.title}),e.price?(0,Z.jsx)("span",{className:oe.price,children:e.price}):null,e.available===!1?(0,Z.jsx)("span",{className:oe.badge,children:n}):null]})]})}function ma({sources:e,title:a,fallback:t}){let[i,o]=(0,qe.useState)(0),r=e[i],n=!!r,h=!n&&t==="initial";return(0,Z.jsxs)("span",{className:oe.media,"aria-hidden":"true","data-aia-product-placeholder":!n&&!h?"":void 0,"data-aia-product-initial":h?"":void 0,children:[n?(0,Z.jsx)("img",{className:oe.image,src:r,alt:"",loading:"lazy",decoding:"async",onError:()=>o(d=>d+1)}):null,h?(0,ce.productInitial)(a):null]})}var V=require("@magicx-eng/ai-autocomplete-vanilla"),ge=require("react");var Nt=require("@magicx-eng/ai-autocomplete-vanilla"),st=require("react");if(typeof document<"u"&&!document.getElementById("ac-style-948e58da")){let e=document.createElement("style");e.id="ac-style-948e58da",e.textContent=`.aia-grid {
|
|
1769
1822
|
display: grid;
|
|
1770
1823
|
grid-template-columns: repeat(
|
|
1771
1824
|
auto-fit,
|
|
@@ -1801,7 +1854,7 @@
|
|
|
1801
1854
|
.aia-grid[data-scroll]::-webkit-scrollbar {
|
|
1802
1855
|
display: none;
|
|
1803
1856
|
}
|
|
1804
|
-
`,document.head.appendChild(e)}var Bt=require("react/jsx-runtime");function
|
|
1857
|
+
`,document.head.appendChild(e)}var Bt=require("react/jsx-runtime");function Ft({min:e="16rem",max:a,gap:t,scroll:i=!1,maxHeight:o,scrollResetKey:r,cols:n,template:h,innerRef:d,className:x,children:E,...I}){let m=(0,st.useRef)(null);(0,st.useLayoutEffect)(()=>{if(r===void 0)return;let T=m.current;T&&(T.scrollTop=0)},[r]);let w={"--aia-grid-min":e};return a&&(w["--aia-grid-max"]=a),t&&(w["--aia-grid-gap"]=t),o&&(w["--aia-grid-max-height"]=o),n&&(w.gridTemplateColumns=(0,Nt.optionsGridTemplateColumns)(n)),h&&(w.gridTemplateColumns=h),(0,Bt.jsx)("div",{ref:T=>{m.current=T,d?.(T)},className:x?`aia-grid ${x}`:"aia-grid","data-scroll":i||void 0,style:w,...I,children:E})}var ue=require("@magicx-eng/ai-autocomplete-vanilla"),he=require("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 {
|
|
1805
1858
|
position: relative;
|
|
1806
1859
|
/* Clip, not visible: the entrance rise below runs on the inner content,
|
|
1807
1860
|
and a transformed box extends its scroll container's scrollable area.
|
|
@@ -1935,6 +1988,13 @@
|
|
|
1935
1988
|
mask-image: linear-gradient(to bottom, rgb(0 0 0), rgb(0 0 0 / 0.6));
|
|
1936
1989
|
}
|
|
1937
1990
|
|
|
1991
|
+
/* A panel fitted to the viewport (data-aia-fit, see appearance.css) shows
|
|
1992
|
+
every row, so the row the hint picked is not the last one on screen. */
|
|
1993
|
+
[data-aia-fit] .aia-scrollHint-xKXPt .aia-content-T-Qba {
|
|
1994
|
+
-webkit-mask-image: none;
|
|
1995
|
+
mask-image: none;
|
|
1996
|
+
}
|
|
1997
|
+
|
|
1938
1998
|
/* Loading state \u2014 preserve the row's exact dimensions. The content stays an
|
|
1939
1999
|
inline span so the line box and padding match the non-loading state byte
|
|
1940
2000
|
for byte. Just hide the text and apply a background as a skeleton bar; the
|
|
@@ -2198,7 +2258,7 @@
|
|
|
2198
2258
|
opacity: 0;
|
|
2199
2259
|
}
|
|
2200
2260
|
}
|
|
2201
|
-
`,document.head.appendChild(e)}var ee={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"};var
|
|
2261
|
+
`,document.head.appendChild(e)}var ee={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"};var pe=require("react/jsx-runtime");function Ht({option:e,isHighlighted:a,onSelect:t,onHighlight:i,onUnhighlight:o,id:r,loading:n,showIcon:h=!0,showImage:d=!0,showCount:x=!0,scrollHint:E,enterDelayMs:I=0}){let[m]=(0,he.useState)(I),[w,T]=(0,he.useState)(!1),F=d?(0,ue.optionImageSources)(e.image_url):[],B=F[0]??null,[j,z]=(0,he.useState)([]),A=F.find(G=>!j.includes(G))??null,U=(0,he.useMemo)(()=>!B&&h&&e.icon_svg?(0,ue.sanitizeOptionIconSvg)(e.icon_svg):null,[B,h,e.icon_svg]),H=x?(0,ue.formatOptionCount)(e.item_count):null,P=(0,he.useRef)(void 0);(0,he.useEffect)(()=>()=>clearTimeout(P.current),[]);let K=()=>{n||!e.is_tappable||w||(T(!0),t(e),clearTimeout(P.current),P.current=setTimeout(()=>T(!1),170))},Q=[ee.item,a&&!n?ee.highlighted:"",e.is_tappable?ee.tappable:ee.nonTappable,w?ee.pressed:"",E?ee.scrollHint:""].filter(Boolean).join(" ");return(0,pe.jsx)("div",{id:r,role:"option","data-aia-option":"","data-aia-loading":n?"":void 0,"data-aia-icon":U&&e.icon?e.icon:void 0,"data-aia-image":B?"":void 0,"data-aia-item-count":H!==null?e.item_count:void 0,"aria-selected":a,className:Q,style:{[ue.OPTION_ENTER_DELAY_VAR]:`${m}ms`},tabIndex:n||!e.is_tappable?-1:0,onClick:K,onKeyDown:G=>{!n&&e.is_tappable&&(G.key==="Enter"||G.key===" ")&&(G.preventDefault(),K())},onMouseEnter:!n&&e.is_tappable?i:void 0,onMouseLeave:o,children:(0,pe.jsxs)("span",{className:ee.content,children:[B&&(0,pe.jsx)("span",{className:`${ee.image} magicx-aia-option-image`,"aria-hidden":"true",children:(0,pe.jsx)("img",{src:A??B,alt:"",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer",draggable:!1,hidden:A===null,onError:()=>{A!==null&&z(G=>[...G,A])}})}),U&&(0,pe.jsx)("span",{className:`${ee.icon} magicx-aia-option-icon`,"aria-hidden":"true",dangerouslySetInnerHTML:{__html:U}}),(0,pe.jsx)("span",{className:ee.text,children:(0,ue.optionLabel)(e)}),e.tag&&(0,pe.jsx)("span",{className:ee.tag,children:e.tag}),H!==null&&(0,pe.jsx)("span",{className:`${ee.count} magicx-aia-option-count`,children:H})]})})}var xt=require("react/jsx-runtime");function fa(){let[e,a]=(0,ge.useState)(V.isOptionsGridMobileViewport);return(0,ge.useEffect)(()=>{if(typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(V.OPTIONS_GRID_MOBILE_QUERY),i=()=>a(t.matches);return i(),t.addEventListener("change",i),()=>t.removeEventListener("change",i)},[]),e}function Kt({options:e,activeIndex:a,onSelect:t,onHighlight:i,onUnhighlight:o,listboxId:r,loading:n,groupKey:h="",optionsPosition:d="below",showIcons:x=!0,showImages:E=!0,showCounts:I=!0}){let m=fa(),w=(0,ge.useRef)(null),[T,F]=(0,ge.useState)(null),B=(0,ge.useRef)(null);(0,ge.useLayoutEffect)(()=>{if(n&&(0,V.sameOptionRows)(B.current,e))return;B.current=n?null:e;let z=w.current,U=z&&!n&&(0,V.needsOptionsGridMeasurement)(e.length,m)?(0,V.measureOptionsGrid)(z):null;F(U?(0,V.planOptionsGrid)(e.length,m,U.rowWidths,U.gridWidth):null)},[e,m,n]);let j=T??(0,V.planOptionsGrid)(e.length,m,null,null);return(0,xt.jsx)(Ft,{min:"250px",max:"1fr",gap:"0",scroll:!0,scrollResetKey:h,template:j.template,maxHeight:j.maxHeight,innerRef:z=>{w.current=z},"data-aia-group":h,children:e.map((z,A)=>(0,xt.jsx)(Ht,{option:z,isHighlighted:A===a,onSelect:t,onHighlight:()=>i(A),onUnhighlight:o?()=>o(A):void 0,id:`${r}-option-${A}`,loading:n,showIcon:x,showImage:E,showCount:I,scrollHint:!n&&j.scrollHintIndices.includes(A),enterDelayMs:n?0:(0,V.optionEnterDelayMs)(A,j.cols,e.length,d)},`${h}\0${z.text}`))})}if(typeof document<"u"&&!document.getElementById("ac-style-8414cd5f")){let e=document.createElement("style");e.id="ac-style-8414cd5f",e.textContent=`.aia-stack {
|
|
2202
2262
|
display: flex;
|
|
2203
2263
|
flex-direction: column;
|
|
2204
2264
|
gap: var(--aia-stack-space, 0.5rem);
|
|
@@ -2213,7 +2273,7 @@
|
|
|
2213
2273
|
align-items: end;
|
|
2214
2274
|
}
|
|
2215
2275
|
/* data-align="stretch" is the flex default \u2014 no rule needed. */
|
|
2216
|
-
`,document.head.appendChild(e)}var
|
|
2276
|
+
`,document.head.appendChild(e)}var Wt=require("react/jsx-runtime");function Gt({space:e,align:a="stretch",className:t,children:i,...o}){let r=e?{"--aia-stack-space":e}:void 0;return(0,Wt.jsx)("div",{className:t?`aia-stack ${t}`:"aia-stack","data-align":a,style:r,...o,children:i})}var W=require("react/jsx-runtime"),ba=[159,119,164],wa=()=>{},_t=()=>{};function va(e){let a=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches,[t,i]=(0,q.useState)(a);if((0,q.useEffect)(()=>{if(e!=="auto"||typeof window>"u"||typeof window.matchMedia!="function")return;let o=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>i(o.matches);return o.addEventListener("change",r),()=>o.removeEventListener("change",r)},[e]),e!==void 0)return e==="auto"?t?"dark":"light":e}function xa(e,a){let t=(0,q.useRef)(null);(0,q.useEffect)(()=>{let i=e.current,o=a.current;if(!i||!o)return;let r=i.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:(0,me.attachScrollArrow)({dropdown:i,grid:r,button:o})};return}t.current?.controller.update()}),(0,q.useEffect)(()=>()=>{t.current?.controller.destroy(),t.current=null},[])}function ya(e,a){let t=(0,q.useRef)(a);t.current=a;let i=(0,q.useRef)(null);(0,q.useEffect)(()=>{let o=e.current;if(o){if(!i.current){i.current=(0,me.attachViewportFit)({dropdown:o,isOpen:()=>t.current});return}i.current.update()}}),(0,q.useEffect)(()=>()=>{i.current?.destroy(),i.current=null},[])}function lt({suggestions:e,activeIndex:a,onSelect:t,onHighlight:i,onUnhighlight:o,isOpen:r,id:n,className:h,pills:d,onPillClick:x,showPills:E=!0,onSkip:I,showSkipButton:m=!0,showOptionIcons:w=!0,showOptionImages:T=!0,showOptionCounts:F=!0,skipDisabled:B=!1,activeSelected:j=!1,isLoading:z=!1,skeletonExiting:A=!1,isInputEmpty:U=!1,language:H,products:P,onProductSelect:K,onProductFocusChange:Q,productsLayout:G="row",productImageFallback:fe="image",formatType:ke="options",dateView:$=null,selectedDateIso:Ce=null,selectedDateRange:Be=null,dateRangeStart:Pe=null,onPreviousMonth:g,onNextMonth:He,optionsPosition:be="below",mode:Se}){let we=va(Se),Ie=we!==void 0,te=(0,q.useRef)(null),ne=(0,q.useRef)(null);xa(te,ne),(0,q.useEffect)(()=>{if(te.current)return(0,me.containScroll)(te.current)},[]);let l=e[0]?.options??[],f=!!(d&&d.length>0&&x),b=!!(P&&P.length>0),v=r&&(l.length>0||E&&f||z||b);ya(te,v);let k={suggestions:e,activeIndex:a,pills:d,showPills:E,showSkipButton:m,showOptionIcons:w,showOptionImages:T,showOptionCounts:F,skipDisabled:B,activeSelected:j,isLoading:z,skeletonExiting:A,isInputEmpty:U,products:P,formatType:ke,dateView:$,selectedDateIso:Ce,selectedDateRange:Be,dateRangeStart:Pe},R=(0,q.useRef)(k);v&&(R.current=k);let p=v?k:R.current,Y=(0,me.uiStringsFor)(H),ae=p.suggestions[0],ie=ae?.options??[],Ee=p.activeIndex>=0&&!!ie[p.activeIndex]?.is_tappable,Te=!!(p.pills&&p.pills.length>0&&x),Ae=p.showPills&&Te,Re=p.showPills&&!Te&&p.isLoading,Oe=Ae||Re,y=Te&&p.showSkipButton&&!p.isInputEmpty&&!!I,De=p.pills?.[0]?.text,Le=(0,me.isCalendarFormat)(p.formatType)&&p.dateView!=null,ve=ie.length>0&&!Le,u=ie.length>0&&Le&&!p.isLoading,_e=p.isLoading&&!ve&&!u,Ue=p.products??[];return(0,W.jsxs)("div",{ref:te,id:n,role:"listbox","data-aia-dropdown":"","data-options-position":be,"data-mode":we,"data-aia-loading":p.isLoading?"":void 0,"data-aia-skeleton-exiting":p.skeletonExiting?"":void 0,"data-aia-has-products":Ue.length>0?"":void 0,className:`${Ie?"magicx-aia ":""}${xe.dropdown} ${v?xe.visible:""} ${h??""}`,onMouseDown:se=>se.preventDefault(),children:[(0,W.jsxs)(Gt,{space:"8px",children:[(Oe||y)&&(0,W.jsxs)($e,{noWrap:!0,className:xe.pillBar,"data-aia-pillbar":"",children:[Oe&&(0,W.jsx)("span",{className:xe.pillScroll,"data-aia-pill-scroll":"",children:(0,W.jsx)(rt,{pills:p.pills??[],activePillIndex:0,activeSelected:p.activeSelected,onSelectPill:x??(()=>{}),rounded:!0,loading:p.isLoading})}),y&&(0,W.jsx)("button",{type:"button",tabIndex:-1,className:xe.skip,"data-aia-skip":"",disabled:p.isLoading||p.skipDisabled,"aria-label":De?`${Y.skipLabel} ${De}`:Y.skipLabel,onClick:I,children:Y.skip})]}),ve&&(0,W.jsx)(Kt,{options:ie,activeIndex:p.activeIndex,onSelect:t,onHighlight:i,onUnhighlight:o,listboxId:n,loading:p.isLoading,groupKey:ae?`${ae.parameter} ${ae.text}`:"",optionsPosition:be,showIcons:p.showOptionIcons,showImages:p.showOptionImages,showCounts:p.showOptionCounts}),u&&p.dateView&&(0,W.jsx)(Rt,{options:ie,activeIndex:p.activeIndex,listboxId:n,view:p.dateView,selection:{selectedIso:p.selectedDateIso??null,selectedRange:p.selectedDateRange??null,rangeStart:p.dateRangeStart??null},onSelect:t,onHighlight:i,onUnhighlight:o,onPreviousMonth:g??_t,onNextMonth:He??_t}),_e&&(0,W.jsx)("div",{className:xe.skeletonBars,"data-aia-skeleton-bars":"",children:ba.map(se=>(0,W.jsx)("span",{className:xe.skeletonBar,style:{width:se}},`bar-${se}`))}),(0,W.jsx)(Mt,{products:Ue,listboxId:n,onSelect:K??wa,onFocusChange:Q,focusable:v,layout:G,imageFallback:fe,strings:Y}),(0,W.jsx)(Ot,{isOptionHighlighted:Ee,isInputEmpty:p.isInputEmpty,strings:Y})]}),(0,W.jsx)("button",{ref:ne,type:"button",tabIndex:-1,className:xe.scrollArrow,"data-aia-scroll-arrow":"","aria-label":Y.scrollArrow,"aria-hidden":"true",children:(0,W.jsx)("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:(0,W.jsx)("path",{d:"M4 6.5 8 10.5l4-4"})})})]})}var Fe=require("@magicx-eng/ai-autocomplete-vanilla");var qt=require("@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 {
|
|
2217
2277
|
flex-shrink: 0;
|
|
2218
2278
|
width: 32px;
|
|
2219
2279
|
height: 32px;
|
|
@@ -2266,5 +2326,5 @@
|
|
|
2266
2326
|
);
|
|
2267
2327
|
cursor: default;
|
|
2268
2328
|
}
|
|
2269
|
-
`,document.head.appendChild(e)}var _t={submitButton:"aia-submitButton-otz7H"};var lt=require("react/jsx-runtime");function qt({disabled:e,onClick:a,label:t=(0,Ut.uiStringsFor)().submit}){return(0,lt.jsx)("button",{type:"button","data-aia-submit":"",className:_t.submitButton,disabled:e,onClick:n=>{n.stopPropagation(),a()},"aria-label":t,children:(0,lt.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":t,children:(0,lt.jsx)("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}var qe=require("@magicx-eng/ai-autocomplete-vanilla"),P=require("react");var xt=require("react");function jt(e){let a=(0,xt.useRef)(e);a.current=e;let t=Object.keys(e??{}).sort().join("\0"),n=(0,xt.useRef)({key:"",overrides:void 0});if(n.current.key!==t){let i={};for(let r of Object.keys(e??{})){let o=(p,c,k)=>{let S=a.current?.[r];return S?S(p,c,k):[]};i[r]=o}n.current={key:t,overrides:e?i:void 0}}return{overrides:n.current.overrides,key:t}}var yt=require("react");function Qt(e){let a=(0,yt.useRef)(e);a.current=e;let t=(0,yt.useRef)(null);t.current===null&&(t.current={fetch:(i,r)=>{let o=a.current;return o?o.fetch(i,r):Promise.reject(new Error("products config removed"))},transform:i=>a.current?.transform(i)??[],get limit(){return a.current?.limit}});let n=e!==void 0;return{config:n?t.current:void 0,enabled:n}}var xa={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 dt({onSubmit:e,onResult:a,onError:t,optionOverrides:n,maskCompletedText:i,apiConfig:r,additionalContext:o,language:p,visitorId:c,columns:k=2,dropdownTrigger:S,optionsPosition:I,closeDropdownOnBlur:m,showNonTappableOptions:b,showOptionIcons:A,showOptionImages:B,showOptionCounts:H,showSkipButton:j,showProducts:R,productImageFallback:T="image",onFocus:F,onBlur:K,value:C,completedParams:G,onChange:oe,onParamsChange:W,products:ke,mapProducts:re,onProductSelect:V,source:Ne,setCursor:Ce}){let g=(0,P.useRef)(null),[Be,Pe]=(0,P.useState)(null),be=(0,P.useRef)(e);be.current=e;let Se=(0,P.useRef)(a);Se.current=a;let ve=(0,P.useRef)(t);ve.current=t;let Ie=(0,P.useRef)(oe);Ie.current=oe;let X=(0,P.useRef)(W);X.current=W;let se=(0,P.useRef)(F);se.current=F;let l=(0,P.useRef)(K);l.current=K;let f=(0,P.useRef)(Ce);f.current=Ce;let v=(0,P.useRef)(V);v.current=V;let w=(0,P.useRef)(c);w.current=c;let x=(0,P.useRef)(()=>{let d=w.current;return typeof d=="function"?d():d}).current,L=Qt(ke),h=(0,P.useRef)(re);h.current=re;let q=(0,P.useRef)((d,Z)=>{let O=h.current;return O?O(d,Z):d}).current,J=re?q:void 0,te=jt(n);(0,P.useEffect)(()=>{if(typeof document>"u")return;let d=new qe.AIAutocomplete(document.createElement("div"),{renderMode:"headless",apiConfig:r,additionalContext:o,language:p,visitorId:x,optionOverrides:te.overrides,maskCompletedText:i,columns:k,dropdownTrigger:S,optionsPosition:I,closeDropdownOnBlur:m,showNonTappableOptions:b,showProducts:R,source:Ne,value:C,completedParams:G,onSubmit:(...O)=>be.current?.(...O),onResult:(...O)=>Se.current?.(...O),onError:(...O)=>ve.current?.(...O),onChange:(...O)=>Ie.current?.(...O),onParamsChange:(...O)=>X.current?.(...O),onFocus:()=>se.current?.(),onBlur:()=>l.current?.(),onProductSelect:O=>v.current?.(O),setCursor:O=>f.current?.(O),products:L.config,mapProducts:J});g.current=d,Pe(d.getState());let Z=d.subscribe(O=>Pe(O));return()=>{Z(),d.destroy(),g.current===d&&(g.current=null)}},[]),(0,P.useEffect)(()=>{C!==void 0&&g.current?.setValue(C)},[C]),(0,P.useEffect)(()=>{G!==void 0&&g.current?.setCompletedParams(G)},[G]);let _e=JSON.stringify(r??null),le;try{le=JSON.stringify(o??null)}catch{le="[unstringifiable]"}(0,P.useEffect)(()=>{g.current?.update({apiConfig:r,additionalContext:o,language:p,optionOverrides:te.overrides,dropdownTrigger:S,optionsPosition:I,closeDropdownOnBlur:m,showNonTappableOptions:b,showProducts:R})},[_e,le,p,te.key,S,I,m,b,R]);let Ee=(0,P.useRef)(!1);(0,P.useEffect)(()=>{if(!Ee.current){Ee.current=!0;return}g.current?.update({products:L.config})},[L.enabled]),(0,P.useEffect)(()=>{g.current?.update({mapProducts:J})},[J]);let He=(0,P.useRef)(null);He.current===null&&(He.current={handleTextChange:d=>g.current?.handleTextChange(d),handleKeyDown:d=>{let Z="nativeEvent"in d?d.nativeEvent:d;g.current?.handleKeyDown(Z)},setFocused:d=>g.current?.setFocused(d),startEditingParam:d=>g.current?.startEditingParam(d),exitEditMode:()=>g.current?.exitEditMode(),handleCaretAfterInput:d=>g.current?.handleCaretAfterInput(d),handleCaretMove:d=>g.current?.handleCaretMove(d),replaceEditingRange:d=>g.current?.replaceEditingRange(d)??!1,setActivePill:d=>g.current?.setActivePill(d),skipActivePill:()=>g.current?.skipActivePill(),removeLastParam:()=>g.current?.removeLastParam(),clearNewParamId:()=>g.current?.clearNewParamId(),reset:()=>g.current?.reset(),refreshProducts:()=>g.current?.refreshProducts(),recordSubmit:d=>g.current?.recordSubmit(d),selectOption:d=>g.current?.selectOption(d),selectProduct:d=>g.current?.selectProduct(d),setActiveDropdownIndex:d=>g.current?.setActiveDropdownIndex(d),clearHighlight:d=>g.current?.clearHighlight(d),showPreviousMonth:()=>g.current?.showPreviousMonth(),showNextMonth:()=>g.current?.showNextMonth(),handleFocus:()=>g.current?.setFocused(!0),handleBlur:()=>g.current?.setFocused(!1)});let y=He.current,Te=(0,P.useCallback)(d=>{let Z=d.target.value,ht=Z.length>0&&!d.nativeEvent?.isComposing&&Z[0]!==Z[0].toUpperCase()?Z[0].toUpperCase()+Z.slice(1):Z;g.current?.handleTextChange(ht)},[]),Ae=(0,P.useCallback)(d=>{g.current?.handleKeyDown(d.nativeEvent)},[]),we=g.current,u=Be??xa,Fe=C!==void 0?C:u.text,je=G!==void 0?G:u.completedParams,Re=u.actionableSuggestions,de=Re[0],Ke=we?.listboxId??"",Xe=u.activeDropdownIndex>=0&&we?`${Ke}-option-${u.activeDropdownIndex}`:void 0,Oe=u.editingParam,Ge=u.editingIdentified,Qe=Oe?{parameter:Oe.suggestionParameter,text:Oe.suggestionPlaceholder,required:!0,options:Oe.options}:Ge?{parameter:Ge.parameter,text:(0,qe.identifiedParamLabel)(Ge.parameter),required:!0,options:[]}:null,Je=u.dropdownSuggestion??Qe??de,pt=Qe?[Qe]:Re,Ye=(0,qe.dateSelectionFor)(u),et=!we||u.dropdownLoading;return{completedParams:je,skippedParams:u.skippedParams,identifiedParams:u.identifiedParams,suggestionPills:Re,setActivePill:y.setActivePill,skipActivePill:y.skipActivePill,removeLastParam:y.removeLastParam,segments:u.segments,newParamId:u.newParamId,clearNewParamId:y.clearNewParamId,suggestions:u.suggestions,activeIndex:u.activeDropdownIndex,isReady:u.isReady,isLoading:et,isFocused:u.isFocused,isDropdownOpen:u.isDropdownOpen,isActivePillSelected:u.isActivePillSelected,placeholderText:u.placeholderText,listboxId:Ke,error:u.error,products:u.products,customFields:u.customFields,selectProduct:y.selectProduct,handleTextChange:y.handleTextChange,handleKeyDown:y.handleKeyDown,setFocused:y.setFocused,editingParam:Oe,editingIdentified:Ge,editingAnchor:u.editingAnchor,caretOffset:u.caretOffset,startEditingParam:y.startEditingParam,exitEditMode:y.exitEditMode,handleCaretAfterInput:y.handleCaretAfterInput,handleCaretMove:y.handleCaretMove,replaceEditingRange:y.replaceEditingRange,inputProps:{value:Fe,placeholder:u.placeholderText||void 0,onChange:Te,onKeyDown:Ae,onFocus:y.handleFocus,onBlur:y.handleBlur,role:"combobox","aria-expanded":u.isDropdownOpen,"aria-activedescendant":Xe,"aria-autocomplete":"list","aria-controls":Ke},reset:y.reset,refreshProducts:y.refreshProducts,recordSubmit:y.recordSubmit,dropdownProps:{suggestions:Je?[{...Je,options:u.dropdownOptions}]:[],activeIndex:u.activeDropdownIndex,onSelect:y.selectOption,onHighlight:y.setActiveDropdownIndex,onUnhighlight:y.clearHighlight,isOpen:u.isDropdownOpen,id:Ke,pills:pt,activeSelected:u.isActivePillSelected,onPillClick:y.setActivePill,onSkip:y.skipActivePill,showSkipButton:(j??!0)&&!Oe&&!Ge,showOptionIcons:A??!0,showOptionImages:B??!0,showOptionCounts:H??!0,skipDisabled:u.inSelectionAnimation,isLoading:et,skeletonExiting:u.skeletonExiting,isInputEmpty:Fe.trim().length===0,language:p,products:u.products,productImageFallback:T,onProductSelect:y.selectProduct,onProductFocusChange:y.setFocused,formatType:u.activeFormatType,dateView:u.dateView,selectedDateIso:Ye.selectedIso,selectedDateRange:Ye.selectedRange,dateRangeStart:Ye.rangeStart,onPreviousMonth:y.showPreviousMonth,onNextMonth:y.showNextMonth,optionsPosition:I??"below"}}}var U=require("@magicx-eng/ai-autocomplete-vanilla"),E=require("react"),ct;function ya(){if(ct!==void 0)return ct;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),ct=e.contentEditable==="plaintext-only",ct}function Yt(e){let{segments:a,showChipIcons:t=!0,showChipImages:n=!0,newParamId:i,editingParam:r,editingIdentified:o,editingAnchor:p,caretOffset:c,placeholderText:k,isFocused:S,isDropdownOpen:I,listboxId:m,activeDescendantId:b,autoFocus:A,handleTextChange:B,handleKeyDown:H,handleCaretAfterInput:j,handleCaretMove:R,startEditingParam:T,replaceEditingRange:F,setFocused:K}=e,C=(0,E.useRef)(null),G=(0,E.useRef)(!1),oe=(0,E.useRef)(""),W=(0,E.useRef)(""),ke=(0,E.useRef)(null),re=(0,E.useRef)(0);ke.current=c,(0,E.useEffect)(()=>{if(!A)return;let l=C.current;if(!l)return;document.activeElement===l?K(!0):l.focus();let f=l.ownerDocument??document,v=f.getSelection(),w=v&&v.rangeCount>0&&l.contains(v.anchorNode);if(v&&!w){let x=f.createRange();x.selectNodeContents(l),x.collapse(!0),v.removeAllRanges(),v.addRange(x)}},[A,K]),(0,E.useEffect)(()=>{let l=C.current;if(!l)return;let f=l.ownerDocument??document,v=()=>{let w=f.getSelection();if(!w||w.rangeCount===0||!w.anchorNode||!l.contains(w.anchorNode))return;let x=w.anchorNode,L=x.nodeType===Node.ELEMENT_NODE?x:x.parentElement,q=(w.isCollapsed?L?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,J=r?.id??o?.id??null;if(q&&q!==J){T(q);return}performance.now()-re.current<50||R((0,U.getCursorOffset)(l))};return f.addEventListener("selectionchange",v),()=>f.removeEventListener("selectionchange",v)},[r,o,T,R]),(0,E.useEffect)(()=>{let l=C.current;if(!l)return;let f=v=>{let w=(0,U.chipIdFromTap)(l,v.target);w&&(T(w),(0,U.keepCaretOnChip)(l,w))};return l.addEventListener("click",f),()=>l.removeEventListener("click",f)},[T]),(0,E.useLayoutEffect)(()=>{let l=C.current;l&&(0,U.renderEditableContent)({input:l,segments:a,newParamId:i,editingParamId:r?.id??null,placeholderText:k??"",isFocused:S,showChipIcons:t,showChipImages:n})},[a,i,r,k,S,t,n]),(0,E.useLayoutEffect)(()=>{let l=oe.current,f=i??"";if(oe.current=f,!f||f===l)return;let v=C.current;if(!v)return;v.focus();let w=ke.current??(0,U.plainTextLength)(v);(0,U.setCursorOffset)(v,w)},[i]),(0,E.useLayoutEffect)(()=>{let l=W.current,f=r?.id??"";if(W.current=f,!f||f===l||p==null)return;let v=C.current;v&&(0,U.setCursorOffset)(v,p)},[r,p]);let V=(0,E.useCallback)(()=>{if(G.current)return;let l=C.current;if(!l)return;let f=(0,U.extractPlainText)(l),w=f.length>0&&f[0]!==f[0].toUpperCase()?f[0].toUpperCase()+f.slice(1):f;B(w)},[B]),Ne=(0,E.useCallback)(()=>{re.current=performance.now(),V();let l=C.current;l&&j((0,U.getCursorOffset)(l))},[V,j]);(0,E.useEffect)(()=>{let l=C.current;if(!l)return;let f=v=>{let w=v,x=w.inputType;if(x==="insertParagraph"||x==="insertLineBreak"||x==="insertFromDrop"){v.preventDefault();return}if(x.startsWith("insert")||x.startsWith("delete")){let L=x.startsWith("delete")?"":w.data??"";F(L)&&v.preventDefault()}};return l.addEventListener("beforeinput",f),()=>l.removeEventListener("beforeinput",f)},[F]);let Ce=(0,E.useCallback)(()=>{G.current=!0},[]),g=(0,E.useCallback)(()=>{G.current=!1,V()},[V]),Be=(0,E.useCallback)(l=>{l.preventDefault();let f=C.current;if(!f)return;let v=(l.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!v)return;let w=f.ownerDocument??document,x=w.getSelection();if(!x||x.rangeCount===0)return;let L=x.getRangeAt(0);if(!f.contains(L.startContainer))return;L.deleteContents();let h=w.createTextNode(v);L.insertNode(h),L.setStartAfter(h),L.collapse(!0),x.removeAllRanges(),x.addRange(L),V()},[V]),Pe=(0,E.useCallback)(l=>H(l),[H]),be=(0,E.useCallback)(()=>K(!0),[K]),Se=(0,E.useCallback)(()=>K(!1),[K]),ve=(0,E.useCallback)(()=>C.current?.focus(),[]),Ie=(0,E.useCallback)(()=>C.current?.blur(),[]),X=(0,E.useCallback)(()=>{let l=C.current;return l?(0,U.extractPlainText)(l):""},[]),se=ya()?"plaintext-only":"true";return{inputRef:C,editorProps:{ref:C,contentEditable:se,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":m,"aria-expanded":I,"aria-activedescendant":b,spellCheck:!0,enterKeyHint:"send",onInput:Ne,onKeyDown:Pe,onCompositionStart:Ce,onCompositionEnd:g,onPaste:Be,onFocus:be,onBlur:Se},getPlainText:X,focus:ve,blur:Ie}}var ne=require("react/jsx-runtime");function ka(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var Zt=(0,N.forwardRef)(function({onSubmit:a,onResult:t,onError:n,optionOverrides:i,maskCompletedText:r,className:o,apiConfig:p,additionalContext:c,language:k,visitorId:S,columns:I,pillPlacement:m="dropdown",mode:b="auto",optionsPosition:A="below",animations:B=!0,dropdownTrigger:H,closeDropdownOnBlur:j,showNonTappableOptions:R,showOptionIcons:T=!0,showChipIcons:F=!0,showChipImages:K=!0,showOptionImages:C=!0,showOptionCounts:G=!0,showSkipButton:oe,showProducts:W,productsLayout:ke,productImageFallback:re,autoFocus:V=!0,onFocus:Ne,onBlur:Ce,value:g,completedParams:Be,onChange:Pe,onParamsChange:be,products:Se,mapProducts:ve,onProductSelect:Ie,submitButton:X,resetOnSubmit:se=!0},l){let f=(0,N.useRef)(null),v=(0,N.useRef)(null),w=(0,N.useRef)(()=>{}),x=(0,N.useRef)(null),L=(0,N.useRef)(null);(0,N.useEffect)(()=>{let D=f.current;if(D)return x.current?x.current.setMode(b):x.current=new Me.ModeController(D,b),()=>{x.current?.destroy(),x.current=null}},[b]);let h=(0,N.useCallback)(D=>{let ce=L.current?.current;ce&&(ce.focus(),(0,Me.setCursorOffset)(ce,D))},[]),{completedParams:q,skippedParams:J,identifiedParams:te,isReady:_e,customFields:le,suggestionPills:Ee,setActivePill:He,skipActivePill:y,segments:Te,newParamId:Ae,clearNewParamId:we,placeholderText:u,isFocused:Fe,isDropdownOpen:je,isActivePillSelected:Re,isLoading:de,activeIndex:Ke,listboxId:Xe,handleTextChange:Oe,handleKeyDown:Ge,setFocused:Qe,editingParam:Je,editingIdentified:pt,editingAnchor:Ye,caretOffset:et,startEditingParam:d,handleCaretAfterInput:Z,handleCaretMove:O,replaceEditingRange:ht,dropdownProps:$t,reset:tt,refreshProducts:kt,recordSubmit:Ct}=dt({onSubmit:D=>w.current(D),onResult:t,onError:n,optionOverrides:i,maskCompletedText:r,apiConfig:p,additionalContext:c,language:k,visitorId:S,columns:I,dropdownTrigger:H,optionsPosition:A,closeDropdownOnBlur:j,showNonTappableOptions:R,showOptionIcons:T,showOptionImages:C,showOptionCounts:G,showSkipButton:oe,showProducts:W,onFocus:Ne,onBlur:Ce,value:g,completedParams:Be,onChange:Pe,onParamsChange:be,products:Se,mapProducts:ve,onProductSelect:Ie,source:"full-sdk",setCursor:h});(0,N.useEffect)(()=>{if(!Ae)return;let D=window.setTimeout(()=>we(),650);return()=>window.clearTimeout(D)},[Ae,we]);let Vt=Ke>=0?`${Xe}-option-${Ke}`:void 0,{inputRef:ut,editorProps:Xt,focus:at,blur:Pt,getPlainText:St}=Yt({segments:Te,newParamId:Ae,editingParam:Je,editingIdentified:pt,editingAnchor:Ye,caretOffset:et,placeholderText:u,isFocused:Fe,showChipIcons:F,showChipImages:K,isDropdownOpen:je,listboxId:Xe,activeDescendantId:Vt,autoFocus:V,handleTextChange:Oe,handleKeyDown:Ge,handleCaretAfterInput:Z,handleCaretMove:O,startEditingParam:d,replaceEditingRange:ht,setFocused:Qe});L.current=ut,(0,N.useLayoutEffect)(()=>{let D=v.current,ce=ut.current;if(!D||!ce)return;let Ze=()=>{let Et=D.firstElementChild;if(!Et)return;let aa=Et.getBoundingClientRect(),ia=ce.getBoundingClientRect();aa.top>=ia.bottom-2?D.setAttribute("data-aia-pill-wrapped",""):D.removeAttribute("data-aia-pill-wrapped")};Ze();let It=new ResizeObserver(Ze);return It.observe(ce),()=>It.disconnect()},[Te,Ee.length,de,ut]),(0,N.useImperativeHandle)(l,()=>({focus:at,blur:Pt,reset:tt,refreshProducts:kt,setMode:D=>x.current?.setMode(D),skipActivePill:y}),[at,Pt,tt,kt,y]);let it=!!Te.length||q.length>0,mt=(0,N.useCallback)(D=>{if(!it)return;let ce=St(),Ze=(0,Me.buildSubmitResult)(ce,q,J,{identifiedParams:te,isReady:_e,customFields:le});D&&Ct(Ze),a(Ze),se&&tt()},[Ct,se,it,q,J,te,_e,le,a,tt,St]);w.current=()=>mt(!1);let Jt=(0,N.useCallback)(D=>{D.target?.closest("[data-aia-pill]")||at()},[at]),ea=m==="inline",ta=m==="dropdown";return(0,ne.jsxs)("div",{ref:f,className:`magicx-aia ${We.container} ${o??""}`,"data-pill-placement":m,"data-options-position":A,"data-animations":B?"on":"off","data-mode":ka(b),children:[(0,ne.jsx)(st,{...$t,showPills:ta,productsLayout:ke,productImageFallback:re}),(0,ne.jsxs)("div",{className:We.inputWrapper,"data-aia-input-wrapper":"",onClick:Jt,children:[(0,ne.jsxs)("div",{className:We.editorArea,"data-aia-editor":"",children:[(0,ne.jsx)("div",{...Xt,className:We.input,"data-aia-input":""}),ea&&(de||Ee.length>0)&&(0,ne.jsx)("span",{ref:v,className:We.pillListContainer,"data-aia-pill-list-container":"",children:(0,ne.jsx)(nt,{pills:Ee,activePillIndex:0,activeSelected:Re,onSelectPill:He,loading:de})})]}),X===null?null:X===void 0?(0,ne.jsx)(qt,{disabled:!it,onClick:()=>mt(!0),label:(0,Me.uiStringsFor)(k).submit}):(0,ne.jsx)("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:We.submitSlot,onClick:D=>{it&&(D.stopPropagation(),mt(!0))},children:X})]})]})});0&&(module.exports={AIAutocomplete,AIAutocompleteDropdown,DATE_RANGE_META_END,DATE_RANGE_META_START,DEFAULT_OPTION_COUNT_UNIT,PRODUCT_PATH_PREFIX,WEEKDAY_LABELS,buildSubmitResult,cellDay,cellIso,dateCellMarks,formatDate,formatDateRange,formatOptionCount,isoDate,monthLabel,optionCountLabel,optionHasImage,optionImageSources,optionImageSrc,optionLabel,parseDate,parseLooseDate,parseLooseDateRange,productFromMatchedItem,productImageSources,productsFromCustomFields,sanitizeOptionIconSvg,selectedRangeFor,useAIAutocomplete,visibleDateRange,withSkippedParams});
|
|
2329
|
+
`,document.head.appendChild(e)}var Ut={submitButton:"aia-submitButton-otz7H"};var dt=require("react/jsx-runtime");function jt({disabled:e,onClick:a,label:t=(0,qt.uiStringsFor)().submit}){return(0,dt.jsx)("button",{type:"button","data-aia-submit":"",className:Ut.submitButton,disabled:e,onClick:i=>{i.stopPropagation(),a()},"aria-label":t,children:(0,dt.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":t,children:(0,dt.jsx)("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}var je=require("@magicx-eng/ai-autocomplete-vanilla"),C=require("react");var yt=require("react");function Qt(e){let a=(0,yt.useRef)(e);a.current=e;let t=Object.keys(e??{}).sort().join("\0"),i=(0,yt.useRef)({key:"",overrides:void 0});if(i.current.key!==t){let o={};for(let r of Object.keys(e??{})){let n=(h,d,x)=>{let E=a.current?.[r];return E?E(h,d,x):[]};o[r]=n}i.current={key:t,overrides:e?o:void 0}}return{overrides:i.current.overrides,key:t}}var kt=require("react");function Yt(e){let a=(0,kt.useRef)(e);a.current=e;let t=(0,kt.useRef)(null);t.current===null&&(t.current={fetch:(o,r)=>{let n=a.current;return n?n.fetch(o,r):Promise.reject(new Error("products config removed"))},transform:o=>a.current?.transform(o)??[],get limit(){return a.current?.limit}});let i=e!==void 0;return{config:i?t.current:void 0,enabled:i}}var ka={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 ct({onSubmit:e,onResult:a,onError:t,optionOverrides:i,maskCompletedText:o,apiConfig:r,additionalContext:n,language:h,productId:d,visitorId:x,columns:E=2,dropdownTrigger:I,optionsPosition:m,closeDropdownOnBlur:w,showNonTappableOptions:T,showOptionIcons:F,showOptionImages:B,showOptionCounts:j,showSkipButton:z,showProducts:A,productImageFallback:U="image",onFocus:H,onBlur:P,value:K,completedParams:Q,onChange:G,onParamsChange:fe,products:ke,mapProducts:$,onProductSelect:Ce,source:Be,setCursor:Pe}){let g=(0,C.useRef)(null),[He,be]=(0,C.useState)(null),Se=(0,C.useRef)(e);Se.current=e;let we=(0,C.useRef)(a);we.current=a;let Ie=(0,C.useRef)(t);Ie.current=t;let te=(0,C.useRef)(G);te.current=G;let ne=(0,C.useRef)(fe);ne.current=fe;let l=(0,C.useRef)(H);l.current=H;let f=(0,C.useRef)(P);f.current=P;let b=(0,C.useRef)(Pe);b.current=Pe;let v=(0,C.useRef)(Ce);v.current=Ce;let k=(0,C.useRef)(x);k.current=x;let R=(0,C.useRef)(()=>{let c=k.current;return typeof c=="function"?c():c}).current,p=Yt(ke),Y=(0,C.useRef)($);Y.current=$;let ae=(0,C.useRef)((c,X)=>{let O=Y.current;return O?O(c,X):c}).current,ie=$?ae:void 0,Ee=Qt(i);(0,C.useEffect)(()=>{if(typeof document>"u")return;let c=new je.AIAutocomplete(document.createElement("div"),{renderMode:"headless",apiConfig:r,additionalContext:n,language:h,productId:d,visitorId:R,optionOverrides:Ee.overrides,maskCompletedText:o,columns:E,dropdownTrigger:I,optionsPosition:m,closeDropdownOnBlur:w,showNonTappableOptions:T,showProducts:A,source:Be,value:K,completedParams:Q,onSubmit:(...O)=>Se.current?.(...O),onResult:(...O)=>we.current?.(...O),onError:(...O)=>Ie.current?.(...O),onChange:(...O)=>te.current?.(...O),onParamsChange:(...O)=>ne.current?.(...O),onFocus:()=>l.current?.(),onBlur:()=>f.current?.(),onProductSelect:O=>v.current?.(O),setCursor:O=>b.current?.(O),products:p.config,mapProducts:ie});g.current=c,be(c.getState());let X=c.subscribe(O=>be(O));return()=>{X(),c.destroy(),g.current===c&&(g.current=null)}},[]),(0,C.useEffect)(()=>{K!==void 0&&g.current?.setValue(K)},[K]),(0,C.useEffect)(()=>{Q!==void 0&&g.current?.setCompletedParams(Q)},[Q]);let Te=JSON.stringify(r??null),Ae;try{Ae=JSON.stringify(n??null)}catch{Ae="[unstringifiable]"}(0,C.useEffect)(()=>{g.current?.update({apiConfig:r,additionalContext:n,language:h,productId:d,optionOverrides:Ee.overrides,dropdownTrigger:I,optionsPosition:m,closeDropdownOnBlur:w,showNonTappableOptions:T,showProducts:A})},[Te,Ae,h,d,Ee.key,I,m,w,T,A]);let Re=(0,C.useRef)(!1);(0,C.useEffect)(()=>{if(!Re.current){Re.current=!0;return}g.current?.update({products:p.config})},[p.enabled]),(0,C.useEffect)(()=>{g.current?.update({mapProducts:ie})},[ie]);let Oe=(0,C.useRef)(null);Oe.current===null&&(Oe.current={handleTextChange:c=>g.current?.handleTextChange(c),handleKeyDown:c=>{let X="nativeEvent"in c?c.nativeEvent:c;g.current?.handleKeyDown(X)},setFocused:c=>g.current?.setFocused(c),startEditingParam:c=>g.current?.startEditingParam(c),exitEditMode:()=>g.current?.exitEditMode(),handleCaretAfterInput:c=>g.current?.handleCaretAfterInput(c),handleCaretMove:c=>g.current?.handleCaretMove(c),replaceEditingRange:c=>g.current?.replaceEditingRange(c)??!1,setActivePill:c=>g.current?.setActivePill(c),skipActivePill:()=>g.current?.skipActivePill(),removeLastParam:()=>g.current?.removeLastParam(),clearNewParamId:()=>g.current?.clearNewParamId(),reset:()=>g.current?.reset(),refreshProducts:()=>g.current?.refreshProducts(),recordSubmit:c=>g.current?.recordSubmit(c),selectOption:c=>g.current?.selectOption(c),selectProduct:c=>g.current?.selectProduct(c),setActiveDropdownIndex:c=>g.current?.setActiveDropdownIndex(c),clearHighlight:c=>g.current?.clearHighlight(c),showPreviousMonth:()=>g.current?.showPreviousMonth(),showNextMonth:()=>g.current?.showNextMonth(),handleFocus:()=>g.current?.setFocused(!0),handleBlur:()=>g.current?.setFocused(!1)});let y=Oe.current,De=(0,C.useCallback)(c=>{let X=c.target.value,ut=X.length>0&&!c.nativeEvent?.isComposing&&X[0]!==X[0].toUpperCase()?X[0].toUpperCase()+X.slice(1):X;g.current?.handleTextChange(ut)},[]),Le=(0,C.useCallback)(c=>{g.current?.handleKeyDown(c.nativeEvent)},[]),ve=g.current,u=He??ka,_e=K!==void 0?K:u.text,Ue=Q!==void 0?Q:u.completedParams,se=u.actionableSuggestions,Qe=se[0],Ke=ve?.listboxId??"",Je=u.activeDropdownIndex>=0&&ve?`${Ke}-option-${u.activeDropdownIndex}`:void 0,ze=u.editingParam,Ge=u.editingIdentified,Ye=ze?{parameter:ze.suggestionParameter,text:ze.suggestionPlaceholder,required:!0,options:ze.options}:Ge?{parameter:Ge.parameter,text:(0,je.identifiedParamLabel)(Ge.parameter),required:!0,options:[]}:null,et=u.dropdownSuggestion??Ye??Qe,ht=Ye?[Ye]:se,Ze=(0,je.dateSelectionFor)(u),tt=!ve||u.dropdownLoading;return{completedParams:Ue,skippedParams:u.skippedParams,identifiedParams:u.identifiedParams,suggestionPills:se,setActivePill:y.setActivePill,skipActivePill:y.skipActivePill,removeLastParam:y.removeLastParam,segments:u.segments,newParamId:u.newParamId,clearNewParamId:y.clearNewParamId,suggestions:u.suggestions,activeIndex:u.activeDropdownIndex,isReady:u.isReady,isLoading:tt,isFocused:u.isFocused,isDropdownOpen:u.isDropdownOpen,isActivePillSelected:u.isActivePillSelected,placeholderText:u.placeholderText,listboxId:Ke,error:u.error,products:u.products,customFields:u.customFields,selectProduct:y.selectProduct,handleTextChange:y.handleTextChange,handleKeyDown:y.handleKeyDown,setFocused:y.setFocused,editingParam:ze,editingIdentified:Ge,editingAnchor:u.editingAnchor,caretOffset:u.caretOffset,startEditingParam:y.startEditingParam,exitEditMode:y.exitEditMode,handleCaretAfterInput:y.handleCaretAfterInput,handleCaretMove:y.handleCaretMove,replaceEditingRange:y.replaceEditingRange,inputProps:{value:_e,placeholder:u.placeholderText||void 0,onChange:De,onKeyDown:Le,onFocus:y.handleFocus,onBlur:y.handleBlur,role:"combobox","aria-expanded":u.isDropdownOpen,"aria-activedescendant":Je,"aria-autocomplete":"list","aria-controls":Ke},reset:y.reset,refreshProducts:y.refreshProducts,recordSubmit:y.recordSubmit,dropdownProps:{suggestions:et?[{...et,options:u.dropdownOptions}]:[],activeIndex:u.activeDropdownIndex,onSelect:y.selectOption,onHighlight:y.setActiveDropdownIndex,onUnhighlight:y.clearHighlight,isOpen:u.isDropdownOpen,id:Ke,pills:ht,activeSelected:u.isActivePillSelected,onPillClick:y.setActivePill,onSkip:y.skipActivePill,showSkipButton:(z??!0)&&!ze&&!Ge,showOptionIcons:F??!0,showOptionImages:B??!0,showOptionCounts:j??!0,skipDisabled:u.inSelectionAnimation,isLoading:tt,skeletonExiting:u.skeletonExiting,isInputEmpty:_e.trim().length===0,language:h,products:u.products,productImageFallback:U,onProductSelect:y.selectProduct,onProductFocusChange:y.setFocused,formatType:u.activeFormatType,dateView:u.dateView,selectedDateIso:Ze.selectedIso,selectedDateRange:Ze.selectedRange,dateRangeStart:Ze.rangeStart,onPreviousMonth:y.showPreviousMonth,onNextMonth:y.showNextMonth,optionsPosition:m??"below"}}}var _=require("@magicx-eng/ai-autocomplete-vanilla"),S=require("react"),pt;function Ca(){if(pt!==void 0)return pt;if(typeof document>"u")return!1;let e=document.createElement("div");return e.setAttribute("contenteditable","plaintext-only"),pt=e.contentEditable==="plaintext-only",pt}function Zt(e){let{segments:a,showChipIcons:t=!0,showChipImages:i=!0,newParamId:o,editingParam:r,editingIdentified:n,editingAnchor:h,caretOffset:d,placeholderText:x,isFocused:E,isDropdownOpen:I,listboxId:m,activeDescendantId:w,autoFocus:T,handleTextChange:F,handleKeyDown:B,handleCaretAfterInput:j,handleCaretMove:z,startEditingParam:A,replaceEditingRange:U,setFocused:H}=e,P=(0,S.useRef)(null),K=(0,S.useRef)(!1),Q=(0,S.useRef)(""),G=(0,S.useRef)(""),fe=(0,S.useRef)(null),ke=(0,S.useRef)(0);fe.current=d,(0,S.useEffect)(()=>{if(!T)return;let l=P.current;if(!l)return;document.activeElement===l?H(!0):l.focus();let f=l.ownerDocument??document,b=f.getSelection(),v=b&&b.rangeCount>0&&l.contains(b.anchorNode);if(b&&!v){let k=f.createRange();k.selectNodeContents(l),k.collapse(!0),b.removeAllRanges(),b.addRange(k)}},[T,H]),(0,S.useEffect)(()=>{let l=P.current;if(!l)return;let f=l.ownerDocument??document,b=()=>{let v=f.getSelection();if(!v||v.rangeCount===0||!v.anchorNode||!l.contains(v.anchorNode))return;let k=v.anchorNode,R=k.nodeType===Node.ELEMENT_NODE?k:k.parentElement,Y=(v.isCollapsed?R?.closest("strong[data-param-id]"):null)?.dataset.paramId??null,ae=r?.id??n?.id??null;if(Y&&Y!==ae){A(Y);return}performance.now()-ke.current<50||z((0,_.getCursorOffset)(l))};return f.addEventListener("selectionchange",b),()=>f.removeEventListener("selectionchange",b)},[r,n,A,z]),(0,S.useEffect)(()=>{let l=P.current;if(!l)return;let f=b=>{let v=(0,_.chipIdFromTap)(l,b.target);v&&(A(v),(0,_.keepCaretOnChip)(l,v))};return l.addEventListener("click",f),()=>l.removeEventListener("click",f)},[A]),(0,S.useLayoutEffect)(()=>{let l=P.current;l&&(0,_.renderEditableContent)({input:l,segments:a,newParamId:o,editingParamId:r?.id??null,placeholderText:x??"",isFocused:E,showChipIcons:t,showChipImages:i})},[a,o,r,x,E,t,i]),(0,S.useLayoutEffect)(()=>{let l=Q.current,f=o??"";if(Q.current=f,!f||f===l)return;let b=P.current;if(!b)return;b.focus();let v=fe.current??(0,_.plainTextLength)(b);(0,_.setCursorOffset)(b,v)},[o]),(0,S.useLayoutEffect)(()=>{let l=G.current,f=r?.id??"";if(G.current=f,!f||f===l||h==null)return;let b=P.current;b&&(0,_.setCursorOffset)(b,h)},[r,h]);let $=(0,S.useCallback)(()=>{if(K.current)return;let l=P.current;if(!l)return;let f=(0,_.extractPlainText)(l),v=f.length>0&&f[0]!==f[0].toUpperCase()?f[0].toUpperCase()+f.slice(1):f;F(v)},[F]),Ce=(0,S.useCallback)(()=>{ke.current=performance.now(),$();let l=P.current;l&&j((0,_.getCursorOffset)(l))},[$,j]);(0,S.useEffect)(()=>{let l=P.current;if(!l)return;let f=b=>{let v=b,k=v.inputType;if(k==="insertParagraph"||k==="insertLineBreak"||k==="insertFromDrop"){b.preventDefault();return}if(k.startsWith("insert")||k.startsWith("delete")){let R=k.startsWith("delete")?"":v.data??"";U(R)&&b.preventDefault()}};return l.addEventListener("beforeinput",f),()=>l.removeEventListener("beforeinput",f)},[U]);let Be=(0,S.useCallback)(()=>{K.current=!0},[]),Pe=(0,S.useCallback)(()=>{K.current=!1,$()},[$]),g=(0,S.useCallback)(l=>{l.preventDefault();let f=P.current;if(!f)return;let b=(l.clipboardData.getData("text/plain")??"").replace(/\r?\n/g," ");if(!b)return;let v=f.ownerDocument??document,k=v.getSelection();if(!k||k.rangeCount===0)return;let R=k.getRangeAt(0);if(!f.contains(R.startContainer))return;R.deleteContents();let p=v.createTextNode(b);R.insertNode(p),R.setStartAfter(p),R.collapse(!0),k.removeAllRanges(),k.addRange(R),$()},[$]),He=(0,S.useCallback)(l=>B(l),[B]),be=(0,S.useCallback)(()=>H(!0),[H]),Se=(0,S.useCallback)(()=>H(!1),[H]),we=(0,S.useCallback)(()=>P.current?.focus(),[]),Ie=(0,S.useCallback)(()=>P.current?.blur(),[]),te=(0,S.useCallback)(()=>{let l=P.current;return l?(0,_.extractPlainText)(l):""},[]),ne=Ca()?"plaintext-only":"true";return{inputRef:P,editorProps:{ref:P,contentEditable:ne,suppressContentEditableWarning:!0,tabIndex:0,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":m,"aria-expanded":I,"aria-activedescendant":w,spellCheck:!0,enterKeyHint:"send",onInput:Ce,onKeyDown:He,onCompositionStart:Be,onCompositionEnd:Pe,onPaste:g,onFocus:be,onBlur:Se},getPlainText:te,focus:we,blur:Ie}}var re=require("react/jsx-runtime");function Pa(e){return e!=="auto"?e:typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var Vt=(0,N.forwardRef)(function({onSubmit:a,onResult:t,onError:i,optionOverrides:o,maskCompletedText:r,className:n,apiConfig:h,additionalContext:d,language:x,productId:E,visitorId:I,columns:m,pillPlacement:w="dropdown",mode:T="auto",optionsPosition:F="below",animations:B=!0,dropdownTrigger:j,closeDropdownOnBlur:z,showNonTappableOptions:A,showOptionIcons:U=!0,showChipIcons:H=!0,showChipImages:P=!0,showOptionImages:K=!0,showOptionCounts:Q=!0,showSkipButton:G,showProducts:fe,productsLayout:ke,productImageFallback:$,autoFocus:Ce=!0,onFocus:Be,onBlur:Pe,value:g,completedParams:He,onChange:be,onParamsChange:Se,products:we,mapProducts:Ie,onProductSelect:te,submitButton:ne,resetOnSubmit:l=!0},f){let b=(0,N.useRef)(null),v=(0,N.useRef)(null),k=(0,N.useRef)(()=>{}),R=(0,N.useRef)(null),p=(0,N.useRef)(null);(0,N.useEffect)(()=>{let D=b.current;if(D)return R.current?R.current.setMode(T):R.current=new Fe.ModeController(D,T),()=>{R.current?.destroy(),R.current=null}},[T]);let Y=(0,N.useCallback)(D=>{let le=p.current?.current;le&&(le.focus(),(0,Fe.setCursorOffset)(le,D))},[]),{completedParams:ae,skippedParams:ie,identifiedParams:Ee,isReady:Te,customFields:Ae,suggestionPills:Re,setActivePill:Oe,skipActivePill:y,segments:De,newParamId:Le,clearNewParamId:ve,placeholderText:u,isFocused:_e,isDropdownOpen:Ue,isActivePillSelected:se,isLoading:Qe,activeIndex:Ke,listboxId:Je,handleTextChange:ze,handleKeyDown:Ge,setFocused:Ye,editingParam:et,editingIdentified:ht,editingAnchor:Ze,caretOffset:tt,startEditingParam:c,handleCaretAfterInput:X,handleCaretMove:O,replaceEditingRange:ut,dropdownProps:$t,reset:at,refreshProducts:Ct,recordSubmit:Pt}=ct({onSubmit:D=>k.current(D),onResult:t,onError:i,optionOverrides:o,maskCompletedText:r,apiConfig:h,additionalContext:d,language:x,productId:E,visitorId:I,columns:m,dropdownTrigger:j,optionsPosition:F,closeDropdownOnBlur:z,showNonTappableOptions:A,showOptionIcons:U,showOptionImages:K,showOptionCounts:Q,showSkipButton:G,showProducts:fe,onFocus:Be,onBlur:Pe,value:g,completedParams:He,onChange:be,onParamsChange:Se,products:we,mapProducts:Ie,onProductSelect:te,source:"full-sdk",setCursor:Y});(0,N.useEffect)(()=>{if(!Le)return;let D=window.setTimeout(()=>ve(),650);return()=>window.clearTimeout(D)},[Le,ve]);let Xt=Ke>=0?`${Je}-option-${Ke}`:void 0,{inputRef:gt,editorProps:Jt,focus:it,blur:St,getPlainText:It}=Zt({segments:De,newParamId:Le,editingParam:et,editingIdentified:ht,editingAnchor:Ze,caretOffset:tt,placeholderText:u,isFocused:_e,showChipIcons:H,showChipImages:P,isDropdownOpen:Ue,listboxId:Je,activeDescendantId:Xt,autoFocus:Ce,handleTextChange:ze,handleKeyDown:Ge,handleCaretAfterInput:X,handleCaretMove:O,startEditingParam:c,replaceEditingRange:ut,setFocused:Ye});p.current=gt,(0,N.useLayoutEffect)(()=>{let D=v.current,le=gt.current;if(!D||!le)return;let Ve=()=>{let Tt=D.firstElementChild;if(!Tt)return;let ia=Tt.getBoundingClientRect(),oa=le.getBoundingClientRect();ia.top>=oa.bottom-2?D.setAttribute("data-aia-pill-wrapped",""):D.removeAttribute("data-aia-pill-wrapped")};Ve();let Et=new ResizeObserver(Ve);return Et.observe(le),()=>Et.disconnect()},[De,Re.length,Qe,gt]),(0,N.useImperativeHandle)(f,()=>({focus:it,blur:St,reset:at,refreshProducts:Ct,setMode:D=>R.current?.setMode(D),skipActivePill:y}),[it,St,at,Ct,y]);let ot=!!De.length||ae.length>0,mt=(0,N.useCallback)(D=>{if(!ot)return;let le=It(),Ve=(0,Fe.buildSubmitResult)(le,ae,ie,{identifiedParams:Ee,isReady:Te,customFields:Ae});D&&Pt(Ve),a(Ve),l&&at()},[Pt,l,ot,ae,ie,Ee,Te,Ae,a,at,It]);k.current=()=>mt(!1);let ea=(0,N.useCallback)(D=>{D.target?.closest("[data-aia-pill]")||it()},[it]),ta=w==="inline",aa=w==="dropdown";return(0,re.jsxs)("div",{ref:b,className:`magicx-aia ${We.container} ${n??""}`,"data-pill-placement":w,"data-options-position":F,"data-animations":B?"on":"off","data-mode":Pa(T),children:[(0,re.jsx)(lt,{...$t,showPills:aa,productsLayout:ke,productImageFallback:$}),(0,re.jsxs)("div",{className:We.inputWrapper,"data-aia-input-wrapper":"",onClick:ea,children:[(0,re.jsxs)("div",{className:We.editorArea,"data-aia-editor":"",children:[(0,re.jsx)("div",{...Jt,className:We.input,"data-aia-input":""}),ta&&(Qe||Re.length>0)&&(0,re.jsx)("span",{ref:v,className:We.pillListContainer,"data-aia-pill-list-container":"",children:(0,re.jsx)(rt,{pills:Re,activePillIndex:0,activeSelected:se,onSelectPill:Oe,loading:Qe})})]}),ne===null?null:ne===void 0?(0,re.jsx)(jt,{disabled:!ot,onClick:()=>mt(!0),label:(0,Fe.uiStringsFor)(x).submit}):(0,re.jsx)("span",{"data-aia-submit":"","data-aia-submit-slot":"",className:We.submitSlot,onClick:D=>{ot&&(D.stopPropagation(),mt(!0))},children:ne})]})]})});0&&(module.exports={AIAutocomplete,AIAutocompleteDropdown,DATE_RANGE_META_END,DATE_RANGE_META_START,DEFAULT_OPTION_COUNT_UNIT,PRODUCT_PATH_PREFIX,WEEKDAY_LABELS,buildSubmitResult,cellDay,cellIso,dateCellMarks,formatDate,formatDateRange,formatOptionCount,isoDate,monthLabel,optionCountLabel,optionHasImage,optionImageSources,optionImageSrc,optionLabel,parseDate,parseLooseDate,parseLooseDateRange,productFromMatchedItem,productImageSources,productsFromCustomFields,sanitizeOptionIconSvg,selectedRangeFor,useAIAutocomplete,visibleDateRange,withSkippedParams});
|
|
2270
2330
|
//# sourceMappingURL=index.js.map
|