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.
- package/dist/features/data-display/components/OptionRow/OptionRow.d.ts +57 -0
- package/dist/features/data-display/components/OptionRow/OptionRow.d.ts.map +1 -0
- package/dist/features/data-display/components/OptionRow/OptionRow.js +37 -0
- package/dist/features/data-display/components/OptionRow/OptionRow.js.map +1 -0
- package/dist/features/data-display/components/OptionRow/OptionRow.module.css +206 -0
- package/dist/features/inputs/components/Inputs/CodeBoxes.d.ts +26 -0
- package/dist/features/inputs/components/Inputs/CodeBoxes.d.ts.map +1 -0
- package/dist/features/inputs/components/Inputs/CodeBoxes.js +92 -0
- package/dist/features/inputs/components/Inputs/CodeBoxes.js.map +1 -0
- package/dist/features/inputs/components/Inputs/CodeBoxes.module.css +95 -0
- package/dist/features/inputs/components/Inputs/FormGroup.d.ts +15 -0
- package/dist/features/inputs/components/Inputs/FormGroup.d.ts.map +1 -0
- package/dist/features/inputs/components/Inputs/FormGroup.js +8 -0
- package/dist/features/inputs/components/Inputs/FormGroup.js.map +1 -0
- package/dist/features/inputs/components/Inputs/FormGroup.module.css +16 -0
- package/dist/ui.d.ts +6 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +3 -0
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -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":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,MAAM,MAAM,wBAAwB,CAAC;AA8F5C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EAAE,MAAM,GAAG,KAAK,EACxB,OAAO,EAAE,YAAY,GAAG,QAAQ,EAChC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EACpC,QAAQ,EAAE,SAAS,GAAG,KAAK,EAC3B,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EACvE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EACjC,OAAO,EAAE,SAAS,GACH;IACf,0BAA0B;IAC1B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CACL,cACE,SAAS,EAAE;gBACT,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBAClC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;gBAC5C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAC/B,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;aAChB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAE1B,QAAQ,GACL,CACP,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,0DAA0D;IAC1D,MAAM,GAAG,GAAG;QACV,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,OAAO,IAAI,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAC1D,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QAClD,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACrC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACvE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QACtF,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC/B,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC/B,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;KAChB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,IAAI,GAAG,CACX,8BACG,OAAO,EACR,gBAAM,SAAS,EAAE,MAAM,CAAC,IAAI,aAC1B,eAAM,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAQ,EAC5C,WAAW,IAAI,IAAI,IAAI,CACtB,eAAM,SAAS,EAAE,MAAM,CAAC,WAAW,YAAG,WAAW,GAAQ,CAC1D,IACI,EACN,QAAQ,EACR,SAAS,IAAI,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,IAClE,CACJ,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,YACvE,IAAI,GACE,CACV,CAAC;IACJ,CAAC;IACD,OAAO,cAAK,SAAS,EAAE,GAAG,YAAG,IAAI,GAAO,CAAC;AAC3C,CAAC"}
|
|
@@ -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":"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,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,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,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAElG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAGhG,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AACjI,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAE9F,OAAO,EAAE,UAAU,EAAE,MAAM,iEAAiE,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yDAAyD,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"}
|