kitunga-web 0.1.93 → 0.1.95
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/features/overlays/components/dropdowns/DropdownMenu.d.ts +5 -1
- package/dist/features/overlays/components/dropdowns/DropdownMenu.d.ts.map +1 -1
- package/dist/features/overlays/components/dropdowns/DropdownMenu.js +6 -4
- package/dist/features/overlays/components/dropdowns/DropdownMenu.js.map +1 -1
- package/dist/features/patterns/components/Form/MultiStepForm/components/GenericStepRenderer.js +1 -1
- package/dist/features/patterns/components/Form/MultiStepForm/components/GenericStepRenderer.module.css +2 -2
- package/dist/features/selects/components/Selects/CustomSelect.d.ts +11 -0
- package/dist/features/selects/components/Selects/CustomSelect.d.ts.map +1 -1
- package/dist/features/selects/components/Selects/CustomSelect.js +35 -12
- package/dist/features/selects/components/Selects/CustomSelect.js.map +1 -1
- package/dist/features/selects/components/Selects/CustomSelect.module.css +57 -1
- package/package.json +11 -10
|
@@ -17,6 +17,10 @@ export interface DropdownMenuProps {
|
|
|
17
17
|
isOpen: boolean;
|
|
18
18
|
onClose: () => void;
|
|
19
19
|
triggerRef?: React.RefObject<HTMLElement | null>;
|
|
20
|
+
/** Elemento contra o qual o menu se posiciona (ex.: a bolha dona do
|
|
21
|
+
trigger). Sem ele a posição mede-se do próprio trigger. O
|
|
22
|
+
click-fora continua a ignorar só o trigger. */
|
|
23
|
+
anchorRef?: React.RefObject<HTMLElement | null>;
|
|
20
24
|
items: DropdownMenuItem[];
|
|
21
25
|
onSelect?: (itemId: string) => void;
|
|
22
26
|
size?: 'sm' | 'md' | 'lg';
|
|
@@ -29,5 +33,5 @@ export interface DropdownMenuProps {
|
|
|
29
33
|
boundaryRef?: React.RefObject<HTMLElement | null>;
|
|
30
34
|
className?: string;
|
|
31
35
|
}
|
|
32
|
-
export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSelect, size, width, placementVertical, placementHorizontal, bordered, placementOffset, boundaryRef, className, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
36
|
+
export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSelect, size, width, placementVertical, placementHorizontal, bordered, placementOffset, boundaryRef, anchorRef, className, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
33
37
|
//# sourceMappingURL=DropdownMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../../../src/features/overlays/components/dropdowns/DropdownMenu.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,mEAAmE;IACnE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAW,EACX,KAAW,EACX,iBAA4B,EAC5B,mBAA6B,EAC7B,QAAe,EACf,eAAmB,EACnB,WAAW,EACX,SAAc,GACf,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../../../src/features/overlays/components/dropdowns/DropdownMenu.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,mEAAmE;IACnE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD;;sDAEkD;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAW,EACX,KAAW,EACX,iBAA4B,EAC5B,mBAA6B,EAC7B,QAAe,EACf,eAAmB,EACnB,WAAW,EACX,SAAS,EACT,SAAc,GACf,EAAE,iBAAiB,kDA6OnB"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import styles from './DropdownMenu.module.css';
|
|
5
5
|
import SharedMenuItem from '../../../navigation/components/Menu/SharedMenuItem';
|
|
6
|
-
export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSelect, size = 'md', width = 220, placementVertical = 'bottom', placementHorizontal = 'right', bordered = true, placementOffset = 8, boundaryRef, className = '', }) {
|
|
6
|
+
export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSelect, size = 'md', width = 220, placementVertical = 'bottom', placementHorizontal = 'right', bordered = true, placementOffset = 8, boundaryRef, anchorRef, className = '', }) {
|
|
7
7
|
const dropdownRef = useRef(null);
|
|
8
8
|
const [coords, setCoords] = useState(null);
|
|
9
9
|
// Se ainda não temos coords, o dropdown renderiza escondido para medir a altura.
|
|
@@ -59,9 +59,11 @@ export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSel
|
|
|
59
59
|
return spaceRight > spaceLeft ? 'left' : 'right';
|
|
60
60
|
};
|
|
61
61
|
const calcCoords = () => {
|
|
62
|
-
|
|
62
|
+
var _a;
|
|
63
|
+
const target = (_a = anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) !== null && _a !== void 0 ? _a : triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current;
|
|
64
|
+
if (!target)
|
|
63
65
|
return null;
|
|
64
|
-
const rect =
|
|
66
|
+
const rect = target.getBoundingClientRect();
|
|
65
67
|
const dropdownWidth = width;
|
|
66
68
|
const vDir = resolveVertical(rect);
|
|
67
69
|
const hDir = resolveHorizontal(rect, dropdownWidth);
|
|
@@ -98,7 +100,7 @@ export default function DropdownMenu({ isOpen, onClose, triggerRef, items, onSel
|
|
|
98
100
|
}
|
|
99
101
|
setCoords(calcCoords());
|
|
100
102
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
101
|
-
}, [isOpen, triggerRef, size, width, placementVertical, placementHorizontal, placementOffset, boundaryRef, measuring]);
|
|
103
|
+
}, [isOpen, triggerRef, anchorRef, size, width, placementVertical, placementHorizontal, placementOffset, boundaryRef, measuring]);
|
|
102
104
|
// Fechar ao clicar fora.
|
|
103
105
|
useEffect(() => {
|
|
104
106
|
if (!isOpen)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../../../src/features/overlays/components/dropdowns/DropdownMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAC;AACzF,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,cAAc,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../../../src/features/overlays/components/dropdowns/DropdownMenu.tsx"],"names":[],"mappings":"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"}
|
package/dist/features/patterns/components/Form/MultiStepForm/components/GenericStepRenderer.js
CHANGED
|
@@ -91,7 +91,7 @@ export function GenericStepRenderer({ formData, errors, mode, fields, onFieldCha
|
|
|
91
91
|
return (_jsx("div", { className: styles.stepContent, children: orderedRows.map((rowFields, rowIdx) => (_jsx("div", { className: styles.formRow, children: rowFields.map((field) => {
|
|
92
92
|
var _a, _b, _c, _d, _e;
|
|
93
93
|
const groupClass = `${styles.formGroup} ${field.width === "half" ? styles.formGroupHalf : ""}`.trim();
|
|
94
|
-
return (_jsxs("div", { className: groupClass, children: [_jsxs("label", { htmlFor: field.key, className: field.required ? styles.requiredLabel : styles.optionalLabel, children: [_jsx("span", { children: field.label }), field.required && _jsx(Asterisk, { size:
|
|
94
|
+
return (_jsxs("div", { className: groupClass, children: [_jsxs("label", { htmlFor: field.key, className: field.required ? styles.requiredLabel : styles.optionalLabel, children: [_jsx("span", { children: field.label }), field.required && _jsx(Asterisk, { size: 14, className: styles.requiredIcon }), !field.required && _jsx("span", { className: styles.optionalText, children: optionalLabel })] }), field.type === "text" && (_jsx(TextInput, { id: field.key, ref: field.resetOnValidationError ? (el => { if (el)
|
|
95
95
|
inputRefs.current[field.key] = el; }) : undefined, type: (_a = field.inputType) !== null && _a !== void 0 ? _a : "text", size: inputSize, value: getValue(field.key), onChange: (value) => handleFieldChange(field.key, value), className: errors[field.key] ? styles.inputError : "", placeholder: field.placeholder, readOnly: isReadOnly(field), autoComplete: (_b = field.autoComplete) !== null && _b !== void 0 ? _b : undefined, inputMode: field.inputMode, maxLength: field.maxLength, showPasswordToggle: field.inputType === "password", leftIcon: field.leftIcon })), field.type === "textarea" && (_jsx(TextareaInput, { id: field.key, size: inputSize, value: getValue(field.key), onChange: (value) => handleFieldChange(field.key, value), className: errors[field.key] ? styles.inputError : "", placeholder: field.placeholder, readOnly: isReadOnly(field), leftIcon: field.leftIcon })), field.type === "phone" && (_jsx(PhoneInput, { id: field.key, size: inputSize, value: getValue(field.key), onChange: (value) => handleFieldChange(field.key, value), className: errors[field.key] ? styles.inputError : "", placeholder: field.placeholder, readOnly: isReadOnly(field), leftIcon: field.leftIcon, countryCode: (() => {
|
|
96
96
|
const c = getValue("country") || getValue("pais");
|
|
97
97
|
return (c && c !== "N/A") ? c : userCountryCode;
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
.requiredLabel span,
|
|
46
46
|
.optionalLabel span:first-child {
|
|
47
|
-
font-size: 0.
|
|
47
|
+
font-size: 0.95rem;
|
|
48
48
|
font-weight: 500;
|
|
49
49
|
color: #222833;
|
|
50
50
|
}
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.optionalText {
|
|
58
|
-
font-size: 0.
|
|
58
|
+
font-size: 0.9rem;
|
|
59
59
|
color: #6b7280;
|
|
60
60
|
font-weight: 400;
|
|
61
61
|
}
|
|
@@ -4,6 +4,10 @@ export interface Option {
|
|
|
4
4
|
label: string;
|
|
5
5
|
selectedLabel?: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
/** Ícone da opção (bandeira, avatar, glyph) — renderiza na linha
|
|
8
|
+
* do dropdown e, se a opção estiver seleccionada, também no
|
|
9
|
+
* trigger fechado (ganha ao leftIcon contextual). */
|
|
10
|
+
icon?: React.ReactNode;
|
|
7
11
|
}
|
|
8
12
|
export interface CustomSelectProps {
|
|
9
13
|
id?: string;
|
|
@@ -23,6 +27,13 @@ export interface CustomSelectProps {
|
|
|
23
27
|
collapsible?: boolean;
|
|
24
28
|
dropdownMinWidth?: number;
|
|
25
29
|
dropdownAlign?: 'left' | 'right';
|
|
30
|
+
/** Input de filtro fixo no topo do dropdown — para listas longas
|
|
31
|
+
* (ex.: países). Filtro accent-insensitive por label, selectedLabel
|
|
32
|
+
* e value (o "244" encontra "Angola (+244)"). */
|
|
33
|
+
searchable?: boolean;
|
|
34
|
+
searchPlaceholder?: string;
|
|
35
|
+
searchIcon?: React.ReactNode;
|
|
36
|
+
noResultsMessage?: string;
|
|
26
37
|
}
|
|
27
38
|
declare const CustomSelect: React.FC<CustomSelectProps>;
|
|
28
39
|
export default CustomSelect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;0DAEsD;IACtD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC;;sDAEkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiM7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useRef, useEffect } from 'react';
|
|
4
|
-
import { ChevronDown, Check } from 'lucide-react';
|
|
4
|
+
import { ChevronDown, Check, Search } from 'lucide-react';
|
|
5
5
|
import styles from './CustomSelect.module.css';
|
|
6
|
-
const CustomSelect = ({ id, name, value, onChange, options, placeholder = 'Selecione uma opção', required = false, className = '', disabled = false, leftIcon, hasError = false, variant = 'default', size = 'md', valueBold = false, collapsible = false, dropdownMinWidth, dropdownAlign = 'right', }) => {
|
|
7
|
-
var _a;
|
|
6
|
+
const CustomSelect = ({ id, name, value, onChange, options, placeholder = 'Selecione uma opção', required = false, className = '', disabled = false, leftIcon, hasError = false, variant = 'default', size = 'md', valueBold = false, collapsible = false, dropdownMinWidth, dropdownAlign = 'right', searchable = false, searchPlaceholder, searchIcon, noResultsMessage = 'Sem resultados', }) => {
|
|
7
|
+
var _a, _b;
|
|
8
8
|
const [isOpen, setIsOpen] = useState(false);
|
|
9
|
+
const [search, setSearch] = useState('');
|
|
9
10
|
const selectRef = useRef(null);
|
|
11
|
+
const searchInputRef = useRef(null);
|
|
10
12
|
const selectedOption = value && value.trim() !== ''
|
|
11
13
|
? options.find(option => option.value === value) || null
|
|
12
14
|
: null;
|
|
15
|
+
// O ícone do trigger: o da opção seleccionada (bandeira do país)
|
|
16
|
+
// ganha ao leftIcon contextual (Globe, Funnel…).
|
|
17
|
+
const displayIcon = (_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) !== null && _a !== void 0 ? _a : leftIcon;
|
|
18
|
+
const normalize = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
|
|
19
|
+
const query = normalize(search.trim());
|
|
20
|
+
const visibleOptions = query
|
|
21
|
+
? options.filter((option) => normalize(option.label).includes(query) ||
|
|
22
|
+
normalize(option.value).includes(query) ||
|
|
23
|
+
(option.selectedLabel ? normalize(option.selectedLabel).includes(query) : false))
|
|
24
|
+
: options;
|
|
25
|
+
// Ao abrir: foco no input de pesquisa. Ao fechar: a pesquisa morre.
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
var _a;
|
|
28
|
+
if (isOpen && searchable)
|
|
29
|
+
(_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
30
|
+
if (!isOpen)
|
|
31
|
+
setSearch('');
|
|
32
|
+
}, [isOpen, searchable]);
|
|
13
33
|
const toggleDropdown = () => {
|
|
14
34
|
if (disabled)
|
|
15
35
|
return;
|
|
@@ -33,21 +53,24 @@ const CustomSelect = ({ id, name, value, onChange, options, placeholder = 'Selec
|
|
|
33
53
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
34
54
|
};
|
|
35
55
|
}, []);
|
|
36
|
-
return (_jsxs("div", { className: `${styles.customSelect} ${styles[size]} ${variant === 'flat' ? styles.flat : ''} ${className} ${isOpen ? styles.open : ''} ${hasError ? styles.error : ''} ${collapsible ? styles.collapsible : ''}`, ref: selectRef, children: [name && (_jsx("input", { type: "hidden", id: id, name: name, value: value || '', required: required })), _jsxs("div", { className: `${styles.selectedValue} ${disabled ? styles.disabled : ''} ${
|
|
56
|
+
return (_jsxs("div", { className: `${styles.customSelect} ${styles[size]} ${variant === 'flat' ? styles.flat : ''} ${className} ${isOpen ? styles.open : ''} ${hasError ? styles.error : ''} ${collapsible ? styles.collapsible : ''}`, ref: selectRef, children: [name && (_jsx("input", { type: "hidden", id: id, name: name, value: value || '', required: required })), _jsxs("div", { className: `${styles.selectedValue} ${disabled ? styles.disabled : ''} ${displayIcon ? styles.hasLeftIcon : ''}`, onClick: toggleDropdown, role: "button", tabIndex: disabled ? -1 : 0, onKeyDown: (e) => {
|
|
37
57
|
if (disabled)
|
|
38
58
|
return;
|
|
39
59
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
40
60
|
e.preventDefault();
|
|
41
61
|
toggleDropdown();
|
|
42
62
|
}
|
|
43
|
-
}, children: [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
63
|
+
}, children: [displayIcon && (_jsx("span", { className: styles.leftIcon, children: displayIcon })), _jsx("span", { className: `${styles.valueText} ${!value ? styles.placeholder : ''} ${valueBold ? styles.valueBold : ''}`.trim(), children: selectedOption ? (_b = selectedOption.selectedLabel) !== null && _b !== void 0 ? _b : selectedOption.label : placeholder }), _jsx(ChevronDown, { size: 16, className: `${styles.arrow} ${isOpen ? styles.rotate : ''}` })] }), isOpen && (_jsx("div", { className: `${styles.dropdown} ${dropdownAlign === 'left' ? styles.dropdownLeft : styles.dropdownRight}`, style: dropdownMinWidth ? { minWidth: `${dropdownMinWidth}px` } : undefined, children: _jsxs("div", { className: styles.dropdownPanel, children: [searchable && (_jsxs("div", { className: styles.searchRow, children: [_jsx("span", { className: styles.searchIconWrap, children: searchIcon !== null && searchIcon !== void 0 ? searchIcon : _jsx(Search, { size: 14 }) }), _jsx("input", { ref: searchInputRef, type: "text", className: styles.searchInput, value: search, placeholder: searchPlaceholder, onChange: (e) => setSearch(e.target.value), onKeyDown: (e) => {
|
|
64
|
+
if (e.key === 'Enter')
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
}, onClick: (e) => e.stopPropagation() })] })), _jsxs("div", { className: styles.dropdownList, role: "listbox", children: [visibleOptions.map((option) => (_jsxs("div", { className: `${styles.option} ${value === option.value ? styles.selected : ''} ${option.disabled ? styles.disabledOption : ''}`, onClick: () => handleSelect(option), onKeyDown: (e) => {
|
|
67
|
+
if (option.disabled)
|
|
68
|
+
return;
|
|
69
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
handleSelect(option);
|
|
72
|
+
}
|
|
73
|
+
}, role: "option", "aria-selected": value === option.value, "aria-disabled": option.disabled ? true : undefined, tabIndex: option.disabled ? -1 : 0, children: [_jsxs("span", { className: styles.optionText, children: [option.icon && (_jsx("span", { className: styles.optionIcon, children: option.icon })), _jsx("span", { children: option.label })] }), value === option.value && (_jsx(Check, { size: 14, className: styles.checkIcon }))] }, option.value))), visibleOptions.length === 0 && (_jsx("div", { className: styles.noResults, children: noResultsMessage }))] })] }) }))] }));
|
|
51
74
|
};
|
|
52
75
|
export default CustomSelect;
|
|
53
76
|
//# sourceMappingURL=CustomSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomSelect.js","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomSelect.js","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -180,9 +180,65 @@
|
|
|
180
180
|
border: 1px solid var(--border-divider);
|
|
181
181
|
border-radius: var(--radius-sm);
|
|
182
182
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
183
|
+
overflow: hidden;
|
|
184
|
+
animation: fadeIn 0.15s ease-out;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* A zona de scroll vive na lista — o searchRow fica pinned acima. */
|
|
188
|
+
.dropdownList {
|
|
183
189
|
max-height: 200px;
|
|
184
190
|
overflow-y: auto;
|
|
185
|
-
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.searchRow {
|
|
194
|
+
display: flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
height: 40px;
|
|
197
|
+
padding: 0 var(--spacing-md);
|
|
198
|
+
border-bottom: 1px solid var(--border-divider);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.searchIconWrap {
|
|
202
|
+
display: inline-flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
color: var(--text-tertiary);
|
|
205
|
+
flex-shrink: 0;
|
|
206
|
+
margin-right: var(--spacing-xs);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.searchInput {
|
|
210
|
+
flex: 1;
|
|
211
|
+
min-width: 0;
|
|
212
|
+
border: none;
|
|
213
|
+
outline: none;
|
|
214
|
+
background: transparent;
|
|
215
|
+
font-family: inherit;
|
|
216
|
+
font-size: 0.9rem;
|
|
217
|
+
color: var(--text-primary);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.searchInput::placeholder {
|
|
221
|
+
color: var(--text-tertiary);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.optionText {
|
|
225
|
+
display: inline-flex;
|
|
226
|
+
align-items: center;
|
|
227
|
+
min-width: 0;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.optionIcon {
|
|
231
|
+
display: inline-flex;
|
|
232
|
+
align-items: center;
|
|
233
|
+
justify-content: center;
|
|
234
|
+
margin-right: 0.625rem;
|
|
235
|
+
flex-shrink: 0;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.noResults {
|
|
239
|
+
padding: var(--spacing-md) 1rem;
|
|
240
|
+
color: var(--text-tertiary);
|
|
241
|
+
font-size: 0.9rem;
|
|
186
242
|
}
|
|
187
243
|
|
|
188
244
|
.dropdown .option .placeholder,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kitunga-web",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.95",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -47,6 +47,15 @@
|
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"registry": "https://registry.npmjs.org"
|
|
49
49
|
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"dev": "dotenv -e .env.local next dev",
|
|
52
|
+
"start": "dotenv -e .env.local next start",
|
|
53
|
+
"build": "next build",
|
|
54
|
+
"build:lib": "node ./scripts/build-library.mjs",
|
|
55
|
+
"prepublishOnly": "pnpm run build:lib",
|
|
56
|
+
"publish:lib": "pnpm publish --no-git-checks",
|
|
57
|
+
"lint": "eslint"
|
|
58
|
+
},
|
|
50
59
|
"dependencies": {
|
|
51
60
|
"dotenv-cli": "^11.0.0",
|
|
52
61
|
"lucide-react": "^0.515.0",
|
|
@@ -68,13 +77,5 @@
|
|
|
68
77
|
"axios": "^1.13.2",
|
|
69
78
|
"react": ">=18",
|
|
70
79
|
"react-dom": ">=18"
|
|
71
|
-
},
|
|
72
|
-
"scripts": {
|
|
73
|
-
"dev": "dotenv -e .env.local next dev",
|
|
74
|
-
"start": "dotenv -e .env.local next start",
|
|
75
|
-
"build": "next build",
|
|
76
|
-
"build:lib": "node ./scripts/build-library.mjs",
|
|
77
|
-
"publish:lib": "pnpm publish --no-git-checks",
|
|
78
|
-
"lint": "eslint"
|
|
79
80
|
}
|
|
80
|
-
}
|
|
81
|
+
}
|