kitunga-web 0.1.96 → 0.1.98

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.
Files changed (34) hide show
  1. package/dist/features/inputs/components/Inputs/PhoneInput/countries/index.d.ts +4 -1
  2. package/dist/features/inputs/components/Inputs/PhoneInput/countries/index.d.ts.map +1 -1
  3. package/dist/features/inputs/components/Inputs/PhoneInput/countries/index.js +86 -32
  4. package/dist/features/inputs/components/Inputs/PhoneInput/countries/index.js.map +1 -1
  5. package/dist/features/selects/components/Selects/CustomSelect.d.ts +56 -4
  6. package/dist/features/selects/components/Selects/CustomSelect.d.ts.map +1 -1
  7. package/dist/features/selects/components/Selects/CustomSelect.js +161 -46
  8. package/dist/features/selects/components/Selects/CustomSelect.js.map +1 -1
  9. package/dist/features/selects/components/Selects/CustomSelect.module.css +130 -0
  10. package/dist/features/selects/components/Selects/pickerOptions.d.ts +29 -0
  11. package/dist/features/selects/components/Selects/pickerOptions.d.ts.map +1 -0
  12. package/dist/features/selects/components/Selects/pickerOptions.js +85 -0
  13. package/dist/features/selects/components/Selects/pickerOptions.js.map +1 -0
  14. package/dist/ui.d.ts +1 -1
  15. package/dist/ui.d.ts.map +1 -1
  16. package/dist/ui.js +1 -1
  17. package/dist/ui.js.map +1 -1
  18. package/package.json +12 -11
  19. package/dist/features/inputs/components/Inputs/PhoneInput/countries/ao.d.ts +0 -3
  20. package/dist/features/inputs/components/Inputs/PhoneInput/countries/ao.d.ts.map +0 -1
  21. package/dist/features/inputs/components/Inputs/PhoneInput/countries/ao.js +0 -20
  22. package/dist/features/inputs/components/Inputs/PhoneInput/countries/ao.js.map +0 -1
  23. package/dist/features/inputs/components/Inputs/PhoneInput/countries/br.d.ts +0 -3
  24. package/dist/features/inputs/components/Inputs/PhoneInput/countries/br.d.ts.map +0 -1
  25. package/dist/features/inputs/components/Inputs/PhoneInput/countries/br.js +0 -9
  26. package/dist/features/inputs/components/Inputs/PhoneInput/countries/br.js.map +0 -1
  27. package/dist/features/inputs/components/Inputs/PhoneInput/countries/pt.d.ts +0 -3
  28. package/dist/features/inputs/components/Inputs/PhoneInput/countries/pt.d.ts.map +0 -1
  29. package/dist/features/inputs/components/Inputs/PhoneInput/countries/pt.js +0 -9
  30. package/dist/features/inputs/components/Inputs/PhoneInput/countries/pt.js.map +0 -1
  31. package/dist/features/inputs/components/Inputs/PhoneInput/countries/us.d.ts +0 -3
  32. package/dist/features/inputs/components/Inputs/PhoneInput/countries/us.d.ts.map +0 -1
  33. package/dist/features/inputs/components/Inputs/PhoneInput/countries/us.js +0 -17
  34. package/dist/features/inputs/components/Inputs/PhoneInput/countries/us.js.map +0 -1
@@ -1,5 +1,8 @@
1
+ import { type CountryCode } from 'libphonenumber-js';
1
2
  import { CountryConfig } from '../types/phone.types';
2
- export declare const COUNTRIES: Record<string, CountryConfig>;
3
+ /** Todos os ISO-2 que a metadata cobre — a lista completa do selector
4
+ de países (o bloco prioritário e a ordenação são do consumidor). */
5
+ export declare const getSupportedCountryCodes: () => CountryCode[];
3
6
  export declare const getCountryConfig: (code: string | undefined) => CountryConfig | undefined;
4
7
  export declare const validatePhone: (phone: string | undefined, countryCode: string | undefined) => boolean;
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAKnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,aAAa,GAAG,SAiB3E,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,EAAE,aAAa,MAAM,GAAG,SAAS,KAAG,OAmB1F,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA+DrD;uEACuE;AACvE,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAAoB,CAAC;AAE5E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,aAAa,GAAG,SAW3E,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,EAAE,aAAa,MAAM,GAAG,SAAS,KAAG,OAqB1F,CAAC"}
@@ -1,48 +1,102 @@
1
- import { aoaConfig } from './ao';
2
- import { brConfig } from './br';
3
- import { ptConfig } from './pt';
4
- import { usaConfig } from './us';
5
- // Futuramente importe de './pt', './br' etc...
6
- export const COUNTRIES = {
7
- AO: aoaConfig,
8
- BR: brConfig,
9
- PT: ptConfig,
10
- US: usaConfig,
1
+ // Países suportados pelo PhoneInput — decisão 74 do Masolo: TODOS os
2
+ // territórios da metadata do libphonenumber-js (a biblioteca canónica
3
+ // do plano de numeração), nunca allowlist manual. O CountryConfig é
4
+ // GERADO por país: indicativo, máscara (do exemplo móvel real do
5
+ // plano) e validação (a própria metadata) — zero ficheiros por país.
6
+ //
7
+ // O mapa OVERRIDES é o único ponto manual: refinamentos de UX mais
8
+ // estritos que a metadata (a metadata valida, o override refina a
9
+ // digitação — ex.: os prefixos móveis ANACOM do AO bloqueiam um dígito
10
+ // impossível antes de ele ser escrito).
11
+ import { getCountries, getCountryCallingCode, isSupportedCountry, parsePhoneNumberFromString, getExampleNumber, } from 'libphonenumber-js';
12
+ import examples from 'libphonenumber-js/examples.mobile.json';
13
+ // Nomes em inglês canónico (a UI localiza por Intl.DisplayNames na
14
+ // língua activa — este campo existe por compat do contrato).
15
+ const englishNames = new Intl.DisplayNames(['en'], { type: 'region' });
16
+ // Overrides de produto — a metadata é a verdade; aqui vivem APENAS
17
+ // regras mais estritas que ela, por país:
18
+ const OVERRIDES = {
19
+ AO: {
20
+ // Prefixos móveis reais da ANACOM — bloqueia o dígito impossível
21
+ // durante a digitação, não só na validação final.
22
+ formatInput: (val) => {
23
+ if (val.length === 1 && val[0] !== '9')
24
+ return '';
25
+ if (val.length === 2 && !['91', '92', '93', '94', '95', '97', '99'].includes(val))
26
+ return '9';
27
+ return val;
28
+ },
29
+ validateRegex: /^9[1234579]\d{7}$/,
30
+ },
11
31
  };
32
+ const configCache = new Map();
33
+ const buildConfig = (iso) => {
34
+ var _a, _b;
35
+ const example = getExampleNumber(iso, examples);
36
+ // A máscara deriva do exemplo móvel real do plano — a forma local
37
+ // que o utilizador reconhece ('923 123 456', '(11) 96123-4567').
38
+ // Sem exemplo (território sem plano móvel): 15 posições, o máximo
39
+ // ITU — nunca uma máscara inventada.
40
+ const national = (_a = example === null || example === void 0 ? void 0 : example.formatNational()) !== null && _a !== void 0 ? _a : '';
41
+ const format = national.replace(/\d/g, '0') || '000000000000000';
42
+ const maxLength = national.replace(/\D/g, '').length || 15;
43
+ return Object.assign({ code: iso, dialCode: `+${getCountryCallingCode(iso)}`, name: (_b = englishNames.of(iso)) !== null && _b !== void 0 ? _b : iso, format,
44
+ maxLength }, OVERRIDES[iso]);
45
+ };
46
+ // Aliases legados do contrato antigo (nomes/alpha-3 → ISO-2). O
47
+ // caminho canónico é sempre o ISO-2 — os aliases existem só para não
48
+ // partir consumidores antigos.
49
+ const LEGACY_ALIASES = {
50
+ AOA: 'AO',
51
+ ANGOLA: 'AO',
52
+ USA: 'US',
53
+ 'ESTADOS UNIDOS': 'US',
54
+ PORTUGAL: 'PT',
55
+ BRASIL: 'BR',
56
+ };
57
+ const normalizeCountryCode = (code) => {
58
+ const upper = code.trim().toUpperCase();
59
+ if (upper.length === 2)
60
+ return upper;
61
+ return LEGACY_ALIASES[upper];
62
+ };
63
+ /** Todos os ISO-2 que a metadata cobre — a lista completa do selector
64
+ de países (o bloco prioritário e a ordenação são do consumidor). */
65
+ export const getSupportedCountryCodes = () => getCountries();
12
66
  export const getCountryConfig = (code) => {
13
67
  if (!code)
14
68
  return undefined;
15
- const upper = code.toUpperCase();
16
- const normalized = upper.length === 2
17
- ? upper
18
- : (upper === 'AOA' || upper === 'ANGOLA'
19
- ? 'AO'
20
- : upper === 'USA' || upper === 'ESTADOS UNIDOS'
21
- ? 'US'
22
- : upper === 'PORTUGAL'
23
- ? 'PT'
24
- : upper === 'BRASIL'
25
- ? 'BR'
26
- : upper);
27
- return COUNTRIES[normalized];
69
+ const iso = normalizeCountryCode(code);
70
+ if (!iso || !isSupportedCountry(iso))
71
+ return undefined;
72
+ let config = configCache.get(iso);
73
+ if (!config) {
74
+ config = buildConfig(iso);
75
+ configCache.set(iso, config);
76
+ }
77
+ return config;
28
78
  };
29
79
  export const validatePhone = (phone, countryCode) => {
30
80
  if (!phone || phone.trim() === '')
31
81
  return false;
32
82
  const config = getCountryConfig(countryCode);
83
+ if (!config)
84
+ return false;
33
85
  const clean = phone.replace(/\D/g, '');
34
86
  if (clean.length === 0)
35
87
  return false;
36
- if (!config) {
37
- // Se realmente não soubermos o país, retornamos false (ESTRITO)
38
- return false;
39
- }
40
- // 1. Validação de Tamanho
41
- if (clean.length !== config.maxLength)
42
- return false;
43
- // 2. Validação de Regex (ex: regras 9X de Angola)
88
+ // 1. Override de produto (ex.: prefixos ANACOM do AO) — mais estrito
89
+ // que a metadata, aplica-se primeiro.
44
90
  if (config.validateRegex && !config.validateRegex.test(clean))
45
91
  return false;
46
- return true;
92
+ // 2. A metadata é a verdade — número nacional + país.
93
+ const parsed = parsePhoneNumberFromString(clean, config.code);
94
+ if (!(parsed === null || parsed === void 0 ? void 0 : parsed.isValid()))
95
+ return false;
96
+ // 3. Política do SMS: só móveis onde o tipo é detectável. A build
97
+ // min não distingue tipo em todos os países (e o NANP é todo
98
+ // FIXED_LINE_OR_MOBILE) — onde não distingue, vale o plano.
99
+ const type = parsed.getType();
100
+ return type === undefined || type === 'MOBILE' || type === 'FIXED_LINE_OR_MOBILE';
47
101
  };
48
102
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAkC;IACpD,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAwB,EAA6B,EAAE;IACpF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CACE,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ;YACjC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,gBAAgB;gBAC3C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,KAAK,UAAU;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,KAAK,KAAK,QAAQ;wBAChB,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,KAAK,CAC1B,CAAC;IACN,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,WAA+B,EAAW,EAAE;IACjG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,gEAAgE;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEpD,kDAAkD;IAClD,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5E,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/index.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,37 @@ import React from 'react';
2
2
  export interface Option {
3
3
  value: string;
4
4
  label: string;
5
+ /** Rótulo curto para o trigger fechado (ex.: nome do país sem o
6
+ * indicativo). Default: label. */
5
7
  selectedLabel?: string;
6
8
  disabled?: boolean;
7
9
  /** Ícone da opção (bandeira, avatar, glyph) — renderiza na linha
8
- * do dropdown e, se a opção estiver seleccionada, também no
10
+ * do dropdown/picker e, se a opção estiver seleccionada, também no
9
11
  * trigger fechado (ganha ao leftIcon contextual). */
10
12
  icon?: React.ReactNode;
13
+ /** Texto literal do cabeçalho de secção no modo picker — opções
14
+ * com o mesmo group renderizam sob a mesma secção, na ordem dada
15
+ * (ex.: 'Sugeridos', 'A', 'B'). Sem group, a opção renderiza sem
16
+ * cabeçalho. */
17
+ group?: string;
18
+ }
19
+ export interface PickerClassNames {
20
+ overlay?: string;
21
+ panel?: string;
22
+ header?: string;
23
+ backButton?: string;
24
+ closeButton?: string;
25
+ searchRow?: string;
26
+ list?: string;
27
+ groupHeader?: string;
28
+ option?: string;
11
29
  }
12
30
  export interface CustomSelectProps {
13
31
  id?: string;
14
32
  name?: string;
15
33
  value: string;
16
34
  onChange: (value: string) => void;
17
- options: Option[];
35
+ options?: Option[];
18
36
  placeholder?: string;
19
37
  required?: boolean;
20
38
  className?: string;
@@ -27,12 +45,12 @@ export interface CustomSelectProps {
27
45
  collapsible?: boolean;
28
46
  dropdownMinWidth?: number;
29
47
  dropdownAlign?: 'left' | 'right';
30
- /** SearchInput fixo no topo do dropdown — para listas longas
48
+ /** SearchInput fixo no topo do painel — para listas longas
31
49
  * (ex.: países). Filtro accent-insensitive por label, selectedLabel
32
50
  * e value (o "244" encontra "Angola (+244)"). */
33
51
  searchable?: boolean;
34
52
  searchPlaceholder?: string;
35
- /** Tamanho do SearchInput no dropdown (default 'md'). */
53
+ /** Tamanho do SearchInput no painel (default 'md'). */
36
54
  searchSize?: 'sm' | 'md' | 'lg';
37
55
  /** O empty quando o filtro não encontra nada — o mesmo
38
56
  * SearchEmptyState das tabelas; actionLabel mostra o botão que
@@ -42,6 +60,40 @@ export interface CustomSelectProps {
42
60
  description?: string;
43
61
  actionLabel?: string;
44
62
  };
63
+ /** Segunda apresentação da lista: overlay-sheet com header, pesquisa
64
+ * e secções agrupadas — para listas longas com identidade visual
65
+ * (países, línguas). 'dropdown' é o comportamento de sempre.
66
+ * A pele responsiva é do consumidor via vars --picker-* e
67
+ * pickerClassNames — a kitunga não tem breakpoints. */
68
+ presentation?: 'dropdown' | 'picker';
69
+ /** Título do header do sheet no modo picker. */
70
+ pickerTitle?: string;
71
+ /** Autofocus no SearchInput ao abrir o picker (default false — no
72
+ * mobile abre o teclado; fica ao critério do consumidor). */
73
+ searchAutoFocus?: boolean;
74
+ /** Slots de classe para a pele do consumidor — media queries e
75
+ * regras de breakpoint vivem sempre fora da kitunga. */
76
+ pickerClassNames?: PickerClassNames;
77
+ /** Conveniência que constrói as opções internamente:
78
+ * 'country' → todos os territórios do libphonenumber +
79
+ * Intl.DisplayNames + bandeiras de flagBaseUrl;
80
+ * 'language' → locales + getLanguageLabel + glyph Globe por linha.
81
+ * `options` explícito sempre ganha ao `kind`. */
82
+ kind?: 'country' | 'language';
83
+ /** Locale dos Intl.DisplayNames e da ordenação — a língua activa
84
+ * do consumidor (default 'en'). */
85
+ displayLocale?: string;
86
+ /** Base dos SVGs de bandeira do consumidor (default '/flags/4x3'). */
87
+ flagBaseUrl?: string;
88
+ /** Bloco prioritário no topo do picker (kind='country') — a ordem
89
+ * é do produto; estas opções entram no grupo `suggestedLabel`. */
90
+ priorityCodes?: readonly string[];
91
+ /** Texto do cabeçalho do grupo prioritário (kind='country'). */
92
+ suggestedLabel?: string;
93
+ /** Lista de locales para kind='language' — a whitelist do consumidor. */
94
+ locales?: readonly string[];
95
+ /** Nome da língua por locale — i18n do consumidor. */
96
+ getLanguageLabel?: (locale: string) => string;
45
97
  }
46
98
  declare const CustomSelect: React.FC<CustomSelectProps>;
47
99
  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;AAM3D,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,yDAAyD;IACzD,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAChC;;4BAEwB;IACxB,gBAAgB,CAAC,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkM7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,75 +1,190 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useRef, useEffect } from 'react';
4
- import { ChevronDown, Check } from 'lucide-react';
3
+ import React, { useState, useRef, useEffect, useCallback } from 'react';
4
+ import { ChevronDown, Check, X, ArrowLeft } from 'lucide-react';
5
5
  import SearchInput from '../../../inputs/components/Inputs/SearchInput';
6
6
  import SearchEmptyState from '../../../feedback/components/EmptyStates/SearchEmptyState/SearchEmptyState';
7
+ import { buildCountryPickerOptions, buildLanguagePickerOptions, } from './pickerOptions';
7
8
  import styles from './CustomSelect.module.css';
8
- 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, searchSize = 'md', searchEmptyProps, }) => {
9
- var _a, _b;
9
+ const normalize = (text) => text
10
+ .normalize('NFD')
11
+ .replace(/[\u0300-\u036f]/g, '')
12
+ .toLowerCase();
13
+ 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, searchSize = 'md', searchEmptyProps, presentation = 'dropdown', pickerTitle, searchAutoFocus = false, pickerClassNames, kind, displayLocale, flagBaseUrl, priorityCodes, suggestedLabel, locales, getLanguageLabel, }) => {
14
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
10
15
  const [isOpen, setIsOpen] = useState(false);
11
16
  const [search, setSearch] = useState('');
12
17
  const selectRef = useRef(null);
18
+ // Entrada transitória do histórico no modo picker — o voltar do
19
+ // mobile/SO fecha o sheet (mesmo modelo do PopupContext do Masolo,
20
+ // sem router: pushState + popstate).
21
+ const pickerPushedRef = useRef(false);
22
+ const resolvedOptions = React.useMemo(() => {
23
+ if (options === null || options === void 0 ? void 0 : options.length)
24
+ return options;
25
+ if (kind === 'country') {
26
+ return buildCountryPickerOptions({
27
+ displayLocale,
28
+ flagBaseUrl,
29
+ priorityCodes,
30
+ suggestedLabel,
31
+ });
32
+ }
33
+ if (kind === 'language') {
34
+ return buildLanguagePickerOptions({
35
+ locales: locales !== null && locales !== void 0 ? locales : [],
36
+ getLanguageLabel,
37
+ displayLocale,
38
+ });
39
+ }
40
+ return options !== null && options !== void 0 ? options : [];
41
+ }, [
42
+ options,
43
+ kind,
44
+ displayLocale,
45
+ flagBaseUrl,
46
+ priorityCodes,
47
+ suggestedLabel,
48
+ locales,
49
+ getLanguageLabel,
50
+ ]);
13
51
  const selectedOption = value && value.trim() !== ''
14
- ? options.find(option => option.value === value) || null
52
+ ? resolvedOptions.find((option) => option.value === value) || null
15
53
  : null;
16
- // O ícone do trigger: o da opção seleccionada (bandeira do país)
17
- // ganha ao leftIcon contextual (Globe, Funnel…).
18
- const displayIcon = (_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) !== null && _a !== void 0 ? _a : leftIcon;
19
- const normalize = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
20
- const query = normalize(search.trim());
21
- const visibleOptions = query
22
- ? options.filter((option) => normalize(option.label).includes(query) ||
23
- normalize(option.value).includes(query) ||
24
- (option.selectedLabel ? normalize(option.selectedLabel).includes(query) : false))
25
- : options;
26
- // Ao fechar, a pesquisa morre — o próximo open recomeça limpo
27
- // (o autofocus vem do próprio SearchInput ao montar).
54
+ // Fecha o picker — se a entrada do histórico é nossa, o fecho POPA-a
55
+ // com history.back() (o popstate faz setIsOpen(false)); sem entrada
56
+ // basta o state.
57
+ const closePicker = useCallback(() => {
58
+ if (pickerPushedRef.current) {
59
+ pickerPushedRef.current = false;
60
+ window.history.back();
61
+ return;
62
+ }
63
+ setIsOpen(false);
64
+ }, []);
65
+ // Click fora fecha o painel — mousedown para apanhar antes do blur.
66
+ // No modo picker o overlay cobre o viewport e trata do seu próprio
67
+ // click-outside (está dentro do selectRef, por isso nunca dispara aqui).
68
+ useEffect(() => {
69
+ const handleClickOutside = (event) => {
70
+ if (selectRef.current &&
71
+ !selectRef.current.contains(event.target)) {
72
+ setIsOpen(false);
73
+ }
74
+ };
75
+ document.addEventListener('mousedown', handleClickOutside);
76
+ return () => document.removeEventListener('mousedown', handleClickOutside);
77
+ }, []);
78
+ // A pesquisa morre com o painel — reabrir mostra a lista inteira.
28
79
  useEffect(() => {
29
80
  if (!isOpen)
30
81
  setSearch('');
31
82
  }, [isOpen]);
83
+ // popstate — o voltar do SO/navegador popou a nossa entrada: fecha.
84
+ useEffect(() => {
85
+ if (!isOpen || presentation !== 'picker')
86
+ return;
87
+ const handlePopState = () => {
88
+ pickerPushedRef.current = false;
89
+ setIsOpen(false);
90
+ };
91
+ window.addEventListener('popstate', handlePopState);
92
+ return () => window.removeEventListener('popstate', handlePopState);
93
+ }, [isOpen, presentation]);
94
+ // ESC + trava de scroll da página enquanto o sheet está aberto.
95
+ useEffect(() => {
96
+ if (!isOpen || presentation !== 'picker')
97
+ return;
98
+ const handleKeyDown = (e) => {
99
+ if (e.key === 'Escape')
100
+ closePicker();
101
+ };
102
+ window.addEventListener('keydown', handleKeyDown);
103
+ document.body.style.overflow = 'hidden';
104
+ return () => {
105
+ window.removeEventListener('keydown', handleKeyDown);
106
+ document.body.style.overflow = 'unset';
107
+ };
108
+ }, [isOpen, presentation, closePicker]);
32
109
  const toggleDropdown = () => {
33
110
  if (disabled)
34
111
  return;
35
- setIsOpen(!isOpen);
112
+ if (isOpen) {
113
+ if (presentation === 'picker')
114
+ closePicker();
115
+ else
116
+ setIsOpen(false);
117
+ return;
118
+ }
119
+ setIsOpen(true);
120
+ if (presentation === 'picker' && typeof window !== 'undefined') {
121
+ // Entrada transitória — o botão/gesto de voltar do SO fecha o
122
+ // sheet sem sair da página por baixo.
123
+ pickerPushedRef.current = true;
124
+ window.history.pushState({ __kitungaSelectPicker: true }, '');
125
+ }
36
126
  };
37
127
  const handleSelect = (option) => {
38
128
  if (option.disabled)
39
129
  return;
40
130
  onChange(option.value);
41
- setIsOpen(false);
131
+ if (presentation === 'picker')
132
+ closePicker();
133
+ else
134
+ setIsOpen(false);
42
135
  };
43
- // Fechar o dropdown ao clicar fora
44
- useEffect(() => {
45
- const handleClickOutside = (event) => {
46
- if (selectRef.current && !selectRef.current.contains(event.target)) {
47
- setIsOpen(false);
136
+ const handleKeyDown = (e) => {
137
+ if (e.key === 'Enter' || e.key === ' ') {
138
+ e.preventDefault();
139
+ toggleDropdown();
140
+ }
141
+ };
142
+ const query = normalize(search.trim());
143
+ const visibleOptions = query
144
+ ? resolvedOptions.filter((option) => {
145
+ var _a;
146
+ return normalize(option.label).includes(query) ||
147
+ normalize((_a = option.selectedLabel) !== null && _a !== void 0 ? _a : '').includes(query) ||
148
+ normalize(option.value).includes(query);
149
+ })
150
+ : resolvedOptions;
151
+ const displayIcon = (_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) !== null && _a !== void 0 ? _a : leftIcon;
152
+ const renderOptionRow = (option) => {
153
+ var _a;
154
+ return (_jsxs("div", { className: `${styles.option} ${value === option.value ? styles.selected : ''} ${option.disabled ? styles.disabledOption : ''} ${(_a = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.option) !== null && _a !== void 0 ? _a : ''}`, onClick: () => handleSelect(option), onKeyDown: (e) => {
155
+ if (option.disabled)
156
+ return;
157
+ if (e.key === 'Enter' || e.key === ' ') {
158
+ e.preventDefault();
159
+ handleSelect(option);
160
+ }
161
+ }, 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));
162
+ };
163
+ // Linhas do picker com cabeçalhos de secção — um header renderiza
164
+ // sempre que o group muda em relação à linha anterior; ao filtrar,
165
+ // os grupos recalculam sobre o resultado.
166
+ const renderPickerRows = () => {
167
+ const rows = [];
168
+ let lastGroup;
169
+ visibleOptions.forEach((option) => {
170
+ var _a;
171
+ if (option.group !== lastGroup) {
172
+ lastGroup = option.group;
173
+ if (option.group) {
174
+ rows.push(_jsx("div", { className: `${styles.pickerGroupHeader} ${(_a = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.groupHeader) !== null && _a !== void 0 ? _a : ''}`, children: option.group }, `group-${option.group}`));
175
+ }
48
176
  }
49
- };
50
- document.addEventListener('mousedown', handleClickOutside);
51
- return () => {
52
- document.removeEventListener('mousedown', handleClickOutside);
53
- };
54
- }, []);
55
- 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 : ''} ${leftIcon && !(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) ? styles.hasLeftIcon : ''}`, onClick: toggleDropdown, role: "button", tabIndex: disabled ? -1 : 0, onKeyDown: (e) => {
56
- if (disabled)
57
- return;
58
- if (e.key === 'Enter' || e.key === ' ') {
59
- e.preventDefault();
60
- toggleDropdown();
61
- }
62
- }, children: [(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) ? (_jsx("span", { className: styles.triggerIconFrame, children: displayIcon })) : (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 && (_jsx("div", { className: styles.searchRow, onClick: (e) => e.stopPropagation(), children: _jsx(SearchInput, { value: search, onChange: setSearch, placeholder: searchPlaceholder !== null && searchPlaceholder !== void 0 ? searchPlaceholder : 'Pesquisar...', size: searchSize, onKeyDown: (e) => {
177
+ rows.push(renderOptionRow(option));
178
+ });
179
+ return rows;
180
+ };
181
+ return (_jsxs("div", { ref: selectRef, className: `${styles.customSelect} ${styles[size]} ${variant === 'flat' ? styles.flat : ''} ${hasError ? styles.error : ''} ${disabled ? styles.disabled : ''} ${isOpen ? styles.open : ''} ${className}`, children: [_jsxs("div", { className: styles.selectedValue, onClick: toggleDropdown, onKeyDown: handleKeyDown, role: "button", tabIndex: disabled ? -1 : 0, "aria-haspopup": "listbox", "aria-expanded": isOpen, children: [displayIcon && (_jsx("span", { className: styles.triggerIconFrame, children: displayIcon })), _jsx("span", { className: `${styles.valueText} ${selectedOption ? styles.filled : ''} ${valueBold && selectedOption ? styles.bold : ''}`, children: (_c = (_b = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.selectedLabel) !== null && _b !== void 0 ? _b : selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _c !== void 0 ? _c : placeholder }), _jsx(ChevronDown, { size: 16, className: `${styles.arrowIcon} ${collapsible ? styles.collapsibleArrow : ''}` })] }), isOpen && presentation !== 'picker' && (_jsxs("div", { className: `${styles.dropdown} ${styles[dropdownAlign]}`, style: dropdownMinWidth ? { minWidth: `${dropdownMinWidth}px` } : undefined, children: [searchable && (_jsx("div", { className: styles.searchRow, onClick: (e) => e.stopPropagation(), children: _jsx(SearchInput, { value: search, onChange: setSearch, placeholder: searchPlaceholder !== null && searchPlaceholder !== void 0 ? searchPlaceholder : 'Pesquisar...', size: searchSize, onKeyDown: (e) => {
182
+ if (e.key === 'Enter')
183
+ e.preventDefault();
184
+ } }) })), _jsxs("div", { className: styles.options, role: "listbox", onClick: (e) => e.stopPropagation(), children: [visibleOptions.map(renderOptionRow), visibleOptions.length === 0 && (_jsx(SearchEmptyState, { title: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.title, description: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.description, actionLabel: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.actionLabel, onAction: () => setSearch('') }))] })] })), isOpen && presentation === 'picker' && (_jsx("div", { className: `${styles.pickerOverlay} ${(_d = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.overlay) !== null && _d !== void 0 ? _d : ''}`, onClick: closePicker, role: "dialog", "aria-modal": "true", "aria-label": pickerTitle, children: _jsxs("div", { className: `${styles.pickerPanel} ${(_e = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.panel) !== null && _e !== void 0 ? _e : ''}`, onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: `${styles.pickerHeader} ${(_f = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.header) !== null && _f !== void 0 ? _f : ''}`, children: [_jsx("button", { type: "button", className: `${styles.pickerBack} ${(_g = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.backButton) !== null && _g !== void 0 ? _g : ''}`, onClick: closePicker, "aria-label": "Back", children: _jsx(ArrowLeft, { size: 24 }) }), _jsx("h2", { className: styles.pickerTitle, children: pickerTitle }), _jsx("button", { type: "button", className: `${styles.pickerClose} ${(_h = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.closeButton) !== null && _h !== void 0 ? _h : ''}`, onClick: closePicker, "aria-label": "Close", children: _jsx(X, { size: 24 }) })] }), searchable && (_jsx("div", { className: `${styles.pickerSearch} ${(_j = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.searchRow) !== null && _j !== void 0 ? _j : ''}`, children: _jsx(SearchInput, { value: search, onChange: setSearch, placeholder: searchPlaceholder !== null && searchPlaceholder !== void 0 ? searchPlaceholder : 'Pesquisar...', size: searchSize, autoFocus: searchAutoFocus, onKeyDown: (e) => {
63
185
  if (e.key === 'Enter')
64
186
  e.preventDefault();
65
- } }) })), _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) => {
66
- if (option.disabled)
67
- return;
68
- if (e.key === 'Enter' || e.key === ' ') {
69
- e.preventDefault();
70
- handleSelect(option);
71
- }
72
- }, 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(SearchEmptyState, { title: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.title, description: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.description, actionLabel: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.actionLabel, onAction: () => setSearch('') }))] })] }) }))] }));
187
+ } }) })), _jsxs("div", { className: `${styles.pickerList} ${(_k = pickerClassNames === null || pickerClassNames === void 0 ? void 0 : pickerClassNames.list) !== null && _k !== void 0 ? _k : ''}`, role: "listbox", children: [renderPickerRows(), visibleOptions.length === 0 && (_jsx(SearchEmptyState, { title: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.title, description: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.description, actionLabel: searchEmptyProps === null || searchEmptyProps === void 0 ? void 0 : searchEmptyProps.actionLabel, onAction: () => setSearch('') }))] })] }) })), _jsx("input", { type: "hidden", id: id, name: name, value: value, required: required })] }));
73
188
  };
74
189
  export default CustomSelect;
75
190
  //# sourceMappingURL=CustomSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomSelect.js","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomSelect.js","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/CustomSelect.tsx"],"names":[],"mappings":"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"}
@@ -424,3 +424,133 @@
424
424
  }
425
425
  }
426
426
 
427
+ /* ===== Picker (presentation="picker") — overlay-sheet com header,
428
+ pesquisa e secções agrupadas, para listas longas (países, línguas).
429
+ ZERO breakpoints: a pele responsiva é sempre CSS do consumidor via
430
+ vars --picker-* e pickerClassNames — a kitunga não conhece a regra
431
+ dos 600px do Masolo nem a de nenhum outro produto (decisão 75). */
432
+
433
+ .pickerOverlay {
434
+ position: fixed;
435
+ inset: 0;
436
+ z-index: var(--picker-overlay-z, 1300);
437
+ display: flex;
438
+ align-items: center;
439
+ justify-content: center;
440
+ height: 100dvh;
441
+ padding: var(--picker-overlay-padding, var(--spacing-lg));
442
+ background: var(--picker-overlay-bg, rgba(0, 0, 0, 0.5));
443
+ animation: pickerFadeIn 0.15s ease-out;
444
+ }
445
+
446
+ .pickerPanel {
447
+ display: flex;
448
+ flex-direction: column;
449
+ overflow: hidden;
450
+ width: var(--picker-panel-width, 100%);
451
+ max-width: var(--picker-panel-max-width, 480px);
452
+ height: var(--picker-panel-height, 600px);
453
+ max-height: var(--picker-panel-max-height, 100%);
454
+ background: var(--picker-panel-bg, var(--bg-primary));
455
+ border-radius: var(--picker-panel-radius, var(--radius-sm));
456
+ box-shadow: var(--picker-panel-shadow, 0 10px 25px rgba(0, 0, 0, 0.2));
457
+ }
458
+
459
+ .pickerHeader {
460
+ display: flex;
461
+ align-items: center;
462
+ gap: var(--spacing-md);
463
+ padding: var(--spacing-md);
464
+ flex-shrink: 0;
465
+ }
466
+
467
+ .pickerTitle {
468
+ flex: 1;
469
+ min-width: 0;
470
+ margin: 0;
471
+ font-size: 18px;
472
+ font-weight: 600;
473
+ color: var(--text-primary);
474
+ overflow: hidden;
475
+ text-overflow: ellipsis;
476
+ white-space: nowrap;
477
+ }
478
+
479
+ .pickerBack,
480
+ .pickerClose {
481
+ align-items: center;
482
+ justify-content: center;
483
+ width: 40px;
484
+ height: 40px;
485
+ padding: 0;
486
+ border: none;
487
+ border-radius: 50%;
488
+ background: var(--picker-button-bg, var(--bg-hover-normal));
489
+ color: var(--picker-button-color, var(--text-primary));
490
+ cursor: pointer;
491
+ flex-shrink: 0;
492
+ transition: background-color var(--transition-fast);
493
+ }
494
+
495
+ .pickerBack:hover,
496
+ .pickerClose:hover {
497
+ background-color: var(--picker-button-hover, var(--color-gray-200));
498
+ }
499
+
500
+ /* Visibilidade dos controlos — sempre CSS do consumidor. No Masolo
501
+ o X morre e o ← nasce no takeover ≤600px, via --picker-back-display
502
+ e --picker-close-display num media query do app. Ambos são "close":
503
+ o ← é voltar na forma, fechar na função (decisão 30). */
504
+ .pickerBack {
505
+ display: var(--picker-back-display, none);
506
+ }
507
+
508
+ .pickerClose {
509
+ display: var(--picker-close-display, flex);
510
+ }
511
+
512
+ .pickerSearch {
513
+ padding: 0 var(--picker-search-padding-x, var(--spacing-md)) var(--picker-search-padding-y, var(--spacing-sm-large));
514
+ border-bottom: 1px solid var(--picker-search-border, var(--border-divider));
515
+ flex-shrink: 0;
516
+ }
517
+
518
+ .pickerList {
519
+ flex: 1;
520
+ min-height: 0;
521
+ overflow-y: auto;
522
+ padding: var(--picker-list-padding, var(--spacing-sm) 0);
523
+ }
524
+
525
+ .pickerGroupHeader {
526
+ position: sticky;
527
+ top: 0;
528
+ z-index: 1;
529
+ padding: var(--spacing-sm) var(--picker-group-padding-x, var(--spacing-md));
530
+ font-size: var(--picker-group-size, 0.75rem);
531
+ font-weight: 600;
532
+ letter-spacing: 0.04em;
533
+ text-transform: uppercase;
534
+ color: var(--picker-group-color, var(--text-tertiary));
535
+ background: var(--picker-panel-bg, var(--bg-primary));
536
+ }
537
+
538
+ /* Fallback da flag quando o asset falha — o ISO em texto dentro da
539
+ moldura circular (um consumidor com flagBaseUrl parcial nunca
540
+ mostra imagem partida). */
541
+ .flagFallback {
542
+ font-size: 0.55rem;
543
+ font-weight: 700;
544
+ letter-spacing: 0.02em;
545
+ color: var(--text-tertiary);
546
+ }
547
+
548
+ @keyframes pickerFadeIn {
549
+ from {
550
+ opacity: 0;
551
+ }
552
+ to {
553
+ opacity: 1;
554
+ }
555
+ }
556
+
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { Option } from './CustomSelect';
3
+ export interface CountryPickerOptionsParams {
4
+ /** Locale dos nomes e da ordenação alfabética (Intl.DisplayNames +
5
+ * localeCompare) — a língua activa do consumidor. */
6
+ displayLocale?: string;
7
+ /** Base dos SVGs de bandeira (default '/flags/4x3') — assets do app
8
+ * consumidor, nunca bundle nem emoji. */
9
+ flagBaseUrl?: string;
10
+ /** Bloco prioritário no topo — a ordem é do produto; estas opções
11
+ * entram no grupo `suggestedLabel` e o resto segue alfabético. */
12
+ priorityCodes?: readonly string[];
13
+ /** Texto do cabeçalho do grupo prioritário (i18n do consumidor). */
14
+ suggestedLabel?: string;
15
+ }
16
+ export declare const buildCountryPickerOptions: ({ displayLocale, flagBaseUrl, priorityCodes, suggestedLabel, }: CountryPickerOptionsParams) => Option[];
17
+ export interface LanguagePickerOptionsParams {
18
+ /** Lista de locales servidos — a whitelist do consumidor. */
19
+ locales: readonly string[];
20
+ /** Nome da língua por locale — i18n do consumidor (a kitunga não
21
+ * conhece os namespaces dele). */
22
+ getLanguageLabel?: (locale: string) => string;
23
+ /** Locale de ordenação alfabética (default: a ordem dada). */
24
+ displayLocale?: string;
25
+ /** Ícone por linha — default o glyph Globe (língua ≠ país). */
26
+ languageIcon?: React.ReactNode;
27
+ }
28
+ export declare const buildLanguagePickerOptions: ({ locales, getLanguageLabel, displayLocale, languageIcon, }: LanguagePickerOptionsParams) => Option[];
29
+ //# sourceMappingURL=pickerOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickerOptions.d.ts","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/pickerOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAoC7C,MAAM,WAAW,0BAA0B;IACzC;0DACsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;8CAC0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;uEACmE;IACnE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,eAAO,MAAM,yBAAyB,GAAI,gEAKvC,0BAA0B,KAAG,MAAM,EAmCrC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,6DAA6D;IAC7D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;uCACmC;IACnC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,eAAO,MAAM,0BAA0B,GAAI,6DAKxC,2BAA2B,KAAG,MAAM,EAStC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Opções prontas para o modo picker do CustomSelect — kind='country'
3
+ // (todos os territórios da metadata do libphonenumber + Intl.DisplayNames
4
+ // + bandeiras do consumidor) e kind='language' (locales + labels do
5
+ // consumidor + glyph Globe — língua ≠ país, nunca bandeira).
6
+ // A lista de países é a metadata inteira — nunca allowlist manual
7
+ // (decisão 74 do Masolo); o bloco prioritário e a pele são do
8
+ // consumidor via props.
9
+ import { useState } from 'react';
10
+ import { Globe } from 'lucide-react';
11
+ import { getCountryConfig, getSupportedCountryCodes } from '../../../inputs/components/Inputs/PhoneInput/countries';
12
+ import styles from './CustomSelect.module.css';
13
+ const normalize = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
14
+ // Letra do grupo alfabético — NFD para "África"→A, "É…"→E, "Å…"→A.
15
+ const firstLetter = (text) => (normalize(text).charAt(0) || '#').toUpperCase();
16
+ // Flag <img> — se o asset falhar (consumidor com flagBaseUrl parcial)
17
+ // cai para o ISO em texto dentro da mesma moldura circular; nunca
18
+ // imagem partida.
19
+ const FlagImg = ({ code, base }) => {
20
+ const [failed, setFailed] = useState(false);
21
+ if (failed)
22
+ return _jsx("span", { className: styles.flagFallback, children: code });
23
+ return (
24
+ // eslint-disable-next-line @next/next/no-img-element
25
+ _jsx("img", { src: `${base}/${code.toLowerCase()}.svg`, alt: "", loading: "lazy", draggable: false, onError: () => setFailed(true) }));
26
+ };
27
+ const regionNamesCache = new Map();
28
+ const regionNames = (locale) => {
29
+ let names = regionNamesCache.get(locale);
30
+ if (!names) {
31
+ names = new Intl.DisplayNames([locale], { type: 'region' });
32
+ regionNamesCache.set(locale, names);
33
+ }
34
+ return names;
35
+ };
36
+ // Uma lista por combinação de params — os nomes e a ordem mudam com a
37
+ // língua; cacheada porque são ~245 opções.
38
+ const countryCache = new Map();
39
+ export const buildCountryPickerOptions = ({ displayLocale = 'en', flagBaseUrl = '/flags/4x3', priorityCodes = [], suggestedLabel = 'Suggested', }) => {
40
+ const cacheKey = [displayLocale, flagBaseUrl, suggestedLabel, ...priorityCodes].join('|');
41
+ const cached = countryCache.get(cacheKey);
42
+ if (cached)
43
+ return cached;
44
+ const names = regionNames(displayLocale);
45
+ const all = getSupportedCountryCodes();
46
+ const priority = priorityCodes.filter((code) => all.includes(code));
47
+ const prioritySet = new Set(priority);
48
+ const rest = all
49
+ .filter((code) => !prioritySet.has(code))
50
+ .sort((a, b) => { var _a, _b; return ((_a = names.of(a)) !== null && _a !== void 0 ? _a : a).localeCompare((_b = names.of(b)) !== null && _b !== void 0 ? _b : b, displayLocale); });
51
+ const toOption = (code, group) => {
52
+ var _a, _b, _c;
53
+ const name = (_a = names.of(code)) !== null && _a !== void 0 ? _a : code;
54
+ const dialCode = (_c = (_b = getCountryConfig(code)) === null || _b === void 0 ? void 0 : _b.dialCode) !== null && _c !== void 0 ? _c : '';
55
+ return {
56
+ value: code,
57
+ // A linha mostra nome + indicativo (a pesquisa casa os dois);
58
+ // o trigger fechado mostra só o nome via selectedLabel.
59
+ label: dialCode ? `${name} (${dialCode})` : name,
60
+ selectedLabel: name,
61
+ icon: _jsx(FlagImg, { code: code, base: flagBaseUrl }),
62
+ group,
63
+ };
64
+ };
65
+ const result = [
66
+ ...priority.map((code) => toOption(code, suggestedLabel)),
67
+ ...rest.map((code) => { var _a; return toOption(code, firstLetter((_a = names.of(code)) !== null && _a !== void 0 ? _a : code)); }),
68
+ ];
69
+ countryCache.set(cacheKey, result);
70
+ return result;
71
+ };
72
+ export const buildLanguagePickerOptions = ({ locales, getLanguageLabel, displayLocale, languageIcon, }) => {
73
+ const icon = languageIcon !== null && languageIcon !== void 0 ? languageIcon : _jsx(Globe, { size: 18 });
74
+ return locales
75
+ .map((locale) => {
76
+ var _a;
77
+ return ({
78
+ value: locale,
79
+ label: (_a = getLanguageLabel === null || getLanguageLabel === void 0 ? void 0 : getLanguageLabel(locale)) !== null && _a !== void 0 ? _a : locale,
80
+ });
81
+ })
82
+ .sort((a, b) => a.label.localeCompare(b.label, displayLocale))
83
+ .map((option) => (Object.assign(Object.assign({}, option), { icon, group: firstLetter(option.label) })));
84
+ };
85
+ //# sourceMappingURL=pickerOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickerOptions.js","sourceRoot":"","sources":["../../../../../src/features/selects/components/Selects/pickerOptions.tsx"],"names":[],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -14,7 +14,7 @@ export { default as DateInput } from './features/inputs/components/Inputs/DateIn
14
14
  export type { DateInputProps, DateInputSize, DateInputType } from './features/inputs/components/Inputs/DateInput';
15
15
  export { default as PhoneInput } from './features/inputs/components/Inputs/PhoneInput/PhoneInput';
16
16
  export type { PhoneInputProps } from './features/inputs/components/Inputs/PhoneInput/PhoneInput';
17
- export { getCountryConfig, validatePhone } from './features/inputs/components/Inputs/PhoneInput/countries';
17
+ export { getCountryConfig, getSupportedCountryCodes, validatePhone } from './features/inputs/components/Inputs/PhoneInput/countries';
18
18
  export { default as TaxIdInput } from './features/inputs/components/Inputs/TaxIdInput/TaxIdInput';
19
19
  export type { TaxIdInputProps } from './features/inputs/components/Inputs/TaxIdInput/TaxIdInput';
20
20
  export { default as ImageUpload } from './features/uploads/components/ImageUpload/ImageUpload';
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/dist/ui.js CHANGED
@@ -6,7 +6,7 @@ export { default as StepperInput } from './features/inputs/components/Inputs/Ste
6
6
  export { default as SearchInput } from './features/inputs/components/Inputs/SearchInput';
7
7
  export { default as DateInput } from './features/inputs/components/Inputs/DateInput';
8
8
  export { default as PhoneInput } from './features/inputs/components/Inputs/PhoneInput/PhoneInput';
9
- export { getCountryConfig, validatePhone } from './features/inputs/components/Inputs/PhoneInput/countries';
9
+ export { getCountryConfig, getSupportedCountryCodes, validatePhone } from './features/inputs/components/Inputs/PhoneInput/countries';
10
10
  export { default as TaxIdInput } from './features/inputs/components/Inputs/TaxIdInput/TaxIdInput';
11
11
  export { default as ImageUpload } from './features/uploads/components/ImageUpload/ImageUpload';
12
12
  export { default as VideoUpload } from './features/uploads/components/VideoUpload/VideoUpload';
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAE3F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAElG,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0DAA0D,CAAC;AAC3G,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAElG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qEAAqE,CAAC;AAQ1H,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8EAA8E,CAAC;AAKjI,OAAO,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAEvF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAErH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAErH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAEvH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;AAEpF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAEtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2DAA2D,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8EAA8E,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gDAAgD,CAAC;AAElF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAS1G,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4EAA4E,CAAC;AACtH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kFAAkF,CAAC;AACvH,OAAO,EAAE,aAAa,EAAE,MAAM,4EAA4E,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+EAA+E,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAE3F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAElG,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,0DAA0D,CAAC;AACrI,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAElG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qEAAqE,CAAC;AAQ1H,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8EAA8E,CAAC;AAKjI,OAAO,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAEvF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAErH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAErH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAEvH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;AAEpF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAEtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2DAA2D,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8EAA8E,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gDAAgD,CAAC;AAElF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sEAAsE,CAAC;AAS1G,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4EAA4E,CAAC;AACtH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kFAAkF,CAAC;AACvH,OAAO,EAAE,aAAa,EAAE,MAAM,4EAA4E,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+EAA+E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitunga-web",
3
- "version": "0.1.96",
3
+ "version": "0.1.98",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -47,17 +47,9 @@
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
- },
59
50
  "dependencies": {
60
51
  "dotenv-cli": "^11.0.0",
52
+ "libphonenumber-js": "^1.13.15",
61
53
  "lucide-react": "^0.515.0",
62
54
  "next": "16.1.3",
63
55
  "react": "19.2.3",
@@ -71,11 +63,20 @@
71
63
  "babel-plugin-react-compiler": "1.0.0",
72
64
  "eslint": "^9",
73
65
  "eslint-config-next": "16.1.3",
66
+ "flag-icons": "^7.6.0",
74
67
  "typescript": "^5"
75
68
  },
76
69
  "peerDependencies": {
77
70
  "axios": "^1.13.2",
78
71
  "react": ">=18",
79
72
  "react-dom": ">=18"
73
+ },
74
+ "scripts": {
75
+ "dev": "node scripts/copy-flags.mjs && dotenv -e .env.local next dev",
76
+ "start": "dotenv -e .env.local next start",
77
+ "build": "node scripts/copy-flags.mjs && next build",
78
+ "build:lib": "node ./scripts/build-library.mjs",
79
+ "publish:lib": "pnpm publish --no-git-checks",
80
+ "lint": "eslint"
80
81
  }
81
- }
82
+ }
@@ -1,3 +0,0 @@
1
- import { CountryConfig } from '../types/phone.types';
2
- export declare const aoaConfig: CountryConfig;
3
- //# sourceMappingURL=ao.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ao.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/ao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,aAmBvB,CAAC"}
@@ -1,20 +0,0 @@
1
- export const aoaConfig = {
2
- code: 'AO',
3
- dialCode: '+244',
4
- name: 'Angola',
5
- format: '000 000 000',
6
- maxLength: 9,
7
- validateRegex: /^9[1234579]\d{7}$/,
8
- formatInput: (rawVal) => {
9
- let val = rawVal;
10
- // Regras estritas da ANACOM encapsuladas diretamente no país
11
- if (val.length === 1 && val[0] !== '9') {
12
- val = '';
13
- }
14
- else if (val.length === 2 && !['91', '92', '93', '94', '95', '97', '99'].includes(val)) {
15
- val = '9';
16
- }
17
- return val;
18
- }
19
- };
20
- //# sourceMappingURL=ao.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ao.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/ao.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAkB;IACpC,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,CAAC,MAAc,EAAE,EAAE;QAC5B,IAAI,GAAG,GAAG,MAAM,CAAC;QAEjB,6DAA6D;QAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrC,GAAG,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvF,GAAG,GAAG,GAAG,CAAC;QACd,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import { CountryConfig } from '../types/phone.types';
2
- export declare const brConfig: CountryConfig;
3
- //# sourceMappingURL=br.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"br.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/br.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,QAAQ,EAAE,aAOtB,CAAC"}
@@ -1,9 +0,0 @@
1
- export const brConfig = {
2
- code: 'BR',
3
- dialCode: '+55',
4
- name: 'Brasil',
5
- format: '(00) 00000-0000',
6
- maxLength: 11,
7
- validateRegex: /^\d{10,11}$/,
8
- };
9
- //# sourceMappingURL=br.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"br.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/br.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACnC,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,iBAAiB;IACzB,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,aAAa;CAC/B,CAAC"}
@@ -1,3 +0,0 @@
1
- import { CountryConfig } from '../types/phone.types';
2
- export declare const ptConfig: CountryConfig;
3
- //# sourceMappingURL=pt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/pt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,QAAQ,EAAE,aAOtB,CAAC"}
@@ -1,9 +0,0 @@
1
- export const ptConfig = {
2
- code: 'PT',
3
- dialCode: '+351',
4
- name: 'Portugal',
5
- format: '000 000 000',
6
- maxLength: 9,
7
- validateRegex: /^9\d{8}$/,
8
- };
9
- //# sourceMappingURL=pt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pt.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/pt.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACnC,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,UAAU;CAC5B,CAAC"}
@@ -1,3 +0,0 @@
1
- import { CountryConfig } from '../types/phone.types';
2
- export declare const usaConfig: CountryConfig;
3
- //# sourceMappingURL=us.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"us.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/us.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,aAevB,CAAC"}
@@ -1,17 +0,0 @@
1
- export const usaConfig = {
2
- code: 'US',
3
- dialCode: '+1',
4
- name: 'Estados Unidos',
5
- format: '(000) 000-0000',
6
- maxLength: 10,
7
- validateRegex: /^[2-9]\d{9}$/,
8
- formatInput: (rawVal) => {
9
- let val = rawVal;
10
- // O primeiro dígito americana (NPA) não pode ser 0 ou 1
11
- if (val.length === 1 && (val[0] === '0' || val[0] === '1')) {
12
- val = '';
13
- }
14
- return val;
15
- }
16
- };
17
- //# sourceMappingURL=us.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"us.js","sourceRoot":"","sources":["../../../../../../../src/features/inputs/components/Inputs/PhoneInput/countries/us.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAkB;IACpC,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,cAAc;IAC7B,WAAW,EAAE,CAAC,MAAc,EAAE,EAAE;QAC5B,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,wDAAwD;QACxD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACzD,GAAG,GAAG,EAAE,CAAC;QACb,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAC"}