@nextelco/common-ui 2.1.98 → 2.1.99

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 (356) hide show
  1. package/dist/esm/index.js +222 -0
  2. package/dist/esm/index.js.map +1 -0
  3. package/dist/esm/legacy/assets/svgs/proef-footer-logo.svg.js +5 -0
  4. package/dist/esm/legacy/assets/svgs/proef-footer-logo.svg.js.map +1 -0
  5. package/dist/esm/legacy/components/atoms/Acronym/Acronym.css +43 -0
  6. package/dist/esm/legacy/components/atoms/Acronym/Acronym.js +31 -0
  7. package/dist/esm/legacy/components/atoms/Acronym/Acronym.js.map +1 -0
  8. package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.css +36 -0
  9. package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.js +57 -0
  10. package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.js.map +1 -0
  11. package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.css +218 -0
  12. package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.js +50 -0
  13. package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.js.map +1 -0
  14. package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.css +56 -0
  15. package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.js +34 -0
  16. package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.js.map +1 -0
  17. package/dist/esm/legacy/components/atoms/Button/variants/IconButton.css +74 -0
  18. package/dist/esm/legacy/components/atoms/Button/variants/IconButton.js +29 -0
  19. package/dist/esm/legacy/components/atoms/Button/variants/IconButton.js.map +1 -0
  20. package/dist/esm/legacy/components/atoms/Button/variants/MainButton.css +99 -0
  21. package/dist/esm/legacy/components/atoms/Button/variants/MainButton.js +36 -0
  22. package/dist/esm/legacy/components/atoms/Button/variants/MainButton.js.map +1 -0
  23. package/dist/esm/legacy/components/atoms/Button/variants/TabButton.css +63 -0
  24. package/dist/esm/legacy/components/atoms/Button/variants/TabButton.js +21 -0
  25. package/dist/esm/legacy/components/atoms/Button/variants/TabButton.js.map +1 -0
  26. package/dist/esm/legacy/components/atoms/Field/Field.css +171 -0
  27. package/dist/esm/legacy/components/atoms/Field/Field.js +70 -0
  28. package/dist/esm/legacy/components/atoms/Field/Field.js.map +1 -0
  29. package/dist/esm/legacy/components/atoms/IconText/IconText.css +10 -0
  30. package/dist/esm/legacy/components/atoms/IconText/IconText.js +25 -0
  31. package/dist/esm/legacy/components/atoms/IconText/IconText.js.map +1 -0
  32. package/dist/esm/legacy/components/atoms/Icone/Icone.js +24 -0
  33. package/dist/esm/legacy/components/atoms/Icone/Icone.js.map +1 -0
  34. package/dist/esm/legacy/components/atoms/Input/Input.css +12 -0
  35. package/dist/esm/legacy/components/atoms/Input/Input.js +28 -0
  36. package/dist/esm/legacy/components/atoms/Input/Input.js.map +1 -0
  37. package/dist/esm/legacy/components/atoms/InputData/InputData.js +36 -0
  38. package/dist/esm/legacy/components/atoms/InputData/InputData.js.map +1 -0
  39. package/dist/esm/legacy/components/atoms/Label/Label.css +192 -0
  40. package/dist/esm/legacy/components/atoms/Label/Label.js +13 -0
  41. package/dist/esm/legacy/components/atoms/Label/Label.js.map +1 -0
  42. package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.css +40 -0
  43. package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.js +21 -0
  44. package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.js.map +1 -0
  45. package/dist/esm/legacy/components/atoms/Select/Select.css +16 -0
  46. package/dist/esm/legacy/components/atoms/Select/Select.js +27 -0
  47. package/dist/esm/legacy/components/atoms/Select/Select.js.map +1 -0
  48. package/dist/esm/legacy/components/atoms/Stack/Stack.js +20 -0
  49. package/dist/esm/legacy/components/atoms/Stack/Stack.js.map +1 -0
  50. package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.css +36 -0
  51. package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.js +29 -0
  52. package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.js.map +1 -0
  53. package/dist/esm/legacy/components/atoms/Tooltip/Tooltip.css +17 -0
  54. package/dist/esm/legacy/components/atoms/Tooltip/Tooltip.js +41 -0
  55. package/dist/esm/legacy/components/atoms/Tooltip/Tooltip.js.map +1 -0
  56. package/dist/esm/legacy/components/charts/Charts.js +259 -0
  57. package/dist/esm/legacy/components/charts/Charts.js.map +1 -0
  58. package/dist/esm/legacy/components/layout/AppLauncher/AppLauncher.js +100 -0
  59. package/dist/esm/legacy/components/layout/AppLauncher/AppLauncher.js.map +1 -0
  60. package/dist/esm/legacy/components/layout/Error/Error.css +20 -0
  61. package/dist/esm/legacy/components/layout/Error/Error.js +12 -0
  62. package/dist/esm/legacy/components/layout/Error/Error.js.map +1 -0
  63. package/dist/esm/legacy/components/layout/Footer/Footer.css +42 -0
  64. package/dist/esm/legacy/components/layout/Footer/Footer.js +23 -0
  65. package/dist/esm/legacy/components/layout/Footer/Footer.js.map +1 -0
  66. package/dist/esm/legacy/components/layout/Header/Header.css +66 -0
  67. package/dist/esm/legacy/components/layout/Header/Header.js +37 -0
  68. package/dist/esm/legacy/components/layout/Header/Header.js.map +1 -0
  69. package/dist/esm/legacy/components/layout/Layout/Layout.js +92 -0
  70. package/dist/esm/legacy/components/layout/Layout/Layout.js.map +1 -0
  71. package/dist/esm/legacy/components/layout/Sidebar/Sidebar.js +227 -0
  72. package/dist/esm/legacy/components/layout/Sidebar/Sidebar.js.map +1 -0
  73. package/dist/esm/legacy/components/layout/Spinner/Spinner.css +10 -0
  74. package/dist/esm/legacy/components/layout/Spinner/Spinner.js +19 -0
  75. package/dist/esm/legacy/components/layout/Spinner/Spinner.js.map +1 -0
  76. package/dist/esm/legacy/components/layout/TopBar/TopBar.js +34 -0
  77. package/dist/esm/legacy/components/layout/TopBar/TopBar.js.map +1 -0
  78. package/dist/esm/legacy/components/layout/TopNavLayout/TopNavLayout.js +82 -0
  79. package/dist/esm/legacy/components/layout/TopNavLayout/TopNavLayout.js.map +1 -0
  80. package/dist/esm/legacy/components/molecules/BarraValor/BarraValor.js +25 -0
  81. package/dist/esm/legacy/components/molecules/BarraValor/BarraValor.js.map +1 -0
  82. package/dist/esm/legacy/components/molecules/ColumnPicker/ColumnPicker.js +179 -0
  83. package/dist/esm/legacy/components/molecules/ColumnPicker/ColumnPicker.js.map +1 -0
  84. package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.css +3 -0
  85. package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.js +33 -0
  86. package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.js.map +1 -0
  87. package/dist/esm/legacy/components/molecules/DataTable/DataTable.js +1145 -0
  88. package/dist/esm/legacy/components/molecules/DataTable/DataTable.js.map +1 -0
  89. package/dist/esm/legacy/components/molecules/FileDropzone/FileDropzone.js +68 -0
  90. package/dist/esm/legacy/components/molecules/FileDropzone/FileDropzone.js.map +1 -0
  91. package/dist/esm/legacy/components/molecules/LanguageSwitcher/LanguageSwitcher.js +96 -0
  92. package/dist/esm/legacy/components/molecules/LanguageSwitcher/LanguageSwitcher.js.map +1 -0
  93. package/dist/esm/legacy/components/molecules/Modal/Modal.css +54 -0
  94. package/dist/esm/legacy/components/molecules/Modal/Modal.js +64 -0
  95. package/dist/esm/legacy/components/molecules/Modal/Modal.js.map +1 -0
  96. package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.css +97 -0
  97. package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.js +113 -0
  98. package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.js.map +1 -0
  99. package/dist/esm/legacy/components/molecules/PhotoAvatar/PhotoAvatar.js +107 -0
  100. package/dist/esm/legacy/components/molecules/PhotoAvatar/PhotoAvatar.js.map +1 -0
  101. package/dist/esm/legacy/components/molecules/Search/Search.css +18 -0
  102. package/dist/esm/legacy/components/molecules/Search/Search.js +30 -0
  103. package/dist/esm/legacy/components/molecules/Search/Search.js.map +1 -0
  104. package/dist/esm/legacy/components/molecules/SeletorPesquisa/SeletorPesquisa.js +116 -0
  105. package/dist/esm/legacy/components/molecules/SeletorPesquisa/SeletorPesquisa.js.map +1 -0
  106. package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.css +69 -0
  107. package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.js +62 -0
  108. package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.js.map +1 -0
  109. package/dist/esm/legacy/components/molecules/UserAvatar/UserAvatar.js +105 -0
  110. package/dist/esm/legacy/components/molecules/UserAvatar/UserAvatar.js.map +1 -0
  111. package/dist/esm/legacy/components/organisms/GanttChart/GanttChart.js +162 -0
  112. package/dist/esm/legacy/components/organisms/GanttChart/GanttChart.js.map +1 -0
  113. package/dist/esm/legacy/components/organisms/Kanban/Kanban.js +88 -0
  114. package/dist/esm/legacy/components/organisms/Kanban/Kanban.js.map +1 -0
  115. package/dist/esm/legacy/components/organisms/LazyLoader/LazyLoader.js +87 -0
  116. package/dist/esm/legacy/components/organisms/LazyLoader/LazyLoader.js.map +1 -0
  117. package/dist/esm/legacy/components/organisms/MapaPontos/MapaPontos.js +427 -0
  118. package/dist/esm/legacy/components/organisms/MapaPontos/MapaPontos.js.map +1 -0
  119. package/dist/esm/legacy/components/organisms/PainelFiltros/PainelFiltros.js +206 -0
  120. package/dist/esm/legacy/components/organisms/PainelFiltros/PainelFiltros.js.map +1 -0
  121. package/dist/esm/legacy/components/organisms/PesquisaRapida/PesquisaRapida.js +147 -0
  122. package/dist/esm/legacy/components/organisms/PesquisaRapida/PesquisaRapida.js.map +1 -0
  123. package/dist/esm/legacy/components/organisms/Profile/Profile.css +26 -0
  124. package/dist/esm/legacy/components/organisms/Profile/Profile.js +26 -0
  125. package/dist/esm/legacy/components/organisms/Profile/Profile.js.map +1 -0
  126. package/dist/esm/legacy/components/organisms/RoleGuard/RoleGuard.js +68 -0
  127. package/dist/esm/legacy/components/organisms/RoleGuard/RoleGuard.js.map +1 -0
  128. package/dist/esm/legacy/components/organisms/Selector/Selector.css +87 -0
  129. package/dist/esm/legacy/components/organisms/Selector/Selector.js +181 -0
  130. package/dist/esm/legacy/components/organisms/Selector/Selector.js.map +1 -0
  131. package/dist/esm/legacy/components/organisms/StatusMatrix/StatusMatrix.js +115 -0
  132. package/dist/esm/legacy/components/organisms/StatusMatrix/StatusMatrix.js.map +1 -0
  133. package/dist/esm/legacy/components/ui/Avisos.js +86 -0
  134. package/dist/esm/legacy/components/ui/Avisos.js.map +1 -0
  135. package/dist/esm/legacy/components/ui/BarraAcoes.js +19 -0
  136. package/dist/esm/legacy/components/ui/BarraAcoes.js.map +1 -0
  137. package/dist/esm/legacy/components/ui/CabecalhoPagina.js +32 -0
  138. package/dist/esm/legacy/components/ui/CabecalhoPagina.js.map +1 -0
  139. package/dist/esm/legacy/components/ui/CaixaPesquisa.js +57 -0
  140. package/dist/esm/legacy/components/ui/CaixaPesquisa.js.map +1 -0
  141. package/dist/esm/legacy/components/ui/Confirmacao.js +52 -0
  142. package/dist/esm/legacy/components/ui/Confirmacao.js.map +1 -0
  143. package/dist/esm/legacy/components/ui/Escolha.js +157 -0
  144. package/dist/esm/legacy/components/ui/Escolha.js.map +1 -0
  145. package/dist/esm/legacy/components/ui/FaixaAviso.js +17 -0
  146. package/dist/esm/legacy/components/ui/FaixaAviso.js.map +1 -0
  147. package/dist/esm/legacy/components/ui/MenuAcoes.js +116 -0
  148. package/dist/esm/legacy/components/ui/MenuAcoes.js.map +1 -0
  149. package/dist/esm/legacy/components/ui/Passos.js +32 -0
  150. package/dist/esm/legacy/components/ui/Passos.js.map +1 -0
  151. package/dist/esm/legacy/components/ui/Separadores.js +52 -0
  152. package/dist/esm/legacy/components/ui/Separadores.js.map +1 -0
  153. package/dist/esm/legacy/components/ui/TextoAuto.js +33 -0
  154. package/dist/esm/legacy/components/ui/TextoAuto.js.map +1 -0
  155. package/dist/esm/legacy/components/ui/Ui.js +360 -0
  156. package/dist/esm/legacy/components/ui/Ui.js.map +1 -0
  157. package/dist/esm/legacy/components/ui/painelFlutuante.js +52 -0
  158. package/dist/esm/legacy/components/ui/painelFlutuante.js.map +1 -0
  159. package/dist/esm/legacy/constants/Colors.js +33 -0
  160. package/dist/esm/legacy/constants/Colors.js.map +1 -0
  161. package/dist/esm/legacy/constants/FontWeight.js +35 -0
  162. package/dist/esm/legacy/constants/FontWeight.js.map +1 -0
  163. package/dist/esm/legacy/contexts/apiContext.js +25 -0
  164. package/dist/esm/legacy/contexts/apiContext.js.map +1 -0
  165. package/dist/esm/legacy/contexts/authContext.js +85 -0
  166. package/dist/esm/legacy/contexts/authContext.js.map +1 -0
  167. package/dist/esm/legacy/contexts/socketContext.js +34 -0
  168. package/dist/esm/legacy/contexts/socketContext.js.map +1 -0
  169. package/dist/esm/legacy/hooks/useApi.js +62 -0
  170. package/dist/esm/legacy/hooks/useApi.js.map +1 -0
  171. package/dist/esm/legacy/hooks/useTheme.js +39 -0
  172. package/dist/esm/legacy/hooks/useTheme.js.map +1 -0
  173. package/dist/esm/legacy/pages/Error/ErrorPage.css +18 -0
  174. package/dist/esm/legacy/pages/Error/ErrorPage.js +50 -0
  175. package/dist/esm/legacy/pages/Error/ErrorPage.js.map +1 -0
  176. package/dist/esm/legacy/pages/Loading/Loading.css +46 -0
  177. package/dist/esm/legacy/pages/Loading/Loading.js +9 -0
  178. package/dist/esm/legacy/pages/Loading/Loading.js.map +1 -0
  179. package/dist/esm/legacy/pages/Login/LoginScreen.js +46 -0
  180. package/dist/esm/legacy/pages/Login/LoginScreen.js.map +1 -0
  181. package/dist/esm/legacy/pages/NotFound/NotFound.css +21 -0
  182. package/dist/esm/legacy/pages/NotFound/NotFound.js +24 -0
  183. package/dist/esm/legacy/pages/NotFound/NotFound.js.map +1 -0
  184. package/dist/esm/legacy/styles/themes/ButtonThemes.js +28 -0
  185. package/dist/esm/legacy/styles/themes/ButtonThemes.js.map +1 -0
  186. package/dist/esm/legacy/styles/utils/utils.js +7 -0
  187. package/dist/esm/legacy/styles/utils/utils.js.map +1 -0
  188. package/dist/esm/legacy/utils/stringUtils.js +35 -0
  189. package/dist/esm/legacy/utils/stringUtils.js.map +1 -0
  190. package/dist/esm/v1/capabilities/documents/QRScanning/scanQRCodes.js +157 -0
  191. package/dist/esm/v1/capabilities/documents/QRScanning/scanQRCodes.js.map +1 -0
  192. package/dist/esm/v1/components/documents/DocumentDropzone/DocumentDropzone.js +307 -0
  193. package/dist/esm/v1/components/documents/DocumentDropzone/DocumentDropzone.js.map +1 -0
  194. package/dist/esm/v1/components/forms/FormField/FormField.js +59 -0
  195. package/dist/esm/v1/components/forms/FormField/FormField.js.map +1 -0
  196. package/dist/esm/v1/components/forms/FormGrid/FormGrid.js +20 -0
  197. package/dist/esm/v1/components/forms/FormGrid/FormGrid.js.map +1 -0
  198. package/dist/esm/v1/components/overlays/Dialog/Dialog.js +87 -0
  199. package/dist/esm/v1/components/overlays/Dialog/Dialog.js.map +1 -0
  200. package/dist/esm/v1/foundations/icons/icons.js +76 -0
  201. package/dist/esm/v1/foundations/icons/icons.js.map +1 -0
  202. package/dist/esm/v1/primitives/buttons/Button/Button.js +27 -0
  203. package/dist/esm/v1/primitives/buttons/Button/Button.js.map +1 -0
  204. package/dist/esm/v1/primitives/documents/PdfPreview/PdfPreview.js +137 -0
  205. package/dist/esm/v1/primitives/documents/PdfPreview/PdfPreview.js.map +1 -0
  206. package/dist/esm/v1/primitives/documents/PdfPreview/pdfjs.js +26 -0
  207. package/dist/esm/v1/primitives/documents/PdfPreview/pdfjs.js.map +1 -0
  208. package/dist/esm/v1/primitives/forms/LookupInput/LookupInput.js +37 -0
  209. package/dist/esm/v1/primitives/forms/LookupInput/LookupInput.js.map +1 -0
  210. package/dist/esm/v1/primitives/forms/SelectInput/SelectInput.js +29 -0
  211. package/dist/esm/v1/primitives/forms/SelectInput/SelectInput.js.map +1 -0
  212. package/dist/esm/v1/primitives/forms/TextArea/TextArea.js +75 -0
  213. package/dist/esm/v1/primitives/forms/TextArea/TextArea.js.map +1 -0
  214. package/dist/esm/v1/primitives/forms/TextInput/TextInput.js +21 -0
  215. package/dist/esm/v1/primitives/forms/TextInput/TextInput.js.map +1 -0
  216. package/dist/esm/v1/primitives/forms/field.js +12 -0
  217. package/dist/esm/v1/primitives/forms/field.js.map +1 -0
  218. package/dist/style.css +1 -1
  219. package/dist/style.layered.css +1 -1
  220. package/dist/types/index.d.ts +14 -13
  221. package/dist/types/{components → legacy/components}/atoms/Acronym/Acronym.d.ts +1 -0
  222. package/dist/types/{components → legacy/components}/atoms/BreadCrumb/BreadCrumb.d.ts +1 -0
  223. package/dist/types/{components → legacy/components}/atoms/Button/variants/ActionButton.d.ts +1 -0
  224. package/dist/types/{components → legacy/components}/atoms/Button/variants/FilterButton.d.ts +1 -0
  225. package/dist/types/{components → legacy/components}/atoms/Button/variants/IconButton.d.ts +1 -0
  226. package/dist/types/{components → legacy/components}/atoms/Button/variants/MainButton.d.ts +1 -0
  227. package/dist/types/{components → legacy/components}/atoms/Button/variants/TabButton.d.ts +1 -0
  228. package/dist/types/{components → legacy/components}/atoms/Field/Field.d.ts +1 -0
  229. package/dist/types/{components → legacy/components}/atoms/IconText/IconText.d.ts +1 -0
  230. package/dist/types/{components → legacy/components}/atoms/Icone/Icone.d.ts +2 -0
  231. package/dist/types/{components → legacy/components}/atoms/Input/Input.d.ts +1 -0
  232. package/dist/types/{components → legacy/components}/atoms/InputData/InputData.d.ts +4 -0
  233. package/dist/types/{components → legacy/components}/atoms/Label/Label.d.ts +1 -0
  234. package/dist/types/{components → legacy/components}/atoms/Select/Select.d.ts +1 -0
  235. package/dist/types/{components → legacy/components}/atoms/Stack/Stack.d.ts +1 -0
  236. package/dist/types/{components → legacy/components}/atoms/Switch/CustomSwitch.d.ts +1 -0
  237. package/dist/types/{components → legacy/components}/atoms/Tooltip/Tooltip.d.ts +1 -0
  238. package/dist/types/{components → legacy/components}/charts/Charts.d.ts +29 -6
  239. package/dist/types/{components → legacy/components}/layout/AppLauncher/AppLauncher.d.ts +3 -0
  240. package/dist/types/{components → legacy/components}/layout/Error/Error.d.ts +1 -0
  241. package/dist/types/{components → legacy/components}/layout/Footer/Footer.d.ts +1 -0
  242. package/dist/types/{components → legacy/components}/layout/Header/Header.d.ts +1 -0
  243. package/dist/types/{components → legacy/components}/layout/Layout/Layout.d.ts +2 -0
  244. package/dist/types/{components → legacy/components}/layout/Sidebar/Sidebar.d.ts +5 -0
  245. package/dist/types/{components → legacy/components}/layout/Spinner/Spinner.d.ts +1 -0
  246. package/dist/types/{components → legacy/components}/layout/TopBar/TopBar.d.ts +2 -0
  247. package/dist/types/{components → legacy/components}/layout/TopNavLayout/TopNavLayout.d.ts +3 -0
  248. package/dist/types/{components → legacy/components}/molecules/BarraValor/BarraValor.d.ts +3 -0
  249. package/dist/types/{components → legacy/components}/molecules/ColumnPicker/ColumnPicker.d.ts +8 -1
  250. package/dist/types/{components → legacy/components}/molecules/ConfirmModal/ConfirmModal.d.ts +2 -0
  251. package/dist/types/{components → legacy/components}/molecules/DataTable/DataTable.d.ts +6 -0
  252. package/dist/types/{components → legacy/components}/molecules/FileDropzone/FileDropzone.d.ts +3 -0
  253. package/dist/types/{components → legacy/components}/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +3 -0
  254. package/dist/types/{components → legacy/components}/molecules/Modal/Modal.d.ts +2 -0
  255. package/dist/types/{components → legacy/components}/molecules/MultiTagPicker/MultiTagPicker.d.ts +2 -0
  256. package/dist/types/{components → legacy/components}/molecules/PhotoAvatar/PhotoAvatar.d.ts +1 -0
  257. package/dist/types/{components → legacy/components}/molecules/SeletorPesquisa/SeletorPesquisa.d.ts +3 -0
  258. package/dist/types/{components → legacy/components}/molecules/Sidebar/Sidebar.d.ts +1 -0
  259. package/dist/types/{components → legacy/components}/molecules/UserAvatar/UserAvatar.d.ts +1 -0
  260. package/dist/types/{components → legacy/components}/organisms/GanttChart/GanttChart.d.ts +8 -1
  261. package/dist/types/{components → legacy/components}/organisms/Kanban/Kanban.d.ts +3 -0
  262. package/dist/types/{components → legacy/components}/organisms/LazyLoader/LazyLoader.d.ts +1 -0
  263. package/dist/types/{components → legacy/components}/organisms/MapaPontos/MapaPontos.d.ts +12 -2
  264. package/dist/types/{components → legacy/components}/organisms/PainelFiltros/PainelFiltros.d.ts +7 -0
  265. package/dist/types/{components → legacy/components}/organisms/PesquisaRapida/PesquisaRapida.d.ts +5 -0
  266. package/dist/types/{components → legacy/components}/organisms/Profile/Profile.d.ts +1 -0
  267. package/dist/types/{components → legacy/components}/organisms/RoleGuard/RoleGuard.d.ts +6 -1
  268. package/dist/types/{components → legacy/components}/organisms/Selector/Selector.d.ts +1 -0
  269. package/dist/types/{components → legacy/components}/organisms/StatusMatrix/StatusMatrix.d.ts +6 -0
  270. package/dist/types/{components → legacy/components}/ui/Avisos.d.ts +9 -1
  271. package/dist/types/{components → legacy/components}/ui/BarraAcoes.d.ts +2 -0
  272. package/dist/types/{components → legacy/components}/ui/CabecalhoPagina.d.ts +6 -1
  273. package/dist/types/{components → legacy/components}/ui/Confirmacao.d.ts +2 -0
  274. package/dist/types/{components → legacy/components}/ui/FaixaAviso.d.ts +3 -0
  275. package/dist/types/{components → legacy/components}/ui/Passos.d.ts +3 -0
  276. package/dist/types/{components → legacy/components}/ui/Separadores.d.ts +3 -0
  277. package/dist/types/{components → legacy/components}/ui/TextoAuto.d.ts +2 -0
  278. package/dist/types/{components → legacy/components}/ui/Ui.d.ts +41 -7
  279. package/dist/types/{constants → legacy/constants}/FontWeight.d.ts +1 -0
  280. package/dist/types/{contexts → legacy/contexts}/apiContext.d.ts +1 -0
  281. package/dist/types/{contexts → legacy/contexts}/authContext.d.ts +2 -0
  282. package/dist/types/{contexts → legacy/contexts}/socketContext.d.ts +2 -0
  283. package/dist/types/{exports → legacy/exports}/hooks.d.ts +1 -1
  284. package/dist/types/{exports → legacy/exports}/molecules.d.ts +2 -1
  285. package/dist/types/legacy/exports/types.d.ts +7 -0
  286. package/dist/types/{hooks → legacy/hooks}/useApi.d.ts +2 -0
  287. package/dist/types/{hooks → legacy/hooks}/useTheme.d.ts +2 -0
  288. package/dist/types/{pages → legacy/pages}/Error/ErrorPage.d.ts +1 -0
  289. package/dist/types/{pages → legacy/pages}/Loading/Loading.d.ts +1 -0
  290. package/dist/types/{pages → legacy/pages}/Login/LoginScreen.d.ts +2 -0
  291. package/dist/types/{pages → legacy/pages}/NotFound/NotFound.d.ts +1 -0
  292. package/dist/types/legacy/styles/utils/utils.d.ts +2 -0
  293. package/dist/types/{types → legacy/types}/Fetcher.d.ts +1 -0
  294. package/dist/types/{types → legacy/types}/LoggedUser.d.ts +1 -0
  295. package/dist/types/{types → legacy/types}/SidebarMenu.d.ts +2 -0
  296. package/dist/types/legacy/types/themes/AcronymThemes.d.ts +4 -0
  297. package/dist/types/{types → legacy/types}/themes/ButtonThemes.d.ts +3 -0
  298. package/dist/types/legacy/types/themes/CustomSwitchThemes.d.ts +4 -0
  299. package/dist/types/{types → legacy/types}/themes/IconTextThemes.d.ts +1 -0
  300. package/dist/types/legacy/utils/stringUtils.d.ts +6 -0
  301. package/dist/types/v1/capabilities/documents/QRScanning/scanQRCodes.d.ts +25 -0
  302. package/dist/types/v1/components/documents/DocumentDropzone/DocumentDropzone.d.ts +60 -0
  303. package/dist/types/v1/components/forms/FormField/FormField.d.ts +44 -0
  304. package/dist/types/v1/components/forms/FormGrid/FormGrid.d.ts +21 -0
  305. package/dist/types/v1/components/overlays/Dialog/Dialog.d.ts +55 -0
  306. package/dist/types/v1/foundations/icons/icons.d.ts +24 -0
  307. package/dist/types/v1/index.d.ts +25 -0
  308. package/dist/types/v1/primitives/buttons/Button/Button.d.ts +18 -0
  309. package/dist/types/v1/primitives/documents/PdfPreview/PdfPreview.d.ts +17 -0
  310. package/dist/types/v1/primitives/documents/PdfPreview/pdfjs.d.ts +11 -0
  311. package/dist/types/v1/primitives/forms/LookupInput/LookupInput.d.ts +25 -0
  312. package/dist/types/v1/primitives/forms/SelectInput/SelectInput.d.ts +19 -0
  313. package/dist/types/v1/primitives/forms/TextArea/TextArea.d.ts +37 -0
  314. package/dist/types/v1/primitives/forms/TextInput/TextInput.d.ts +16 -0
  315. package/dist/types/v1/primitives/forms/field.d.ts +20 -0
  316. package/package.json +38 -33
  317. package/dist/bundle.js +0 -2
  318. package/dist/bundle.js.LICENSE.txt +0 -80
  319. package/dist/types/components/atoms/Icone/Icone.test.d.ts +0 -1
  320. package/dist/types/components/layout/Sidebar/Sidebar.test.d.ts +0 -1
  321. package/dist/types/components/molecules/BarraValor/BarraValor.test.d.ts +0 -1
  322. package/dist/types/components/molecules/DataTable/DataTable.test.d.ts +0 -1
  323. package/dist/types/components/molecules/SeletorPesquisa/SeletorPesquisa.test.d.ts +0 -1
  324. package/dist/types/components/organisms/Kanban/Kanban.test.d.ts +0 -1
  325. package/dist/types/components/organisms/RoleGuard/RoleGuard.test.d.ts +0 -1
  326. package/dist/types/components/ui/CaixaPesquisa.test.d.ts +0 -1
  327. package/dist/types/components/ui/Escolha.test.d.ts +0 -1
  328. package/dist/types/components/ui/Paginas.test.d.ts +0 -1
  329. package/dist/types/exports/types.d.ts +0 -7
  330. package/dist/types/styles/utils/utils.d.ts +0 -1
  331. package/dist/types/test/setup.d.ts +0 -1
  332. package/dist/types/types/themes/AcronymThemes.d.ts +0 -3
  333. package/dist/types/types/themes/CustomSwitchThemes.d.ts +0 -3
  334. package/dist/types/utils/stringUtils.d.ts +0 -3
  335. /package/dist/types/{components → legacy/components}/atoms/MultiTagPickerTag/MultiTagPickerTag.d.ts +0 -0
  336. /package/dist/types/{components → legacy/components}/atoms/SearchSelect/SearchSelect.d.ts +0 -0
  337. /package/dist/types/{components → legacy/components}/molecules/Search/Search.d.ts +0 -0
  338. /package/dist/types/{components → legacy/components}/ui/CaixaPesquisa.d.ts +0 -0
  339. /package/dist/types/{components → legacy/components}/ui/Escolha.d.ts +0 -0
  340. /package/dist/types/{components → legacy/components}/ui/MenuAcoes.d.ts +0 -0
  341. /package/dist/types/{components → legacy/components}/ui/painelFlutuante.d.ts +0 -0
  342. /package/dist/types/{constants → legacy/constants}/Colors.d.ts +0 -0
  343. /package/dist/types/{exports → legacy/exports}/assets.d.ts +0 -0
  344. /package/dist/types/{exports → legacy/exports}/atoms.d.ts +0 -0
  345. /package/dist/types/{exports → legacy/exports}/charts.d.ts +0 -0
  346. /package/dist/types/{exports → legacy/exports}/constants.d.ts +0 -0
  347. /package/dist/types/{exports → legacy/exports}/contexts.d.ts +0 -0
  348. /package/dist/types/{exports → legacy/exports}/layout.d.ts +0 -0
  349. /package/dist/types/{exports → legacy/exports}/organisms.d.ts +0 -0
  350. /package/dist/types/{exports → legacy/exports}/pages.d.ts +0 -0
  351. /package/dist/types/{exports → legacy/exports}/styles.d.ts +0 -0
  352. /package/dist/types/{exports → legacy/exports}/ui.d.ts +0 -0
  353. /package/dist/types/{exports → legacy/exports}/utils.d.ts +0 -0
  354. /package/dist/types/{styles → legacy/styles}/themes/ButtonThemes.d.ts +0 -0
  355. /package/dist/types/{types → legacy/types}/SelectableElement.d.ts +0 -0
  356. /package/dist/types/{utils → legacy/utils}/keycloak.d.ts +0 -0
@@ -0,0 +1,82 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { NavLink } from "react-router-dom";
3
+ const LogOut = ({ size = 16, className }) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: [
4
+ /* @__PURE__ */ jsx("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }),
5
+ /* @__PURE__ */ jsx("polyline", { points: "16 17 21 12 16 7" }),
6
+ /* @__PURE__ */ jsx("line", { x1: "21", x2: "9", y1: "12", y2: "12" })
7
+ ] });
8
+ const Sun = ({ size = 16, className }) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: [
9
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "4" }),
10
+ /* @__PURE__ */ jsx("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41" })
11
+ ] });
12
+ const Moon = ({ size = 16, className }) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: /* @__PURE__ */ jsx("path", { d: "M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z" }) });
13
+ const Monitor = ({ size = 16, className }) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: [
14
+ /* @__PURE__ */ jsx("rect", { width: "20", height: "14", x: "2", y: "3", rx: "2" }),
15
+ /* @__PURE__ */ jsx("path", { d: "M8 21h8M12 17v4" })
16
+ ] });
17
+ const TopNavLayout = ({
18
+ children,
19
+ menus,
20
+ appTitle,
21
+ appSubtitle,
22
+ logo,
23
+ avatar,
24
+ userName,
25
+ onLogout,
26
+ logoutLabel = "Logout",
27
+ languages,
28
+ currentLang,
29
+ onLanguageChange,
30
+ theme,
31
+ onThemeChange,
32
+ themeLabels,
33
+ maxWidth = 1400
34
+ }) => {
35
+ const ThemeIcon = theme === "light" ? Sun : theme === "dark" ? Moon : Monitor;
36
+ const cycleTheme = () => {
37
+ if (!onThemeChange) return;
38
+ const order = ["light", "dark", "system"];
39
+ onThemeChange(order[(order.indexOf(theme ?? "system") + 1) % order.length]);
40
+ };
41
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen dark:bg-slate-950", children: [
42
+ /* @__PURE__ */ jsx("nav", { className: "bg-white border-b border-slate-200 dark:bg-slate-900 dark:border-slate-700 sticky top-0 z-50 shadow-sm", children: /* @__PURE__ */ jsx("div", { style: { maxWidth }, className: "mx-auto px-5", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-5 h-12", children: [
43
+ /* @__PURE__ */ jsx("div", { className: "shrink-0", children: logo ?? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
44
+ /* @__PURE__ */ jsx("div", { className: "w-1 h-7 bg-proef-turquoise" }),
45
+ /* @__PURE__ */ jsxs("div", { children: [
46
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-black tracking-tighter text-proef-navy uppercase leading-none", children: appTitle }),
47
+ appSubtitle && /* @__PURE__ */ jsx("div", { className: "text-[9px] font-bold uppercase tracking-[0.15em] text-slate-400 mt-0.5", children: appSubtitle })
48
+ ] })
49
+ ] }) }),
50
+ /* @__PURE__ */ jsx("div", { className: "flex gap-0.5 flex-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden", children: menus.map((item) => /* @__PURE__ */ jsx(
51
+ NavLink,
52
+ {
53
+ to: item.to,
54
+ end: item.end,
55
+ className: ({ isActive }) => `px-3 py-1.5 text-[12px] font-bold whitespace-nowrap transition-colors border-b-2 ${isActive ? "text-proef-blue border-proef-blue" : "text-slate-500 hover:text-proef-navy border-transparent"}`,
56
+ children: item.label
57
+ },
58
+ item.to
59
+ )) }),
60
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 shrink-0", children: [
61
+ languages && languages.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-1", children: languages.map((l) => /* @__PURE__ */ jsx(
62
+ "button",
63
+ {
64
+ onClick: () => onLanguageChange?.(l.code),
65
+ className: `appearance-none bg-transparent border-0 cursor-pointer px-1 text-[10px] font-black uppercase tracking-widest transition-colors ${currentLang === l.code ? "text-proef-blue" : "text-slate-400 hover:text-proef-navy"}`,
66
+ children: l.label
67
+ },
68
+ l.code
69
+ )) }),
70
+ onThemeChange && /* @__PURE__ */ jsx("button", { onClick: cycleTheme, title: themeLabels?.label ?? "Theme", className: "appearance-none bg-transparent border-0 cursor-pointer p-1.5 text-slate-400 hover:text-proef-navy transition-colors", children: /* @__PURE__ */ jsx(ThemeIcon, { size: 16 }) }),
71
+ avatar,
72
+ userName && /* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold text-slate-500 hidden sm:block", children: userName }),
73
+ onLogout && /* @__PURE__ */ jsx("button", { onClick: onLogout, title: logoutLabel, className: "appearance-none bg-transparent border-0 cursor-pointer p-1.5 text-slate-400 hover:text-incumprido transition-colors", children: /* @__PURE__ */ jsx(LogOut, { size: 16 }) })
74
+ ] })
75
+ ] }) }) }),
76
+ /* @__PURE__ */ jsx("main", { style: { maxWidth }, className: "mx-auto px-3 sm:px-5 py-4", children })
77
+ ] });
78
+ };
79
+ export {
80
+ TopNavLayout as default
81
+ };
82
+ //# sourceMappingURL=TopNavLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopNavLayout.js","sources":["../../../../../../src/legacy/components/layout/TopNavLayout/TopNavLayout.tsx"],"sourcesContent":["import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport type { SidebarLanguage, SidebarTheme } from '../Sidebar/Sidebar'\r\n\r\n// ── Inline icons (no lucide dependency) ───────────────────────────────────\r\ntype IconProps = { size?: number; className?: string }\r\nconst LogOut = ({ size = 16, className }: IconProps) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className={className}>\r\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" /><polyline points=\"16 17 21 12 16 7\" /><line x1=\"21\" x2=\"9\" y1=\"12\" y2=\"12\" />\r\n </svg>\r\n)\r\nconst Sun = ({ size = 16, className }: IconProps) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className={className}><circle cx=\"12\" cy=\"12\" r=\"4\" /><path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\" /></svg>\r\n)\r\nconst Moon = ({ size = 16, className }: IconProps) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className={className}><path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z\" /></svg>\r\n)\r\nconst Monitor = ({ size = 16, className }: IconProps) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className={className}><rect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\" /><path d=\"M8 21h8M12 17v4\" /></svg>\r\n)\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface TopNavItem {\r\n to: string\r\n label: string\r\n end?: boolean\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface TopNavLayoutProps {\r\n children: React.ReactNode\r\n menus: TopNavItem[]\r\n appTitle: string\r\n appSubtitle?: string\r\n /** Logo custom à esquerda. Sem isto: barra turquesa + appTitle/appSubtitle. */\r\n logo?: React.ReactNode\r\n avatar?: React.ReactNode\r\n userName?: string\r\n onLogout?: () => void\r\n logoutLabel?: string\r\n languages?: SidebarLanguage[]\r\n currentLang?: string\r\n onLanguageChange?: (code: string) => void\r\n theme?: SidebarTheme\r\n onThemeChange?: (theme: SidebarTheme) => void\r\n themeLabels?: { label?: string; light?: string; dark?: string; system?: string }\r\n /** Largura máxima do conteúdo/nav (px). Default 1400. */\r\n maxWidth?: number\r\n}\r\n\r\n/**\r\n * Layout com navegação HORIZONTAL no topo (design system proef) — para portais\r\n * com muitas secções de topo. Alternativa ao `Layout` (sidebar). Parametrizado:\r\n * `menus` (tabs), marca, avatar/logout e selectores de idioma/tema à direita.\r\n * Requer o CSS do common-ui + react-router.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\nconst TopNavLayout = ({\r\n children,\r\n menus,\r\n appTitle,\r\n appSubtitle,\r\n logo,\r\n avatar,\r\n userName,\r\n onLogout,\r\n logoutLabel = 'Logout',\r\n languages,\r\n currentLang,\r\n onLanguageChange,\r\n theme,\r\n onThemeChange,\r\n themeLabels,\r\n maxWidth = 1400,\r\n}: TopNavLayoutProps) => {\r\n const ThemeIcon = theme === 'light' ? Sun : theme === 'dark' ? Moon : Monitor\r\n const cycleTheme = () => {\r\n if (!onThemeChange) return\r\n const order: SidebarTheme[] = ['light', 'dark', 'system']\r\n onThemeChange(order[(order.indexOf((theme ?? 'system') as SidebarTheme) + 1) % order.length])\r\n }\r\n\r\n return (\r\n <div className=\"min-h-screen dark:bg-slate-950\">\r\n <nav className=\"bg-white border-b border-slate-200 dark:bg-slate-900 dark:border-slate-700 sticky top-0 z-50 shadow-sm\">\r\n <div style={{ maxWidth }} className=\"mx-auto px-5\">\r\n <div className=\"flex items-center gap-5 h-12\">\r\n {/* Marca */}\r\n <div className=\"shrink-0\">\r\n {logo ?? (\r\n <div className=\"flex items-center gap-2.5\">\r\n <div className=\"w-1 h-7 bg-proef-turquoise\" />\r\n <div>\r\n <div className=\"text-sm font-black tracking-tighter text-proef-navy uppercase leading-none\">{appTitle}</div>\r\n {appSubtitle && (\r\n <div className=\"text-[9px] font-bold uppercase tracking-[0.15em] text-slate-400 mt-0.5\">{appSubtitle}</div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Tabs */}\r\n <div className=\"flex gap-0.5 flex-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\r\n {menus.map((item) => (\r\n <NavLink\r\n key={item.to}\r\n to={item.to}\r\n end={item.end}\r\n className={({ isActive }) =>\r\n `px-3 py-1.5 text-[12px] font-bold whitespace-nowrap transition-colors border-b-2 ${isActive ? 'text-proef-blue border-proef-blue' : 'text-slate-500 hover:text-proef-navy border-transparent'}`\r\n }\r\n >\r\n {item.label}\r\n </NavLink>\r\n ))}\r\n </div>\r\n\r\n {/* Direita: idioma, tema, avatar/nome, logout */}\r\n <div className=\"flex items-center gap-2 shrink-0\">\r\n {languages && languages.length > 0 && (\r\n <div className=\"flex gap-1\">\r\n {languages.map((l) => (\r\n <button\r\n key={l.code}\r\n onClick={() => onLanguageChange?.(l.code)}\r\n className={`appearance-none bg-transparent border-0 cursor-pointer px-1 text-[10px] font-black uppercase tracking-widest transition-colors ${currentLang === l.code ? 'text-proef-blue' : 'text-slate-400 hover:text-proef-navy'}`}\r\n >\r\n {l.label}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n {onThemeChange && (\r\n <button onClick={cycleTheme} title={themeLabels?.label ?? 'Theme'} className=\"appearance-none bg-transparent border-0 cursor-pointer p-1.5 text-slate-400 hover:text-proef-navy transition-colors\">\r\n <ThemeIcon size={16} />\r\n </button>\r\n )}\r\n {avatar}\r\n {userName && <span className=\"text-[11px] font-semibold text-slate-500 hidden sm:block\">{userName}</span>}\r\n {onLogout && (\r\n <button onClick={onLogout} title={logoutLabel} className=\"appearance-none bg-transparent border-0 cursor-pointer p-1.5 text-slate-400 hover:text-incumprido transition-colors\">\r\n <LogOut size={16} />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <main style={{ maxWidth }} className=\"mx-auto px-3 sm:px-5 py-4\">\r\n {children}\r\n </main>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TopNavLayout\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
+ function BarraValor({
3
+ linhas,
4
+ maximo,
5
+ cor = "bg-proef-turquoise",
6
+ vazio
7
+ }) {
8
+ if (linhas.length === 0) return /* @__PURE__ */ jsx(Fragment, { children: vazio ?? null });
9
+ const escala = Math.max(1, maximo ?? Math.max(...linhas.map((l) => l.valor)));
10
+ return /* @__PURE__ */ jsx("ul", { className: "cui-barra-valor space-y-2", children: linhas.map((linha) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-3", children: [
11
+ /* @__PURE__ */ jsx("span", { className: "w-1/3 truncate text-sm text-slate-600", title: linha.rotulo, children: linha.rotulo }),
12
+ /* @__PURE__ */ jsx("span", { className: "h-3 flex-1 bg-slate-100 rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
13
+ "span",
14
+ {
15
+ className: `block h-3 ${cor}`,
16
+ style: { width: `${Math.min(100, linha.valor / escala * 100)}%` }
17
+ }
18
+ ) }),
19
+ /* @__PURE__ */ jsx("span", { className: "w-20 shrink-0 text-right font-mono text-sm font-bold text-proef-navy", children: linha.texto ?? linha.valor })
20
+ ] }, linha.chave)) });
21
+ }
22
+ export {
23
+ BarraValor as default
24
+ };
25
+ //# sourceMappingURL=BarraValor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarraValor.js","sources":["../../../../../../src/legacy/components/molecules/BarraValor/BarraValor.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react'\r\n\r\n/**\r\n * Lista de barras horizontais — a forma mais legível de comparar poucas\r\n * dezenas de valores (horas por pessoa, por plano, por etiqueta).\r\n *\r\n * Não é um gráfico: não traz eixos, escalas nem biblioteca de charts. A barra é\r\n * proporcional ao maior valor da lista, que é o que se quer para comparar\r\n * grandezas entre linhas.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\n\r\nexport interface LinhaBarra {\r\n chave: string\r\n rotulo: string\r\n valor: number\r\n /** O que aparece à direita (ex: \"3h20\"). Sem isto mostra o número cru. */\r\n texto?: string\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface BarraValorProps {\r\n linhas: LinhaBarra[]\r\n /** Máximo da escala. Sem isto usa o maior valor da lista. */\r\n maximo?: number\r\n /** Classe de cor da barra. */\r\n cor?: string\r\n vazio?: ReactNode\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport default function BarraValor({\r\n linhas,\r\n maximo,\r\n cor = 'bg-proef-turquoise',\r\n vazio,\r\n}: BarraValorProps) {\r\n if (linhas.length === 0) return <>{vazio ?? null}</>\r\n\r\n // Nunca dividir por zero: uma lista só com zeros desenha barras vazias, não\r\n // um NaN que o browser mostra como largura total.\r\n const escala = Math.max(1, maximo ?? Math.max(...linhas.map((l) => l.valor)))\r\n\r\n return (\r\n <ul className=\"cui-barra-valor space-y-2\">\r\n {linhas.map((linha) => (\r\n <li key={linha.chave} className=\"flex items-center gap-3\">\r\n <span className=\"w-1/3 truncate text-sm text-slate-600\" title={linha.rotulo}>\r\n {linha.rotulo}\r\n </span>\r\n <span className=\"h-3 flex-1 bg-slate-100 rounded-full overflow-hidden\">\r\n <span\r\n className={`block h-3 ${cor}`}\r\n style={{ width: `${Math.min(100, (linha.valor / escala) * 100)}%` }}\r\n />\r\n </span>\r\n <span className=\"w-20 shrink-0 text-right font-mono text-sm font-bold text-proef-navy\">\r\n {linha.texto ?? linha.valor}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n )\r\n}\r\n"],"names":[],"mappings":";AA+BA,SAAwB,WAAW;AAAA,EACjC;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN;AACF,GAAoB;AAClB,MAAI,OAAO,WAAW,EAAG,QAAO,oBAAA,UAAA,EAAG,mBAAS,MAAK;AAIjD,QAAM,SAAS,KAAK,IAAI,GAAG,UAAU,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE5E,SACE,oBAAC,MAAA,EAAG,WAAU,6BACX,UAAA,OAAO,IAAI,CAAC,UACX,qBAAC,MAAA,EAAqB,WAAU,2BAC9B,UAAA;AAAA,IAAA,oBAAC,UAAK,WAAU,yCAAwC,OAAO,MAAM,QAClE,gBAAM,OAAA,CACT;AAAA,IACA,oBAAC,QAAA,EAAK,WAAU,wDACd,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,aAAa,GAAG;AAAA,QAC3B,OAAO,EAAE,OAAO,GAAG,KAAK,IAAI,KAAM,MAAM,QAAQ,SAAU,GAAG,CAAC,IAAA;AAAA,MAAI;AAAA,IAAA,GAEtE;AAAA,wBACC,QAAA,EAAK,WAAU,wEACb,UAAA,MAAM,SAAS,MAAM,MAAA,CACxB;AAAA,EAAA,EAAA,GAZO,MAAM,KAaf,CACD,GACH;AAEJ;"}
@@ -0,0 +1,179 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useState, useRef, useEffect } from "react";
3
+ const DEFAULT_LABELS = {
4
+ title: "Columns",
5
+ all: "All",
6
+ none: "None",
7
+ resetOrder: "Reset order",
8
+ moveUp: "Move up",
9
+ moveDown: "Move down"
10
+ };
11
+ const iconeBase = {
12
+ viewBox: "0 0 24 24",
13
+ fill: "none",
14
+ stroke: "currentColor",
15
+ strokeWidth: 2,
16
+ strokeLinecap: "round",
17
+ strokeLinejoin: "round"
18
+ };
19
+ const Columns3 = ({ className }) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", ...iconeBase, className, "aria-hidden": true, children: [
20
+ /* @__PURE__ */ jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
21
+ /* @__PURE__ */ jsx("path", { d: "M9 3v18M15 3v18" })
22
+ ] });
23
+ const ChevronUp = ({ className }) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...iconeBase, className, "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "m18 15-6-6-6 6" }) });
24
+ const ChevronDown = ({ className }) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...iconeBase, className, "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) });
25
+ const RotateCcw = ({ className }) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", ...iconeBase, className, "aria-hidden": true, children: [
26
+ /* @__PURE__ */ jsx("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
27
+ /* @__PURE__ */ jsx("path", { d: "M3 3v5h5" })
28
+ ] });
29
+ function ColumnPicker({
30
+ columns,
31
+ hidden,
32
+ onHiddenChange,
33
+ order,
34
+ onOrderChange,
35
+ keepFirst = 1,
36
+ labels
37
+ }) {
38
+ const L = { ...DEFAULT_LABELS, ...labels };
39
+ const [aberto, setAberto] = useState(false);
40
+ const caixa = useRef(null);
41
+ useEffect(() => {
42
+ if (!aberto) return;
43
+ const fora = (e) => {
44
+ if (caixa.current && !caixa.current.contains(e.target)) setAberto(false);
45
+ };
46
+ const escape = (e) => {
47
+ if (e.key === "Escape") setAberto(false);
48
+ };
49
+ document.addEventListener("mousedown", fora);
50
+ document.addEventListener("keydown", escape);
51
+ return () => {
52
+ document.removeEventListener("mousedown", fora);
53
+ document.removeEventListener("keydown", escape);
54
+ };
55
+ }, [aberto]);
56
+ const alternar = (key) => {
57
+ const nova = new Set(hidden);
58
+ if (nova.has(key)) nova.delete(key);
59
+ else nova.add(key);
60
+ onHiddenChange(nova);
61
+ };
62
+ const mover = (indice, passo) => {
63
+ const destino = indice + passo;
64
+ if (destino < 0 || destino >= columns.length) return;
65
+ const chaves = columns.map((c) => c.key);
66
+ [chaves[indice], chaves[destino]] = [chaves[destino], chaves[indice]];
67
+ onOrderChange(chaves);
68
+ };
69
+ const visiveis = columns.length - hidden.size;
70
+ return /* @__PURE__ */ jsxs("div", { className: "relative", ref: caixa, children: [
71
+ /* @__PURE__ */ jsxs(
72
+ "button",
73
+ {
74
+ type: "button",
75
+ onClick: () => setAberto((v) => !v),
76
+ "aria-expanded": aberto,
77
+ className: "appearance-none cursor-pointer bg-white inline-flex items-center gap-2 h-8 rounded-lg border border-slate-300 px-3 text-xs font-medium text-slate-700 transition hover:bg-slate-50 dark:bg-slate-800 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-700",
78
+ children: [
79
+ /* @__PURE__ */ jsx(Columns3, { className: "h-4 w-4" }),
80
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: L.title }),
81
+ /* @__PURE__ */ jsxs("span", { className: "tabular-nums text-xs text-slate-400", children: [
82
+ visiveis,
83
+ "/",
84
+ columns.length
85
+ ] })
86
+ ]
87
+ }
88
+ ),
89
+ aberto && /* @__PURE__ */ jsxs("div", { className: "absolute right-0 z-30 mt-1 w-72 overflow-hidden rounded-lg border border-slate-200 bg-white shadow-lg dark:bg-slate-900 dark:border-slate-700", children: [
90
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 border-b border-slate-100 dark:border-slate-800 px-2 py-1.5", children: [
91
+ /* @__PURE__ */ jsx(
92
+ "button",
93
+ {
94
+ type: "button",
95
+ onClick: () => onHiddenChange(/* @__PURE__ */ new Set()),
96
+ className: "appearance-none cursor-pointer bg-transparent border-0 px-2 py-1 text-xs font-medium text-proef-blue dark:text-sky-300 hover:bg-slate-50 dark:hover:bg-slate-800",
97
+ children: L.all
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsx(
101
+ "button",
102
+ {
103
+ type: "button",
104
+ onClick: () => onHiddenChange(new Set(columns.slice(keepFirst).map((c) => c.key))),
105
+ className: "appearance-none cursor-pointer bg-transparent border-0 px-2 py-1 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800",
106
+ children: L.none
107
+ }
108
+ ),
109
+ order.length > 0 && /* @__PURE__ */ jsxs(
110
+ "button",
111
+ {
112
+ type: "button",
113
+ onClick: () => onOrderChange([]),
114
+ className: "appearance-none cursor-pointer bg-transparent border-0 ml-auto inline-flex items-center gap-1 px-2 py-1 text-xs text-slate-500 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-slate-800",
115
+ children: [
116
+ /* @__PURE__ */ jsx(RotateCcw, { className: "h-3 w-3" }),
117
+ L.resetOrder
118
+ ]
119
+ }
120
+ )
121
+ ] }),
122
+ /* @__PURE__ */ jsx("ul", { className: "max-h-80 overflow-y-auto py-1 list-none m-0 pl-0", children: columns.map((c, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 px-2 py-1 hover:bg-slate-50 dark:hover:bg-slate-800", children: [
123
+ /* @__PURE__ */ jsxs("label", { className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200", children: [
124
+ /* @__PURE__ */ jsx(
125
+ "input",
126
+ {
127
+ type: "checkbox",
128
+ checked: !hidden.has(c.key),
129
+ onChange: () => alternar(c.key),
130
+ className: "h-4 w-4 border-slate-300 text-proef-blue rounded focus:ring-proef-blue"
131
+ }
132
+ ),
133
+ /* @__PURE__ */ jsx("span", { className: `truncate ${hidden.has(c.key) ? "text-slate-400" : ""}`, children: c.label })
134
+ ] }),
135
+ /* @__PURE__ */ jsx(
136
+ "button",
137
+ {
138
+ type: "button",
139
+ onClick: () => mover(i, -1),
140
+ disabled: i === 0,
141
+ "aria-label": L.moveUp,
142
+ title: L.moveUp,
143
+ className: "appearance-none cursor-pointer bg-transparent border-0 p-0.5 text-slate-400 hover:text-proef-navy dark:hover:text-white disabled:opacity-25 disabled:cursor-not-allowed",
144
+ children: /* @__PURE__ */ jsx(ChevronUp, { className: "h-3.5 w-3.5" })
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsx(
148
+ "button",
149
+ {
150
+ type: "button",
151
+ onClick: () => mover(i, 1),
152
+ disabled: i === columns.length - 1,
153
+ "aria-label": L.moveDown,
154
+ title: L.moveDown,
155
+ className: "appearance-none cursor-pointer bg-transparent border-0 p-0.5 text-slate-400 hover:text-proef-navy dark:hover:text-white disabled:opacity-25 disabled:cursor-not-allowed",
156
+ children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-3.5 w-3.5" })
157
+ }
158
+ )
159
+ ] }, c.key)) })
160
+ ] })
161
+ ] });
162
+ }
163
+ function orderColumns(columns, order) {
164
+ if (order.length === 0) return columns;
165
+ const posicao = (c, i) => {
166
+ const p = order.indexOf(c.key);
167
+ return p === -1 ? order.length + i : p;
168
+ };
169
+ return columns.map((c, i) => ({ c, p: posicao(c, i) })).sort((a, b) => a.p - b.p).map(({ c }) => c);
170
+ }
171
+ function applyColumnLayout(columns, order, hidden) {
172
+ return orderColumns(columns, order).filter((c) => !hidden.has(c.key));
173
+ }
174
+ export {
175
+ applyColumnLayout,
176
+ ColumnPicker as default,
177
+ orderColumns
178
+ };
179
+ //# sourceMappingURL=ColumnPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnPicker.js","sources":["../../../../../../src/legacy/components/molecules/ColumnPicker/ColumnPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react'\r\n\r\n// ─── Tipos ──────────────────────────────────────────────────────────────────\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface ColumnPickerItem {\r\n key: string\r\n label: string\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface ColumnPickerLabels {\r\n /** Texto do botão (escondido em ecrãs estreitos — a contagem fica sempre). */\r\n title: string\r\n all: string\r\n none: string\r\n resetOrder: string\r\n moveUp: string\r\n moveDown: string\r\n}\r\n\r\nconst DEFAULT_LABELS: ColumnPickerLabels = {\r\n title: 'Columns',\r\n all: 'All',\r\n none: 'None',\r\n resetOrder: 'Reset order',\r\n moveUp: 'Move up',\r\n moveDown: 'Move down',\r\n}\r\n\r\n// ─── Ícones (inline, sem dependências) ───────────────────────────────────────\r\n\r\nconst iconeBase = {\r\n viewBox: '0 0 24 24',\r\n fill: 'none',\r\n stroke: 'currentColor',\r\n strokeWidth: 2,\r\n strokeLinecap: 'round' as const,\r\n strokeLinejoin: 'round' as const,\r\n}\r\n\r\nconst Columns3 = ({ className }: { className?: string }) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" {...iconeBase} className={className} aria-hidden>\r\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\r\n <path d=\"M9 3v18M15 3v18\" />\r\n </svg>\r\n)\r\n\r\nconst ChevronUp = ({ className }: { className?: string }) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" {...iconeBase} className={className} aria-hidden>\r\n <path d=\"m18 15-6-6-6 6\" />\r\n </svg>\r\n)\r\n\r\nconst ChevronDown = ({ className }: { className?: string }) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" {...iconeBase} className={className} aria-hidden>\r\n <path d=\"m6 9 6 6 6-6\" />\r\n </svg>\r\n)\r\n\r\nconst RotateCcw = ({ className }: { className?: string }) => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" {...iconeBase} className={className} aria-hidden>\r\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\r\n <path d=\"M3 3v5h5\" />\r\n </svg>\r\n)\r\n\r\n// ─── Componente ──────────────────────────────────────────────────────────────\r\n\r\ninterface Props {\r\n /** Colunas pela ordem em que estão a ser desenhadas (já reordenadas). */\r\n columns: ColumnPickerItem[]\r\n hidden: Set<string>\r\n onHiddenChange: (v: Set<string>) => void\r\n /** Ordem atual das chaves. Vazia = ordem natural das colunas. */\r\n order: string[]\r\n onOrderChange: (v: string[]) => void\r\n /**\r\n * Nº de colunas iniciais que \"Nenhuma\" nunca esconde — uma tabela sem colunas\r\n * nenhumas não é utilizável. Default 1.\r\n */\r\n keepFirst?: number\r\n labels?: Partial<ColumnPickerLabels>\r\n}\r\n\r\n/**\r\n * Escolha e ordenação das colunas de uma tabela.\r\n *\r\n * Vive fora do `DataTable` de propósito: a tabela recebe as colunas já filtradas e\r\n * ordenadas e limita-se a desenhar o que lhe é dado. Quem decide (e quem guarda a\r\n * escolha, se quiser) é o ecrã.\r\n *\r\n * As colunas escondidas continuam listadas, para poderem ser reordenadas antes de\r\n * voltarem a aparecer.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\nexport default function ColumnPicker({\r\n columns,\r\n hidden,\r\n onHiddenChange,\r\n order,\r\n onOrderChange,\r\n keepFirst = 1,\r\n labels,\r\n}: Props) {\r\n const L = { ...DEFAULT_LABELS, ...labels }\r\n const [aberto, setAberto] = useState(false)\r\n const caixa = useRef<HTMLDivElement | null>(null)\r\n\r\n useEffect(() => {\r\n if (!aberto) return\r\n const fora = (e: MouseEvent) => {\r\n if (caixa.current && !caixa.current.contains(e.target as Node)) setAberto(false)\r\n }\r\n const escape = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setAberto(false)\r\n }\r\n document.addEventListener('mousedown', fora)\r\n document.addEventListener('keydown', escape)\r\n return () => {\r\n document.removeEventListener('mousedown', fora)\r\n document.removeEventListener('keydown', escape)\r\n }\r\n }, [aberto])\r\n\r\n const alternar = (key: string) => {\r\n const nova = new Set(hidden)\r\n if (nova.has(key)) nova.delete(key)\r\n else nova.add(key)\r\n onHiddenChange(nova)\r\n }\r\n\r\n /**\r\n * Move uma coluna uma posição. Escreve a lista inteira de chaves e não só a troca,\r\n * para a ordem guardada ficar completa mesmo antes de o utilizador ter mexido em tudo.\r\n */\r\n const mover = (indice: number, passo: number) => {\r\n const destino = indice + passo\r\n if (destino < 0 || destino >= columns.length) return\r\n const chaves = columns.map((c) => c.key)\r\n ;[chaves[indice], chaves[destino]] = [chaves[destino]!, chaves[indice]!]\r\n onOrderChange(chaves)\r\n }\r\n\r\n const visiveis = columns.length - hidden.size\r\n\r\n return (\r\n <div className=\"relative\" ref={caixa}>\r\n <button\r\n type=\"button\"\r\n onClick={() => setAberto((v) => !v)}\r\n aria-expanded={aberto}\r\n className=\"appearance-none cursor-pointer bg-white inline-flex items-center gap-2 h-8 rounded-lg border border-slate-300 px-3 text-xs font-medium text-slate-700 transition hover:bg-slate-50 dark:bg-slate-800 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-700\"\r\n >\r\n <Columns3 className=\"h-4 w-4\" />\r\n <span className=\"hidden sm:inline\">{L.title}</span>\r\n <span className=\"tabular-nums text-xs text-slate-400\">\r\n {visiveis}/{columns.length}\r\n </span>\r\n </button>\r\n\r\n {aberto && (\r\n <div className=\"absolute right-0 z-30 mt-1 w-72 overflow-hidden rounded-lg border border-slate-200 bg-white shadow-lg dark:bg-slate-900 dark:border-slate-700\">\r\n <div className=\"flex items-center gap-1 border-b border-slate-100 dark:border-slate-800 px-2 py-1.5\">\r\n <button\r\n type=\"button\"\r\n onClick={() => onHiddenChange(new Set())}\r\n className=\"appearance-none cursor-pointer bg-transparent border-0 px-2 py-1 text-xs font-medium text-proef-blue dark:text-sky-300 hover:bg-slate-50 dark:hover:bg-slate-800\"\r\n >\r\n {L.all}\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => onHiddenChange(new Set(columns.slice(keepFirst).map((c) => c.key)))}\r\n className=\"appearance-none cursor-pointer bg-transparent border-0 px-2 py-1 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800\"\r\n >\r\n {L.none}\r\n </button>\r\n {order.length > 0 && (\r\n <button\r\n type=\"button\"\r\n onClick={() => onOrderChange([])}\r\n className=\"appearance-none cursor-pointer bg-transparent border-0 ml-auto inline-flex items-center gap-1 px-2 py-1 text-xs text-slate-500 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-slate-800\"\r\n >\r\n <RotateCcw className=\"h-3 w-3\" />\r\n {L.resetOrder}\r\n </button>\r\n )}\r\n </div>\r\n\r\n <ul className=\"max-h-80 overflow-y-auto py-1 list-none m-0 pl-0\">\r\n {columns.map((c, i) => (\r\n <li key={c.key} className=\"flex items-center gap-2 px-2 py-1 hover:bg-slate-50 dark:hover:bg-slate-800\">\r\n <label className=\"flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200\">\r\n <input\r\n type=\"checkbox\"\r\n checked={!hidden.has(c.key)}\r\n onChange={() => alternar(c.key)}\r\n className=\"h-4 w-4 border-slate-300 text-proef-blue rounded focus:ring-proef-blue\"\r\n />\r\n <span className={`truncate ${hidden.has(c.key) ? 'text-slate-400' : ''}`}>{c.label}</span>\r\n </label>\r\n <button\r\n type=\"button\"\r\n onClick={() => mover(i, -1)}\r\n disabled={i === 0}\r\n aria-label={L.moveUp}\r\n title={L.moveUp}\r\n className=\"appearance-none cursor-pointer bg-transparent border-0 p-0.5 text-slate-400 hover:text-proef-navy dark:hover:text-white disabled:opacity-25 disabled:cursor-not-allowed\"\r\n >\r\n <ChevronUp className=\"h-3.5 w-3.5\" />\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => mover(i, 1)}\r\n disabled={i === columns.length - 1}\r\n aria-label={L.moveDown}\r\n title={L.moveDown}\r\n className=\"appearance-none cursor-pointer bg-transparent border-0 p-0.5 text-slate-400 hover:text-proef-navy dark:hover:text-white disabled:opacity-25 disabled:cursor-not-allowed\"\r\n >\r\n <ChevronDown className=\"h-3.5 w-3.5\" />\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\n/**\r\n * Reordena as colunas por `order`. Chaves fora de `order` ficam no fim, pela ordem natural —\r\n * assim uma ordem guardada antes de a tabela ganhar colunas novas continua a servir, em vez\r\n * de as fazer desaparecer.\r\n *\r\n * É esta lista (com as escondidas incluídas) que o `ColumnPicker` recebe: uma coluna que\r\n * deixasse de ser listada por estar escondida não tinha como voltar.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\nexport function orderColumns<C extends { key: string }>(columns: C[], order: string[]): C[] {\r\n if (order.length === 0) return columns\r\n const posicao = (c: C, i: number) => {\r\n const p = order.indexOf(c.key)\r\n return p === -1 ? order.length + i : p\r\n }\r\n return columns\r\n .map((c, i) => ({ c, p: posicao(c, i) }))\r\n .sort((a, b) => a.p - b.p)\r\n .map(({ c }) => c)\r\n}\r\n\r\n/**\r\n * `orderColumns` + remoção das escondidas. É o que se passa à tabela.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\nexport function applyColumnLayout<C extends { key: string }>(\r\n columns: C[],\r\n order: string[],\r\n hidden: Set<string>\r\n): C[] {\r\n return orderColumns(columns, order).filter((c) => !hidden.has(c.key))\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ .confirm-modal-children {
2
+ margin: 20px 0;
3
+ }
@@ -0,0 +1,33 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { faCheck } from "@fortawesome/free-solid-svg-icons";
3
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4
+ import Modal from "../Modal/Modal.js";
5
+ import Spinner from "../../layout/Spinner/Spinner.js";
6
+ import { ActionButtonThemeStyled } from "../../../styles/themes/ButtonThemes.js";
7
+ import './ConfirmModal.css';/* empty css */
8
+ import ActionButton from "../../atoms/Button/variants/ActionButton.js";
9
+ function ConfirmModal({
10
+ title,
11
+ children,
12
+ handleCancel,
13
+ handleConfirm,
14
+ working
15
+ }) {
16
+ return /* @__PURE__ */ jsxs(Modal, { title: "Confirmação", onClose: handleCancel, children: [
17
+ /* @__PURE__ */ jsx("h4", { children: title }),
18
+ /* @__PURE__ */ jsx("div", { className: "confirm-modal-children", children }),
19
+ /* @__PURE__ */ jsx("div", { style: { width: "100%", display: "flex", justifyContent: "center" }, children: working ? /* @__PURE__ */ jsx(Spinner, {}) : /* @__PURE__ */ jsx(
20
+ ActionButton,
21
+ {
22
+ icon: /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faCheck }),
23
+ title: "Confirmar",
24
+ onClick: handleConfirm,
25
+ theme: ActionButtonThemeStyled
26
+ }
27
+ ) })
28
+ ] });
29
+ }
30
+ export {
31
+ ConfirmModal as default
32
+ };
33
+ //# sourceMappingURL=ConfirmModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmModal.js","sources":["../../../../../../src/legacy/components/molecules/ConfirmModal/ConfirmModal.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\r\n\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Modal from '../Modal/Modal'\r\nimport Spinner from '../../layout/Spinner/Spinner'\r\nimport { ActionButton } from '../../../exports/atoms'\r\nimport { ActionButtonThemeStyled } from '../../../styles/themes/ButtonThemes'\r\n\r\nimport './ConfirmModal.scss'\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\ninterface ConfirmModal {\r\n title: string\r\n children: ReactNode\r\n handleCancel: () => void\r\n handleConfirm: () => void\r\n working: boolean\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nfunction ConfirmModal({\r\n title,\r\n children,\r\n handleCancel,\r\n handleConfirm,\r\n working,\r\n}: ConfirmModal) {\r\n return (\r\n <Modal title={'Confirmação'} onClose={handleCancel}>\r\n <h4>{title}</h4>\r\n <div className=\"confirm-modal-children\">{children}</div>\r\n <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>\r\n {working ? (\r\n <Spinner />\r\n ) : (\r\n <ActionButton\r\n icon={<FontAwesomeIcon icon={faCheck} />}\r\n title={'Confirmar'}\r\n onClick={handleConfirm}\r\n theme={ActionButtonThemeStyled}\r\n />\r\n )}\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default ConfirmModal\r\n"],"names":[],"mappings":";;;;;;;;AAsBA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiB;AACf,SACE,qBAAC,OAAA,EAAM,OAAO,eAAe,SAAS,cACpC,UAAA;AAAA,IAAA,oBAAC,QAAI,UAAA,MAAA,CAAM;AAAA,IACX,oBAAC,OAAA,EAAI,WAAU,0BAA0B,SAAA,CAAS;AAAA,IAClD,oBAAC,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,SAAS,QAAQ,gBAAgB,SAAA,GAC3D,UAAA,UACC,oBAAC,WAAQ,IAET;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,oBAAC,iBAAA,EAAgB,MAAM,QAAA,CAAS;AAAA,QACtC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IAAA,EACT,CAEJ;AAAA,EAAA,GACF;AAEJ;"}