@wrrdev/fenix-ui 1.1.15 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/components/autocomplete/autocomplete.d.ts +3 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/autocomplete.js +7 -1
- package/dist/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +1 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -1
- package/dist/components/avatar/avatar.js +3 -0
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.d.ts +4 -0
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.js +12 -0
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.d.ts +2 -0
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +6 -0
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card/card.d.ts +2 -0
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +6 -0
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +5 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +7 -8
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/datepicker/datepicker.d.ts +17 -2
- package/dist/components/datepicker/datepicker.d.ts.map +1 -1
- package/dist/components/datepicker/datepicker.js +113 -42
- package/dist/components/datepicker/datepicker.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +4 -1
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +41 -18
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.d.ts +5 -1
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.js +39 -17
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/fileupload/fileupload.d.ts +13 -1
- package/dist/components/fileupload/fileupload.d.ts.map +1 -1
- package/dist/components/fileupload/fileupload.js +29 -1
- package/dist/components/fileupload/fileupload.js.map +1 -1
- package/dist/components/floatlabel/floatlabel.d.ts +15 -0
- package/dist/components/floatlabel/floatlabel.d.ts.map +1 -1
- package/dist/components/floatlabel/floatlabel.js +47 -1
- package/dist/components/floatlabel/floatlabel.js.map +1 -1
- package/dist/components/icon/icon.d.ts +4 -0
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.js +12 -0
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/input/input.d.ts +9 -2
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.js +56 -8
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/multiselect/multiselect.d.ts +8 -1
- package/dist/components/multiselect/multiselect.d.ts.map +1 -1
- package/dist/components/multiselect/multiselect.js +61 -9
- package/dist/components/multiselect/multiselect.js.map +1 -1
- package/dist/components/orderlist/orderlist.d.ts +7 -0
- package/dist/components/orderlist/orderlist.d.ts.map +1 -1
- package/dist/components/orderlist/orderlist.js +34 -2
- package/dist/components/orderlist/orderlist.js.map +1 -1
- package/dist/components/pagination/pagination.d.ts +3 -0
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/pagination/pagination.js +19 -9
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/radio/radio.d.ts +6 -0
- package/dist/components/radio/radio.d.ts.map +1 -1
- package/dist/components/radio/radio.js +12 -6
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/select/select.d.ts +19 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +116 -10
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/switch/switch.d.ts +4 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +2 -1
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table.d.ts +27 -0
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +126 -24
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +6 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +34 -0
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +5 -1
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.js +25 -6
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/core/jsx.d.ts +11 -5
- package/dist/core/jsx.d.ts.map +1 -1
- package/dist/core/jsx.js.map +1 -1
- package/dist/core/modal.d.ts +31 -0
- package/dist/core/modal.d.ts.map +1 -0
- package/dist/core/modal.js +61 -0
- package/dist/core/modal.js.map +1 -0
- package/dist/core/page-range.d.ts +31 -0
- package/dist/core/page-range.d.ts.map +1 -0
- package/dist/core/page-range.js +41 -0
- package/dist/core/page-range.js.map +1 -0
- package/dist/docs/componentes/input.doc.d.ts.map +1 -1
- package/dist/docs/componentes/orderlist.doc.d.ts.map +1 -1
- package/dist/docs/componentes/table.doc.d.ts.map +1 -1
- package/dist/fenix-ui.umd.min.js +261 -227
- package/dist/fenix-ui4.esm.js +987 -260
- package/dist/fenix-ui4.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { defineElement } from "../../core/define.js";
|
|
|
4
4
|
import { esc } from "../../core/sanitize.js";
|
|
5
5
|
const _FxTextarea = class _FxTextarea extends FxFormElement {
|
|
6
6
|
static get observedAttributes() {
|
|
7
|
-
return ["size", "placeholder", "disabled", "readonly", "rows", "maxlength", "error", "invalid", "success", "valid"];
|
|
7
|
+
return ["size", "placeholder", "disabled", "readonly", "full", "rows", "maxlength", "error", "invalid", "success", "valid"];
|
|
8
8
|
}
|
|
9
9
|
get size() {
|
|
10
10
|
const s = this.getAttr("size", "md");
|
|
@@ -17,10 +17,22 @@ const _FxTextarea = class _FxTextarea extends FxFormElement {
|
|
|
17
17
|
return this.getAttr("value");
|
|
18
18
|
}
|
|
19
19
|
set value(value) {
|
|
20
|
-
this.setAttribute("value", value);
|
|
20
|
+
this.setAttribute("value", value == null ? "" : String(value));
|
|
21
21
|
this.syncInternalControl();
|
|
22
22
|
this.updateFormValue();
|
|
23
23
|
}
|
|
24
|
+
get readonly() {
|
|
25
|
+
return this.hasAttr("readonly");
|
|
26
|
+
}
|
|
27
|
+
set readonly(value) {
|
|
28
|
+
this.toggleAttr("readonly", Boolean(value));
|
|
29
|
+
}
|
|
30
|
+
get full() {
|
|
31
|
+
return this.hasAttr("full");
|
|
32
|
+
}
|
|
33
|
+
set full(value) {
|
|
34
|
+
this.toggleAttr("full", Boolean(value));
|
|
35
|
+
}
|
|
24
36
|
render() {
|
|
25
37
|
const placeholder = this.getAttr("placeholder");
|
|
26
38
|
const readonly = this.hasAttr("readonly");
|
|
@@ -37,20 +49,27 @@ const _FxTextarea = class _FxTextarea extends FxFormElement {
|
|
|
37
49
|
field.value = this.getAttr("value");
|
|
38
50
|
if (disabled) field.setAttribute("disabled", "");
|
|
39
51
|
if (readonly) field.setAttribute("readonly", "");
|
|
40
|
-
const
|
|
52
|
+
const notifyInput = () => {
|
|
41
53
|
this.value = field.value;
|
|
42
54
|
this.emitValueEvents();
|
|
55
|
+
};
|
|
56
|
+
const notifyChange = () => {
|
|
57
|
+
this.value = field.value;
|
|
43
58
|
this.dispatchEvent(
|
|
44
|
-
new CustomEvent(
|
|
59
|
+
new CustomEvent("change", {
|
|
60
|
+
bubbles: true,
|
|
61
|
+
composed: true,
|
|
62
|
+
detail: { value: field.value }
|
|
63
|
+
})
|
|
45
64
|
);
|
|
46
65
|
};
|
|
47
66
|
field.addEventListener("input", (e) => {
|
|
48
67
|
e.stopPropagation();
|
|
49
|
-
|
|
68
|
+
notifyInput();
|
|
50
69
|
});
|
|
51
70
|
field.addEventListener("change", (e) => {
|
|
52
71
|
e.stopPropagation();
|
|
53
|
-
|
|
72
|
+
notifyChange();
|
|
54
73
|
});
|
|
55
74
|
this.updateFormValue();
|
|
56
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sources":["../../../src/components/textarea/textarea.ts"],"sourcesContent":["import { FxFormElement } from '../../core/form-element';\nimport { css } from '../../core/css';\nimport { defineElement } from '../../core/define';\nimport { esc } from '../../core/sanitize';\n\n/**\n * <fx-textarea> — Área de texto multilinha estilizada com os tokens do tema.\n *\n * Form-Associated Custom Element: dentro de um <form> entra no FormData\n * (via atributo `name`), recebe reset/disable do form e é alvo de\n * `<label for>`/`autofocus`. Enter continua sendo quebra de linha.\n *\n * Atributos: value, name, size (sm|md|lg), placeholder, disabled, readonly,\n * rows, maxlength, autofocus.\n * Eventos: `input`, `change` e `valueChange` (composed, detail: { value }) —\n * `input` aciona o v-model do Vue e `valueChange` o [(value)] do Angular.\n */\nexport class FxTextarea extends FxFormElement {\n static override styles = css`\n :host {\n display: inline-block;\n vertical-align: middle;\n /* Largura padrão no HOST: CSS externo, classes e style inline no elemento\n vencem este default naturalmente (regras do documento > :host). */\n width: var(--fx-textarea-width, 260px);\n vertical-align: middle;\n font-family: var(--fx-font-family);\n font-size: var(--fx-font-size);\n }\n .field {\n font-family: inherit;\n font-size: inherit;\n /* Altura determinística: a caixa fica EXATAMENTE no token --fx-size-*. */\n line-height: var(--fx-font-line-height);\n font-weight: var(--fx-font-weight);\n color: var(--fx-text-default);\n background-color: var(--fx-surface-background);\n border: 1px solid var(--fx-border-default);\n border-radius: var(--fx-radius-md);\n padding: var(--fx-space-md) var(--fx-space-lg);\n /* Acompanha a largura definida no :host. */\n width: 100%;\n min-height: calc(var(--fx-size-md) + 40px);\n resize: vertical;\n box-sizing: border-box;\n transition:\n border-color var(--fx-motion-duration-normal) var(--fx-motion-easing),\n box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing);\n }\n .field::placeholder { color: var(--fx-text-muted); opacity: 1; }\n .field:hover { border-color: var(--fx-border-hover); }\n .field:focus-visible {\n outline: none;\n border-color: var(--fx-color-primary);\n box-shadow: var(--fx-effect-focus-ring, none);\n }\n .field:disabled,\n .field[readonly] {\n opacity: 0.55;\n cursor: not-allowed;\n background-color: var(--fx-surface-surface-hover);\n }\n /* Validação: borda sempre; brilho (anel) via token que acompanha\n effect.focus-ring — desligado ⇒ erro só com a borda vermelha. */\n :host([error]) .field, :host([invalid]) .field {\n border-color: var(--fx-color-danger, #dc2626);\n box-shadow: var(--fx-effect-error-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-danger, #dc2626) 18%, transparent));\n }\n :host([success]) .field, :host([valid]) .field {\n border-color: var(--fx-color-success, #16a34a);\n box-shadow: var(--fx-effect-success-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-success, #16a34a) 18%, transparent));\n }\n :host([size='sm']) { width: var(--fx-textarea-width-sm, 220px); }\n :host([size='sm']) .field { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-md); }\n :host([size='lg']) { width: var(--fx-textarea-width-lg, 300px); }\n :host([size='lg']) .field { min-height: calc(var(--fx-size-lg) + 80px); }\n /* Full width: o host estica até o pai e o campo interno acompanha. */\n :host([full]) { display: block; width: 100%; }\n :host([full]) .field { width: 100%; }\n `;\n\n static override get observedAttributes(): string[] {\n return ['size', 'placeholder', 'disabled', 'readonly', 'rows', 'maxlength', 'error', 'invalid', 'success', 'valid'];\n }\n\n get size(): string {\n const s = this.getAttr('size', 'md');\n return s === 'sm' || s === 'lg' ? s : 'md';\n }\n set size(value: string) { this.setAttribute('size', value); }\n\n get value(): string { return this.getAttr('value'); }\n set value(value: string) {\n this.setAttribute('value', value);\n // `value` NÃO é observado (re-render perderia o foco): o campo interno é\n // sincronizado aqui, sem re-render, preservando foco/cursor.\n this.syncInternalControl();\n this.updateFormValue();\n }\n\n protected override render(): void {\n const placeholder = this.getAttr('placeholder');\n const readonly = this.hasAttr('readonly');\n const disabled = this.hasAttr('disabled');\n const rows = this.getAttr('rows');\n const maxlength = this.getAttr('maxlength');\n\n this.setTemplate(`<textarea class=\"field\" part=\"textarea\"\n ${placeholder ? `placeholder=\"${esc(placeholder)}\"` : ''}\n ${rows ? `rows=\"${esc(rows)}\"` : ''}\n ${maxlength ? `maxlength=\"${esc(maxlength)}\"` : ''}\n ></textarea>`);\n\n const field = this.root.querySelector<HTMLTextAreaElement>('.field');\n if (!field) return;\n field.value = this.getAttr('value');\n if (disabled) field.setAttribute('disabled', '');\n if (readonly) field.setAttribute('readonly', '');\n\n const
|
|
1
|
+
{"version":3,"file":"textarea.js","sources":["../../../src/components/textarea/textarea.ts"],"sourcesContent":["import { FxFormElement } from '../../core/form-element';\nimport { css } from '../../core/css';\nimport { defineElement } from '../../core/define';\nimport { esc } from '../../core/sanitize';\n\n/**\n * <fx-textarea> — Área de texto multilinha estilizada com os tokens do tema.\n *\n * Form-Associated Custom Element: dentro de um <form> entra no FormData\n * (via atributo `name`), recebe reset/disable do form e é alvo de\n * `<label for>`/`autofocus`. Enter continua sendo quebra de linha.\n *\n * Atributos: value, name, size (sm|md|lg), placeholder, disabled, readonly,\n * rows, maxlength, autofocus.\n * Eventos: `input`, `change` e `valueChange` (composed, detail: { value }) —\n * `input` aciona o v-model do Vue e `valueChange` o [(value)] do Angular.\n */\nexport class FxTextarea extends FxFormElement {\n static override styles = css`\n :host {\n display: inline-block;\n vertical-align: middle;\n /* Largura padrão no HOST: CSS externo, classes e style inline no elemento\n vencem este default naturalmente (regras do documento > :host). */\n width: var(--fx-textarea-width, 260px);\n vertical-align: middle;\n font-family: var(--fx-font-family);\n font-size: var(--fx-font-size);\n }\n .field {\n font-family: inherit;\n font-size: inherit;\n /* Altura determinística: a caixa fica EXATAMENTE no token --fx-size-*. */\n line-height: var(--fx-font-line-height);\n font-weight: var(--fx-font-weight);\n color: var(--fx-text-default);\n background-color: var(--fx-surface-background);\n border: 1px solid var(--fx-border-default);\n border-radius: var(--fx-radius-md);\n padding: var(--fx-space-md) var(--fx-space-lg);\n /* Acompanha a largura definida no :host. */\n width: 100%;\n min-height: calc(var(--fx-size-md) + 40px);\n resize: vertical;\n box-sizing: border-box;\n transition:\n border-color var(--fx-motion-duration-normal) var(--fx-motion-easing),\n box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing);\n }\n .field::placeholder { color: var(--fx-text-muted); opacity: 1; }\n .field:hover { border-color: var(--fx-border-hover); }\n .field:focus-visible {\n outline: none;\n border-color: var(--fx-color-primary);\n box-shadow: var(--fx-effect-focus-ring, none);\n }\n .field:disabled,\n .field[readonly] {\n opacity: 0.55;\n cursor: not-allowed;\n background-color: var(--fx-surface-surface-hover);\n }\n /* Validação: borda sempre; brilho (anel) via token que acompanha\n effect.focus-ring — desligado ⇒ erro só com a borda vermelha. */\n :host([error]) .field, :host([invalid]) .field {\n border-color: var(--fx-color-danger, #dc2626);\n box-shadow: var(--fx-effect-error-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-danger, #dc2626) 18%, transparent));\n }\n :host([success]) .field, :host([valid]) .field {\n border-color: var(--fx-color-success, #16a34a);\n box-shadow: var(--fx-effect-success-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-success, #16a34a) 18%, transparent));\n }\n :host([size='sm']) { width: var(--fx-textarea-width-sm, 220px); }\n :host([size='sm']) .field { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-md); }\n :host([size='lg']) { width: var(--fx-textarea-width-lg, 300px); }\n :host([size='lg']) .field { min-height: calc(var(--fx-size-lg) + 80px); }\n /* Full width: o host estica até o pai e o campo interno acompanha. */\n :host([full]) { display: block; width: 100%; }\n :host([full]) .field { width: 100%; }\n `;\n\n static override get observedAttributes(): string[] {\n return ['size', 'placeholder', 'disabled', 'readonly', 'full', 'rows', 'maxlength', 'error', 'invalid', 'success', 'valid'];\n }\n\n get size(): string {\n const s = this.getAttr('size', 'md');\n return s === 'sm' || s === 'lg' ? s : 'md';\n }\n set size(value: string) { this.setAttribute('size', value); }\n\n get value(): string { return this.getAttr('value'); }\n set value(value: string | null | undefined) {\n this.setAttribute('value', value == null ? '' : String(value));\n // `value` NÃO é observado (re-render perderia o foco): o campo interno é\n // sincronizado aqui, sem re-render, preservando foco/cursor.\n this.syncInternalControl();\n this.updateFormValue();\n }\n\n get readonly(): boolean {\n return this.hasAttr('readonly');\n }\n set readonly(value: boolean) {\n this.toggleAttr('readonly', Boolean(value));\n }\n\n get full(): boolean {\n return this.hasAttr('full');\n }\n set full(value: boolean) {\n this.toggleAttr('full', Boolean(value));\n }\n\n protected override render(): void {\n const placeholder = this.getAttr('placeholder');\n const readonly = this.hasAttr('readonly');\n const disabled = this.hasAttr('disabled');\n const rows = this.getAttr('rows');\n const maxlength = this.getAttr('maxlength');\n\n this.setTemplate(`<textarea class=\"field\" part=\"textarea\"\n ${placeholder ? `placeholder=\"${esc(placeholder)}\"` : ''}\n ${rows ? `rows=\"${esc(rows)}\"` : ''}\n ${maxlength ? `maxlength=\"${esc(maxlength)}\"` : ''}\n ></textarea>`);\n\n const field = this.root.querySelector<HTMLTextAreaElement>('.field');\n if (!field) return;\n field.value = this.getAttr('value');\n if (disabled) field.setAttribute('disabled', '');\n if (readonly) field.setAttribute('readonly', '');\n\n // Cada interação emite UM `input` (v-model) + `valueChange` (Angular);\n // `change` apenas no evento nativo de mudança.\n const notifyInput = (): void => {\n this.value = field.value;\n this.emitValueEvents();\n };\n const notifyChange = (): void => {\n this.value = field.value;\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { value: field.value },\n }),\n );\n };\n // Bloqueia o evento nativo (composed, sem detail) para que só o\n // CustomEvent com detail chegue aos consumidores.\n field.addEventListener('input', (e) => { e.stopPropagation(); notifyInput(); });\n field.addEventListener('change', (e) => { e.stopPropagation(); notifyChange(); });\n\n // Publica name/value no form (ElementInternals) a cada render.\n this.updateFormValue();\n }\n\n /** Empurra o atributo `value` para o campo interno sem re-renderizar. */\n protected override syncInternalControl(): void {\n const field = this.root.querySelector<HTMLTextAreaElement>('.field');\n const value = this.getAttr('value');\n if (field && field.value !== value) field.value = value;\n }\n}\n\nexport function defineFxTextarea(): typeof FxTextarea {\n return defineElement('fx-textarea', FxTextarea);\n}\n"],"names":[],"mappings":"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"}
|
package/dist/core/jsx.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export type FxAlertVariant = 'info' | 'success' | 'warning' | 'danger';
|
|
|
21
21
|
export type FxProgressVariant = 'primary' | 'success' | 'warning' | 'danger';
|
|
22
22
|
export type FxSkeletonVariant = 'text' | 'circle' | 'rect';
|
|
23
23
|
export type FxFloatlabelVariant = 'on' | 'in' | 'over';
|
|
24
|
-
export type FxInputType = 'text' | 'number' | 'password';
|
|
24
|
+
export type FxInputType = 'text' | 'number' | 'password' | 'email' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color';
|
|
25
25
|
export type FxFieldStatus = 'error' | 'invalid' | 'success' | 'valid';
|
|
26
26
|
export type FxToastKind = 'success' | 'error' | 'info' | 'warning';
|
|
27
27
|
export type FxToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
@@ -86,7 +86,7 @@ export interface FxInputProps extends FxElementProps {
|
|
|
86
86
|
valid?: boolean;
|
|
87
87
|
}
|
|
88
88
|
export interface FxSelectProps extends FxElementProps {
|
|
89
|
-
value?: string;
|
|
89
|
+
value?: string | number;
|
|
90
90
|
size?: FxSize;
|
|
91
91
|
placeholder?: string;
|
|
92
92
|
searchable?: boolean;
|
|
@@ -150,7 +150,7 @@ export interface FxEditorProps extends FxElementProps {
|
|
|
150
150
|
sanitizeHtml?: (html: string) => string;
|
|
151
151
|
}
|
|
152
152
|
export interface FxMultiselectProps extends FxElementProps {
|
|
153
|
-
values?: string;
|
|
153
|
+
values?: string[] | string;
|
|
154
154
|
size?: FxSize;
|
|
155
155
|
placeholder?: string;
|
|
156
156
|
searchable?: boolean;
|
|
@@ -169,7 +169,7 @@ export interface FxCalendarProps extends FxElementProps {
|
|
|
169
169
|
min?: string;
|
|
170
170
|
max?: string;
|
|
171
171
|
mode?: 'single' | 'range' | 'multiple';
|
|
172
|
-
values?: string;
|
|
172
|
+
values?: string[] | string;
|
|
173
173
|
locale?: string;
|
|
174
174
|
disabled?: boolean;
|
|
175
175
|
}
|
|
@@ -177,7 +177,7 @@ export interface FxDatepickerProps extends FxElementProps {
|
|
|
177
177
|
value?: string;
|
|
178
178
|
start?: string;
|
|
179
179
|
end?: string;
|
|
180
|
-
values?: string;
|
|
180
|
+
values?: string[] | string;
|
|
181
181
|
mode?: 'single' | 'range' | 'multiple';
|
|
182
182
|
min?: string;
|
|
183
183
|
max?: string;
|
|
@@ -527,6 +527,12 @@ export interface FxAccordionPanelProps extends FxElementProps {
|
|
|
527
527
|
}
|
|
528
528
|
export interface FxOrderListProps extends FxElementProps {
|
|
529
529
|
data?: string;
|
|
530
|
+
/**
|
|
531
|
+
* Array de itens — alias de `data` para binding de framework
|
|
532
|
+
* (`:items="lista"` no Vue / `items={lista}` no React). Também aceita
|
|
533
|
+
* JSON no atributo (`items='[{"label":"A"}]'`).
|
|
534
|
+
*/
|
|
535
|
+
items?: import('../components/orderlist/orderlist').OrderListItem[];
|
|
530
536
|
'data-key'?: string;
|
|
531
537
|
filter?: boolean;
|
|
532
538
|
'filter-by'?: string;
|
package/dist/core/jsx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../src/core/jsx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../src/core/jsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,4FAA4F;AAC5F,eAAO,MAAM,YAAY,EAAG,IAAa,CAAC;AAG1C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AACxH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC/F,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;AACzH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;AAC9F,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChG,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AACtE,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AACjD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAGlD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;CAAE;AACzE,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IAAG,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAAE;AAC3F,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AACD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,yDAAyD;IACzD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAClE,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AACtD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AACzD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IAAG,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAAE;AAC1G,MAAM,WAAW,aAAc,SAAQ,cAAc;IAAG,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAAE;AACtH,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACrC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACnC;AACD,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC5D,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7C,MAAM,WAAW,cAAe,SAAQ,cAAc;IAAG,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAAE;AAC1G,MAAM,WAAW,WAAY,SAAQ,cAAc;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AACvE,MAAM,WAAW,eAAgB,SAAQ,cAAc;IAAG,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAAE;AAC3F,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAAG,OAAO,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAAE;AACzH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAAE;AAC1H,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AAC/E,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AACD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AACD;;;;;;;GAOG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,sEAAsE;IACtE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sEAAsE;IACtE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yBAAyB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AACD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,mCAAmC,EAAE,aAAa,EAAE,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC;IACzB,YAAY,EAAE,cAAc,CAAC;IAC7B,UAAU,EAAE,YAAY,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,aAAa,EAAE,eAAe,CAAC;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,WAAW,EAAE,aAAa,CAAC;IAC3B,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,iBAAiB,CAAC;IACnC,UAAU,EAAE,YAAY,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,YAAY,EAAE,cAAc,CAAC;IAC7B,eAAe,EAAE,iBAAiB,CAAC;IACnC,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC;IACzB,YAAY,EAAE,cAAc,CAAC;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,aAAa,EAAE,eAAe,CAAC;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,eAAe,EAAE,iBAAiB,CAAC;IACnC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,eAAe,EAAE,iBAAiB,CAAC;IACnC,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,iBAAiB,CAAC;IACnC,YAAY,EAAE,cAAc,CAAC;IAC7B,YAAY,EAAE,cAAc,CAAC;IAC7B,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,sBAAsB,EAAE,uBAAuB,CAAC;IAChD,aAAa,EAAE,eAAe,CAAC;IAC/B,aAAa,EAAE,eAAe,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,EAAE,gBAAgB,CAAC;IACjC,oBAAoB,EAAE,qBAAqB,CAAC;IAC5C,cAAc,EAAE,gBAAgB,CAAC;IACjC,aAAa,EAAE,eAAe,CAAC;CAChC;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAkB,SAAQ,sBAAsB;SAAG;KAC9D;CACF;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,WAAW,CAAC;QACzB,UAAU,EAAE,WAAW,CAAC;QACxB,YAAY,EAAE,WAAW,CAAC;QAC1B,UAAU,EAAE,WAAW,CAAC;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,WAAW,CAAC;QAC3B,UAAU,EAAE,WAAW,CAAC;QACxB,gBAAgB,EAAE,WAAW,CAAC;QAC9B,aAAa,EAAE,WAAW,CAAC;QAC3B,eAAe,EAAE,WAAW,CAAC;QAC7B,UAAU,EAAE,WAAW,CAAC;QACxB,eAAe,EAAE,WAAW,CAAC;QAC7B,cAAc,EAAE,WAAW,CAAC;QAC5B,oBAAoB,EAAE,WAAW,CAAC;QAClC,cAAc,EAAE,WAAW,CAAC;QAC5B,aAAa,EAAE,WAAW,CAAC;QAI3B,WAAW,EAAE,WAAW,CAAC;QACzB,SAAS,EAAE,WAAW,CAAC;QACvB,YAAY,EAAE,WAAW,CAAC;KAC3B;CACF"}
|
package/dist/core/jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.js","sources":["../../src/core/jsx.ts"],"sourcesContent":["/**\n * Tipagens de propriedades + augmentations JSX do FenixUI.\n *\n * Importar este módulo — diretamente (`@wrrdev/fenix-ui/jsx`) ou via o\n * índice principal (`@wrrdev/fenix-ui`) — habilita, no TypeScript:\n *\n * 1. autocomplete + validação de atributos em templates JSX/TSX;\n * 2. tipos nomeados (`FxButtonProps`, `FxInputProps`, …) para wrappers ou código imperativo.\n *\n * A biblioteca NÃO depende de React/Vue: os atributos comuns\n * (`className`, `onClick`, `style`, `children`, …) são aceitos via assinatura\n * de índice, funcionando com qualquer runtime JSX.\n */\n\nimport type { FxElementProps, FxSize } from './types';\nimport type { FenixIconName } from '../icons/types';\n\n/** Marcador de runtime: permite `import '@wrrdev/fenix-ui/jsx'` como side-effect import. */\nexport const FX_JSX_TYPES = true as const;\n\n/* Uniões auxiliares (variants, enums) */\nexport type FxButtonVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'ghost' | 'outline';\nexport type FxBadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\nexport type FxAlertVariant = 'info' | 'success' | 'warning' | 'danger';\nexport type FxProgressVariant = 'primary' | 'success' | 'warning' | 'danger';\nexport type FxSkeletonVariant = 'text' | 'circle' | 'rect';\nexport type FxFloatlabelVariant = 'on' | 'in' | 'over';\nexport type FxInputType = 'text' | 'number' | 'password';\nexport type FxFieldStatus = 'error' | 'invalid' | 'success' | 'valid';\nexport type FxToastKind = 'success' | 'error' | 'info' | 'warning';\nexport type FxToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\nexport type FxTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type FxDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type FxDropdownPosition = 'left' | 'center' | 'right' | 'bottom-left' | 'bottom-right';\nexport type FxPaginationPosition = 'left' | 'center' | 'right';\nexport type FxChipVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';\nexport type FxAvatarVariant = 'image' | 'text' | 'icon';\nexport type FxAvatarShape = 'circle' | 'rounded' | 'square';\nexport type FxCardVariant = 'elevated' | 'flat' | 'outline' | 'ghost';\n/** Arredondamento do container do card. */\nexport type FxCardRadius = 'sm' | 'md' | 'lg';\n/**\n * Arredondamento das bordas do <fx-table>.\n *\n * - `none` — bordas retas (0);\n * - `sm` / `md` / `lg` — tokens `--fx-radius-sm|md|lg`.\n *\n * O padrão é `md`. O atributo `radius` é aceito como alias de `rounded`\n * (mesma convenção do <fx-card>).\n */\nexport type FxTableRadius = 'none' | 'sm' | 'md' | 'lg';\nexport type FxPopoverTrigger = 'click' | 'hover';\nexport type FxPopoverPosition = 'auto' | 'top' | 'bottom';\nexport type FxMenuOrientation = 'horizontal' | 'vertical';\nexport type FxTimelineOrientation = 'vertical' | 'horizontal';\nexport type FxSelectionMode = 'single' | 'multiple';\nexport type FxEditorToolbar = 'minimal' | 'basic' | 'standard' | 'full' | 'none';\nexport type FxEditorPasteMode = 'clean' | 'plain';\n\n/* Props por componente */\nexport interface FxButtonProps extends FxElementProps {\n variant?: FxButtonVariant;\n type?: 'button' | 'submit' | 'reset';\n size?: FxSize;\n loading?: boolean;\n full?: boolean;\n icon?: string;\n 'icon-pos'?: 'left' | 'right';\n}\nexport interface FxBadgeProps extends FxElementProps {\n variant?: FxBadgeVariant;\n round?: boolean;\n}\nexport interface FxSpinnerProps extends FxElementProps { size?: FxSize; }\nexport interface FxInputProps extends FxElementProps {\n type?: FxInputType;\n size?: FxSize;\n placeholder?: string;\n readonly?: boolean;\n min?: string | number;\n max?: string | number;\n step?: string | number;\n clearable?: boolean;\n full?: boolean;\n icon?: string;\n 'icon-pos'?: 'left' | 'right';\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxSelectProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n placeholder?: string;\n searchable?: boolean;\n clearable?: boolean;\n 'search-placeholder'?: string;\n 'no-results'?: string;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxSwitchProps extends FxElementProps { checked?: boolean; size?: FxSize; }\nexport interface FxCheckboxProps extends FxElementProps {\n checked?: boolean;\n indeterminate?: boolean;\n value?: string;\n size?: FxSize;\n}\nexport interface FxRadioProps extends FxElementProps {\n checked?: boolean;\n value?: string;\n name?: string;\n size?: FxSize;\n}\nexport interface FxTextareaProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n placeholder?: string;\n readonly?: boolean;\n rows?: number;\n maxlength?: number;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxEditorProps extends FxElementProps {\n value?: string;\n name?: string;\n required?: boolean;\n readonly?: boolean;\n placeholder?: string;\n toolbar?: FxEditorToolbar;\n features?: string;\n 'paste-mode'?: FxEditorPasteMode;\n 'min-height'?: string;\n 'max-height'?: string;\n 'show-count'?: boolean;\n maxlength?: number;\n fullscreen?: boolean;\n uploadImage?: (file: File) => Promise<string | { url: string; alt?: string; width?: string }>;\n sanitizeHtml?: (html: string) => string;\n}\nexport interface FxMultiselectProps extends FxElementProps {\n values?: string;\n size?: FxSize;\n placeholder?: string;\n searchable?: boolean;\n clearable?: boolean;\n open?: boolean;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxCalendarProps extends FxElementProps {\n value?: string;\n start?: string;\n end?: string;\n min?: string;\n max?: string;\n mode?: 'single' | 'range' | 'multiple';\n values?: string;\n locale?: string;\n disabled?: boolean;\n}\nexport interface FxDatepickerProps extends FxElementProps {\n value?: string;\n start?: string;\n end?: string;\n values?: string;\n mode?: 'single' | 'range' | 'multiple';\n min?: string;\n max?: string;\n placeholder?: string;\n size?: FxSize;\n format?: string;\n 'show-time'?: boolean;\n 'free-text'?: boolean;\n clearable?: boolean;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxTableProps extends FxElementProps {\n pagination?: boolean;\n rows?: number;\n 'rows-options'?: string;\n striped?: boolean;\n hover?: boolean;\n 'empty-message'?: string;\n 'pagination-position'?: FxPaginationPosition;\n total?: number;\n page?: number;\n lazy?: boolean;\n loading?: boolean;\n 'loading-message'?: string;\n 'sort-field'?: string;\n 'sort-order'?: 'asc' | 'desc' | '';\n /**\n * Arredondamento das bordas. `none` deixa retas; `sm`/`md`/`lg` usam os\n * tokens `--fx-radius-*`. Padrão: `md`.\n */\n rounded?: FxTableRadius;\n /** Alias de `rounded` (mesma convenção do <fx-card>). */\n radius?: FxTableRadius;\n /** Remove apenas as bordas laterais, mantendo topo e base. */\n 'no-borders-x'?: boolean;\n /** Referência ao markup da toolbar: `#id`/`id` de um elemento fora da tabela. */\n toolbar?: string;\n}\n/**\n * <fx-column> — declaração de coluna (light DOM do <fx-table>).\n *\n * O template de célula vai em `<fx-cell>` (tag imune a Vue/React/Angular) ou,\n * em markup estático, em `template=\"#id\"`. A forma antiga com `<template>`\n * dentro da coluna continua aceita.\n */\nexport interface FxColumnProps extends FxElementProps {\n field?: string;\n header?: string;\n sortable?: boolean;\n filterable?: boolean;\n align?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';\n /** Referência a um elemento de template: `#id` ou `id`. */\n template?: string;\n}\n/**\n * <fx-cell> — template de renderização de uma célula do <fx-table>.\n *\n * Substitui o `<template>` nativo, que é interceptado por Vue/React/Angular.\n * Aceita expressões `{{ }}`, pipes e acesso a `row.*`. Não tem atributos\n * próprios: o conteúdo vem de `children`.\n *\n * ⚠️ SÓ FUNCIONA DENTRO DE <fx-column> (filho direto), que por sua vez só\n * existe dentro de <fx-table>. Fora da tabela a tag é inerte.\n *\n * ⚠️ O conteúdo é TEXTO CRU: o `{{ }}` é avaliado pelo motor do <fx-table>,\n * não pelo framework. O TypeScript não consegue tipar isso (é uma string),\n * então cada stack precisa neutralizar a própria sintaxe de template:\n *\n * - Vue 3 / Nuxt ... <fx-cell v-pre>{{ value }}</fx-cell>\n * Sem `v-pre` o Vue compila a interpolação (`_toDisplayString(_ctx.value)`),\n * o texto não chega ao componente e o vue-tsc acusa `value` inexistente.\n * - React / JSX .... <fx-cell>{'{{ value }}'}</fx-cell>\n * O `{{ }}` solto é ERRO de sintaxe no parser JSX — deve ser string JS.\n * - Angular ........ <fx-cell ngNonBindable>…</fx-cell>\n * - Svelte ......... <fx-cell>{'{{ value }}'}</fx-cell>\n * ou {{ value }}\n * - HTML/CDN ....... <fx-cell>{{ value }}</fx-cell> (nada a fazer)\n *\n * Variáveis do escopo: `value` (campo da coluna), `row` (objeto da linha,\n * `row.campo`), literais `true`/`false`/`null`, pipes `currency`, `number`,\n * `date`, `dateTime`, operadores `+ - * /`, comparações e ternário `? :`.\n */\nexport interface FxCellProps extends FxElementProps {}\n/**\n * <fx-toolbar> — barra de ações acima do header do <fx-table>.\n *\n * Substitui `<template slot=\"toolbar\">`. Inputs com `data-search-fields`\n * viram busca global. Sem atributos próprios.\n */\nexport interface FxToolbarProps extends FxElementProps {}\nexport interface FxFloatlabelProps extends FxElementProps {\n variant?: FxFloatlabelVariant;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n active?: boolean;\n 'error-text'?: string;\n}\nexport interface FxDialogProps extends FxElementProps { open?: boolean; size?: FxSize; heading?: string; }\nexport interface FxDrawerProps extends FxElementProps { open?: boolean; title?: string; position?: FxDrawerPosition; }\nexport interface FxToastProps extends FxElementProps {\n kind?: FxToastKind;\n title?: string;\n message?: string;\n duration?: number;\n position?: FxToastPosition;\n /** Força o esquema de cores do card independentemente do tema global. */\n mode?: 'light' | 'dark';\n /**\n * Barra de contagem regressiva na base do card, na cor do `kind`.\n * Vazio ou `'always'` = corre sempre; `'hover'` = só sob cursor/foco;\n * `'paused'` = barra cheia e imóvel. Sem efeito com `duration: 0`.\n */\n progress?: FxToastProgress | boolean;\n /**\n * Lado a partir do qual a barra esvazia. `'left'` (padrão) ancora a barra à\n * esquerda; `'right'` a ancora à direita (espelhado). Exige `progress`.\n */\n 'progress-origin'?: FxToastOrigin;\n}\n/** Modos da barra de contagem regressiva do <fx-toast>. */\nexport type FxToastProgress = 'always' | 'hover' | 'paused';\n/** Lado pelo qual a barra de contagem do <fx-toast> esvazia. */\nexport type FxToastOrigin = 'left' | 'right';\nexport interface FxTooltipProps extends FxElementProps { content?: string; position?: FxTooltipPosition; }\nexport interface FxTabsProps extends FxElementProps { value?: string; }\nexport interface FxTabPanelProps extends FxElementProps { tab?: string; hidden?: boolean; }\nexport interface FxProgressProps extends FxElementProps {\n value?: number;\n indeterminate?: boolean;\n variant?: FxProgressVariant;\n label?: string;\n 'hide-label'?: boolean;\n size?: FxSize;\n}\nexport interface FxSkeletonProps extends FxElementProps {\n variant?: FxSkeletonVariant;\n width?: string;\n height?: string;\n lines?: number;\n}\nexport interface FxAlertProps extends FxElementProps { variant?: FxAlertVariant; title?: string; dismissible?: boolean; }\nexport interface FxDropdownProps extends FxElementProps { label?: string; position?: FxDropdownPosition; open?: boolean; }\nexport interface FxDropdownItemProps extends FxElementProps { value?: string; }\nexport interface FxPaginationProps extends FxElementProps {\n page?: number;\n total?: number;\n rows?: number;\n 'rows-options'?: string;\n position?: FxPaginationPosition;\n}\nexport interface FxAutocompleteProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n placeholder?: string;\n source?: string;\n disabled?: boolean;\n 'min-chars'?: number;\n full?: boolean;\n}\nexport interface FxFileUploadProps extends FxElementProps {\n mode?: 'basic' | 'advanced';\n size?: FxSize;\n severity?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';\n label?: string;\n icon?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n 'show-progress'?: boolean;\n progress?: number;\n full?: boolean;\n}\n\n/* Props dos componentes de layout/dados/navegação/feedback */\nexport interface FxSliderProps extends FxElementProps {\n value?: number;\n min?: number;\n max?: number;\n step?: number;\n size?: FxSize;\n 'show-value'?: boolean;\n}\nexport interface FxStepperProps extends FxElementProps {\n active?: number;\n linear?: boolean;\n 'show-numbers'?: boolean;\n}\nexport interface FxChipProps extends FxElementProps {\n variant?: FxChipVariant;\n size?: FxSize;\n icon?: string;\n removable?: boolean;\n selectable?: boolean;\n selected?: boolean;\n}\nexport interface FxAvatarProps extends FxElementProps {\n variant?: FxAvatarVariant;\n src?: string;\n alt?: string;\n size?: FxSize;\n shape?: FxAvatarShape;\n}\n/**\n * <fx-icon> — glifo da Fenix Icons com autocomplete no editor.\n *\n * `name` é uma união literal com TODOS os nomes da fonte (+4.000): o editor\n * (Volar/vue-tsc, React/TSX) sugere os válidos ao digitar. A tipagem aceita\n * qualquer string (escotilha `(string & {})`), então nomes montados por\n * variável/dynamic imports continuam compilando sem erro.\n */\nexport interface FxIconProps extends FxElementProps {\n /** Nome do glifo (ex.: `home`). Texto livre/emoji também é aceito. */\n name?: FenixIconName;\n /** Tamanho do glifo. Sem atributo, herda o tamanho do texto (1em). */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Nome acessível; sem label o ícone é aria-hidden (decorativo). */\n label?: string;\n /** Variante preenchida. */\n fill?: boolean;\n /** Traço mais pesado. */\n bold?: boolean;\n}\nexport interface FxCardProps extends FxElementProps {\n variant?: FxCardVariant;\n /** Arredondamento do container (radius sm/md/lg). */\n radius?: FxCardRadius;\n /** @deprecated use `radius`. */\n size?: FxSize;\n padded?: boolean;\n heading?: string;\n}\nexport interface FxBreadcrumbProps extends FxElementProps {\n size?: FxSize;\n separator?: string;\n}\nexport interface FxPopoverProps extends FxElementProps {\n open?: boolean;\n target?: string;\n trigger?: FxPopoverTrigger;\n position?: FxPopoverPosition;\n dismissible?: boolean;\n}\nexport interface FxRatingProps extends FxElementProps {\n value?: number;\n max?: number;\n readonly?: boolean;\n 'allow-half'?: boolean;\n size?: FxSize;\n}\nexport interface FxMenuProps extends FxElementProps {\n orientation?: FxMenuOrientation;\n size?: FxSize;\n titles?: string;\n}\nexport interface FxToggleButtonGroupProps extends FxElementProps {\n multiple?: boolean;\n value?: string;\n size?: FxSize;\n}\nexport interface FxEmptyStateProps extends FxElementProps {\n icon?: string;\n heading?: string;\n description?: string;\n}\nexport interface FxPasswordStrengthProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n}\nexport interface FxTimelineProps extends FxElementProps {\n orientation?: FxTimelineOrientation;\n size?: FxSize;\n marker?: string;\n}\nexport interface FxCarouselProps extends FxElementProps {\n active?: number;\n 'show-arrows'?: boolean;\n 'show-indicators'?: boolean;\n loop?: boolean;\n autoplay?: number;\n}\nexport interface FxTreeProps extends FxElementProps {\n data?: string;\n 'expand-all'?: boolean;\n size?: FxSize;\n}\nexport interface FxConfirmPopupProps extends FxElementProps {\n open?: boolean;\n target?: string;\n message?: string;\n icon?: string;\n 'accept-label'?: string;\n 'reject-label'?: string;\n position?: FxPopoverPosition;\n}\nexport interface FxKnobProps extends FxElementProps {\n value?: number;\n min?: number;\n max?: number;\n step?: number;\n size?: FxSize;\n 'stroke-width'?: number;\n 'value-color'?: string;\n 'range-color'?: string;\n 'value-template'?: string;\n readonly?: boolean;\n}\nexport interface FxAccordionProps extends FxElementProps {\n value?: string;\n multiple?: boolean;\n}\nexport interface FxAccordionPanelProps extends FxElementProps {\n value?: string;\n header?: string;\n}\nexport interface FxOrderListProps extends FxElementProps {\n data?: string;\n 'data-key'?: string;\n filter?: boolean;\n 'filter-by'?: string;\n 'filter-placeholder'?: string;\n dragdrop?: boolean;\n striped?: boolean;\n 'selection-mode'?: FxSelectionMode;\n 'show-select-all'?: boolean;\n}\nexport interface FxPickListProps extends FxElementProps {\n source?: string;\n target?: string;\n 'source-key'?: string;\n 'target-key'?: string;\n filter?: boolean;\n 'filter-by'?: string;\n 'source-label'?: string;\n 'target-label'?: string;\n 'selection-mode'?: FxSelectionMode;\n 'show-select-all'?: boolean;\n striped?: boolean;\n}\n/* Augmentation global de JSX (React clássico/TSX, Preact, Vue JSX, …).\n Cada tag fx-* recebe autocomplete + validação de atributos.\n A interface é exportada para que o módulo opt-in `@wrrdev/fenix-ui/react`\n também registre as tags em React.JSX (usado quando \"jsx\": \"react-jsx\"). */\nexport interface FxJsxIntrinsicElements {\n 'fx-button': FxButtonProps;\n 'fx-badge': FxBadgeProps;\n 'fx-spinner': FxSpinnerProps;\n 'fx-input': FxInputProps;\n 'fx-select': FxSelectProps;\n 'fx-switch': FxSwitchProps;\n 'fx-checkbox': FxCheckboxProps;\n 'fx-radio': FxRadioProps;\n 'fx-textarea': FxTextareaProps;\n 'fx-editor': FxEditorProps;\n 'fx-multiselect': FxMultiselectProps;\n 'fx-calendar': FxCalendarProps;\n 'fx-datepicker': FxDatepickerProps;\n 'fx-table': FxTableProps;\n 'fx-column': FxColumnProps;\n 'fx-cell': FxCellProps;\n 'fx-toolbar': FxToolbarProps;\n 'fx-floatlabel': FxFloatlabelProps;\n 'fx-dialog': FxDialogProps;\n 'fx-drawer': FxDrawerProps;\n 'fx-toast': FxToastProps;\n 'fx-tooltip': FxTooltipProps;\n 'fx-tabs': FxTabsProps;\n 'fx-tab-panel': FxTabPanelProps;\n 'fx-progress': FxProgressProps;\n 'fx-skeleton': FxSkeletonProps;\n 'fx-alert': FxAlertProps;\n 'fx-dropdown': FxDropdownProps;\n 'fx-dropdown-item': FxDropdownItemProps;\n 'fx-pagination': FxPaginationProps;\n 'fx-autocomplete': FxAutocompleteProps;\n 'fx-fileupload': FxFileUploadProps;\n 'fx-slider': FxSliderProps;\n 'fx-chip': FxChipProps;\n 'fx-avatar': FxAvatarProps;\n 'fx-icon': FxIconProps;\n 'fx-card': FxCardProps;\n 'fx-breadcrumb': FxBreadcrumbProps;\n 'fx-popover': FxPopoverProps;\n 'fx-stepper': FxStepperProps;\n 'fx-rating': FxRatingProps;\n 'fx-menu': FxMenuProps;\n 'fx-toggle-button-group': FxToggleButtonGroupProps;\n 'fx-empty-state': FxEmptyStateProps;\n 'fx-password-strength': FxPasswordStrengthProps;\n 'fx-timeline': FxTimelineProps;\n 'fx-carousel': FxCarouselProps;\n 'fx-tree': FxTreeProps;\n 'fx-confirmpopup': FxConfirmPopupProps;\n 'fx-knob': FxKnobProps;\n 'fx-accordion': FxAccordionProps;\n 'fx-accordion-panel': FxAccordionPanelProps;\n 'fx-orderlist': FxOrderListProps;\n 'fx-picklist': FxPickListProps;\n}\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends FxJsxIntrinsicElements {}\n }\n}\n\n/* Tipagem imperativa: document.createElement('fx-...').\n As tags abaixo não declaradas nos próprios componentes ganham tipagem aqui;\n as demais (alert, dialog, drawer, dropdown, pagination, progress, skeleton,\n tabs, textarea, toast, tooltip, autocomplete) já são tipadas com a classe\n concreta nos respectivos index.ts. */\ndeclare global {\n interface HTMLElementTagNameMap {\n 'fx-button': HTMLElement;\n 'fx-badge': HTMLElement;\n 'fx-spinner': HTMLElement;\n 'fx-input': HTMLElement;\n 'fx-select': HTMLElement;\n 'fx-switch': HTMLElement;\n 'fx-checkbox': HTMLElement;\n 'fx-radio': HTMLElement;\n 'fx-multiselect': HTMLElement;\n 'fx-calendar': HTMLElement;\n 'fx-datepicker': HTMLElement;\n 'fx-table': HTMLElement;\n 'fx-floatlabel': HTMLElement;\n 'fx-accordion': HTMLElement;\n 'fx-accordion-panel': HTMLElement;\n 'fx-orderlist': HTMLElement;\n 'fx-picklist': HTMLElement;\n /* Subtags do <fx-table>: não são custom elements (ficam inertes no light\n DOM), mas precisam existir no mapa para `createElement('fx-cell')` não\n cair no overload genérico de `createElement(tag: string)`. */\n 'fx-column': HTMLElement;\n 'fx-cell': HTMLElement;\n 'fx-toolbar': HTMLElement;\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,eAAe;"}
|
|
1
|
+
{"version":3,"file":"jsx.js","sources":["../../src/core/jsx.ts"],"sourcesContent":["/**\n * Tipagens de propriedades + augmentations JSX do FenixUI.\n *\n * Importar este módulo — diretamente (`@wrrdev/fenix-ui/jsx`) ou via o\n * índice principal (`@wrrdev/fenix-ui`) — habilita, no TypeScript:\n *\n * 1. autocomplete + validação de atributos em templates JSX/TSX;\n * 2. tipos nomeados (`FxButtonProps`, `FxInputProps`, …) para wrappers ou código imperativo.\n *\n * A biblioteca NÃO depende de React/Vue: os atributos comuns\n * (`className`, `onClick`, `style`, `children`, …) são aceitos via assinatura\n * de índice, funcionando com qualquer runtime JSX.\n */\n\nimport type { FxElementProps, FxSize } from './types';\nimport type { FenixIconName } from '../icons/types';\n\n/** Marcador de runtime: permite `import '@wrrdev/fenix-ui/jsx'` como side-effect import. */\nexport const FX_JSX_TYPES = true as const;\n\n/* Uniões auxiliares (variants, enums) */\nexport type FxButtonVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'ghost' | 'outline';\nexport type FxBadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\nexport type FxAlertVariant = 'info' | 'success' | 'warning' | 'danger';\nexport type FxProgressVariant = 'primary' | 'success' | 'warning' | 'danger';\nexport type FxSkeletonVariant = 'text' | 'circle' | 'rect';\nexport type FxFloatlabelVariant = 'on' | 'in' | 'over';\nexport type FxInputType =\n | 'text'\n | 'number'\n | 'password'\n | 'email'\n | 'tel'\n | 'url'\n | 'search'\n | 'date'\n | 'time'\n | 'datetime-local'\n | 'month'\n | 'week'\n | 'color';\nexport type FxFieldStatus = 'error' | 'invalid' | 'success' | 'valid';\nexport type FxToastKind = 'success' | 'error' | 'info' | 'warning';\nexport type FxToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\nexport type FxTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type FxDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type FxDropdownPosition = 'left' | 'center' | 'right' | 'bottom-left' | 'bottom-right';\nexport type FxPaginationPosition = 'left' | 'center' | 'right';\nexport type FxChipVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';\nexport type FxAvatarVariant = 'image' | 'text' | 'icon';\nexport type FxAvatarShape = 'circle' | 'rounded' | 'square';\nexport type FxCardVariant = 'elevated' | 'flat' | 'outline' | 'ghost';\n/** Arredondamento do container do card. */\nexport type FxCardRadius = 'sm' | 'md' | 'lg';\n/**\n * Arredondamento das bordas do <fx-table>.\n *\n * - `none` — bordas retas (0);\n * - `sm` / `md` / `lg` — tokens `--fx-radius-sm|md|lg`.\n *\n * O padrão é `md`. O atributo `radius` é aceito como alias de `rounded`\n * (mesma convenção do <fx-card>).\n */\nexport type FxTableRadius = 'none' | 'sm' | 'md' | 'lg';\nexport type FxPopoverTrigger = 'click' | 'hover';\nexport type FxPopoverPosition = 'auto' | 'top' | 'bottom';\nexport type FxMenuOrientation = 'horizontal' | 'vertical';\nexport type FxTimelineOrientation = 'vertical' | 'horizontal';\nexport type FxSelectionMode = 'single' | 'multiple';\nexport type FxEditorToolbar = 'minimal' | 'basic' | 'standard' | 'full' | 'none';\nexport type FxEditorPasteMode = 'clean' | 'plain';\n\n/* Props por componente */\nexport interface FxButtonProps extends FxElementProps {\n variant?: FxButtonVariant;\n type?: 'button' | 'submit' | 'reset';\n size?: FxSize;\n loading?: boolean;\n full?: boolean;\n icon?: string;\n 'icon-pos'?: 'left' | 'right';\n}\nexport interface FxBadgeProps extends FxElementProps {\n variant?: FxBadgeVariant;\n round?: boolean;\n}\nexport interface FxSpinnerProps extends FxElementProps { size?: FxSize; }\nexport interface FxInputProps extends FxElementProps {\n type?: FxInputType;\n size?: FxSize;\n placeholder?: string;\n readonly?: boolean;\n min?: string | number;\n max?: string | number;\n step?: string | number;\n clearable?: boolean;\n full?: boolean;\n icon?: string;\n 'icon-pos'?: 'left' | 'right';\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxSelectProps extends FxElementProps {\n value?: string | number;\n size?: FxSize;\n placeholder?: string;\n searchable?: boolean;\n clearable?: boolean;\n 'search-placeholder'?: string;\n 'no-results'?: string;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxSwitchProps extends FxElementProps { checked?: boolean; size?: FxSize; }\nexport interface FxCheckboxProps extends FxElementProps {\n checked?: boolean;\n indeterminate?: boolean;\n value?: string;\n size?: FxSize;\n}\nexport interface FxRadioProps extends FxElementProps {\n checked?: boolean;\n value?: string;\n name?: string;\n size?: FxSize;\n}\nexport interface FxTextareaProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n placeholder?: string;\n readonly?: boolean;\n rows?: number;\n maxlength?: number;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxEditorProps extends FxElementProps {\n value?: string;\n name?: string;\n required?: boolean;\n readonly?: boolean;\n placeholder?: string;\n toolbar?: FxEditorToolbar;\n features?: string;\n 'paste-mode'?: FxEditorPasteMode;\n 'min-height'?: string;\n 'max-height'?: string;\n 'show-count'?: boolean;\n maxlength?: number;\n fullscreen?: boolean;\n uploadImage?: (file: File) => Promise<string | { url: string; alt?: string; width?: string }>;\n sanitizeHtml?: (html: string) => string;\n}\nexport interface FxMultiselectProps extends FxElementProps {\n values?: string[] | string;\n size?: FxSize;\n placeholder?: string;\n searchable?: boolean;\n clearable?: boolean;\n open?: boolean;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxCalendarProps extends FxElementProps {\n value?: string;\n start?: string;\n end?: string;\n min?: string;\n max?: string;\n mode?: 'single' | 'range' | 'multiple';\n values?: string[] | string;\n locale?: string;\n disabled?: boolean;\n}\nexport interface FxDatepickerProps extends FxElementProps {\n value?: string;\n start?: string;\n end?: string;\n values?: string[] | string;\n mode?: 'single' | 'range' | 'multiple';\n min?: string;\n max?: string;\n placeholder?: string;\n size?: FxSize;\n format?: string;\n 'show-time'?: boolean;\n 'free-text'?: boolean;\n clearable?: boolean;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n}\nexport interface FxTableProps extends FxElementProps {\n pagination?: boolean;\n rows?: number;\n 'rows-options'?: string;\n striped?: boolean;\n hover?: boolean;\n 'empty-message'?: string;\n 'pagination-position'?: FxPaginationPosition;\n total?: number;\n page?: number;\n lazy?: boolean;\n loading?: boolean;\n 'loading-message'?: string;\n 'sort-field'?: string;\n 'sort-order'?: 'asc' | 'desc' | '';\n /**\n * Arredondamento das bordas. `none` deixa retas; `sm`/`md`/`lg` usam os\n * tokens `--fx-radius-*`. Padrão: `md`.\n */\n rounded?: FxTableRadius;\n /** Alias de `rounded` (mesma convenção do <fx-card>). */\n radius?: FxTableRadius;\n /** Remove apenas as bordas laterais, mantendo topo e base. */\n 'no-borders-x'?: boolean;\n /** Referência ao markup da toolbar: `#id`/`id` de um elemento fora da tabela. */\n toolbar?: string;\n}\n/**\n * <fx-column> — declaração de coluna (light DOM do <fx-table>).\n *\n * O template de célula vai em `<fx-cell>` (tag imune a Vue/React/Angular) ou,\n * em markup estático, em `template=\"#id\"`. A forma antiga com `<template>`\n * dentro da coluna continua aceita.\n */\nexport interface FxColumnProps extends FxElementProps {\n field?: string;\n header?: string;\n sortable?: boolean;\n filterable?: boolean;\n align?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';\n /** Referência a um elemento de template: `#id` ou `id`. */\n template?: string;\n}\n/**\n * <fx-cell> — template de renderização de uma célula do <fx-table>.\n *\n * Substitui o `<template>` nativo, que é interceptado por Vue/React/Angular.\n * Aceita expressões `{{ }}`, pipes e acesso a `row.*`. Não tem atributos\n * próprios: o conteúdo vem de `children`.\n *\n * ⚠️ SÓ FUNCIONA DENTRO DE <fx-column> (filho direto), que por sua vez só\n * existe dentro de <fx-table>. Fora da tabela a tag é inerte.\n *\n * ⚠️ O conteúdo é TEXTO CRU: o `{{ }}` é avaliado pelo motor do <fx-table>,\n * não pelo framework. O TypeScript não consegue tipar isso (é uma string),\n * então cada stack precisa neutralizar a própria sintaxe de template:\n *\n * - Vue 3 / Nuxt ... <fx-cell v-pre>{{ value }}</fx-cell>\n * Sem `v-pre` o Vue compila a interpolação (`_toDisplayString(_ctx.value)`),\n * o texto não chega ao componente e o vue-tsc acusa `value` inexistente.\n * - React / JSX .... <fx-cell>{'{{ value }}'}</fx-cell>\n * O `{{ }}` solto é ERRO de sintaxe no parser JSX — deve ser string JS.\n * - Angular ........ <fx-cell ngNonBindable>…</fx-cell>\n * - Svelte ......... <fx-cell>{'{{ value }}'}</fx-cell>\n * ou {{ value }}\n * - HTML/CDN ....... <fx-cell>{{ value }}</fx-cell> (nada a fazer)\n *\n * Variáveis do escopo: `value` (campo da coluna), `row` (objeto da linha,\n * `row.campo`), literais `true`/`false`/`null`, pipes `currency`, `number`,\n * `date`, `dateTime`, operadores `+ - * /`, comparações e ternário `? :`.\n */\nexport interface FxCellProps extends FxElementProps {}\n/**\n * <fx-toolbar> — barra de ações acima do header do <fx-table>.\n *\n * Substitui `<template slot=\"toolbar\">`. Inputs com `data-search-fields`\n * viram busca global. Sem atributos próprios.\n */\nexport interface FxToolbarProps extends FxElementProps {}\nexport interface FxFloatlabelProps extends FxElementProps {\n variant?: FxFloatlabelVariant;\n full?: boolean;\n error?: boolean;\n invalid?: boolean;\n success?: boolean;\n valid?: boolean;\n active?: boolean;\n 'error-text'?: string;\n}\nexport interface FxDialogProps extends FxElementProps { open?: boolean; size?: FxSize; heading?: string; }\nexport interface FxDrawerProps extends FxElementProps { open?: boolean; title?: string; position?: FxDrawerPosition; }\nexport interface FxToastProps extends FxElementProps {\n kind?: FxToastKind;\n title?: string;\n message?: string;\n duration?: number;\n position?: FxToastPosition;\n /** Força o esquema de cores do card independentemente do tema global. */\n mode?: 'light' | 'dark';\n /**\n * Barra de contagem regressiva na base do card, na cor do `kind`.\n * Vazio ou `'always'` = corre sempre; `'hover'` = só sob cursor/foco;\n * `'paused'` = barra cheia e imóvel. Sem efeito com `duration: 0`.\n */\n progress?: FxToastProgress | boolean;\n /**\n * Lado a partir do qual a barra esvazia. `'left'` (padrão) ancora a barra à\n * esquerda; `'right'` a ancora à direita (espelhado). Exige `progress`.\n */\n 'progress-origin'?: FxToastOrigin;\n}\n/** Modos da barra de contagem regressiva do <fx-toast>. */\nexport type FxToastProgress = 'always' | 'hover' | 'paused';\n/** Lado pelo qual a barra de contagem do <fx-toast> esvazia. */\nexport type FxToastOrigin = 'left' | 'right';\nexport interface FxTooltipProps extends FxElementProps { content?: string; position?: FxTooltipPosition; }\nexport interface FxTabsProps extends FxElementProps { value?: string; }\nexport interface FxTabPanelProps extends FxElementProps { tab?: string; hidden?: boolean; }\nexport interface FxProgressProps extends FxElementProps {\n value?: number;\n indeterminate?: boolean;\n variant?: FxProgressVariant;\n label?: string;\n 'hide-label'?: boolean;\n size?: FxSize;\n}\nexport interface FxSkeletonProps extends FxElementProps {\n variant?: FxSkeletonVariant;\n width?: string;\n height?: string;\n lines?: number;\n}\nexport interface FxAlertProps extends FxElementProps { variant?: FxAlertVariant; title?: string; dismissible?: boolean; }\nexport interface FxDropdownProps extends FxElementProps { label?: string; position?: FxDropdownPosition; open?: boolean; }\nexport interface FxDropdownItemProps extends FxElementProps { value?: string; }\nexport interface FxPaginationProps extends FxElementProps {\n page?: number;\n total?: number;\n rows?: number;\n 'rows-options'?: string;\n position?: FxPaginationPosition;\n}\nexport interface FxAutocompleteProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n placeholder?: string;\n source?: string;\n disabled?: boolean;\n 'min-chars'?: number;\n full?: boolean;\n}\nexport interface FxFileUploadProps extends FxElementProps {\n mode?: 'basic' | 'advanced';\n size?: FxSize;\n severity?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';\n label?: string;\n icon?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n 'show-progress'?: boolean;\n progress?: number;\n full?: boolean;\n}\n\n/* Props dos componentes de layout/dados/navegação/feedback */\nexport interface FxSliderProps extends FxElementProps {\n value?: number;\n min?: number;\n max?: number;\n step?: number;\n size?: FxSize;\n 'show-value'?: boolean;\n}\nexport interface FxStepperProps extends FxElementProps {\n active?: number;\n linear?: boolean;\n 'show-numbers'?: boolean;\n}\nexport interface FxChipProps extends FxElementProps {\n variant?: FxChipVariant;\n size?: FxSize;\n icon?: string;\n removable?: boolean;\n selectable?: boolean;\n selected?: boolean;\n}\nexport interface FxAvatarProps extends FxElementProps {\n variant?: FxAvatarVariant;\n src?: string;\n alt?: string;\n size?: FxSize;\n shape?: FxAvatarShape;\n}\n/**\n * <fx-icon> — glifo da Fenix Icons com autocomplete no editor.\n *\n * `name` é uma união literal com TODOS os nomes da fonte (+4.000): o editor\n * (Volar/vue-tsc, React/TSX) sugere os válidos ao digitar. A tipagem aceita\n * qualquer string (escotilha `(string & {})`), então nomes montados por\n * variável/dynamic imports continuam compilando sem erro.\n */\nexport interface FxIconProps extends FxElementProps {\n /** Nome do glifo (ex.: `home`). Texto livre/emoji também é aceito. */\n name?: FenixIconName;\n /** Tamanho do glifo. Sem atributo, herda o tamanho do texto (1em). */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Nome acessível; sem label o ícone é aria-hidden (decorativo). */\n label?: string;\n /** Variante preenchida. */\n fill?: boolean;\n /** Traço mais pesado. */\n bold?: boolean;\n}\nexport interface FxCardProps extends FxElementProps {\n variant?: FxCardVariant;\n /** Arredondamento do container (radius sm/md/lg). */\n radius?: FxCardRadius;\n /** @deprecated use `radius`. */\n size?: FxSize;\n padded?: boolean;\n heading?: string;\n}\nexport interface FxBreadcrumbProps extends FxElementProps {\n size?: FxSize;\n separator?: string;\n}\nexport interface FxPopoverProps extends FxElementProps {\n open?: boolean;\n target?: string;\n trigger?: FxPopoverTrigger;\n position?: FxPopoverPosition;\n dismissible?: boolean;\n}\nexport interface FxRatingProps extends FxElementProps {\n value?: number;\n max?: number;\n readonly?: boolean;\n 'allow-half'?: boolean;\n size?: FxSize;\n}\nexport interface FxMenuProps extends FxElementProps {\n orientation?: FxMenuOrientation;\n size?: FxSize;\n titles?: string;\n}\nexport interface FxToggleButtonGroupProps extends FxElementProps {\n multiple?: boolean;\n value?: string;\n size?: FxSize;\n}\nexport interface FxEmptyStateProps extends FxElementProps {\n icon?: string;\n heading?: string;\n description?: string;\n}\nexport interface FxPasswordStrengthProps extends FxElementProps {\n value?: string;\n size?: FxSize;\n}\nexport interface FxTimelineProps extends FxElementProps {\n orientation?: FxTimelineOrientation;\n size?: FxSize;\n marker?: string;\n}\nexport interface FxCarouselProps extends FxElementProps {\n active?: number;\n 'show-arrows'?: boolean;\n 'show-indicators'?: boolean;\n loop?: boolean;\n autoplay?: number;\n}\nexport interface FxTreeProps extends FxElementProps {\n data?: string;\n 'expand-all'?: boolean;\n size?: FxSize;\n}\nexport interface FxConfirmPopupProps extends FxElementProps {\n open?: boolean;\n target?: string;\n message?: string;\n icon?: string;\n 'accept-label'?: string;\n 'reject-label'?: string;\n position?: FxPopoverPosition;\n}\nexport interface FxKnobProps extends FxElementProps {\n value?: number;\n min?: number;\n max?: number;\n step?: number;\n size?: FxSize;\n 'stroke-width'?: number;\n 'value-color'?: string;\n 'range-color'?: string;\n 'value-template'?: string;\n readonly?: boolean;\n}\nexport interface FxAccordionProps extends FxElementProps {\n value?: string;\n multiple?: boolean;\n}\nexport interface FxAccordionPanelProps extends FxElementProps {\n value?: string;\n header?: string;\n}\nexport interface FxOrderListProps extends FxElementProps {\n data?: string;\n /**\n * Array de itens — alias de `data` para binding de framework\n * (`:items=\"lista\"` no Vue / `items={lista}` no React). Também aceita\n * JSON no atributo (`items='[{\"label\":\"A\"}]'`).\n */\n items?: import('../components/orderlist/orderlist').OrderListItem[];\n 'data-key'?: string;\n filter?: boolean;\n 'filter-by'?: string;\n 'filter-placeholder'?: string;\n dragdrop?: boolean;\n striped?: boolean;\n 'selection-mode'?: FxSelectionMode;\n 'show-select-all'?: boolean;\n}\nexport interface FxPickListProps extends FxElementProps {\n source?: string;\n target?: string;\n 'source-key'?: string;\n 'target-key'?: string;\n filter?: boolean;\n 'filter-by'?: string;\n 'source-label'?: string;\n 'target-label'?: string;\n 'selection-mode'?: FxSelectionMode;\n 'show-select-all'?: boolean;\n striped?: boolean;\n}\n/* Augmentation global de JSX (React clássico/TSX, Preact, Vue JSX, …).\n Cada tag fx-* recebe autocomplete + validação de atributos.\n A interface é exportada para que o módulo opt-in `@wrrdev/fenix-ui/react`\n também registre as tags em React.JSX (usado quando \"jsx\": \"react-jsx\"). */\nexport interface FxJsxIntrinsicElements {\n 'fx-button': FxButtonProps;\n 'fx-badge': FxBadgeProps;\n 'fx-spinner': FxSpinnerProps;\n 'fx-input': FxInputProps;\n 'fx-select': FxSelectProps;\n 'fx-switch': FxSwitchProps;\n 'fx-checkbox': FxCheckboxProps;\n 'fx-radio': FxRadioProps;\n 'fx-textarea': FxTextareaProps;\n 'fx-editor': FxEditorProps;\n 'fx-multiselect': FxMultiselectProps;\n 'fx-calendar': FxCalendarProps;\n 'fx-datepicker': FxDatepickerProps;\n 'fx-table': FxTableProps;\n 'fx-column': FxColumnProps;\n 'fx-cell': FxCellProps;\n 'fx-toolbar': FxToolbarProps;\n 'fx-floatlabel': FxFloatlabelProps;\n 'fx-dialog': FxDialogProps;\n 'fx-drawer': FxDrawerProps;\n 'fx-toast': FxToastProps;\n 'fx-tooltip': FxTooltipProps;\n 'fx-tabs': FxTabsProps;\n 'fx-tab-panel': FxTabPanelProps;\n 'fx-progress': FxProgressProps;\n 'fx-skeleton': FxSkeletonProps;\n 'fx-alert': FxAlertProps;\n 'fx-dropdown': FxDropdownProps;\n 'fx-dropdown-item': FxDropdownItemProps;\n 'fx-pagination': FxPaginationProps;\n 'fx-autocomplete': FxAutocompleteProps;\n 'fx-fileupload': FxFileUploadProps;\n 'fx-slider': FxSliderProps;\n 'fx-chip': FxChipProps;\n 'fx-avatar': FxAvatarProps;\n 'fx-icon': FxIconProps;\n 'fx-card': FxCardProps;\n 'fx-breadcrumb': FxBreadcrumbProps;\n 'fx-popover': FxPopoverProps;\n 'fx-stepper': FxStepperProps;\n 'fx-rating': FxRatingProps;\n 'fx-menu': FxMenuProps;\n 'fx-toggle-button-group': FxToggleButtonGroupProps;\n 'fx-empty-state': FxEmptyStateProps;\n 'fx-password-strength': FxPasswordStrengthProps;\n 'fx-timeline': FxTimelineProps;\n 'fx-carousel': FxCarouselProps;\n 'fx-tree': FxTreeProps;\n 'fx-confirmpopup': FxConfirmPopupProps;\n 'fx-knob': FxKnobProps;\n 'fx-accordion': FxAccordionProps;\n 'fx-accordion-panel': FxAccordionPanelProps;\n 'fx-orderlist': FxOrderListProps;\n 'fx-picklist': FxPickListProps;\n}\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends FxJsxIntrinsicElements {}\n }\n}\n\n/* Tipagem imperativa: document.createElement('fx-...').\n As tags abaixo não declaradas nos próprios componentes ganham tipagem aqui;\n as demais (alert, dialog, drawer, dropdown, pagination, progress, skeleton,\n tabs, textarea, toast, tooltip, autocomplete) já são tipadas com a classe\n concreta nos respectivos index.ts. */\ndeclare global {\n interface HTMLElementTagNameMap {\n 'fx-button': HTMLElement;\n 'fx-badge': HTMLElement;\n 'fx-spinner': HTMLElement;\n 'fx-input': HTMLElement;\n 'fx-select': HTMLElement;\n 'fx-switch': HTMLElement;\n 'fx-checkbox': HTMLElement;\n 'fx-radio': HTMLElement;\n 'fx-multiselect': HTMLElement;\n 'fx-calendar': HTMLElement;\n 'fx-datepicker': HTMLElement;\n 'fx-table': HTMLElement;\n 'fx-floatlabel': HTMLElement;\n 'fx-accordion': HTMLElement;\n 'fx-accordion-panel': HTMLElement;\n 'fx-orderlist': HTMLElement;\n 'fx-picklist': HTMLElement;\n /* Subtags do <fx-table>: não são custom elements (ficam inertes no light\n DOM), mas precisam existir no mapa para `createElement('fx-cell')` não\n cair no overload genérico de `createElement(tag: string)`. */\n 'fx-column': HTMLElement;\n 'fx-cell': HTMLElement;\n 'fx-toolbar': HTMLElement;\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,eAAe;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilitários compartilhados por <fx-dialog> e <fx-drawer>.
|
|
3
|
+
*
|
|
4
|
+
* Reúnem três necessidades que os dois componentes têm em comum:
|
|
5
|
+
* - lista de elementos focáveis incluindo o conteúdo slotted do consumidor
|
|
6
|
+
* (o light DOM não é alcançado por `shadowRoot.querySelectorAll`);
|
|
7
|
+
* - detecção do modal do topo (Escape fecha apenas um por vez);
|
|
8
|
+
* - bloqueio do scroll do <body> com contador (dois modais abertos não
|
|
9
|
+
* liberam o scroll quando apenas um fecha).
|
|
10
|
+
*/
|
|
11
|
+
/** Seletor de elementos focáveis via teclado. */
|
|
12
|
+
export declare const FOCUSABLE_SELECTOR = "button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]";
|
|
13
|
+
/**
|
|
14
|
+
* Focáveis do modal = estrutura do Shadow DOM + conteúdo slotted (light DOM).
|
|
15
|
+
* A ordem mantém primeiro os controles internos (ex.: botão fechar) e depois
|
|
16
|
+
* os campos/botões do consumidor.
|
|
17
|
+
*/
|
|
18
|
+
export declare function modalFocusables(panel: ParentNode, host: ParentNode): HTMLElement[];
|
|
19
|
+
/** Primeiro focável pertencente ao conteúdo slotted (light DOM). */
|
|
20
|
+
export declare function firstLightFocusable(host: ParentNode): HTMLElement | null;
|
|
21
|
+
/** Registra a abertura do modal (idempotente). */
|
|
22
|
+
export declare function registerModalOpen(host: HTMLElement): void;
|
|
23
|
+
/** Remove o modal da pilha ao fechar/desconectar. */
|
|
24
|
+
export declare function registerModalClose(host: HTMLElement): void;
|
|
25
|
+
/** O host é o modal mais recentemente aberto (o do topo)? */
|
|
26
|
+
export declare function isTopmostModal(host: HTMLElement): boolean;
|
|
27
|
+
/** Bloqueia o scroll do body (idempotente por modal que chamar lock). */
|
|
28
|
+
export declare function lockBodyScroll(): void;
|
|
29
|
+
/** Libera o scroll do body quando o último modal aberto fecha. */
|
|
30
|
+
export declare function unlockBodyScroll(): void;
|
|
31
|
+
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/core/modal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,2GACuE,CAAC;AAYvG;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,CAIlF;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAExE;AAUD,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEzD;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAG1D;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAGzD;AAMD,yEAAyE;AACzE,wBAAgB,cAAc,IAAI,IAAI,CAYrC;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const FOCUSABLE_SELECTOR = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [contenteditable="true"]';
|
|
2
|
+
function usable(nodes) {
|
|
3
|
+
return [...nodes].filter(
|
|
4
|
+
(el) => !el.hasAttribute("disabled") && el.getAttribute("aria-hidden") !== "true" && el.getAttribute("tabindex") !== "-1"
|
|
5
|
+
);
|
|
6
|
+
}
|
|
7
|
+
function modalFocusables(panel, host) {
|
|
8
|
+
const shadow = panel.querySelectorAll(FOCUSABLE_SELECTOR);
|
|
9
|
+
const light = host.querySelectorAll(FOCUSABLE_SELECTOR);
|
|
10
|
+
return usable([...shadow, ...light]);
|
|
11
|
+
}
|
|
12
|
+
function firstLightFocusable(host) {
|
|
13
|
+
return usable(host.querySelectorAll(FOCUSABLE_SELECTOR))[0] ?? null;
|
|
14
|
+
}
|
|
15
|
+
const modalStack = [];
|
|
16
|
+
function registerModalOpen(host) {
|
|
17
|
+
if (!modalStack.includes(host)) modalStack.push(host);
|
|
18
|
+
}
|
|
19
|
+
function registerModalClose(host) {
|
|
20
|
+
const index = modalStack.indexOf(host);
|
|
21
|
+
if (index !== -1) modalStack.splice(index, 1);
|
|
22
|
+
}
|
|
23
|
+
function isTopmostModal(host) {
|
|
24
|
+
if (modalStack.length === 0) return true;
|
|
25
|
+
return modalStack[modalStack.length - 1] === host;
|
|
26
|
+
}
|
|
27
|
+
let scrollLocks = 0;
|
|
28
|
+
let previousOverflow = "";
|
|
29
|
+
let previousPaddingRight = "";
|
|
30
|
+
function lockBodyScroll() {
|
|
31
|
+
if (typeof document === "undefined" || !document.body) return;
|
|
32
|
+
if (scrollLocks === 0) {
|
|
33
|
+
const body = document.body;
|
|
34
|
+
previousOverflow = body.style.overflow;
|
|
35
|
+
previousPaddingRight = body.style.paddingRight;
|
|
36
|
+
const scrollbar = window.innerWidth - document.documentElement.clientWidth;
|
|
37
|
+
body.style.overflow = "hidden";
|
|
38
|
+
if (scrollbar > 0) body.style.paddingRight = `${scrollbar}px`;
|
|
39
|
+
}
|
|
40
|
+
scrollLocks += 1;
|
|
41
|
+
}
|
|
42
|
+
function unlockBodyScroll() {
|
|
43
|
+
if (typeof document === "undefined" || !document.body) return;
|
|
44
|
+
if (scrollLocks === 0) return;
|
|
45
|
+
scrollLocks -= 1;
|
|
46
|
+
if (scrollLocks === 0) {
|
|
47
|
+
document.body.style.overflow = previousOverflow;
|
|
48
|
+
document.body.style.paddingRight = previousPaddingRight;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
FOCUSABLE_SELECTOR,
|
|
53
|
+
firstLightFocusable,
|
|
54
|
+
isTopmostModal,
|
|
55
|
+
lockBodyScroll,
|
|
56
|
+
modalFocusables,
|
|
57
|
+
registerModalClose,
|
|
58
|
+
registerModalOpen,
|
|
59
|
+
unlockBodyScroll
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.js","sources":["../../src/core/modal.ts"],"sourcesContent":["/**\n * Utilitários compartilhados por <fx-dialog> e <fx-drawer>.\n *\n * Reúnem três necessidades que os dois componentes têm em comum:\n * - lista de elementos focáveis incluindo o conteúdo slotted do consumidor\n * (o light DOM não é alcançado por `shadowRoot.querySelectorAll`);\n * - detecção do modal do topo (Escape fecha apenas um por vez);\n * - bloqueio do scroll do <body> com contador (dois modais abertos não\n * liberam o scroll quando apenas um fecha).\n */\n\n/** Seletor de elementos focáveis via teclado. */\nexport const FOCUSABLE_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]';\n\n/** Remove nós desabilitados/ocultos de uma lista de focáveis. */\nfunction usable(nodes: Iterable<HTMLElement>): HTMLElement[] {\n return [...nodes].filter(\n (el) =>\n !el.hasAttribute('disabled') &&\n el.getAttribute('aria-hidden') !== 'true' &&\n el.getAttribute('tabindex') !== '-1',\n );\n}\n\n/**\n * Focáveis do modal = estrutura do Shadow DOM + conteúdo slotted (light DOM).\n * A ordem mantém primeiro os controles internos (ex.: botão fechar) e depois\n * os campos/botões do consumidor.\n */\nexport function modalFocusables(panel: ParentNode, host: ParentNode): HTMLElement[] {\n const shadow = panel.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR);\n const light = host.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR);\n return usable([...shadow, ...light]);\n}\n\n/** Primeiro focável pertencente ao conteúdo slotted (light DOM). */\nexport function firstLightFocusable(host: ParentNode): HTMLElement | null {\n return usable(host.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))[0] ?? null;\n}\n\n/**\n * Pilha de modais abertos, na ordem de abertura.\n *\n * A ordem do DOM não serve: dois dialogs irmãos podem ser abertos em ordem\n * inversa. A pilha garante que o Escape feche apenas o modal do topo.\n */\nconst modalStack: HTMLElement[] = [];\n\n/** Registra a abertura do modal (idempotente). */\nexport function registerModalOpen(host: HTMLElement): void {\n if (!modalStack.includes(host)) modalStack.push(host);\n}\n\n/** Remove o modal da pilha ao fechar/desconectar. */\nexport function registerModalClose(host: HTMLElement): void {\n const index = modalStack.indexOf(host);\n if (index !== -1) modalStack.splice(index, 1);\n}\n\n/** O host é o modal mais recentemente aberto (o do topo)? */\nexport function isTopmostModal(host: HTMLElement): boolean {\n if (modalStack.length === 0) return true;\n return modalStack[modalStack.length - 1] === host;\n}\n\nlet scrollLocks = 0;\nlet previousOverflow = '';\nlet previousPaddingRight = '';\n\n/** Bloqueia o scroll do body (idempotente por modal que chamar lock). */\nexport function lockBodyScroll(): void {\n if (typeof document === 'undefined' || !document.body) return;\n if (scrollLocks === 0) {\n const body = document.body;\n previousOverflow = body.style.overflow;\n previousPaddingRight = body.style.paddingRight;\n // Compensa a barra de rolagem para o layout não \"pular\" ao travar.\n const scrollbar = window.innerWidth - document.documentElement.clientWidth;\n body.style.overflow = 'hidden';\n if (scrollbar > 0) body.style.paddingRight = `${scrollbar}px`;\n }\n scrollLocks += 1;\n}\n\n/** Libera o scroll do body quando o último modal aberto fecha. */\nexport function unlockBodyScroll(): void {\n if (typeof document === 'undefined' || !document.body) return;\n if (scrollLocks === 0) return;\n scrollLocks -= 1;\n if (scrollLocks === 0) {\n document.body.style.overflow = previousOverflow;\n document.body.style.paddingRight = previousPaddingRight;\n }\n}\n"],"names":[],"mappings":"AAYO,MAAM,qBACX;AAGF,SAAS,OAAO,OAA6C;AAC3D,SAAO,CAAC,GAAG,KAAK,EAAE;AAAA,IAChB,CAAC,OACC,CAAC,GAAG,aAAa,UAAU,KAC3B,GAAG,aAAa,aAAa,MAAM,UACnC,GAAG,aAAa,UAAU,MAAM;AAAA,EAAA;AAEtC;AAOO,SAAS,gBAAgB,OAAmB,MAAiC;AAClF,QAAM,SAAS,MAAM,iBAA8B,kBAAkB;AACrE,QAAM,QAAQ,KAAK,iBAA8B,kBAAkB;AACnE,SAAO,OAAO,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC;AACrC;AAGO,SAAS,oBAAoB,MAAsC;AACxE,SAAO,OAAO,KAAK,iBAA8B,kBAAkB,CAAC,EAAE,CAAC,KAAK;AAC9E;AAQA,MAAM,aAA4B,CAAA;AAG3B,SAAS,kBAAkB,MAAyB;AACzD,MAAI,CAAC,WAAW,SAAS,IAAI,EAAG,YAAW,KAAK,IAAI;AACtD;AAGO,SAAS,mBAAmB,MAAyB;AAC1D,QAAM,QAAQ,WAAW,QAAQ,IAAI;AACrC,MAAI,UAAU,GAAI,YAAW,OAAO,OAAO,CAAC;AAC9C;AAGO,SAAS,eAAe,MAA4B;AACzD,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,SAAO,WAAW,WAAW,SAAS,CAAC,MAAM;AAC/C;AAEA,IAAI,cAAc;AAClB,IAAI,mBAAmB;AACvB,IAAI,uBAAuB;AAGpB,SAAS,iBAAuB;AACrC,MAAI,OAAO,aAAa,eAAe,CAAC,SAAS,KAAM;AACvD,MAAI,gBAAgB,GAAG;AACrB,UAAM,OAAO,SAAS;AACtB,uBAAmB,KAAK,MAAM;AAC9B,2BAAuB,KAAK,MAAM;AAElC,UAAM,YAAY,OAAO,aAAa,SAAS,gBAAgB;AAC/D,SAAK,MAAM,WAAW;AACtB,QAAI,YAAY,EAAG,MAAK,MAAM,eAAe,GAAG,SAAS;AAAA,EAC3D;AACA,iBAAe;AACjB;AAGO,SAAS,mBAAyB;AACvC,MAAI,OAAO,aAAa,eAAe,CAAC,SAAS,KAAM;AACvD,MAAI,gBAAgB,EAAG;AACvB,iBAAe;AACf,MAAI,gBAAgB,GAAG;AACrB,aAAS,KAAK,MAAM,WAAW;AAC/B,aAAS,KAAK,MAAM,eAAe;AAAA,EACrC;AACF;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Janela de páginas para paginadores (fx-pagination e fx-table).
|
|
3
|
+
*
|
|
4
|
+
* O padrão de mercado (MUI, Ant Design, PrimeNG) é mostrar a primeira página,
|
|
5
|
+
* a última e uma janela móvel em torno da página atual, substituindo o miolo
|
|
6
|
+
* por uma elipse:
|
|
7
|
+
*
|
|
8
|
+
* página 1 → 1 2 3 4 5 … 1000
|
|
9
|
+
* página 500 → 1 … 499 [500] 501 … 1000
|
|
10
|
+
* página 1000 → 1 … 996 997 998 999 1000
|
|
11
|
+
*
|
|
12
|
+
* Assim o número de botões é constante (no máximo 7 itens) mesmo com milhares
|
|
13
|
+
* de páginas — nunca renderizamos um botão por página.
|
|
14
|
+
*/
|
|
15
|
+
/** Item da janela: número de página (1-based) ou a elipse. */
|
|
16
|
+
export type PageRangeItem = number | 'ellipsis';
|
|
17
|
+
export interface PageRangeOptions {
|
|
18
|
+
/** Páginas visíveis de cada lado da atual. Padrão: 1. */
|
|
19
|
+
siblings?: number;
|
|
20
|
+
/** Páginas fixas no início e no fim. Padrão: 1. */
|
|
21
|
+
boundaries?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gera a janela de páginas de um paginador.
|
|
25
|
+
*
|
|
26
|
+
* @param current Página atual (1-based). Valores fora de `[1, count]` são
|
|
27
|
+
* normalizados para os limites.
|
|
28
|
+
* @param count Total de páginas. `0` devolve uma lista vazia.
|
|
29
|
+
*/
|
|
30
|
+
export declare function pageRange(current: number, count: number, options?: PageRangeOptions): PageRangeItem[];
|
|
31
|
+
//# sourceMappingURL=page-range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-range.d.ts","sourceRoot":"","sources":["../../src/core/page-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAcD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,aAAa,EAAE,CA2CjB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function toInt(value, fallback) {
|
|
2
|
+
return Number.isFinite(value) ? Math.trunc(value) : fallback;
|
|
3
|
+
}
|
|
4
|
+
function range(start, end) {
|
|
5
|
+
const out = [];
|
|
6
|
+
for (let p = start; p <= end; p++) out.push(p);
|
|
7
|
+
return out;
|
|
8
|
+
}
|
|
9
|
+
function pageRange(current, count, options = {}) {
|
|
10
|
+
const pages = Math.max(0, toInt(count, 0));
|
|
11
|
+
if (pages === 0) return [];
|
|
12
|
+
const boundaries = Math.max(0, toInt(options.boundaries ?? 1, 1));
|
|
13
|
+
const siblings = Math.max(0, toInt(options.siblings ?? 1, 1));
|
|
14
|
+
const page = Math.min(Math.max(1, toInt(current, 1)), pages);
|
|
15
|
+
if (pages <= boundaries * 2 + siblings * 2 + 3) return range(1, pages);
|
|
16
|
+
const startPages = range(1, Math.min(boundaries, pages));
|
|
17
|
+
const endPages = range(
|
|
18
|
+
Math.max(pages - boundaries + 1, boundaries + 1),
|
|
19
|
+
pages
|
|
20
|
+
);
|
|
21
|
+
const siblingsStart = Math.max(
|
|
22
|
+
Math.min(page - siblings, pages - boundaries - siblings * 2 - 1),
|
|
23
|
+
boundaries + 2
|
|
24
|
+
);
|
|
25
|
+
const siblingsEnd = Math.min(
|
|
26
|
+
Math.max(page + siblings, boundaries + siblings * 2 + 2),
|
|
27
|
+
endPages.length > 0 ? endPages[0] - 2 : pages - 1
|
|
28
|
+
);
|
|
29
|
+
const items = [...startPages];
|
|
30
|
+
if (siblingsStart > boundaries + 2) items.push("ellipsis");
|
|
31
|
+
else if (boundaries + 1 < pages - boundaries) items.push(boundaries + 1);
|
|
32
|
+
items.push(...range(siblingsStart, siblingsEnd));
|
|
33
|
+
if (siblingsEnd < pages - boundaries - 1) items.push("ellipsis");
|
|
34
|
+
else if (pages - boundaries > boundaries) items.push(pages - boundaries);
|
|
35
|
+
items.push(...endPages);
|
|
36
|
+
return items;
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
pageRange
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=page-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-range.js","sources":["../../src/core/page-range.ts"],"sourcesContent":["/**\n * Janela de páginas para paginadores (fx-pagination e fx-table).\n *\n * O padrão de mercado (MUI, Ant Design, PrimeNG) é mostrar a primeira página,\n * a última e uma janela móvel em torno da página atual, substituindo o miolo\n * por uma elipse:\n *\n * página 1 → 1 2 3 4 5 … 1000\n * página 500 → 1 … 499 [500] 501 … 1000\n * página 1000 → 1 … 996 997 998 999 1000\n *\n * Assim o número de botões é constante (no máximo 7 itens) mesmo com milhares\n * de páginas — nunca renderizamos um botão por página.\n */\n\n/** Item da janela: número de página (1-based) ou a elipse. */\nexport type PageRangeItem = number | 'ellipsis';\n\nexport interface PageRangeOptions {\n /** Páginas visíveis de cada lado da atual. Padrão: 1. */\n siblings?: number;\n /** Páginas fixas no início e no fim. Padrão: 1. */\n boundaries?: number;\n}\n\n/** Converte para inteiro finito, caindo no padrão quando o valor é inválido. */\nfunction toInt(value: number, fallback: number): number {\n return Number.isFinite(value) ? Math.trunc(value) : fallback;\n}\n\n/** Intervalo inclusivo `[start, end]` (vazio quando `start > end`). */\nfunction range(start: number, end: number): number[] {\n const out: number[] = [];\n for (let p = start; p <= end; p++) out.push(p);\n return out;\n}\n\n/**\n * Gera a janela de páginas de um paginador.\n *\n * @param current Página atual (1-based). Valores fora de `[1, count]` são\n * normalizados para os limites.\n * @param count Total de páginas. `0` devolve uma lista vazia.\n */\nexport function pageRange(\n current: number,\n count: number,\n options: PageRangeOptions = {},\n): PageRangeItem[] {\n const pages = Math.max(0, toInt(count, 0));\n if (pages === 0) return [];\n\n const boundaries = Math.max(0, toInt(options.boundaries ?? 1, 1));\n const siblings = Math.max(0, toInt(options.siblings ?? 1, 1));\n const page = Math.min(Math.max(1, toInt(current, 1)), pages);\n\n /*\n * Quando o total cabe na janela completa (bordas + vizinhos + atual + as\n * duas elipses) não há buraco a esconder: mostra todas as páginas.\n */\n if (pages <= boundaries * 2 + siblings * 2 + 3) return range(1, pages);\n\n const startPages = range(1, Math.min(boundaries, pages));\n const endPages = range(\n Math.max(pages - boundaries + 1, boundaries + 1),\n pages,\n );\n\n // Janela em torno da atual, presa para não encostar nas bordas.\n const siblingsStart = Math.max(\n Math.min(page - siblings, pages - boundaries - siblings * 2 - 1),\n boundaries + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(page + siblings, boundaries + siblings * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : pages - 1,\n );\n\n const items: PageRangeItem[] = [...startPages];\n\n // Elipse só quando existe buraco; se faltar apenas uma página, mostra o número.\n if (siblingsStart > boundaries + 2) items.push('ellipsis');\n else if (boundaries + 1 < pages - boundaries) items.push(boundaries + 1);\n\n items.push(...range(siblingsStart, siblingsEnd));\n\n if (siblingsEnd < pages - boundaries - 1) items.push('ellipsis');\n else if (pages - boundaries > boundaries) items.push(pages - boundaries);\n\n items.push(...endPages);\n return items;\n}\n"],"names":[],"mappings":"AA0BA,SAAS,MAAM,OAAe,UAA0B;AACtD,SAAO,OAAO,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI;AACtD;AAGA,SAAS,MAAM,OAAe,KAAuB;AACnD,QAAM,MAAgB,CAAA;AACtB,WAAS,IAAI,OAAO,KAAK,KAAK,IAAK,KAAI,KAAK,CAAC;AAC7C,SAAO;AACT;AASO,SAAS,UACd,SACA,OACA,UAA4B,CAAA,GACX;AACjB,QAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC;AACzC,MAAI,UAAU,EAAG,QAAO,CAAA;AAExB,QAAM,aAAa,KAAK,IAAI,GAAG,MAAM,QAAQ,cAAc,GAAG,CAAC,CAAC;AAChE,QAAM,WAAW,KAAK,IAAI,GAAG,MAAM,QAAQ,YAAY,GAAG,CAAC,CAAC;AAC5D,QAAM,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,MAAM,SAAS,CAAC,CAAC,GAAG,KAAK;AAM3D,MAAI,SAAS,aAAa,IAAI,WAAW,IAAI,EAAG,QAAO,MAAM,GAAG,KAAK;AAErE,QAAM,aAAa,MAAM,GAAG,KAAK,IAAI,YAAY,KAAK,CAAC;AACvD,QAAM,WAAW;AAAA,IACf,KAAK,IAAI,QAAQ,aAAa,GAAG,aAAa,CAAC;AAAA,IAC/C;AAAA,EAAA;AAIF,QAAM,gBAAgB,KAAK;AAAA,IACzB,KAAK,IAAI,OAAO,UAAU,QAAQ,aAAa,WAAW,IAAI,CAAC;AAAA,IAC/D,aAAa;AAAA,EAAA;AAEf,QAAM,cAAc,KAAK;AAAA,IACvB,KAAK,IAAI,OAAO,UAAU,aAAa,WAAW,IAAI,CAAC;AAAA,IACvD,SAAS,SAAS,IAAI,SAAS,CAAC,IAAI,IAAI,QAAQ;AAAA,EAAA;AAGlD,QAAM,QAAyB,CAAC,GAAG,UAAU;AAG7C,MAAI,gBAAgB,aAAa,EAAG,OAAM,KAAK,UAAU;AAAA,WAChD,aAAa,IAAI,QAAQ,WAAY,OAAM,KAAK,aAAa,CAAC;AAEvE,QAAM,KAAK,GAAG,MAAM,eAAe,WAAW,CAAC;AAE/C,MAAI,cAAc,QAAQ,aAAa,EAAG,OAAM,KAAK,UAAU;AAAA,WACtD,QAAQ,aAAa,WAAY,OAAM,KAAK,QAAQ,UAAU;AAEvE,QAAM,KAAK,GAAG,QAAQ;AACtB,SAAO;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/input.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"input.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/input.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,QAAQ,EAAE,YA4OtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderlist.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/orderlist.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"orderlist.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/orderlist.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,YAsH1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/table.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"table.doc.d.ts","sourceRoot":"","sources":["../../../src/docs/componentes/table.doc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,QAAQ,EAAE,YAkUtB,CAAC"}
|