@wrrdev/fenix-ui 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +314 -314
  2. package/dist/.nojekyll +0 -0
  3. package/dist/components/accordion/accordion.d.ts +72 -0
  4. package/dist/components/accordion/accordion.d.ts.map +1 -0
  5. package/dist/components/accordion/accordion.js +277 -0
  6. package/dist/components/accordion/accordion.js.map +1 -0
  7. package/dist/components/accordion/index.d.ts +2 -0
  8. package/dist/components/accordion/index.d.ts.map +1 -0
  9. package/dist/components/accordion/index.js +9 -0
  10. package/dist/components/accordion/index.js.map +1 -0
  11. package/dist/components/calendar/calendar.d.ts +2 -2
  12. package/dist/components/calendar/calendar.d.ts.map +1 -1
  13. package/dist/components/calendar/calendar.js +187 -89
  14. package/dist/components/calendar/calendar.js.map +1 -1
  15. package/dist/components/dropdown/dropdown.d.ts.map +1 -1
  16. package/dist/components/dropdown/dropdown.js +1 -1
  17. package/dist/components/dropdown/dropdown.js.map +1 -1
  18. package/dist/components/knob/index.d.ts +8 -0
  19. package/dist/components/knob/index.d.ts.map +1 -0
  20. package/dist/components/knob/index.js +7 -0
  21. package/dist/components/knob/index.js.map +1 -0
  22. package/dist/components/knob/knob.d.ts +51 -0
  23. package/dist/components/knob/knob.d.ts.map +1 -0
  24. package/dist/components/knob/knob.js +323 -0
  25. package/dist/components/knob/knob.js.map +1 -0
  26. package/dist/components/orderlist/index.d.ts +3 -0
  27. package/dist/components/orderlist/index.d.ts.map +1 -0
  28. package/dist/components/orderlist/index.js +7 -0
  29. package/dist/components/orderlist/index.js.map +1 -0
  30. package/dist/components/orderlist/orderlist.d.ts +78 -0
  31. package/dist/components/orderlist/orderlist.d.ts.map +1 -0
  32. package/dist/components/orderlist/orderlist.js +666 -0
  33. package/dist/components/orderlist/orderlist.js.map +1 -0
  34. package/dist/components/picklist/index.d.ts +3 -0
  35. package/dist/components/picklist/index.d.ts.map +1 -0
  36. package/dist/components/picklist/index.js +7 -0
  37. package/dist/components/picklist/index.js.map +1 -0
  38. package/dist/components/picklist/picklist.d.ts +102 -0
  39. package/dist/components/picklist/picklist.d.ts.map +1 -0
  40. package/dist/components/picklist/picklist.js +749 -0
  41. package/dist/components/picklist/picklist.js.map +1 -0
  42. package/dist/components/tooltip/directive.d.ts +31 -0
  43. package/dist/components/tooltip/directive.d.ts.map +1 -0
  44. package/dist/components/tooltip/directive.js +294 -0
  45. package/dist/components/tooltip/directive.js.map +1 -0
  46. package/dist/components/tooltip/index.d.ts +2 -1
  47. package/dist/components/tooltip/index.d.ts.map +1 -1
  48. package/dist/components/tooltip/index.js +4 -1
  49. package/dist/components/tooltip/index.js.map +1 -1
  50. package/dist/core/presets.d.ts.map +1 -1
  51. package/dist/core/presets.js +48 -9
  52. package/dist/core/presets.js.map +1 -1
  53. package/dist/core/tokens.d.ts.map +1 -1
  54. package/dist/core/tokens.js +4 -4
  55. package/dist/core/tokens.js.map +1 -1
  56. package/dist/docs/app.d.ts +3 -25
  57. package/dist/docs/app.d.ts.map +1 -1
  58. package/dist/docs/componentes/accordion.doc.d.ts +8 -0
  59. package/dist/docs/componentes/accordion.doc.d.ts.map +1 -0
  60. package/dist/docs/componentes/alert.doc.d.ts +8 -0
  61. package/dist/docs/componentes/alert.doc.d.ts.map +1 -0
  62. package/dist/docs/componentes/autocomplete.doc.d.ts +8 -0
  63. package/dist/docs/componentes/autocomplete.doc.d.ts.map +1 -0
  64. package/dist/docs/componentes/badge.doc.d.ts +8 -0
  65. package/dist/docs/componentes/badge.doc.d.ts.map +1 -0
  66. package/dist/docs/componentes/button.doc.d.ts +8 -0
  67. package/dist/docs/componentes/button.doc.d.ts.map +1 -0
  68. package/dist/docs/componentes/calendar.doc.d.ts +8 -0
  69. package/dist/docs/componentes/calendar.doc.d.ts.map +1 -0
  70. package/dist/docs/componentes/checkbox.doc.d.ts +8 -0
  71. package/dist/docs/componentes/checkbox.doc.d.ts.map +1 -0
  72. package/dist/docs/componentes/datepicker.doc.d.ts +8 -0
  73. package/dist/docs/componentes/datepicker.doc.d.ts.map +1 -0
  74. package/dist/docs/componentes/dialog.doc.d.ts +8 -0
  75. package/dist/docs/componentes/dialog.doc.d.ts.map +1 -0
  76. package/dist/docs/componentes/drawer.doc.d.ts +8 -0
  77. package/dist/docs/componentes/drawer.doc.d.ts.map +1 -0
  78. package/dist/docs/componentes/dropdown.doc.d.ts +8 -0
  79. package/dist/docs/componentes/dropdown.doc.d.ts.map +1 -0
  80. package/dist/docs/componentes/floatlabel.doc.d.ts +8 -0
  81. package/dist/docs/componentes/floatlabel.doc.d.ts.map +1 -0
  82. package/dist/docs/componentes/index.d.ts +10 -0
  83. package/dist/docs/componentes/index.d.ts.map +1 -0
  84. package/dist/docs/componentes/input.doc.d.ts +8 -0
  85. package/dist/docs/componentes/input.doc.d.ts.map +1 -0
  86. package/dist/docs/componentes/knob.doc.d.ts +8 -0
  87. package/dist/docs/componentes/knob.doc.d.ts.map +1 -0
  88. package/dist/docs/componentes/multiselect.doc.d.ts +8 -0
  89. package/dist/docs/componentes/multiselect.doc.d.ts.map +1 -0
  90. package/dist/docs/componentes/orderlist.doc.d.ts +8 -0
  91. package/dist/docs/componentes/orderlist.doc.d.ts.map +1 -0
  92. package/dist/docs/componentes/pagination.doc.d.ts +8 -0
  93. package/dist/docs/componentes/pagination.doc.d.ts.map +1 -0
  94. package/dist/docs/componentes/picklist.doc.d.ts +8 -0
  95. package/dist/docs/componentes/picklist.doc.d.ts.map +1 -0
  96. package/dist/docs/componentes/progress.doc.d.ts +8 -0
  97. package/dist/docs/componentes/progress.doc.d.ts.map +1 -0
  98. package/dist/docs/componentes/radio.doc.d.ts +8 -0
  99. package/dist/docs/componentes/radio.doc.d.ts.map +1 -0
  100. package/dist/docs/componentes/select.doc.d.ts +8 -0
  101. package/dist/docs/componentes/select.doc.d.ts.map +1 -0
  102. package/dist/docs/componentes/skeleton.doc.d.ts +8 -0
  103. package/dist/docs/componentes/skeleton.doc.d.ts.map +1 -0
  104. package/dist/docs/componentes/spinner.doc.d.ts +8 -0
  105. package/dist/docs/componentes/spinner.doc.d.ts.map +1 -0
  106. package/dist/docs/componentes/switch.doc.d.ts +8 -0
  107. package/dist/docs/componentes/switch.doc.d.ts.map +1 -0
  108. package/dist/docs/componentes/table.doc.d.ts +8 -0
  109. package/dist/docs/componentes/table.doc.d.ts.map +1 -0
  110. package/dist/docs/componentes/tabs.doc.d.ts +8 -0
  111. package/dist/docs/componentes/tabs.doc.d.ts.map +1 -0
  112. package/dist/docs/componentes/textarea.doc.d.ts +8 -0
  113. package/dist/docs/componentes/textarea.doc.d.ts.map +1 -0
  114. package/dist/docs/componentes/toast.doc.d.ts +8 -0
  115. package/dist/docs/componentes/toast.doc.d.ts.map +1 -0
  116. package/dist/docs/componentes/tooltip.doc.d.ts +25 -0
  117. package/dist/docs/componentes/tooltip.doc.d.ts.map +1 -0
  118. package/dist/docs/shared.d.ts +9 -0
  119. package/dist/docs/shared.d.ts.map +1 -0
  120. package/dist/docs/types.d.ts +47 -0
  121. package/dist/docs/types.d.ts.map +1 -0
  122. package/dist/fenix-ui.umd.min.js +815 -157
  123. package/dist/fenix-ui2.esm.js +2522 -103
  124. package/dist/fenix-ui2.esm.js.map +1 -1
  125. package/dist/index.d.ts +4 -0
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +16 -0
  128. package/dist/index.js.map +1 -1
  129. package/package.json +212 -196
@@ -0,0 +1,72 @@
1
+ import { FxElement } from '../../core/base';
2
+ /**
3
+ * <fx-accordion-panel> — Painel individual do accordion.
4
+ *
5
+ * Atributos:
6
+ * - header: titulo exibido no cabecalho (ou use o slot "header").
7
+ * - value: identificador unico do painel (usado pelo fx-accordion).
8
+ * - expanded: presenca indica painel aberto (controlado pelo fx-accordion).
9
+ * - disabled: impede a abertura do painel.
10
+ */
11
+ export declare class FxAccordionPanel extends FxElement {
12
+ static styles: string;
13
+ static get observedAttributes(): string[];
14
+ get header(): string;
15
+ set header(v: string);
16
+ get value(): string;
17
+ set value(v: string);
18
+ get expanded(): boolean;
19
+ set expanded(v: boolean);
20
+ get disabled(): boolean;
21
+ set disabled(v: boolean);
22
+ protected connectedCallback(): void;
23
+ protected disconnectedCallback(): void;
24
+ private _mo;
25
+ protected render(): void;
26
+ }
27
+ /**
28
+ * <fx-accordion> — Conjunto de paineis expansivos (estilo PrimeVue).
29
+ *
30
+ * Por padrao (modo single) abrir um painel fecha os outros.
31
+ * Adicione o atributo `multiple` para permitir varios paineis abertos.
32
+ *
33
+ * Uso:
34
+ * <fx-accordion value="p1">
35
+ * <fx-accordion-panel value="p1" header="Titulo 1">Conteudo…</fx-accordion-panel>
36
+ * <fx-accordion-panel value="p2" header="Titulo 2">Conteudo…</fx-accordion-panel>
37
+ * </fx-accordion>
38
+ *
39
+ * Atributos:
40
+ * - value: valor(es) ativo(s), separados por virgula no modo multiple.
41
+ * - multiple: permite manter varios paineis abertos ao mesmo tempo.
42
+ *
43
+ * Evento: `change` (composed, detail: { value: string[] }).
44
+ */
45
+ export declare class FxAccordion extends FxElement {
46
+ static styles: string;
47
+ static get observedAttributes(): string[];
48
+ get multiple(): boolean;
49
+ set multiple(v: boolean);
50
+ /** Valores ativos como array. */
51
+ get values(): string[];
52
+ set values(v: string[]);
53
+ protected connectedCallback(): void;
54
+ protected disconnectedCallback(): void;
55
+ private _observer;
56
+ protected render(): void;
57
+ /** Painéis do accordion (filhos diretos ou descendentes). */
58
+ private get panels();
59
+ private _sync;
60
+ private _initialized;
61
+ private _attachListeners;
62
+ private _listenersAttached;
63
+ /** Abre/fecha um painel respeitando o modo (single | multiple). */
64
+ toggle(panel: FxAccordionPanel): void;
65
+ /** Abre um painel pelo valor. */
66
+ open(value: string): void;
67
+ /** Fecha um painel pelo valor. */
68
+ close(value: string): void;
69
+ }
70
+ export declare function defineFxAccordion(): typeof FxAccordion;
71
+ export declare function defineFxAccordionPanel(): typeof FxAccordionPanel;
72
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,OAAgB,MAAM,SA+DpB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAEtB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAEtB;cAEkB,iBAAiB,IAAI,IAAI;cAoBzB,oBAAoB,IAAI,IAAI;IAK/C,OAAO,CAAC,GAAG,CAAiC;cAEzB,MAAM,IAAI,IAAI;CAsBlC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAgB,MAAM,SAapB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAEtB;IAED,iCAAiC;IACjC,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAErB;cAEkB,iBAAiB,IAAI,IAAI;cASzB,oBAAoB,IAAI,IAAI;IAK/C,OAAO,CAAC,SAAS,CAAiC;cAE/B,MAAM,IAAI,IAAI;IAUjC,6DAA6D;IAC7D,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB,CAAS;IAEnC,mEAAmE;IACnE,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAqBrC,iCAAiC;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,kCAAkC;IAClC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAI3B;AAED,wBAAgB,iBAAiB,IAAI,OAAO,WAAW,CAEtD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,gBAAgB,CAEhE"}
@@ -0,0 +1,277 @@
1
+ import { FxElement } from "../../core/base.js";
2
+ import { css } from "../../core/css.js";
3
+ import { defineElement } from "../../core/define.js";
4
+ const _FxAccordionPanel = class _FxAccordionPanel extends FxElement {
5
+ constructor() {
6
+ super(...arguments);
7
+ this._mo = null;
8
+ }
9
+ static get observedAttributes() {
10
+ return ["header", "expanded", "disabled"];
11
+ }
12
+ get header() {
13
+ return this.getAttr("header", "");
14
+ }
15
+ set header(v) {
16
+ this.setAttribute("header", v);
17
+ }
18
+ get value() {
19
+ return this.getAttr("value", "");
20
+ }
21
+ set value(v) {
22
+ this.setAttribute("value", v);
23
+ }
24
+ get expanded() {
25
+ return this.hasAttr("expanded");
26
+ }
27
+ set expanded(v) {
28
+ this.toggleAttr("expanded", v);
29
+ }
30
+ get disabled() {
31
+ return this.hasAttr("disabled");
32
+ }
33
+ set disabled(v) {
34
+ this.toggleAttr("disabled", v);
35
+ }
36
+ connectedCallback() {
37
+ super.connectedCallback();
38
+ this.addEventListener("click", (e) => {
39
+ const path = e.composedPath();
40
+ if (!path.some((el) => el.classList?.contains("header"))) return;
41
+ if (this.disabled) return;
42
+ this.dispatchEvent(
43
+ new CustomEvent("fx-accordion-toggle", {
44
+ bubbles: true,
45
+ composed: true,
46
+ detail: { panel: this }
47
+ })
48
+ );
49
+ });
50
+ this._mo = new MutationObserver(() => this.render());
51
+ this._mo.observe(this, { attributes: true, attributeFilter: ["expanded", "header", "disabled"] });
52
+ }
53
+ disconnectedCallback() {
54
+ this._mo?.disconnect();
55
+ this._mo = null;
56
+ }
57
+ render() {
58
+ this.setTemplate(`
59
+ <button type="button" class="header" part="header" role="button"
60
+ aria-expanded="${this.expanded}"
61
+ ${this.disabled ? 'aria-disabled="true"' : ""}>
62
+ <span class="header-text" part="header-text">
63
+ <slot name="header">${this.header}</slot>
64
+ </span>
65
+ <span class="chevron" part="chevron" aria-hidden="true">
66
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none"
67
+ stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
68
+ <polyline points="6 9 12 15 18 9"></polyline>
69
+ </svg>
70
+ </span>
71
+ </button>
72
+ <div class="content" part="content" role="region">
73
+ <div class="content-inner">
74
+ <div class="content-pad" part="content-pad"><slot></slot></div>
75
+ </div>
76
+ </div>
77
+ `);
78
+ }
79
+ };
80
+ _FxAccordionPanel.styles = css`
81
+ :host {
82
+ display: block;
83
+ font-family: var(--fx-font-family);
84
+ font-size: var(--fx-font-size);
85
+ color: var(--fx-text-default);
86
+ border-bottom: 1px solid var(--fx-border-default);
87
+ }
88
+ :host(:last-child) { border-bottom: none; }
89
+ :host([disabled]) { opacity: 0.6; pointer-events: none; }
90
+ .header {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: var(--fx-space-md);
95
+ width: 100%;
96
+ box-sizing: border-box;
97
+ padding: var(--fx-space-lg, 20px) var(--fx-space-md, 14px);
98
+ border: none;
99
+ background: transparent;
100
+ font-family: inherit;
101
+ font-size: inherit;
102
+ font-weight: 500;
103
+ color: var(--fx-text-muted);
104
+ text-align: left;
105
+ cursor: pointer;
106
+ transition: color var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease),
107
+ background var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);
108
+ }
109
+ .header:hover { color: var(--fx-text-default); }
110
+ .header:focus-visible {
111
+ outline: none;
112
+ box-shadow: var(--fx-effect-focus-ring, none);
113
+ border-radius: var(--fx-radius-sm, 4px);
114
+ }
115
+ :host([expanded]) .header {
116
+ color: var(--fx-text-default);
117
+ font-weight: 700;
118
+ }
119
+ .header-text { flex: 1; min-width: 0; }
120
+ .chevron {
121
+ flex-shrink: 0;
122
+ display: inline-flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ width: 24px;
126
+ height: 24px;
127
+ color: var(--fx-text-muted);
128
+ transition: transform var(--fx-motion-duration-normal, 250ms) var(--fx-motion-easing, ease);
129
+ }
130
+ :host([expanded]) .chevron { transform: rotate(180deg); color: var(--fx-color-primary); }
131
+ .content {
132
+ display: grid;
133
+ grid-template-rows: 0fr;
134
+ transition: grid-template-rows var(--fx-motion-duration-normal, 250ms) var(--fx-motion-easing, ease);
135
+ }
136
+ :host([expanded]) .content { grid-template-rows: 1fr; }
137
+ .content-inner { overflow: hidden; }
138
+ .content-pad {
139
+ padding: 0 var(--fx-space-md, 14px) var(--fx-space-lg, 20px);
140
+ color: var(--fx-text-muted);
141
+ line-height: 1.6;
142
+ }
143
+ `;
144
+ let FxAccordionPanel = _FxAccordionPanel;
145
+ const _FxAccordion = class _FxAccordion extends FxElement {
146
+ constructor() {
147
+ super(...arguments);
148
+ this._observer = null;
149
+ this._initialized = false;
150
+ this._listenersAttached = false;
151
+ }
152
+ static get observedAttributes() {
153
+ return ["value", "multiple"];
154
+ }
155
+ get multiple() {
156
+ return this.hasAttr("multiple");
157
+ }
158
+ set multiple(v) {
159
+ this.toggleAttr("multiple", v);
160
+ }
161
+ /** Valores ativos como array. */
162
+ get values() {
163
+ return this.getAttr("value", "").split(",").map((s) => s.trim()).filter(Boolean);
164
+ }
165
+ set values(v) {
166
+ this.setAttribute("value", v.join(","));
167
+ }
168
+ connectedCallback() {
169
+ this._observer = new MutationObserver(() => this._sync());
170
+ this._observer.observe(this, { childList: true, subtree: true });
171
+ super.connectedCallback();
172
+ queueMicrotask(() => this._sync());
173
+ }
174
+ disconnectedCallback() {
175
+ this._observer?.disconnect();
176
+ this._observer = null;
177
+ }
178
+ render() {
179
+ this.setTemplate(`
180
+ <div class="accordion" part="accordion">
181
+ <slot></slot>
182
+ </div>
183
+ `);
184
+ this._sync();
185
+ this._attachListeners();
186
+ }
187
+ /** Painéis do accordion (filhos diretos ou descendentes). */
188
+ get panels() {
189
+ return Array.from(this.querySelectorAll("fx-accordion-panel"));
190
+ }
191
+ _sync() {
192
+ const actives = this.values;
193
+ const panels = Array.from(this.querySelectorAll("fx-accordion-panel"));
194
+ if (!this._initialized && actives.length === 0 && panels.length > 0) {
195
+ this._initialized = true;
196
+ const first = panels.find((p) => !p.hasAttribute("disabled"));
197
+ if (first) {
198
+ this.values = [first.getAttribute("value") || "0"];
199
+ return;
200
+ }
201
+ }
202
+ this._initialized = true;
203
+ panels.forEach((p, i) => {
204
+ const v = p.getAttribute("value") || String(i);
205
+ if (!p.hasAttribute("value")) p.setAttribute("value", v);
206
+ p.toggleAttribute("expanded", actives.includes(v));
207
+ });
208
+ }
209
+ _attachListeners() {
210
+ if (this._listenersAttached) return;
211
+ this._listenersAttached = true;
212
+ this.addEventListener("fx-accordion-toggle", (e) => {
213
+ const panel = e.detail?.panel;
214
+ if (!panel || panel.disabled) return;
215
+ this.toggle(panel);
216
+ });
217
+ }
218
+ /** Abre/fecha um painel respeitando o modo (single | multiple). */
219
+ toggle(panel) {
220
+ const v = panel.value;
221
+ let actives = this.values;
222
+ if (panel.expanded) {
223
+ actives = actives.filter((a) => a !== v);
224
+ } else if (this.multiple) {
225
+ actives = [...actives, v];
226
+ } else {
227
+ actives = [v];
228
+ }
229
+ this.values = actives;
230
+ this._sync();
231
+ this.dispatchEvent(
232
+ new CustomEvent("change", {
233
+ bubbles: true,
234
+ composed: true,
235
+ detail: { value: actives }
236
+ })
237
+ );
238
+ }
239
+ /** Abre um painel pelo valor. */
240
+ open(value) {
241
+ const panel = this.panels.find((p, i) => (p.value || String(i)) === value);
242
+ if (panel && !panel.expanded) this.toggle(panel);
243
+ }
244
+ /** Fecha um painel pelo valor. */
245
+ close(value) {
246
+ const panel = this.panels.find((p, i) => (p.value || String(i)) === value);
247
+ if (panel && panel.expanded) this.toggle(panel);
248
+ }
249
+ };
250
+ _FxAccordion.styles = css`
251
+ :host {
252
+ display: block;
253
+ font-family: var(--fx-font-family);
254
+ font-size: var(--fx-font-size);
255
+ }
256
+ .accordion {
257
+ background: var(--fx-surface-background, #ffffff);
258
+ border: 1px solid var(--fx-border-default);
259
+ border-radius: var(--fx-radius-md, 8px);
260
+ overflow: hidden;
261
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
262
+ }
263
+ `;
264
+ let FxAccordion = _FxAccordion;
265
+ function defineFxAccordion() {
266
+ return defineElement("fx-accordion", FxAccordion);
267
+ }
268
+ function defineFxAccordionPanel() {
269
+ return defineElement("fx-accordion-panel", FxAccordionPanel);
270
+ }
271
+ export {
272
+ FxAccordion,
273
+ FxAccordionPanel,
274
+ defineFxAccordion,
275
+ defineFxAccordionPanel
276
+ };
277
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/accordion/accordion.ts"],"sourcesContent":["import { FxElement } from '../../core/base';\r\nimport { css } from '../../core/css';\r\nimport { defineElement } from '../../core/define';\r\n\r\n/**\r\n * <fx-accordion-panel> — Painel individual do accordion.\r\n *\r\n * Atributos:\r\n * - header: titulo exibido no cabecalho (ou use o slot \"header\").\r\n * - value: identificador unico do painel (usado pelo fx-accordion).\r\n * - expanded: presenca indica painel aberto (controlado pelo fx-accordion).\r\n * - disabled: impede a abertura do painel.\r\n */\r\nexport class FxAccordionPanel extends FxElement {\r\n static override styles = css`\r\n :host {\r\n display: block;\r\n font-family: var(--fx-font-family);\r\n font-size: var(--fx-font-size);\r\n color: var(--fx-text-default);\r\n border-bottom: 1px solid var(--fx-border-default);\r\n }\r\n :host(:last-child) { border-bottom: none; }\r\n :host([disabled]) { opacity: 0.6; pointer-events: none; }\r\n .header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--fx-space-md);\r\n width: 100%;\r\n box-sizing: border-box;\r\n padding: var(--fx-space-lg, 20px) var(--fx-space-md, 14px);\r\n border: none;\r\n background: transparent;\r\n font-family: inherit;\r\n font-size: inherit;\r\n font-weight: 500;\r\n color: var(--fx-text-muted);\r\n text-align: left;\r\n cursor: pointer;\r\n transition: color var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease),\r\n background var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);\r\n }\r\n .header:hover { color: var(--fx-text-default); }\r\n .header:focus-visible {\r\n outline: none;\r\n box-shadow: var(--fx-effect-focus-ring, none);\r\n border-radius: var(--fx-radius-sm, 4px);\r\n }\r\n :host([expanded]) .header {\r\n color: var(--fx-text-default);\r\n font-weight: 700;\r\n }\r\n .header-text { flex: 1; min-width: 0; }\r\n .chevron {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 24px;\r\n height: 24px;\r\n color: var(--fx-text-muted);\r\n transition: transform var(--fx-motion-duration-normal, 250ms) var(--fx-motion-easing, ease);\r\n }\r\n :host([expanded]) .chevron { transform: rotate(180deg); color: var(--fx-color-primary); }\r\n .content {\r\n display: grid;\r\n grid-template-rows: 0fr;\r\n transition: grid-template-rows var(--fx-motion-duration-normal, 250ms) var(--fx-motion-easing, ease);\r\n }\r\n :host([expanded]) .content { grid-template-rows: 1fr; }\r\n .content-inner { overflow: hidden; }\r\n .content-pad {\r\n padding: 0 var(--fx-space-md, 14px) var(--fx-space-lg, 20px);\r\n color: var(--fx-text-muted);\r\n line-height: 1.6;\r\n }\r\n `;\r\n\r\n static override get observedAttributes(): string[] {\r\n return ['header', 'expanded', 'disabled'];\r\n }\r\n\r\n get header(): string {\r\n return this.getAttr('header', '');\r\n }\r\n set header(v: string) {\r\n this.setAttribute('header', v);\r\n }\r\n\r\n get value(): string {\r\n return this.getAttr('value', '');\r\n }\r\n set value(v: string) {\r\n this.setAttribute('value', v);\r\n }\r\n\r\n get expanded(): boolean {\r\n return this.hasAttr('expanded');\r\n }\r\n set expanded(v: boolean) {\r\n this.toggleAttr('expanded', v);\r\n }\r\n\r\n get disabled(): boolean {\r\n return this.hasAttr('disabled');\r\n }\r\n set disabled(v: boolean) {\r\n this.toggleAttr('disabled', v);\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n // O clique vem do shadow root; composedPath() revela o alvo real.\r\n this.addEventListener('click', (e) => {\r\n const path = e.composedPath() as HTMLElement[];\r\n if (!path.some((el) => el.classList?.contains('header'))) return;\r\n if (this.disabled) return;\r\n this.dispatchEvent(\r\n new CustomEvent('fx-accordion-toggle', {\r\n bubbles: true,\r\n composed: true,\r\n detail: { panel: this },\r\n }),\r\n );\r\n });\r\n // Re-render quando o atributo expanded muda (para aria-expanded).\r\n this._mo = new MutationObserver(() => this.render());\r\n this._mo.observe(this, { attributes: true, attributeFilter: ['expanded', 'header', 'disabled'] });\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n this._mo?.disconnect();\r\n this._mo = null;\r\n }\r\n\r\n private _mo: MutationObserver | null = null;\r\n\r\n protected override render(): void {\r\n this.setTemplate(`\r\n <button type=\"button\" class=\"header\" part=\"header\" role=\"button\"\r\n aria-expanded=\"${this.expanded}\"\r\n ${this.disabled ? 'aria-disabled=\"true\"' : ''}>\r\n <span class=\"header-text\" part=\"header-text\">\r\n <slot name=\"header\">${this.header}</slot>\r\n </span>\r\n <span class=\"chevron\" part=\"chevron\" aria-hidden=\"true\">\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </span>\r\n </button>\r\n <div class=\"content\" part=\"content\" role=\"region\">\r\n <div class=\"content-inner\">\r\n <div class=\"content-pad\" part=\"content-pad\"><slot></slot></div>\r\n </div>\r\n </div>\r\n `);\r\n }\r\n}\r\n\r\n/**\r\n * <fx-accordion> — Conjunto de paineis expansivos (estilo PrimeVue).\r\n *\r\n * Por padrao (modo single) abrir um painel fecha os outros.\r\n * Adicione o atributo `multiple` para permitir varios paineis abertos.\r\n *\r\n * Uso:\r\n * <fx-accordion value=\"p1\">\r\n * <fx-accordion-panel value=\"p1\" header=\"Titulo 1\">Conteudo…</fx-accordion-panel>\r\n * <fx-accordion-panel value=\"p2\" header=\"Titulo 2\">Conteudo…</fx-accordion-panel>\r\n * </fx-accordion>\r\n *\r\n * Atributos:\r\n * - value: valor(es) ativo(s), separados por virgula no modo multiple.\r\n * - multiple: permite manter varios paineis abertos ao mesmo tempo.\r\n *\r\n * Evento: `change` (composed, detail: { value: string[] }).\r\n */\r\nexport class FxAccordion extends FxElement {\r\n static override styles = css`\r\n :host {\r\n display: block;\r\n font-family: var(--fx-font-family);\r\n font-size: var(--fx-font-size);\r\n }\r\n .accordion {\r\n background: var(--fx-surface-background, #ffffff);\r\n border: 1px solid var(--fx-border-default);\r\n border-radius: var(--fx-radius-md, 8px);\r\n overflow: hidden;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\r\n }\r\n `;\r\n\r\n static override get observedAttributes(): string[] {\r\n return ['value', 'multiple'];\r\n }\r\n\r\n get multiple(): boolean {\r\n return this.hasAttr('multiple');\r\n }\r\n set multiple(v: boolean) {\r\n this.toggleAttr('multiple', v);\r\n }\r\n\r\n /** Valores ativos como array. */\r\n get values(): string[] {\r\n return this.getAttr('value', '').split(',').map(s => s.trim()).filter(Boolean);\r\n }\r\n set values(v: string[]) {\r\n this.setAttribute('value', v.join(','));\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n this._observer = new MutationObserver(() => this._sync());\r\n this._observer.observe(this, { childList: true, subtree: true });\r\n super.connectedCallback();\r\n // Os paineis filhos podem ainda nao estar upgradados no primeiro sync;\r\n // reagenda para depois da fila de upgrade de custom elements.\r\n queueMicrotask(() => this._sync());\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n this._observer?.disconnect();\r\n this._observer = null;\r\n }\r\n\r\n private _observer: MutationObserver | null = null;\r\n\r\n protected override render(): void {\r\n this.setTemplate(`\r\n <div class=\"accordion\" part=\"accordion\">\r\n <slot></slot>\r\n </div>\r\n `);\r\n this._sync();\r\n this._attachListeners();\r\n }\r\n\r\n /** Painéis do accordion (filhos diretos ou descendentes). */\r\n private get panels(): FxAccordionPanel[] {\r\n return Array.from(this.querySelectorAll<FxAccordionPanel>('fx-accordion-panel'));\r\n }\r\n\r\n private _sync(): void {\r\n const actives = this.values;\r\n // Leitura via getAttribute (nao via getters) porque os paineis filhos\r\n // podem ainda nao estar upgradados quando o accordion conecta.\r\n const panels = Array.from(this.querySelectorAll('fx-accordion-panel'));\r\n // Apenas na conexao inicial (sem valor definido): abre o primeiro painel.\r\n if (!this._initialized && actives.length === 0 && panels.length > 0) {\r\n this._initialized = true;\r\n const first = panels.find((p) => !p.hasAttribute('disabled'));\r\n if (first) {\r\n this.values = [first.getAttribute('value') || '0'];\r\n return;\r\n }\r\n }\r\n this._initialized = true;\r\n panels.forEach((p, i) => {\r\n const v = p.getAttribute('value') || String(i);\r\n if (!p.hasAttribute('value')) p.setAttribute('value', v);\r\n p.toggleAttribute('expanded', actives.includes(v));\r\n });\r\n }\r\n\r\n private _initialized = false;\r\n\r\n private _attachListeners(): void {\r\n if (this._listenersAttached) return;\r\n this._listenersAttached = true;\r\n // O painel emite 'fx-accordion-toggle' a partir do proprio host\r\n // (event retargeting do Shadow DOM impede usar closest('.header') aqui).\r\n this.addEventListener('fx-accordion-toggle', (e) => {\r\n const panel = (e as CustomEvent).detail?.panel as FxAccordionPanel | undefined;\r\n if (!panel || panel.disabled) return;\r\n this.toggle(panel);\r\n });\r\n }\r\n\r\n private _listenersAttached = false;\r\n\r\n /** Abre/fecha um painel respeitando o modo (single | multiple). */\r\n toggle(panel: FxAccordionPanel): void {\r\n const v = panel.value;\r\n let actives = this.values;\r\n if (panel.expanded) {\r\n actives = actives.filter(a => a !== v);\r\n } else if (this.multiple) {\r\n actives = [...actives, v];\r\n } else {\r\n actives = [v];\r\n }\r\n this.values = actives;\r\n this._sync();\r\n this.dispatchEvent(\r\n new CustomEvent('change', {\r\n bubbles: true,\r\n composed: true,\r\n detail: { value: actives },\r\n }),\r\n );\r\n }\r\n\r\n /** Abre um painel pelo valor. */\r\n open(value: string): void {\r\n const panel = this.panels.find((p, i) => (p.value || String(i)) === value);\r\n if (panel && !panel.expanded) this.toggle(panel);\r\n }\r\n\r\n /** Fecha um painel pelo valor. */\r\n close(value: string): void {\r\n const panel = this.panels.find((p, i) => (p.value || String(i)) === value);\r\n if (panel && panel.expanded) this.toggle(panel);\r\n }\r\n}\r\n\r\nexport function defineFxAccordion(): typeof FxAccordion {\r\n return defineElement('fx-accordion', FxAccordion);\r\n}\r\n\r\nexport function defineFxAccordionPanel(): typeof FxAccordionPanel {\r\n return defineElement('fx-accordion-panel', FxAccordionPanel);\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { FxAccordion, FxAccordionPanel } from './accordion';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { defineFxAccordion, defineFxAccordionPanel } from "./accordion.js";
2
+ import { FxAccordion, FxAccordionPanel } from "./accordion.js";
3
+ defineFxAccordion();
4
+ defineFxAccordionPanel();
5
+ export {
6
+ FxAccordion,
7
+ FxAccordionPanel
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/accordion/index.ts"],"sourcesContent":["import { defineFxAccordion, defineFxAccordionPanel } from './accordion';\r\n\r\n// Reexporta as classes para uso programático (ex.: instanceof, herança).\r\nexport { FxAccordion, FxAccordionPanel } from './accordion';\r\n\r\n// Auto-registro: basta importar o subpath `@wrrdev/fenix-ui/accordion`\r\n// para que os componentes sejam definidos no CustomElementRegistry.\r\ndefineFxAccordion();\r\ndefineFxAccordionPanel();\r\n"],"names":[],"mappings":";;AAOA,kBAAA;AACA,uBAAA;"}
@@ -8,8 +8,8 @@ export declare class FxCalendar extends FxElement {
8
8
  private pickStart;
9
9
  private pickEnd;
10
10
  /** Modo de seleção: 'single' | 'range' | 'multiple'. */
11
- get mode(): 'single' | 'range' | 'multiple';
12
- set mode(m: 'single' | 'range' | 'multiple');
11
+ get mode(): "single" | "range" | "multiple";
12
+ set mode(m: "single" | "range" | "multiple");
13
13
  get range(): boolean;
14
14
  set range(value: boolean);
15
15
  /** Datas selecionadas no modo multiple (CSV no atributo). */
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAyC5C,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAgB,MAAM,SAkFpB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAA6D;IAC3E,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IAEtC,wDAAwD;IACxD,IAAI,IAAI,IAAI,QAAQ,GAAG,OAAO,GAAG,UAAU,CAI1C;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,EAE1C;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,6DAA6D;IAC7D,IAAI,MAAM,IAAI,MAAM,EAAE,CAGrB;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAED,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,GAAG;IAMX,2CAA2C;IAC3C,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,QAAQ;cAYG,MAAM,IAAI,IAAI;IAiFjC,uDAAuD;IACvD,OAAO,CAAC,QAAQ;CAuBjB;AAED,wBAAgB,gBAAgB,IAAI,OAAO,UAAU,CAEpD"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAyC5C,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAgB,MAAM,SAkIpB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAajD;IAED,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAA6D;IAC3E,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IAEtC,wDAAwD;IACxD,IAAI,IAAI,IAAI,QAAQ,GAAG,OAAO,GAAG,UAAU,CAI1C;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,EAE1C;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,6DAA6D;IAC7D,IAAI,MAAM,IAAI,MAAM,EAAE,CAQrB;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAExB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAED,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,GAAG;IAMX,2CAA2C;IAC3C,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,IAAI;IA0CZ,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,QAAQ;cAYG,MAAM,IAAI,IAAI;IAgGjC,uDAAuD;IACvD,OAAO,CAAC,QAAQ;CAsChB;AAED,wBAAgB,gBAAgB,IAAI,OAAO,UAAU,CAEpD"}