@papernote/ui 1.7.4 → 1.7.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@papernote/ui",
3
- "version": "1.7.4",
3
+ "version": "1.7.6",
4
4
  "type": "module",
5
5
  "description": "A modern React component library with a paper notebook aesthetic - minimal, professional, and expressive",
6
6
  "main": "dist/index.js",
@@ -97,10 +97,13 @@ const Autocomplete = forwardRef<AutocompleteHandle, AutocompleteProps>(({
97
97
  const results = await onSearch(query);
98
98
  setFilteredOptions(results.slice(0, maxResults));
99
99
  setIsOpen(results.length > 0);
100
+ // Auto-highlight first result for keyboard navigation
101
+ setHighlightedIndex(results.length > 0 ? 0 : -1);
100
102
  } catch (err) {
101
103
  console.error('Autocomplete search error:', err);
102
104
  setFilteredOptions([]);
103
105
  setIsOpen(false);
106
+ setHighlightedIndex(-1);
104
107
  } finally {
105
108
  setLoading(false);
106
109
  }
@@ -109,6 +112,8 @@ const Autocomplete = forwardRef<AutocompleteHandle, AutocompleteProps>(({
109
112
  const filtered = filterOptions(query);
110
113
  setFilteredOptions(filtered);
111
114
  setIsOpen(filtered.length > 0);
115
+ // Auto-highlight first result for keyboard navigation
116
+ setHighlightedIndex(filtered.length > 0 ? 0 : -1);
112
117
  }
113
118
  };
114
119
 
@@ -151,7 +156,15 @@ const Autocomplete = forwardRef<AutocompleteHandle, AutocompleteProps>(({
151
156
  const handleKeyDown = (e: React.KeyboardEvent) => {
152
157
  if (!isOpen) {
153
158
  if (e.key === 'ArrowDown') {
154
- handleSearch(value);
159
+ e.preventDefault();
160
+ // If we have cached results from a previous search, show them
161
+ if (filteredOptions.length > 0) {
162
+ setIsOpen(true);
163
+ setHighlightedIndex(0);
164
+ } else if (value.length >= minChars) {
165
+ // Otherwise trigger a new search
166
+ handleSearch(value);
167
+ }
155
168
  }
156
169
  return;
157
170
  }
@@ -68,8 +68,11 @@ export default function FormWizard({
68
68
  setIsSubmitting(false);
69
69
  }
70
70
  } else {
71
- // Go to next step
72
- goToStep(currentStep + 1);
71
+ // Advance to next step directly (don't use goToStep which checks completedSteps
72
+ // before React has re-rendered with the updated state)
73
+ const nextStepIndex = currentStep + 1;
74
+ setCurrentStep(nextStepIndex);
75
+ onStepChange?.(nextStepIndex);
73
76
  }
74
77
  };
75
78