@strategicos/ui 0.10.0 → 0.11.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 CHANGED
@@ -63,6 +63,23 @@ Seleção de um item com busca. Pode criar e excluir opções ali mesmo:
63
63
 
64
64
  `onCreate` aparece como "Criar “texto”" quando a busca não bate com nenhuma opção; o valor devolvido fica selecionado. `onRemove` põe um X em cada opção e confirma na própria linha. Erro nessas funções aparece no rodapé da lista.
65
65
 
66
+ Lista grande demais para vir inteira? Busque no servidor, página a página:
67
+
68
+ ```tsx
69
+ <Combobox
70
+ options={pagina.map(m => ({ value: m.id, label: m.name, description: m.email }))}
71
+ selectedOption={atual && { value: atual.id, label: atual.name }}
72
+ value={membroId}
73
+ onValueChange={setMembroId}
74
+ onSearchChange={setBusca}
75
+ loading={carregando}
76
+ hasMore={temMais}
77
+ onLoadMore={proximaPagina}
78
+ />
79
+ ```
80
+
81
+ Com `onSearchChange`, a lista não filtra sozinha: `options` é o resultado da busca. Rolar até o fim (ou ↓ na última opção) chama `onLoadMore` enquanto houver `hasMore`. `selectedOption` dá o rótulo do gatilho quando o valor atual não está na página carregada. O debounce da busca fica com quem chama.
82
+
66
83
  ### Datas
67
84
 
68
85
  Mesmos nomes e ideias do `@mantine/dates`:
@@ -29,6 +29,22 @@ export type ComboboxOption = {
29
29
  * - `onRemove`: cada opção ganha um X que pede confirmação na própria linha.
30
30
  * Se a opção excluída era a selecionada, o valor volta para `null`.
31
31
  *
32
+ * - `onSearchChange`: busca no servidor. Recebe o texto digitado (e "" ao
33
+ * fechar com busca) e `options` passa a ser o resultado, sem filtro local.
34
+ * Com `hasMore`, rolar até o fim da lista (ou ↓ na última opção) chama
35
+ * `onLoadMore`; `loading` mostra o carregamento. Como a página carregada pode
36
+ * não trazer o valor atual, passe-o em `selectedOption` para o gatilho.
37
+ *
38
+ * <Combobox
39
+ * options={pagina.map(m => ({ value: m.id, label: m.name }))}
40
+ * selectedOption={atual && { value: atual.id, label: atual.name }}
41
+ * onSearchChange={setBusca}
42
+ * loading={carregando}
43
+ * hasMore={temMais}
44
+ * onLoadMore={proximaPagina}
45
+ * …
46
+ * />
47
+ *
32
48
  * Erros de `onCreate`/`onRemove` (promessa rejeitada) aparecem no rodapé da
33
49
  * lista, com a mensagem do erro.
34
50
  *
@@ -36,7 +52,7 @@ export type ComboboxOption = {
36
52
  * (com a busca vazia) para excluir a opção ativa, Esc para fechar. Dentro de
37
53
  * um <Field>, o gatilho recebe o id e os aria-*.
38
54
  */
39
- declare function Combobox({ options, value, onValueChange, placeholder, searchPlaceholder, emptyText, searchable, clearable, onCreate, createLabel, onRemove, removeLabel, removeConfirmLabel, size, disabled, className, wrapperClassName, contentClassName, onOpenChange, ...props }: {
55
+ declare function Combobox({ options, value, onValueChange, placeholder, searchPlaceholder, emptyText, searchable, clearable, onCreate, createLabel, onRemove, removeLabel, removeConfirmLabel, size, disabled, className, wrapperClassName, contentClassName, onOpenChange, onSearchChange, loading, hasMore, onLoadMore, selectedOption, ...props }: {
40
56
  options: ComboboxOption[];
41
57
  value: string | null;
42
58
  onValueChange: (value: string | null) => void;
@@ -64,6 +80,16 @@ declare function Combobox({ options, value, onValueChange, placeholder, searchPl
64
80
  wrapperClassName?: string;
65
81
  contentClassName?: string;
66
82
  onOpenChange?: (open: boolean) => void;
83
+ /** Busca no servidor: recebe o texto digitado e desliga o filtro local. */
84
+ onSearchChange?: (query: string) => void;
85
+ /** Busca ou próxima página em andamento. */
86
+ loading?: boolean;
87
+ /** Há mais resultados além de `options`. */
88
+ hasMore?: boolean;
89
+ /** Chamado ao chegar no fim da lista com `hasMore`. */
90
+ onLoadMore?: () => void;
91
+ /** Opção do valor atual quando ela não está em `options`. */
92
+ selectedOption?: ComboboxOption | null;
67
93
  id?: string;
68
94
  "aria-label"?: string;
69
95
  "aria-describedby"?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAS,QAAQ,CAAC,EAChB,OAAO,EACP,KAAK,EACL,aAAa,EACb,WAAyB,EACzB,iBAA6B,EAC7B,SAA8B,EAC9B,UAAiB,EACjB,SAAiB,EACjB,QAAQ,EACR,WAA+C,EAC/C,QAAQ,EACR,WAAuC,EACvC,kBAA+D,EAC/D,IAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,GAAG,KAAK,EACT,EAAE;IACD,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;wBACoB;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACpE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAChD,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,2CAA2C;IAC3C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAA;IAChD,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAA;IAChE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;6BACyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;CACtD,qBAuRA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"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"}
@@ -29,6 +29,22 @@ function errorMessage(err, fallback) {
29
29
  * - `onRemove`: cada opção ganha um X que pede confirmação na própria linha.
30
30
  * Se a opção excluída era a selecionada, o valor volta para `null`.
31
31
  *
32
+ * - `onSearchChange`: busca no servidor. Recebe o texto digitado (e "" ao
33
+ * fechar com busca) e `options` passa a ser o resultado, sem filtro local.
34
+ * Com `hasMore`, rolar até o fim da lista (ou ↓ na última opção) chama
35
+ * `onLoadMore`; `loading` mostra o carregamento. Como a página carregada pode
36
+ * não trazer o valor atual, passe-o em `selectedOption` para o gatilho.
37
+ *
38
+ * <Combobox
39
+ * options={pagina.map(m => ({ value: m.id, label: m.name }))}
40
+ * selectedOption={atual && { value: atual.id, label: atual.name }}
41
+ * onSearchChange={setBusca}
42
+ * loading={carregando}
43
+ * hasMore={temMais}
44
+ * onLoadMore={proximaPagina}
45
+ * …
46
+ * />
47
+ *
32
48
  * Erros de `onCreate`/`onRemove` (promessa rejeitada) aparecem no rodapé da
33
49
  * lista, com a mensagem do erro.
34
50
  *
@@ -36,7 +52,7 @@ function errorMessage(err, fallback) {
36
52
  * (com a busca vazia) para excluir a opção ativa, Esc para fechar. Dentro de
37
53
  * um <Field>, o gatilho recebe o id e os aria-*.
38
54
  */
39
- function Combobox({ options, value, onValueChange, placeholder = "Selecione", searchPlaceholder = "Buscar…", emptyText = "Nada encontrado.", searchable = true, clearable = false, onCreate, createLabel = q => _jsxs(_Fragment, { children: ["Criar \u201C", q, "\u201D"] }), onRemove, removeLabel = o => `Excluir ${o.label}`, removeConfirmLabel = o => _jsxs(_Fragment, { children: ["Excluir \u201C", o.label, "\u201D?"] }), size = "default", disabled = false, className, wrapperClassName, contentClassName, onOpenChange, ...props }) {
55
+ function Combobox({ options, value, onValueChange, placeholder = "Selecione", searchPlaceholder = "Buscar…", emptyText = "Nada encontrado.", searchable = true, clearable = false, onCreate, createLabel = q => _jsxs(_Fragment, { children: ["Criar \u201C", q, "\u201D"] }), onRemove, removeLabel = o => `Excluir ${o.label}`, removeConfirmLabel = o => _jsxs(_Fragment, { children: ["Excluir \u201C", o.label, "\u201D?"] }), size = "default", disabled = false, className, wrapperClassName, contentClassName, onOpenChange, onSearchChange, loading = false, hasMore = false, onLoadMore, selectedOption, ...props }) {
40
56
  const controlProps = useFieldControl(props, { withRequired: false });
41
57
  const [open, setOpen] = React.useState(false);
42
58
  const [query, setQuery] = React.useState("");
@@ -47,9 +63,12 @@ function Combobox({ options, value, onValueChange, placeholder = "Selecione", se
47
63
  const [error, setError] = React.useState(null);
48
64
  const listId = React.useId();
49
65
  const searchRef = React.useRef(null);
50
- const selected = options.find(o => o.value === value);
66
+ const selected = options.find(o => o.value === value)
67
+ ?? (selectedOption && selectedOption.value === value ? selectedOption : undefined);
51
68
  const q = query.trim().toLowerCase();
52
- const filtered = q ? options.filter(o => o.label.toLowerCase().includes(q)) : options;
69
+ // Na busca no servidor, `options` já é o resultado.
70
+ const filtered = q && !onSearchChange ? options.filter(o => o.label.toLowerCase().includes(q)) : options;
71
+ const canLoadMore = hasMore && !loading && !!onLoadMore;
53
72
  const canCreate = !!onCreate && !!q && !options.some(o => o.label.trim().toLowerCase() === q);
54
73
  // Ordem do teclado: as opções habilitadas e, por último, o "Criar".
55
74
  const entries = filtered.filter(o => !o.disabled).map(option => ({ kind: "option", option }));
@@ -76,6 +95,8 @@ function Combobox({ options, value, onValueChange, placeholder = "Selecione", se
76
95
  function handleOpenChange(o) {
77
96
  setOpen(o);
78
97
  if (!o) {
98
+ if (query)
99
+ onSearchChange?.("");
79
100
  setQuery("");
80
101
  setActive(0);
81
102
  setConfirming(null);
@@ -141,12 +162,26 @@ function Combobox({ options, value, onValueChange, placeholder = "Selecione", se
141
162
  else
142
163
  choose(entry.option.value);
143
164
  }
165
+ function changeQuery(v) {
166
+ setQuery(v);
167
+ setActive(0);
168
+ setError(null);
169
+ onSearchChange?.(v);
170
+ }
171
+ // Perto do fim da lista, pede a próxima página.
172
+ function onListScroll(e) {
173
+ const el = e.currentTarget;
174
+ if (canLoadMore && el.scrollHeight - el.scrollTop - el.clientHeight < 48)
175
+ onLoadMore();
176
+ }
144
177
  function onKeyDown(e) {
145
178
  // Na confirmação, o teclado é dos botões Excluir/Cancelar.
146
179
  if (confirming)
147
180
  return;
148
181
  if (e.key === "ArrowDown") {
149
182
  e.preventDefault();
183
+ if (activeIndex >= entries.length - 1 && canLoadMore)
184
+ onLoadMore();
150
185
  setActive(Math.min(activeIndex + 1, entries.length - 1));
151
186
  }
152
187
  else if (e.key === "ArrowUp") {
@@ -172,7 +207,7 @@ function Combobox({ options, value, onValueChange, placeholder = "Selecione", se
172
207
  _jsx("button", { type: "button", onClick: () => onValueChange(null), "aria-label": "Limpar", className: "absolute inset-y-0 right-1.5 my-auto flex size-6 cursor-pointer items-center justify-center rounded text-muted-foreground outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50", children: _jsx(XIcon, { className: "size-4" }) }))] })) : trigger, _jsxs(PopoverContent, { className: cn("w-(--radix-popover-trigger-width) min-w-60 p-0", contentClassName), onKeyDown: onKeyDown, onEscapeKeyDown: e => { if (confirming) {
173
208
  e.preventDefault();
174
209
  cancelConfirm();
175
- } }, children: [searchable && (_jsxs("div", { className: "flex items-center gap-2 border-b border-border px-3", children: [_jsx(SearchIcon, { className: "size-4 shrink-0 text-muted-foreground" }), _jsx("input", { ref: searchRef, autoFocus: true, value: query, onChange: e => { setQuery(e.target.value); setActive(0); setError(null); }, placeholder: searchPlaceholder, "aria-label": searchPlaceholder, "aria-controls": listId, "aria-activedescendant": activeIndex >= 0 && !confirming ? entryId(activeIndex) : undefined, "aria-autocomplete": "list", className: "h-9 w-full bg-transparent text-base outline-none placeholder:text-muted-foreground md:text-sm" })] })), _jsxs("div", { id: listId, role: "listbox", className: "max-h-64 overflow-y-auto overscroll-contain p-1", children: [filtered.length === 0 && !canCreate && (_jsx("p", { className: "px-2.5 py-6 text-center text-sm text-muted-foreground", children: emptyText })), groups.map(g => (_jsxs("div", { role: "group", "aria-label": g.name, children: [g.name && _jsx("p", { className: "px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground", children: g.name }), g.items.map(o => {
210
+ } }, children: [searchable && (_jsxs("div", { className: "flex items-center gap-2 border-b border-border px-3", children: [_jsx(SearchIcon, { className: "size-4 shrink-0 text-muted-foreground" }), _jsx("input", { ref: searchRef, autoFocus: true, value: query, onChange: e => changeQuery(e.target.value), placeholder: searchPlaceholder, "aria-label": searchPlaceholder, "aria-controls": listId, "aria-activedescendant": activeIndex >= 0 && !confirming ? entryId(activeIndex) : undefined, "aria-autocomplete": "list", className: "h-9 w-full bg-transparent text-base outline-none placeholder:text-muted-foreground md:text-sm" })] })), _jsxs("div", { id: listId, role: "listbox", "aria-busy": loading || undefined, onScroll: onLoadMore ? onListScroll : undefined, className: "max-h-64 overflow-y-auto overscroll-contain p-1", children: [filtered.length === 0 && !canCreate && !loading && (_jsx("p", { className: "px-2.5 py-6 text-center text-sm text-muted-foreground", children: emptyText })), groups.map(g => (_jsxs("div", { role: "group", "aria-label": g.name, children: [g.name && _jsx("p", { className: "px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground", children: g.name }), g.items.map(o => {
176
211
  const index = entries.findIndex(e => e.kind === "option" && e.option.value === o.value);
177
212
  const isSelected = o.value === value;
178
213
  const isActive = index === activeIndex;
@@ -187,7 +222,7 @@ function Combobox({ options, value, onValueChange, placeholder = "Selecione", se
187
222
  })] }, g.name ?? "_"))), canCreate && (() => {
188
223
  const index = entries.length - 1;
189
224
  return (_jsxs("div", { id: entryId(index), role: "option", "aria-selected": false, "data-active": index === activeIndex || undefined, onMouseEnter: () => setActive(index), onClick: () => void create(), className: "flex cursor-pointer items-center gap-2 rounded-md py-1.5 pr-2 pl-2.5 text-sm font-medium text-primary-strong select-none data-active:bg-primary/10", children: [creating ? _jsx(Loader2Icon, { className: "size-4 shrink-0 animate-spin" }) : _jsx(PlusIcon, { className: "size-4 shrink-0" }), _jsx("span", { className: "truncate", children: createLabel(query.trim()) })] }));
190
- })()] }), error && (_jsx("p", { role: "alert", className: "border-t border-border px-3 py-2 text-xs text-destructive", children: error }))] })] }));
225
+ })(), loading && (_jsxs("p", { className: cn("flex items-center justify-center gap-2 px-2.5 text-sm text-muted-foreground", filtered.length === 0 ? "py-6" : "py-2"), children: [_jsx(Loader2Icon, { className: "size-4 animate-spin" }), "Carregando\u2026"] }))] }), error && (_jsx("p", { role: "alert", className: "border-t border-border px-3 py-2 text-xs text-destructive", children: error }))] })] }));
191
226
  }
192
227
  export { Combobox };
193
228
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strategicos/ui",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Componentes React da Strategicos (shadcn + Radix + Tailwind v4).",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -46,6 +46,22 @@ function errorMessage(err: unknown, fallback: string) {
46
46
  * - `onRemove`: cada opção ganha um X que pede confirmação na própria linha.
47
47
  * Se a opção excluída era a selecionada, o valor volta para `null`.
48
48
  *
49
+ * - `onSearchChange`: busca no servidor. Recebe o texto digitado (e "" ao
50
+ * fechar com busca) e `options` passa a ser o resultado, sem filtro local.
51
+ * Com `hasMore`, rolar até o fim da lista (ou ↓ na última opção) chama
52
+ * `onLoadMore`; `loading` mostra o carregamento. Como a página carregada pode
53
+ * não trazer o valor atual, passe-o em `selectedOption` para o gatilho.
54
+ *
55
+ * <Combobox
56
+ * options={pagina.map(m => ({ value: m.id, label: m.name }))}
57
+ * selectedOption={atual && { value: atual.id, label: atual.name }}
58
+ * onSearchChange={setBusca}
59
+ * loading={carregando}
60
+ * hasMore={temMais}
61
+ * onLoadMore={proximaPagina}
62
+ * …
63
+ * />
64
+ *
49
65
  * Erros de `onCreate`/`onRemove` (promessa rejeitada) aparecem no rodapé da
50
66
  * lista, com a mensagem do erro.
51
67
  *
@@ -73,6 +89,11 @@ function Combobox({
73
89
  wrapperClassName,
74
90
  contentClassName,
75
91
  onOpenChange,
92
+ onSearchChange,
93
+ loading = false,
94
+ hasMore = false,
95
+ onLoadMore,
96
+ selectedOption,
76
97
  ...props
77
98
  }: {
78
99
  options: ComboboxOption[]
@@ -102,6 +123,16 @@ function Combobox({
102
123
  wrapperClassName?: string
103
124
  contentClassName?: string
104
125
  onOpenChange?: (open: boolean) => void
126
+ /** Busca no servidor: recebe o texto digitado e desliga o filtro local. */
127
+ onSearchChange?: (query: string) => void
128
+ /** Busca ou próxima página em andamento. */
129
+ loading?: boolean
130
+ /** Há mais resultados além de `options`. */
131
+ hasMore?: boolean
132
+ /** Chamado ao chegar no fim da lista com `hasMore`. */
133
+ onLoadMore?: () => void
134
+ /** Opção do valor atual quando ela não está em `options`. */
135
+ selectedOption?: ComboboxOption | null
105
136
  id?: string
106
137
  "aria-label"?: string
107
138
  "aria-describedby"?: string
@@ -119,8 +150,11 @@ function Combobox({
119
150
  const searchRef = React.useRef<HTMLInputElement>(null)
120
151
 
121
152
  const selected = options.find(o => o.value === value)
153
+ ?? (selectedOption && selectedOption.value === value ? selectedOption : undefined)
122
154
  const q = query.trim().toLowerCase()
123
- const filtered = q ? options.filter(o => o.label.toLowerCase().includes(q)) : options
155
+ // Na busca no servidor, `options` já é o resultado.
156
+ const filtered = q && !onSearchChange ? options.filter(o => o.label.toLowerCase().includes(q)) : options
157
+ const canLoadMore = hasMore && !loading && !!onLoadMore
124
158
  const canCreate = !!onCreate && !!q && !options.some(o => o.label.trim().toLowerCase() === q)
125
159
 
126
160
  // Ordem do teclado: as opções habilitadas e, por último, o "Criar".
@@ -147,6 +181,7 @@ function Combobox({
147
181
  function handleOpenChange(o: boolean) {
148
182
  setOpen(o)
149
183
  if (!o) {
184
+ if (query) onSearchChange?.("")
150
185
  setQuery("")
151
186
  setActive(0)
152
187
  setConfirming(null)
@@ -206,10 +241,27 @@ function Combobox({
206
241
  else choose(entry.option.value)
207
242
  }
208
243
 
244
+ function changeQuery(v: string) {
245
+ setQuery(v)
246
+ setActive(0)
247
+ setError(null)
248
+ onSearchChange?.(v)
249
+ }
250
+
251
+ // Perto do fim da lista, pede a próxima página.
252
+ function onListScroll(e: React.UIEvent<HTMLDivElement>) {
253
+ const el = e.currentTarget
254
+ if (canLoadMore && el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore()
255
+ }
256
+
209
257
  function onKeyDown(e: React.KeyboardEvent) {
210
258
  // Na confirmação, o teclado é dos botões Excluir/Cancelar.
211
259
  if (confirming) return
212
- if (e.key === "ArrowDown") { e.preventDefault(); setActive(Math.min(activeIndex + 1, entries.length - 1)) }
260
+ if (e.key === "ArrowDown") {
261
+ e.preventDefault()
262
+ if (activeIndex >= entries.length - 1 && canLoadMore) onLoadMore()
263
+ setActive(Math.min(activeIndex + 1, entries.length - 1))
264
+ }
213
265
  else if (e.key === "ArrowUp") { e.preventDefault(); setActive(Math.max(activeIndex - 1, 0)) }
214
266
  else if (e.key === "Enter") { e.preventDefault(); activate(entries[activeIndex]) }
215
267
  else if (e.key === "Delete" && onRemove && !query) {
@@ -279,7 +331,7 @@ function Combobox({
279
331
  ref={searchRef}
280
332
  autoFocus
281
333
  value={query}
282
- onChange={e => { setQuery(e.target.value); setActive(0); setError(null) }}
334
+ onChange={e => changeQuery(e.target.value)}
283
335
  placeholder={searchPlaceholder}
284
336
  aria-label={searchPlaceholder}
285
337
  aria-controls={listId}
@@ -290,8 +342,14 @@ function Combobox({
290
342
  </div>
291
343
  )}
292
344
 
293
- <div id={listId} role="listbox" className="max-h-64 overflow-y-auto overscroll-contain p-1">
294
- {filtered.length === 0 && !canCreate && (
345
+ <div
346
+ id={listId}
347
+ role="listbox"
348
+ aria-busy={loading || undefined}
349
+ onScroll={onLoadMore ? onListScroll : undefined}
350
+ className="max-h-64 overflow-y-auto overscroll-contain p-1"
351
+ >
352
+ {filtered.length === 0 && !canCreate && !loading && (
295
353
  <p className="px-2.5 py-6 text-center text-sm text-muted-foreground">{emptyText}</p>
296
354
  )}
297
355
 
@@ -377,6 +435,16 @@ function Combobox({
377
435
  </div>
378
436
  )
379
437
  })()}
438
+
439
+ {loading && (
440
+ <p className={cn(
441
+ "flex items-center justify-center gap-2 px-2.5 text-sm text-muted-foreground",
442
+ filtered.length === 0 ? "py-6" : "py-2"
443
+ )}>
444
+ <Loader2Icon className="size-4 animate-spin" />
445
+ Carregando…
446
+ </p>
447
+ )}
380
448
  </div>
381
449
 
382
450
  {error && (