@wrrdev/fenix-ui 1.1.13 → 1.1.15
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 +6 -5
- package/dist/components/autocomplete/autocomplete.d.ts +11 -5
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/autocomplete.js +18 -2
- package/dist/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/components/button/button.d.ts +15 -0
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +20 -1
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +20 -4
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +39 -2
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/datepicker/datepicker.d.ts +16 -2
- package/dist/components/datepicker/datepicker.d.ts.map +1 -1
- package/dist/components/datepicker/datepicker.js +46 -2
- package/dist/components/datepicker/datepicker.js.map +1 -1
- package/dist/components/editor/commands.d.ts +27 -0
- package/dist/components/editor/commands.d.ts.map +1 -0
- package/dist/components/editor/commands.js +235 -0
- package/dist/components/editor/commands.js.map +1 -0
- package/dist/components/editor/editor.d.ts +83 -0
- package/dist/components/editor/editor.d.ts.map +1 -0
- package/dist/components/editor/editor.js +1951 -0
- package/dist/components/editor/editor.js.map +1 -0
- package/dist/components/editor/index.d.ts +12 -0
- package/dist/components/editor/index.d.ts.map +1 -0
- package/dist/components/editor/index.js +7 -0
- package/dist/components/editor/index.js.map +1 -0
- package/dist/components/editor/normalize-html.d.ts +33 -0
- package/dist/components/editor/normalize-html.d.ts.map +1 -0
- package/dist/components/editor/normalize-html.js +316 -0
- package/dist/components/editor/normalize-html.js.map +1 -0
- package/dist/components/editor/sanitize-html.d.ts +37 -0
- package/dist/components/editor/sanitize-html.d.ts.map +1 -0
- package/dist/components/editor/sanitize-html.js +247 -0
- package/dist/components/editor/sanitize-html.js.map +1 -0
- package/dist/components/editor/schema.d.ts +36 -0
- package/dist/components/editor/schema.d.ts.map +1 -0
- package/dist/components/editor/schema.js +232 -0
- package/dist/components/editor/schema.js.map +1 -0
- package/dist/components/editor/selection.d.ts +22 -0
- package/dist/components/editor/selection.d.ts.map +1 -0
- package/dist/components/editor/selection.js +97 -0
- package/dist/components/editor/selection.js.map +1 -0
- package/dist/components/editor/styles.d.ts +10 -0
- package/dist/components/editor/styles.d.ts.map +1 -0
- package/dist/components/editor/styles.js +446 -0
- package/dist/components/editor/styles.js.map +1 -0
- package/dist/components/editor/table-utils.d.ts +33 -0
- package/dist/components/editor/table-utils.d.ts.map +1 -0
- package/dist/components/editor/table-utils.js +150 -0
- package/dist/components/editor/table-utils.js.map +1 -0
- package/dist/components/fileupload/fileupload.d.ts +10 -2
- package/dist/components/fileupload/fileupload.d.ts.map +1 -1
- package/dist/components/fileupload/fileupload.js +17 -2
- package/dist/components/fileupload/fileupload.js.map +1 -1
- package/dist/components/floatlabel/floatlabel.d.ts +9 -3
- package/dist/components/floatlabel/floatlabel.d.ts.map +1 -1
- package/dist/components/floatlabel/floatlabel.js +22 -7
- package/dist/components/floatlabel/floatlabel.js.map +1 -1
- package/dist/components/input/input.d.ts +18 -7
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.js +33 -3
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/knob/knob.d.ts +7 -3
- package/dist/components/knob/knob.d.ts.map +1 -1
- package/dist/components/knob/knob.js +4 -2
- package/dist/components/knob/knob.js.map +1 -1
- package/dist/components/multiselect/multiselect.d.ts +13 -3
- package/dist/components/multiselect/multiselect.d.ts.map +1 -1
- package/dist/components/multiselect/multiselect.js +27 -2
- package/dist/components/multiselect/multiselect.js.map +1 -1
- package/dist/components/radio/radio.d.ts +27 -4
- package/dist/components/radio/radio.d.ts.map +1 -1
- package/dist/components/radio/radio.js +67 -8
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/rating/rating.d.ts +8 -4
- package/dist/components/rating/rating.d.ts.map +1 -1
- package/dist/components/rating/rating.js +5 -2
- package/dist/components/rating/rating.js.map +1 -1
- package/dist/components/select/select.d.ts +9 -3
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +11 -2
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/slider/slider.d.ts +12 -6
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slider/slider.js +10 -2
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/switch/switch.d.ts +20 -4
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +40 -2
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +12 -5
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.js +12 -2
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/toast/toast.d.ts +27 -15
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +205 -32
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle-button-group/toggle-button-group.d.ts +13 -5
- package/dist/components/toggle-button-group/toggle-button-group.d.ts.map +1 -1
- package/dist/components/toggle-button-group/toggle-button-group.js +19 -2
- package/dist/components/toggle-button-group/toggle-button-group.js.map +1 -1
- package/dist/core/base.d.ts +7 -0
- package/dist/core/base.d.ts.map +1 -1
- package/dist/core/base.js +4 -1
- package/dist/core/base.js.map +1 -1
- package/dist/core/form-element.d.ts +81 -0
- package/dist/core/form-element.d.ts.map +1 -0
- package/dist/core/form-element.js +129 -0
- package/dist/core/form-element.js.map +1 -0
- package/dist/core/jsx.d.ts +25 -1
- package/dist/core/jsx.d.ts.map +1 -1
- package/dist/core/jsx.js.map +1 -1
- package/dist/core/presets.d.ts +8 -3
- package/dist/core/presets.d.ts.map +1 -1
- package/dist/core/presets.js +6 -17
- package/dist/core/presets.js.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/vue.d.ts +3 -1
- package/dist/core/vue.d.ts.map +1 -1
- package/dist/core/vue.js.map +1 -1
- package/dist/docs/app.d.ts.map +1 -1
- package/dist/docs/componentes/autocomplete.doc.d.ts.map +1 -1
- package/dist/docs/componentes/checkbox.doc.d.ts.map +1 -1
- package/dist/docs/componentes/datepicker.doc.d.ts.map +1 -1
- package/dist/docs/componentes/editor.doc.d.ts +6 -0
- package/dist/docs/componentes/editor.doc.d.ts.map +1 -0
- package/dist/docs/componentes/fileupload.doc.d.ts.map +1 -1
- package/dist/docs/componentes/index.d.ts.map +1 -1
- package/dist/docs/componentes/input.doc.d.ts.map +1 -1
- package/dist/docs/componentes/knob.doc.d.ts.map +1 -1
- package/dist/docs/componentes/multiselect.doc.d.ts.map +1 -1
- package/dist/docs/componentes/rating.doc.d.ts.map +1 -1
- package/dist/docs/componentes/select.doc.d.ts.map +1 -1
- package/dist/docs/componentes/slider.doc.d.ts.map +1 -1
- package/dist/docs/componentes/switch.doc.d.ts.map +1 -1
- package/dist/docs/componentes/textarea.doc.d.ts.map +1 -1
- package/dist/docs/componentes/toast.doc.d.ts.map +1 -1
- package/dist/docs/componentes/toggle-button-group.doc.d.ts.map +1 -1
- package/dist/docs/frameworks.d.ts +75 -0
- package/dist/docs/frameworks.d.ts.map +1 -0
- package/dist/docs/ui/code.d.ts +4 -0
- package/dist/docs/ui/code.d.ts.map +1 -1
- package/dist/fenix-ui.umd.min.js +786 -254
- package/dist/fenix-ui2.esm.js.map +1 -1
- package/dist/fenix-ui4.esm.js +4396 -172
- package/dist/fenix-ui4.esm.js.map +1 -1
- package/dist/fenix-ui5.esm.js +1 -0
- package/dist/fenix-ui5.esm.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/auto-import.d.ts.map +1 -1
- package/dist/plugins/auto-import.js +1 -0
- package/dist/plugins/auto-import.js.map +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-button-group.js","sources":["../../../src/components/toggle-button-group/toggle-button-group.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"toggle-button-group.js","sources":["../../../src/components/toggle-button-group/toggle-button-group.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-toggle-button-group> — Grupo de botones de selección múltiple o única.\n *\n * Form-Associated Custom Element: dentro de un <form> entra en el FormData\n * con UNA entrada por valor seleccionado (via atributo `name`).\n *\n * Atributos: multiple (permite varios seleccionados), value (lista), name,\n * size. Slots `option`: cada botón con [slot=\"option\" value=\"...\"].\n * Eventos (composed): `change` (detail: { value: string[] }) e `valuesChange`\n * (detail: { values: string[] }, two-way binding do Angular [(value)]).\n */\nexport class FxToggleButtonGroup extends FxFormElement {\n static override styles = css`\n :host { display: inline-flex; font-family: var(--fx-font-family); font-size: var(--fx-font-size); gap: var(--fx-space-xs); }\n .option {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--fx-space-xs);\n min-height: var(--fx-size-md);\n padding: var(--fx-space-sm) var(--fx-space-lg);\n font-weight: var(--fx-font-weight);\n /* Altura determinística: a caixa fica EXATAMENTE no token --fx-size-*. */\n line-height: var(--fx-font-line-height);\n color: var(--fx-text-default);\n background: var(--fx-surface-background);\n border: 1px solid var(--fx-border-default);\n border-radius: var(--fx-radius-md);\n cursor: pointer;\n user-select: none;\n transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), border-color var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);\n }\n :host([size='sm']) .option { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-md); font-size: calc(var(--fx-font-size) - 2px); }\n :host([size='lg']) .option { min-height: var(--fx-size-lg); padding: var(--fx-space-sm) var(--fx-space-xl); font-size: calc(var(--fx-font-size) + 2px); }\n .option:hover { border-color: var(--fx-color-primary); }\n .option.active {\n background: var(--fx-color-primary);\n border-color: var(--fx-color-primary);\n color: #fff;\n }\n .option.active:hover { filter: brightness(0.92); }\n `;\n\n static override get observedAttributes(): string[] {\n return ['multiple', 'size'];\n }\n\n get value(): string[] {\n const raw = this.getAttr('value');\n return raw ? raw.split(',').map((s) => s.trim()).filter(Boolean) : [];\n }\n set value(v: string[]) {\n this.setAttribute('value', v.join(','));\n // `value` não é observado: publica no form aqui.\n this.updateFormValue();\n }\n\n get multiple(): boolean { return this.hasAttr('multiple'); }\n\n /** No FormData do form: uma entrada `name` por valor selecionado. */\n protected override getFormValue(): string | FormData | null {\n const values = this.value;\n if (!this.name || values.length === 0) return null;\n const fd = new FormData();\n values.forEach((v) => fd.append(this.name, v));\n return fd;\n }\n\n get options(): HTMLElement[] {\n return Array.from(this.children).filter((el) => el.matches('[slot=\"option\"]')).map((el) => el as HTMLElement);\n }\n\n protected override render(): void {\n const opts = this.options;\n const selected = this.value;\n\n const html = opts\n .map((o, i) => {\n const val = o.getAttribute('value') ?? '';\n const active = selected.includes(val);\n return `<button type=\"button\" class=\"option ${active ? 'active' : ''}\" part=\"option\" data-v=\"${esc(val)}\" aria-pressed=\"${active}\">${esc(o.textContent?.trim() || `Opción ${i + 1}`)}</button>`;\n })\n .join('');\n\n this.setTemplate(`\n <div class=\"options\" part=\"options\" role=\"group\" aria-label=\"Toggle buttons\">\n ${html}\n </div>\n `);\n\n this._bindOptions();\n\n // Publica name/value no form (ElementInternals) a cada render.\n this.updateFormValue();\n }\n\n /** form.reset(): restaura a seleção inicial e re-renderiza os botões. */\n override formResetCallback(): void {\n this.setAttribute('value', this._initialValue);\n this.render();\n this.updateFormValue();\n }\n\n private _bindOptions(): void {\n Array.from(this.root.querySelectorAll<HTMLElement>('.option') || []).forEach((opt) => {\n opt.addEventListener('click', () => this._toggle(opt));\n opt.addEventListener('keydown', (e) => {\n const ev = e as KeyboardEvent;\n if (ev.key === 'Enter' || ev.key === ' ') {\n ev.preventDefault();\n this._toggle(opt);\n }\n });\n });\n }\n\n private _toggle(opt: HTMLElement): void {\n const val = opt.dataset.v ?? '';\n let current = this.value;\n\n if (this.multiple) {\n if (current.includes(val)) current = current.filter((v) => v !== val);\n else current.push(val);\n } else {\n current = current.includes(val) ? [] : [val];\n }\n\n this.value = current;\n this.root.querySelectorAll<HTMLElement>('.option').forEach((o) => {\n const on = current.includes(o.dataset.v ?? '');\n o.classList.toggle('active', on);\n o.setAttribute('aria-pressed', String(on));\n });\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { value: current } }));\n // Two-way binding do Angular: [(value)] em seleção múltipla → valuesChange.\n this.dispatchEvent(new CustomEvent('valuesChange', { bubbles: true, composed: true, detail: { values: [...current] } }));\n }\n}\n\nexport function defineFxToggleButtonGroup(): typeof FxToggleButtonGroup {\n return defineElement('fx-toggle-button-group', FxToggleButtonGroup);\n}"],"names":[],"mappings":"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"}
|
package/dist/core/base.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export declare abstract class FxElement extends HTMLElement {
|
|
|
10
10
|
/** CSS isolado no Shadow DOM. Deve usar apenas `var(--fx-*)`. */
|
|
11
11
|
static styles: string;
|
|
12
12
|
static get observedAttributes(): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Opções do `attachShadow` — sobrescreva por componente quando precisar.
|
|
15
|
+
* `delegatesFocus` (usado pelos componentes de formulário, via FxFormElement)
|
|
16
|
+
* faz `focus()`, `autofocus` e o clique em `<label for>` atingirem o
|
|
17
|
+
* controle interno do Shadow DOM, e não só o host.
|
|
18
|
+
*/
|
|
19
|
+
static shadowOptions: ShadowRootInit;
|
|
13
20
|
protected readonly root: ShadowRoot;
|
|
14
21
|
constructor();
|
|
15
22
|
/** Chamado quando um atributo observado muda. */
|
package/dist/core/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAAsB,SAAU,SAAQ,WAAW;IACjD,iEAAiE;IACjE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAE3B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAAsB,SAAU,SAAQ,WAAW;IACjD,iEAAiE;IACjE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAE3B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,cAAc,CAAoB;IAExD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;;IASpC,iDAAiD;IACjD,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI3G,kDAAkD;IAClD,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,yEAAyE;IACzE,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM;IAItD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAKrD,iDAAiD;IACjD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzC,wCAAwC;IACxC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI;CAClC"}
|
package/dist/core/base.js
CHANGED
|
@@ -4,7 +4,9 @@ const _FxElement = class _FxElement extends HTMLElement {
|
|
|
4
4
|
}
|
|
5
5
|
constructor() {
|
|
6
6
|
super();
|
|
7
|
-
this.root = this.attachShadow(
|
|
7
|
+
this.root = this.attachShadow(
|
|
8
|
+
this.constructor.shadowOptions
|
|
9
|
+
);
|
|
8
10
|
}
|
|
9
11
|
/** Chamado quando um atributo observado muda. */
|
|
10
12
|
attributeChangedCallback(_name, _oldValue, _newValue) {
|
|
@@ -34,6 +36,7 @@ const _FxElement = class _FxElement extends HTMLElement {
|
|
|
34
36
|
}
|
|
35
37
|
};
|
|
36
38
|
_FxElement.styles = "";
|
|
39
|
+
_FxElement.shadowOptions = { mode: "open" };
|
|
37
40
|
let FxElement = _FxElement;
|
|
38
41
|
export {
|
|
39
42
|
FxElement
|
package/dist/core/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../src/core/base.ts"],"sourcesContent":["/**\n * Infraestrutura base de Web Component do FenixUI.\n *\n * Todo componente estende `FxElement`, que:\n * - cria o Shadow Root (isolamento de estrutura e CSS);\n * - injeta o CSS (tokens via `var(--fx-*)`) + template em cada render;\n * - re-renderiza quando atributos observados mudam.\n */\n\nexport abstract class FxElement extends HTMLElement {\n /** CSS isolado no Shadow DOM. Deve usar apenas `var(--fx-*)`. */\n static styles: string = '';\n\n static get observedAttributes(): string[] {\n return [];\n }\n\n protected readonly root: ShadowRoot;\n\n constructor() {\n super();\n this.root = this.attachShadow(
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/core/base.ts"],"sourcesContent":["/**\n * Infraestrutura base de Web Component do FenixUI.\n *\n * Todo componente estende `FxElement`, que:\n * - cria o Shadow Root (isolamento de estrutura e CSS);\n * - injeta o CSS (tokens via `var(--fx-*)`) + template em cada render;\n * - re-renderiza quando atributos observados mudam.\n */\n\nexport abstract class FxElement extends HTMLElement {\n /** CSS isolado no Shadow DOM. Deve usar apenas `var(--fx-*)`. */\n static styles: string = '';\n\n static get observedAttributes(): string[] {\n return [];\n }\n\n /**\n * Opções do `attachShadow` — sobrescreva por componente quando precisar.\n * `delegatesFocus` (usado pelos componentes de formulário, via FxFormElement)\n * faz `focus()`, `autofocus` e o clique em `<label for>` atingirem o\n * controle interno do Shadow DOM, e não só o host.\n */\n static shadowOptions: ShadowRootInit = { mode: 'open' };\n\n protected readonly root: ShadowRoot;\n\n constructor() {\n super();\n this.root = this.attachShadow(\n (this.constructor as typeof FxElement).shadowOptions,\n );\n }\n\n /** Chamado quando um atributo observado muda. */\n protected attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null): void {\n if (this.isConnected) this.render();\n }\n\n /** Chamado quando o elemento é anexado ao DOM. */\n protected connectedCallback(): void {\n this.render();\n }\n\n /** Chamado quando o elemento é removido do DOM (limpeza de recursos). */\n protected disconnectedCallback(): void {\n /* noop — sobrescreva para limpar observers/listeners. */\n }\n\n protected hasAttr(name: string): boolean {\n return this.hasAttribute(name);\n }\n\n protected getAttr(name: string, fallback = ''): string {\n return this.getAttribute(name) ?? fallback;\n }\n\n protected toggleAttr(name: string, on: boolean): void {\n if (on) this.setAttribute(name, '');\n else this.removeAttribute(name);\n }\n\n /** Injeta `<style>` + template no Shadow DOM. */\n protected setTemplate(html: string): void {\n const styles = (this.constructor as typeof FxElement).styles;\n this.root.innerHTML = `<style>${styles}</style>${html}`;\n }\n\n /** Implementado por cada componente. */\n protected abstract render(): void;\n}"],"names":[],"mappings":"AASO,MAAe,aAAf,MAAe,mBAAkB,YAAY;AAAA,EAIlD,WAAW,qBAA+B;AACxC,WAAO,CAAA;AAAA,EACT;AAAA,EAYA,cAAc;AACZ,UAAA;AACA,SAAK,OAAO,KAAK;AAAA,MACd,KAAK,YAAiC;AAAA,IAAA;AAAA,EAE3C;AAAA;AAAA,EAGU,yBAAyB,OAAe,WAA0B,WAAgC;AAC1G,QAAI,KAAK,YAAa,MAAK,OAAA;AAAA,EAC7B;AAAA;AAAA,EAGU,oBAA0B;AAClC,SAAK,OAAA;AAAA,EACP;AAAA;AAAA,EAGU,uBAA6B;AAAA,EAEvC;AAAA,EAEU,QAAQ,MAAuB;AACvC,WAAO,KAAK,aAAa,IAAI;AAAA,EAC/B;AAAA,EAEU,QAAQ,MAAc,WAAW,IAAY;AACrD,WAAO,KAAK,aAAa,IAAI,KAAK;AAAA,EACpC;AAAA,EAEU,WAAW,MAAc,IAAmB;AACpD,QAAI,GAAI,MAAK,aAAa,MAAM,EAAE;AAAA,QAC7B,MAAK,gBAAgB,IAAI;AAAA,EAChC;AAAA;AAAA,EAGU,YAAY,MAAoB;AACxC,UAAM,SAAU,KAAK,YAAiC;AACtD,SAAK,KAAK,YAAY,UAAU,MAAM,WAAW,IAAI;AAAA,EACvD;AAIF;AA3DE,WAAO,SAAiB;AAYxB,WAAO,gBAAgC,EAAE,MAAM,OAAA;AAd1C,IAAe,YAAf;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base dos componentes de formulário — Form-Associated Custom Element.
|
|
3
|
+
*
|
|
4
|
+
* Por que ela existe: um `<input>` interno do Shadow DOM **não se associa** ao
|
|
5
|
+
* `<form>` do light DOM (a associação por árvore não cruza a fronteira do
|
|
6
|
+
* shadow). Sem `formAssociated: true` + `ElementInternals`, o componente fica
|
|
7
|
+
* invisível para o form: `new FormData(form)` não o inclui, Enter não submete,
|
|
8
|
+
* `form.elements`/validação/`reset` não o enxergam e `<label for>` não o foca.
|
|
9
|
+
*
|
|
10
|
+
* O que esta base entrega:
|
|
11
|
+
* - `static formAssociated = true` → o HOST vira campo do form (entra em
|
|
12
|
+
* `form.elements`, `FormData`, `checkValidity`, `reset`, e é labelable);
|
|
13
|
+
* - `delegatesFocus: true` → `focus()`, `autofocus` e clique em
|
|
14
|
+
* `<label for="idDoHost">` focam o controle interno;
|
|
15
|
+
* - `updateFormValue()` → publica `name`/`value` no form via `internals`;
|
|
16
|
+
* - `formDisabledCallback` → `<fieldset disabled>` desabilita o controle;
|
|
17
|
+
* - `formResetCallback` → `form.reset()` restaura o valor inicial;
|
|
18
|
+
* - getters nativos: `name`, `form`, `type`, `validity`, `labels`,
|
|
19
|
+
* `checkValidity()`, `reportValidity()`.
|
|
20
|
+
*/
|
|
21
|
+
import { FxElement } from './base';
|
|
22
|
+
export declare abstract class FxFormElement extends FxElement {
|
|
23
|
+
/** Participa de <form> como campo nativo (FormData, reset, validação, label). */
|
|
24
|
+
static formAssociated: boolean;
|
|
25
|
+
/** focus()/autofocus/<label for> atingem o controle interno do Shadow DOM. */
|
|
26
|
+
static shadowOptions: ShadowRootInit;
|
|
27
|
+
protected readonly internals: ElementInternals | null;
|
|
28
|
+
/** Valor do atributo `value` quando o componente entrou no form (reset). */
|
|
29
|
+
protected _initialValue: string;
|
|
30
|
+
private _initialCaptured;
|
|
31
|
+
private _autofocused;
|
|
32
|
+
constructor();
|
|
33
|
+
/** Nome do campo no FormData (atributo `name`, como no nativo). */
|
|
34
|
+
get name(): string;
|
|
35
|
+
/** Form ao qual o componente está associado (null se fora de um form). */
|
|
36
|
+
get form(): HTMLFormElement | null;
|
|
37
|
+
get type(): string;
|
|
38
|
+
get willValidate(): boolean;
|
|
39
|
+
get validity(): ValidityState | null;
|
|
40
|
+
get validationMessage(): string;
|
|
41
|
+
get labels(): NodeList;
|
|
42
|
+
checkValidity(): boolean;
|
|
43
|
+
reportValidity(): boolean;
|
|
44
|
+
protected connectedCallback(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Foca o controle interno: primeiro o HOST (com `delegatesFocus` o browser
|
|
47
|
+
* repassa ao controle interno) e, se nada for focado (ex.: ambientes sem
|
|
48
|
+
* delegatesFocus, como jsdom nos testes), o primeiro focável do shadow.
|
|
49
|
+
*/
|
|
50
|
+
private focusInnerControl;
|
|
51
|
+
/**
|
|
52
|
+
* Valor publicado no FormData. Sobrescreva quando o valor NÃO é o atributo
|
|
53
|
+
* `value` (checkbox/switch enviariam `value || 'on'` quando marcados,
|
|
54
|
+
* seleção múltipla enviaria várias entradas, fileupload enviaria arquivos).
|
|
55
|
+
*/
|
|
56
|
+
protected getFormValue(): string | FormData | null;
|
|
57
|
+
/**
|
|
58
|
+
* Sincroniza o campo interno, publica name/value no form (ElementInternals)
|
|
59
|
+
* e emite `input` (v-model do Vue) + `valueChange` ([(value)] do Angular).
|
|
60
|
+
*
|
|
61
|
+
* Chame quando o valor mudar — junto do evento semântico (`change`,
|
|
62
|
+
* `select`, ...) que o componente já dispara. `detail` opcional complementa
|
|
63
|
+
* o payload (ex.: { start, end } do fx-datepicker).
|
|
64
|
+
*/
|
|
65
|
+
protected emitValueEvents(detail?: Record<string, unknown>): void;
|
|
66
|
+
/** Sincroniza name/value com o form (ElementInternals). */
|
|
67
|
+
protected updateFormValue(): void;
|
|
68
|
+
/**
|
|
69
|
+
* <form disabled>/<fieldset disabled>: espelha no atributo `disabled`
|
|
70
|
+
* observado — o re-render desabilita o controle interno.
|
|
71
|
+
*/
|
|
72
|
+
formDisabledCallback(disabled: boolean): void;
|
|
73
|
+
/** form.reset(): restaura o valor inicial e sincroniza o campo interno. */
|
|
74
|
+
formResetCallback(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Hook: empurra o valor atual do atributo `value` para o controle interno
|
|
77
|
+
* SEM re-renderizar (componentes com campo nativo interno sobrescrevem).
|
|
78
|
+
*/
|
|
79
|
+
protected syncInternalControl(): void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=form-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-element.d.ts","sourceRoot":"","sources":["../../src/core/form-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,8BAAsB,aAAc,SAAQ,SAAS;IACnD,iFAAiF;IACjF,MAAM,CAAC,cAAc,UAAQ;IAC7B,8EAA8E;IAC9E,OAAgB,aAAa,EAAE,cAAc,CAG3C;IAEF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtD,4EAA4E;IAC5E,SAAS,CAAC,aAAa,SAAM;IAC7B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAS;;IAU7B,mEAAmE;IACnE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0EAA0E;IAC1E,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAIjC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,QAAQ,IAAI,aAAa,GAAG,IAAI,CAEnC;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,MAAM,IAAI,QAAQ,CAErB;IAED,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;cAIN,iBAAiB,IAAI,IAAI;IAkB5C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIlD;;;;;;;OAOG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBjE,2DAA2D;IAC3D,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAK7C,2EAA2E;IAC3E,iBAAiB,IAAI,IAAI;IAMzB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;CAGtC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { FxElement } from "./base.js";
|
|
2
|
+
const _FxFormElement = class _FxFormElement extends FxElement {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
5
|
+
this._initialValue = "";
|
|
6
|
+
this._initialCaptured = false;
|
|
7
|
+
this._autofocused = false;
|
|
8
|
+
this.internals = typeof this.attachInternals === "function" ? this.attachInternals() : null;
|
|
9
|
+
}
|
|
10
|
+
/** Nome do campo no FormData (atributo `name`, como no nativo). */
|
|
11
|
+
get name() {
|
|
12
|
+
return this.getAttribute("name") ?? "";
|
|
13
|
+
}
|
|
14
|
+
/** Form ao qual o componente está associado (null se fora de um form). */
|
|
15
|
+
get form() {
|
|
16
|
+
return this.internals?.form ?? this.closest("form");
|
|
17
|
+
}
|
|
18
|
+
get type() {
|
|
19
|
+
return this.localName;
|
|
20
|
+
}
|
|
21
|
+
get willValidate() {
|
|
22
|
+
return this.internals?.willValidate ?? false;
|
|
23
|
+
}
|
|
24
|
+
get validity() {
|
|
25
|
+
return this.internals?.validity ?? null;
|
|
26
|
+
}
|
|
27
|
+
get validationMessage() {
|
|
28
|
+
return this.internals?.validationMessage ?? "";
|
|
29
|
+
}
|
|
30
|
+
get labels() {
|
|
31
|
+
return this.internals?.labels ?? this.childNodes;
|
|
32
|
+
}
|
|
33
|
+
checkValidity() {
|
|
34
|
+
return this.internals?.checkValidity?.() ?? true;
|
|
35
|
+
}
|
|
36
|
+
reportValidity() {
|
|
37
|
+
return this.internals?.reportValidity?.() ?? true;
|
|
38
|
+
}
|
|
39
|
+
connectedCallback() {
|
|
40
|
+
super.connectedCallback();
|
|
41
|
+
if (!this._initialCaptured) {
|
|
42
|
+
this._initialCaptured = true;
|
|
43
|
+
this._initialValue = this.getAttr("value");
|
|
44
|
+
}
|
|
45
|
+
this.updateFormValue();
|
|
46
|
+
if (!this._autofocused && this.hasAttr("autofocus")) {
|
|
47
|
+
this._autofocused = true;
|
|
48
|
+
queueMicrotask(() => {
|
|
49
|
+
if (this.isConnected && this.hasAttr("autofocus")) this.focusInnerControl();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Foca o controle interno: primeiro o HOST (com `delegatesFocus` o browser
|
|
55
|
+
* repassa ao controle interno) e, se nada for focado (ex.: ambientes sem
|
|
56
|
+
* delegatesFocus, como jsdom nos testes), o primeiro focável do shadow.
|
|
57
|
+
*/
|
|
58
|
+
focusInnerControl() {
|
|
59
|
+
this.focus();
|
|
60
|
+
if (!this.root.activeElement) {
|
|
61
|
+
const first = this.root.querySelector(
|
|
62
|
+
'input, textarea, button, select, [tabindex]:not([tabindex="-1"])'
|
|
63
|
+
);
|
|
64
|
+
first?.focus();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Valor publicado no FormData. Sobrescreva quando o valor NÃO é o atributo
|
|
69
|
+
* `value` (checkbox/switch enviariam `value || 'on'` quando marcados,
|
|
70
|
+
* seleção múltipla enviaria várias entradas, fileupload enviaria arquivos).
|
|
71
|
+
*/
|
|
72
|
+
getFormValue() {
|
|
73
|
+
return this.getAttr("value") || null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sincroniza o campo interno, publica name/value no form (ElementInternals)
|
|
77
|
+
* e emite `input` (v-model do Vue) + `valueChange` ([(value)] do Angular).
|
|
78
|
+
*
|
|
79
|
+
* Chame quando o valor mudar — junto do evento semântico (`change`,
|
|
80
|
+
* `select`, ...) que o componente já dispara. `detail` opcional complementa
|
|
81
|
+
* o payload (ex.: { start, end } do fx-datepicker).
|
|
82
|
+
*/
|
|
83
|
+
emitValueEvents(detail) {
|
|
84
|
+
const value = this.getAttr("value");
|
|
85
|
+
this.syncInternalControl();
|
|
86
|
+
this.updateFormValue();
|
|
87
|
+
const payload = { value, ...detail };
|
|
88
|
+
for (const type of ["input", "valueChange"]) {
|
|
89
|
+
this.dispatchEvent(
|
|
90
|
+
new CustomEvent(type, { bubbles: true, composed: true, detail: payload })
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Sincroniza name/value com o form (ElementInternals). */
|
|
95
|
+
updateFormValue() {
|
|
96
|
+
if (!this.internals || typeof this.internals.setFormValue !== "function") return;
|
|
97
|
+
this.internals.setFormValue(this.getFormValue());
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* <form disabled>/<fieldset disabled>: espelha no atributo `disabled`
|
|
101
|
+
* observado — o re-render desabilita o controle interno.
|
|
102
|
+
*/
|
|
103
|
+
formDisabledCallback(disabled) {
|
|
104
|
+
if (disabled) this.setAttribute("disabled", "");
|
|
105
|
+
else this.removeAttribute("disabled");
|
|
106
|
+
}
|
|
107
|
+
/** form.reset(): restaura o valor inicial e sincroniza o campo interno. */
|
|
108
|
+
formResetCallback() {
|
|
109
|
+
this.setAttribute("value", this._initialValue);
|
|
110
|
+
this.syncInternalControl();
|
|
111
|
+
this.updateFormValue();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Hook: empurra o valor atual do atributo `value` para o controle interno
|
|
115
|
+
* SEM re-renderizar (componentes com campo nativo interno sobrescrevem).
|
|
116
|
+
*/
|
|
117
|
+
syncInternalControl() {
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
_FxFormElement.formAssociated = true;
|
|
121
|
+
_FxFormElement.shadowOptions = {
|
|
122
|
+
mode: "open",
|
|
123
|
+
delegatesFocus: true
|
|
124
|
+
};
|
|
125
|
+
let FxFormElement = _FxFormElement;
|
|
126
|
+
export {
|
|
127
|
+
FxFormElement
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=form-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-element.js","sources":["../../src/core/form-element.ts"],"sourcesContent":["/**\n * Base dos componentes de formulário — Form-Associated Custom Element.\n *\n * Por que ela existe: um `<input>` interno do Shadow DOM **não se associa** ao\n * `<form>` do light DOM (a associação por árvore não cruza a fronteira do\n * shadow). Sem `formAssociated: true` + `ElementInternals`, o componente fica\n * invisível para o form: `new FormData(form)` não o inclui, Enter não submete,\n * `form.elements`/validação/`reset` não o enxergam e `<label for>` não o foca.\n *\n * O que esta base entrega:\n * - `static formAssociated = true` → o HOST vira campo do form (entra em\n * `form.elements`, `FormData`, `checkValidity`, `reset`, e é labelable);\n * - `delegatesFocus: true` → `focus()`, `autofocus` e clique em\n * `<label for=\"idDoHost\">` focam o controle interno;\n * - `updateFormValue()` → publica `name`/`value` no form via `internals`;\n * - `formDisabledCallback` → `<fieldset disabled>` desabilita o controle;\n * - `formResetCallback` → `form.reset()` restaura o valor inicial;\n * - getters nativos: `name`, `form`, `type`, `validity`, `labels`,\n * `checkValidity()`, `reportValidity()`.\n */\n\nimport { FxElement } from './base';\n\nexport abstract class FxFormElement extends FxElement {\n /** Participa de <form> como campo nativo (FormData, reset, validação, label). */\n static formAssociated = true;\n /** focus()/autofocus/<label for> atingem o controle interno do Shadow DOM. */\n static override shadowOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n protected readonly internals: ElementInternals | null;\n /** Valor do atributo `value` quando o componente entrou no form (reset). */\n protected _initialValue = '';\n private _initialCaptured = false;\n private _autofocused = false;\n\n constructor() {\n super();\n // Ambientes sem ElementInternals (ex.: jsdom nos testes) funcionam sem a\n // integração nativa de form — tudo aqui é defensivo.\n this.internals =\n typeof this.attachInternals === 'function' ? this.attachInternals() : null;\n }\n\n /** Nome do campo no FormData (atributo `name`, como no nativo). */\n get name(): string {\n return this.getAttribute('name') ?? '';\n }\n\n /** Form ao qual o componente está associado (null se fora de um form). */\n get form(): HTMLFormElement | null {\n return (\n this.internals?.form ?? (this.closest('form') as HTMLFormElement | null)\n );\n }\n\n get type(): string {\n return this.localName;\n }\n\n get willValidate(): boolean {\n return this.internals?.willValidate ?? false;\n }\n\n get validity(): ValidityState | null {\n return this.internals?.validity ?? null;\n }\n\n get validationMessage(): string {\n return this.internals?.validationMessage ?? '';\n }\n\n get labels(): NodeList {\n return this.internals?.labels ?? this.childNodes;\n }\n\n checkValidity(): boolean {\n return this.internals?.checkValidity?.() ?? true;\n }\n\n reportValidity(): boolean {\n return this.internals?.reportValidity?.() ?? true;\n }\n\n protected override connectedCallback(): void {\n super.connectedCallback(); // render inicial\n if (!this._initialCaptured) {\n this._initialCaptured = true;\n this._initialValue = this.getAttr('value');\n }\n this.updateFormValue();\n // autofocus: nem todo browser foca form-associated custom elements (em\n // especial dentro de shadow DOM do app consumidor) — garante aqui. O\n // delegatesFocus leva o foco ao controle interno.\n if (!this._autofocused && this.hasAttr('autofocus')) {\n this._autofocused = true;\n queueMicrotask(() => {\n if (this.isConnected && this.hasAttr('autofocus')) this.focusInnerControl();\n });\n }\n }\n\n /**\n * Foca o controle interno: primeiro o HOST (com `delegatesFocus` o browser\n * repassa ao controle interno) e, se nada for focado (ex.: ambientes sem\n * delegatesFocus, como jsdom nos testes), o primeiro focável do shadow.\n */\n private focusInnerControl(): void {\n this.focus();\n if (!this.root.activeElement) {\n const first = this.root.querySelector<HTMLElement>(\n 'input, textarea, button, select, [tabindex]:not([tabindex=\"-1\"])',\n );\n first?.focus();\n }\n }\n\n /**\n * Valor publicado no FormData. Sobrescreva quando o valor NÃO é o atributo\n * `value` (checkbox/switch enviariam `value || 'on'` quando marcados,\n * seleção múltipla enviaria várias entradas, fileupload enviaria arquivos).\n */\n protected getFormValue(): string | FormData | null {\n return this.getAttr('value') || null;\n }\n\n /**\n * Sincroniza o campo interno, publica name/value no form (ElementInternals)\n * e emite `input` (v-model do Vue) + `valueChange` ([(value)] do Angular).\n *\n * Chame quando o valor mudar — junto do evento semântico (`change`,\n * `select`, ...) que o componente já dispara. `detail` opcional complementa\n * o payload (ex.: { start, end } do fx-datepicker).\n */\n protected emitValueEvents(detail?: Record<string, unknown>): void {\n const value = this.getAttr('value');\n\n // Empurra o valor para o controle interno SEM re-renderizar (hook —\n // componentes com máscara/campo customizado sobrescrevem).\n this.syncInternalControl();\n this.updateFormValue();\n\n const payload = { value, ...detail };\n for (const type of ['input', 'valueChange'] as const) {\n this.dispatchEvent(\n new CustomEvent(type, { bubbles: true, composed: true, detail: payload }),\n );\n }\n }\n\n /** Sincroniza name/value com o form (ElementInternals). */\n protected updateFormValue(): void {\n if (!this.internals || typeof this.internals.setFormValue !== 'function') return;\n this.internals.setFormValue(this.getFormValue());\n }\n\n /**\n * <form disabled>/<fieldset disabled>: espelha no atributo `disabled`\n * observado — o re-render desabilita o controle interno.\n */\n formDisabledCallback(disabled: boolean): void {\n if (disabled) this.setAttribute('disabled', '');\n else this.removeAttribute('disabled');\n }\n\n /** form.reset(): restaura o valor inicial e sincroniza o campo interno. */\n formResetCallback(): void {\n this.setAttribute('value', this._initialValue);\n this.syncInternalControl();\n this.updateFormValue();\n }\n\n /**\n * Hook: empurra o valor atual do atributo `value` para o controle interno\n * SEM re-renderizar (componentes com campo nativo interno sobrescrevem).\n */\n protected syncInternalControl(): void {\n /* opcional */\n }\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' | '
|
|
24
|
+
export type FxInputType = 'text' | 'number' | 'password';
|
|
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';
|
|
@@ -50,6 +50,8 @@ export type FxPopoverPosition = 'auto' | 'top' | 'bottom';
|
|
|
50
50
|
export type FxMenuOrientation = 'horizontal' | 'vertical';
|
|
51
51
|
export type FxTimelineOrientation = 'vertical' | 'horizontal';
|
|
52
52
|
export type FxSelectionMode = 'single' | 'multiple';
|
|
53
|
+
export type FxEditorToolbar = 'minimal' | 'basic' | 'standard' | 'full' | 'none';
|
|
54
|
+
export type FxEditorPasteMode = 'clean' | 'plain';
|
|
53
55
|
export interface FxButtonProps extends FxElementProps {
|
|
54
56
|
variant?: FxButtonVariant;
|
|
55
57
|
type?: 'button' | 'submit' | 'reset';
|
|
@@ -126,6 +128,27 @@ export interface FxTextareaProps extends FxElementProps {
|
|
|
126
128
|
success?: boolean;
|
|
127
129
|
valid?: boolean;
|
|
128
130
|
}
|
|
131
|
+
export interface FxEditorProps extends FxElementProps {
|
|
132
|
+
value?: string;
|
|
133
|
+
name?: string;
|
|
134
|
+
required?: boolean;
|
|
135
|
+
readonly?: boolean;
|
|
136
|
+
placeholder?: string;
|
|
137
|
+
toolbar?: FxEditorToolbar;
|
|
138
|
+
features?: string;
|
|
139
|
+
'paste-mode'?: FxEditorPasteMode;
|
|
140
|
+
'min-height'?: string;
|
|
141
|
+
'max-height'?: string;
|
|
142
|
+
'show-count'?: boolean;
|
|
143
|
+
maxlength?: number;
|
|
144
|
+
fullscreen?: boolean;
|
|
145
|
+
uploadImage?: (file: File) => Promise<string | {
|
|
146
|
+
url: string;
|
|
147
|
+
alt?: string;
|
|
148
|
+
width?: string;
|
|
149
|
+
}>;
|
|
150
|
+
sanitizeHtml?: (html: string) => string;
|
|
151
|
+
}
|
|
129
152
|
export interface FxMultiselectProps extends FxElementProps {
|
|
130
153
|
values?: string;
|
|
131
154
|
size?: FxSize;
|
|
@@ -536,6 +559,7 @@ export interface FxJsxIntrinsicElements {
|
|
|
536
559
|
'fx-checkbox': FxCheckboxProps;
|
|
537
560
|
'fx-radio': FxRadioProps;
|
|
538
561
|
'fx-textarea': FxTextareaProps;
|
|
562
|
+
'fx-editor': FxEditorProps;
|
|
539
563
|
'fx-multiselect': FxMultiselectProps;
|
|
540
564
|
'fx-calendar': FxCalendarProps;
|
|
541
565
|
'fx-datepicker': FxDatepickerProps;
|
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":"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,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAC9F,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;AAGpD,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,CAAC;IACf,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,kBAAmB,SAAQ,cAAc;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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,CAAC;IAChB,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,CAAC;IAChB,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,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,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"}
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../src/core/jsx.ts"],"names":[],"mappings":"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"}
|
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' | 'email' | 'password' | 'search' | 'tel' | 'url';\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';\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 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-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 = '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;"}
|
package/dist/core/presets.d.ts
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
* Presets de tema prontos para uso.
|
|
3
3
|
*
|
|
4
4
|
* Cada preset é um override parcial profundo sobre os tokens base.
|
|
5
|
-
* Combina com o modo claro/escuro: `applyPreset('
|
|
5
|
+
* Combina com o modo claro/escuro: `applyPreset('ikki', 'dark')`.
|
|
6
|
+
*
|
|
7
|
+
* `ikki` é o preset **padrão**: usa a identidade base (paleta indigo do tema
|
|
8
|
+
* claro/escuro) e apenas desliga o anel de foco. Os demais presets trazem
|
|
9
|
+
* paletas/raios próprios.
|
|
6
10
|
*/
|
|
7
11
|
import { type DeepPartial, type FenixTokens } from './tokens';
|
|
12
|
+
/** Nome do preset padrão (fallback de `applyPreset` e boot da documentação). */
|
|
13
|
+
export declare const DEFAULT_PRESET = "ikki";
|
|
8
14
|
export interface FenixPreset {
|
|
9
15
|
/** Identificador usado em `applyPreset(name)`. */
|
|
10
16
|
name: string;
|
|
@@ -14,12 +20,11 @@ export interface FenixPreset {
|
|
|
14
20
|
tokens: DeepPartial<FenixTokens>;
|
|
15
21
|
}
|
|
16
22
|
export declare const themePresets: {
|
|
17
|
-
readonly
|
|
23
|
+
readonly ikki: FenixPreset;
|
|
18
24
|
readonly seiya: FenixPreset;
|
|
19
25
|
readonly shiryu: FenixPreset;
|
|
20
26
|
readonly hyoga: FenixPreset;
|
|
21
27
|
readonly shun: FenixPreset;
|
|
22
|
-
readonly ikki: FenixPreset;
|
|
23
28
|
readonly aiolia: FenixPreset;
|
|
24
29
|
};
|
|
25
30
|
/** Lista todos os presets registrados (inclui os customizados). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/core/presets.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/core/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE9D,gFAAgF;AAChF,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;CAClC;AAaD,eAAO,MAAM,YAAY;;;;;;;CAiFf,CAAC;AAEX,mEAAmE;AACnE,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAE3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,GAC/B,WAAW,CAEb;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,OAAO,GAAG,MAAgB,GAC/B;IAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAK7C"}
|