@magicx-eng/ai-autocomplete-react 0.2.1 → 0.4.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/dist/index.d.mts CHANGED
@@ -103,6 +103,13 @@ interface UseAIAutocompleteReturn {
103
103
  isLoading: boolean;
104
104
  isFocused: boolean;
105
105
  isDropdownOpen: boolean;
106
+ /**
107
+ * Whether the active (leading) pill should render selected (full opacity)
108
+ * rather than the de-emphasized `first` tier. In `auto` trigger this is true
109
+ * only while a dropdown option is highlighted; in `manual` it's true once the
110
+ * pill has been tapped (the dropdown is open).
111
+ */
112
+ isActivePillSelected: boolean;
106
113
  placeholderText: string;
107
114
  listboxId: string;
108
115
  error: Error | null;
@@ -157,13 +164,27 @@ interface AIAutocompleteDropdownProps {
157
164
  onPillClick?: (index: number) => void;
158
165
  /** Whether to render pills inside the dropdown. Default: true. Tier 2 consumers who render their own pills should set this to false. */
159
166
  showPills?: boolean;
167
+ /** Whether the active pill renders selected (full opacity) vs. the `first` tier. Provided by `dropdownProps` from the hook. Default: false. */
168
+ activeSelected?: boolean;
160
169
  /** True while a fetch for the latest query is in flight. Replaces options/pills with a skeleton. */
161
170
  isLoading?: boolean;
171
+ /** Once the user has tabbed to highlight an option, the footer hint switches from "tab to select" to "→ to skip". Provided by `dropdownProps` from the hook. */
172
+ hasTabbedToHighlight?: boolean;
173
+ /** When the input has no typed text, the footer hint reads "tab to skip" (Tab skips the active pill). Provided by `dropdownProps` from the hook. */
174
+ isInputEmpty?: boolean;
175
+ /**
176
+ * Where the dropdown opens relative to the input. When `"above"`, the dropdown
177
+ * positions itself above (and reverses its internal layout so options sit
178
+ * nearest the input). Provided by `dropdownProps` from the hook, so headless
179
+ * consumers get the same above/below behavior as Tier 1 with no extra CSS.
180
+ * Default: `"below"`.
181
+ */
182
+ optionsPosition?: "above" | "below";
162
183
  }
163
184
 
164
185
  declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProps & react.RefAttributes<AIAutocompleteHandle>>;
165
186
 
166
- declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, pills, onPillClick, showPills, isLoading, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
187
+ declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, pills, onPillClick, showPills, activeSelected, isLoading, hasTabbedToHighlight, isInputEmpty, optionsPosition, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
167
188
 
168
189
  declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, apiConfig, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
169
190
 
package/dist/index.d.ts CHANGED
@@ -103,6 +103,13 @@ interface UseAIAutocompleteReturn {
103
103
  isLoading: boolean;
104
104
  isFocused: boolean;
105
105
  isDropdownOpen: boolean;
106
+ /**
107
+ * Whether the active (leading) pill should render selected (full opacity)
108
+ * rather than the de-emphasized `first` tier. In `auto` trigger this is true
109
+ * only while a dropdown option is highlighted; in `manual` it's true once the
110
+ * pill has been tapped (the dropdown is open).
111
+ */
112
+ isActivePillSelected: boolean;
106
113
  placeholderText: string;
107
114
  listboxId: string;
108
115
  error: Error | null;
@@ -157,13 +164,27 @@ interface AIAutocompleteDropdownProps {
157
164
  onPillClick?: (index: number) => void;
158
165
  /** Whether to render pills inside the dropdown. Default: true. Tier 2 consumers who render their own pills should set this to false. */
159
166
  showPills?: boolean;
167
+ /** Whether the active pill renders selected (full opacity) vs. the `first` tier. Provided by `dropdownProps` from the hook. Default: false. */
168
+ activeSelected?: boolean;
160
169
  /** True while a fetch for the latest query is in flight. Replaces options/pills with a skeleton. */
161
170
  isLoading?: boolean;
171
+ /** Once the user has tabbed to highlight an option, the footer hint switches from "tab to select" to "→ to skip". Provided by `dropdownProps` from the hook. */
172
+ hasTabbedToHighlight?: boolean;
173
+ /** When the input has no typed text, the footer hint reads "tab to skip" (Tab skips the active pill). Provided by `dropdownProps` from the hook. */
174
+ isInputEmpty?: boolean;
175
+ /**
176
+ * Where the dropdown opens relative to the input. When `"above"`, the dropdown
177
+ * positions itself above (and reverses its internal layout so options sit
178
+ * nearest the input). Provided by `dropdownProps` from the hook, so headless
179
+ * consumers get the same above/below behavior as Tier 1 with no extra CSS.
180
+ * Default: `"below"`.
181
+ */
182
+ optionsPosition?: "above" | "below";
162
183
  }
163
184
 
164
185
  declare const AIAutocomplete: react.ForwardRefExoticComponent<AIAutocompleteProps & react.RefAttributes<AIAutocompleteHandle>>;
165
186
 
166
- declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, pills, onPillClick, showPills, isLoading, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
187
+ declare function AIAutocompleteDropdown({ suggestions, activeIndex, onSelect, onHighlight, isOpen, id, className, pills, onPillClick, showPills, activeSelected, isLoading, hasTabbedToHighlight, isInputEmpty, optionsPosition, }: AIAutocompleteDropdownProps): react_jsx_runtime.JSX.Element;
167
188
 
168
189
  declare function useAIAutocomplete({ onSubmit, onError, optionOverrides, maskCompletedText, apiConfig, columns, dropdownTrigger, optionsPosition, closeDropdownOnBlur, showNonTappableOptions, onFocus, onBlur, value: controlledValue, completedParams: controlledParams, onChange: onChangeProp, onParamsChange, source, setCursor, }: UseAIAutocompleteOptions): UseAIAutocompleteReturn;
169
190