kitunga-web 0.1.101 → 0.1.102

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.
@@ -0,0 +1,57 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface OptionRowProps {
3
+ /** Modo controlo — o RadioButton/Checkbox (com a sua <label>). */
4
+ children?: ReactNode;
5
+ /** Padding spacing-sm — o respiro de row dentro de card, nos DOIS
6
+ modos (na <label> no controlo, na row no declarado). Declarado,
7
+ nunca inferido: sem ele a row fica densa e o ritmo é do
8
+ contentor (ex.: gap da optionList). */
9
+ padded?: boolean;
10
+ /** Slot esquerdo — filho directo da row. Glifo NU
11
+ (`<Mail size={24}/>` — o tamanho declara-se no lucide; a cor é
12
+ a do title, vestida pela row) ou elemento livre (Avatar).
13
+ NUNCA chip/invólucro do consumidor. */
14
+ leading?: ReactNode;
15
+ /** 'center' (default) — manageRow; 'top' — factRow: o leading casa a
16
+ primeira linha quando o texto é alto. */
17
+ leadingAlign?: 'center' | 'top';
18
+ /** Linha de cima. */
19
+ title?: ReactNode;
20
+ /** Linha de baixo. */
21
+ description?: ReactNode;
22
+ /** Qual a linha em destaque — 'top' (default): título forte +
23
+ descrição secundária; 'bottom': label secundário + valor forte
24
+ (os factos — telefone, datas, "criado por"). Só muda cor/peso —
25
+ o tamanho é igual nas duas. */
26
+ emphasis?: 'top' | 'bottom';
27
+ /** Slot direito — glifo nu (mesma regra: `size={24}` no lucide,
28
+ cor do title) ou controlo livre: Toggle, botão de acção,
29
+ badge… */
30
+ trailing?: ReactNode;
31
+ /** Chevron de navegação à direita (24px, cor do title). */
32
+ navigable?: boolean;
33
+ /** Hover + cursor — declaração PURA: vale `interactive`, nunca se
34
+ infere do onClick. Um onClick sem interactive clica sem vestir
35
+ affordance de hover. */
36
+ interactive?: boolean;
37
+ /** Destrutiva — texto e ícones em erro; o hover ganha o tint de
38
+ danger (executa, por isso não leva chevron). */
39
+ danger?: boolean;
40
+ /** A row É o link — --text-accent na linha indicada. 'top'/true:
41
+ título + ícones azuis; 'bottom': subtítulo azul com o título em
42
+ bold preto (a porta "Associar este dispositivo" da landing).
43
+ Navega — leva chevron. */
44
+ accent?: boolean | 'top' | 'bottom';
45
+ /** Sublinhado na linha indicada — 'top'/true: título; 'bottom':
46
+ descrição. Reforça a affordance de link (combina com `accent`). */
47
+ underline?: boolean | 'top' | 'bottom';
48
+ disabled?: boolean;
49
+ /** Marcada — fundo secundário (item escolhido/activo). */
50
+ selected?: boolean;
51
+ /** Com onClick → <button>; sem → <div> informativa. Comportamento
52
+ apenas — affordance (hover/cursor) é do `interactive`. */
53
+ onClick?: () => void;
54
+ className?: string;
55
+ }
56
+ export default function OptionRow({ children, padded, leading, leadingAlign, title, description, emphasis, trailing, navigable, interactive, danger, disabled, selected, accent, underline, onClick, className, }: OptionRowProps): import("react/jsx-runtime").JSX.Element;
57
+ //# sourceMappingURL=OptionRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionRow.d.ts","sourceRoot":"","sources":["../../../../../src/features/data-display/components/OptionRow/OptionRow.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAwC9C,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;8CAG0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;gDAC4C;IAC5C,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAChC,qBAAqB;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sBAAsB;IACtB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;sCAGkC;IAClC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B;;iBAEa;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;+BAE2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;uDACmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;iCAG6B;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpC;0EACsE;IACtE,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EAAE,MAAc,EACxB,OAAO,EAAE,YAAuB,EAChC,KAAK,EAAE,WAAW,EAAE,QAAgB,EACpC,QAAQ,EAAE,SAAiB,EAC3B,WAAmB,EAAE,MAAc,EAAE,QAAgB,EAAE,QAAgB,EACvE,MAAc,EAAE,SAAiB,EACjC,OAAO,EAAE,SAAS,GACnB,EAAE,cAAc,2CAwDhB"}
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { ChevronRight } from 'lucide-react';
4
+ import styles from './OptionRow.module.css';
5
+ export default function OptionRow({ children, padded = false, leading, leadingAlign = 'center', title, description, emphasis = 'top', trailing, navigable = false, interactive = false, danger = false, disabled = false, selected = false, accent = false, underline = false, onClick, className, }) {
6
+ // ---- Modo controlo ----
7
+ if (children !== undefined) {
8
+ return (_jsx("div", { className: [
9
+ styles.control,
10
+ padded ? styles.controlPadded : '',
11
+ interactive ? styles.controlInteractive : '',
12
+ disabled ? styles.disabled : '',
13
+ className !== null && className !== void 0 ? className : '',
14
+ ].filter(Boolean).join(' '), children: children }));
15
+ }
16
+ // ---- Modo declarado — interactive/padded são declarações puras,
17
+ // nunca inferidas (nem de onClick, nem da variante). ----
18
+ const cls = [
19
+ styles.row,
20
+ padded ? styles.padded : '',
21
+ leading && leadingAlign === 'top' ? styles.leadingTop : '',
22
+ emphasis === 'bottom' ? styles.emphasisBottom : '',
23
+ interactive ? styles.interactive : '',
24
+ danger ? styles.danger : '',
25
+ accent === 'bottom' ? styles.accentBottom : accent ? styles.accent : '',
26
+ underline === 'bottom' ? styles.underlineBottom : underline ? styles.underlineTop : '',
27
+ disabled ? styles.disabled : '',
28
+ selected ? styles.selected : '',
29
+ className !== null && className !== void 0 ? className : '',
30
+ ].filter(Boolean).join(' ');
31
+ const body = (_jsxs(_Fragment, { children: [leading, _jsxs("span", { className: styles.text, children: [_jsx("span", { className: styles.title, children: title }), description != null && (_jsx("span", { className: styles.description, children: description }))] }), trailing, navigable && _jsx(ChevronRight, { size: 24, className: styles.chevron })] }));
32
+ if (onClick) {
33
+ return (_jsx("button", { type: "button", className: cls, onClick: onClick, disabled: disabled, children: body }));
34
+ }
35
+ return _jsx("div", { className: cls, children: body });
36
+ }
37
+ //# sourceMappingURL=OptionRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionRow.js","sourceRoot":"","sources":["../../../../../src/features/data-display/components/OptionRow/OptionRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ /* OptionRow — a row canónica de duas linhas (decisão 63).
2
+ Dois modos, um componente:
3
+
4
+ CONTROLO — RadioButton/Checkbox dentro: o <label> do controlo
5
+ estica a linha toda e o clique apanha tudo. `padded` veste o
6
+ respiro de row dentro de card; sem ele o ritmo é o gap da
7
+ .optionList que contém as opções.
8
+
9
+ DECLARADO — leading (filho DIRECTO, sem div invólucro; o espaço
10
+ ícone↔texto é o gap 12px — o mesmo do rádio↔texto) + texto de
11
+ duas linhas + trailing. A variação é toda declarada em props.
12
+
13
+ Regras fixas da anatomia (não são props):
14
+ · Glifo nu em leading/trailing → 24px impostos pela row e a cor
15
+ da linha `title` (primário em nav; secundário quando a ênfase
16
+ é a linha de baixo; erro nas danger). O consumidor passa o
17
+ ícone sem size/cor — a row decide.
18
+ · As duas linhas de texto partilham o MESMO tamanho (15px) — a
19
+ ênfase é cor+peso, nunca tamanho. O OptionLabel usa ESTAS
20
+ classes: o mesmo corpo dentro do rádio/checkbox.
21
+ · `interactive`/`padded`/`leadingAlign` são declarações puras —
22
+ nada é inferido de onClick, variante ou contexto. */
23
+
24
+ /* ---- Modo controlo ---- */
25
+
26
+ .control {
27
+ width: 100%;
28
+ }
29
+
30
+ .control > label {
31
+ display: flex;
32
+ align-items: center;
33
+ gap: 12px;
34
+ width: 100%;
35
+ }
36
+
37
+ /* A span .label do partilhado — o slot onde vai o OptionLabel ou o
38
+ conteúdo composto (textos + extra à direita). */
39
+ .control > label > span:last-child {
40
+ flex: 1;
41
+ min-width: 0;
42
+ display: block;
43
+ }
44
+
45
+ /* `padded` na <label> — a área de clique (o label estica a linha
46
+ toda) é a que recebe o respiro e o hover "preenche". */
47
+ .controlPadded > label {
48
+ padding: var(--spacing-sm);
49
+ border-radius: var(--radius-sm);
50
+ }
51
+
52
+ /* `interactive` no modo controlo — hover na label (as opções
53
+ accionáveis do StorySettings). */
54
+ .controlInteractive > label:hover {
55
+ background: var(--bg-hover-normal);
56
+ }
57
+
58
+ /* ---- Modo declarado ---- */
59
+
60
+ .row {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 12px;
64
+ width: 100%;
65
+ border: none;
66
+ background: none;
67
+ font: inherit;
68
+ text-align: left;
69
+ border-radius: var(--radius-sm);
70
+ min-width: 0;
71
+ color: var(--text-primary);
72
+ }
73
+
74
+ /* `padded` — declaração pura: o respiro de row dentro de card.
75
+ Sem ele a row fica densa e o ritmo é do contentor. */
76
+ .padded {
77
+ padding: var(--spacing-sm);
78
+ }
79
+
80
+ /* Glifo nu à esquerda/direita — filho DIRECTO da row. O tamanho é
81
+ declarado no consumidor (lucide `size={24}` — o padrão da row);
82
+ a cor é a da linha `title` (a .row veste primário; os estados
83
+ abaixo corrigem). Elemento composto (Avatar, chips) não é > svg —
84
+ fica intacto. */
85
+ .row > svg {
86
+ flex-shrink: 0;
87
+ }
88
+
89
+ /* leadingAlign='top' — o leading casa a 1ª linha do texto (o factRow):
90
+ só se aplica quando há leading (é o primeiro filho). */
91
+ .leadingTop {
92
+ align-items: flex-start;
93
+ }
94
+
95
+ .leadingTop > :first-child {
96
+ margin-top: 2px;
97
+ }
98
+
99
+ /* As duas linhas têm o MESMO tamanho — a ênfase é cor+peso, nunca
100
+ tamanho ("Everyone" lê igual na row e dentro do rádio). */
101
+ .text {
102
+ flex: 1;
103
+ min-width: 0;
104
+ display: flex;
105
+ flex-direction: column;
106
+ gap: 2px;
107
+ }
108
+
109
+ .title {
110
+ font-size: 15px;
111
+ font-weight: 500;
112
+ color: var(--text-primary);
113
+ line-height: 1.35;
114
+ min-width: 0;
115
+ }
116
+
117
+ .description {
118
+ font-size: 15px;
119
+ font-weight: 400;
120
+ color: var(--text-secondary);
121
+ line-height: 1.4;
122
+ min-width: 0;
123
+ white-space: pre-wrap;
124
+ word-break: break-word;
125
+ }
126
+
127
+ /* emphasis='bottom' — a anatomia dos factos: label cinzento em cima,
128
+ valor forte por baixo. O ícone acompanha a cor do title (regra
129
+ "ícone = cor da linha title"). */
130
+ .emphasisBottom .title {
131
+ font-weight: 400;
132
+ color: var(--text-secondary);
133
+ }
134
+
135
+ .emphasisBottom .description {
136
+ font-weight: 500;
137
+ color: var(--text-primary);
138
+ line-height: 1.45;
139
+ }
140
+
141
+ .emphasisBottom > svg {
142
+ color: var(--text-secondary);
143
+ }
144
+
145
+ /* O chevron é um ícone como os outros — a cor é a do title (a .row
146
+ veste primário; os estados corrigem). */
147
+ .chevron {
148
+ flex-shrink: 0;
149
+ }
150
+
151
+ /* Interactiva — declaração pura (nunca inferida do onClick): cursor
152
+ + hover de itens accionáveis. */
153
+ .interactive {
154
+ cursor: pointer;
155
+ }
156
+
157
+ .interactive:hover {
158
+ background: var(--bg-hover-normal);
159
+ }
160
+
161
+ /* Destrutiva — executa, não navega: erro no texto e nos ícones,
162
+ hover com o tint de danger, e (por convenção) nunca leva chevron. */
163
+ .danger > svg,
164
+ .danger .title {
165
+ color: #ef4444;
166
+ }
167
+
168
+ /* Accent — a row É o link (ex.: "Associar este dispositivo" na
169
+ landing): o title veste --text-accent e os ícones/chevron seguem
170
+ (mesma regra "ícone = cor do title"). Navega — leva chevron. */
171
+ .accent > svg,
172
+ .accent .title {
173
+ color: var(--text-accent);
174
+ }
175
+
176
+ /* Accent na linha de baixo — o título fica bold preto e o subtítulo
177
+ veste --text-accent; o chevron acompanha o accent. */
178
+ .accentBottom > svg,
179
+ .accentBottom .description {
180
+ color: var(--text-accent);
181
+ }
182
+
183
+ /* Underline — a linha indicada ganha text-decoration (a row como
184
+ link: o accent dá a cor, o underline reforça a affordance). */
185
+ .underlineTop .title,
186
+ .underlineBottom .description {
187
+ text-decoration: underline;
188
+ text-underline-offset: 2px;
189
+ }
190
+
191
+ .danger.interactive:hover {
192
+ background: #fef2f2;
193
+ }
194
+
195
+ .selected {
196
+ background: var(--bg-surface-secondary);
197
+ }
198
+
199
+ .disabled {
200
+ opacity: 0.55;
201
+ cursor: default;
202
+ }
203
+
204
+ .disabled.interactive:hover {
205
+ background: none;
206
+ }
@@ -0,0 +1,26 @@
1
+ export type CodeBoxesCharset = 'numeric' | 'alphanumeric';
2
+ export type CodeBoxesSize = 'sm' | 'md' | 'lg';
3
+ export interface CodeBoxesProps {
4
+ value: string;
5
+ onChange?: (value: string) => void;
6
+ /** Tamanho — escala caixa, gap entre caixas e separador junto
7
+ * (convenção dos controls kitunga). */
8
+ size?: CodeBoxesSize;
9
+ /** Total de caixas — 6 para OTP, 10 para o código de pairing. */
10
+ length?: number;
11
+ /** Posições (1-based) depois das quais sai um separador. Ex.: [5]
12
+ * para XXXXX-XXXXX; [2, 4] para XX-XX-XX. */
13
+ separators?: number[];
14
+ charset?: CodeBoxesCharset;
15
+ /** Modo display — renderiza as caixas sem edição (código a copiar). */
16
+ readOnly?: boolean;
17
+ autoFocus?: boolean;
18
+ hasError?: boolean;
19
+ disabled?: boolean;
20
+ /** Dispara quando todas as caixas têm valor. */
21
+ onComplete?: (value: string) => void;
22
+ id?: string;
23
+ 'aria-label'?: string;
24
+ }
25
+ export default function CodeBoxes({ value, onChange, length, separators, size, charset, readOnly, autoFocus, hasError, disabled, onComplete, id, 'aria-label': ariaLabel, }: CodeBoxesProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=CodeBoxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBoxes.d.ts","sourceRoot":"","sources":["../../../../../src/features/inputs/components/Inputs/CodeBoxes.tsx"],"names":[],"mappings":"AAkBA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,cAAc,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;4CACwC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;kDAC8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,MAAU,EACV,UAAe,EACf,IAAW,EACX,OAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,UAAU,EACV,EAAE,EACF,YAAY,EAAE,SAAS,GACxB,EAAE,cAAc,2CAoGhB"}
@@ -0,0 +1,92 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ // CodeBoxes — código em caixas segmentadas (estilo chave de produto).
4
+ // Dois modos:
5
+ // input — caixas editáveis (OTP do login, código do pairing);
6
+ // auto-avanço, backspace salta atrás, paste enche tudo.
7
+ // display — readonly: mostra um código já gerado (o device que quer
8
+ // entrar no pair mostra-o assim) — mesmo look, sem edição.
9
+ //
10
+ // `length` dita quantas caixas; `separators` é a lista de posições
11
+ // (1-based) depois das quais sai um separador — ex.: [5] para
12
+ // XXXXX-XXXXX, [2, 4] para XX-XX-XX. O separador ocupa um slot do
13
+ // tamanho da caixa — o gap fica uniforme dos dois lados.
14
+ import React, { useCallback, useRef } from 'react';
15
+ import { Minus } from 'lucide-react';
16
+ import styles from './CodeBoxes.module.css';
17
+ function sanitizeChar(ch, charset) {
18
+ const upper = ch.toUpperCase();
19
+ if (charset === 'numeric')
20
+ return /[0-9]/.test(upper) ? upper : '';
21
+ return /[0-9A-Z]/.test(upper) ? upper : '';
22
+ }
23
+ function sanitizeValue(raw, charset, max) {
24
+ return [...raw].map((c) => sanitizeChar(c, charset)).join('').slice(0, max);
25
+ }
26
+ export default function CodeBoxes({ value, onChange, length = 6, separators = [], size = 'md', charset = 'numeric', readOnly = false, autoFocus = false, hasError = false, disabled = false, onComplete, id, 'aria-label': ariaLabel, }) {
27
+ const total = length;
28
+ const refs = useRef([]);
29
+ const separatorsSet = new Set(separators);
30
+ const emit = useCallback((next) => {
31
+ onChange === null || onChange === void 0 ? void 0 : onChange(next);
32
+ if (next.length === total)
33
+ onComplete === null || onComplete === void 0 ? void 0 : onComplete(next);
34
+ }, [onChange, onComplete, total]);
35
+ const focusBox = useCallback((i) => {
36
+ var _a, _b;
37
+ (_a = refs.current[i]) === null || _a === void 0 ? void 0 : _a.focus();
38
+ (_b = refs.current[i]) === null || _b === void 0 ? void 0 : _b.select();
39
+ }, []);
40
+ const handleInput = (i, raw) => {
41
+ var _a;
42
+ const clean = sanitizeValue(raw, charset, total - i);
43
+ if (!clean)
44
+ return;
45
+ const next = (value.slice(0, i) + clean + value.slice(i + clean.length)).slice(0, total);
46
+ emit(next);
47
+ const nextIdx = i + clean.length;
48
+ if (nextIdx >= total) {
49
+ // Completo — larga o foco em vez de segurar a última caixa.
50
+ (_a = refs.current[i]) === null || _a === void 0 ? void 0 : _a.blur();
51
+ }
52
+ else {
53
+ focusBox(nextIdx);
54
+ }
55
+ };
56
+ const handleKeyDown = (i, e) => {
57
+ if (e.key === 'Backspace') {
58
+ e.preventDefault();
59
+ if (value[i]) {
60
+ emit(value.slice(0, i) + value.slice(i + 1));
61
+ }
62
+ else if (i > 0) {
63
+ emit(value.slice(0, i - 1) + value.slice(i));
64
+ focusBox(i - 1);
65
+ }
66
+ }
67
+ else if (e.key === 'ArrowLeft' && i > 0) {
68
+ e.preventDefault();
69
+ focusBox(i - 1);
70
+ }
71
+ else if (e.key === 'ArrowRight' && i < total - 1) {
72
+ e.preventDefault();
73
+ focusBox(i + 1);
74
+ }
75
+ };
76
+ const handlePaste = (i, e) => {
77
+ e.preventDefault();
78
+ const pasted = e.clipboardData.getData('text');
79
+ const clean = sanitizeValue(pasted, charset, total);
80
+ if (!clean)
81
+ return;
82
+ const next = (value.slice(0, i) + clean).slice(0, total);
83
+ emit(next);
84
+ focusBox(Math.min(i + clean.length, total - 1));
85
+ };
86
+ return (_jsx("div", { className: `${styles.wrap} ${styles[size]} ${hasError ? styles.hasError : ''} ${readOnly ? styles.readOnly : ''}`, role: readOnly ? 'group' : undefined, "aria-label": ariaLabel, id: id, children: Array.from({ length: total }).map((_, i) => {
87
+ var _a;
88
+ const ch = (_a = value[i]) !== null && _a !== void 0 ? _a : '';
89
+ return (_jsxs(React.Fragment, { children: [readOnly ? (_jsx("span", { className: `${styles.box} ${ch ? styles.filled : ''}`, children: ch })) : (_jsx("input", { ref: (el) => { refs.current[i] = el; }, className: `${styles.box} ${ch ? styles.filled : ''}`, value: ch, inputMode: charset === 'numeric' ? 'numeric' : 'text', autoComplete: "off", autoCapitalize: "characters", disabled: disabled, autoFocus: autoFocus && i === 0, onChange: (e) => handleInput(i, e.target.value), onKeyDown: (e) => handleKeyDown(i, e), onPaste: (e) => handlePaste(i, e), onFocus: (e) => e.target.select(), "aria-label": `${ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'code'} ${i + 1}` })), separatorsSet.has(i + 1) && (_jsx("span", { className: styles.separator, "aria-hidden": "true", children: _jsx(Minus, { size: size === 'lg' ? 18 : size === 'sm' ? 13 : 16 }) }))] }, i));
90
+ }) }));
91
+ }
92
+ //# sourceMappingURL=CodeBoxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBoxes.js","sourceRoot":"","sources":["../../../../../src/features/inputs/components/Inputs/CodeBoxes.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ .wrap {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--spacing-sm);
5
+ justify-content: center;
6
+ /* Ocupa os 100% do container — as caixas centram-se no campo, nunca
7
+ alinham à esquerda como um input normal. Uma linha sempre — um
8
+ código nunca parte a meio. */
9
+ width: 100%;
10
+ flex-wrap: nowrap;
11
+ }
12
+
13
+ /* O separador é só o ícone — sem slot de 40px (o slot criava dois
14
+ espaços mortos à volta; a gap uniforme do flex trata a distância). */
15
+ .separator {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ color: var(--text-primary);
20
+ user-select: none;
21
+ }
22
+
23
+ /* A caixa segue o estilo dos campos kitunga: mesmo border/radius/focus
24
+ do TextInput; preenchida ganha o cinza (como nas referências). */
25
+ .box {
26
+ width: 40px;
27
+ height: 40px;
28
+ padding: 0;
29
+ border: 1px solid var(--border-divider);
30
+ border-radius: var(--radius-sm);
31
+ background-color: var(--bg-secondary);
32
+ color: var(--text-primary);
33
+ font-size: 1.05rem;
34
+ font-weight: 600;
35
+ text-align: center;
36
+ text-transform: uppercase;
37
+ caret-color: var(--border-focus);
38
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast),
39
+ background-color var(--transition-fast);
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+
45
+ input.box {
46
+ cursor: text;
47
+ }
48
+
49
+ input.box:focus {
50
+ outline: none;
51
+ border-color: var(--border-focus);
52
+ background-color: var(--bg-primary);
53
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
54
+ }
55
+
56
+ .filled {
57
+ background-color: var(--bg-hover-normal);
58
+ border-color: var(--color-gray-300);
59
+ color: var(--text-primary);
60
+ }
61
+
62
+ .hasError .box {
63
+ border-color: var(--border-error, #dc2626);
64
+ }
65
+
66
+ .readOnly .box {
67
+ cursor: default;
68
+ }
69
+
70
+ .wrap input.box:disabled {
71
+ opacity: 0.6;
72
+ cursor: not-allowed;
73
+ }
74
+
75
+ /* Tamanhos — a caixa, a gap e o separador escalam juntos: a gap do
76
+ flex é a mesma que distancia o traço, por isso size toca tudo. */
77
+ .sm.wrap {
78
+ gap: var(--spacing-xs);
79
+ }
80
+
81
+ .sm .box {
82
+ width: 32px;
83
+ height: 32px;
84
+ font-size: 0.85rem;
85
+ }
86
+
87
+ .lg.wrap {
88
+ gap: var(--spacing-md);
89
+ }
90
+
91
+ .lg .box {
92
+ width: 48px;
93
+ height: 48px;
94
+ font-size: 1.25rem;
95
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface FormGroupProps {
3
+ children: React.ReactNode;
4
+ /** Texto do label — renderiza o FormLabel por cima do campo. */
5
+ label?: React.ReactNode;
6
+ htmlFor?: string;
7
+ required?: boolean;
8
+ /** Marcador opcional à direita do label (i18n do consumidor). */
9
+ optionalLabel?: React.ReactNode;
10
+ /** 'center' para campos que se centram (CodeBoxes); default 'start'. */
11
+ align?: 'start' | 'center';
12
+ className?: string;
13
+ }
14
+ export default function FormGroup({ children, label, htmlFor, required, optionalLabel, align, className, }: FormGroupProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=FormGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormGroup.d.ts","sourceRoot":"","sources":["../../../../../src/features/inputs/components/Inputs/FormGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gEAAgE;IAChE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,aAAa,EACb,KAAe,EACf,SAAc,GACf,EAAE,cAAc,2CAWhB"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import FormLabel from './FormLabel';
4
+ import styles from './FormGroup.module.css';
5
+ export default function FormGroup({ children, label, htmlFor, required = false, optionalLabel, align = 'start', className = '', }) {
6
+ return (_jsxs("div", { className: `${styles.group} ${align === 'center' ? styles.center : ''} ${className}`, children: [label != null && (_jsx(FormLabel, { htmlFor: htmlFor !== null && htmlFor !== void 0 ? htmlFor : '', required: required, optionalLabel: optionalLabel, children: label })), children] }));
7
+ }
8
+ //# sourceMappingURL=FormGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../../../../../src/features/inputs/components/Inputs/FormGroup.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAe5C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,aAAa,EACb,KAAK,GAAG,OAAO,EACf,SAAS,GAAG,EAAE,GACC;IACf,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,EAAE,aACtF,KAAK,IAAI,IAAI,IAAI,CAChB,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,YAChF,KAAK,GACI,CACb,EACA,QAAQ,IACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ .group {
2
+ display: flex;
3
+ flex-direction: column;
4
+ /* o gap real do fieldGroup: spacing-sm entre label e campo */
5
+ gap: var(--spacing-sm);
6
+ width: 100%;
7
+ }
8
+
9
+ /* Campos centrados (CodeBoxes) — o label acompanha o conteúdo. */
10
+ .center {
11
+ align-items: center;
12
+ }
13
+
14
+ .center label {
15
+ align-self: center;
16
+ }
package/dist/ui.d.ts CHANGED
@@ -17,6 +17,8 @@ export type { PhoneInputProps } from './features/inputs/components/Inputs/PhoneI
17
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
+ export { default as CodeBoxes } from './features/inputs/components/Inputs/CodeBoxes';
21
+ export type { CodeBoxesProps, CodeBoxesCharset, CodeBoxesSize } from './features/inputs/components/Inputs/CodeBoxes';
20
22
  export { default as ImageUpload } from './features/uploads/components/ImageUpload/ImageUpload';
21
23
  export { default as VideoUpload } from './features/uploads/components/VideoUpload/VideoUpload';
22
24
  export { default as CustomSelect } from './features/selects/components/Selects/CustomSelect';
@@ -35,6 +37,10 @@ export { Checkbox } from './features/inputs/components/Inputs/Checkbox';
35
37
  export type { CheckboxProps } from './features/inputs/components/Inputs/Checkbox';
36
38
  export { default as FormLabel } from './features/inputs/components/Inputs/FormLabel';
37
39
  export type { FormLabelProps } from './features/inputs/components/Inputs/FormLabel';
40
+ export { default as FormGroup } from './features/inputs/components/Inputs/FormGroup';
41
+ export type { FormGroupProps } from './features/inputs/components/Inputs/FormGroup';
42
+ export { default as OptionRow } from './features/data-display/components/OptionRow/OptionRow';
43
+ export type { OptionRowProps } from './features/data-display/components/OptionRow/OptionRow';
38
44
  export { CheckBadge } from './features/data-display/components/Badges/CheckBadge/CheckBadge';
39
45
  export type { CheckBadgeProps } from './features/data-display/components/Badges/CheckBadge/CheckBadge';
40
46
  export { default as Tabs } from './features/data-display/components/Tabs/Tabs/Tabs';
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
@@ -8,6 +8,7 @@ export { default as DateInput } from './features/inputs/components/Inputs/DateIn
8
8
  export { default as PhoneInput } from './features/inputs/components/Inputs/PhoneInput/PhoneInput';
9
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
+ export { default as CodeBoxes } from './features/inputs/components/Inputs/CodeBoxes';
11
12
  export { default as ImageUpload } from './features/uploads/components/ImageUpload/ImageUpload';
12
13
  export { default as VideoUpload } from './features/uploads/components/VideoUpload/VideoUpload';
13
14
  export { default as CustomSelect } from './features/selects/components/Selects/CustomSelect';
@@ -18,6 +19,8 @@ export { Toggle } from './features/inputs/components/Inputs/Toggle';
18
19
  export { RadioButton } from './features/inputs/components/Inputs/RadioButton';
19
20
  export { Checkbox } from './features/inputs/components/Inputs/Checkbox';
20
21
  export { default as FormLabel } from './features/inputs/components/Inputs/FormLabel';
22
+ export { default as FormGroup } from './features/inputs/components/Inputs/FormGroup';
23
+ export { default as OptionRow } from './features/data-display/components/OptionRow/OptionRow';
21
24
  export { CheckBadge } from './features/data-display/components/Badges/CheckBadge/CheckBadge';
22
25
  export { default as Tabs } from './features/data-display/components/Tabs/Tabs/Tabs';
23
26
  export { default as SubTabs } from './features/data-display/components/Tabs/SubTabs/SubTabs';
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitunga-web",
3
- "version": "0.1.101",
3
+ "version": "0.1.102",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {