@wrrdev/fenix-ui 1.0.0

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 (247) hide show
  1. package/README.md +117 -0
  2. package/dist/cdn.d.ts +6 -0
  3. package/dist/cdn.d.ts.map +1 -0
  4. package/dist/components/alert/alert.d.ts +14 -0
  5. package/dist/components/alert/alert.d.ts.map +1 -0
  6. package/dist/components/alert/alert.js +74 -0
  7. package/dist/components/alert/alert.js.map +1 -0
  8. package/dist/components/alert/index.d.ts +8 -0
  9. package/dist/components/alert/index.d.ts.map +1 -0
  10. package/dist/components/alert/index.js +7 -0
  11. package/dist/components/alert/index.js.map +1 -0
  12. package/dist/components/autocomplete/autocomplete.d.ts +20 -0
  13. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -0
  14. package/dist/components/autocomplete/autocomplete.js +144 -0
  15. package/dist/components/autocomplete/autocomplete.js.map +1 -0
  16. package/dist/components/autocomplete/index.d.ts +8 -0
  17. package/dist/components/autocomplete/index.d.ts.map +1 -0
  18. package/dist/components/autocomplete/index.js +7 -0
  19. package/dist/components/autocomplete/index.js.map +1 -0
  20. package/dist/components/badge/badge.d.ts +14 -0
  21. package/dist/components/badge/badge.d.ts.map +1 -0
  22. package/dist/components/badge/badge.js +46 -0
  23. package/dist/components/badge/badge.js.map +1 -0
  24. package/dist/components/badge/index.d.ts +2 -0
  25. package/dist/components/badge/index.d.ts.map +1 -0
  26. package/dist/components/badge/index.js +7 -0
  27. package/dist/components/badge/index.js.map +1 -0
  28. package/dist/components/button/button.d.ts +30 -0
  29. package/dist/components/button/button.d.ts.map +1 -0
  30. package/dist/components/button/button.js +194 -0
  31. package/dist/components/button/button.js.map +1 -0
  32. package/dist/components/button/index.d.ts +2 -0
  33. package/dist/components/button/index.d.ts.map +1 -0
  34. package/dist/components/button/index.js +7 -0
  35. package/dist/components/button/index.js.map +1 -0
  36. package/dist/components/calendar/calendar.d.ts +39 -0
  37. package/dist/components/calendar/calendar.d.ts.map +1 -0
  38. package/dist/components/calendar/calendar.js +346 -0
  39. package/dist/components/calendar/calendar.js.map +1 -0
  40. package/dist/components/calendar/index.d.ts +2 -0
  41. package/dist/components/calendar/index.d.ts.map +1 -0
  42. package/dist/components/calendar/index.js +7 -0
  43. package/dist/components/calendar/index.js.map +1 -0
  44. package/dist/components/checkbox/checkbox.d.ts +24 -0
  45. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  46. package/dist/components/checkbox/checkbox.js +142 -0
  47. package/dist/components/checkbox/checkbox.js.map +1 -0
  48. package/dist/components/checkbox/index.d.ts +2 -0
  49. package/dist/components/checkbox/index.d.ts.map +1 -0
  50. package/dist/components/checkbox/index.js +7 -0
  51. package/dist/components/checkbox/index.js.map +1 -0
  52. package/dist/components/datepicker/datepicker.d.ts +62 -0
  53. package/dist/components/datepicker/datepicker.d.ts.map +1 -0
  54. package/dist/components/datepicker/datepicker.js +441 -0
  55. package/dist/components/datepicker/datepicker.js.map +1 -0
  56. package/dist/components/datepicker/index.d.ts +3 -0
  57. package/dist/components/datepicker/index.d.ts.map +1 -0
  58. package/dist/components/datepicker/index.js +8 -0
  59. package/dist/components/datepicker/index.js.map +1 -0
  60. package/dist/components/dialog/dialog.d.ts +19 -0
  61. package/dist/components/dialog/dialog.d.ts.map +1 -0
  62. package/dist/components/dialog/dialog.js +134 -0
  63. package/dist/components/dialog/dialog.js.map +1 -0
  64. package/dist/components/dialog/index.d.ts +8 -0
  65. package/dist/components/dialog/index.d.ts.map +1 -0
  66. package/dist/components/dialog/index.js +7 -0
  67. package/dist/components/dialog/index.js.map +1 -0
  68. package/dist/components/drawer/drawer.d.ts +27 -0
  69. package/dist/components/drawer/drawer.d.ts.map +1 -0
  70. package/dist/components/drawer/drawer.js +195 -0
  71. package/dist/components/drawer/drawer.js.map +1 -0
  72. package/dist/components/drawer/index.d.ts +8 -0
  73. package/dist/components/drawer/index.d.ts.map +1 -0
  74. package/dist/components/drawer/index.js +7 -0
  75. package/dist/components/drawer/index.js.map +1 -0
  76. package/dist/components/dropdown/dropdown.d.ts +28 -0
  77. package/dist/components/dropdown/dropdown.d.ts.map +1 -0
  78. package/dist/components/dropdown/dropdown.js +137 -0
  79. package/dist/components/dropdown/dropdown.js.map +1 -0
  80. package/dist/components/dropdown/index.d.ts +9 -0
  81. package/dist/components/dropdown/index.d.ts.map +1 -0
  82. package/dist/components/dropdown/index.js +9 -0
  83. package/dist/components/dropdown/index.js.map +1 -0
  84. package/dist/components/floatlabel/floatlabel.d.ts +42 -0
  85. package/dist/components/floatlabel/floatlabel.d.ts.map +1 -0
  86. package/dist/components/floatlabel/floatlabel.js +270 -0
  87. package/dist/components/floatlabel/floatlabel.js.map +1 -0
  88. package/dist/components/floatlabel/index.d.ts +2 -0
  89. package/dist/components/floatlabel/index.d.ts.map +1 -0
  90. package/dist/components/floatlabel/index.js +7 -0
  91. package/dist/components/floatlabel/index.js.map +1 -0
  92. package/dist/components/input/index.d.ts +2 -0
  93. package/dist/components/input/index.d.ts.map +1 -0
  94. package/dist/components/input/index.js +7 -0
  95. package/dist/components/input/index.js.map +1 -0
  96. package/dist/components/input/input.d.ts +22 -0
  97. package/dist/components/input/input.d.ts.map +1 -0
  98. package/dist/components/input/input.js +169 -0
  99. package/dist/components/input/input.js.map +1 -0
  100. package/dist/components/multiselect/index.d.ts +2 -0
  101. package/dist/components/multiselect/index.d.ts.map +1 -0
  102. package/dist/components/multiselect/index.js +7 -0
  103. package/dist/components/multiselect/index.js.map +1 -0
  104. package/dist/components/multiselect/multiselect.d.ts +32 -0
  105. package/dist/components/multiselect/multiselect.d.ts.map +1 -0
  106. package/dist/components/multiselect/multiselect.js +389 -0
  107. package/dist/components/multiselect/multiselect.js.map +1 -0
  108. package/dist/components/pagination/index.d.ts +8 -0
  109. package/dist/components/pagination/index.d.ts.map +1 -0
  110. package/dist/components/pagination/index.js +7 -0
  111. package/dist/components/pagination/index.js.map +1 -0
  112. package/dist/components/pagination/pagination.d.ts +23 -0
  113. package/dist/components/pagination/pagination.d.ts.map +1 -0
  114. package/dist/components/pagination/pagination.js +121 -0
  115. package/dist/components/pagination/pagination.js.map +1 -0
  116. package/dist/components/progress/index.d.ts +8 -0
  117. package/dist/components/progress/index.d.ts.map +1 -0
  118. package/dist/components/progress/index.js +7 -0
  119. package/dist/components/progress/index.js.map +1 -0
  120. package/dist/components/progress/progress.d.ts +18 -0
  121. package/dist/components/progress/progress.d.ts.map +1 -0
  122. package/dist/components/progress/progress.js +99 -0
  123. package/dist/components/progress/progress.js.map +1 -0
  124. package/dist/components/radio/index.d.ts +2 -0
  125. package/dist/components/radio/index.d.ts.map +1 -0
  126. package/dist/components/radio/index.js +7 -0
  127. package/dist/components/radio/index.js.map +1 -0
  128. package/dist/components/radio/radio.d.ts +23 -0
  129. package/dist/components/radio/radio.d.ts.map +1 -0
  130. package/dist/components/radio/radio.js +133 -0
  131. package/dist/components/radio/radio.js.map +1 -0
  132. package/dist/components/select/index.d.ts +2 -0
  133. package/dist/components/select/index.d.ts.map +1 -0
  134. package/dist/components/select/index.js +7 -0
  135. package/dist/components/select/index.js.map +1 -0
  136. package/dist/components/select/select.d.ts +36 -0
  137. package/dist/components/select/select.d.ts.map +1 -0
  138. package/dist/components/select/select.js +287 -0
  139. package/dist/components/select/select.js.map +1 -0
  140. package/dist/components/skeleton/index.d.ts +8 -0
  141. package/dist/components/skeleton/index.d.ts.map +1 -0
  142. package/dist/components/skeleton/index.js +7 -0
  143. package/dist/components/skeleton/index.js.map +1 -0
  144. package/dist/components/skeleton/skeleton.d.ts +13 -0
  145. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  146. package/dist/components/skeleton/skeleton.js +57 -0
  147. package/dist/components/skeleton/skeleton.js.map +1 -0
  148. package/dist/components/spinner/index.d.ts +2 -0
  149. package/dist/components/spinner/index.d.ts.map +1 -0
  150. package/dist/components/spinner/index.js +7 -0
  151. package/dist/components/spinner/index.js.map +1 -0
  152. package/dist/components/spinner/spinner.d.ts +16 -0
  153. package/dist/components/spinner/spinner.d.ts.map +1 -0
  154. package/dist/components/spinner/spinner.js +50 -0
  155. package/dist/components/spinner/spinner.js.map +1 -0
  156. package/dist/components/switch/index.d.ts +2 -0
  157. package/dist/components/switch/index.d.ts.map +1 -0
  158. package/dist/components/switch/index.js +7 -0
  159. package/dist/components/switch/index.js.map +1 -0
  160. package/dist/components/switch/switch.d.ts +22 -0
  161. package/dist/components/switch/switch.d.ts.map +1 -0
  162. package/dist/components/switch/switch.js +115 -0
  163. package/dist/components/switch/switch.js.map +1 -0
  164. package/dist/components/table/index.d.ts +2 -0
  165. package/dist/components/table/index.d.ts.map +1 -0
  166. package/dist/components/table/index.js +7 -0
  167. package/dist/components/table/index.js.map +1 -0
  168. package/dist/components/table/table.d.ts +38 -0
  169. package/dist/components/table/table.d.ts.map +1 -0
  170. package/dist/components/table/table.js +258 -0
  171. package/dist/components/table/table.js.map +1 -0
  172. package/dist/components/tabs/index.d.ts +9 -0
  173. package/dist/components/tabs/index.d.ts.map +1 -0
  174. package/dist/components/tabs/index.js +9 -0
  175. package/dist/components/tabs/index.js.map +1 -0
  176. package/dist/components/tabs/tabs.d.ts +38 -0
  177. package/dist/components/tabs/tabs.d.ts.map +1 -0
  178. package/dist/components/tabs/tabs.js +162 -0
  179. package/dist/components/tabs/tabs.js.map +1 -0
  180. package/dist/components/textarea/index.d.ts +8 -0
  181. package/dist/components/textarea/index.d.ts.map +1 -0
  182. package/dist/components/textarea/index.js +7 -0
  183. package/dist/components/textarea/index.js.map +1 -0
  184. package/dist/components/textarea/textarea.d.ts +19 -0
  185. package/dist/components/textarea/textarea.d.ts.map +1 -0
  186. package/dist/components/textarea/textarea.js +109 -0
  187. package/dist/components/textarea/textarea.js.map +1 -0
  188. package/dist/components/toast/index.d.ts +8 -0
  189. package/dist/components/toast/index.d.ts.map +1 -0
  190. package/dist/components/toast/index.js +8 -0
  191. package/dist/components/toast/index.js.map +1 -0
  192. package/dist/components/toast/toast.d.ts +40 -0
  193. package/dist/components/toast/toast.d.ts.map +1 -0
  194. package/dist/components/toast/toast.js +176 -0
  195. package/dist/components/toast/toast.js.map +1 -0
  196. package/dist/components/tooltip/index.d.ts +8 -0
  197. package/dist/components/tooltip/index.d.ts.map +1 -0
  198. package/dist/components/tooltip/index.js +7 -0
  199. package/dist/components/tooltip/index.js.map +1 -0
  200. package/dist/components/tooltip/tooltip.d.ts +14 -0
  201. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  202. package/dist/components/tooltip/tooltip.js +86 -0
  203. package/dist/components/tooltip/tooltip.js.map +1 -0
  204. package/dist/core/base.d.ts +29 -0
  205. package/dist/core/base.d.ts.map +1 -0
  206. package/dist/core/base.js +41 -0
  207. package/dist/core/base.js.map +1 -0
  208. package/dist/core/css.d.ts +6 -0
  209. package/dist/core/css.d.ts.map +1 -0
  210. package/dist/core/css.js +11 -0
  211. package/dist/core/css.js.map +1 -0
  212. package/dist/core/define.d.ts +8 -0
  213. package/dist/core/define.d.ts.map +1 -0
  214. package/dist/core/define.js +10 -0
  215. package/dist/core/define.js.map +1 -0
  216. package/dist/core/presets.d.ts +40 -0
  217. package/dist/core/presets.d.ts.map +1 -0
  218. package/dist/core/presets.js +80 -0
  219. package/dist/core/presets.js.map +1 -0
  220. package/dist/core/theme.d.ts +47 -0
  221. package/dist/core/theme.d.ts.map +1 -0
  222. package/dist/core/theme.js +76 -0
  223. package/dist/core/theme.js.map +1 -0
  224. package/dist/core/tokens.d.ts +36 -0
  225. package/dist/core/tokens.d.ts.map +1 -0
  226. package/dist/core/tokens.js +83 -0
  227. package/dist/core/tokens.js.map +1 -0
  228. package/dist/docs/app.d.ts +37 -0
  229. package/dist/docs/app.d.ts.map +1 -0
  230. package/dist/fenix-ui.esm.js +4471 -0
  231. package/dist/fenix-ui.esm.js.map +1 -0
  232. package/dist/fenix-ui.umd.min.js +2022 -0
  233. package/dist/fenix-ui2.esm.js +82 -0
  234. package/dist/fenix-ui2.esm.js.map +1 -0
  235. package/dist/index.d.ts +39 -0
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +107 -0
  238. package/dist/index.js.map +1 -0
  239. package/dist/plugins/auto-import.d.ts +18 -0
  240. package/dist/plugins/auto-import.d.ts.map +1 -0
  241. package/dist/plugins/auto-import.js +69 -0
  242. package/dist/plugins/auto-import.js.map +1 -0
  243. package/dist/plugins/index.d.ts +25 -0
  244. package/dist/plugins/index.d.ts.map +1 -0
  245. package/dist/plugins/index.js +21 -0
  246. package/dist/plugins/index.js.map +1 -0
  247. package/package.json +169 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sources":["../../../src/components/calendar/calendar.ts"],"sourcesContent":["import { FxElement } from '../../core/base';\nimport { css } from '../../core/css';\nimport { defineElement } from '../../core/define';\n\n/**\n * <fx-calendar> — Calendário simples ou por período (range).\n *\n * Atributos:\n * - value=\"YYYY-MM-DD\" → seleção simples\n * - range + start/end → seleção por período\n * - min/max=\"YYYY | YYYY-MM | YYYY-MM-DD\" → limites por ano, mês ou dia\n * - locale (padrão pt-BR), disabled\n *\n * Navegação : clique no cabeçalho (mês) → grade de meses;\n * clique no ano → grade de anos; ‹ › navegam conforme a visualização.\n *\n * Evento: `change` (composed):\n * - simples: detail { value }\n * - range: detail { start, end }\n */\n\ntype View = 'days' | 'months' | 'years';\ninterface Bound {\n lo: number;\n hi: number;\n}\n\nconst key = (y: number, m1: number, d: number): number => y * 10000 + m1 * 100 + d;\n\n/** Aceita \"YYYY\", \"YYYY-MM\" ou \"YYYY-MM-DD\" e devolve [menorChave, maiorChave]. */\nfunction parseBound(raw: string): Bound | null {\n const m = /^(\\d{4})(?:-(\\d{2}))?(?:-(\\d{2}))?$/.exec(raw.trim());\n if (!m) return null;\n const y = +m[1];\n const m1 = m[2] ? +m[2] : 1;\n const d = m[3] ? +m[3] : null;\n if (d !== null) return { lo: key(y, m1, d), hi: key(y, m1, d) };\n if (m[2]) return { lo: key(y, m1, 1), hi: key(y, m1, 31) };\n return { lo: key(y, 1, 1), hi: key(y, 12, 31) };\n}\n\nexport class FxCalendar extends FxElement {\n static override styles = css`\n :host {\n display: inline-block;\n font-family: var(--fx-font-family);\n font-size: var(--fx-font-size);\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 box-shadow: var(--fx-shadow-sm);\n padding: var(--fx-space-sm);\n user-select: none;\n }\n :host([disabled]) { opacity: 0.55; pointer-events: none; }\n .head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--fx-space-xs);\n margin-bottom: var(--fx-space-xs);\n }\n .nav,\n .title {\n border: none;\n background: none;\n color: var(--fx-text-default);\n cursor: pointer;\n font: inherit;\n border-radius: var(--fx-radius-sm);\n padding: var(--fx-space-3xs, 4px) var(--fx-space-xs);\n }\n .nav:hover, .title:hover { background: var(--fx-surface-surface-hover); }\n .title { font-weight: var(--fx-font-weight); text-transform: capitalize; flex: 1; }\n .grid {\n display: grid;\n grid-template-columns: repeat(7, 34px);\n gap: 2px;\n }\n .grid.months, .grid.years { grid-template-columns: repeat(4, minmax(52px, 1fr)); }\n .wd {\n text-align: center;\n color: var(--fx-text-muted);\n font-size: calc(var(--fx-font-size) - 2px);\n padding: var(--fx-space-3xs, 4px) 0;\n text-transform: capitalize;\n }\n .cell {\n position: relative;\n border: none;\n background: none;\n font: inherit;\n color: var(--fx-text-default);\n height: 32px;\n border-radius: var(--fx-radius-sm);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .cell:hover { background: color-mix(in srgb, var(--fx-color-primary) 12%, transparent); }\n .cell.muted { color: var(--fx-text-disabled); }\n .cell.today::after {\n content: '';\n position: absolute;\n bottom: 3px;\n width: 4px;\n height: 4px;\n border-radius: var(--fx-radius-full);\n background: var(--fx-color-primary);\n }\n .cell.sel {\n background: var(--fx-color-primary);\n color: #fff;\n font-weight: var(--fx-font-weight);\n }\n .cell.sel::after { background: #fff; }\n .cell.in-range {\n background: color-mix(in srgb, var(--fx-color-primary) 16%, transparent);\n border-radius: 0;\n }\n .grid.months .cell, .grid.years .cell { height: 40px; }\n .cell[disabled] { opacity: 0.35; cursor: not-allowed; pointer-events: none; }\n `;\n\n static override get observedAttributes(): string[] {\n return ['value', 'start', 'end', 'min', 'max', 'range', 'mode', 'values', 'locale', 'disabled'];\n }\n\n private view: View = 'days';\n private cursor = { y: new Date().getFullYear(), m: new Date().getMonth() };\n /** Período em construção (chaves numéricas). */\n private pickStart: number | null = null;\n private pickEnd: number | null = null;\n\n /** Modo de seleção: 'single' | 'range' | 'multiple'. */\n get mode(): 'single' | 'range' | 'multiple' {\n const m = this.getAttr('mode');\n if (m === 'range' || m === 'multiple') return m;\n return this.hasAttr('range') ? 'range' : 'single';\n }\n set mode(m: 'single' | 'range' | 'multiple') {\n this.setAttribute('mode', m);\n }\n\n get range(): boolean {\n return this.mode === 'range';\n }\n set range(value: boolean) {\n this.toggleAttr('range', Boolean(value));\n }\n\n /** Datas selecionadas no modo multiple (CSV no atributo). */\n get values(): string[] {\n const csv = this.getAttr('values');\n return csv ? csv.split(',').map((v) => v.trim()).filter(Boolean) : [];\n }\n set values(list: string[]) {\n this.setAttribute('values', list.join(','));\n }\n\n get value(): string {\n return this.getAttr('value');\n }\n set value(v: string) {\n this.setAttribute('value', v);\n }\n\n private bounds(): { min: Bound | null; max: Bound | null } {\n return {\n min: parseBound(this.getAttr('min', '')),\n max: parseBound(this.getAttr('max', '')),\n };\n }\n\n private locale(): string {\n return this.getAttr('locale', 'pt-BR');\n }\n\n private fmt(opts: Intl.DateTimeFormatOptions, d: Date): string {\n try {\n return new Intl.DateTimeFormat(this.locale(), opts).format(d);\n } catch {\n return new Intl.DateTimeFormat('pt-BR', opts).format(d);\n }\n }\n\n private dayDisabled(y: number, m: number, d: number): boolean {\n const { min, max } = this.bounds();\n const k = key(y, m + 1, d);\n return (min !== null && k < min.lo) || (max !== null && k > max.hi);\n }\n\n private monthDisabled(y: number, m1: number): boolean {\n const { min, max } = this.bounds();\n const lo = key(y, m1, 1);\n const hi = key(y, m1, 31);\n return (min !== null && hi < min.lo) || (max !== null && lo > max.hi);\n }\n\n private yearDisabled(y: number): boolean {\n const { min, max } = this.bounds();\n const lo = key(y, 1, 1);\n const hi = key(y, 12, 31);\n return (min !== null && hi < min.lo) || (max !== null && lo > max.hi);\n }\n\n private dayKeyOf(date: Date): number {\n return key(date.getFullYear(), date.getMonth() + 1, date.getDate());\n }\n\n private keyToDate(k: number): Date {\n return new Date(Math.floor(k / 10000), (Math.floor(k / 100) % 100) - 1, k % 100);\n }\n\n private iso(k: number): string {\n const d = this.keyToDate(k);\n const p = (n: number): string => String(n).padStart(2, '0');\n return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())}`;\n }\n\n /** Seleção atual para pintura (chaves). */\n private selection(): {\n start: number | null;\n end: number | null;\n single: number | null;\n multi: Set<number>;\n } {\n const multi = new Set(this.values.map((iso) => parseBound(iso)?.lo ?? 0).filter(Boolean));\n if (this.mode === 'range') {\n let s = this.pickStart;\n let e = this.pickEnd;\n const attrS = parseBound(this.getAttr('start', ''));\n const attrE = parseBound(this.getAttr('end', ''));\n if (s === null && attrS) s = attrS.lo;\n if (e === null && attrE) e = attrE.lo;\n return { start: s, end: e, single: null, multi };\n }\n if (this.mode === 'multiple') {\n return { start: null, end: null, single: null, multi };\n }\n const v = parseBound(this.getAttr('value', ''));\n return { start: null, end: null, single: v ? v.lo : null, multi };\n }\n\n private emit(): void {\n if (this.mode === 'range') {\n const detail = {\n start: this.pickStart !== null ? this.iso(this.pickStart) : this.getAttr('start', ''),\n end: this.pickEnd !== null ? this.iso(this.pickEnd) : this.getAttr('end', ''),\n };\n this.setAttribute('start', detail.start);\n this.setAttribute('end', detail.end);\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail }));\n } else if (this.mode === 'multiple') {\n const values = this.values;\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { values } }));\n } else {\n const value = this.getAttr('value');\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { value } }));\n }\n }\n\n private pickDay(k: number): void {\n if (this.mode === 'range') {\n if (this.pickStart === null || this.pickEnd !== null) {\n this.pickStart = k;\n this.pickEnd = null;\n this.setAttribute('start', this.iso(k));\n this.removeAttribute('end');\n this.render();\n return; // emite só ao completar o período\n }\n if (k < this.pickStart) [this.pickStart, this.pickEnd] = [k, this.pickStart];\n else this.pickEnd = k;\n this.emit();\n } else if (this.mode === 'multiple') {\n const set = new Set(this.values);\n const iso = this.iso(k);\n if (set.has(iso)) set.delete(iso);\n else set.add(iso);\n this.values = [...set].sort();\n this.emit();\n } else {\n this.value = this.iso(k);\n this.emit();\n }\n this.render();\n }\n\n private navigate(dir: -1 | 1): void {\n if (this.view === 'days') {\n const d = new Date(this.cursor.y, this.cursor.m + dir, 1);\n this.cursor = { y: d.getFullYear(), m: d.getMonth() };\n } else if (this.view === 'months') {\n this.cursor.y += dir;\n } else {\n this.cursor.y += dir * 12;\n }\n this.render();\n }\n\n protected override render(): void {\n const todayK = this.dayKeyOf(new Date());\n const sel = this.selection();\n const loc = this.locale();\n\n const titles: Record<View, string> = {\n days: this.fmt({ month: 'long', year: 'numeric' }, new Date(this.cursor.y, this.cursor.m, 1)),\n months: String(this.cursor.y),\n years: `${Math.floor(this.cursor.y / 12) * 12} – ${Math.floor(this.cursor.y / 12) * 12 + 11}`,\n };\n\n let cells = '';\n if (this.view === 'days') {\n const wds = [...Array(7)].map((_, i) =>\n this.fmt({ weekday: 'short' }, new Date(2024, 8, 1 + i)), // 01/09/2024 foi domingo\n );\n cells =\n wds.map((w) => `<span class=\"wd\">${w}</span>`).join('') +\n this.daysHtml(todayK, sel, loc);\n } else if (this.view === 'months') {\n cells = [...Array(12)]\n .map((_, i) => {\n const dis = this.monthDisabled(this.cursor.y, i + 1);\n return `<button type=\"button\" class=\"cell\" data-month=\"${i}\" ${dis ? 'disabled' : ''}>${this.fmt({ month: 'short' }, new Date(this.cursor.y, i, 1))}</button>`;\n })\n .join('');\n } else {\n const base = Math.floor(this.cursor.y / 12) * 12;\n cells = [...Array(12)]\n .map((_, i) => {\n const y = base + i;\n const dis = this.yearDisabled(y);\n return `<button type=\"button\" class=\"cell\" data-year=\"${y}\" ${dis ? 'disabled' : ''}>${y}</button>`;\n })\n .join('');\n }\n\n const titleAction =\n this.view === 'days'\n ? `data-goto=\"months\"`\n : this.view === 'months'\n ? `data-goto=\"years\"`\n : '';\n\n this.setTemplate(`\n <div class=\"head\">\n <button type=\"button\" class=\"nav\" data-nav=\"-1\" aria-label=\"Anterior\">‹</button>\n <button type=\"button\" class=\"title\" part=\"title\" ${titleAction}>${titles[this.view]}</button>\n <button type=\"button\" class=\"nav\" data-nav=\"1\" aria-label=\"Próximo\">›</button>\n </div>\n <div class=\"grid ${this.view}\">${cells}</div>\n `);\n\n this.root.querySelectorAll<HTMLButtonElement>('[data-nav]').forEach((b) =>\n b.addEventListener('click', () => this.navigate(Number(b.dataset.nav) as -1 | 1)),\n );\n const gotoBtn = this.root.querySelector<HTMLElement>('[data-goto]');\n gotoBtn?.addEventListener('click', () => {\n this.view = gotoBtn.dataset.goto as View;\n this.render();\n });\n\n this.root.querySelectorAll<HTMLButtonElement>('[data-day]').forEach((b) =>\n b.addEventListener('click', () => this.pickDay(Number(b.dataset.day!))),\n );\n this.root.querySelectorAll<HTMLButtonElement>('[data-month]').forEach((b) =>\n b.addEventListener('click', () => {\n this.cursor.m = Number(b.dataset.month!);\n this.view = 'days';\n this.render();\n }),\n );\n this.root.querySelectorAll<HTMLButtonElement>('[data-year]').forEach((b) =>\n b.addEventListener('click', () => {\n this.cursor.y = Number(b.dataset.year!);\n this.view = 'months';\n this.render();\n }),\n );\n }\n\n /** Grade de dias com preenchimento do mês anterior. */\n private daysHtml(todayK: number, sel: ReturnType<FxCalendar['selection']>, _loc: string): string {\n const { y, m } = this.cursor;\n const first = new Date(y, m, 1).getDay(); // 0=domingo\n const total = new Date(y, m + 1, 0).getDate();\n const prevTotal = new Date(y, m, 0).getDate();\n\n let html = '';\n for (let i = first - 1; i >= 0; i--) {\n html += `<span class=\"cell muted\">${prevTotal - i}</span>`;\n }\n for (let d = 1; d <= total; d++) {\n const k = key(y, m + 1, d);\n const isSel =\n sel.single === k || sel.start === k || sel.end === k || sel.multi.has(k);\n const inRange =\n sel.start !== null && sel.end !== null && k > sel.start && k < sel.end;\n const cls = ['cell', isSel ? 'sel' : '', inRange ? 'in-range' : '', k === todayK ? 'today' : '']\n .filter(Boolean)\n .join(' ');\n html += `<button type=\"button\" class=\"${cls}\" data-day=\"${k}\" ${this.dayDisabled(y, m, d) ? 'disabled' : ''}>${d}</button>`;\n }\n return html;\n }\n}\n\nexport function defineFxCalendar(): typeof FxCalendar {\n return defineElement('fx-calendar', FxCalendar);\n}\n\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { FxCalendar } from './calendar';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { defineFxCalendar } from "./calendar.js";
2
+ import { FxCalendar } from "./calendar.js";
3
+ defineFxCalendar();
4
+ export {
5
+ FxCalendar
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/calendar/index.ts"],"sourcesContent":["import { defineFxCalendar } from './calendar';\n\n// Reexporta a classe para uso programático (instanceof, herança).\nexport { FxCalendar } from './calendar';\n\n// Auto-registro ao importar o subpath `@wrrdev/fenix-ui/calendar`.\ndefineFxCalendar();\n"],"names":[],"mappings":";;AAMA,iBAAA;"}
@@ -0,0 +1,24 @@
1
+ import { FxElement } from '../../core/base';
2
+ /**
3
+ * <fx-checkbox> — Caixa de seleção com suporte a estado indeterminado.
4
+ *
5
+ * Atributos: checked, indeterminate, disabled, value, size (sm|md|lg).
6
+ * Evento: `change` (composed, detail: { checked, value }).
7
+ */
8
+ export declare class FxCheckbox extends FxElement {
9
+ static styles: string;
10
+ static get observedAttributes(): string[];
11
+ get checked(): boolean;
12
+ set checked(value: boolean);
13
+ get indeterminate(): boolean;
14
+ set indeterminate(value: boolean);
15
+ get disabled(): boolean;
16
+ set disabled(value: boolean);
17
+ /** Tamanho do controle. Padrão: `'md'`. */
18
+ get size(): string;
19
+ set size(value: string);
20
+ protected render(): void;
21
+ private toggle;
22
+ }
23
+ export declare function defineFxCheckbox(): typeof FxCheckbox;
24
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAgB,MAAM,SA6DpB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,2CAA2C;IAC3C,IAAI,IAAI,IAAI,MAAM,CAGjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;cAEkB,MAAM,IAAI,IAAI;IA6BjC,OAAO,CAAC,MAAM;CAYf;AAED,wBAAgB,gBAAgB,IAAI,OAAO,UAAU,CAEpD"}
@@ -0,0 +1,142 @@
1
+ import { FxElement } from "../../core/base.js";
2
+ import { css } from "../../core/css.js";
3
+ import { defineElement } from "../../core/define.js";
4
+ const _FxCheckbox = class _FxCheckbox extends FxElement {
5
+ static get observedAttributes() {
6
+ return ["checked", "disabled", "indeterminate"];
7
+ }
8
+ get checked() {
9
+ return this.hasAttr("checked");
10
+ }
11
+ set checked(value) {
12
+ this.toggleAttr("checked", Boolean(value));
13
+ }
14
+ get indeterminate() {
15
+ return this.hasAttr("indeterminate");
16
+ }
17
+ set indeterminate(value) {
18
+ this.toggleAttr("indeterminate", Boolean(value));
19
+ }
20
+ get disabled() {
21
+ return this.hasAttr("disabled");
22
+ }
23
+ set disabled(value) {
24
+ this.toggleAttr("disabled", Boolean(value));
25
+ }
26
+ /** Tamanho do controle. Padrão: `'md'`. */
27
+ get size() {
28
+ const s = this.getAttr("size", "md");
29
+ return s === "sm" || s === "lg" ? s : "md";
30
+ }
31
+ set size(value) {
32
+ this.setAttribute("size", value);
33
+ }
34
+ render() {
35
+ const px = this.size === "sm" ? "14px" : this.size === "lg" ? "22px" : "18px";
36
+ if (!this.style.getPropertyValue("--fx-size-checkbox")) {
37
+ this.style.setProperty("--fx-size-checkbox", px);
38
+ }
39
+ this.setTemplate(`
40
+ <span class="box" part="box" role="checkbox" tabindex="0"
41
+ aria-checked="${this.indeterminate ? "mixed" : this.checked}"
42
+ aria-disabled="${this.disabled}">
43
+ <span class="control" part="control">
44
+ <span class="mark">${this.indeterminate ? "–" : "✓"}</span>
45
+ </span>
46
+ <span class="label" part="label"><slot></slot></span>
47
+ </span>
48
+ `);
49
+ const box = this.root.querySelector(".box");
50
+ if (!box) return;
51
+ box.addEventListener("click", () => this.toggle());
52
+ box.addEventListener("keydown", (e) => {
53
+ if (e.key === " " || e.key === "Enter") {
54
+ e.preventDefault();
55
+ this.toggle();
56
+ }
57
+ });
58
+ }
59
+ toggle() {
60
+ if (this.disabled) return;
61
+ this.indeterminate = false;
62
+ this.checked = !this.checked;
63
+ this.dispatchEvent(
64
+ new CustomEvent("change", {
65
+ bubbles: true,
66
+ composed: true,
67
+ detail: { checked: this.checked, value: this.getAttr("value") }
68
+ })
69
+ );
70
+ }
71
+ };
72
+ _FxCheckbox.styles = css`
73
+ :host {
74
+ display: inline-flex;
75
+ vertical-align: middle;
76
+ font-family: var(--fx-font-family);
77
+ font-size: var(--fx-font-size);
78
+ }
79
+ .box {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ gap: var(--fx-space-sm);
83
+ cursor: pointer;
84
+ user-select: none;
85
+ color: var(--fx-text-default);
86
+ -webkit-tap-highlight-color: transparent;
87
+ }
88
+ .control {
89
+ width: var(--fx-size-checkbox, 18px);
90
+ height: var(--fx-size-checkbox, 18px);
91
+ flex-shrink: 0;
92
+ display: inline-flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ border: 2px solid var(--fx-border-hover);
96
+ border-radius: calc(var(--fx-radius-sm) + 2px);
97
+ background: var(--fx-surface-background);
98
+ color: #fff;
99
+ font-size: calc(var(--fx-size-checkbox, 18px) - 6px);
100
+ line-height: 1;
101
+ transition:
102
+ background-color var(--fx-motion-duration-fast) var(--fx-motion-easing),
103
+ border-color var(--fx-motion-duration-fast) var(--fx-motion-easing),
104
+ box-shadow var(--fx-motion-duration-fast) var(--fx-motion-easing);
105
+ }
106
+ .box:hover .control { border-color: var(--fx-color-primary); }
107
+ .box:focus-visible .control {
108
+ outline: none;
109
+ box-shadow: var(--fx-effect-focus-ring, none);
110
+ }
111
+ :host([checked]) .control {
112
+ background: var(--fx-color-primary);
113
+ border-color: var(--fx-color-primary);
114
+ }
115
+ :host([indeterminate]) .control {
116
+ background: var(--fx-color-primary);
117
+ border-color: var(--fx-color-primary);
118
+ }
119
+ /* Validação */
120
+ :host([error]) .control,
121
+ :host([invalid]) .control { border-color: var(--fx-color-danger, #dc2626); }
122
+ :host([success]) .control,
123
+ :host([valid]) .control { border-color: var(--fx-color-success, #16a34a); }
124
+ .mark { visibility: hidden; }
125
+ :host([checked]) .mark,
126
+ :host([indeterminate]) .mark { visibility: visible; }
127
+ .label { display: inline-flex; align-items: center; }
128
+ :host([disabled]) .box {
129
+ opacity: 0.55;
130
+ cursor: not-allowed;
131
+ pointer-events: none;
132
+ }
133
+ `;
134
+ let FxCheckbox = _FxCheckbox;
135
+ function defineFxCheckbox() {
136
+ return defineElement("fx-checkbox", FxCheckbox);
137
+ }
138
+ export {
139
+ FxCheckbox,
140
+ defineFxCheckbox
141
+ };
142
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/components/checkbox/checkbox.ts"],"sourcesContent":["import { FxElement } from '../../core/base';\nimport { css } from '../../core/css';\nimport { defineElement } from '../../core/define';\n\n/**\n * <fx-checkbox> — Caixa de seleção com suporte a estado indeterminado.\n *\n * Atributos: checked, indeterminate, disabled, value, size (sm|md|lg).\n * Evento: `change` (composed, detail: { checked, value }).\n */\nexport class FxCheckbox extends FxElement {\n static override styles = css`\n :host {\n display: inline-flex;\n vertical-align: middle;\n font-family: var(--fx-font-family);\n font-size: var(--fx-font-size);\n }\n .box {\n display: inline-flex;\n align-items: center;\n gap: var(--fx-space-sm);\n cursor: pointer;\n user-select: none;\n color: var(--fx-text-default);\n -webkit-tap-highlight-color: transparent;\n }\n .control {\n width: var(--fx-size-checkbox, 18px);\n height: var(--fx-size-checkbox, 18px);\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 2px solid var(--fx-border-hover);\n border-radius: calc(var(--fx-radius-sm) + 2px);\n background: var(--fx-surface-background);\n color: #fff;\n font-size: calc(var(--fx-size-checkbox, 18px) - 6px);\n line-height: 1;\n transition:\n background-color var(--fx-motion-duration-fast) var(--fx-motion-easing),\n border-color var(--fx-motion-duration-fast) var(--fx-motion-easing),\n box-shadow var(--fx-motion-duration-fast) var(--fx-motion-easing);\n }\n .box:hover .control { border-color: var(--fx-color-primary); }\n .box:focus-visible .control {\n outline: none;\n box-shadow: var(--fx-effect-focus-ring, none);\n }\n :host([checked]) .control {\n background: var(--fx-color-primary);\n border-color: var(--fx-color-primary);\n }\n :host([indeterminate]) .control {\n background: var(--fx-color-primary);\n border-color: var(--fx-color-primary);\n }\n /* Validação */\n :host([error]) .control,\n :host([invalid]) .control { border-color: var(--fx-color-danger, #dc2626); }\n :host([success]) .control,\n :host([valid]) .control { border-color: var(--fx-color-success, #16a34a); }\n .mark { visibility: hidden; }\n :host([checked]) .mark,\n :host([indeterminate]) .mark { visibility: visible; }\n .label { display: inline-flex; align-items: center; }\n :host([disabled]) .box {\n opacity: 0.55;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n\n static override get observedAttributes(): string[] {\n return ['checked', 'disabled', 'indeterminate'];\n }\n\n get checked(): boolean {\n return this.hasAttr('checked');\n }\n set checked(value: boolean) {\n this.toggleAttr('checked', Boolean(value));\n }\n\n get indeterminate(): boolean {\n return this.hasAttr('indeterminate');\n }\n set indeterminate(value: boolean) {\n this.toggleAttr('indeterminate', Boolean(value));\n }\n\n get disabled(): boolean {\n return this.hasAttr('disabled');\n }\n set disabled(value: boolean) {\n this.toggleAttr('disabled', Boolean(value));\n }\n\n /** Tamanho do controle. Padrão: `'md'`. */\n get size(): string {\n const s = this.getAttr('size', 'md');\n return s === 'sm' || s === 'lg' ? s : 'md';\n }\n set size(value: string) {\n this.setAttribute('size', value);\n }\n\n protected override render(): void {\n // Escala por tamanho via token local.\n const px = this.size === 'sm' ? '14px' : this.size === 'lg' ? '22px' : '18px';\n if (!this.style.getPropertyValue('--fx-size-checkbox')) {\n this.style.setProperty('--fx-size-checkbox', px);\n }\n\n this.setTemplate(`\n <span class=\"box\" part=\"box\" role=\"checkbox\" tabindex=\"0\"\n aria-checked=\"${this.indeterminate ? 'mixed' : this.checked}\"\n aria-disabled=\"${this.disabled}\">\n <span class=\"control\" part=\"control\">\n <span class=\"mark\">${this.indeterminate ? '–' : '✓'}</span>\n </span>\n <span class=\"label\" part=\"label\"><slot></slot></span>\n </span>\n `);\n\n const box = this.root.querySelector<HTMLElement>('.box');\n if (!box) return;\n box.addEventListener('click', () => this.toggle());\n box.addEventListener('keydown', (e) => {\n if ((e as KeyboardEvent).key === ' ' || (e as KeyboardEvent).key === 'Enter') {\n e.preventDefault();\n this.toggle();\n }\n });\n }\n\n private toggle(): void {\n if (this.disabled) return;\n this.indeterminate = false; // interagir resolve o estado misto\n this.checked = !this.checked;\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { checked: this.checked, value: this.getAttr('value') },\n }),\n );\n }\n}\n\nexport function defineFxCheckbox(): typeof FxCheckbox {\n return defineElement('fx-checkbox', FxCheckbox);\n}\n"],"names":[],"mappings":";;;AAUO,MAAM,cAAN,MAAM,oBAAmB,UAAU;AAAA,EAgExC,WAAoB,qBAA+B;AACjD,WAAO,CAAC,WAAW,YAAY,eAAe;AAAA,EAChD;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,KAAK,QAAQ,SAAS;AAAA,EAC/B;AAAA,EACA,IAAI,QAAQ,OAAgB;AAC1B,SAAK,WAAW,WAAW,QAAQ,KAAK,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,gBAAyB;AAC3B,WAAO,KAAK,QAAQ,eAAe;AAAA,EACrC;AAAA,EACA,IAAI,cAAc,OAAgB;AAChC,SAAK,WAAW,iBAAiB,QAAQ,KAAK,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,QAAQ,UAAU;AAAA,EAChC;AAAA,EACA,IAAI,SAAS,OAAgB;AAC3B,SAAK,WAAW,YAAY,QAAQ,KAAK,CAAC;AAAA,EAC5C;AAAA;AAAA,EAGA,IAAI,OAAe;AACjB,UAAM,IAAI,KAAK,QAAQ,QAAQ,IAAI;AACnC,WAAO,MAAM,QAAQ,MAAM,OAAO,IAAI;AAAA,EACxC;AAAA,EACA,IAAI,KAAK,OAAe;AACtB,SAAK,aAAa,QAAQ,KAAK;AAAA,EACjC;AAAA,EAEmB,SAAe;AAEhC,UAAM,KAAK,KAAK,SAAS,OAAO,SAAS,KAAK,SAAS,OAAO,SAAS;AACvE,QAAI,CAAC,KAAK,MAAM,iBAAiB,oBAAoB,GAAG;AACtD,WAAK,MAAM,YAAY,sBAAsB,EAAE;AAAA,IACjD;AAEA,SAAK,YAAY;AAAA;AAAA,wBAEG,KAAK,gBAAgB,UAAU,KAAK,OAAO;AAAA,yBAC1C,KAAK,QAAQ;AAAA;AAAA,+BAEP,KAAK,gBAAgB,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA,KAIxD;AAED,UAAM,MAAM,KAAK,KAAK,cAA2B,MAAM;AACvD,QAAI,CAAC,IAAK;AACV,QAAI,iBAAiB,SAAS,MAAM,KAAK,QAAQ;AACjD,QAAI,iBAAiB,WAAW,CAAC,MAAM;AACrC,UAAK,EAAoB,QAAQ,OAAQ,EAAoB,QAAQ,SAAS;AAC5E,UAAE,eAAA;AACF,aAAK,OAAA;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,SAAe;AACrB,QAAI,KAAK,SAAU;AACnB,SAAK,gBAAgB;AACrB,SAAK,UAAU,CAAC,KAAK;AACrB,SAAK;AAAA,MACH,IAAI,YAAY,UAAU;AAAA,QACxB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,EAAE,SAAS,KAAK,SAAS,OAAO,KAAK,QAAQ,OAAO,EAAA;AAAA,MAAE,CAC/D;AAAA,IAAA;AAAA,EAEL;AACF;AA1IE,YAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADpB,IAAM,aAAN;AA6IA,SAAS,mBAAsC;AACpD,SAAO,cAAc,eAAe,UAAU;AAChD;"}
@@ -0,0 +1,2 @@
1
+ export { FxCheckbox } from './checkbox';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { defineFxCheckbox } from "./checkbox.js";
2
+ import { FxCheckbox } from "./checkbox.js";
3
+ defineFxCheckbox();
4
+ export {
5
+ FxCheckbox
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/checkbox/index.ts"],"sourcesContent":["import { defineFxCheckbox } from './checkbox';\n\n// Reexporta a classe para uso programático (instanceof, herança).\nexport { FxCheckbox } from './checkbox';\n\n// Auto-registro ao importar o subpath `@wrrdev/fenix-ui/checkbox`.\ndefineFxCheckbox();\n"],"names":[],"mappings":";;AAMA,iBAAA;"}
@@ -0,0 +1,62 @@
1
+ import { FxElement } from '../../core/base';
2
+ /**
3
+ * <fx-datepicker> — Campo de data com calendário suspenso.
4
+ *
5
+ * Um input com ícone de calendário no final; ao clicar, abre o
6
+ * <fx-calendar> em um popover. As datas selecionadas aparecem no input.
7
+ *
8
+ * Atributos:
9
+ * - mode="single" | "range" | "multiple" (padrão: single)
10
+ * - value="YYYY-MM-DD" → single
11
+ * - start/end → range
12
+ * - values="a,b,c" → múltiplas datas (CSV)
13
+ * - min/max, placeholder, disabled, clearable, size (sm|md|lg)
14
+ * - format="dd/mm/yyyy" → máscara de exibição (tokens: dd mm yyyy, HH MM SS)
15
+ * - show-time → inclui seleção de hora:minuto:segundo no popover;
16
+ * o valor passa a ser "YYYY-MM-DDTHH:mm:ss"
17
+ *
18
+ * Evento: `change` (composed):
19
+ * - single: { value }
20
+ * - range: { value, start, end }
21
+ * - multiple: { values: string[] }
22
+ */
23
+ export declare class FxDatepicker extends FxElement {
24
+ static styles: string;
25
+ static get observedAttributes(): string[];
26
+ private docListener?;
27
+ /** Hora/minuto/segundo do modo show-time. */
28
+ private time;
29
+ get mode(): string;
30
+ set mode(value: string);
31
+ get value(): string;
32
+ set value(v: string);
33
+ /** Datas do modo múltiplo (CSV no atributo). */
34
+ get values(): string[];
35
+ set values(list: string[]);
36
+ get disabled(): boolean;
37
+ set disabled(value: boolean);
38
+ protected connectedCallback(): void;
39
+ protected disconnectedCallback(): void;
40
+ /** Formata uma data ISO ("YYYY-MM-DD" ou com "THH:mm:ss") segundo o atributo format. */
41
+ private formatDate;
42
+ /** Texto exibido no input conforme o modo. */
43
+ private displayText;
44
+ /** "HH:MM:SS" do estado interno de show-time. */
45
+ private timeText;
46
+ /** Extrai hora de um valor ISO inicial, se houver. */
47
+ private loadTimeFromValue;
48
+ /** Anexa o horário interno ao ISO puro vindo do calendário. */
49
+ private withTime;
50
+ protected render(): void;
51
+ private emitChange;
52
+ /**
53
+ * Interpreta o texto digitado livremente e devolve ISO "YYYY-MM-DD"
54
+ * (ou null se inválido). Aceita a máscara do atributo `format`
55
+ * (tokens dd/mm/yyyy) ou ISO direto.
56
+ */
57
+ private parseTyped;
58
+ /** Aplica o texto digitado no modo free-text (blur/Enter). */
59
+ private commitTyped;
60
+ }
61
+ export declare function defineFxDatepicker(): typeof FxDatepicker;
62
+ //# sourceMappingURL=datepicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../src/components/datepicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAgB,MAAM,SA+IpB;IAEF,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,OAAO,CAAC,WAAW,CAAC,CAAqB;IACzC,6CAA6C;IAC7C,OAAO,CAAC,IAAI,CAAwB;IAEpC,IAAI,IAAI,IAAI,MAAM,CAGjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAED,gDAAgD;IAChD,IAAI,MAAM,IAAI,MAAM,EAAE,CAGrB;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAExB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;cAEkB,iBAAiB,IAAI,IAAI;cAWzB,oBAAoB,IAAI,IAAI;IAK/C,wFAAwF;IACxF,OAAO,CAAC,UAAU;IAyBlB,8CAA8C;IAC9C,OAAO,CAAC,WAAW;IAoBnB,iDAAiD;IACjD,OAAO,CAAC,QAAQ;IAKhB,sDAAsD;IACtD,OAAO,CAAC,iBAAiB;IAQzB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ;cAOG,MAAM,IAAI,IAAI;IAqJjC,OAAO,CAAC,UAAU;IAMlB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAgClB,8DAA8D;IAC9D,OAAO,CAAC,WAAW;CAkCpB;AAED,wBAAgB,kBAAkB,IAAI,OAAO,YAAY,CAExD"}