@magicx-eng/ai-autocomplete-react 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +333 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +333 -15
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -60,9 +60,8 @@ interface AIAutocompleteProps {
|
|
|
60
60
|
className?: string;
|
|
61
61
|
apiConfig?: APIConfig;
|
|
62
62
|
columns?: number;
|
|
63
|
-
/** When true (default),
|
|
64
|
-
|
|
65
|
-
eagerSuggestions?: boolean;
|
|
63
|
+
/** When true (default), reveal selected option text letter by letter. */
|
|
64
|
+
typewriterEffect?: boolean;
|
|
66
65
|
value?: string;
|
|
67
66
|
completedParams?: CompletedParamState[];
|
|
68
67
|
onChange?: (value: string) => void;
|
|
@@ -81,9 +80,8 @@ interface UseAIAutocompleteOptions {
|
|
|
81
80
|
placeholder?: string;
|
|
82
81
|
apiConfig?: APIConfig;
|
|
83
82
|
columns?: number;
|
|
84
|
-
/** When true (default),
|
|
85
|
-
|
|
86
|
-
eagerSuggestions?: boolean;
|
|
83
|
+
/** When true (default), reveal selected option text letter by letter. */
|
|
84
|
+
typewriterEffect?: boolean;
|
|
87
85
|
value?: string;
|
|
88
86
|
completedParams?: CompletedParamState[];
|
|
89
87
|
onChange?: (value: string) => void;
|
|
@@ -97,6 +95,8 @@ interface UseAIAutocompleteReturn {
|
|
|
97
95
|
reEditParam: (param: CompletedParamState) => void;
|
|
98
96
|
reset: () => void;
|
|
99
97
|
segments: Segment[];
|
|
98
|
+
newParamId: string | null;
|
|
99
|
+
clearNewParamId: () => void;
|
|
100
100
|
suggestions: Suggestion[];
|
|
101
101
|
activeIndex: number;
|
|
102
102
|
isReady: boolean;
|
|
@@ -129,6 +129,6 @@ declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProp
|
|
|
129
129
|
|
|
130
130
|
declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
|
|
131
131
|
|
|
132
|
-
declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, placeholder: customPlaceholder, apiConfig, columns,
|
|
132
|
+
declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, placeholder: customPlaceholder, apiConfig, columns, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
133
133
|
|
|
134
134
|
export { AIAutocomplete, AIAutocompleteDropdown, type AIAutocompleteDropdownProps, type AIAutocompleteHandle, type AIAutocompleteProps, type APIConfig, type AutocompleteResult, type CompletedParam, type CompletedParamState, type OptionOverrides, type Segment, type Suggestion, type SuggestionOption, type TaskKind, type UseAIAutocompleteOptions, type UseAIAutocompleteReturn, useAIAutocomplete };
|
package/dist/index.d.ts
CHANGED
|
@@ -60,9 +60,8 @@ interface AIAutocompleteProps {
|
|
|
60
60
|
className?: string;
|
|
61
61
|
apiConfig?: APIConfig;
|
|
62
62
|
columns?: number;
|
|
63
|
-
/** When true (default),
|
|
64
|
-
|
|
65
|
-
eagerSuggestions?: boolean;
|
|
63
|
+
/** When true (default), reveal selected option text letter by letter. */
|
|
64
|
+
typewriterEffect?: boolean;
|
|
66
65
|
value?: string;
|
|
67
66
|
completedParams?: CompletedParamState[];
|
|
68
67
|
onChange?: (value: string) => void;
|
|
@@ -81,9 +80,8 @@ interface UseAIAutocompleteOptions {
|
|
|
81
80
|
placeholder?: string;
|
|
82
81
|
apiConfig?: APIConfig;
|
|
83
82
|
columns?: number;
|
|
84
|
-
/** When true (default),
|
|
85
|
-
|
|
86
|
-
eagerSuggestions?: boolean;
|
|
83
|
+
/** When true (default), reveal selected option text letter by letter. */
|
|
84
|
+
typewriterEffect?: boolean;
|
|
87
85
|
value?: string;
|
|
88
86
|
completedParams?: CompletedParamState[];
|
|
89
87
|
onChange?: (value: string) => void;
|
|
@@ -97,6 +95,8 @@ interface UseAIAutocompleteReturn {
|
|
|
97
95
|
reEditParam: (param: CompletedParamState) => void;
|
|
98
96
|
reset: () => void;
|
|
99
97
|
segments: Segment[];
|
|
98
|
+
newParamId: string | null;
|
|
99
|
+
clearNewParamId: () => void;
|
|
100
100
|
suggestions: Suggestion[];
|
|
101
101
|
activeIndex: number;
|
|
102
102
|
isReady: boolean;
|
|
@@ -129,6 +129,6 @@ declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProp
|
|
|
129
129
|
|
|
130
130
|
declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
|
|
131
131
|
|
|
132
|
-
declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, placeholder: customPlaceholder, apiConfig, columns,
|
|
132
|
+
declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, placeholder: customPlaceholder, apiConfig, columns, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
|
|
133
133
|
|
|
134
134
|
export { AIAutocomplete, AIAutocompleteDropdown, type AIAutocompleteDropdownProps, type AIAutocompleteHandle, type AIAutocompleteProps, type APIConfig, type AutocompleteResult, type CompletedParam, type CompletedParamState, type OptionOverrides, type Segment, type Suggestion, type SuggestionOption, type TaskKind, type UseAIAutocompleteOptions, type UseAIAutocompleteReturn, useAIAutocomplete };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Pe=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var ut=(e,r)=>{for(var t in r)Pe(e,t,{get:r[t],enumerable:!0})},ct=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of st(r))!lt.call(e,n)&&n!==t&&Pe(e,n,{get:()=>r[n],enumerable:!(o=at(r,n))||o.enumerable});return e};var pt=e=>ct(Pe({},"__esModule",{value:!0}),e);var St={};ut(St,{AIAutocomplete:()=>Je,AIAutocompleteDropdown:()=>be,useAIAutocomplete:()=>_e});module.exports=pt(St);var D=require("react");if(typeof document<"u"&&!document.getElementById("ac-style-cc65f4cc")){let e=document.createElement("style");e.id="ac-style-cc65f4cc",e.textContent=`.AIAutocomplete-module_container_KKjFU {
|
|
2
2
|
position: relative;
|
|
3
3
|
font-family: "IBM Plex Sans", sans-serif;
|
|
4
4
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
white-space: pre-wrap;
|
|
30
30
|
word-break: break-word;
|
|
31
31
|
font-family: inherit;
|
|
32
|
-
font-size:
|
|
32
|
+
font-size: 19px;
|
|
33
33
|
line-height: 38px;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -37,6 +37,14 @@
|
|
|
37
37
|
color: transparent;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
.AIAutocomplete-module_sizerTextVisible_HR-5h {
|
|
41
|
+
color: var(--ac-color-text-default, #fff);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.AIAutocomplete-module_textareaHidden_UayJt {
|
|
45
|
+
color: transparent !important;
|
|
46
|
+
}
|
|
47
|
+
|
|
40
48
|
.AIAutocomplete-module_placeholderText_K3ayy {
|
|
41
49
|
color: var(--ac-color-text-muted, #c1c4cb);
|
|
42
50
|
opacity: 0.7;
|
|
@@ -54,7 +62,7 @@
|
|
|
54
62
|
color: var(--ac-color-text-default, #fff);
|
|
55
63
|
caret-color: var(--ac-color-text-default, #fff);
|
|
56
64
|
font-family: inherit;
|
|
57
|
-
font-size:
|
|
65
|
+
font-size: 19px;
|
|
58
66
|
line-height: 38px;
|
|
59
67
|
white-space: pre-wrap;
|
|
60
68
|
word-break: break-word;
|
|
@@ -86,13 +94,58 @@
|
|
|
86
94
|
.AIAutocomplete-module_submitButton_sl1Mi:hover {
|
|
87
95
|
opacity: 0.85;
|
|
88
96
|
}
|
|
89
|
-
|
|
97
|
+
|
|
98
|
+
/* Text shimmer on newly added completed param.
|
|
99
|
+
The sizer sits above the textarea (z-index: 1). Normally sizer text is
|
|
100
|
+
transparent and the textarea shows the real text. During the shimmer, we
|
|
101
|
+
make this span visible with a moving gradient clipped to the text shape,
|
|
102
|
+
so the shimmer renders on top of the textarea's static white text. */
|
|
103
|
+
|
|
104
|
+
.AIAutocomplete-module_shimmer_13AnY {
|
|
105
|
+
position: relative;
|
|
106
|
+
z-index: 2;
|
|
107
|
+
display: inline;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.AIAutocomplete-module_shimmerRevealed_RR8dp {
|
|
111
|
+
color: transparent;
|
|
112
|
+
background: linear-gradient(
|
|
113
|
+
120deg,
|
|
114
|
+
var(--ac-color-text-default, #fff) 0%,
|
|
115
|
+
var(--ac-color-text-default, #fff) 44%,
|
|
116
|
+
#b0b0b0 48%,
|
|
117
|
+
#b0b0b0 52%,
|
|
118
|
+
var(--ac-color-text-default, #fff) 56%,
|
|
119
|
+
var(--ac-color-text-default, #fff) 100%
|
|
120
|
+
);
|
|
121
|
+
background-size: 200% 100%;
|
|
122
|
+
-webkit-background-clip: text;
|
|
123
|
+
background-clip: text;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.AIAutocomplete-module_shimmerSweep_ARCon {
|
|
127
|
+
animation: AIAutocomplete-module_textShimmer_eCLdq 650ms ease-out forwards;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@keyframes AIAutocomplete-module_textShimmer_eCLdq {
|
|
131
|
+
0% {
|
|
132
|
+
background-position: 100% 0;
|
|
133
|
+
}
|
|
134
|
+
100% {
|
|
135
|
+
background-position: -50% 0;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.AIAutocomplete-module_shimmerHidden_45-Pf {
|
|
140
|
+
color: transparent !important;
|
|
141
|
+
}
|
|
142
|
+
`,document.head.appendChild(e)}var F={container:"AIAutocomplete-module_container_KKjFU",inputWrapper:"AIAutocomplete-module_inputWrapper_FLq1b",editorArea:"AIAutocomplete-module_editorArea_7rBWq",sizerContent:"AIAutocomplete-module_sizerContent_DQgmV",sizerText:"AIAutocomplete-module_sizerText_iZIMK",sizerTextVisible:"AIAutocomplete-module_sizerTextVisible_HR-5h",textareaHidden:"AIAutocomplete-module_textareaHidden_UayJt",placeholderText:"AIAutocomplete-module_placeholderText_K3ayy",textarea:"AIAutocomplete-module_textarea_eyn6A",submitButton:"AIAutocomplete-module_submitButton_sl1Mi",shimmer:"AIAutocomplete-module_shimmer_13AnY",shimmerRevealed:"AIAutocomplete-module_shimmerRevealed_RR8dp",shimmerSweep:"AIAutocomplete-module_shimmerSweep_ARCon",textShimmer:"AIAutocomplete-module_textShimmer_eCLdq",shimmerHidden:"AIAutocomplete-module_shimmerHidden_45-Pf"};if(typeof document<"u"&&!document.getElementById("ac-style-2eef895d")){let e=document.createElement("style");e.id="ac-style-2eef895d",e.textContent=`.AIAutocompleteDropdown-module_dropdown_yz2KC {
|
|
90
143
|
position: absolute;
|
|
91
144
|
left: 0;
|
|
92
145
|
right: 0;
|
|
93
146
|
top: 100%;
|
|
94
147
|
margin-top: 6px;
|
|
95
|
-
background: var(--ac-color-background-default, #
|
|
148
|
+
background: var(--ac-color-background-default, #0b0247);
|
|
96
149
|
border-radius: 23px;
|
|
97
150
|
overflow: hidden;
|
|
98
151
|
z-index: 10;
|
|
@@ -105,10 +158,10 @@
|
|
|
105
158
|
opacity: 1;
|
|
106
159
|
pointer-events: auto;
|
|
107
160
|
}
|
|
108
|
-
`,document.head.appendChild(e)}var
|
|
161
|
+
`,document.head.appendChild(e)}var ke={dropdown:"AIAutocompleteDropdown-module_dropdown_yz2KC",visible:"AIAutocompleteDropdown-module_visible_QCoXj"};if(typeof document<"u"&&!document.getElementById("ac-style-d91f2b06")){let e=document.createElement("style");e.id="ac-style-d91f2b06",e.textContent=`.SuggestionGrid-module_grid_jvaPb {
|
|
109
162
|
display: grid;
|
|
110
163
|
grid-template-columns: 1fr 1fr;
|
|
111
|
-
gap:
|
|
164
|
+
gap: 0 18px;
|
|
112
165
|
padding: 18px 24px;
|
|
113
166
|
max-height: 192px;
|
|
114
167
|
overflow-y: auto;
|
|
@@ -128,16 +181,21 @@
|
|
|
128
181
|
background: rgba(255, 255, 255, 0.3);
|
|
129
182
|
border-radius: 3px;
|
|
130
183
|
}
|
|
131
|
-
`,document.head.appendChild(e)}var
|
|
184
|
+
`,document.head.appendChild(e)}var Ue={grid:"SuggestionGrid-module_grid_jvaPb"};var fe=require("react");if(typeof document<"u"&&!document.getElementById("ac-style-f6bdc634")){let e=document.createElement("style");e.id="ac-style-f6bdc634",e.textContent=`.SuggestionItem-module_item_d4vpD {
|
|
185
|
+
position: relative;
|
|
186
|
+
overflow: visible;
|
|
132
187
|
display: flex;
|
|
133
188
|
align-items: center;
|
|
134
189
|
font-family: "IBM Plex Sans", sans-serif;
|
|
135
|
-
font-size:
|
|
190
|
+
font-size: 19px;
|
|
136
191
|
line-height: 30px;
|
|
137
192
|
color: var(--ac-color-text-muted, #c1c4cb);
|
|
138
|
-
white-space:
|
|
193
|
+
white-space: normal;
|
|
194
|
+
word-break: break-word;
|
|
139
195
|
opacity: 0.35;
|
|
140
|
-
|
|
196
|
+
border-radius: 12px;
|
|
197
|
+
padding: 12px 10px;
|
|
198
|
+
animation: SuggestionItem-module_fadeIn_I8u35 500ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
141
199
|
}
|
|
142
200
|
|
|
143
201
|
@keyframes SuggestionItem-module_fadeIn_I8u35 {
|
|
@@ -146,6 +204,11 @@
|
|
|
146
204
|
}
|
|
147
205
|
}
|
|
148
206
|
|
|
207
|
+
.SuggestionItem-module_content_T-Qba {
|
|
208
|
+
position: relative;
|
|
209
|
+
z-index: 2;
|
|
210
|
+
}
|
|
211
|
+
|
|
149
212
|
.SuggestionItem-module_tappable_70KcX {
|
|
150
213
|
cursor: pointer;
|
|
151
214
|
}
|
|
@@ -165,11 +228,266 @@
|
|
|
165
228
|
}
|
|
166
229
|
|
|
167
230
|
.SuggestionItem-module_tag_e3Fwe {
|
|
168
|
-
font-size:
|
|
231
|
+
font-size: 11px;
|
|
169
232
|
margin-left: 6px;
|
|
170
233
|
opacity: 0.5;
|
|
171
234
|
}
|
|
172
|
-
|
|
235
|
+
|
|
236
|
+
.SuggestionItem-module_pressed_98o-r {
|
|
237
|
+
opacity: 0.8;
|
|
238
|
+
color: var(--ac-color-text-default, #fff);
|
|
239
|
+
background: rgba(255, 255, 255, 0.06);
|
|
240
|
+
animation:
|
|
241
|
+
SuggestionItem-module_glassFade_oyiSj 500ms ease forwards,
|
|
242
|
+
SuggestionItem-module_tapDown_G3WGz 500ms ease forwards;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
@keyframes SuggestionItem-module_tapDown_G3WGz {
|
|
246
|
+
0% {
|
|
247
|
+
transform: scale(1);
|
|
248
|
+
}
|
|
249
|
+
30% {
|
|
250
|
+
transform: scale(0.97);
|
|
251
|
+
}
|
|
252
|
+
100% {
|
|
253
|
+
transform: scale(1);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
@keyframes SuggestionItem-module_glassFade_oyiSj {
|
|
258
|
+
0% {
|
|
259
|
+
background: rgba(255, 255, 255, 0.1);
|
|
260
|
+
}
|
|
261
|
+
100% {
|
|
262
|
+
background: transparent;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* Border streaks \u2014 horizontal segments */
|
|
267
|
+
|
|
268
|
+
.SuggestionItem-module_streaks_d9PEB {
|
|
269
|
+
position: absolute;
|
|
270
|
+
inset: 0;
|
|
271
|
+
z-index: 1;
|
|
272
|
+
pointer-events: none;
|
|
273
|
+
border-radius: inherit;
|
|
274
|
+
overflow: hidden;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Bottom horizontal: 40% from right \u2192 right corner */
|
|
278
|
+
.SuggestionItem-module_streaks_d9PEB::before {
|
|
279
|
+
content: "";
|
|
280
|
+
position: absolute;
|
|
281
|
+
bottom: -3px;
|
|
282
|
+
left: 60%;
|
|
283
|
+
width: 0;
|
|
284
|
+
height: 6px;
|
|
285
|
+
background: radial-gradient(
|
|
286
|
+
ellipse at center,
|
|
287
|
+
rgba(255, 255, 255, 0.5) 0%,
|
|
288
|
+
rgba(255, 255, 255, 0.2) 40%,
|
|
289
|
+
transparent 70%
|
|
290
|
+
);
|
|
291
|
+
box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.2);
|
|
292
|
+
filter: blur(1px);
|
|
293
|
+
border-radius: 50%;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/* Top horizontal: 40% from left \u2192 left corner */
|
|
297
|
+
.SuggestionItem-module_streaks_d9PEB::after {
|
|
298
|
+
content: "";
|
|
299
|
+
position: absolute;
|
|
300
|
+
top: -3px;
|
|
301
|
+
right: 60%;
|
|
302
|
+
width: 0;
|
|
303
|
+
height: 6px;
|
|
304
|
+
background: radial-gradient(
|
|
305
|
+
ellipse at center,
|
|
306
|
+
rgba(255, 255, 255, 0.5) 0%,
|
|
307
|
+
rgba(255, 255, 255, 0.2) 40%,
|
|
308
|
+
transparent 70%
|
|
309
|
+
);
|
|
310
|
+
box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.2);
|
|
311
|
+
filter: blur(1px);
|
|
312
|
+
border-radius: 50%;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* Border streaks \u2014 vertical segments */
|
|
316
|
+
|
|
317
|
+
.SuggestionItem-module_streaksVert_ERlV1 {
|
|
318
|
+
position: absolute;
|
|
319
|
+
inset: 0;
|
|
320
|
+
z-index: 1;
|
|
321
|
+
pointer-events: none;
|
|
322
|
+
border-radius: inherit;
|
|
323
|
+
overflow: hidden;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/* Right vertical: bottom-right corner \u2192 up */
|
|
327
|
+
.SuggestionItem-module_streaksVert_ERlV1::before {
|
|
328
|
+
content: "";
|
|
329
|
+
position: absolute;
|
|
330
|
+
bottom: 0;
|
|
331
|
+
right: -3px;
|
|
332
|
+
width: 6px;
|
|
333
|
+
height: 0;
|
|
334
|
+
background: radial-gradient(
|
|
335
|
+
ellipse at center,
|
|
336
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
337
|
+
rgba(255, 255, 255, 0.15) 40%,
|
|
338
|
+
transparent 70%
|
|
339
|
+
);
|
|
340
|
+
box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.15);
|
|
341
|
+
filter: blur(1px);
|
|
342
|
+
border-radius: 50%;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/* Left vertical: top-left corner \u2192 down */
|
|
346
|
+
.SuggestionItem-module_streaksVert_ERlV1::after {
|
|
347
|
+
content: "";
|
|
348
|
+
position: absolute;
|
|
349
|
+
top: 0;
|
|
350
|
+
left: -3px;
|
|
351
|
+
width: 6px;
|
|
352
|
+
height: 0;
|
|
353
|
+
background: radial-gradient(
|
|
354
|
+
ellipse at center,
|
|
355
|
+
rgba(255, 255, 255, 0.4) 0%,
|
|
356
|
+
rgba(255, 255, 255, 0.15) 40%,
|
|
357
|
+
transparent 70%
|
|
358
|
+
);
|
|
359
|
+
box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.15);
|
|
360
|
+
filter: blur(1px);
|
|
361
|
+
border-radius: 50%;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.SuggestionItem-module_pressed_98o-r .SuggestionItem-module_streaks_d9PEB::before {
|
|
365
|
+
animation: SuggestionItem-module_streakHorizRight_aboGz 500ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.SuggestionItem-module_pressed_98o-r .SuggestionItem-module_streaks_d9PEB::after {
|
|
369
|
+
animation: SuggestionItem-module_streakHorizLeft_BreWJ 500ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.SuggestionItem-module_pressed_98o-r .SuggestionItem-module_streaksVert_ERlV1::before {
|
|
373
|
+
animation: SuggestionItem-module_streakVertUp_to1GD 300ms cubic-bezier(0.3, 0, 0.2, 1) 200ms forwards;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.SuggestionItem-module_pressed_98o-r .SuggestionItem-module_streaksVert_ERlV1::after {
|
|
377
|
+
animation: SuggestionItem-module_streakVertDown_OrcLh 300ms cubic-bezier(0.3, 0, 0.2, 1) 200ms forwards;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/* Horizontal: bottom center-ish \u2192 right edge */
|
|
381
|
+
@keyframes SuggestionItem-module_streakHorizRight_aboGz {
|
|
382
|
+
0% {
|
|
383
|
+
width: 0;
|
|
384
|
+
height: 4px;
|
|
385
|
+
opacity: 0;
|
|
386
|
+
filter: blur(1px);
|
|
387
|
+
box-shadow: 0 0 8px 3px rgba(255, 255, 255, 0.3);
|
|
388
|
+
}
|
|
389
|
+
15% {
|
|
390
|
+
height: 4px;
|
|
391
|
+
opacity: 1;
|
|
392
|
+
filter: blur(1px);
|
|
393
|
+
box-shadow: 0 0 10px 4px rgba(255, 255, 255, 0.3);
|
|
394
|
+
}
|
|
395
|
+
80% {
|
|
396
|
+
width: 50%;
|
|
397
|
+
height: 10px;
|
|
398
|
+
opacity: 0.8;
|
|
399
|
+
filter: blur(3px);
|
|
400
|
+
box-shadow: 0 0 16px 6px rgba(255, 255, 255, 0.1);
|
|
401
|
+
}
|
|
402
|
+
100% {
|
|
403
|
+
width: 50%;
|
|
404
|
+
height: 12px;
|
|
405
|
+
opacity: 0;
|
|
406
|
+
filter: blur(5px);
|
|
407
|
+
box-shadow: 0 0 20px 8px rgba(255, 255, 255, 0.03);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* Horizontal: top center-ish \u2192 left edge */
|
|
412
|
+
@keyframes SuggestionItem-module_streakHorizLeft_BreWJ {
|
|
413
|
+
0% {
|
|
414
|
+
width: 0;
|
|
415
|
+
height: 4px;
|
|
416
|
+
opacity: 0;
|
|
417
|
+
filter: blur(1px);
|
|
418
|
+
box-shadow: 0 0 8px 3px rgba(255, 255, 255, 0.3);
|
|
419
|
+
}
|
|
420
|
+
15% {
|
|
421
|
+
height: 4px;
|
|
422
|
+
opacity: 1;
|
|
423
|
+
filter: blur(1px);
|
|
424
|
+
box-shadow: 0 0 10px 4px rgba(255, 255, 255, 0.3);
|
|
425
|
+
}
|
|
426
|
+
80% {
|
|
427
|
+
width: 50%;
|
|
428
|
+
height: 10px;
|
|
429
|
+
opacity: 0.8;
|
|
430
|
+
filter: blur(3px);
|
|
431
|
+
box-shadow: 0 0 16px 6px rgba(255, 255, 255, 0.1);
|
|
432
|
+
}
|
|
433
|
+
100% {
|
|
434
|
+
width: 50%;
|
|
435
|
+
height: 12px;
|
|
436
|
+
opacity: 0;
|
|
437
|
+
filter: blur(5px);
|
|
438
|
+
box-shadow: 0 0 20px 8px rgba(255, 255, 255, 0.03);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/* Vertical segments start matching horizontal state at 200ms handoff */
|
|
443
|
+
@keyframes SuggestionItem-module_streakVertUp_to1GD {
|
|
444
|
+
0% {
|
|
445
|
+
height: 0;
|
|
446
|
+
width: 6px;
|
|
447
|
+
opacity: 0.9;
|
|
448
|
+
filter: blur(1.8px);
|
|
449
|
+
box-shadow: 0 0 12px 5px rgba(255, 255, 255, 0.25);
|
|
450
|
+
}
|
|
451
|
+
75% {
|
|
452
|
+
height: 100%;
|
|
453
|
+
width: 10px;
|
|
454
|
+
opacity: 0.4;
|
|
455
|
+
filter: blur(3px);
|
|
456
|
+
box-shadow: 0 0 18px 8px rgba(255, 255, 255, 0.06);
|
|
457
|
+
}
|
|
458
|
+
100% {
|
|
459
|
+
height: 100%;
|
|
460
|
+
width: 14px;
|
|
461
|
+
opacity: 0;
|
|
462
|
+
filter: blur(5px);
|
|
463
|
+
box-shadow: 0 0 24px 10px rgba(255, 255, 255, 0.02);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
@keyframes SuggestionItem-module_streakVertDown_OrcLh {
|
|
468
|
+
0% {
|
|
469
|
+
height: 0;
|
|
470
|
+
width: 6px;
|
|
471
|
+
opacity: 0.9;
|
|
472
|
+
filter: blur(1.8px);
|
|
473
|
+
box-shadow: 0 0 12px 5px rgba(255, 255, 255, 0.25);
|
|
474
|
+
}
|
|
475
|
+
75% {
|
|
476
|
+
height: 100%;
|
|
477
|
+
width: 10px;
|
|
478
|
+
opacity: 0.4;
|
|
479
|
+
filter: blur(3px);
|
|
480
|
+
box-shadow: 0 0 18px 8px rgba(255, 255, 255, 0.06);
|
|
481
|
+
}
|
|
482
|
+
100% {
|
|
483
|
+
height: 100%;
|
|
484
|
+
width: 14px;
|
|
485
|
+
opacity: 0;
|
|
486
|
+
filter: blur(5px);
|
|
487
|
+
box-shadow: 0 0 24px 10px rgba(255, 255, 255, 0.02);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
`,document.head.appendChild(e)}var W={item:"SuggestionItem-module_item_d4vpD",fadeIn:"SuggestionItem-module_fadeIn_I8u35",content:"SuggestionItem-module_content_T-Qba",tappable:"SuggestionItem-module_tappable_70KcX",nonTappable:"SuggestionItem-module_nonTappable_xSZM-",highlighted:"SuggestionItem-module_highlighted_Hb0SU",tag:"SuggestionItem-module_tag_e3Fwe",pressed:"SuggestionItem-module_pressed_98o-r",glassFade:"SuggestionItem-module_glassFade_oyiSj",tapDown:"SuggestionItem-module_tapDown_G3WGz",streaks:"SuggestionItem-module_streaks_d9PEB",streaksVert:"SuggestionItem-module_streaksVert_ERlV1",streakHorizRight:"SuggestionItem-module_streakHorizRight_aboGz",streakHorizLeft:"SuggestionItem-module_streakHorizLeft_BreWJ",streakVertUp:"SuggestionItem-module_streakVertUp_to1GD",streakVertDown:"SuggestionItem-module_streakVertDown_OrcLh"};var oe=require("react/jsx-runtime");function $e({option:e,isHighlighted:r,onSelect:t,onHighlight:o,id:n}){let[a,l]=(0,fe.useState)(!1),m=(0,fe.useRef)(void 0),d=()=>{!e.is_tappable||a||(l(!0),t(e),clearTimeout(m.current),m.current=setTimeout(()=>l(!1),400))},c=[W.item,r?W.highlighted:"",e.is_tappable?W.tappable:W.nonTappable,a?W.pressed:""].filter(Boolean).join(" ");return(0,oe.jsxs)("div",{id:n,role:"option","aria-selected":r,className:c,tabIndex:e.is_tappable?0:-1,onClick:d,onKeyDown:u=>{e.is_tappable&&(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),d())},onMouseEnter:o,children:[(0,oe.jsx)("div",{className:W.streaks}),(0,oe.jsx)("div",{className:W.streaksVert}),(0,oe.jsxs)("span",{className:W.content,children:[e.icon?`${e.icon} ${e.text}`:e.text,e.tag&&(0,oe.jsx)("span",{className:W.tag,children:e.tag})]})]})}var Ce=require("react/jsx-runtime");function De({options:e,activeIndex:r,onSelect:t,onHighlight:o,listboxId:n}){return(0,Ce.jsx)("div",{className:Ue.grid,children:e.map((a,l)=>(0,Ce.jsx)($e,{option:a,isHighlighted:l===r,onSelect:t,onHighlight:()=>o(l),id:`${n}-option-${l}`},a.text))})}var Re=require("react/jsx-runtime");function be({suggestions:e,activeIndex:r,onSelect:t,onHighlight:o,isOpen:n,id:a,className:l}){let d=e[0]?.options??[],c=n&&d.length>0;return(0,Re.jsx)("div",{id:a,role:"listbox",className:`${ke.dropdown} ${c?ke.visible:""} ${l??""}`,onMouseDown:u=>u.preventDefault(),children:d.length>0&&(0,Re.jsx)(De,{options:d,activeIndex:r,onSelect:t,onHighlight:o,listboxId:a})})}if(typeof document<"u"&&!document.getElementById("ac-style-b745b4fb")){let e=document.createElement("style");e.id="ac-style-b745b4fb",e.textContent=`.PillList-module_list_qvLqO {
|
|
173
491
|
position: relative;
|
|
174
492
|
z-index: 1;
|
|
175
493
|
pointer-events: auto;
|
|
@@ -191,7 +509,7 @@
|
|
|
191
509
|
background: var(--ac-color-background-supportive, #313255);
|
|
192
510
|
color: var(--ac-color-text-muted, #c1c4cb);
|
|
193
511
|
font-family: "IBM Plex Sans", sans-serif;
|
|
194
|
-
font-size:
|
|
512
|
+
font-size: 19px;
|
|
195
513
|
line-height: 30px;
|
|
196
514
|
cursor: pointer;
|
|
197
515
|
white-space: nowrap;
|
|
@@ -211,5 +529,5 @@
|
|
|
211
529
|
opacity: 0;
|
|
212
530
|
}
|
|
213
531
|
}
|
|
214
|
-
`,document.head.appendChild(e)}var le={list:"PillList-module_list_qvLqO",pill:"PillList-module_pill_osSyz",fadeIn:"PillList-module_fadeIn_Aezob",active:"PillList-module_active_Oll--"};var Pe=require("react/jsx-runtime");function st(e){return e===0?.4:e===1?.3:.15}function Ue({pills:e,activePillIndex:n,onSelectPill:t}){return(0,Pe.jsx)("span",{className:le.list,children:e.map((o,r)=>(0,Pe.jsx)("button",{type:"button",className:`${le.pill} ${r===n?le.active:""}`,style:{opacity:st(r)},onClick:()=>t(r),children:o.text},`${o.type}-${o.text}`))})}var p=require("react");function Y(e,n,t){let o=e.slice(n);if(t||n===0||e[n-1]===" ")return o;let r=o.indexOf(" ");return r===-1?"":o.slice(r+1)}function ce(e,n){if(!e)return[];let t=n.trimStart();if(!t)return e;let o=t.toLowerCase();return e.filter(r=>!r.is_tappable||r.text.toLowerCase().includes(o))}function re(e,n){if(!e)return null;let t=n.trim();if(!t)return null;let o=t.toLowerCase();return e.find(r=>r.is_tappable&&r.text.toLowerCase()===o)??null}function De(e,n){let t=[],o=0;for(let i of n){let s=e.indexOf(i.text,o);s!==-1&&(s>o&&t.push({type:"text",value:e.slice(o,s)}),t.push({type:"completed",value:i.text,param:i}),o=s+i.text.length)}let r=e.slice(o);return r&&t.push({type:"text",value:r}),t}function Ke(e,n){let t=[],o=[],r=0;for(let i of n){let s=e.indexOf(i.text,r);s===-1?o.push(i):(t.push(i),r=s+i.text.length)}return{valid:t,invalid:o}}var R=require("react");var lt="0.1.13",je=!1;function ct(){return crypto.randomUUID()}function ut(e,n){return{placeholder:e.placeholder,type:e.type,...n&&{text:e.text},kind:e.kind}}async function ze(e,n,t){let o=t?.apiConfig,r=o?.apiKey??"";!r&&!je&&(je=!0,console.warn("[AIAutocomplete] No apiKey in apiConfig. Requests will be sent without an Authorization header."));let i=o?.authScheme??"Bearer",s=!t?.maskCompletedText,h=n.find(g=>g.type==="contact"&&g.metadata?.contact_account_count)?.metadata?.contact_account_count,m=typeof h=="number"?h:void 0,c={data:{raw_query:e,completed_params:n.map(g=>ut(g,s)),...m!=null&&{contact_account_count:m}},meta:{request_id:ct(),request_at:new Date().toISOString(),language:typeof navigator<"u"?navigator.language:"en-US",client_version:lt}},u={"Content-Type":"application/json",...o?.appIdentifier&&{"X-App-Identifier":o.appIdentifier},...o?.headers};r&&(u.Authorization=i==="Basic"?`Basic ${btoa(r)}`:`Bearer ${r}`);let y=await fetch(o?.endpoint??"/ac/suggest",{method:"POST",headers:u,body:JSON.stringify(c),signal:t?.signal});if(!y.ok)throw new Error(`API error: ${y.status} ${y.statusText}`);return y.json()}function ee(e,n){let t=e,o={},r=[];for(let i of n){let s=(o[i.type]??0)+1;o[i.type]=s;let m=`{{${i.type.toUpperCase().replace(/\s+/g,"_")}_${s}}}`,c=t.indexOf(i.text);c!==-1&&(t=t.slice(0,c)+m+t.slice(c+i.text.length)),r.push({...i,placeholder:m})}return{rawQuery:t,completedParams:r}}function Fe(e,n){return n?e.map(t=>{let o=n[t.type];if(!o)return t;let r=o("");if(r.length===0)return t;let i=new Set(r.map(h=>h.text)),s=(t.options??[]).filter(h=>!i.has(h.text));return{...t,options:[...r,...s]}}):e}var pt=100,dt=300,mt=2;function qe({textRef:e,suggestionsRef:n,filterBaseRef:t,filterInProgressRef:o,maskCompletedTextRef:r,apiConfigRef:i,optionOverridesRef:s,onErrorRef:h,setCompletedParams:m,setSuggestions:c,setActiveDropdownIndex:u}){let[y,g]=(0,R.useState)(!1),[f,_]=(0,R.useState)(null),[x,v]=(0,R.useState)(!1),w=(0,R.useRef)(0),A=(0,R.useRef)(null),I=(0,R.useRef)(""),b=(0,R.useCallback)(async(d,a)=>{A.current?.abort();let l=new AbortController;A.current=l;let K=++w.current,k=e.current.length;n.current.some(E=>E.type!=="placeholder")||g(!0),_(null);try{let E=await ze(d,a,{maskCompletedText:r.current,signal:l.signal,apiConfig:i.current});if(K!==w.current)return;let j=Fe(E.data.suggestions??[],s.current);v(E.data.is_ready??!1),I.current=d;let L=E.data.input??[],M=L[L.length-1],U=e.current;if(M?.state==="in_progress"){o.current=!0;let N=U.toLowerCase().lastIndexOf(M.text.toLowerCase());N!==-1?t.current=N:t.current=k}else o.current=!1,t.current=k;let q=j.filter(N=>N.type!=="placeholder")[0];if(q){let N=Y(U,t.current,o.current),B=re(q.options,N);B&&(m(V=>[...V,{id:crypto.randomUUID(),placeholder:"",type:q.type,text:B.text,kind:B.kind,suggestionType:q.type,suggestionPlaceholder:q.text,options:q.options??[],metadata:B.metadata}]),j=j.filter(V=>V!==q))}c(j),g(!1),u(-1)}catch(E){if(K===w.current){let j=E instanceof Error?E:new Error(String(E));_(j),g(!1),h.current?.(j)}}},[e,n,t,o,r,i,s,h,m,c,u]);return(0,R.useEffect)(()=>(b("",[]),()=>{A.current?.abort()}),[b]),{doFetch:b,isLoading:y,error:f,isReady:x,lastRawQueryRef:I}}function Ne({text:e,completedParams:n,doFetch:t,filterBaseRef:o,filterInProgressRef:r,skipNextFetchRef:i,suggestionsRef:s,lastRawQueryRef:h}){let m=(0,R.useRef)(null),c=(0,R.useRef)(null),u=(0,R.useRef)(!0);(0,R.useEffect)(()=>{m.current&&clearTimeout(m.current),c.current&&clearTimeout(c.current);let y=g=>{if(i.current)return i.current=!1,!1;if(!e&&n.length===0)return u.current?(t("",[]),!0):(u.current=!0,!1);let f=Y(e,o.current,r.current),v=s.current.filter(k=>k.type!=="placeholder")[0],A=(v?ce(v.options,f):[]).filter(k=>k.is_tappable),I=v?re(v.options,f)!==null:!1,b=f.trim().length>0;if(A.length>0&&!I&&b)return!1;let{rawQuery:d,completedParams:a}=ee(e,n),l=d.length<h.current.length,K=Math.abs(d.length-h.current.length);return l||K>=g?(t(d,a),!0):!1};return m.current=setTimeout(()=>{y(mt)&&c.current&&clearTimeout(c.current)},pt),c.current=setTimeout(()=>y(1),dt),()=>{m.current&&clearTimeout(m.current),c.current&&clearTimeout(c.current)}},[e,n,t,o,r,i,s,h])}var Ce=require("react");function Qe({activeDropdownIndex:e,setActiveDropdownIndex:n,filteredOptions:t,selectOption:o,onSubmitRef:r,text:i,completedParams:s,isDropdownOpen:h,hasPlaceholder:m,placeholderText:c,suggestions:u,actionableSuggestions:y,setActivePill:g,filterBaseRef:f,columns:_,setText:x,setCompletedParams:v,setSuggestions:w}){let A=(0,Ce.useCallback)(()=>{let b=t.map((a,l)=>a.is_tappable?l:-1).filter(a=>a!==-1),d=Array.from({length:_},()=>[]);for(let a of b)d[a%_].push(a);return d.flat()},[t,_]);return{handleKeyDown:(0,Ce.useCallback)(b=>{let d=A();switch(b.key){case"ArrowDown":{if(b.preventDefault(),d.length===0)return;let a=d.indexOf(e),l=a<d.length-1?a+1:0;n(d[l]);break}case"ArrowUp":{if(b.preventDefault(),d.length===0)return;let a=d.indexOf(e),l=a>0?a-1:d.length-1;n(d[l]);break}case"ArrowRight":{if(e<0){y.length>1&&(b.preventDefault(),g(1));break}if(e%_<_-1){let l=e+1;l<t.length&&t[l]?.is_tappable&&(b.preventDefault(),n(l))}break}case"ArrowLeft":{if(e<0)break;if(e%_>0){let a=e-1;a>=0&&t[a]?.is_tappable&&(b.preventDefault(),n(a))}break}case"Enter":{if(b.preventDefault(),e>=0&&t[e]?.is_tappable)o(t[e]);else if(r.current){let{rawQuery:a,completedParams:l}=ee(i,s),K={query:i.trim(),raw_query:a,completed_params:l};r.current(K)}break}case"Tab":{if(e>=0&&t[e]?.is_tappable)b.preventDefault(),o(t[e]);else if(h){let a=t.find(l=>l.is_tappable);a&&(b.preventDefault(),o(a))}else if(!i&&m){b.preventDefault();let a=u.find(l=>l.type==="placeholder");a?(x(c),f.current=c.length,v(l=>[...l,{id:crypto.randomUUID(),placeholder:"",type:a.type,text:c,kind:null,suggestionType:a.type,suggestionPlaceholder:a.text,options:a.options??[]}]),w(l=>l.filter(K=>K!==a))):(x(c),f.current=c.length)}break}case"Escape":n(-1);break}},[y,e,_,s,t,f,A,m,h,r,c,o,n,g,v,w,x,u,i]),getTappableIndices:A}}var ue=require("react");function $e({completedParams:e,suggestions:n,setCompletedParams:t,setSuggestions:o,setActiveDropdownIndex:r,filterBaseRef:i,pillTappedRef:s}){let h=(0,ue.useCallback)(u=>{let y=n.filter(x=>x.type!=="placeholder");if(u<0||u>=y.length)return;let g=y[u],f=y.filter((x,v)=>v!==u),_=n.filter(x=>x.type==="placeholder");o([..._,g,...f]),s.current=!0,r(-1)},[n,o,r,s]),m=(0,ue.useCallback)(()=>{if(e.length===0)return;let u=e[e.length-1],y={type:u.suggestionType,text:u.suggestionPlaceholder,required:!0,options:u.options};t(g=>g.slice(0,-1)),o(g=>[y,...g]),r(-1)},[e,t,o,r]),c=(0,ue.useCallback)(u=>{let y={type:u.suggestionType,text:u.suggestionPlaceholder,required:!0,options:u.options};return{apply:g=>{g(f=>{let _=0;for(let x of e){let v=f.indexOf(x.text,_);if(v!==-1){if(x.id===u.id){let w=f.slice(0,v),A=f.slice(v+u.text.length),I=(w+A).replace(/ {2,}/g," ");return i.current=Math.min(i.current,I.length),I}_=v+x.text.length}}return f}),t(f=>f.filter(_=>_.id!==u.id)),o(f=>[y,...f]),r(-1),s.current=!0}}},[e,t,o,r,i,s]);return{setActivePill:h,removeLastParam:m,reEditParam:c}}var gt=0;function ft(){let e=(0,p.useRef)(null);return e.current===null&&(e.current=`:ac-${++gt}:`),e.current}function pe({onSubmit:e,onError:n,optionOverrides:t,maskCompletedText:o,placeholder:r,apiConfig:i,columns:s=2,eagerSuggestions:h=!0,value:m,completedParams:c,onChange:u,onParamsChange:y}){let g=m!==void 0,f=c!==void 0,[_,x]=(0,p.useState)(""),[v,w]=(0,p.useState)([]),[A,I]=(0,p.useState)([]),[b,d]=(0,p.useState)(-1),a=g?m:_,l=f?c:v,K=(0,p.useRef)(e);K.current=e;let k=(0,p.useRef)(u);k.current=u;let $=(0,p.useRef)(y);$.current=y;let E=(0,p.useRef)(m);E.current=m;let j=(0,p.useRef)(c);j.current=c;let L=(0,p.useCallback)(S=>{if(typeof S=="function")if(g){let C=S(E.current??"");k.current?.(C)}else x(C=>{let H=S(C);return k.current?.(H),H});else g||x(S),k.current?.(S)},[g]),M=(0,p.useCallback)(S=>{if(typeof S=="function")if(f){let C=S(j.current??[]);$.current?.(C)}else w(C=>{let H=S(C);return $.current?.(H),H});else f||w(S),$.current?.(S)},[f]),U=(0,p.useRef)(n);U.current=n;let W=(0,p.useRef)(t);W.current=t;let q=(0,p.useRef)(o);q.current=o;let N=(0,p.useRef)(i);N.current=i;let B=(0,p.useRef)(a);B.current=a;let V=(0,p.useRef)(A);V.current=A;let z=(0,p.useRef)(0),te=(0,p.useRef)(!1),ie=(0,p.useRef)(!1),Ie=(0,p.useRef)(!1),de=ft(),{doFetch:me,isLoading:we,error:He,isReady:We,lastRawQueryRef:ge}=qe({textRef:B,suggestionsRef:V,filterBaseRef:z,filterInProgressRef:te,maskCompletedTextRef:q,apiConfigRef:N,optionOverridesRef:W,onErrorRef:U,setCompletedParams:M,setSuggestions:I,setActiveDropdownIndex:d});Ne({text:a,completedParams:l,doFetch:me,filterBaseRef:z,filterInProgressRef:te,skipNextFetchRef:Ie,suggestionsRef:V,lastRawQueryRef:ge});let Ve=(0,p.useMemo)(()=>De(a,l),[a,l]);z.current=Math.min(z.current,a.length);let fe=Y(a,z.current,te.current),be=(0,p.useMemo)(()=>A.filter(C=>C.type==="placeholder").map(C=>C.text).join(" ")||r||"",[A,r]),oe=(0,p.useMemo)(()=>A.filter(S=>S.type!=="placeholder"),[A]),P=oe[0],Oe=P?t?.[P.type]:void 0,Re=P?Oe?Oe(fe.trim()):P.options??[]:[],he=(0,p.useMemo)(()=>ce(Re,fe),[Re,fe]),ke=be.length>0,ye=!we&&he.length>0&&(!!a||ie.current||!ke),Me=(0,p.useCallback)(S=>{if(!P)return;let C={id:crypto.randomUUID(),placeholder:"",type:P.type,text:S.text,kind:S.kind,suggestionType:P.type,suggestionPlaceholder:P.text,options:P.options??[],metadata:S.metadata},H=z.current,D=B.current.slice(0,H);if(D.length>0&&!D.endsWith(" ")){let O=D.split(/\s+/).pop()??"";O&&S.text.toLowerCase().startsWith(O.toLowerCase())&&(D=D.slice(0,D.length-O.length))}let Se=D.length>0&&D[D.length-1]!==" ",Z=D+(Se?" ":"")+S.text+" ";L(Z),z.current=Z.length,M(O=>[...O,C]),ie.current=!1,d(-1);let G=oe.length-1;h&&G>0?(I(O=>O.filter(X=>X!==P)),Ie.current=!0):I(O=>O.filter(X=>X.type==="placeholder"))},[P,oe,h,L,M]),Ge=(0,p.useCallback)(S=>{let C=S.target.value,D=C.length>0&&!S.nativeEvent?.isComposing&&C[0]!==C[0].toUpperCase()?C[0].toUpperCase()+C.slice(1):C;L(D),ie.current=!1,d(-1);let{valid:Se,invalid:Z}=Ke(D,l);if(Z.length>0){M(()=>Se);for(let G of Z)I(O=>[{type:G.suggestionType,text:G.suggestionPlaceholder,required:!0,options:G.options},...O])}if(P&&Z.length===0){let G=Y(D,z.current,te.current),O=re(P.options,G);O&&(M(X=>[...X,{id:crypto.randomUUID(),placeholder:"",type:P.type,text:O.text,kind:O.kind,suggestionType:P.type,suggestionPlaceholder:P.text,options:P.options??[],metadata:O.metadata}]),I(X=>X.filter(et=>et!==P)))}},[l,P,L,M]),ne=$e({completedParams:l,suggestions:A,setCompletedParams:M,setSuggestions:I,setActiveDropdownIndex:d,filterBaseRef:z,pillTappedRef:ie}),Xe=(0,p.useCallback)(S=>{ne.reEditParam(S).apply(L)},[ne,L]),{handleKeyDown:Ze}=Qe({activeDropdownIndex:b,setActiveDropdownIndex:d,filteredOptions:he,selectOption:Me,onSubmitRef:K,text:a,completedParams:l,isDropdownOpen:ye,hasPlaceholder:ke,placeholderText:be,suggestions:A,actionableSuggestions:oe,setActivePill:ne.setActivePill,filterBaseRef:z,columns:s,setText:L,setCompletedParams:M,setSuggestions:I}),Je=(0,p.useCallback)(()=>{L(""),M(()=>[]),I([]),d(-1),z.current=0,te.current=!1,ge.current="",me("",[])},[me,L,M,ge]),Ye=b>=0?`${de}-option-${b}`:void 0;return{completedParams:l,suggestionPills:oe,setActivePill:ne.setActivePill,removeLastParam:ne.removeLastParam,reEditParam:Xe,segments:Ve,suggestions:A,activeIndex:b,isReady:We,isLoading:we,error:He,inputProps:{value:a,placeholder:be||void 0,onChange:Ge,onKeyDown:Ze,role:"combobox","aria-expanded":ye,"aria-activedescendant":Ye,"aria-autocomplete":"list","aria-controls":de},reset:Je,dropdownProps:{suggestions:P?[{...P,options:he}]:[],activeIndex:b,onSelect:Me,onHighlight:d,isOpen:ye,id:de}}}var T=require("react/jsx-runtime"),Be=(0,F.forwardRef)(function({onSubmit:n,onError:t,optionOverrides:o,maskCompletedText:r,placeholder:i,className:s,apiConfig:h,columns:m,eagerSuggestions:c,value:u,completedParams:y,onChange:g,onParamsChange:f},_){let x=(0,F.useRef)(null),v=(0,F.useRef)(()=>{});(0,F.useEffect)(()=>{x.current?.focus()},[]);let{completedParams:w,suggestionPills:A,setActivePill:I,segments:b,inputProps:d,dropdownProps:a,reset:l}=pe({onSubmit:U=>v.current(U),onError:t,optionOverrides:o,maskCompletedText:r,placeholder:i,apiConfig:h,columns:m,eagerSuggestions:c,value:u,completedParams:y,onChange:g,onParamsChange:f});(0,F.useImperativeHandle)(_,()=>({focus:()=>x.current?.focus(),reset:l}),[l]);let K=()=>{x.current?.focus()},k=!!d.value||w.length>0,$=(0,F.useCallback)(()=>{if(!k)return;let{rawQuery:U,completedParams:W}=ee(d.value,w);n({query:d.value.trim(),raw_query:U,completed_params:W}),l()},[k,d.value,w,n,l]);v.current=$;let{onChange:E,placeholder:j,...L}=d,M=!d.value;return(0,T.jsxs)("div",{className:`${Q.container} ${s??""}`,children:[(0,T.jsx)(se,{...a}),(0,T.jsxs)("div",{className:Q.inputWrapper,onClick:K,children:[(0,T.jsxs)("div",{className:Q.editorArea,children:[(0,T.jsxs)("div",{className:Q.sizerContent,"aria-hidden":"true",children:[M&&j?(0,T.jsxs)("span",{className:Q.placeholderText,children:[j," "]}):(0,T.jsxs)("span",{className:Q.sizerText,children:[b.map((U,W)=>(0,T.jsx)("span",{children:U.value},`${W}-${U.type}`)),b.length===0&&"\xA0"]})," ",(0,T.jsx)(Ue,{pills:A,activePillIndex:0,onSelectPill:I})]}),(0,T.jsx)("textarea",{ref:x,className:Q.textarea,rows:1,onChange:E,...L})]}),(0,T.jsx)("button",{type:"button",className:Q.submitButton,disabled:!k,onClick:U=>{U.stopPropagation(),$()},"aria-label":"Submit",children:(0,T.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":"Submit",children:(0,T.jsx)("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})});0&&(module.exports={AIAutocomplete,AIAutocompleteDropdown,useAIAutocomplete});
|
|
532
|
+
`,document.head.appendChild(e)}var he={list:"PillList-module_list_qvLqO",pill:"PillList-module_pill_osSyz",fadeIn:"PillList-module_fadeIn_Aezob",active:"PillList-module_active_Oll--"};var Oe=require("react/jsx-runtime");function dt(e){return e===0?.4:e===1?.3:.15}function He({pills:e,activePillIndex:r,onSelectPill:t}){return(0,Oe.jsx)("span",{className:he.list,children:e.map((o,n)=>(0,Oe.jsx)("button",{type:"button",className:`${he.pill} ${n===r?he.active:""}`,style:{opacity:dt(n)},onClick:()=>t(n),children:o.text},`${o.type}-${o.text}`))})}var p=require("react");function ae(e,r,t){let o=e.slice(r);if(t||r===0||e[r-1]===" ")return o;let n=o.indexOf(" ");return n===-1?"":o.slice(n+1)}function xe(e,r){if(!e)return[];let t=r.trimStart();if(!t)return e;let o=t.toLowerCase();return e.filter(n=>!n.is_tappable||n.text.toLowerCase().includes(o))}function me(e,r){if(!e)return null;let t=r.trim();if(!t)return null;let o=t.toLowerCase();return e.find(n=>n.is_tappable&&n.text.toLowerCase()===o)??null}function Ne(e,r){let t=[],o=0;for(let a of r){let l=e.indexOf(a.text,o);l!==-1&&(l>o&&t.push({type:"text",value:e.slice(o,l)}),t.push({type:"completed",value:a.text,param:a}),o=l+a.text.length)}let n=e.slice(o);return n&&t.push({type:"text",value:n}),t}function Ve(e,r){let t=[],o=[],n=0;for(let a of r){let l=e.indexOf(a.text,n);l===-1?o.push(a):(t.push(a),n=l+a.text.length)}return{valid:t,invalid:o}}var U=require("react");var mt="0.1.15",je=!1;function gt(){return crypto.randomUUID()}function ft(e,r){return{placeholder:e.placeholder,type:e.type,...r&&{text:e.text},kind:e.kind}}async function Be(e,r,t){let o=t?.apiConfig,n=o?.apiKey??"";!n&&!je&&(je=!0,console.warn("[AIAutocomplete] No apiKey in apiConfig. Requests will be sent without an Authorization header."));let a=o?.authScheme??"Bearer",l=!t?.maskCompletedText,m=r.find(f=>f.type==="contact"&&f.metadata?.contact_account_count)?.metadata?.contact_account_count,d=typeof m=="number"?m:void 0,c={data:{raw_query:e,completed_params:r.map(f=>ft(f,l)),...d!=null&&{contact_account_count:d}},meta:{request_id:gt(),request_at:new Date().toISOString(),language:typeof navigator<"u"?navigator.language:"en-US",client_version:mt}},u={"Content-Type":"application/json",...o?.appIdentifier&&{"X-App-Identifier":o.appIdentifier},...o?.headers};n&&(u.Authorization=a==="Basic"?`Basic ${btoa(n)}`:`Bearer ${n}`);let g=await fetch(o?.endpoint??"/ac/suggest",{method:"POST",headers:u,body:JSON.stringify(c),signal:t?.signal});if(!g.ok)throw new Error(`API error: ${g.status} ${g.statusText}`);return g.json()}function se(e,r){let t=e,o={},n=[];for(let a of r){let l=(o[a.type]??0)+1;o[a.type]=l;let d=`{{${a.type.toUpperCase().replace(/\s+/g,"_")}_${l}}}`,c=t.indexOf(a.text);c!==-1&&(t=t.slice(0,c)+d+t.slice(c+a.text.length)),n.push({...a,placeholder:d})}return{rawQuery:t,completedParams:n}}function Ke(e,r){return r?e.map(t=>{let o=r[t.type];if(!o)return t;let n=o("");if(n.length===0)return t;let a=new Set(n.map(m=>m.text)),l=(t.options??[]).filter(m=>!a.has(m.text));return{...t,options:[...n,...l]}}):e}var bt=100,ht=300,xt=2;function qe({textRef:e,suggestionsRef:r,filterBaseRef:t,filterInProgressRef:o,maskCompletedTextRef:n,apiConfigRef:a,optionOverridesRef:l,onErrorRef:m,setCompletedParams:d,setSuggestions:c,setActiveDropdownIndex:u}){let[g,f]=(0,U.useState)(!1),[_,z]=(0,U.useState)(null),[w,b]=(0,U.useState)(!1),S=(0,U.useRef)(0),A=(0,U.useRef)(null),x=(0,U.useRef)(""),v=(0,U.useCallback)(async(B,I)=>{A.current?.abort();let P=new AbortController;A.current=P;let i=++S.current,s=e.current.length;r.current.some(L=>L.type!=="placeholder")||f(!0),z(null);try{let L=await Be(B,I,{maskCompletedText:n.current,signal:P.signal,apiConfig:a.current});if(i!==S.current)return;let O=Ke(L.data.suggestions??[],l.current);b(L.data.is_ready??!1),x.current=B;let ee=L.data.input??[],J=ee[ee.length-1],$=e.current;if(J?.state==="in_progress"){o.current=!0;let K=$.toLowerCase().lastIndexOf(J.text.toLowerCase());K!==-1?t.current=K:t.current=s}else o.current=!1,t.current=s;let V=O.filter(K=>K.type!=="placeholder")[0];if(V){let K=ae($,t.current,o.current),X=me(V.options,K);X&&(d(y=>[...y,{id:crypto.randomUUID(),placeholder:"",type:V.type,text:X.text,kind:X.kind,suggestionType:V.type,suggestionPlaceholder:V.text,options:V.options??[],metadata:X.metadata}]),O=O.filter(y=>y!==V))}c(O),f(!1),u(-1)}catch(L){if(i===S.current){let O=L instanceof Error?L:new Error(String(L));z(O),f(!1),m.current?.(O)}}},[e,r,t,o,n,a,l,m,d,c,u]);return(0,U.useEffect)(()=>(v("",[]),()=>{A.current?.abort()}),[v]),{doFetch:v,isLoading:g,error:_,isReady:w,lastRawQueryRef:x}}function Qe({text:e,completedParams:r,doFetch:t,filterBaseRef:o,filterInProgressRef:n,skipNextFetchRef:a,suggestionsRef:l,lastRawQueryRef:m}){let d=(0,U.useRef)(null),c=(0,U.useRef)(null),u=(0,U.useRef)(!0);(0,U.useEffect)(()=>{if(d.current&&clearTimeout(d.current),c.current&&clearTimeout(c.current),a.current){a.current=!1;return}let g=f=>{if(!e&&r.length===0)return u.current?(t("",[]),!0):(u.current=!0,!1);let _=ae(e,o.current,n.current),b=l.current.filter(s=>s.type!=="placeholder")[0],A=(b?xe(b.options,_):[]).filter(s=>s.is_tappable),x=b?me(b.options,_)!==null:!1,v=_.trim().length>0;if(A.length>0&&!x&&v)return!1;let{rawQuery:B,completedParams:I}=se(e,r),P=B.length<m.current.length,i=Math.abs(B.length-m.current.length);return P||i>=f?(t(B,I),!0):!1};return d.current=setTimeout(()=>{g(xt)&&c.current&&clearTimeout(c.current)},bt),c.current=setTimeout(()=>g(1),ht),()=>{d.current&&clearTimeout(d.current),c.current&&clearTimeout(c.current)}},[e,r,t,o,n,a,l,m])}var Te=require("react");function Ge({activeDropdownIndex:e,setActiveDropdownIndex:r,filteredOptions:t,selectOption:o,onSubmitRef:n,text:a,completedParams:l,isDropdownOpen:m,hasPlaceholder:d,placeholderText:c,suggestions:u,actionableSuggestions:g,setActivePill:f,listboxId:_,pillTappedRef:z,filterBaseRef:w,columns:b,setText:S,setCompletedParams:A,setSuggestions:x}){let v=(0,Te.useCallback)(()=>{let I=t.map((i,s)=>i.is_tappable?s:-1).filter(i=>i!==-1),P=Array.from({length:b},()=>[]);for(let i of I)P[i%b].push(i);return P.flat()},[t,b]);return{handleKeyDown:(0,Te.useCallback)(I=>{let P=v();switch(I.key){case"ArrowDown":{let i=I.target;if(!(i.selectionStart!=null&&i.selectionStart===i.value.length)&&e<0)break;if(I.preventDefault(),!m&&g.length>0){z.current=!0;let O=P[0];r(O??0);break}if(P.length===0)return;let C=P.indexOf(e),L=C<P.length-1?C+1:0;r(P[L]);break}case"ArrowUp":{if(P.length===0||e<0)break;if(I.preventDefault(),e<b){r(-1);break}let s=P.indexOf(e),C=s>0?s-1:P.length-1;r(P[C]);break}case"ArrowRight":{if(e<0){let s=I.target;s.selectionStart!=null&&s.selectionStart===s.value.length&&g.length>1&&(I.preventDefault(),f(1));break}if(e%b<b-1){let s=e+1;s<t.length&&t[s]?.is_tappable&&(I.preventDefault(),r(s))}break}case"ArrowLeft":{if(e<0)break;if(e%b>0){let i=e-1;i>=0&&t[i]?.is_tappable&&(I.preventDefault(),r(i))}break}case"Enter":{if(I.preventDefault(),e>=0&&t[e]?.is_tappable){let i=document.getElementById(`${_}-option-${e}`);i?i.click():o(t[e])}else if(n.current){let{rawQuery:i,completedParams:s}=se(a,l),C={query:a.trim(),raw_query:i,completed_params:s};n.current(C)}break}case"Tab":{if(e>=0&&t[e]?.is_tappable){I.preventDefault();let i=document.getElementById(`${_}-option-${e}`);i?i.click():o(t[e])}else if(m){let i=t.findIndex(s=>s.is_tappable);if(i>=0){I.preventDefault();let s=document.getElementById(`${_}-option-${i}`);s?s.click():o(t[i])}}else if(!a&&d){I.preventDefault();let i=u.find(s=>s.type==="placeholder");i?(S(c),w.current=c.length,A(s=>[...s,{id:crypto.randomUUID(),placeholder:"",type:i.type,text:c,kind:null,suggestionType:i.type,suggestionPlaceholder:i.text,options:i.options??[]}]),x(s=>s.filter(C=>C!==i))):(S(c),w.current=c.length)}break}case"Escape":r(-1);break}},[g,e,b,l,t,w,v,d,_,z,m,n,c,o,r,f,A,x,S,u,a]),getTappableIndices:v}}var ye=require("react");function We({completedParams:e,suggestions:r,setCompletedParams:t,setSuggestions:o,setActiveDropdownIndex:n,filterBaseRef:a,pillTappedRef:l}){let m=(0,ye.useCallback)(u=>{let g=r.filter(w=>w.type!=="placeholder");if(u<0||u>=g.length)return;let f=g[u],_=g.filter((w,b)=>b!==u),z=r.filter(w=>w.type==="placeholder");o([...z,f,..._]),l.current=!0,n(-1)},[r,o,n,l]),d=(0,ye.useCallback)(()=>{if(e.length===0)return;let u=e[e.length-1],g={type:u.suggestionType,text:u.suggestionPlaceholder,required:!0,options:u.options};t(f=>f.slice(0,-1)),o(f=>[g,...f]),n(-1)},[e,t,o,n]),c=(0,ye.useCallback)(u=>{let g={type:u.suggestionType,text:u.suggestionPlaceholder,required:!0,options:u.options};return{apply:f=>{f(_=>{let z=0;for(let w of e){let b=_.indexOf(w.text,z);if(b!==-1){if(w.id===u.id){let S=_.slice(0,b),A=_.slice(b+u.text.length),x=(S+A).replace(/ {2,}/g," ");return a.current=Math.min(a.current,x.length),x}z=b+w.text.length}}return _}),t(_=>_.filter(z=>z.id!==u.id)),o(_=>[g,..._]),n(-1),l.current=!0}}},[e,t,o,n,a,l]);return{setActivePill:m,removeLastParam:d,reEditParam:c}}var yt=0;function _t(){let e=(0,p.useRef)(null);return e.current===null&&(e.current=`:ac-${++yt}:`),e.current}function _e({onSubmit:e,onError:r,optionOverrides:t,maskCompletedText:o,placeholder:n,apiConfig:a,columns:l=2,value:m,completedParams:d,onChange:c,onParamsChange:u}){let g=m!==void 0,f=d!==void 0,[_,z]=(0,p.useState)(""),[w,b]=(0,p.useState)([]),[S,A]=(0,p.useState)([]),[x,v]=(0,p.useState)(-1),[B,I]=(0,p.useState)(null),P=(0,p.useCallback)(()=>I(null),[]),i=g?m:_,s=f?d:w,C=(0,p.useRef)(e);C.current=e;let L=(0,p.useRef)(c);L.current=c;let O=(0,p.useRef)(u);O.current=u;let ee=(0,p.useRef)(m);ee.current=m;let J=(0,p.useRef)(d);J.current=d;let $=(0,p.useCallback)(h=>{if(typeof h=="function")if(g){let R=h(ee.current??"");L.current?.(R)}else z(R=>{let T=h(R);return L.current?.(T),T});else g||z(h),L.current?.(h)},[g]),N=(0,p.useCallback)(h=>{if(typeof h=="function")if(f){let R=h(J.current??[]);O.current?.(R)}else b(R=>{let T=h(R);return O.current?.(T),T});else f||b(h),O.current?.(h)},[f]),V=(0,p.useRef)(r);V.current=r;let K=(0,p.useRef)(t);K.current=t;let X=(0,p.useRef)(o);X.current=o;let y=(0,p.useRef)(a);y.current=a;let H=(0,p.useRef)(i);H.current=i;let re=(0,p.useRef)(S);re.current=S;let M=(0,p.useRef)(0),q=(0,p.useRef)(!1),j=(0,p.useRef)(!1),le=(0,p.useRef)(!1),Z=_t(),{doFetch:ue,isLoading:Ee,error:Xe,isReady:Ze,lastRawQueryRef:Se}=qe({textRef:H,suggestionsRef:re,filterBaseRef:M,filterInProgressRef:q,maskCompletedTextRef:X,apiConfigRef:y,optionOverridesRef:K,onErrorRef:V,setCompletedParams:N,setSuggestions:A,setActiveDropdownIndex:v});Qe({text:i,completedParams:s,doFetch:ue,filterBaseRef:M,filterInProgressRef:q,skipNextFetchRef:le,suggestionsRef:re,lastRawQueryRef:Se});let Ye=(0,p.useMemo)(()=>Ne(i,s),[i,s]);M.current=Math.min(M.current,i.length);let Ae=ae(i,M.current,q.current),ne=(0,p.useMemo)(()=>S.filter(R=>R.type==="placeholder").map(R=>R.text).join(" ")||n||"",[S,n]),ce=(0,p.useMemo)(()=>S.filter(h=>h.type!=="placeholder"),[S]),k=ce[0],ze=k?t?.[k.type]:void 0,Le=k?ze?ze(Ae.trim()):k.options??[]:[],ve=(0,p.useMemo)(()=>xe(Le,Ae),[Le,Ae]),Me=ne.length>0,Ie=!Ee&&ve.length>0&&(!!i||j.current||!Me),Fe=(0,p.useCallback)(h=>{if(!k)return;let R=M.current,T=H.current.slice(0,R),ie=T.length===0&&H.current.length===0;if(ie&&ne&&(T=ne+" "),T.length>0&&!T.endsWith(" ")){let te=T.split(/\s+/).pop()??"";te&&h.text.toLowerCase().startsWith(te.toLowerCase())&&(T=T.slice(0,T.length-te.length))}let we=T.length>0&&T[T.length-1]!==" ",Y=T+(we?" ":"")+h.text+" ",Q=ie&&Y.length>0?Y[0].toUpperCase()+Y.slice(1):Y,G=Q.toLowerCase().lastIndexOf(h.text.toLowerCase()),de=G>=0?Q.slice(G,G+h.text.length):h.text,ge={id:crypto.randomUUID(),placeholder:"",type:k.type,text:de,kind:h.kind,suggestionType:k.type,suggestionPlaceholder:k.text,options:k.options??[],metadata:h.metadata};$(Q),M.current=Q.length,N(te=>[...te,ge]),I(ge.id),j.current=!1,v(-1),ce.length-1>0&&(le.current=!0),setTimeout(()=>{A(te=>te.filter(it=>it!==k))},400)},[k,ce,ne,$,N]),et=(0,p.useCallback)(h=>{let R=h.target.value,ie=R.length>0&&!h.nativeEvent?.isComposing&&R[0]!==R[0].toUpperCase()?R[0].toUpperCase()+R.slice(1):R;$(ie),j.current=!1,v(-1);let{valid:we,invalid:Y}=Ve(ie,s);if(Y.length>0){N(()=>we);for(let Q of Y)A(G=>[{type:Q.suggestionType,text:Q.suggestionPlaceholder,required:!0,options:Q.options},...G])}if(k&&Y.length===0){let Q=ae(ie,M.current,q.current),G=me(k.options,Q);G&&(N(de=>[...de,{id:crypto.randomUUID(),placeholder:"",type:k.type,text:G.text,kind:G.kind,suggestionType:k.type,suggestionPlaceholder:k.text,options:k.options??[],metadata:G.metadata}]),A(de=>de.filter(ge=>ge!==k)))}},[s,k,$,N]),pe=We({completedParams:s,suggestions:S,setCompletedParams:N,setSuggestions:A,setActiveDropdownIndex:v,filterBaseRef:M,pillTappedRef:j}),tt=(0,p.useCallback)(h=>{pe.reEditParam(h).apply($)},[pe,$]),{handleKeyDown:ot}=Ge({activeDropdownIndex:x,setActiveDropdownIndex:v,filteredOptions:ve,selectOption:Fe,onSubmitRef:C,text:i,completedParams:s,isDropdownOpen:Ie,hasPlaceholder:Me,placeholderText:ne,suggestions:S,actionableSuggestions:ce,setActivePill:pe.setActivePill,listboxId:Z,pillTappedRef:j,filterBaseRef:M,columns:l,setText:$,setCompletedParams:N,setSuggestions:A}),rt=(0,p.useCallback)(()=>{$(""),N(()=>[]),A([]),v(-1),M.current=0,q.current=!1,Se.current="",ue("",[])},[ue,$,N,Se]),nt=x>=0?`${Z}-option-${x}`:void 0;return{completedParams:s,suggestionPills:ce,setActivePill:pe.setActivePill,removeLastParam:pe.removeLastParam,reEditParam:tt,segments:Ye,newParamId:B,clearNewParamId:P,suggestions:S,activeIndex:x,isReady:Ze,isLoading:Ee,error:Xe,inputProps:{value:i,placeholder:ne||void 0,onChange:et,onKeyDown:ot,role:"combobox","aria-expanded":Ie,"aria-activedescendant":nt,"aria-autocomplete":"list","aria-controls":Z},reset:rt,dropdownProps:{suggestions:k?[{...k,options:ve}]:[],activeIndex:x,onSelect:Fe,onHighlight:v,isOpen:Ie,id:Z}}}var E=require("react/jsx-runtime"),Je=(0,D.forwardRef)(function({onSubmit:r,onError:t,optionOverrides:o,maskCompletedText:n,placeholder:a,className:l,apiConfig:m,columns:d,typewriterEffect:c=!0,value:u,completedParams:g,onChange:f,onParamsChange:_},z){let w=(0,D.useRef)(null),b=(0,D.useRef)(()=>{}),[S,A]=(0,D.useState)(0),x=(0,D.useRef)(void 0);(0,D.useEffect)(()=>(w.current?.focus(),()=>{x.current&&cancelAnimationFrame(x.current)}),[]);let{completedParams:v,suggestionPills:B,setActivePill:I,segments:P,newParamId:i,clearNewParamId:s,inputProps:C,dropdownProps:L,reset:O}=_e({onSubmit:y=>b.current(y),onError:t,optionOverrides:o,maskCompletedText:n,placeholder:a,apiConfig:m,columns:d,value:u,completedParams:g,onChange:f,onParamsChange:_});(0,D.useEffect)(()=>{if(x.current&&cancelAnimationFrame(x.current),!i){A(0);return}let y=v.find(j=>j.id===i);if(!y)return;let H=y.text.length;if(!c){A(H);let j=window.setTimeout(()=>s(),650);return()=>window.clearTimeout(j)}A(0);let re=performance.now(),M=300,q=()=>{let j=performance.now()-re,le=Math.min(j/M,1),Z=Math.ceil(le*H);A(Z),Z<H?x.current=requestAnimationFrame(q):x.current=requestAnimationFrame(()=>{s()})};return x.current=requestAnimationFrame(q),()=>{x.current&&cancelAnimationFrame(x.current)}},[i,v,s,c]),(0,D.useImperativeHandle)(z,()=>({focus:()=>w.current?.focus(),reset:O}),[O]);let ee=()=>{w.current?.focus()},J=!!C.value||v.length>0,$=(0,D.useCallback)(()=>{if(!J)return;let{rawQuery:y,completedParams:H}=se(C.value,v);r({query:C.value.trim(),raw_query:y,completed_params:H}),O()},[J,C.value,v,r,O]);b.current=$;let{onChange:N,placeholder:V,...K}=C,X=!C.value;return(0,E.jsxs)("div",{className:`${F.container} ${l??""}`,children:[(0,E.jsx)(be,{...L}),(0,E.jsxs)("div",{className:F.inputWrapper,onClick:ee,children:[(0,E.jsxs)("div",{className:F.editorArea,children:[(0,E.jsxs)("div",{className:F.sizerContent,"aria-hidden":"true",children:[X&&V?(0,E.jsxs)("span",{className:F.placeholderText,children:[V," "]}):(0,E.jsxs)("span",{className:`${F.sizerText} ${i?F.sizerTextVisible:""}`,children:[P.map((y,H)=>{if(y.type==="completed"&&y.param.id===i){if(!c){let ue=`${F.shimmerRevealed} ${F.shimmerSweep}`;return(0,E.jsx)("span",{className:ue,children:y.value},`${H}-${y.type}`)}let M=y.value.length,q=y.value.slice(0,S),j=y.value.slice(S),Z=`${100-(M>0?S/M:0)*100}% 0`;return(0,E.jsxs)("span",{className:F.shimmer,children:[(0,E.jsx)("span",{className:F.shimmerRevealed,style:{backgroundPosition:Z},children:q}),(0,E.jsx)("span",{className:F.shimmerHidden,children:j})]},`${H}-${y.type}`)}return(0,E.jsx)("span",{children:y.value},`${H}-${y.type}`)}),P.length===0&&"\xA0"]})," ",(0,E.jsx)(He,{pills:B,activePillIndex:0,onSelectPill:I})]}),(0,E.jsx)("textarea",{ref:w,className:`${F.textarea} ${i?F.textareaHidden:""}`,rows:1,onChange:N,...K})]}),(0,E.jsx)("button",{type:"button",className:F.submitButton,disabled:!J,onClick:y=>{y.stopPropagation(),$()},"aria-label":"Submit",children:(0,E.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",role:"img","aria-label":"Submit",children:(0,E.jsx)("path",{d:"M9 14V4M9 4L4 9M9 4L14 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})});0&&(module.exports={AIAutocomplete,AIAutocompleteDropdown,useAIAutocomplete});
|
|
215
533
|
//# sourceMappingURL=index.js.map
|