acai-ui 1.65.5

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 (1139) hide show
  1. package/CHANGELOG.md +795 -0
  2. package/README.md +64 -0
  3. package/dist/acai-ui.css +14627 -0
  4. package/dist/components/actions/acai-ui-actions.d.ts +3 -0
  5. package/dist/components/async-select/acai-ui-async-select-interface.d.ts +48 -0
  6. package/dist/components/async-select/acai-ui-async-select-interface.d.ts.map +1 -0
  7. package/dist/components/async-select/acai-ui-async-select.d.ts +3 -0
  8. package/dist/components/badge/acai-ui-badge-interface.d.ts +20 -0
  9. package/dist/components/badge/acai-ui-badge-interface.d.ts.map +1 -0
  10. package/dist/components/badge/acai-ui-badge.d.ts +3 -0
  11. package/dist/components/banner/acai-ui-banner-interface.d.ts +16 -0
  12. package/dist/components/banner/acai-ui-banner-interface.d.ts.map +1 -0
  13. package/dist/components/banner/acai-ui-banner.d.ts +3 -0
  14. package/dist/components/button/acai-ui-button-interface.d.ts +21 -0
  15. package/dist/components/button/acai-ui-button-interface.d.ts.map +1 -0
  16. package/dist/components/button/acai-ui-button.d.ts +3 -0
  17. package/dist/components/card/acai-ui-card-interface.d.ts +14 -0
  18. package/dist/components/card/acai-ui-card-interface.d.ts.map +1 -0
  19. package/dist/components/card/acai-ui-card.d.ts +3 -0
  20. package/dist/components/chart/acai-ui-chart-interface.d.ts +190 -0
  21. package/dist/components/chart/acai-ui-chart-interface.d.ts.map +1 -0
  22. package/dist/components/chart/acai-ui-chart.d.ts +3 -0
  23. package/dist/components/chart/chart-a11y.d.ts +40 -0
  24. package/dist/components/chart/chart-a11y.d.ts.map +1 -0
  25. package/dist/components/chart/chart-caminhos.d.ts +91 -0
  26. package/dist/components/chart/chart-caminhos.d.ts.map +1 -0
  27. package/dist/components/chart/chart-cartesiano.d.ts +3 -0
  28. package/dist/components/chart/chart-dados.d.ts +74 -0
  29. package/dist/components/chart/chart-dados.d.ts.map +1 -0
  30. package/dist/components/chart/chart-escalas.d.ts +45 -0
  31. package/dist/components/chart/chart-escalas.d.ts.map +1 -0
  32. package/dist/components/chart/chart-formatar.d.ts +21 -0
  33. package/dist/components/chart/chart-formatar.d.ts.map +1 -0
  34. package/dist/components/chart/chart-gauge.d.ts +3 -0
  35. package/dist/components/chart/chart-headless.d.ts +29 -0
  36. package/dist/components/chart/chart-headless.d.ts.map +1 -0
  37. package/dist/components/chart/chart-imagem.d.ts +51 -0
  38. package/dist/components/chart/chart-imagem.d.ts.map +1 -0
  39. package/dist/components/chart/chart-layout.d.ts +59 -0
  40. package/dist/components/chart/chart-layout.d.ts.map +1 -0
  41. package/dist/components/chart/chart-legenda.d.ts +3 -0
  42. package/dist/components/chart/chart-pizza.d.ts +3 -0
  43. package/dist/components/chart/chart-plano.d.ts +201 -0
  44. package/dist/components/chart/chart-plano.d.ts.map +1 -0
  45. package/dist/components/chart/chart-rotulos.d.ts +10 -0
  46. package/dist/components/chart/chart-rotulos.d.ts.map +1 -0
  47. package/dist/components/chart/chart-tabela.d.ts +3 -0
  48. package/dist/components/chart/chart-ticks.d.ts +35 -0
  49. package/dist/components/chart/chart-ticks.d.ts.map +1 -0
  50. package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts +16 -0
  51. package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts.map +1 -0
  52. package/dist/components/checkbox/acai-ui-checkbox.d.ts +3 -0
  53. package/dist/components/chip/acai-ui-chip-interface.d.ts +17 -0
  54. package/dist/components/chip/acai-ui-chip-interface.d.ts.map +1 -0
  55. package/dist/components/chip/acai-ui-chip.d.ts +3 -0
  56. package/dist/components/code/acai-ui-code-interface.d.ts +44 -0
  57. package/dist/components/code/acai-ui-code-interface.d.ts.map +1 -0
  58. package/dist/components/code/acai-ui-code.d.ts +3 -0
  59. package/dist/components/code/dobras-json.d.ts +14 -0
  60. package/dist/components/code/dobras-json.d.ts.map +1 -0
  61. package/dist/components/confirm/acai-ui-confirm.d.ts +3 -0
  62. package/dist/components/container/acai-ui-container-interface.d.ts +29 -0
  63. package/dist/components/container/acai-ui-container-interface.d.ts.map +1 -0
  64. package/dist/components/container/acai-ui-container.d.ts +3 -0
  65. package/dist/components/date/acai-ui-date-interface.d.ts +19 -0
  66. package/dist/components/date/acai-ui-date-interface.d.ts.map +1 -0
  67. package/dist/components/date/acai-ui-date.d.ts +3 -0
  68. package/dist/components/date-range/acai-ui-date-range-interface.d.ts +27 -0
  69. package/dist/components/date-range/acai-ui-date-range-interface.d.ts.map +1 -0
  70. package/dist/components/date-range/acai-ui-date-range.d.ts +3 -0
  71. package/dist/components/datetime/acai-ui-datetime-interface.d.ts +10 -0
  72. package/dist/components/datetime/acai-ui-datetime-interface.d.ts.map +1 -0
  73. package/dist/components/datetime/acai-ui-datetime.d.ts +3 -0
  74. package/dist/components/dialog/acai-ui-dialog-interface.d.ts +17 -0
  75. package/dist/components/dialog/acai-ui-dialog-interface.d.ts.map +1 -0
  76. package/dist/components/dialog/acai-ui-dialog.d.ts +3 -0
  77. package/dist/components/divider/acai-ui-divider-interface.d.ts +5 -0
  78. package/dist/components/divider/acai-ui-divider-interface.d.ts.map +1 -0
  79. package/dist/components/divider/acai-ui-divider.d.ts +3 -0
  80. package/dist/components/drawer/acai-ui-drawer-interface.d.ts +97 -0
  81. package/dist/components/drawer/acai-ui-drawer-interface.d.ts.map +1 -0
  82. package/dist/components/drawer/acai-ui-drawer.d.ts +3 -0
  83. package/dist/components/drawer/drawer-sidebar-helper.d.ts +4 -0
  84. package/dist/components/drawer/drawer-sidebar-helper.d.ts.map +1 -0
  85. package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts +35 -0
  86. package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts.map +1 -0
  87. package/dist/components/dropdown/acai-ui-dropdown-item.d.ts +3 -0
  88. package/dist/components/dropdown/acai-ui-dropdown.d.ts +3 -0
  89. package/dist/components/error-log/acai-ui-error-log-interface.d.ts +59 -0
  90. package/dist/components/error-log/acai-ui-error-log-interface.d.ts.map +1 -0
  91. package/dist/components/error-log/acai-ui-error-log-json-tree.d.ts +3 -0
  92. package/dist/components/error-log/acai-ui-error-log-redigir.d.ts +28 -0
  93. package/dist/components/error-log/acai-ui-error-log-redigir.d.ts.map +1 -0
  94. package/dist/components/error-log/acai-ui-error-log.d.ts +3 -0
  95. package/dist/components/file/acai-ui-file-interface.d.ts +13 -0
  96. package/dist/components/file/acai-ui-file-interface.d.ts.map +1 -0
  97. package/dist/components/file/acai-ui-file.d.ts +3 -0
  98. package/dist/components/form/acai-ui-form-interface.d.ts +37 -0
  99. package/dist/components/form/acai-ui-form-interface.d.ts.map +1 -0
  100. package/dist/components/form/acai-ui-form.d.ts +3 -0
  101. package/dist/components/help/acai-ui-help-interface.d.ts +184 -0
  102. package/dist/components/help/acai-ui-help-interface.d.ts.map +1 -0
  103. package/dist/components/help/acai-ui-help.d.ts +3 -0
  104. package/dist/components/help/acai-ui-tour.d.ts +3 -0
  105. package/dist/components/help/tour-escolha.d.ts +62 -0
  106. package/dist/components/help/tour-escolha.d.ts.map +1 -0
  107. package/dist/components/help/tour-posicionar.d.ts +39 -0
  108. package/dist/components/help/tour-posicionar.d.ts.map +1 -0
  109. package/dist/components/help/tour-registry.d.ts +54 -0
  110. package/dist/components/help/tour-registry.d.ts.map +1 -0
  111. package/dist/components/help/use-tour-visto.d.ts +11 -0
  112. package/dist/components/help/use-tour-visto.d.ts.map +1 -0
  113. package/dist/components/icon/acai-ui-icon-interface.d.ts +12 -0
  114. package/dist/components/icon/acai-ui-icon-interface.d.ts.map +1 -0
  115. package/dist/components/icon/acai-ui-icon.d.ts +3 -0
  116. package/dist/components/index.d.ts +89 -0
  117. package/dist/components/index.d.ts.map +1 -0
  118. package/dist/components/input/acai-ui-input-interface.d.ts +20 -0
  119. package/dist/components/input/acai-ui-input-interface.d.ts.map +1 -0
  120. package/dist/components/input/acai-ui-input.d.ts +3 -0
  121. package/dist/components/modal/acai-ui-modal-interface.d.ts +16 -0
  122. package/dist/components/modal/acai-ui-modal-interface.d.ts.map +1 -0
  123. package/dist/components/modal/acai-ui-modal.d.ts +3 -0
  124. package/dist/components/pagination/acai-ui-pagination-interface.d.ts +9 -0
  125. package/dist/components/pagination/acai-ui-pagination-interface.d.ts.map +1 -0
  126. package/dist/components/pagination/acai-ui-pagination.d.ts +3 -0
  127. package/dist/components/preferences/acai-ui-preferences-interface.d.ts +5 -0
  128. package/dist/components/preferences/acai-ui-preferences-interface.d.ts.map +1 -0
  129. package/dist/components/preferences/acai-ui-preferences.d.ts +3 -0
  130. package/dist/components/progress/acai-ui-progress-interface.d.ts +18 -0
  131. package/dist/components/progress/acai-ui-progress-interface.d.ts.map +1 -0
  132. package/dist/components/progress/acai-ui-progress.d.ts +3 -0
  133. package/dist/components/radio/acai-ui-radio-interface.d.ts +13 -0
  134. package/dist/components/radio/acai-ui-radio-interface.d.ts.map +1 -0
  135. package/dist/components/radio/acai-ui-radio.d.ts +3 -0
  136. package/dist/components/section/acai-ui-section.d.ts +3 -0
  137. package/dist/components/select/acai-ui-select-interface.d.ts +18 -0
  138. package/dist/components/select/acai-ui-select-interface.d.ts.map +1 -0
  139. package/dist/components/select/acai-ui-select.d.ts +3 -0
  140. package/dist/components/session-clock/acai-ui-session-clock.d.ts +3 -0
  141. package/dist/components/stepper/acai-ui-step-interface.d.ts +18 -0
  142. package/dist/components/stepper/acai-ui-step-interface.d.ts.map +1 -0
  143. package/dist/components/stepper/acai-ui-step.d.ts +3 -0
  144. package/dist/components/stepper/acai-ui-stepper-interface.d.ts +53 -0
  145. package/dist/components/stepper/acai-ui-stepper-interface.d.ts.map +1 -0
  146. package/dist/components/stepper/acai-ui-stepper.d.ts +3 -0
  147. package/dist/components/swagger/acai-ui-swagger-interface.d.ts +53 -0
  148. package/dist/components/swagger/acai-ui-swagger-interface.d.ts.map +1 -0
  149. package/dist/components/swagger/acai-ui-swagger-operacao.d.ts +3 -0
  150. package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts +76 -0
  151. package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts.map +1 -0
  152. package/dist/components/swagger/acai-ui-swagger-schema.d.ts +3 -0
  153. package/dist/components/swagger/acai-ui-swagger.d.ts +3 -0
  154. package/dist/components/swagger/openapi-normalizar.d.ts +51 -0
  155. package/dist/components/swagger/openapi-normalizar.d.ts.map +1 -0
  156. package/dist/components/swagger/openapi-tipos.d.ts +167 -0
  157. package/dist/components/swagger/openapi-tipos.d.ts.map +1 -0
  158. package/dist/components/table/acai-ui-table-interface.d.ts +47 -0
  159. package/dist/components/table/acai-ui-table-interface.d.ts.map +1 -0
  160. package/dist/components/table/acai-ui-table-justificativa.d.ts +3 -0
  161. package/dist/components/table/acai-ui-table.d.ts +3 -0
  162. package/dist/components/tabs/acai-ui-tab.d.ts +3 -0
  163. package/dist/components/tabs/acai-ui-tabs-interface.d.ts +32 -0
  164. package/dist/components/tabs/acai-ui-tabs-interface.d.ts.map +1 -0
  165. package/dist/components/tabs/acai-ui-tabs.d.ts +3 -0
  166. package/dist/components/time/acai-ui-time-interface.d.ts +15 -0
  167. package/dist/components/time/acai-ui-time-interface.d.ts.map +1 -0
  168. package/dist/components/time/acai-ui-time.d.ts +3 -0
  169. package/dist/components/toggle/acai-ui-toggle-interface.d.ts +12 -0
  170. package/dist/components/toggle/acai-ui-toggle-interface.d.ts.map +1 -0
  171. package/dist/components/toggle/acai-ui-toggle.d.ts +3 -0
  172. package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts +9 -0
  173. package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts.map +1 -0
  174. package/dist/components/tooltip/acai-ui-tooltip.d.ts +3 -0
  175. package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts +14 -0
  176. package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts.map +1 -0
  177. package/dist/components/user-menu/acai-ui-user-menu.d.ts +3 -0
  178. package/dist/components/validation/acai-ui-validation.d.ts +3 -0
  179. package/dist/constants/chart-paleta.d.ts +47 -0
  180. package/dist/constants/chart-paleta.d.ts.map +1 -0
  181. package/dist/constants/efeitos.d.ts +22 -0
  182. package/dist/constants/efeitos.d.ts.map +1 -0
  183. package/dist/constants/index.d.ts +13 -0
  184. package/dist/constants/index.d.ts.map +1 -0
  185. package/dist/constants/lista-icons.d.ts +156 -0
  186. package/dist/constants/lista-icons.d.ts.map +1 -0
  187. package/dist/constants/medidas-espacos.d.ts +15 -0
  188. package/dist/constants/medidas-espacos.d.ts.map +1 -0
  189. package/dist/constants/radius.d.ts +15 -0
  190. package/dist/constants/radius.d.ts.map +1 -0
  191. package/dist/constants/status-badge.d.ts +17 -0
  192. package/dist/constants/status-badge.d.ts.map +1 -0
  193. package/dist/hooks/filtros-url-internos.d.ts +121 -0
  194. package/dist/hooks/filtros-url-internos.d.ts.map +1 -0
  195. package/dist/hooks/index.d.ts +18 -0
  196. package/dist/hooks/index.d.ts.map +1 -0
  197. package/dist/hooks/notify.d.ts +8 -0
  198. package/dist/hooks/notify.d.ts.map +1 -0
  199. package/dist/hooks/use-contador-sessao.d.ts +22 -0
  200. package/dist/hooks/use-contador-sessao.d.ts.map +1 -0
  201. package/dist/hooks/use-filtros-na-url.d.ts +110 -0
  202. package/dist/hooks/use-filtros-na-url.d.ts.map +1 -0
  203. package/dist/hooks/use-leitura-voz.d.ts +60 -0
  204. package/dist/hooks/use-leitura-voz.d.ts.map +1 -0
  205. package/dist/hooks/use-listagem-na-url.d.ts +185 -0
  206. package/dist/hooks/use-listagem-na-url.d.ts.map +1 -0
  207. package/dist/hooks/use-preferencias.d.ts +60 -0
  208. package/dist/hooks/use-preferencias.d.ts.map +1 -0
  209. package/dist/hooks/use-repasse-quasar.d.ts +42 -0
  210. package/dist/hooks/use-repasse-quasar.d.ts.map +1 -0
  211. package/dist/hooks/use-tamanho-elemento.d.ts +26 -0
  212. package/dist/hooks/use-tamanho-elemento.d.ts.map +1 -0
  213. package/dist/hooks/use-tela.d.ts +84 -0
  214. package/dist/hooks/use-tela.d.ts.map +1 -0
  215. package/dist/hooks/use-validacao-visual.d.ts +40 -0
  216. package/dist/hooks/use-validacao-visual.d.ts.map +1 -0
  217. package/dist/index.cjs +249 -0
  218. package/dist/index.cjs.map +1 -0
  219. package/dist/index.d.ts +8 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.mjs +249 -0
  222. package/dist/index.mjs.map +1 -0
  223. package/dist/index10.cjs +24 -0
  224. package/dist/index10.cjs.map +1 -0
  225. package/dist/index10.mjs +25 -0
  226. package/dist/index10.mjs.map +1 -0
  227. package/dist/index100.cjs +51 -0
  228. package/dist/index100.cjs.map +1 -0
  229. package/dist/index100.mjs +51 -0
  230. package/dist/index100.mjs.map +1 -0
  231. package/dist/index101.cjs +143 -0
  232. package/dist/index101.cjs.map +1 -0
  233. package/dist/index101.mjs +143 -0
  234. package/dist/index101.mjs.map +1 -0
  235. package/dist/index102.cjs +137 -0
  236. package/dist/index102.cjs.map +1 -0
  237. package/dist/index102.mjs +138 -0
  238. package/dist/index102.mjs.map +1 -0
  239. package/dist/index104.cjs +10 -0
  240. package/dist/index104.cjs.map +1 -0
  241. package/dist/index104.mjs +11 -0
  242. package/dist/index104.mjs.map +1 -0
  243. package/dist/index105.cjs +5 -0
  244. package/dist/index105.cjs.map +1 -0
  245. package/dist/index105.mjs +6 -0
  246. package/dist/index105.mjs.map +1 -0
  247. package/dist/index106.cjs +5 -0
  248. package/dist/index106.cjs.map +1 -0
  249. package/dist/index106.mjs +6 -0
  250. package/dist/index106.mjs.map +1 -0
  251. package/dist/index107.cjs +86 -0
  252. package/dist/index107.cjs.map +1 -0
  253. package/dist/index107.mjs +87 -0
  254. package/dist/index107.mjs.map +1 -0
  255. package/dist/index109.cjs +123 -0
  256. package/dist/index109.cjs.map +1 -0
  257. package/dist/index109.mjs +124 -0
  258. package/dist/index109.mjs.map +1 -0
  259. package/dist/index111.cjs +121 -0
  260. package/dist/index111.cjs.map +1 -0
  261. package/dist/index111.mjs +122 -0
  262. package/dist/index111.mjs.map +1 -0
  263. package/dist/index113.cjs +72 -0
  264. package/dist/index113.cjs.map +1 -0
  265. package/dist/index113.mjs +73 -0
  266. package/dist/index113.mjs.map +1 -0
  267. package/dist/index115.cjs +5 -0
  268. package/dist/index115.cjs.map +1 -0
  269. package/dist/index115.mjs +6 -0
  270. package/dist/index115.mjs.map +1 -0
  271. package/dist/index116.cjs +56 -0
  272. package/dist/index116.cjs.map +1 -0
  273. package/dist/index116.mjs +57 -0
  274. package/dist/index116.mjs.map +1 -0
  275. package/dist/index118.cjs +5 -0
  276. package/dist/index118.cjs.map +1 -0
  277. package/dist/index118.mjs +6 -0
  278. package/dist/index118.mjs.map +1 -0
  279. package/dist/index119.cjs +210 -0
  280. package/dist/index119.cjs.map +1 -0
  281. package/dist/index119.mjs +211 -0
  282. package/dist/index119.mjs.map +1 -0
  283. package/dist/index12.cjs +606 -0
  284. package/dist/index12.cjs.map +1 -0
  285. package/dist/index12.mjs +607 -0
  286. package/dist/index12.mjs.map +1 -0
  287. package/dist/index121.cjs +170 -0
  288. package/dist/index121.cjs.map +1 -0
  289. package/dist/index121.mjs +171 -0
  290. package/dist/index121.mjs.map +1 -0
  291. package/dist/index123.cjs +109 -0
  292. package/dist/index123.cjs.map +1 -0
  293. package/dist/index123.mjs +110 -0
  294. package/dist/index123.mjs.map +1 -0
  295. package/dist/index125.cjs +5 -0
  296. package/dist/index125.cjs.map +1 -0
  297. package/dist/index125.mjs +6 -0
  298. package/dist/index125.mjs.map +1 -0
  299. package/dist/index126.cjs +4 -0
  300. package/dist/index126.cjs.map +1 -0
  301. package/dist/index126.mjs +5 -0
  302. package/dist/index126.mjs.map +1 -0
  303. package/dist/index127.cjs +300 -0
  304. package/dist/index127.cjs.map +1 -0
  305. package/dist/index127.mjs +301 -0
  306. package/dist/index127.mjs.map +1 -0
  307. package/dist/index130.cjs +5 -0
  308. package/dist/index130.cjs.map +1 -0
  309. package/dist/index130.mjs +6 -0
  310. package/dist/index130.mjs.map +1 -0
  311. package/dist/index131.cjs +5 -0
  312. package/dist/index131.cjs.map +1 -0
  313. package/dist/index131.mjs +6 -0
  314. package/dist/index131.mjs.map +1 -0
  315. package/dist/index132.cjs +128 -0
  316. package/dist/index132.cjs.map +1 -0
  317. package/dist/index132.mjs +129 -0
  318. package/dist/index132.mjs.map +1 -0
  319. package/dist/index134.cjs +4 -0
  320. package/dist/index134.cjs.map +1 -0
  321. package/dist/index134.mjs +5 -0
  322. package/dist/index134.mjs.map +1 -0
  323. package/dist/index135.cjs +180 -0
  324. package/dist/index135.cjs.map +1 -0
  325. package/dist/index135.mjs +181 -0
  326. package/dist/index135.mjs.map +1 -0
  327. package/dist/index137.cjs +83 -0
  328. package/dist/index137.cjs.map +1 -0
  329. package/dist/index137.mjs +84 -0
  330. package/dist/index137.mjs.map +1 -0
  331. package/dist/index139.cjs +284 -0
  332. package/dist/index139.cjs.map +1 -0
  333. package/dist/index139.mjs +285 -0
  334. package/dist/index139.mjs.map +1 -0
  335. package/dist/index14.cjs +124 -0
  336. package/dist/index14.cjs.map +1 -0
  337. package/dist/index14.mjs +125 -0
  338. package/dist/index14.mjs.map +1 -0
  339. package/dist/index141.cjs +58 -0
  340. package/dist/index141.cjs.map +1 -0
  341. package/dist/index141.mjs +59 -0
  342. package/dist/index141.mjs.map +1 -0
  343. package/dist/index143.cjs +5 -0
  344. package/dist/index143.cjs.map +1 -0
  345. package/dist/index143.mjs +6 -0
  346. package/dist/index143.mjs.map +1 -0
  347. package/dist/index144.cjs +399 -0
  348. package/dist/index144.cjs.map +1 -0
  349. package/dist/index144.mjs +400 -0
  350. package/dist/index144.mjs.map +1 -0
  351. package/dist/index146.cjs +305 -0
  352. package/dist/index146.cjs.map +1 -0
  353. package/dist/index146.mjs +306 -0
  354. package/dist/index146.mjs.map +1 -0
  355. package/dist/index149.cjs +109 -0
  356. package/dist/index149.cjs.map +1 -0
  357. package/dist/index149.mjs +110 -0
  358. package/dist/index149.mjs.map +1 -0
  359. package/dist/index152.cjs +5 -0
  360. package/dist/index152.cjs.map +1 -0
  361. package/dist/index152.mjs +6 -0
  362. package/dist/index152.mjs.map +1 -0
  363. package/dist/index153.cjs +5 -0
  364. package/dist/index153.cjs.map +1 -0
  365. package/dist/index153.mjs +6 -0
  366. package/dist/index153.mjs.map +1 -0
  367. package/dist/index154.cjs +4 -0
  368. package/dist/index154.cjs.map +1 -0
  369. package/dist/index154.mjs +5 -0
  370. package/dist/index154.mjs.map +1 -0
  371. package/dist/index155.cjs +5 -0
  372. package/dist/index155.cjs.map +1 -0
  373. package/dist/index155.mjs +6 -0
  374. package/dist/index155.mjs.map +1 -0
  375. package/dist/index156.cjs +5 -0
  376. package/dist/index156.cjs.map +1 -0
  377. package/dist/index156.mjs +6 -0
  378. package/dist/index156.mjs.map +1 -0
  379. package/dist/index157.cjs +5 -0
  380. package/dist/index157.cjs.map +1 -0
  381. package/dist/index157.mjs +6 -0
  382. package/dist/index157.mjs.map +1 -0
  383. package/dist/index158.cjs +4 -0
  384. package/dist/index158.cjs.map +1 -0
  385. package/dist/index158.mjs +5 -0
  386. package/dist/index158.mjs.map +1 -0
  387. package/dist/index159.cjs +59 -0
  388. package/dist/index159.cjs.map +1 -0
  389. package/dist/index159.mjs +60 -0
  390. package/dist/index159.mjs.map +1 -0
  391. package/dist/index16.cjs +89 -0
  392. package/dist/index16.cjs.map +1 -0
  393. package/dist/index16.mjs +90 -0
  394. package/dist/index16.mjs.map +1 -0
  395. package/dist/index161.cjs +5 -0
  396. package/dist/index161.cjs.map +1 -0
  397. package/dist/index161.mjs +6 -0
  398. package/dist/index161.mjs.map +1 -0
  399. package/dist/index162.cjs +119 -0
  400. package/dist/index162.cjs.map +1 -0
  401. package/dist/index162.mjs +120 -0
  402. package/dist/index162.mjs.map +1 -0
  403. package/dist/index164.cjs +33 -0
  404. package/dist/index164.cjs.map +1 -0
  405. package/dist/index164.mjs +34 -0
  406. package/dist/index164.mjs.map +1 -0
  407. package/dist/index166.cjs +5 -0
  408. package/dist/index166.cjs.map +1 -0
  409. package/dist/index166.mjs +6 -0
  410. package/dist/index166.mjs.map +1 -0
  411. package/dist/index167.cjs +324 -0
  412. package/dist/index167.cjs.map +1 -0
  413. package/dist/index167.mjs +325 -0
  414. package/dist/index167.mjs.map +1 -0
  415. package/dist/index17.cjs +419 -0
  416. package/dist/index17.cjs.map +1 -0
  417. package/dist/index17.mjs +420 -0
  418. package/dist/index17.mjs.map +1 -0
  419. package/dist/index170.cjs +38 -0
  420. package/dist/index170.cjs.map +1 -0
  421. package/dist/index170.mjs +39 -0
  422. package/dist/index170.mjs.map +1 -0
  423. package/dist/index172.cjs +5 -0
  424. package/dist/index172.cjs.map +1 -0
  425. package/dist/index172.mjs +6 -0
  426. package/dist/index172.mjs.map +1 -0
  427. package/dist/index173.cjs +202 -0
  428. package/dist/index173.cjs.map +1 -0
  429. package/dist/index173.mjs +203 -0
  430. package/dist/index173.mjs.map +1 -0
  431. package/dist/index175.cjs +5 -0
  432. package/dist/index175.cjs.map +1 -0
  433. package/dist/index175.mjs +6 -0
  434. package/dist/index175.mjs.map +1 -0
  435. package/dist/index176.cjs +53 -0
  436. package/dist/index176.cjs.map +1 -0
  437. package/dist/index176.mjs +54 -0
  438. package/dist/index176.mjs.map +1 -0
  439. package/dist/index178.cjs +13 -0
  440. package/dist/index178.cjs.map +1 -0
  441. package/dist/index178.mjs +13 -0
  442. package/dist/index178.mjs.map +1 -0
  443. package/dist/index179.cjs +18 -0
  444. package/dist/index179.cjs.map +1 -0
  445. package/dist/index179.mjs +18 -0
  446. package/dist/index179.mjs.map +1 -0
  447. package/dist/index180.cjs +262 -0
  448. package/dist/index180.cjs.map +1 -0
  449. package/dist/index180.mjs +262 -0
  450. package/dist/index180.mjs.map +1 -0
  451. package/dist/index181.cjs +108 -0
  452. package/dist/index181.cjs.map +1 -0
  453. package/dist/index181.mjs +109 -0
  454. package/dist/index181.mjs.map +1 -0
  455. package/dist/index182.cjs +73 -0
  456. package/dist/index182.cjs.map +1 -0
  457. package/dist/index182.mjs +73 -0
  458. package/dist/index182.mjs.map +1 -0
  459. package/dist/index183.cjs +37 -0
  460. package/dist/index183.cjs.map +1 -0
  461. package/dist/index183.mjs +37 -0
  462. package/dist/index183.mjs.map +1 -0
  463. package/dist/index184.cjs +16 -0
  464. package/dist/index184.cjs.map +1 -0
  465. package/dist/index184.mjs +16 -0
  466. package/dist/index184.mjs.map +1 -0
  467. package/dist/index185.cjs +31 -0
  468. package/dist/index185.cjs.map +1 -0
  469. package/dist/index185.mjs +31 -0
  470. package/dist/index185.mjs.map +1 -0
  471. package/dist/index186.cjs +460 -0
  472. package/dist/index186.cjs.map +1 -0
  473. package/dist/index186.mjs +461 -0
  474. package/dist/index186.mjs.map +1 -0
  475. package/dist/index187.cjs +154 -0
  476. package/dist/index187.cjs.map +1 -0
  477. package/dist/index187.mjs +154 -0
  478. package/dist/index187.mjs.map +1 -0
  479. package/dist/index188.cjs +40 -0
  480. package/dist/index188.cjs.map +1 -0
  481. package/dist/index188.mjs +40 -0
  482. package/dist/index188.mjs.map +1 -0
  483. package/dist/index189.cjs +66 -0
  484. package/dist/index189.cjs.map +1 -0
  485. package/dist/index189.mjs +66 -0
  486. package/dist/index189.mjs.map +1 -0
  487. package/dist/index19.cjs +135 -0
  488. package/dist/index19.cjs.map +1 -0
  489. package/dist/index19.mjs +136 -0
  490. package/dist/index19.mjs.map +1 -0
  491. package/dist/index190.cjs +142 -0
  492. package/dist/index190.cjs.map +1 -0
  493. package/dist/index190.mjs +143 -0
  494. package/dist/index190.mjs.map +1 -0
  495. package/dist/index191.cjs +7 -0
  496. package/dist/index191.cjs.map +1 -0
  497. package/dist/index191.mjs +8 -0
  498. package/dist/index191.mjs.map +1 -0
  499. package/dist/index192.cjs +7 -0
  500. package/dist/index192.cjs.map +1 -0
  501. package/dist/index192.mjs +8 -0
  502. package/dist/index192.mjs.map +1 -0
  503. package/dist/index193.cjs +7 -0
  504. package/dist/index193.cjs.map +1 -0
  505. package/dist/index193.mjs +8 -0
  506. package/dist/index193.mjs.map +1 -0
  507. package/dist/index194.cjs +7 -0
  508. package/dist/index194.cjs.map +1 -0
  509. package/dist/index194.mjs +8 -0
  510. package/dist/index194.mjs.map +1 -0
  511. package/dist/index195.cjs +7 -0
  512. package/dist/index195.cjs.map +1 -0
  513. package/dist/index195.mjs +8 -0
  514. package/dist/index195.mjs.map +1 -0
  515. package/dist/index196.cjs +100 -0
  516. package/dist/index196.cjs.map +1 -0
  517. package/dist/index196.mjs +100 -0
  518. package/dist/index196.mjs.map +1 -0
  519. package/dist/index197.cjs +226 -0
  520. package/dist/index197.cjs.map +1 -0
  521. package/dist/index197.mjs +226 -0
  522. package/dist/index197.mjs.map +1 -0
  523. package/dist/index198.cjs +66 -0
  524. package/dist/index198.cjs.map +1 -0
  525. package/dist/index198.mjs +66 -0
  526. package/dist/index198.mjs.map +1 -0
  527. package/dist/index199.cjs +399 -0
  528. package/dist/index199.cjs.map +1 -0
  529. package/dist/index199.mjs +399 -0
  530. package/dist/index199.mjs.map +1 -0
  531. package/dist/index200.cjs +83 -0
  532. package/dist/index200.cjs.map +1 -0
  533. package/dist/index200.mjs +83 -0
  534. package/dist/index200.mjs.map +1 -0
  535. package/dist/index201.cjs +4 -0
  536. package/dist/index201.cjs.map +1 -0
  537. package/dist/index201.mjs +5 -0
  538. package/dist/index201.mjs.map +1 -0
  539. package/dist/index202.cjs +5 -0
  540. package/dist/index202.cjs.map +1 -0
  541. package/dist/index202.mjs +6 -0
  542. package/dist/index202.mjs.map +1 -0
  543. package/dist/index203.cjs +216 -0
  544. package/dist/index203.cjs.map +1 -0
  545. package/dist/index203.mjs +217 -0
  546. package/dist/index203.mjs.map +1 -0
  547. package/dist/index205.cjs +112 -0
  548. package/dist/index205.cjs.map +1 -0
  549. package/dist/index205.mjs +113 -0
  550. package/dist/index205.mjs.map +1 -0
  551. package/dist/index207.cjs +112 -0
  552. package/dist/index207.cjs.map +1 -0
  553. package/dist/index207.mjs +113 -0
  554. package/dist/index207.mjs.map +1 -0
  555. package/dist/index209.cjs +64 -0
  556. package/dist/index209.cjs.map +1 -0
  557. package/dist/index209.mjs +65 -0
  558. package/dist/index209.mjs.map +1 -0
  559. package/dist/index21.cjs +268 -0
  560. package/dist/index21.cjs.map +1 -0
  561. package/dist/index21.mjs +269 -0
  562. package/dist/index21.mjs.map +1 -0
  563. package/dist/index211.cjs +45 -0
  564. package/dist/index211.cjs.map +1 -0
  565. package/dist/index211.mjs +46 -0
  566. package/dist/index211.mjs.map +1 -0
  567. package/dist/index213.cjs +241 -0
  568. package/dist/index213.cjs.map +1 -0
  569. package/dist/index213.mjs +241 -0
  570. package/dist/index213.mjs.map +1 -0
  571. package/dist/index214.cjs +63 -0
  572. package/dist/index214.cjs.map +1 -0
  573. package/dist/index214.mjs +63 -0
  574. package/dist/index214.mjs.map +1 -0
  575. package/dist/index215.cjs +53 -0
  576. package/dist/index215.cjs.map +1 -0
  577. package/dist/index215.mjs +53 -0
  578. package/dist/index215.mjs.map +1 -0
  579. package/dist/index216.cjs +53 -0
  580. package/dist/index216.cjs.map +1 -0
  581. package/dist/index216.mjs +53 -0
  582. package/dist/index216.mjs.map +1 -0
  583. package/dist/index217.cjs +4 -0
  584. package/dist/index217.cjs.map +1 -0
  585. package/dist/index217.mjs +5 -0
  586. package/dist/index217.mjs.map +1 -0
  587. package/dist/index218.cjs +29 -0
  588. package/dist/index218.cjs.map +1 -0
  589. package/dist/index218.mjs +30 -0
  590. package/dist/index218.mjs.map +1 -0
  591. package/dist/index219.cjs +4 -0
  592. package/dist/index219.cjs.map +1 -0
  593. package/dist/index219.mjs +5 -0
  594. package/dist/index219.mjs.map +1 -0
  595. package/dist/index23.cjs +41 -0
  596. package/dist/index23.cjs.map +1 -0
  597. package/dist/index23.mjs +42 -0
  598. package/dist/index23.mjs.map +1 -0
  599. package/dist/index24.cjs +117 -0
  600. package/dist/index24.cjs.map +1 -0
  601. package/dist/index24.mjs +118 -0
  602. package/dist/index24.mjs.map +1 -0
  603. package/dist/index26.cjs +127 -0
  604. package/dist/index26.cjs.map +1 -0
  605. package/dist/index26.mjs +128 -0
  606. package/dist/index26.mjs.map +1 -0
  607. package/dist/index28.cjs +39 -0
  608. package/dist/index28.cjs.map +1 -0
  609. package/dist/index28.mjs +40 -0
  610. package/dist/index28.mjs.map +1 -0
  611. package/dist/index29.cjs +176 -0
  612. package/dist/index29.cjs.map +1 -0
  613. package/dist/index29.mjs +177 -0
  614. package/dist/index29.mjs.map +1 -0
  615. package/dist/index3.cjs +110 -0
  616. package/dist/index3.cjs.map +1 -0
  617. package/dist/index3.mjs +110 -0
  618. package/dist/index3.mjs.map +1 -0
  619. package/dist/index31.cjs +361 -0
  620. package/dist/index31.cjs.map +1 -0
  621. package/dist/index31.mjs +362 -0
  622. package/dist/index31.mjs.map +1 -0
  623. package/dist/index33.cjs +20 -0
  624. package/dist/index33.cjs.map +1 -0
  625. package/dist/index33.mjs +21 -0
  626. package/dist/index33.mjs.map +1 -0
  627. package/dist/index34.cjs +311 -0
  628. package/dist/index34.cjs.map +1 -0
  629. package/dist/index34.mjs +312 -0
  630. package/dist/index34.mjs.map +1 -0
  631. package/dist/index36.cjs +132 -0
  632. package/dist/index36.cjs.map +1 -0
  633. package/dist/index36.mjs +133 -0
  634. package/dist/index36.mjs.map +1 -0
  635. package/dist/index38.cjs +80 -0
  636. package/dist/index38.cjs.map +1 -0
  637. package/dist/index38.mjs +81 -0
  638. package/dist/index38.mjs.map +1 -0
  639. package/dist/index4.cjs +612 -0
  640. package/dist/index4.cjs.map +1 -0
  641. package/dist/index4.mjs +613 -0
  642. package/dist/index4.mjs.map +1 -0
  643. package/dist/index40.cjs +600 -0
  644. package/dist/index40.cjs.map +1 -0
  645. package/dist/index40.mjs +601 -0
  646. package/dist/index40.mjs.map +1 -0
  647. package/dist/index42.cjs +160 -0
  648. package/dist/index42.cjs.map +1 -0
  649. package/dist/index42.mjs +160 -0
  650. package/dist/index42.mjs.map +1 -0
  651. package/dist/index43.cjs +26 -0
  652. package/dist/index43.cjs.map +1 -0
  653. package/dist/index43.mjs +27 -0
  654. package/dist/index43.mjs.map +1 -0
  655. package/dist/index44.cjs +20 -0
  656. package/dist/index44.cjs.map +1 -0
  657. package/dist/index44.mjs +21 -0
  658. package/dist/index44.mjs.map +1 -0
  659. package/dist/index45.cjs +104 -0
  660. package/dist/index45.cjs.map +1 -0
  661. package/dist/index45.mjs +104 -0
  662. package/dist/index45.mjs.map +1 -0
  663. package/dist/index46.cjs +8 -0
  664. package/dist/index46.cjs.map +1 -0
  665. package/dist/index46.mjs +9 -0
  666. package/dist/index46.mjs.map +1 -0
  667. package/dist/index47.cjs +7 -0
  668. package/dist/index47.cjs.map +1 -0
  669. package/dist/index47.mjs +8 -0
  670. package/dist/index47.mjs.map +1 -0
  671. package/dist/index48.cjs +7 -0
  672. package/dist/index48.cjs.map +1 -0
  673. package/dist/index48.mjs +8 -0
  674. package/dist/index48.mjs.map +1 -0
  675. package/dist/index49.cjs +7 -0
  676. package/dist/index49.cjs.map +1 -0
  677. package/dist/index49.mjs +8 -0
  678. package/dist/index49.mjs.map +1 -0
  679. package/dist/index50.cjs +7 -0
  680. package/dist/index50.cjs.map +1 -0
  681. package/dist/index50.mjs +8 -0
  682. package/dist/index50.mjs.map +1 -0
  683. package/dist/index51.cjs +7 -0
  684. package/dist/index51.cjs.map +1 -0
  685. package/dist/index51.mjs +8 -0
  686. package/dist/index51.mjs.map +1 -0
  687. package/dist/index52.cjs +7 -0
  688. package/dist/index52.cjs.map +1 -0
  689. package/dist/index52.mjs +8 -0
  690. package/dist/index52.mjs.map +1 -0
  691. package/dist/index53.cjs +7 -0
  692. package/dist/index53.cjs.map +1 -0
  693. package/dist/index53.mjs +8 -0
  694. package/dist/index53.mjs.map +1 -0
  695. package/dist/index54.cjs +7 -0
  696. package/dist/index54.cjs.map +1 -0
  697. package/dist/index54.mjs +8 -0
  698. package/dist/index54.mjs.map +1 -0
  699. package/dist/index55.cjs +7 -0
  700. package/dist/index55.cjs.map +1 -0
  701. package/dist/index55.mjs +8 -0
  702. package/dist/index55.mjs.map +1 -0
  703. package/dist/index56.cjs +7 -0
  704. package/dist/index56.cjs.map +1 -0
  705. package/dist/index56.mjs +8 -0
  706. package/dist/index56.mjs.map +1 -0
  707. package/dist/index57.cjs +7 -0
  708. package/dist/index57.cjs.map +1 -0
  709. package/dist/index57.mjs +8 -0
  710. package/dist/index57.mjs.map +1 -0
  711. package/dist/index58.cjs +7 -0
  712. package/dist/index58.cjs.map +1 -0
  713. package/dist/index58.mjs +8 -0
  714. package/dist/index58.mjs.map +1 -0
  715. package/dist/index59.cjs +8 -0
  716. package/dist/index59.cjs.map +1 -0
  717. package/dist/index59.mjs +9 -0
  718. package/dist/index59.mjs.map +1 -0
  719. package/dist/index6.cjs +578 -0
  720. package/dist/index6.cjs.map +1 -0
  721. package/dist/index6.mjs +579 -0
  722. package/dist/index6.mjs.map +1 -0
  723. package/dist/index60.cjs +7 -0
  724. package/dist/index60.cjs.map +1 -0
  725. package/dist/index60.mjs +8 -0
  726. package/dist/index60.mjs.map +1 -0
  727. package/dist/index61.cjs +7 -0
  728. package/dist/index61.cjs.map +1 -0
  729. package/dist/index61.mjs +8 -0
  730. package/dist/index61.mjs.map +1 -0
  731. package/dist/index62.cjs +7 -0
  732. package/dist/index62.cjs.map +1 -0
  733. package/dist/index62.mjs +8 -0
  734. package/dist/index62.mjs.map +1 -0
  735. package/dist/index63.cjs +7 -0
  736. package/dist/index63.cjs.map +1 -0
  737. package/dist/index63.mjs +8 -0
  738. package/dist/index63.mjs.map +1 -0
  739. package/dist/index64.cjs +7 -0
  740. package/dist/index64.cjs.map +1 -0
  741. package/dist/index64.mjs +8 -0
  742. package/dist/index64.mjs.map +1 -0
  743. package/dist/index65.cjs +8 -0
  744. package/dist/index65.cjs.map +1 -0
  745. package/dist/index65.mjs +9 -0
  746. package/dist/index65.mjs.map +1 -0
  747. package/dist/index66.cjs +7 -0
  748. package/dist/index66.cjs.map +1 -0
  749. package/dist/index66.mjs +8 -0
  750. package/dist/index66.mjs.map +1 -0
  751. package/dist/index67.cjs +7 -0
  752. package/dist/index67.cjs.map +1 -0
  753. package/dist/index67.mjs +8 -0
  754. package/dist/index67.mjs.map +1 -0
  755. package/dist/index68.cjs +7 -0
  756. package/dist/index68.cjs.map +1 -0
  757. package/dist/index68.mjs +8 -0
  758. package/dist/index68.mjs.map +1 -0
  759. package/dist/index69.cjs +8 -0
  760. package/dist/index69.cjs.map +1 -0
  761. package/dist/index69.mjs +9 -0
  762. package/dist/index69.mjs.map +1 -0
  763. package/dist/index70.cjs +7 -0
  764. package/dist/index70.cjs.map +1 -0
  765. package/dist/index70.mjs +8 -0
  766. package/dist/index70.mjs.map +1 -0
  767. package/dist/index71.cjs +38 -0
  768. package/dist/index71.cjs.map +1 -0
  769. package/dist/index71.mjs +38 -0
  770. package/dist/index71.mjs.map +1 -0
  771. package/dist/index72.cjs +22 -0
  772. package/dist/index72.cjs.map +1 -0
  773. package/dist/index72.mjs +22 -0
  774. package/dist/index72.mjs.map +1 -0
  775. package/dist/index73.cjs +40 -0
  776. package/dist/index73.cjs.map +1 -0
  777. package/dist/index73.mjs +40 -0
  778. package/dist/index73.mjs.map +1 -0
  779. package/dist/index74.cjs +80 -0
  780. package/dist/index74.cjs.map +1 -0
  781. package/dist/index74.mjs +80 -0
  782. package/dist/index74.mjs.map +1 -0
  783. package/dist/index75.cjs +29 -0
  784. package/dist/index75.cjs.map +1 -0
  785. package/dist/index75.mjs +29 -0
  786. package/dist/index75.mjs.map +1 -0
  787. package/dist/index76.cjs +157 -0
  788. package/dist/index76.cjs.map +1 -0
  789. package/dist/index76.mjs +157 -0
  790. package/dist/index76.mjs.map +1 -0
  791. package/dist/index77.cjs +16 -0
  792. package/dist/index77.cjs.map +1 -0
  793. package/dist/index77.mjs +16 -0
  794. package/dist/index77.mjs.map +1 -0
  795. package/dist/index78.cjs +87 -0
  796. package/dist/index78.cjs.map +1 -0
  797. package/dist/index78.mjs +87 -0
  798. package/dist/index78.mjs.map +1 -0
  799. package/dist/index79.cjs +16 -0
  800. package/dist/index79.cjs.map +1 -0
  801. package/dist/index79.mjs +16 -0
  802. package/dist/index79.mjs.map +1 -0
  803. package/dist/index8.cjs +130 -0
  804. package/dist/index8.cjs.map +1 -0
  805. package/dist/index8.mjs +131 -0
  806. package/dist/index8.mjs.map +1 -0
  807. package/dist/index80.cjs +65 -0
  808. package/dist/index80.cjs.map +1 -0
  809. package/dist/index80.mjs +65 -0
  810. package/dist/index80.mjs.map +1 -0
  811. package/dist/index81.cjs +69 -0
  812. package/dist/index81.cjs.map +1 -0
  813. package/dist/index81.mjs +69 -0
  814. package/dist/index81.mjs.map +1 -0
  815. package/dist/index82.cjs +30 -0
  816. package/dist/index82.cjs.map +1 -0
  817. package/dist/index82.mjs +30 -0
  818. package/dist/index82.mjs.map +1 -0
  819. package/dist/index83.cjs +86 -0
  820. package/dist/index83.cjs.map +1 -0
  821. package/dist/index83.mjs +86 -0
  822. package/dist/index83.mjs.map +1 -0
  823. package/dist/index84.cjs +102 -0
  824. package/dist/index84.cjs.map +1 -0
  825. package/dist/index84.mjs +102 -0
  826. package/dist/index84.mjs.map +1 -0
  827. package/dist/index85.cjs +20 -0
  828. package/dist/index85.cjs.map +1 -0
  829. package/dist/index85.mjs +20 -0
  830. package/dist/index85.mjs.map +1 -0
  831. package/dist/index86.cjs +21 -0
  832. package/dist/index86.cjs.map +1 -0
  833. package/dist/index86.mjs +21 -0
  834. package/dist/index86.mjs.map +1 -0
  835. package/dist/index87.cjs +191 -0
  836. package/dist/index87.cjs.map +1 -0
  837. package/dist/index87.mjs +191 -0
  838. package/dist/index87.mjs.map +1 -0
  839. package/dist/index88.cjs +67 -0
  840. package/dist/index88.cjs.map +1 -0
  841. package/dist/index88.mjs +67 -0
  842. package/dist/index88.mjs.map +1 -0
  843. package/dist/index89.cjs +312 -0
  844. package/dist/index89.cjs.map +1 -0
  845. package/dist/index89.mjs +312 -0
  846. package/dist/index89.mjs.map +1 -0
  847. package/dist/index90.cjs +10 -0
  848. package/dist/index90.cjs.map +1 -0
  849. package/dist/index90.mjs +10 -0
  850. package/dist/index90.mjs.map +1 -0
  851. package/dist/index91.cjs +15 -0
  852. package/dist/index91.cjs.map +1 -0
  853. package/dist/index91.mjs +15 -0
  854. package/dist/index91.mjs.map +1 -0
  855. package/dist/index92.cjs +8 -0
  856. package/dist/index92.cjs.map +1 -0
  857. package/dist/index92.mjs +8 -0
  858. package/dist/index92.mjs.map +1 -0
  859. package/dist/index93.cjs +81 -0
  860. package/dist/index93.cjs.map +1 -0
  861. package/dist/index93.mjs +81 -0
  862. package/dist/index93.mjs.map +1 -0
  863. package/dist/index94.cjs +124 -0
  864. package/dist/index94.cjs.map +1 -0
  865. package/dist/index94.mjs +124 -0
  866. package/dist/index94.mjs.map +1 -0
  867. package/dist/index95.cjs +68 -0
  868. package/dist/index95.cjs.map +1 -0
  869. package/dist/index95.mjs +68 -0
  870. package/dist/index95.mjs.map +1 -0
  871. package/dist/index96.cjs +29 -0
  872. package/dist/index96.cjs.map +1 -0
  873. package/dist/index96.mjs +29 -0
  874. package/dist/index96.mjs.map +1 -0
  875. package/dist/index97.cjs +184 -0
  876. package/dist/index97.cjs.map +1 -0
  877. package/dist/index97.mjs +184 -0
  878. package/dist/index97.mjs.map +1 -0
  879. package/dist/index98.cjs +78 -0
  880. package/dist/index98.cjs.map +1 -0
  881. package/dist/index98.mjs +78 -0
  882. package/dist/index98.mjs.map +1 -0
  883. package/dist/index99.cjs +55 -0
  884. package/dist/index99.cjs.map +1 -0
  885. package/dist/index99.mjs +55 -0
  886. package/dist/index99.mjs.map +1 -0
  887. package/dist/plugin.d.ts +37 -0
  888. package/dist/plugin.d.ts.map +1 -0
  889. package/dist/scss/_badge.scss +12 -0
  890. package/dist/scss/_breakpoints.scss +102 -0
  891. package/dist/scss/_color-utilities.scss +105 -0
  892. package/dist/scss/_controls.scss +135 -0
  893. package/dist/scss/_ds-input-base.scss +302 -0
  894. package/dist/scss/_ds-picker-m3.scss +179 -0
  895. package/dist/scss/_effects.scss +42 -0
  896. package/dist/scss/_overlays.scss +13 -0
  897. package/dist/scss/_radius.scss +24 -0
  898. package/dist/scss/_reset.scss +60 -0
  899. package/dist/scss/_scrollbar.scss +78 -0
  900. package/dist/scss/_spacing.scss +15 -0
  901. package/dist/scss/_themes.scss +493 -0
  902. package/dist/scss/_typography.scss +50 -0
  903. package/dist/scss/_utilities.scss +75 -0
  904. package/dist/scss/_variables.scss +143 -0
  905. package/dist/scss/api.scss +77 -0
  906. package/dist/scss/tokens.scss +13 -0
  907. package/dist/utils/date-utils.d.ts +48 -0
  908. package/dist/utils/date-utils.d.ts.map +1 -0
  909. package/dist/utils/dialog-utils.d.ts +17 -0
  910. package/dist/utils/dialog-utils.d.ts.map +1 -0
  911. package/dist/utils/file-utils.d.ts +20 -0
  912. package/dist/utils/file-utils.d.ts.map +1 -0
  913. package/dist/utils/filtro-input.d.ts +19 -0
  914. package/dist/utils/filtro-input.d.ts.map +1 -0
  915. package/dist/utils/form-rules.d.ts +74 -0
  916. package/dist/utils/form-rules.d.ts.map +1 -0
  917. package/dist/utils/formatadores.d.ts +15 -0
  918. package/dist/utils/formatadores.d.ts.map +1 -0
  919. package/dist/utils/gerador-id.d.ts +3 -0
  920. package/dist/utils/gerador-id.d.ts.map +1 -0
  921. package/dist/utils/hint-mensagem.d.ts +11 -0
  922. package/dist/utils/hint-mensagem.d.ts.map +1 -0
  923. package/dist/utils/index.d.ts +15 -0
  924. package/dist/utils/index.d.ts.map +1 -0
  925. package/dist/utils/limpar-campos.d.ts +6 -0
  926. package/dist/utils/limpar-campos.d.ts.map +1 -0
  927. package/dist/utils/masks.d.ts +16 -0
  928. package/dist/utils/masks.d.ts.map +1 -0
  929. package/dist/utils/medidas-util.d.ts +3 -0
  930. package/dist/utils/medidas-util.d.ts.map +1 -0
  931. package/dist/utils/normalizar-label.d.ts +2 -0
  932. package/dist/utils/normalizar-label.d.ts.map +1 -0
  933. package/dist/utils/scroll-elemento.d.ts +16 -0
  934. package/dist/utils/scroll-elemento.d.ts.map +1 -0
  935. package/dist/utils/validar-campo.d.ts +7 -0
  936. package/dist/utils/validar-campo.d.ts.map +1 -0
  937. package/dist/utils/validar-documentos.d.ts +12 -0
  938. package/dist/utils/validar-documentos.d.ts.map +1 -0
  939. package/dist/utils/vnode-slot.d.ts +43 -0
  940. package/dist/utils/vnode-slot.d.ts.map +1 -0
  941. package/package.json +100 -0
  942. package/src/components/actions/acai-ui-actions.vue +225 -0
  943. package/src/components/async-select/acai-ui-async-select-interface.ts +49 -0
  944. package/src/components/async-select/acai-ui-async-select.vue +409 -0
  945. package/src/components/badge/acai-ui-badge-interface.ts +19 -0
  946. package/src/components/badge/acai-ui-badge.vue +40 -0
  947. package/src/components/banner/acai-ui-banner-interface.ts +17 -0
  948. package/src/components/banner/acai-ui-banner-styles.scss +47 -0
  949. package/src/components/banner/acai-ui-banner.vue +85 -0
  950. package/src/components/button/acai-ui-button-interface.ts +21 -0
  951. package/src/components/button/acai-ui-button.vue +378 -0
  952. package/src/components/card/acai-ui-card-interface.ts +14 -0
  953. package/src/components/card/acai-ui-card-styles.scss +94 -0
  954. package/src/components/card/acai-ui-card.vue +148 -0
  955. package/src/components/chart/acai-ui-chart-interface.ts +226 -0
  956. package/src/components/chart/acai-ui-chart-styles.scss +141 -0
  957. package/src/components/chart/acai-ui-chart.vue +679 -0
  958. package/src/components/chart/chart-a11y.ts +184 -0
  959. package/src/components/chart/chart-caminhos.ts +466 -0
  960. package/src/components/chart/chart-cartesiano.vue +247 -0
  961. package/src/components/chart/chart-dados.ts +381 -0
  962. package/src/components/chart/chart-escalas.ts +141 -0
  963. package/src/components/chart/chart-formatar.ts +98 -0
  964. package/src/components/chart/chart-gauge.vue +152 -0
  965. package/src/components/chart/chart-headless.ts +130 -0
  966. package/src/components/chart/chart-imagem.ts +247 -0
  967. package/src/components/chart/chart-layout.ts +184 -0
  968. package/src/components/chart/chart-legenda.vue +103 -0
  969. package/src/components/chart/chart-pizza.vue +134 -0
  970. package/src/components/chart/chart-plano.ts +818 -0
  971. package/src/components/chart/chart-rotulos.ts +75 -0
  972. package/src/components/chart/chart-tabela.vue +116 -0
  973. package/src/components/chart/chart-ticks.ts +116 -0
  974. package/src/components/checkbox/acai-ui-checkbox-interface.ts +17 -0
  975. package/src/components/checkbox/acai-ui-checkbox.vue +114 -0
  976. package/src/components/chip/acai-ui-chip-interface.ts +19 -0
  977. package/src/components/chip/acai-ui-chip.vue +61 -0
  978. package/src/components/code/acai-ui-code-interface.ts +43 -0
  979. package/src/components/code/acai-ui-code-styles.scss +407 -0
  980. package/src/components/code/acai-ui-code.vue +595 -0
  981. package/src/components/code/dobras-json.ts +52 -0
  982. package/src/components/confirm/acai-ui-confirm.vue +230 -0
  983. package/src/components/container/acai-ui-container-interface.ts +34 -0
  984. package/src/components/container/acai-ui-container-styles.scss +122 -0
  985. package/src/components/container/acai-ui-container.vue +140 -0
  986. package/src/components/date/acai-ui-date-interface.ts +18 -0
  987. package/src/components/date/acai-ui-date.vue +191 -0
  988. package/src/components/date-range/acai-ui-date-range-interface.ts +27 -0
  989. package/src/components/date-range/acai-ui-date-range.vue +300 -0
  990. package/src/components/datetime/acai-ui-datetime-interface.ts +10 -0
  991. package/src/components/datetime/acai-ui-datetime.vue +203 -0
  992. package/src/components/datetime/data-hora-styles.scss +18 -0
  993. package/src/components/dialog/acai-ui-dialog-interface.ts +18 -0
  994. package/src/components/dialog/acai-ui-dialog.vue +168 -0
  995. package/src/components/divider/acai-ui-divider-interface.ts +4 -0
  996. package/src/components/divider/acai-ui-divider-styles.scss +42 -0
  997. package/src/components/divider/acai-ui-divider.vue +20 -0
  998. package/src/components/drawer/acai-ui-drawer-interface.ts +99 -0
  999. package/src/components/drawer/acai-ui-drawer-styles.scss +586 -0
  1000. package/src/components/drawer/acai-ui-drawer.vue +802 -0
  1001. package/src/components/drawer/drawer-sidebar-helper.ts +117 -0
  1002. package/src/components/dropdown/acai-ui-dropdown-interface.ts +41 -0
  1003. package/src/components/dropdown/acai-ui-dropdown-item.vue +36 -0
  1004. package/src/components/dropdown/acai-ui-dropdown-styles.scss +90 -0
  1005. package/src/components/dropdown/acai-ui-dropdown.vue +77 -0
  1006. package/src/components/error-log/acai-ui-error-log-interface.ts +59 -0
  1007. package/src/components/error-log/acai-ui-error-log-json-tree.vue +426 -0
  1008. package/src/components/error-log/acai-ui-error-log-redigir.ts +74 -0
  1009. package/src/components/error-log/acai-ui-error-log-styles.scss +137 -0
  1010. package/src/components/error-log/acai-ui-error-log.vue +318 -0
  1011. package/src/components/file/acai-ui-file-interface.ts +28 -0
  1012. package/src/components/file/acai-ui-file.vue +85 -0
  1013. package/src/components/file/arquivo-styles.scss +109 -0
  1014. package/src/components/form/acai-ui-form-grid.scss +145 -0
  1015. package/src/components/form/acai-ui-form-interface.ts +37 -0
  1016. package/src/components/form/acai-ui-form-styles.scss +159 -0
  1017. package/src/components/form/acai-ui-form-validation-modal.vue +216 -0
  1018. package/src/components/form/acai-ui-form.vue +410 -0
  1019. package/src/components/help/acai-ui-help-interface.ts +200 -0
  1020. package/src/components/help/acai-ui-help-styles.scss +209 -0
  1021. package/src/components/help/acai-ui-help.vue +259 -0
  1022. package/src/components/help/acai-ui-tour-styles.scss +292 -0
  1023. package/src/components/help/acai-ui-tour.vue +766 -0
  1024. package/src/components/help/tour-escolha.ts +139 -0
  1025. package/src/components/help/tour-posicionar.ts +148 -0
  1026. package/src/components/help/tour-registry.ts +177 -0
  1027. package/src/components/help/use-tour-visto.ts +81 -0
  1028. package/src/components/icon/acai-ui-icon-interface.ts +12 -0
  1029. package/src/components/icon/acai-ui-icon.vue +33 -0
  1030. package/src/components/index.ts +149 -0
  1031. package/src/components/input/acai-ui-input-interface.ts +20 -0
  1032. package/src/components/input/acai-ui-input.vue +146 -0
  1033. package/src/components/modal/acai-ui-modal-interface.ts +19 -0
  1034. package/src/components/modal/acai-ui-modal-styles.scss +131 -0
  1035. package/src/components/modal/acai-ui-modal.vue +83 -0
  1036. package/src/components/pagination/acai-ui-pagination-interface.ts +8 -0
  1037. package/src/components/pagination/acai-ui-pagination.vue +36 -0
  1038. package/src/components/preferences/acai-ui-preferences-interface.ts +4 -0
  1039. package/src/components/preferences/acai-ui-preferences-styles.scss +387 -0
  1040. package/src/components/preferences/acai-ui-preferences.vue +349 -0
  1041. package/src/components/progress/acai-ui-progress-interface.ts +20 -0
  1042. package/src/components/progress/acai-ui-progress.vue +124 -0
  1043. package/src/components/radio/acai-ui-radio-interface.ts +14 -0
  1044. package/src/components/radio/acai-ui-radio.vue +78 -0
  1045. package/src/components/section/acai-ui-section-styles.scss +93 -0
  1046. package/src/components/section/acai-ui-section.vue +134 -0
  1047. package/src/components/select/acai-ui-select-interface.ts +18 -0
  1048. package/src/components/select/acai-ui-select.vue +322 -0
  1049. package/src/components/session-clock/acai-ui-session-clock.vue +111 -0
  1050. package/src/components/stepper/acai-ui-step-interface.ts +18 -0
  1051. package/src/components/stepper/acai-ui-step.vue +37 -0
  1052. package/src/components/stepper/acai-ui-stepper-interface.ts +56 -0
  1053. package/src/components/stepper/acai-ui-stepper-styles.scss +222 -0
  1054. package/src/components/stepper/acai-ui-stepper.vue +231 -0
  1055. package/src/components/swagger/acai-ui-swagger-interface.ts +54 -0
  1056. package/src/components/swagger/acai-ui-swagger-operacao.vue +372 -0
  1057. package/src/components/swagger/acai-ui-swagger-requisicao.ts +272 -0
  1058. package/src/components/swagger/acai-ui-swagger-schema.vue +36 -0
  1059. package/src/components/swagger/acai-ui-swagger-styles.scss +883 -0
  1060. package/src/components/swagger/acai-ui-swagger.vue +349 -0
  1061. package/src/components/swagger/openapi-normalizar.ts +514 -0
  1062. package/src/components/swagger/openapi-tipos.ts +198 -0
  1063. package/src/components/table/acai-ui-table-interface.ts +60 -0
  1064. package/src/components/table/acai-ui-table-justificativa.vue +135 -0
  1065. package/src/components/table/acai-ui-table-styles.scss +293 -0
  1066. package/src/components/table/acai-ui-table.vue +340 -0
  1067. package/src/components/tabs/acai-ui-tab.vue +10 -0
  1068. package/src/components/tabs/acai-ui-tabs-interface.ts +48 -0
  1069. package/src/components/tabs/acai-ui-tabs-styles.scss +78 -0
  1070. package/src/components/tabs/acai-ui-tabs.vue +137 -0
  1071. package/src/components/time/acai-ui-time-interface.ts +14 -0
  1072. package/src/components/time/acai-ui-time.vue +86 -0
  1073. package/src/components/toggle/acai-ui-toggle-interface.ts +13 -0
  1074. package/src/components/toggle/acai-ui-toggle.vue +162 -0
  1075. package/src/components/tooltip/acai-ui-tooltip-interface.ts +11 -0
  1076. package/src/components/tooltip/acai-ui-tooltip-styles.scss +104 -0
  1077. package/src/components/tooltip/acai-ui-tooltip.vue +90 -0
  1078. package/src/components/user-menu/acai-ui-user-menu-interface.ts +13 -0
  1079. package/src/components/user-menu/acai-ui-user-menu-styles.scss +125 -0
  1080. package/src/components/user-menu/acai-ui-user-menu.vue +139 -0
  1081. package/src/components/validation/acai-ui-validation.vue +236 -0
  1082. package/src/constants/chart-paleta.ts +162 -0
  1083. package/src/constants/efeitos.ts +24 -0
  1084. package/src/constants/index.ts +24 -0
  1085. package/src/constants/lista-icons.ts +156 -0
  1086. package/src/constants/medidas-espacos.ts +15 -0
  1087. package/src/constants/radius.ts +15 -0
  1088. package/src/constants/status-badge.ts +44 -0
  1089. package/src/env.d.ts +7 -0
  1090. package/src/hooks/filtros-url-internos.ts +497 -0
  1091. package/src/hooks/index.ts +22 -0
  1092. package/src/hooks/notify.ts +18 -0
  1093. package/src/hooks/use-contador-sessao.ts +95 -0
  1094. package/src/hooks/use-filtros-na-url.ts +174 -0
  1095. package/src/hooks/use-leitura-voz.ts +346 -0
  1096. package/src/hooks/use-listagem-na-url.ts +614 -0
  1097. package/src/hooks/use-preferencias.ts +152 -0
  1098. package/src/hooks/use-repasse-quasar.ts +63 -0
  1099. package/src/hooks/use-tamanho-elemento.ts +107 -0
  1100. package/src/hooks/use-tela.ts +114 -0
  1101. package/src/hooks/use-validacao-visual.ts +189 -0
  1102. package/src/index.ts +30 -0
  1103. package/src/plugin.ts +134 -0
  1104. package/src/scss/_badge.scss +12 -0
  1105. package/src/scss/_breakpoints.scss +102 -0
  1106. package/src/scss/_color-utilities.scss +105 -0
  1107. package/src/scss/_controls.scss +135 -0
  1108. package/src/scss/_ds-input-base.scss +302 -0
  1109. package/src/scss/_ds-picker-m3.scss +179 -0
  1110. package/src/scss/_effects.scss +42 -0
  1111. package/src/scss/_overlays.scss +13 -0
  1112. package/src/scss/_radius.scss +24 -0
  1113. package/src/scss/_reset.scss +60 -0
  1114. package/src/scss/_scrollbar.scss +78 -0
  1115. package/src/scss/_spacing.scss +15 -0
  1116. package/src/scss/_themes.scss +493 -0
  1117. package/src/scss/_typography.scss +50 -0
  1118. package/src/scss/_utilities.scss +75 -0
  1119. package/src/scss/_variables.scss +143 -0
  1120. package/src/scss/api.scss +77 -0
  1121. package/src/scss/tokens.scss +13 -0
  1122. package/src/styles-global.scss +30 -0
  1123. package/src/utils/date-utils.ts +128 -0
  1124. package/src/utils/dialog-utils.ts +59 -0
  1125. package/src/utils/file-utils.ts +85 -0
  1126. package/src/utils/filtro-input.ts +41 -0
  1127. package/src/utils/form-rules.ts +202 -0
  1128. package/src/utils/formatadores.ts +97 -0
  1129. package/src/utils/gerador-id.ts +29 -0
  1130. package/src/utils/hint-mensagem.ts +25 -0
  1131. package/src/utils/index.ts +32 -0
  1132. package/src/utils/limpar-campos.ts +94 -0
  1133. package/src/utils/masks.ts +19 -0
  1134. package/src/utils/medidas-util.ts +5 -0
  1135. package/src/utils/normalizar-label.ts +9 -0
  1136. package/src/utils/scroll-elemento.ts +34 -0
  1137. package/src/utils/validar-campo.ts +27 -0
  1138. package/src/utils/validar-documentos.ts +86 -0
  1139. package/src/utils/vnode-slot.ts +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index180.mjs","sources":["../src/hooks/filtros-url-internos.ts"],"sourcesContent":["// Núcleo compartilhado de filtros na query string.\n//\n// Interno: NÃO é exportado no index da lib. Existe porque `useFiltrosNaUrl` e\n// `useListagemNaUrl` precisam da MESMA regra de serialização — se cada um\n// tivesse a sua, o link gerado por uma tela não abriria na outra, e a diferença\n// só apareceria em produção.\n//\n// O que mora aqui é a parte PURA (molde → caminhos → texto → volta) mais o\n// adaptador de URL. Política (quando gravar, o que disparar) fica em cada hook.\n\nimport { getCurrentInstance, watch } from 'vue'\n\n/** Tipos que sobrevivem a uma query string. Sufixo `[]` = chave repetida. */\nexport type TipoFiltroUrl =\n | 'string'\n | 'number'\n | 'boolean'\n | 'date'\n | 'string[]'\n | 'number[]'\n | 'boolean[]'\n | 'date[]'\n\n/**\n * Separador do caminho aninhado: `?periodo.from=2026-01-01`.\n *\n * Ponto, e não junção camelCase (`periodoFrom`), por dois motivos: é legal em\n * query string sem escapar, e não corre o risco de colidir com um campo que se\n * chame de verdade `periodoFrom`. Ler a URL também mostra a estrutura.\n */\nexport const SEPARADOR = '.'\n\ntype TipoEscalar = 'string' | 'number' | 'boolean' | 'date'\n\ninterface Descritor {\n escalar: TipoEscalar\n ehArray: boolean\n}\n\n/** Marcador de \"não deu pra converter\" — distinto de `null`, que é valor válido. */\nconst INVALIDO = Symbol('invalido')\n\nexport function ehObjetoSimples(valor: unknown): valor is Record<string, unknown> {\n return (\n valor !== null && typeof valor === 'object' && !Array.isArray(valor) && !(valor instanceof Date)\n )\n}\n\nfunction descritorDeclarado(tipo: TipoFiltroUrl): Descritor {\n const ehArray = tipo.endsWith('[]')\n return { escalar: (ehArray ? tipo.slice(0, -2) : tipo) as TipoEscalar, ehArray }\n}\n\nfunction escalarDoValor(valor: unknown): TipoEscalar {\n if (typeof valor === 'number') return 'number'\n if (typeof valor === 'boolean') return 'boolean'\n if (valor instanceof Date) return 'date'\n // Também o caso de `null`/`undefined`: não há tipo a inferir, e string é o que\n // menos estraga. Quem precisa do tipo certo declara em `tipos`.\n return 'string'\n}\n\nfunction descritorDoValor(valor: unknown): Descritor {\n if (Array.isArray(valor)) {\n // Array vazio não tem elemento pra amostrar — os itens ficam string. A\n // requisição sai igual (`ids=1&ids=2`, o backend converte); só o tipo em TS\n // fica otimista. `tipos: { ids: 'number[]' }` resolve.\n return { escalar: valor.length > 0 ? escalarDoValor(valor[0]) : 'string', ehArray: true }\n }\n return { escalar: escalarDoValor(valor), ehArray: false }\n}\n\n/**\n * Converte o texto da URL para o tipo resolvido.\n *\n * ⚠️ Nunca \"converter se parecer número\": matrícula, CEP e protocolo têm zero à\n * esquerda, e `'00123'` viraria `123`. A conversão só acontece quando o tipo diz\n * que aquele campo é número.\n */\nfunction coagirEscalar(texto: string, escalar: TipoEscalar): unknown {\n if (escalar === 'number') {\n const numero = Number(texto)\n return texto.trim() !== '' && Number.isFinite(numero) ? numero : INVALIDO\n }\n if (escalar === 'boolean') {\n if (texto === 'true') return true\n if (texto === 'false') return false\n return INVALIDO\n }\n if (escalar === 'date') {\n const data = new Date(texto)\n return Number.isNaN(data.getTime()) ? INVALIDO : data\n }\n return texto\n}\n\nexport function coagir(brutos: string[], descritor: Descritor): unknown {\n if (descritor.ehArray) {\n const itens = brutos\n .map((bruto) => coagirEscalar(bruto, descritor.escalar))\n .filter((item) => item !== INVALIDO)\n return itens.length > 0 ? itens : INVALIDO\n }\n const primeiro = brutos[0]\n return primeiro === undefined ? INVALIDO : coagirEscalar(primeiro, descritor.escalar)\n}\n\nexport function ehInvalido(valor: unknown): boolean {\n return valor === INVALIDO\n}\n\n/** Valor do filtro → texto da URL. `null` significa \"não vai pra URL\". */\nexport function paraTexto(valor: unknown): string | null {\n if (valor === null || valor === undefined || valor === '') return null\n if (valor instanceof Date) return Number.isNaN(valor.getTime()) ? null : valor.toISOString()\n if (typeof valor === 'string') return valor\n if (typeof valor === 'number') return Number.isFinite(valor) ? String(valor) : null\n if (typeof valor === 'boolean') return String(valor)\n return null\n}\n\n/**\n * Mesma regra de \"vazio\" do `limparCamposVazios`: `''`, `null`, `undefined` e\n * array sem item aproveitável ficam fora. `false` e `0` são valores de verdade e\n * entram.\n *\n * ⚠️ Escrito à mão em vez de chamar o `limparCamposVazios`, que era o óbvio: ele\n * trata `Date` como objeto aninhado, e como `Date` não tem chave própria\n * enumerável, o `Object.keys({}).length === 0` DERRUBA o campo. Um filtro de data\n * desaparecia da URL sem aviso. Aqui `Date` é valor escalar.\n */\nexport function estaVazio(valor: unknown): boolean {\n if (valor === null || valor === undefined || valor === '') return true\n if (Array.isArray(valor)) {\n return valor.every((item) => item === null || item === undefined || item === '')\n }\n return false\n}\n\n/**\n * O valor está no default do molde?\n *\n * Vale como \"vazio\" pra efeito de URL: se o campo está do jeito que nasceu, não\n * há nada a lembrar. Sem isso, uma listagem recém-aberta já escreve\n * `?page=0&size=10&somenteAtivos=false` — a URL vira ruído antes de a pessoa\n * pesquisar.\n *\n * Não se perde informação: chave ausente na URL cai no molde na hidratação, que\n * é exatamente o mesmo valor.\n */\nexport function igualAoMolde(valor: unknown, molde: unknown): boolean {\n if (valor instanceof Date && molde instanceof Date) return valor.getTime() === molde.getTime()\n if (Array.isArray(valor) && Array.isArray(molde)) {\n return valor.length === molde.length && valor.every((item, i) => item === molde[i])\n }\n return valor === molde\n}\n\nconst avisados = new Set<string>()\n\n/** Só um nível de aninhamento tem serialização honesta em query string. */\nexport function avisarNaoSuportado(caminho: string, motivo: string): void {\n if (!import.meta.env.DEV || avisados.has(caminho)) return\n avisados.add(caminho)\n console.warn(\n `[acai-ui] filtros na URL: o filtro \"${caminho}\" ${motivo} e não vai pra URL. ` +\n 'Achate o campo, declare em `tipos`, ou use `excluir` pra silenciar este aviso.',\n )\n}\n\n/**\n * Cópia que preserva o TIPO de cada campo, um nível adentro.\n *\n * Existe porque o molde é lido no `setup` e consultado depois: guardar a\n * referência viva faria o molde mudar junto com o filtro, e a conversão passaria\n * a se basear no que o usuário digitou em vez do valor inicial.\n */\nexport function clonarMolde<T extends object>(origem: T): T {\n const saida: Record<string, unknown> = {}\n for (const [chave, valor] of Object.entries(origem)) {\n if (Array.isArray(valor)) saida[chave] = [...valor]\n else if (valor instanceof Date) saida[chave] = new Date(valor.getTime())\n else if (ehObjetoSimples(valor)) saida[chave] = { ...valor }\n else saida[chave] = valor\n }\n return saida as T\n}\n\n/** Lê `periodo.from` (ou `nome`) de um objeto. Um nível só. */\nexport function lerEm(alvo: Record<string, unknown> | undefined, caminho: string): unknown {\n if (!alvo) return undefined\n const partes = caminho.split(SEPARADOR)\n const raiz = alvo[partes[0] as string]\n if (partes.length === 1) return raiz\n return ehObjetoSimples(raiz) ? raiz[partes[1] as string] : undefined\n}\n\n/** Contrato mínimo de leitura/escrita de URL. Duas implementações abaixo. */\nexport interface AdaptadorUrl {\n ler: () => URLSearchParams\n /** `push` cria entrada no histórico; `replace` substitui a atual. */\n gravar: (params: URLSearchParams, modo: 'push' | 'replace') => void\n /** Caminho da rota, sem query. É a chave do cache por tela. */\n rota: () => string\n /**\n * Avisa quando a URL muda POR FORA (voltar/avançar, link, edição na barra).\n * Devolve o desinscrito. Ausente onde não há como observar.\n */\n observar?: (aoMudar: () => void) => () => void\n}\n\n/**\n * Shape do `$router` do vue-router que a gente usa. Declarado à mão porque a lib\n * **não depende de vue-router** — ela apenas o aproveita quando ele existe.\n */\ninterface RouterCompativel {\n /** Opcional de propósito — ver `ehRouterCompativel`. */\n push?: (destino: { query: Record<string, string | string[]> }) => Promise<unknown> | unknown\n replace: (destino: { query: Record<string, string | string[]> }) => Promise<unknown> | unknown\n currentRoute: { value: { query: Record<string, unknown>; path?: string } }\n}\n\n/**\n * `replace` + `currentRoute` bastam. `push` NÃO entra no teste: exigi-lo aqui\n * derrubaria pro History qualquer shim de router que só implemente o que a lib\n * usava até então — e cair no History por trás de um router deixa o\n * `route.query` desatualizado, que é o pior desfecho possível. Sem `push`, o\n * `gravar` degrada pra `replace` (perde histórico, mantém a URL correta).\n */\nfunction ehRouterCompativel(alvo: unknown): alvo is RouterCompativel {\n if (!alvo || typeof alvo !== 'object') return false\n const candidato = alvo as Partial<RouterCompativel>\n return typeof candidato.replace === 'function' && !!candidato.currentRoute\n}\n\n/** `URLSearchParams` → o formato de query do vue-router (repetida vira array). */\nfunction paramsParaQuery(params: URLSearchParams): Record<string, string | string[]> {\n const query: Record<string, string | string[]> = {}\n for (const chave of new Set(params.keys())) {\n const valores = params.getAll(chave)\n query[chave] = valores.length > 1 ? valores : (valores[0] as string)\n }\n return query\n}\n\n/**\n * Descobre como mexer na URL.\n *\n * 🔴 Por que NÃO importar vue-router: a lib é agnóstica dele de propósito (quem\n * usa só chip e input não pode ganhar peer dep). E por que não mexer direto no\n * History quando ele existe: `history.replaceState` por trás do router deixa o\n * `route.query` DESATUALIZADO — a URL diz uma coisa e a rota reativa diz outra,\n * sem erro nenhum. Então: se o app instalou vue-router, `$router` está em\n * `globalProperties` e a gente usa o dele. Se não, cai no History, onde não há\n * router pra desincronizar.\n */\nexport function criarAdaptador(): AdaptadorUrl {\n const router = getCurrentInstance()?.appContext.config.globalProperties.$router\n\n if (ehRouterCompativel(router)) {\n return {\n ler: () => {\n const params = new URLSearchParams()\n for (const [chave, valor] of Object.entries(router.currentRoute.value.query)) {\n if (Array.isArray(valor)) {\n for (const item of valor) if (item != null) params.append(chave, String(item))\n } else if (valor != null) {\n params.append(chave, String(valor))\n }\n }\n return params\n },\n gravar: (params, modo) => {\n const navegar = modo === 'push' && router.push ? router.push : router.replace\n void Promise.resolve(navegar.call(router, { query: paramsParaQuery(params) })).catch(() => {\n // Navegação redundante (mesma query) não é erro — só não fazer nada.\n })\n },\n rota: () => router.currentRoute.value.path ?? '',\n // `currentRoute` é um ref do vue-router: dá pra observar sem importar a\n // biblioteca. Cobre voltar/avançar, link colado e edição na barra — tudo\n // que muda a URL sem passar pelo hook.\n observar: (aoMudar) => watch(() => router.currentRoute.value.query, aoMudar, { deep: true }),\n }\n }\n\n // ⚠️ Este ramo NÃO é o caminho do SSR de app real. A checagem do router vem\n // antes, e no servidor o router existe — então app com vue-router (que é o\n // caso de todos os consumidores) cai lá em cima, e cai certo: `ler()` e\n // `rota()` do router funcionam no servidor e são o que permite o formulário\n // renderizar já preenchido com os filtros da URL.\n //\n // O que NÃO pode acontecer no servidor é buscar e mexer em cache de módulo —\n // e isso é barrado no `useListagemNaUrl`, não aqui. Ver `noServidor()` lá.\n //\n // Aqui é o fallback de ambiente sem window NEM router: teste de nó puro, ou\n // consumidor que usa o hook sem router instalado.\n if (typeof window === 'undefined') {\n return { ler: () => new URLSearchParams(), gravar: () => undefined, rota: () => '' }\n }\n\n return {\n ler: () => new URLSearchParams(window.location.search),\n gravar: (params, modo) => {\n const busca = params.toString()\n const destino = `${window.location.pathname}${busca ? `?${busca}` : ''}${window.location.hash}`\n if (modo === 'push') window.history.pushState(window.history.state, '', destino)\n else window.history.replaceState(window.history.state, '', destino)\n },\n rota: () => window.location.pathname,\n observar: (aoMudar) => {\n window.addEventListener('popstate', aoMudar)\n return () => window.removeEventListener('popstate', aoMudar)\n },\n }\n}\n\nexport interface OpcoesMapa {\n excluir?: readonly string[]\n tipos?: Readonly<Record<string, TipoFiltroUrl>>\n prefixo?: string\n}\n\n/**\n * Mapa de um molde: quais caminhos este hook governa e como converter cada um.\n *\n * Governar é tudo: caminho fora daqui não é lido nem escrito — sem isso a URL\n * viraria vetor de injeção (`?size=99999` descendo direto pro `executar()`).\n */\nexport interface MapaFiltros<T extends object> {\n caminhos: string[]\n molde: T\n naUrl: (caminho: string) => string\n descritorDe: (caminho: string) => Descritor\n /**\n * Remove da query as chaves marcadas em `excluir`.\n *\n * Não é o mesmo que \"não escrever\": aqui a chave é APAGADA mesmo que tenha\n * chegado de fora. `excluir` marca dado pessoal, e uma chave dessas colada à\n * mão na barra de endereço não pode sobreviver à primeira pesquisa — com\n * `push`, ela seria copiada pra toda entrada seguinte do histórico.\n */\n removerExcluidas: (params: URLSearchParams) => void\n}\n\nexport function criarMapa<T extends object>(molde: T, opcoes: OpcoesMapa = {}): MapaFiltros<T> {\n const { excluir = [], tipos = {}, prefixo = '' } = opcoes\n const excluidas = new Set(excluir)\n const moldeBruto = molde as Record<string, unknown>\n\n const estaExcluido = (caminho: string): boolean =>\n excluidas.has(caminho) || excluidas.has(caminho.split(SEPARADOR)[0] as string)\n\n const caminhos = (() => {\n const encontrados: string[] = []\n\n for (const [chave, valor] of Object.entries(molde)) {\n if (!ehObjetoSimples(valor)) {\n encontrados.push(chave)\n continue\n }\n for (const [sub, subValor] of Object.entries(valor)) {\n if (ehObjetoSimples(subValor)) {\n avisarNaoSuportado(`${chave}${SEPARADOR}${sub}`, 'tem dois níveis de aninhamento')\n continue\n }\n encontrados.push(`${chave}${SEPARADOR}${sub}`)\n }\n }\n\n // Declarado em `tipos` mas ausente do molde: entra. É o caso do campo que\n // nasce `null` sem forma (um `periodo: null` de date-range, por exemplo).\n for (const declarado of Object.keys(tipos)) {\n if (!encontrados.includes(declarado)) encontrados.push(declarado)\n }\n\n return encontrados.filter((caminho) => !estaExcluido(caminho))\n })()\n\n return {\n caminhos,\n molde,\n naUrl: (caminho) => `${prefixo}${caminho}`,\n removerExcluidas: (params) => {\n for (const excluida of excluidas) {\n // A chave excluída pode ser a raiz (`periodo`) de folhas que estão na\n // URL como `periodo.from` — daí varrer por prefixo, e não só igualdade.\n const alvo = `${prefixo}${excluida}`\n for (const chave of [...new Set(params.keys())]) {\n if (chave === alvo || chave.startsWith(`${alvo}${SEPARADOR}`)) params.delete(chave)\n }\n }\n },\n descritorDe: (caminho) => {\n const declarado = tipos[caminho]\n return declarado ? descritorDeclarado(declarado) : descritorDoValor(lerEm(moldeBruto, caminho))\n },\n }\n}\n\n/**\n * Lê os caminhos governados de uma query. Devolve só o que a URL trouxe — chave\n * ausente NÃO vira `undefined` no patch, senão hidratar apagaria o que já estava.\n */\nexport function lerDaUrl<T extends object>(\n mapa: MapaFiltros<T>,\n params: URLSearchParams,\n atual: Record<string, unknown>,\n): Record<string, unknown> {\n const alteracoes: Record<string, unknown> = {}\n // Patches por chave-raiz: hidratar `periodo.from` não pode apagar o `to` que\n // já estava no filtro.\n const aninhados = new Map<string, Record<string, unknown>>()\n\n for (const caminho of mapa.caminhos) {\n const brutos = params.getAll(mapa.naUrl(caminho))\n if (brutos.length === 0) continue\n\n const valor = coagir(brutos, mapa.descritorDe(caminho))\n if (ehInvalido(valor)) continue\n\n const partes = caminho.split(SEPARADOR)\n if (partes.length === 1) {\n alteracoes[partes[0] as string] = valor\n continue\n }\n\n const raiz = partes[0] as string\n let patch = aninhados.get(raiz)\n if (!patch) {\n const valorAtual = atual[raiz]\n patch = ehObjetoSimples(valorAtual) ? { ...valorAtual } : {}\n aninhados.set(raiz, patch)\n }\n patch[partes[1] as string] = valor\n }\n\n for (const [raiz, patch] of aninhados) alteracoes[raiz] = patch\n return alteracoes\n}\n\n/**\n * Estado dos filtros → `URLSearchParams`, partindo da query ATUAL para não\n * apagar chave alheia (`?aba=2` de outro componente na mesma rota).\n */\nexport function escreverNaUrl<T extends object>(\n mapa: MapaFiltros<T>,\n base: URLSearchParams,\n estado: Record<string, unknown>,\n): URLSearchParams {\n const params = new URLSearchParams(base)\n for (const caminho of mapa.caminhos) params.delete(mapa.naUrl(caminho))\n\n const moldeBruto = mapa.molde as Record<string, unknown>\n\n for (const caminho of mapa.caminhos) {\n const valor = lerEm(estado, caminho)\n // Mesma regra do payload: campo vazio não viaja.\n if (estaVazio(valor)) continue\n // Nem campo intocado: só o que a pessoa mudou merece estar na URL.\n if (igualAoMolde(valor, lerEm(moldeBruto, caminho))) continue\n\n if (Array.isArray(valor)) {\n // Chave REPETIDA, não junção por vírgula: o `sort` do Spring é\n // `['dataHoraCadastro,desc']` — o próprio valor tem vírgula, e juntar\n // corromperia o par na volta.\n for (const item of valor) {\n const texto = paraTexto(item)\n if (texto !== null) params.append(mapa.naUrl(caminho), texto)\n }\n continue\n }\n\n if (ehObjetoSimples(valor)) {\n avisarNaoSuportado(caminho, 'virou objeto depois da inicialização')\n continue\n }\n\n const texto = paraTexto(valor)\n if (texto !== null) params.append(mapa.naUrl(caminho), texto)\n }\n\n return params\n}\n\n/** Só os caminhos governados, ordenados — serve de chave de cache e de comparação. */\nexport function assinatura<T extends object>(\n mapa: MapaFiltros<T>,\n params: URLSearchParams,\n): string {\n const pares: string[] = []\n for (const caminho of mapa.caminhos) {\n const chave = mapa.naUrl(caminho)\n for (const valor of params.getAll(chave)) pares.push(`${chave}=${valor}`)\n }\n return pares.sort().join('&')\n}\n"],"names":["texto"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const acaiUiDropdown_vue_vue_type_script_setup_true_lang = require("./index14.cjs");
4
+ ;/* empty css */
5
+ const acaiUiDropdownItem_vue_vue_type_script_setup_true_lang = require("./index16.cjs");
6
+ const acaiUiButton = require("./index49.cjs");
7
+ const vnodeSlot = require("./index185.cjs");
8
+ const useTela = require("./index71.cjs");
9
+ const NOME_BOTAO = "acai-ui-button";
10
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11
+ __name: "acai-ui-actions",
12
+ props: {
13
+ label: { default: "Ações" },
14
+ buttonClass: { default: "" },
15
+ dense: { type: Boolean, default: false },
16
+ collapse: { type: Boolean, default: true }
17
+ },
18
+ setup(__props) {
19
+ const { ehMobile } = useTela.useTela();
20
+ const slots = vue.useSlots();
21
+ function ehBotaoAcai(v) {
22
+ if (v.type === acaiUiButton) return true;
23
+ const tipo = v.type;
24
+ return (tipo == null ? void 0 : tipo.__name) === NOME_BOTAO || (tipo == null ? void 0 : tipo.name) === NOME_BOTAO;
25
+ }
26
+ function normalizarClique(valor) {
27
+ if (typeof valor === "function") return valor;
28
+ if (Array.isArray(valor)) {
29
+ return (evento) => {
30
+ for (const fn of valor) if (typeof fn === "function") fn(evento);
31
+ };
32
+ }
33
+ return void 0;
34
+ }
35
+ function converter(v) {
36
+ const p = vnodeSlot.normalizarProps(v.props);
37
+ const label = String(p.label ?? "").trim();
38
+ const nomeAcessivel = String(p.ariaLabel ?? p.tooltip ?? "").trim();
39
+ const texto = label || nomeAcessivel;
40
+ if (!texto) return null;
41
+ const icone = p.icon ?? p.iconRight;
42
+ const desabilitado = p.disable ?? p.disabled;
43
+ const clique = normalizarClique(p.onClick);
44
+ return {
45
+ label: texto,
46
+ ...v.key != null ? { id: v.key } : {},
47
+ ...icone ? { icon: icone } : {},
48
+ ...p.color ? { color: String(p.color) } : {},
49
+ ...desabilitado !== void 0 ? { disabled: vnodeSlot.lerBooleano(desabilitado) } : {},
50
+ // O tooltip do botão não sobrevive dentro do menu (não há hover no celular),
51
+ // mas o do estado desabilitado sim — é o que explica por que a ação não pode
52
+ // ser usada, e o `<acai-ui-dropdown-item>` mostra esse.
53
+ ...label && p.tooltip ? { disabledTooltip: String(p.tooltip) } : {},
54
+ ...p.to ? { to: p.to } : {},
55
+ ...p.href ? { href: String(p.href) } : {},
56
+ ...p.exact !== void 0 ? { exact: vnodeSlot.lerBooleano(p.exact) } : {},
57
+ ...clique ? { onClick: clique } : {}
58
+ };
59
+ }
60
+ const analise = vue.computed(() => {
61
+ var _a;
62
+ const itens2 = [];
63
+ const soltos2 = [];
64
+ for (const v of vnodeSlot.achatarSlot((_a = slots.default) == null ? void 0 : _a.call(slots))) {
65
+ if (!ehBotaoAcai(v)) {
66
+ soltos2.push(v);
67
+ continue;
68
+ }
69
+ const item = converter(v);
70
+ if (item === null) {
71
+ soltos2.push(v);
72
+ continue;
73
+ }
74
+ itens2.push(item);
75
+ }
76
+ return { itens: itens2, soltos: soltos2 };
77
+ });
78
+ const itens = vue.computed(() => analise.value.itens);
79
+ const soltos = vue.computed(() => analise.value.soltos);
80
+ return (_ctx, _cache) => {
81
+ return !vue.unref(ehMobile) || !__props.collapse ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
82
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(soltos.value, (v, i) => {
83
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(v), {
84
+ key: `solto-${i}`
85
+ });
86
+ }), 128)),
87
+ itens.value.length > 0 ? (vue.openBlock(), vue.createBlock(acaiUiDropdown_vue_vue_type_script_setup_true_lang, {
88
+ key: 0,
89
+ outline: "",
90
+ dense: __props.dense,
91
+ label: __props.label,
92
+ "button-class": __props.buttonClass
93
+ }, {
94
+ default: vue.withCtx(() => [
95
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(itens.value, (item, i) => {
96
+ return vue.openBlock(), vue.createBlock(acaiUiDropdownItem_vue_vue_type_script_setup_true_lang, vue.mergeProps({
97
+ key: item.id ?? i
98
+ }, { ref_for: true }, item), null, 16);
99
+ }), 128))
100
+ ]),
101
+ _: 1
102
+ }, 8, ["dense", "label", "button-class"])) : vue.createCommentVNode("", true)
103
+ ], 64));
104
+ };
105
+ }
106
+ });
107
+ module.exports = _sfc_main;
108
+ //# sourceMappingURL=index181.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index181.cjs","sources":["../src/components/actions/acai-ui-actions.vue"],"sourcesContent":["<template>\n <!--\n Ações do consumidor que se recolhem no celular.\n\n Desktop: exatamente o que o consumidor escreveu, solto — o componente some\n do caminho (o `<slot>` é a raiz, não há wrapper extra pra atrapalhar o\n `flex` de quem hospeda).\n\n Celular (≤600px): vira menu de verdade. O motivo é aritmético e vale pra\n qualquer cabeçalho da lib — card, section, formulário: rótulos de ação\n (\"Exportar\", \"Imprimir\", \"Nova cobrança\") custam 90–120px cada, e ao lado de\n um título ou de uma ação principal não sobra largura em 360px. A linha\n quebrava em duas ou três e empurrava o conteúdo pra baixo.\n\n Interno de propósito: não é exportado no `index.ts`. Quem monta cabeçalho\n próprio usa `useTela` direto.\n -->\n <slot v-if=\"!ehMobile || !collapse\" />\n\n <template v-else>\n <!--\n NÃO RECONHECIDOS FICAM FORA DO MENU.\n\n Só um `<acai-ui-button>` pode virar linha de menu com honestidade: é dele\n que se sabe ler rótulo, ícone, cor, estado e clique. Um `<q-btn>` cru, um\n componente do próprio consumidor ou uma `<div>` não têm contrato nenhum\n pra ler — e adivinhar renderiza item errado.\n\n Ficam soltos, exatamente como ficariam no desktop: a ação continua\n clicável e visível. Sumir com ela seria trocar um problema de layout por\n perda de funcionalidade, que é pior. O `console.warn` (só em DEV) diz ao\n dev o que fazer.\n -->\n <component :is=\"v\" v-for=\"(v, i) in soltos\" :key=\"`solto-${i}`\" />\n\n <acai-ui-dropdown\n v-if=\"itens.length > 0\"\n outline\n :dense=\"dense\"\n :label=\"label\"\n :button-class=\"buttonClass\"\n >\n <!--\n Item de menu DE VERDADE, não botão fingindo de item. É daqui que sai\n tudo o que o botão dentro do menu não tinha: `v-close-popup` (o menu\n fechar ao escolher a ação), `role=\"listitem\"` válido dentro do\n `role=\"list\"` do `<q-list>`, navegação por seta do QMenu, e o visual de\n linha de menu sem CSS desfazendo cara de botão.\n -->\n <acai-ui-dropdown-item\n v-for=\"(item, i) in itens\"\n :key=\"item.id ?? i\"\n v-bind=\"item\"\n />\n </acai-ui-dropdown>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots, type VNode } from 'vue'\nimport AcaiUiDropdown from '../dropdown/acai-ui-dropdown.vue'\nimport AcaiUiDropdownItem from '../dropdown/acai-ui-dropdown-item.vue'\nimport AcaiUiButton from '../button/acai-ui-button.vue'\nimport type { DropdownItemProps } from '../dropdown/acai-ui-dropdown-interface'\nimport type { MaterialIconValues } from '../../constants/lista-icons'\nimport { achatarSlot, lerBooleano, normalizarProps } from '../../utils/vnode-slot'\nimport { useTela } from '../../hooks/use-tela'\n\n// O `| undefined` é OBRIGATÓRIO em todas: os consumidores compilam com\n// `exactOptionalPropertyTypes: true`, onde `label?: string` significa \"ausente\n// OU string\" — e `undefined` não é nenhum dos dois. Quem hospeda repassa o\n// próprio `actionsLabel`, que o TS enxerga como `string | undefined`, e sem o\n// `| undefined` aqui o typecheck quebra no host. Mesma convenção já documentada\n// no `acai-ui-dropdown-interface.ts`.\nwithDefaults(\n defineProps<{\n /** Rótulo do botão que agrupa as ações no celular. */\n label?: string | undefined\n /** Classe aplicada ao botão do dropdown — o `<acai-ui-dropdown>` tem\n * `inheritAttrs: false`, então uma `class` solta não chegaria nele. */\n buttonClass?: string | undefined\n dense?: boolean | undefined\n /**\n * Recolher no celular? Default `true`.\n *\n * Existe porque recolher NÃO é sempre ganho: ações **só de ícone** cabem\n * numa linha mesmo em 360px, e no menu viram uma lista de rótulos onde o\n * desenho era a informação. Quem tem um cabeçalho assim passa\n * `:collapse-actions=\"false\"` e mantém os ícones onde estavam.\n */\n collapse?: boolean | undefined\n }>(),\n { label: 'Ações', buttonClass: '', dense: false, collapse: true },\n)\n\n/**\n * ≤600px (`$bp-sm` — o mesmo ponto da folha do drawer e do mixin `ate-mobile`).\n *\n * É `useTela` e não media query porque a mudança é de ESTRUTURA: as ações\n * deixam de ser botões e viram itens de menu. CSS não troca componente.\n */\nconst { ehMobile } = useTela()\n\nconst slots = useSlots() as { default?: () => VNode[] }\n\n/** Nome do SFC (o compilador infere do arquivo) — fallback da checagem por identidade. */\nconst NOME_BOTAO = 'acai-ui-button'\n\n/**\n * O consumidor pode resolver o `<acai-ui-button>` por outro caminho de módulo\n * (a lib tem a condition `vue` apontando pro source além do `dist`), e aí a\n * comparação por identidade falha mesmo sendo o mesmo componente. O `__name`\n * é a rede de segurança.\n */\nfunction ehBotaoAcai(v: VNode): boolean {\n if (v.type === AcaiUiButton) return true\n const tipo = v.type as { __name?: string; name?: string } | null | undefined\n return tipo?.__name === NOME_BOTAO || tipo?.name === NOME_BOTAO\n}\n\n/**\n * `@click` pode chegar como função ou como ARRAY de funções, quando mais de um\n * listener é mesclado no mesmo vnode. O array quebraria silenciosamente.\n */\nfunction normalizarClique(valor: unknown): ((evento: Event) => void) | undefined {\n if (typeof valor === 'function') return valor as (evento: Event) => void\n if (Array.isArray(valor)) {\n return (evento: Event) => {\n for (const fn of valor) if (typeof fn === 'function') fn(evento)\n }\n }\n return undefined\n}\n\n/**\n * Converte um `<acai-ui-button>` em `DropdownItemProps`, ou devolve `null` se\n * não der pra nomear a linha.\n *\n * O NOME é o ponto: `label` é required no item, e uma linha de menu sem texto é\n * um retângulo vazio — que era justamente o sintoma de antes com ação só de\n * ícone. A ordem de busca aproveita que o botão já é obrigado a ter nome\n * acessível quando é icon-only (eMAG 4.2), então `tooltip`/`ariaLabel` quase\n * sempre existem. Botão sem nenhum dos três não vira item: fica solto e leva\n * aviso, porque ali o problema não é o menu, é o botão sem nome acessível.\n */\nfunction converter(v: VNode): DropdownItemProps | null {\n const p = normalizarProps(v.props)\n\n const label = String(p.label ?? '').trim()\n const nomeAcessivel = String(p.ariaLabel ?? p.tooltip ?? '').trim()\n const texto = label || nomeAcessivel\n if (!texto) return null\n\n // `iconRight` só entra se não houver `icon`: o item tem uma posição de ícone\n // só, e perder o desenho é pior que mudá-lo de lado.\n const icone = (p.icon ?? p.iconRight) as MaterialIconValues | undefined\n const desabilitado = p.disable ?? p.disabled\n const clique = normalizarClique(p.onClick)\n\n // Spreads condicionais em vez de `undefined` explícito: o tsconfig do template\n // do CLI usa `exactOptionalPropertyTypes: true`, onde passar `undefined` numa\n // prop opcional é erro de tipo.\n return {\n label: texto,\n ...(v.key != null ? { id: v.key as string | number } : {}),\n ...(icone ? { icon: icone } : {}),\n ...(p.color ? { color: String(p.color) } : {}),\n ...(desabilitado !== undefined ? { disabled: lerBooleano(desabilitado) } : {}),\n // O tooltip do botão não sobrevive dentro do menu (não há hover no celular),\n // mas o do estado desabilitado sim — é o que explica por que a ação não pode\n // ser usada, e o `<acai-ui-dropdown-item>` mostra esse.\n ...(label && p.tooltip ? { disabledTooltip: String(p.tooltip) } : {}),\n ...(p.to ? { to: p.to as DropdownItemProps['to'] } : {}),\n ...(p.href ? { href: String(p.href) } : {}),\n ...(p.exact !== undefined ? { exact: lerBooleano(p.exact) } : {}),\n ...(clique ? { onClick: clique } : {}),\n }\n}\n\n/** Avisa uma vez por motivo — o computed reavalia a cada update do host. */\nconst jaAvisado = new Set<string>()\n\nfunction avisar(motivo: string): void {\n if (!import.meta.env.DEV) return\n if (jaAvisado.has(motivo)) return\n jaAvisado.add(motivo)\n console.warn(\n `[acai-ui-actions] ${motivo} Essa ação continua no cabeçalho em vez de entrar ` +\n `no menu \"Ações\" do celular.`,\n )\n}\n\n/**\n * Chamar `slots.default()` DENTRO do computed é o que mantém isto reativo: a\n * chamada registra no computed as dependências que o host lê ao renderizar o\n * slot, então um `v-if` do consumidor sobre uma ação reavalia a lista. É o\n * mesmo mecanismo do `<acai-ui-tabs>`.\n */\nconst analise = computed<{ itens: DropdownItemProps[]; soltos: VNode[] }>(() => {\n const itens: DropdownItemProps[] = []\n const soltos: VNode[] = []\n\n for (const v of achatarSlot(slots.default?.())) {\n if (!ehBotaoAcai(v)) {\n soltos.push(v)\n avisar('Só <acai-ui-button> vira item de menu — o slot #actions recebeu outra coisa.')\n continue\n }\n\n const item = converter(v)\n if (item === null) {\n soltos.push(v)\n avisar('<acai-ui-button> sem `label`, `aria-label` nem `tooltip`: não há texto pro item.')\n continue\n }\n\n itens.push(item)\n }\n\n return { itens, soltos }\n})\n\nconst itens = computed(() => analise.value.itens)\nconst soltos = computed(() => analise.value.soltos)\n</script>\n"],"names":["useTela","useSlots","AcaiUiButton","normalizarProps","lerBooleano","computed","itens","soltos","achatarSlot","_unref","_renderSlot","_createElementBlock","_Fragment","_openBlock","_renderList","_createBlock","_resolveDynamicComponent","AcaiUiDropdown","AcaiUiDropdownItem","_mergeProps"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { defineComponent, useSlots, computed, unref, renderSlot, openBlock, createElementBlock, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, mergeProps, createCommentVNode } from "vue";
2
+ import _sfc_main$1 from "./index14.mjs";
3
+ /* empty css */
4
+ import _sfc_main$2 from "./index16.mjs";
5
+ import AcaiUiButton from "./index49.mjs";
6
+ import { achatarSlot, normalizarProps, lerBooleano } from "./index185.mjs";
7
+ import { useTela } from "./index71.mjs";
8
+ const NOME_BOTAO = "acai-ui-button";
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "acai-ui-actions",
11
+ props: {
12
+ label: { default: "Ações" },
13
+ buttonClass: { default: "" },
14
+ dense: { type: Boolean, default: false },
15
+ collapse: { type: Boolean, default: true }
16
+ },
17
+ setup(__props) {
18
+ const { ehMobile } = useTela();
19
+ const slots = useSlots();
20
+ function ehBotaoAcai(v) {
21
+ if (v.type === AcaiUiButton) return true;
22
+ const tipo = v.type;
23
+ return (tipo == null ? void 0 : tipo.__name) === NOME_BOTAO || (tipo == null ? void 0 : tipo.name) === NOME_BOTAO;
24
+ }
25
+ function normalizarClique(valor) {
26
+ if (typeof valor === "function") return valor;
27
+ if (Array.isArray(valor)) {
28
+ return (evento) => {
29
+ for (const fn of valor) if (typeof fn === "function") fn(evento);
30
+ };
31
+ }
32
+ return void 0;
33
+ }
34
+ function converter(v) {
35
+ const p = normalizarProps(v.props);
36
+ const label = String(p.label ?? "").trim();
37
+ const nomeAcessivel = String(p.ariaLabel ?? p.tooltip ?? "").trim();
38
+ const texto = label || nomeAcessivel;
39
+ if (!texto) return null;
40
+ const icone = p.icon ?? p.iconRight;
41
+ const desabilitado = p.disable ?? p.disabled;
42
+ const clique = normalizarClique(p.onClick);
43
+ return {
44
+ label: texto,
45
+ ...v.key != null ? { id: v.key } : {},
46
+ ...icone ? { icon: icone } : {},
47
+ ...p.color ? { color: String(p.color) } : {},
48
+ ...desabilitado !== void 0 ? { disabled: lerBooleano(desabilitado) } : {},
49
+ // O tooltip do botão não sobrevive dentro do menu (não há hover no celular),
50
+ // mas o do estado desabilitado sim — é o que explica por que a ação não pode
51
+ // ser usada, e o `<acai-ui-dropdown-item>` mostra esse.
52
+ ...label && p.tooltip ? { disabledTooltip: String(p.tooltip) } : {},
53
+ ...p.to ? { to: p.to } : {},
54
+ ...p.href ? { href: String(p.href) } : {},
55
+ ...p.exact !== void 0 ? { exact: lerBooleano(p.exact) } : {},
56
+ ...clique ? { onClick: clique } : {}
57
+ };
58
+ }
59
+ const analise = computed(() => {
60
+ var _a;
61
+ const itens2 = [];
62
+ const soltos2 = [];
63
+ for (const v of achatarSlot((_a = slots.default) == null ? void 0 : _a.call(slots))) {
64
+ if (!ehBotaoAcai(v)) {
65
+ soltos2.push(v);
66
+ continue;
67
+ }
68
+ const item = converter(v);
69
+ if (item === null) {
70
+ soltos2.push(v);
71
+ continue;
72
+ }
73
+ itens2.push(item);
74
+ }
75
+ return { itens: itens2, soltos: soltos2 };
76
+ });
77
+ const itens = computed(() => analise.value.itens);
78
+ const soltos = computed(() => analise.value.soltos);
79
+ return (_ctx, _cache) => {
80
+ return !unref(ehMobile) || !__props.collapse ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
81
+ (openBlock(true), createElementBlock(Fragment, null, renderList(soltos.value, (v, i) => {
82
+ return openBlock(), createBlock(resolveDynamicComponent(v), {
83
+ key: `solto-${i}`
84
+ });
85
+ }), 128)),
86
+ itens.value.length > 0 ? (openBlock(), createBlock(_sfc_main$1, {
87
+ key: 0,
88
+ outline: "",
89
+ dense: __props.dense,
90
+ label: __props.label,
91
+ "button-class": __props.buttonClass
92
+ }, {
93
+ default: withCtx(() => [
94
+ (openBlock(true), createElementBlock(Fragment, null, renderList(itens.value, (item, i) => {
95
+ return openBlock(), createBlock(_sfc_main$2, mergeProps({
96
+ key: item.id ?? i
97
+ }, { ref_for: true }, item), null, 16);
98
+ }), 128))
99
+ ]),
100
+ _: 1
101
+ }, 8, ["dense", "label", "button-class"])) : createCommentVNode("", true)
102
+ ], 64));
103
+ };
104
+ }
105
+ });
106
+ export {
107
+ _sfc_main as default
108
+ };
109
+ //# sourceMappingURL=index181.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index181.mjs","sources":["../src/components/actions/acai-ui-actions.vue"],"sourcesContent":["<template>\n <!--\n Ações do consumidor que se recolhem no celular.\n\n Desktop: exatamente o que o consumidor escreveu, solto — o componente some\n do caminho (o `<slot>` é a raiz, não há wrapper extra pra atrapalhar o\n `flex` de quem hospeda).\n\n Celular (≤600px): vira menu de verdade. O motivo é aritmético e vale pra\n qualquer cabeçalho da lib — card, section, formulário: rótulos de ação\n (\"Exportar\", \"Imprimir\", \"Nova cobrança\") custam 90–120px cada, e ao lado de\n um título ou de uma ação principal não sobra largura em 360px. A linha\n quebrava em duas ou três e empurrava o conteúdo pra baixo.\n\n Interno de propósito: não é exportado no `index.ts`. Quem monta cabeçalho\n próprio usa `useTela` direto.\n -->\n <slot v-if=\"!ehMobile || !collapse\" />\n\n <template v-else>\n <!--\n NÃO RECONHECIDOS FICAM FORA DO MENU.\n\n Só um `<acai-ui-button>` pode virar linha de menu com honestidade: é dele\n que se sabe ler rótulo, ícone, cor, estado e clique. Um `<q-btn>` cru, um\n componente do próprio consumidor ou uma `<div>` não têm contrato nenhum\n pra ler — e adivinhar renderiza item errado.\n\n Ficam soltos, exatamente como ficariam no desktop: a ação continua\n clicável e visível. Sumir com ela seria trocar um problema de layout por\n perda de funcionalidade, que é pior. O `console.warn` (só em DEV) diz ao\n dev o que fazer.\n -->\n <component :is=\"v\" v-for=\"(v, i) in soltos\" :key=\"`solto-${i}`\" />\n\n <acai-ui-dropdown\n v-if=\"itens.length > 0\"\n outline\n :dense=\"dense\"\n :label=\"label\"\n :button-class=\"buttonClass\"\n >\n <!--\n Item de menu DE VERDADE, não botão fingindo de item. É daqui que sai\n tudo o que o botão dentro do menu não tinha: `v-close-popup` (o menu\n fechar ao escolher a ação), `role=\"listitem\"` válido dentro do\n `role=\"list\"` do `<q-list>`, navegação por seta do QMenu, e o visual de\n linha de menu sem CSS desfazendo cara de botão.\n -->\n <acai-ui-dropdown-item\n v-for=\"(item, i) in itens\"\n :key=\"item.id ?? i\"\n v-bind=\"item\"\n />\n </acai-ui-dropdown>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots, type VNode } from 'vue'\nimport AcaiUiDropdown from '../dropdown/acai-ui-dropdown.vue'\nimport AcaiUiDropdownItem from '../dropdown/acai-ui-dropdown-item.vue'\nimport AcaiUiButton from '../button/acai-ui-button.vue'\nimport type { DropdownItemProps } from '../dropdown/acai-ui-dropdown-interface'\nimport type { MaterialIconValues } from '../../constants/lista-icons'\nimport { achatarSlot, lerBooleano, normalizarProps } from '../../utils/vnode-slot'\nimport { useTela } from '../../hooks/use-tela'\n\n// O `| undefined` é OBRIGATÓRIO em todas: os consumidores compilam com\n// `exactOptionalPropertyTypes: true`, onde `label?: string` significa \"ausente\n// OU string\" — e `undefined` não é nenhum dos dois. Quem hospeda repassa o\n// próprio `actionsLabel`, que o TS enxerga como `string | undefined`, e sem o\n// `| undefined` aqui o typecheck quebra no host. Mesma convenção já documentada\n// no `acai-ui-dropdown-interface.ts`.\nwithDefaults(\n defineProps<{\n /** Rótulo do botão que agrupa as ações no celular. */\n label?: string | undefined\n /** Classe aplicada ao botão do dropdown — o `<acai-ui-dropdown>` tem\n * `inheritAttrs: false`, então uma `class` solta não chegaria nele. */\n buttonClass?: string | undefined\n dense?: boolean | undefined\n /**\n * Recolher no celular? Default `true`.\n *\n * Existe porque recolher NÃO é sempre ganho: ações **só de ícone** cabem\n * numa linha mesmo em 360px, e no menu viram uma lista de rótulos onde o\n * desenho era a informação. Quem tem um cabeçalho assim passa\n * `:collapse-actions=\"false\"` e mantém os ícones onde estavam.\n */\n collapse?: boolean | undefined\n }>(),\n { label: 'Ações', buttonClass: '', dense: false, collapse: true },\n)\n\n/**\n * ≤600px (`$bp-sm` — o mesmo ponto da folha do drawer e do mixin `ate-mobile`).\n *\n * É `useTela` e não media query porque a mudança é de ESTRUTURA: as ações\n * deixam de ser botões e viram itens de menu. CSS não troca componente.\n */\nconst { ehMobile } = useTela()\n\nconst slots = useSlots() as { default?: () => VNode[] }\n\n/** Nome do SFC (o compilador infere do arquivo) — fallback da checagem por identidade. */\nconst NOME_BOTAO = 'acai-ui-button'\n\n/**\n * O consumidor pode resolver o `<acai-ui-button>` por outro caminho de módulo\n * (a lib tem a condition `vue` apontando pro source além do `dist`), e aí a\n * comparação por identidade falha mesmo sendo o mesmo componente. O `__name`\n * é a rede de segurança.\n */\nfunction ehBotaoAcai(v: VNode): boolean {\n if (v.type === AcaiUiButton) return true\n const tipo = v.type as { __name?: string; name?: string } | null | undefined\n return tipo?.__name === NOME_BOTAO || tipo?.name === NOME_BOTAO\n}\n\n/**\n * `@click` pode chegar como função ou como ARRAY de funções, quando mais de um\n * listener é mesclado no mesmo vnode. O array quebraria silenciosamente.\n */\nfunction normalizarClique(valor: unknown): ((evento: Event) => void) | undefined {\n if (typeof valor === 'function') return valor as (evento: Event) => void\n if (Array.isArray(valor)) {\n return (evento: Event) => {\n for (const fn of valor) if (typeof fn === 'function') fn(evento)\n }\n }\n return undefined\n}\n\n/**\n * Converte um `<acai-ui-button>` em `DropdownItemProps`, ou devolve `null` se\n * não der pra nomear a linha.\n *\n * O NOME é o ponto: `label` é required no item, e uma linha de menu sem texto é\n * um retângulo vazio — que era justamente o sintoma de antes com ação só de\n * ícone. A ordem de busca aproveita que o botão já é obrigado a ter nome\n * acessível quando é icon-only (eMAG 4.2), então `tooltip`/`ariaLabel` quase\n * sempre existem. Botão sem nenhum dos três não vira item: fica solto e leva\n * aviso, porque ali o problema não é o menu, é o botão sem nome acessível.\n */\nfunction converter(v: VNode): DropdownItemProps | null {\n const p = normalizarProps(v.props)\n\n const label = String(p.label ?? '').trim()\n const nomeAcessivel = String(p.ariaLabel ?? p.tooltip ?? '').trim()\n const texto = label || nomeAcessivel\n if (!texto) return null\n\n // `iconRight` só entra se não houver `icon`: o item tem uma posição de ícone\n // só, e perder o desenho é pior que mudá-lo de lado.\n const icone = (p.icon ?? p.iconRight) as MaterialIconValues | undefined\n const desabilitado = p.disable ?? p.disabled\n const clique = normalizarClique(p.onClick)\n\n // Spreads condicionais em vez de `undefined` explícito: o tsconfig do template\n // do CLI usa `exactOptionalPropertyTypes: true`, onde passar `undefined` numa\n // prop opcional é erro de tipo.\n return {\n label: texto,\n ...(v.key != null ? { id: v.key as string | number } : {}),\n ...(icone ? { icon: icone } : {}),\n ...(p.color ? { color: String(p.color) } : {}),\n ...(desabilitado !== undefined ? { disabled: lerBooleano(desabilitado) } : {}),\n // O tooltip do botão não sobrevive dentro do menu (não há hover no celular),\n // mas o do estado desabilitado sim — é o que explica por que a ação não pode\n // ser usada, e o `<acai-ui-dropdown-item>` mostra esse.\n ...(label && p.tooltip ? { disabledTooltip: String(p.tooltip) } : {}),\n ...(p.to ? { to: p.to as DropdownItemProps['to'] } : {}),\n ...(p.href ? { href: String(p.href) } : {}),\n ...(p.exact !== undefined ? { exact: lerBooleano(p.exact) } : {}),\n ...(clique ? { onClick: clique } : {}),\n }\n}\n\n/** Avisa uma vez por motivo — o computed reavalia a cada update do host. */\nconst jaAvisado = new Set<string>()\n\nfunction avisar(motivo: string): void {\n if (!import.meta.env.DEV) return\n if (jaAvisado.has(motivo)) return\n jaAvisado.add(motivo)\n console.warn(\n `[acai-ui-actions] ${motivo} Essa ação continua no cabeçalho em vez de entrar ` +\n `no menu \"Ações\" do celular.`,\n )\n}\n\n/**\n * Chamar `slots.default()` DENTRO do computed é o que mantém isto reativo: a\n * chamada registra no computed as dependências que o host lê ao renderizar o\n * slot, então um `v-if` do consumidor sobre uma ação reavalia a lista. É o\n * mesmo mecanismo do `<acai-ui-tabs>`.\n */\nconst analise = computed<{ itens: DropdownItemProps[]; soltos: VNode[] }>(() => {\n const itens: DropdownItemProps[] = []\n const soltos: VNode[] = []\n\n for (const v of achatarSlot(slots.default?.())) {\n if (!ehBotaoAcai(v)) {\n soltos.push(v)\n avisar('Só <acai-ui-button> vira item de menu — o slot #actions recebeu outra coisa.')\n continue\n }\n\n const item = converter(v)\n if (item === null) {\n soltos.push(v)\n avisar('<acai-ui-button> sem `label`, `aria-label` nem `tooltip`: não há texto pro item.')\n continue\n }\n\n itens.push(item)\n }\n\n return { itens, soltos }\n})\n\nconst itens = computed(() => analise.value.itens)\nconst soltos = computed(() => analise.value.soltos)\n</script>\n"],"names":["itens","soltos","_unref","_renderSlot","_createElementBlock","_Fragment","_openBlock","_renderList","_createBlock","_resolveDynamicComponent","AcaiUiDropdown","AcaiUiDropdownItem","_mergeProps"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const ESPACO_BALAO = 12;
4
+ const MARGEM_JANELA = 8;
5
+ const ORDEM_AUTO = ["bottom", "top", "right", "left"];
6
+ function limitar(valor, minimo, maximo) {
7
+ if (maximo < minimo) return minimo;
8
+ return Math.min(Math.max(valor, minimo), maximo);
9
+ }
10
+ function expandirRecorte(alvo, padding, viewport) {
11
+ const esquerda = Math.max(0, alvo.left - padding);
12
+ const topo = Math.max(0, alvo.top - padding);
13
+ const direita = Math.min(viewport.width, alvo.left + alvo.width + padding);
14
+ const base = Math.min(viewport.height, alvo.top + alvo.height + padding);
15
+ return {
16
+ left: esquerda,
17
+ top: topo,
18
+ width: Math.max(0, direita - esquerda),
19
+ height: Math.max(0, base - topo)
20
+ };
21
+ }
22
+ function posicionarNoLado(lado, alvo, balao) {
23
+ const centroX = alvo.left + alvo.width / 2 - balao.width / 2;
24
+ const centroY = alvo.top + alvo.height / 2 - balao.height / 2;
25
+ switch (lado) {
26
+ case "bottom":
27
+ return { top: alvo.top + alvo.height + ESPACO_BALAO, left: centroX };
28
+ case "top":
29
+ return { top: alvo.top - balao.height - ESPACO_BALAO, left: centroX };
30
+ case "right":
31
+ return { top: centroY, left: alvo.left + alvo.width + ESPACO_BALAO };
32
+ case "left":
33
+ return { top: centroY, left: alvo.left - balao.width - ESPACO_BALAO };
34
+ }
35
+ }
36
+ function cabe(pos, balao, viewport) {
37
+ return pos.top >= MARGEM_JANELA && pos.left >= MARGEM_JANELA && pos.top + balao.height <= viewport.height - MARGEM_JANELA && pos.left + balao.width <= viewport.width - MARGEM_JANELA;
38
+ }
39
+ function posicionarBalao(alvo, balao, viewport, placement = "auto") {
40
+ const candidatos = placement === "auto" ? ORDEM_AUTO : [placement, ...ORDEM_AUTO.filter((lado) => lado !== placement)];
41
+ for (const lado of candidatos) {
42
+ const pos = posicionarNoLado(lado, alvo, balao);
43
+ if (cabe(pos, balao, viewport)) return { ...pos, side: lado };
44
+ }
45
+ const ladoFinal = candidatos[0];
46
+ const bruto = posicionarNoLado(ladoFinal, alvo, balao);
47
+ return {
48
+ top: limitar(bruto.top, MARGEM_JANELA, viewport.height - balao.height - MARGEM_JANELA),
49
+ left: limitar(bruto.left, MARGEM_JANELA, viewport.width - balao.width - MARGEM_JANELA),
50
+ side: ladoFinal
51
+ };
52
+ }
53
+ function centralizarBalao(balao, viewport) {
54
+ return {
55
+ top: limitar(
56
+ viewport.height / 2 - balao.height / 2,
57
+ MARGEM_JANELA,
58
+ viewport.height - balao.height - MARGEM_JANELA
59
+ ),
60
+ left: limitar(
61
+ viewport.width / 2 - balao.width / 2,
62
+ MARGEM_JANELA,
63
+ viewport.width - balao.width - MARGEM_JANELA
64
+ ),
65
+ side: "bottom"
66
+ };
67
+ }
68
+ exports.ESPACO_BALAO = ESPACO_BALAO;
69
+ exports.MARGEM_JANELA = MARGEM_JANELA;
70
+ exports.centralizarBalao = centralizarBalao;
71
+ exports.expandirRecorte = expandirRecorte;
72
+ exports.posicionarBalao = posicionarBalao;
73
+ //# sourceMappingURL=index182.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index182.cjs","sources":["../src/components/help/tour-posicionar.ts"],"sourcesContent":["import type { BalloonPosition, SpotlightRect, TourPlacement } from './acai-ui-help-interface'\n\n/**\n * Geometria do tour, isolada do DOM de propósito.\n *\n * Tudo aqui é função pura sobre números: o componente lê os retângulos com\n * `getBoundingClientRect()` e passa pra cá. Isso deixa o miolo difícil\n * (flip/clamp do balão) testável sem montar nada.\n */\n\nexport interface Viewport {\n width: number\n height: number\n}\n\nexport interface Tamanho {\n width: number\n height: number\n}\n\n/** Distância entre o recorte e o balão, em px. */\nexport const ESPACO_BALAO = 12\n\n/** Respiro mínimo entre o balão e a borda da janela, em px. */\nexport const MARGEM_JANELA = 8\n\n/** Ordem de tentativa quando o passo não escolhe um lado. */\nconst ORDEM_AUTO: Exclude<TourPlacement, 'auto'>[] = ['bottom', 'top', 'right', 'left']\n\nfunction limitar(valor: number, minimo: number, maximo: number): number {\n // `maximo < minimo` acontece quando o balão é maior que a janela; nesse caso\n // vale mais grudar no topo/esquerda do que devolver um número invertido.\n if (maximo < minimo) return minimo\n return Math.min(Math.max(valor, minimo), maximo)\n}\n\n/**\n * Cresce o retângulo do elemento pela folga do recorte e o mantém dentro da\n * janela — sem isso, um alvo colado na borda gera um buraco com pedaço fora\n * da tela e a máscara fica torta.\n */\nexport function expandirRecorte(\n alvo: SpotlightRect,\n padding: number,\n viewport: Viewport,\n): SpotlightRect {\n const esquerda = Math.max(0, alvo.left - padding)\n const topo = Math.max(0, alvo.top - padding)\n const direita = Math.min(viewport.width, alvo.left + alvo.width + padding)\n const base = Math.min(viewport.height, alvo.top + alvo.height + padding)\n\n return {\n left: esquerda,\n top: topo,\n width: Math.max(0, direita - esquerda),\n height: Math.max(0, base - topo),\n }\n}\n\n/** `true` quando o alvo saiu inteiro da área visível (usuário rolou demais). */\nexport function estaForaDaJanela(alvo: SpotlightRect, viewport: Viewport): boolean {\n return (\n alvo.top + alvo.height <= 0 ||\n alvo.top >= viewport.height ||\n alvo.left + alvo.width <= 0 ||\n alvo.left >= viewport.width\n )\n}\n\nfunction posicionarNoLado(\n lado: Exclude<TourPlacement, 'auto'>,\n alvo: SpotlightRect,\n balao: Tamanho,\n): { top: number; left: number } {\n const centroX = alvo.left + alvo.width / 2 - balao.width / 2\n const centroY = alvo.top + alvo.height / 2 - balao.height / 2\n\n switch (lado) {\n case 'bottom':\n return { top: alvo.top + alvo.height + ESPACO_BALAO, left: centroX }\n case 'top':\n return { top: alvo.top - balao.height - ESPACO_BALAO, left: centroX }\n case 'right':\n return { top: centroY, left: alvo.left + alvo.width + ESPACO_BALAO }\n case 'left':\n return { top: centroY, left: alvo.left - balao.width - ESPACO_BALAO }\n }\n}\n\nfunction cabe(pos: { top: number; left: number }, balao: Tamanho, viewport: Viewport): boolean {\n return (\n pos.top >= MARGEM_JANELA &&\n pos.left >= MARGEM_JANELA &&\n pos.top + balao.height <= viewport.height - MARGEM_JANELA &&\n pos.left + balao.width <= viewport.width - MARGEM_JANELA\n )\n}\n\n/**\n * Escolhe onde o balão fica: tenta o lado pedido, vira pro lado oposto/livre\n * se não couber (*flip*) e, em último caso, gruda dentro da janela (*clamp*).\n *\n * O `side` devolvido é o lado REAL usado — é ele que orienta a setinha, senão\n * a seta aponta pro nada quando houve flip.\n */\nexport function posicionarBalao(\n alvo: SpotlightRect,\n balao: Tamanho,\n viewport: Viewport,\n placement: TourPlacement = 'auto',\n): BalloonPosition {\n const candidatos: Exclude<TourPlacement, 'auto'>[] =\n placement === 'auto'\n ? ORDEM_AUTO\n : [placement, ...ORDEM_AUTO.filter(lado => lado !== placement)]\n\n for (const lado of candidatos) {\n const pos = posicionarNoLado(lado, alvo, balao)\n if (cabe(pos, balao, viewport)) return { ...pos, side: lado }\n }\n\n // Nenhum lado coube inteiro — mantém o lado preferido e encaixa na força.\n const ladoFinal = candidatos[0]!\n const bruto = posicionarNoLado(ladoFinal, alvo, balao)\n\n return {\n top: limitar(bruto.top, MARGEM_JANELA, viewport.height - balao.height - MARGEM_JANELA),\n left: limitar(bruto.left, MARGEM_JANELA, viewport.width - balao.width - MARGEM_JANELA),\n side: ladoFinal,\n }\n}\n\n/** Passo sem âncora (ex.: boas-vindas): balão no meio da tela, sem recorte. */\nexport function centralizarBalao(balao: Tamanho, viewport: Viewport): BalloonPosition {\n return {\n top: limitar(\n viewport.height / 2 - balao.height / 2,\n MARGEM_JANELA,\n viewport.height - balao.height - MARGEM_JANELA,\n ),\n left: limitar(\n viewport.width / 2 - balao.width / 2,\n MARGEM_JANELA,\n viewport.width - balao.width - MARGEM_JANELA,\n ),\n side: 'bottom',\n }\n}\n"],"names":[],"mappings":";;AAqBO,MAAM,eAAe;AAGrB,MAAM,gBAAgB;AAG7B,MAAM,aAA+C,CAAC,UAAU,OAAO,SAAS,MAAM;AAEtF,SAAS,QAAQ,OAAe,QAAgB,QAAwB;AAGtE,MAAI,SAAS,OAAQ,QAAO;AAC5B,SAAO,KAAK,IAAI,KAAK,IAAI,OAAO,MAAM,GAAG,MAAM;AACjD;AAOO,SAAS,gBACd,MACA,SACA,UACe;AACf,QAAM,WAAW,KAAK,IAAI,GAAG,KAAK,OAAO,OAAO;AAChD,QAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO;AAC3C,QAAM,UAAU,KAAK,IAAI,SAAS,OAAO,KAAK,OAAO,KAAK,QAAQ,OAAO;AACzE,QAAM,OAAO,KAAK,IAAI,SAAS,QAAQ,KAAK,MAAM,KAAK,SAAS,OAAO;AAEvE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO,KAAK,IAAI,GAAG,UAAU,QAAQ;AAAA,IACrC,QAAQ,KAAK,IAAI,GAAG,OAAO,IAAI;AAAA,EAAA;AAEnC;AAYA,SAAS,iBACP,MACA,MACA,OAC+B;AAC/B,QAAM,UAAU,KAAK,OAAO,KAAK,QAAQ,IAAI,MAAM,QAAQ;AAC3D,QAAM,UAAU,KAAK,MAAM,KAAK,SAAS,IAAI,MAAM,SAAS;AAE5D,UAAQ,MAAA;AAAA,IACN,KAAK;AACH,aAAO,EAAE,KAAK,KAAK,MAAM,KAAK,SAAS,cAAc,MAAM,QAAA;AAAA,IAC7D,KAAK;AACH,aAAO,EAAE,KAAK,KAAK,MAAM,MAAM,SAAS,cAAc,MAAM,QAAA;AAAA,IAC9D,KAAK;AACH,aAAO,EAAE,KAAK,SAAS,MAAM,KAAK,OAAO,KAAK,QAAQ,aAAA;AAAA,IACxD,KAAK;AACH,aAAO,EAAE,KAAK,SAAS,MAAM,KAAK,OAAO,MAAM,QAAQ,aAAA;AAAA,EAAa;AAE1E;AAEA,SAAS,KAAK,KAAoC,OAAgB,UAA6B;AAC7F,SACE,IAAI,OAAO,iBACX,IAAI,QAAQ,iBACZ,IAAI,MAAM,MAAM,UAAU,SAAS,SAAS,iBAC5C,IAAI,OAAO,MAAM,SAAS,SAAS,QAAQ;AAE/C;AASO,SAAS,gBACd,MACA,OACA,UACA,YAA2B,QACV;AACjB,QAAM,aACJ,cAAc,SACV,aACA,CAAC,WAAW,GAAG,WAAW,OAAO,CAAA,SAAQ,SAAS,SAAS,CAAC;AAElE,aAAW,QAAQ,YAAY;AAC7B,UAAM,MAAM,iBAAiB,MAAM,MAAM,KAAK;AAC9C,QAAI,KAAK,KAAK,OAAO,QAAQ,UAAU,EAAE,GAAG,KAAK,MAAM,KAAA;AAAA,EACzD;AAGA,QAAM,YAAY,WAAW,CAAC;AAC9B,QAAM,QAAQ,iBAAiB,WAAW,MAAM,KAAK;AAErD,SAAO;AAAA,IACL,KAAK,QAAQ,MAAM,KAAK,eAAe,SAAS,SAAS,MAAM,SAAS,aAAa;AAAA,IACrF,MAAM,QAAQ,MAAM,MAAM,eAAe,SAAS,QAAQ,MAAM,QAAQ,aAAa;AAAA,IACrF,MAAM;AAAA,EAAA;AAEV;AAGO,SAAS,iBAAiB,OAAgB,UAAqC;AACpF,SAAO;AAAA,IACL,KAAK;AAAA,MACH,SAAS,SAAS,IAAI,MAAM,SAAS;AAAA,MACrC;AAAA,MACA,SAAS,SAAS,MAAM,SAAS;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,MACJ,SAAS,QAAQ,IAAI,MAAM,QAAQ;AAAA,MACnC;AAAA,MACA,SAAS,QAAQ,MAAM,QAAQ;AAAA,IAAA;AAAA,IAEjC,MAAM;AAAA,EAAA;AAEV;;;;;;"}
@@ -0,0 +1,73 @@
1
+ const ESPACO_BALAO = 12;
2
+ const MARGEM_JANELA = 8;
3
+ const ORDEM_AUTO = ["bottom", "top", "right", "left"];
4
+ function limitar(valor, minimo, maximo) {
5
+ if (maximo < minimo) return minimo;
6
+ return Math.min(Math.max(valor, minimo), maximo);
7
+ }
8
+ function expandirRecorte(alvo, padding, viewport) {
9
+ const esquerda = Math.max(0, alvo.left - padding);
10
+ const topo = Math.max(0, alvo.top - padding);
11
+ const direita = Math.min(viewport.width, alvo.left + alvo.width + padding);
12
+ const base = Math.min(viewport.height, alvo.top + alvo.height + padding);
13
+ return {
14
+ left: esquerda,
15
+ top: topo,
16
+ width: Math.max(0, direita - esquerda),
17
+ height: Math.max(0, base - topo)
18
+ };
19
+ }
20
+ function posicionarNoLado(lado, alvo, balao) {
21
+ const centroX = alvo.left + alvo.width / 2 - balao.width / 2;
22
+ const centroY = alvo.top + alvo.height / 2 - balao.height / 2;
23
+ switch (lado) {
24
+ case "bottom":
25
+ return { top: alvo.top + alvo.height + ESPACO_BALAO, left: centroX };
26
+ case "top":
27
+ return { top: alvo.top - balao.height - ESPACO_BALAO, left: centroX };
28
+ case "right":
29
+ return { top: centroY, left: alvo.left + alvo.width + ESPACO_BALAO };
30
+ case "left":
31
+ return { top: centroY, left: alvo.left - balao.width - ESPACO_BALAO };
32
+ }
33
+ }
34
+ function cabe(pos, balao, viewport) {
35
+ return pos.top >= MARGEM_JANELA && pos.left >= MARGEM_JANELA && pos.top + balao.height <= viewport.height - MARGEM_JANELA && pos.left + balao.width <= viewport.width - MARGEM_JANELA;
36
+ }
37
+ function posicionarBalao(alvo, balao, viewport, placement = "auto") {
38
+ const candidatos = placement === "auto" ? ORDEM_AUTO : [placement, ...ORDEM_AUTO.filter((lado) => lado !== placement)];
39
+ for (const lado of candidatos) {
40
+ const pos = posicionarNoLado(lado, alvo, balao);
41
+ if (cabe(pos, balao, viewport)) return { ...pos, side: lado };
42
+ }
43
+ const ladoFinal = candidatos[0];
44
+ const bruto = posicionarNoLado(ladoFinal, alvo, balao);
45
+ return {
46
+ top: limitar(bruto.top, MARGEM_JANELA, viewport.height - balao.height - MARGEM_JANELA),
47
+ left: limitar(bruto.left, MARGEM_JANELA, viewport.width - balao.width - MARGEM_JANELA),
48
+ side: ladoFinal
49
+ };
50
+ }
51
+ function centralizarBalao(balao, viewport) {
52
+ return {
53
+ top: limitar(
54
+ viewport.height / 2 - balao.height / 2,
55
+ MARGEM_JANELA,
56
+ viewport.height - balao.height - MARGEM_JANELA
57
+ ),
58
+ left: limitar(
59
+ viewport.width / 2 - balao.width / 2,
60
+ MARGEM_JANELA,
61
+ viewport.width - balao.width - MARGEM_JANELA
62
+ ),
63
+ side: "bottom"
64
+ };
65
+ }
66
+ export {
67
+ ESPACO_BALAO,
68
+ MARGEM_JANELA,
69
+ centralizarBalao,
70
+ expandirRecorte,
71
+ posicionarBalao
72
+ };
73
+ //# sourceMappingURL=index182.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index182.mjs","sources":["../src/components/help/tour-posicionar.ts"],"sourcesContent":["import type { BalloonPosition, SpotlightRect, TourPlacement } from './acai-ui-help-interface'\n\n/**\n * Geometria do tour, isolada do DOM de propósito.\n *\n * Tudo aqui é função pura sobre números: o componente lê os retângulos com\n * `getBoundingClientRect()` e passa pra cá. Isso deixa o miolo difícil\n * (flip/clamp do balão) testável sem montar nada.\n */\n\nexport interface Viewport {\n width: number\n height: number\n}\n\nexport interface Tamanho {\n width: number\n height: number\n}\n\n/** Distância entre o recorte e o balão, em px. */\nexport const ESPACO_BALAO = 12\n\n/** Respiro mínimo entre o balão e a borda da janela, em px. */\nexport const MARGEM_JANELA = 8\n\n/** Ordem de tentativa quando o passo não escolhe um lado. */\nconst ORDEM_AUTO: Exclude<TourPlacement, 'auto'>[] = ['bottom', 'top', 'right', 'left']\n\nfunction limitar(valor: number, minimo: number, maximo: number): number {\n // `maximo < minimo` acontece quando o balão é maior que a janela; nesse caso\n // vale mais grudar no topo/esquerda do que devolver um número invertido.\n if (maximo < minimo) return minimo\n return Math.min(Math.max(valor, minimo), maximo)\n}\n\n/**\n * Cresce o retângulo do elemento pela folga do recorte e o mantém dentro da\n * janela — sem isso, um alvo colado na borda gera um buraco com pedaço fora\n * da tela e a máscara fica torta.\n */\nexport function expandirRecorte(\n alvo: SpotlightRect,\n padding: number,\n viewport: Viewport,\n): SpotlightRect {\n const esquerda = Math.max(0, alvo.left - padding)\n const topo = Math.max(0, alvo.top - padding)\n const direita = Math.min(viewport.width, alvo.left + alvo.width + padding)\n const base = Math.min(viewport.height, alvo.top + alvo.height + padding)\n\n return {\n left: esquerda,\n top: topo,\n width: Math.max(0, direita - esquerda),\n height: Math.max(0, base - topo),\n }\n}\n\n/** `true` quando o alvo saiu inteiro da área visível (usuário rolou demais). */\nexport function estaForaDaJanela(alvo: SpotlightRect, viewport: Viewport): boolean {\n return (\n alvo.top + alvo.height <= 0 ||\n alvo.top >= viewport.height ||\n alvo.left + alvo.width <= 0 ||\n alvo.left >= viewport.width\n )\n}\n\nfunction posicionarNoLado(\n lado: Exclude<TourPlacement, 'auto'>,\n alvo: SpotlightRect,\n balao: Tamanho,\n): { top: number; left: number } {\n const centroX = alvo.left + alvo.width / 2 - balao.width / 2\n const centroY = alvo.top + alvo.height / 2 - balao.height / 2\n\n switch (lado) {\n case 'bottom':\n return { top: alvo.top + alvo.height + ESPACO_BALAO, left: centroX }\n case 'top':\n return { top: alvo.top - balao.height - ESPACO_BALAO, left: centroX }\n case 'right':\n return { top: centroY, left: alvo.left + alvo.width + ESPACO_BALAO }\n case 'left':\n return { top: centroY, left: alvo.left - balao.width - ESPACO_BALAO }\n }\n}\n\nfunction cabe(pos: { top: number; left: number }, balao: Tamanho, viewport: Viewport): boolean {\n return (\n pos.top >= MARGEM_JANELA &&\n pos.left >= MARGEM_JANELA &&\n pos.top + balao.height <= viewport.height - MARGEM_JANELA &&\n pos.left + balao.width <= viewport.width - MARGEM_JANELA\n )\n}\n\n/**\n * Escolhe onde o balão fica: tenta o lado pedido, vira pro lado oposto/livre\n * se não couber (*flip*) e, em último caso, gruda dentro da janela (*clamp*).\n *\n * O `side` devolvido é o lado REAL usado — é ele que orienta a setinha, senão\n * a seta aponta pro nada quando houve flip.\n */\nexport function posicionarBalao(\n alvo: SpotlightRect,\n balao: Tamanho,\n viewport: Viewport,\n placement: TourPlacement = 'auto',\n): BalloonPosition {\n const candidatos: Exclude<TourPlacement, 'auto'>[] =\n placement === 'auto'\n ? ORDEM_AUTO\n : [placement, ...ORDEM_AUTO.filter(lado => lado !== placement)]\n\n for (const lado of candidatos) {\n const pos = posicionarNoLado(lado, alvo, balao)\n if (cabe(pos, balao, viewport)) return { ...pos, side: lado }\n }\n\n // Nenhum lado coube inteiro — mantém o lado preferido e encaixa na força.\n const ladoFinal = candidatos[0]!\n const bruto = posicionarNoLado(ladoFinal, alvo, balao)\n\n return {\n top: limitar(bruto.top, MARGEM_JANELA, viewport.height - balao.height - MARGEM_JANELA),\n left: limitar(bruto.left, MARGEM_JANELA, viewport.width - balao.width - MARGEM_JANELA),\n side: ladoFinal,\n }\n}\n\n/** Passo sem âncora (ex.: boas-vindas): balão no meio da tela, sem recorte. */\nexport function centralizarBalao(balao: Tamanho, viewport: Viewport): BalloonPosition {\n return {\n top: limitar(\n viewport.height / 2 - balao.height / 2,\n MARGEM_JANELA,\n viewport.height - balao.height - MARGEM_JANELA,\n ),\n left: limitar(\n viewport.width / 2 - balao.width / 2,\n MARGEM_JANELA,\n viewport.width - balao.width - MARGEM_JANELA,\n ),\n side: 'bottom',\n }\n}\n"],"names":[],"mappings":"AAqBO,MAAM,eAAe;AAGrB,MAAM,gBAAgB;AAG7B,MAAM,aAA+C,CAAC,UAAU,OAAO,SAAS,MAAM;AAEtF,SAAS,QAAQ,OAAe,QAAgB,QAAwB;AAGtE,MAAI,SAAS,OAAQ,QAAO;AAC5B,SAAO,KAAK,IAAI,KAAK,IAAI,OAAO,MAAM,GAAG,MAAM;AACjD;AAOO,SAAS,gBACd,MACA,SACA,UACe;AACf,QAAM,WAAW,KAAK,IAAI,GAAG,KAAK,OAAO,OAAO;AAChD,QAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO;AAC3C,QAAM,UAAU,KAAK,IAAI,SAAS,OAAO,KAAK,OAAO,KAAK,QAAQ,OAAO;AACzE,QAAM,OAAO,KAAK,IAAI,SAAS,QAAQ,KAAK,MAAM,KAAK,SAAS,OAAO;AAEvE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO,KAAK,IAAI,GAAG,UAAU,QAAQ;AAAA,IACrC,QAAQ,KAAK,IAAI,GAAG,OAAO,IAAI;AAAA,EAAA;AAEnC;AAYA,SAAS,iBACP,MACA,MACA,OAC+B;AAC/B,QAAM,UAAU,KAAK,OAAO,KAAK,QAAQ,IAAI,MAAM,QAAQ;AAC3D,QAAM,UAAU,KAAK,MAAM,KAAK,SAAS,IAAI,MAAM,SAAS;AAE5D,UAAQ,MAAA;AAAA,IACN,KAAK;AACH,aAAO,EAAE,KAAK,KAAK,MAAM,KAAK,SAAS,cAAc,MAAM,QAAA;AAAA,IAC7D,KAAK;AACH,aAAO,EAAE,KAAK,KAAK,MAAM,MAAM,SAAS,cAAc,MAAM,QAAA;AAAA,IAC9D,KAAK;AACH,aAAO,EAAE,KAAK,SAAS,MAAM,KAAK,OAAO,KAAK,QAAQ,aAAA;AAAA,IACxD,KAAK;AACH,aAAO,EAAE,KAAK,SAAS,MAAM,KAAK,OAAO,MAAM,QAAQ,aAAA;AAAA,EAAa;AAE1E;AAEA,SAAS,KAAK,KAAoC,OAAgB,UAA6B;AAC7F,SACE,IAAI,OAAO,iBACX,IAAI,QAAQ,iBACZ,IAAI,MAAM,MAAM,UAAU,SAAS,SAAS,iBAC5C,IAAI,OAAO,MAAM,SAAS,SAAS,QAAQ;AAE/C;AASO,SAAS,gBACd,MACA,OACA,UACA,YAA2B,QACV;AACjB,QAAM,aACJ,cAAc,SACV,aACA,CAAC,WAAW,GAAG,WAAW,OAAO,CAAA,SAAQ,SAAS,SAAS,CAAC;AAElE,aAAW,QAAQ,YAAY;AAC7B,UAAM,MAAM,iBAAiB,MAAM,MAAM,KAAK;AAC9C,QAAI,KAAK,KAAK,OAAO,QAAQ,UAAU,EAAE,GAAG,KAAK,MAAM,KAAA;AAAA,EACzD;AAGA,QAAM,YAAY,WAAW,CAAC;AAC9B,QAAM,QAAQ,iBAAiB,WAAW,MAAM,KAAK;AAErD,SAAO;AAAA,IACL,KAAK,QAAQ,MAAM,KAAK,eAAe,SAAS,SAAS,MAAM,SAAS,aAAa;AAAA,IACrF,MAAM,QAAQ,MAAM,MAAM,eAAe,SAAS,QAAQ,MAAM,QAAQ,aAAa;AAAA,IACrF,MAAM;AAAA,EAAA;AAEV;AAGO,SAAS,iBAAiB,OAAgB,UAAqC;AACpF,SAAO;AAAA,IACL,KAAK;AAAA,MACH,SAAS,SAAS,IAAI,MAAM,SAAS;AAAA,MACrC;AAAA,MACA,SAAS,SAAS,MAAM,SAAS;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,MACJ,SAAS,QAAQ,IAAI,MAAM,QAAQ;AAAA,MACnC;AAAA,MACA,SAAS,QAAQ,MAAM,QAAQ;AAAA,IAAA;AAAA,IAEjC,MAAM;AAAA,EAAA;AAEV;"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function mapearDobras(linhas) {
4
+ const pares = /* @__PURE__ */ new Map();
5
+ const pilha = [];
6
+ let dentroDeTexto = false;
7
+ let escapando = false;
8
+ linhas.forEach((linha, indice) => {
9
+ const numero = indice + 1;
10
+ for (const caractere of linha) {
11
+ if (escapando) {
12
+ escapando = false;
13
+ continue;
14
+ }
15
+ if (caractere === "\\" && dentroDeTexto) {
16
+ escapando = true;
17
+ continue;
18
+ }
19
+ if (caractere === '"') {
20
+ dentroDeTexto = !dentroDeTexto;
21
+ continue;
22
+ }
23
+ if (dentroDeTexto) continue;
24
+ if (caractere === "{" || caractere === "[") {
25
+ pilha.push(numero);
26
+ } else if (caractere === "}" || caractere === "]") {
27
+ const abertura = pilha.pop();
28
+ if (abertura !== void 0 && numero > abertura) pares.set(abertura, numero);
29
+ }
30
+ }
31
+ dentroDeTexto = false;
32
+ escapando = false;
33
+ });
34
+ return pares;
35
+ }
36
+ exports.mapearDobras = mapearDobras;
37
+ //# sourceMappingURL=index183.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index183.cjs","sources":["../src/components/code/dobras-json.ts"],"sourcesContent":["/**\n * Casa `{`/`[` com o fechamento correspondente, por linha.\n *\n * Fora do `.vue` de propósito: é a única peça do bloco de código com estado de\n * verdade (profundidade, string aberta, escape) e a que quebra em silêncio — um\n * `}` dentro de um valor fecharia o bloco errado e a dobra esconderia o pedaço\n * errado do JSON.\n *\n * @param linhas conteúdo já quebrado por `\\n`\n * @returns mapa `linha que abre → linha que fecha`, só para blocos que ocupam\n * mais de uma linha (dobrar `{ }` na mesma linha não esconderia nada)\n */\nexport function mapearDobras(linhas: string[]): Map<number, number> {\n const pares = new Map<number, number>()\n const pilha: number[] = []\n let dentroDeTexto = false\n let escapando = false\n\n linhas.forEach((linha, indice) => {\n const numero = indice + 1\n\n for (const caractere of linha) {\n if (escapando) {\n escapando = false\n continue\n }\n if (caractere === '\\\\' && dentroDeTexto) {\n escapando = true\n continue\n }\n if (caractere === '\"') {\n dentroDeTexto = !dentroDeTexto\n continue\n }\n if (dentroDeTexto) continue\n\n if (caractere === '{' || caractere === '[') {\n pilha.push(numero)\n } else if (caractere === '}' || caractere === ']') {\n const abertura = pilha.pop()\n if (abertura !== undefined && numero > abertura) pares.set(abertura, numero)\n }\n }\n\n // String não fechada é JSON quebrado (resposta crua de API acontece): zera o\n // estado na quebra de linha pra um erro não contaminar o arquivo inteiro.\n dentroDeTexto = false\n escapando = false\n })\n\n return pares\n}\n"],"names":[],"mappings":";;AAYO,SAAS,aAAa,QAAuC;AAClE,QAAM,4BAAY,IAAA;AAClB,QAAM,QAAkB,CAAA;AACxB,MAAI,gBAAgB;AACpB,MAAI,YAAY;AAEhB,SAAO,QAAQ,CAAC,OAAO,WAAW;AAChC,UAAM,SAAS,SAAS;AAExB,eAAW,aAAa,OAAO;AAC7B,UAAI,WAAW;AACb,oBAAY;AACZ;AAAA,MACF;AACA,UAAI,cAAc,QAAQ,eAAe;AACvC,oBAAY;AACZ;AAAA,MACF;AACA,UAAI,cAAc,KAAK;AACrB,wBAAgB,CAAC;AACjB;AAAA,MACF;AACA,UAAI,cAAe;AAEnB,UAAI,cAAc,OAAO,cAAc,KAAK;AAC1C,cAAM,KAAK,MAAM;AAAA,MACnB,WAAW,cAAc,OAAO,cAAc,KAAK;AACjD,cAAM,WAAW,MAAM,IAAA;AACvB,YAAI,aAAa,UAAa,SAAS,SAAU,OAAM,IAAI,UAAU,MAAM;AAAA,MAC7E;AAAA,IACF;AAIA,oBAAgB;AAChB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO;AACT;;"}
@@ -0,0 +1,37 @@
1
+ function mapearDobras(linhas) {
2
+ const pares = /* @__PURE__ */ new Map();
3
+ const pilha = [];
4
+ let dentroDeTexto = false;
5
+ let escapando = false;
6
+ linhas.forEach((linha, indice) => {
7
+ const numero = indice + 1;
8
+ for (const caractere of linha) {
9
+ if (escapando) {
10
+ escapando = false;
11
+ continue;
12
+ }
13
+ if (caractere === "\\" && dentroDeTexto) {
14
+ escapando = true;
15
+ continue;
16
+ }
17
+ if (caractere === '"') {
18
+ dentroDeTexto = !dentroDeTexto;
19
+ continue;
20
+ }
21
+ if (dentroDeTexto) continue;
22
+ if (caractere === "{" || caractere === "[") {
23
+ pilha.push(numero);
24
+ } else if (caractere === "}" || caractere === "]") {
25
+ const abertura = pilha.pop();
26
+ if (abertura !== void 0 && numero > abertura) pares.set(abertura, numero);
27
+ }
28
+ }
29
+ dentroDeTexto = false;
30
+ escapando = false;
31
+ });
32
+ return pares;
33
+ }
34
+ export {
35
+ mapearDobras
36
+ };
37
+ //# sourceMappingURL=index183.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index183.mjs","sources":["../src/components/code/dobras-json.ts"],"sourcesContent":["/**\n * Casa `{`/`[` com o fechamento correspondente, por linha.\n *\n * Fora do `.vue` de propósito: é a única peça do bloco de código com estado de\n * verdade (profundidade, string aberta, escape) e a que quebra em silêncio — um\n * `}` dentro de um valor fecharia o bloco errado e a dobra esconderia o pedaço\n * errado do JSON.\n *\n * @param linhas conteúdo já quebrado por `\\n`\n * @returns mapa `linha que abre → linha que fecha`, só para blocos que ocupam\n * mais de uma linha (dobrar `{ }` na mesma linha não esconderia nada)\n */\nexport function mapearDobras(linhas: string[]): Map<number, number> {\n const pares = new Map<number, number>()\n const pilha: number[] = []\n let dentroDeTexto = false\n let escapando = false\n\n linhas.forEach((linha, indice) => {\n const numero = indice + 1\n\n for (const caractere of linha) {\n if (escapando) {\n escapando = false\n continue\n }\n if (caractere === '\\\\' && dentroDeTexto) {\n escapando = true\n continue\n }\n if (caractere === '\"') {\n dentroDeTexto = !dentroDeTexto\n continue\n }\n if (dentroDeTexto) continue\n\n if (caractere === '{' || caractere === '[') {\n pilha.push(numero)\n } else if (caractere === '}' || caractere === ']') {\n const abertura = pilha.pop()\n if (abertura !== undefined && numero > abertura) pares.set(abertura, numero)\n }\n }\n\n // String não fechada é JSON quebrado (resposta crua de API acontece): zera o\n // estado na quebra de linha pra um erro não contaminar o arquivo inteiro.\n dentroDeTexto = false\n escapando = false\n })\n\n return pares\n}\n"],"names":[],"mappings":"AAYO,SAAS,aAAa,QAAuC;AAClE,QAAM,4BAAY,IAAA;AAClB,QAAM,QAAkB,CAAA;AACxB,MAAI,gBAAgB;AACpB,MAAI,YAAY;AAEhB,SAAO,QAAQ,CAAC,OAAO,WAAW;AAChC,UAAM,SAAS,SAAS;AAExB,eAAW,aAAa,OAAO;AAC7B,UAAI,WAAW;AACb,oBAAY;AACZ;AAAA,MACF;AACA,UAAI,cAAc,QAAQ,eAAe;AACvC,oBAAY;AACZ;AAAA,MACF;AACA,UAAI,cAAc,KAAK;AACrB,wBAAgB,CAAC;AACjB;AAAA,MACF;AACA,UAAI,cAAe;AAEnB,UAAI,cAAc,OAAO,cAAc,KAAK;AAC1C,cAAM,KAAK,MAAM;AAAA,MACnB,WAAW,cAAc,OAAO,cAAc,KAAK;AACjD,cAAM,WAAW,MAAM,IAAA;AACvB,YAAI,aAAa,UAAa,SAAS,SAAU,OAAM,IAAI,UAAU,MAAM;AAAA,MAC7E;AAAA,IACF;AAIA,oBAAgB;AAChB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO;AACT;"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const vue = require("vue");
4
+ function useRepasseQuasar(props, naoRepassar = []) {
5
+ const ignorados = /* @__PURE__ */ new Set(["modelValue", "onUpdate:modelValue", ...naoRepassar]);
6
+ return vue.computed(() => {
7
+ const repasse = {};
8
+ for (const [nome, valor] of Object.entries(props)) {
9
+ if (valor === void 0 || ignorados.has(nome)) continue;
10
+ repasse[nome] = valor;
11
+ }
12
+ return repasse;
13
+ });
14
+ }
15
+ exports.useRepasseQuasar = useRepasseQuasar;
16
+ //# sourceMappingURL=index184.cjs.map