structra-ui 0.1.4 → 0.1.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 (296) hide show
  1. package/README.md +59 -6
  2. package/app/_utils/date-pt-br.utils.d.ts +24 -0
  3. package/app/_utils/decimal-br.utils.d.ts +52 -0
  4. package/app/_utils/estados-br.data.d.ts +10 -0
  5. package/app/_utils/integer-br.utils.d.ts +17 -0
  6. package/app/_utils/integer-value.utils.d.ts +5 -0
  7. package/app/_utils/scroll/body-scroll-lock.util.d.ts +22 -0
  8. package/app/app-shell/_models/breadcrumb-item.model.d.ts +13 -0
  9. package/app/app-shell/app-shell-sidebar-template.directive.d.ts +19 -0
  10. package/app/app-shell/app-shell.component.d.ts +41 -0
  11. package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +10 -0
  12. package/app/app-shell/index.d.ts +19 -0
  13. package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +14 -0
  14. package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +19 -0
  15. package/app/app-shell/sidebar/sidebar.component.d.ts +36 -0
  16. package/app/app-shell/sidebar-reveal.constants.d.ts +8 -0
  17. package/app/app-shell/topbar/topbar.component.d.ts +8 -0
  18. package/app/app-shell/user-menu/user-menu.component.d.ts +25 -0
  19. package/app/buttons/base-button/base-button.component.d.ts +43 -0
  20. package/app/buttons/index.d.ts +1 -0
  21. package/app/data-display/_models/card-item-view.model.d.ts +8 -0
  22. package/app/data-display/_models/data-display.models.d.ts +11 -0
  23. package/app/data-display/_models/data-grid-column.model.d.ts +13 -0
  24. package/app/data-display/_models/index.d.ts +2 -0
  25. package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +53 -0
  26. package/app/data-display/card-list/card-list.component.d.ts +70 -0
  27. package/app/data-display/dashboard-section/dashboard-section.component.d.ts +12 -0
  28. package/app/data-display/data-card/data-card.component.d.ts +16 -0
  29. package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +21 -0
  30. package/app/data-display/data-grid/data-grid.component.d.ts +76 -0
  31. package/app/data-display/data-list/data-list.component.d.ts +18 -0
  32. package/app/data-display/data-toolbar/data-toolbar.component.d.ts +6 -0
  33. package/app/data-display/details-field/details-field.component.d.ts +10 -0
  34. package/app/data-display/details-view/details-view.component.d.ts +26 -0
  35. package/app/data-display/empty-state/empty-state-overlay.util.d.ts +5 -0
  36. package/app/data-display/empty-state/empty-state.component.d.ts +13 -0
  37. package/app/data-display/index.d.ts +20 -0
  38. package/app/data-display/list-item/list-item.component.d.ts +22 -0
  39. package/app/data-display/stat-card/stat-card.component.d.ts +23 -0
  40. package/app/data-display/status-badge/status-badge.component.d.ts +17 -0
  41. package/app/data-display/table-empty-state/table-empty-state.component.d.ts +14 -0
  42. package/app/data-display/table-toolbar/table-toolbar.component.d.ts +11 -0
  43. package/app/dialogs/_models/lib-dialog-size.model.d.ts +6 -0
  44. package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +3 -0
  45. package/app/dialogs/app-dialog/app-dialog.component.d.ts +52 -0
  46. package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +6 -0
  47. package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +13 -0
  48. package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +20 -0
  49. package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +17 -0
  50. package/app/dialogs/index.d.ts +13 -0
  51. package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +7 -0
  52. package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +9 -0
  53. package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +15 -0
  54. package/app/dialogs/toast/toast-host.component.d.ts +13 -0
  55. package/app/dialogs/toast/toast.models.d.ts +26 -0
  56. package/app/dialogs/toast/toast.service.d.ts +17 -0
  57. package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +42 -0
  58. package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +8 -0
  59. package/app/fields/checkbox-fields/index.d.ts +3 -0
  60. package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +8 -0
  61. package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +62 -0
  62. package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +40 -0
  63. package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +47 -0
  64. package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +18 -0
  65. package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +13 -0
  66. package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +7 -0
  67. package/app/fields/dropdown-fields/_models/index.d.ts +4 -0
  68. package/app/fields/dropdown-fields/_models/select-option.model.d.ts +5 -0
  69. package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +6 -0
  70. package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +84 -0
  71. package/app/fields/dropdown-fields/index.d.ts +7 -0
  72. package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +49 -0
  73. package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +54 -0
  74. package/app/fields/input-fields/_base/base-field.component.d.ts +60 -0
  75. package/app/fields/input-fields/_base/base-field.directive.d.ts +102 -0
  76. package/app/fields/input-fields/_base/masked-text-field.base.d.ts +34 -0
  77. package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +43 -0
  78. package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +49 -0
  79. package/app/fields/input-fields/_models/index.d.ts +1 -0
  80. package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +18 -0
  81. package/app/fields/input-fields/_utils/mask-format.utils.d.ts +13 -0
  82. package/app/fields/input-fields/cep-field/cep-field.component.d.ts +12 -0
  83. package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +20 -0
  84. package/app/fields/input-fields/date-field/date-field.component.d.ts +30 -0
  85. package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +17 -0
  86. package/app/fields/input-fields/index.d.ts +22 -0
  87. package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +16 -0
  88. package/app/fields/input-fields/integer-field/integer-field.component.d.ts +17 -0
  89. package/app/fields/input-fields/password-field/password-field.component.d.ts +30 -0
  90. package/app/fields/input-fields/phone-field/phone-field.component.d.ts +22 -0
  91. package/app/fields/input-fields/text-field/text-field.component.d.ts +16 -0
  92. package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +31 -0
  93. package/app/form-layout/_models/form-layout.model.d.ts +41 -0
  94. package/app/form-layout/_models/form-tabs.model.d.ts +1 -0
  95. package/app/form-layout/_models/index.d.ts +3 -0
  96. package/app/form-layout/_models/validation-summary.model.d.ts +8 -0
  97. package/app/form-layout/form-actions/form-actions.component.d.ts +21 -0
  98. package/app/form-layout/form-col/form-col.component.d.ts +25 -0
  99. package/app/form-layout/form-group/form-group.component.d.ts +125 -0
  100. package/app/form-layout/form-group/form-path.utils.d.ts +16 -0
  101. package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +8 -0
  102. package/app/form-layout/form-row/form-row.component.d.ts +14 -0
  103. package/app/form-layout/form-section/form-section.component.d.ts +13 -0
  104. package/app/form-layout/form-tab/form-tab.component.d.ts +32 -0
  105. package/app/form-layout/form-tabs/form-tabs.component.d.ts +44 -0
  106. package/app/form-layout/index.d.ts +14 -0
  107. package/app/form-layout/layout-stack/layout-stack.component.d.ts +25 -0
  108. package/app/form-layout/validation-summary/validation-summary.component.d.ts +111 -0
  109. package/app/loading/skeleton-loading/index.d.ts +6 -0
  110. package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +15 -0
  111. package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +10 -0
  112. package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +21 -0
  113. package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +17 -0
  114. package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +16 -0
  115. package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +17 -0
  116. package/app/menus/_models/drawer-side.model.d.ts +6 -0
  117. package/app/menus/_models/drawer-size.model.d.ts +6 -0
  118. package/app/menus/_models/menu-dropdown-placement.model.d.ts +10 -0
  119. package/app/menus/_models/menu-item.model.d.ts +47 -0
  120. package/app/menus/_utils/menu-connected-positions.util.d.ts +4 -0
  121. package/app/menus/_utils/menu-rows.util.d.ts +22 -0
  122. package/app/menus/_utils/submenu-connected-positions.util.d.ts +5 -0
  123. package/app/menus/action-menu/action-menu.component.d.ts +24 -0
  124. package/app/menus/context-menu/context-menu.component.d.ts +32 -0
  125. package/app/menus/drawer/drawer.component.d.ts +37 -0
  126. package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +33 -0
  127. package/app/menus/index.d.ts +11 -0
  128. package/app/menus/menu-divider/menu-divider.component.d.ts +8 -0
  129. package/app/menus/menu-group/menu-group.component.d.ts +13 -0
  130. package/app/menus/menu-list/menu-list.component.d.ts +77 -0
  131. package/app/overlay/_models/overlay-placement.model.d.ts +9 -0
  132. package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +9 -0
  133. package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +51 -0
  134. package/app/overlay/index.d.ts +20 -0
  135. package/app/overlay/popover/popover-body-template.directive.d.ts +7 -0
  136. package/app/overlay/popover/popover-footer-template.directive.d.ts +7 -0
  137. package/app/overlay/popover/popover-trigger.directive.d.ts +6 -0
  138. package/app/overlay/popover/popover.component.d.ts +38 -0
  139. package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +10 -0
  140. package/app/overlay/tooltip/tooltip.component.d.ts +40 -0
  141. package/app/theme/app-theme.service.d.ts +25 -0
  142. package/app/theme/index.d.ts +1 -0
  143. package/esm2022/app/_utils/date-pt-br.utils.mjs +82 -0
  144. package/esm2022/app/_utils/decimal-br.utils.mjs +154 -0
  145. package/esm2022/app/_utils/estados-br.data.mjs +37 -0
  146. package/esm2022/app/_utils/integer-br.utils.mjs +48 -0
  147. package/esm2022/app/_utils/integer-value.utils.mjs +19 -0
  148. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +43 -0
  149. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +2 -0
  150. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +29 -0
  151. package/esm2022/app/app-shell/app-shell.component.mjs +105 -0
  152. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +18 -0
  153. package/esm2022/app/app-shell/index.mjs +19 -0
  154. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +23 -0
  155. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +36 -0
  156. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +84 -0
  157. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +9 -0
  158. package/esm2022/app/app-shell/topbar/topbar.component.mjs +14 -0
  159. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +52 -0
  160. package/esm2022/app/buttons/base-button/base-button.component.mjs +97 -0
  161. package/esm2022/app/buttons/index.mjs +2 -0
  162. package/esm2022/app/data-display/_models/card-item-view.model.mjs +2 -0
  163. package/esm2022/app/data-display/_models/data-display.models.mjs +2 -0
  164. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +2 -0
  165. package/esm2022/app/data-display/_models/index.mjs +2 -0
  166. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +124 -0
  167. package/esm2022/app/data-display/card-list/card-list.component.mjs +208 -0
  168. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +25 -0
  169. package/esm2022/app/data-display/data-card/data-card.component.mjs +40 -0
  170. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +41 -0
  171. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +253 -0
  172. package/esm2022/app/data-display/data-list/data-list.component.mjs +40 -0
  173. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +12 -0
  174. package/esm2022/app/data-display/details-field/details-field.component.mjs +21 -0
  175. package/esm2022/app/data-display/details-view/details-view.component.mjs +44 -0
  176. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +19 -0
  177. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +30 -0
  178. package/esm2022/app/data-display/index.mjs +19 -0
  179. package/esm2022/app/data-display/list-item/list-item.component.mjs +59 -0
  180. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +59 -0
  181. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +41 -0
  182. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +31 -0
  183. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +22 -0
  184. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +8 -0
  185. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +6 -0
  186. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +164 -0
  187. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +15 -0
  188. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +2 -0
  189. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +36 -0
  190. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +45 -0
  191. package/esm2022/app/dialogs/index.mjs +11 -0
  192. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +2 -0
  193. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +19 -0
  194. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +36 -0
  195. package/esm2022/app/dialogs/toast/toast-host.component.mjs +65 -0
  196. package/esm2022/app/dialogs/toast/toast.models.mjs +2 -0
  197. package/esm2022/app/dialogs/toast/toast.service.mjs +76 -0
  198. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +158 -0
  199. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +36 -0
  200. package/esm2022/app/fields/checkbox-fields/index.mjs +4 -0
  201. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +35 -0
  202. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +117 -0
  203. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +152 -0
  204. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +149 -0
  205. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +32 -0
  206. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +2 -0
  207. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +2 -0
  208. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +2 -0
  209. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +2 -0
  210. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +2 -0
  211. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +520 -0
  212. package/esm2022/app/fields/dropdown-fields/index.mjs +7 -0
  213. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +379 -0
  214. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +359 -0
  215. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +151 -0
  216. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +224 -0
  217. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +135 -0
  218. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +127 -0
  219. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +2 -0
  220. package/esm2022/app/fields/input-fields/_models/index.mjs +2 -0
  221. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +61 -0
  222. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +40 -0
  223. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +48 -0
  224. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +61 -0
  225. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +147 -0
  226. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +166 -0
  227. package/esm2022/app/fields/input-fields/index.mjs +22 -0
  228. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +52 -0
  229. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +143 -0
  230. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +130 -0
  231. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +66 -0
  232. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +90 -0
  233. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +125 -0
  234. package/esm2022/app/form-layout/_models/form-layout.model.mjs +48 -0
  235. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +2 -0
  236. package/esm2022/app/form-layout/_models/index.mjs +2 -0
  237. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +2 -0
  238. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +55 -0
  239. package/esm2022/app/form-layout/form-col/form-col.component.mjs +76 -0
  240. package/esm2022/app/form-layout/form-group/form-group.component.mjs +358 -0
  241. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +65 -0
  242. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +54 -0
  243. package/esm2022/app/form-layout/form-row/form-row.component.mjs +49 -0
  244. package/esm2022/app/form-layout/form-section/form-section.component.mjs +43 -0
  245. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +67 -0
  246. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +126 -0
  247. package/esm2022/app/form-layout/index.mjs +14 -0
  248. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +56 -0
  249. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +392 -0
  250. package/esm2022/app/loading/skeleton-loading/index.mjs +7 -0
  251. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +43 -0
  252. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +23 -0
  253. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +34 -0
  254. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +38 -0
  255. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +37 -0
  256. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +45 -0
  257. package/esm2022/app/menus/_models/drawer-side.model.mjs +8 -0
  258. package/esm2022/app/menus/_models/drawer-size.model.mjs +8 -0
  259. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +12 -0
  260. package/esm2022/app/menus/_models/menu-item.model.mjs +6 -0
  261. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +41 -0
  262. package/esm2022/app/menus/_utils/menu-rows.util.mjs +39 -0
  263. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +23 -0
  264. package/esm2022/app/menus/action-menu/action-menu.component.mjs +48 -0
  265. package/esm2022/app/menus/context-menu/context-menu.component.mjs +112 -0
  266. package/esm2022/app/menus/drawer/drawer.component.mjs +140 -0
  267. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +99 -0
  268. package/esm2022/app/menus/index.mjs +11 -0
  269. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +14 -0
  270. package/esm2022/app/menus/menu-group/menu-group.component.mjs +32 -0
  271. package/esm2022/app/menus/menu-list/menu-list.component.mjs +399 -0
  272. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +11 -0
  273. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +84 -0
  274. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +121 -0
  275. package/esm2022/app/overlay/index.mjs +21 -0
  276. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +17 -0
  277. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +17 -0
  278. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +15 -0
  279. package/esm2022/app/overlay/popover/popover.component.mjs +93 -0
  280. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +20 -0
  281. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +118 -0
  282. package/esm2022/app/theme/app-theme.service.mjs +49 -0
  283. package/esm2022/app/theme/index.mjs +2 -0
  284. package/esm2022/structra-public-api.mjs +18 -0
  285. package/esm2022/structra-ui.mjs +2 -2
  286. package/esm2022/structra-version.mjs +3 -0
  287. package/fesm2022/structra-ui.mjs +8896 -4
  288. package/fesm2022/structra-ui.mjs.map +1 -1
  289. package/index.d.ts +1 -1
  290. package/package.json +7 -2
  291. package/structra-public-api.d.ts +17 -0
  292. package/structra-version.d.ts +2 -0
  293. package/esm2022/lib/version.mjs +0 -3
  294. package/esm2022/public-api.mjs +0 -5
  295. package/lib/version.d.ts +0 -2
  296. package/public-api.d.ts +0 -1
@@ -0,0 +1,70 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import type { CardItemView, CardListMapFn } from '../_models/card-item-view.model';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * - **memory**: `items` tem a lista completa (ex.: 500 em memória); só se mostram
6
+ * `scrollBatchSize` de cada vez até o usuário fazer scroll (fatia local).
7
+ * - **remote**: `items` são só as linhas já devolvidas pela API; ao fim do scroll
8
+ * emite `loadMore` para pedir a próxima página (SQL OFFSET/FETCH no backend).
9
+ */
10
+ export type CardListDataMode = 'memory' | 'remote';
11
+ export declare class CardListComponent<T = unknown> implements OnChanges {
12
+ private readonly cdr;
13
+ items: T[];
14
+ loading: boolean;
15
+ /**
16
+ * Com itens já visíveis: mostra **um** skeleton no fundo (próxima página remota)
17
+ * para não saltar o scroll nem ocupar altura de vários cartões. O carregamento inicial
18
+ * continua a usar só {@link loading} (lista vazia ou refresh completo com `loading` e sem `loadingMore`).
19
+ */
20
+ loadingMore: boolean;
21
+ emptyMessage: string;
22
+ variant: 'default';
23
+ mapItem: CardListMapFn<T>;
24
+ showItemActions: boolean;
25
+ trackByProp: keyof T | string;
26
+ dataMode: CardListDataMode;
27
+ /** Em modo `memory`: quantos itens revelar por cada passo de scroll. Por omissão `10`. */
28
+ scrollBatchSize: number;
29
+ scrollLoadThresholdPx: number;
30
+ /** Mostra o rodapé com o resumo (“X de Y”) e dica. Por omissão `true`; com `false` oculta o footer. */
31
+ showFooter: boolean;
32
+ scrollMaxHeight: string | null;
33
+ /**
34
+ * Modo **remote**: total de registros no servidor (ex.: COUNT SQL), para o texto “X de Y”.
35
+ * Se `null`, usa `items.length`.
36
+ */
37
+ totalCountRemote: number | null;
38
+ /** Modo **remote**: existe página seguinte para pedir ao backend. */
39
+ hasNextPage: boolean;
40
+ /** Modo **remote**: pedido de mais dados (próxima página). */
41
+ readonly loadMore: EventEmitter<void>;
42
+ readonly edit: EventEmitter<T>;
43
+ readonly remove: EventEmitter<T>;
44
+ /** Modo memory: quantos cartões renderizar (fatia inicial = scrollBatchSize). */
45
+ visibleCount: number;
46
+ private loadMorePending;
47
+ /** Skeleton que ocupa a lista inteira (carregamento inicial / refresh com `loading`). */
48
+ get showFullSkeleton(): boolean;
49
+ ngOnChanges(changes: SimpleChanges): void;
50
+ get totalItemCount(): number;
51
+ /** Total para o rodapé “X de Y”. */
52
+ get totalForStatus(): number;
53
+ get visibleItems(): T[];
54
+ get scrollStatusLabel(): string;
55
+ get scrollAreaStyle(): Record<string, string>;
56
+ /** Há mais linhas para mostrar (memória) ou para pedir à API (remote). */
57
+ get hasMoreToReveal(): boolean;
58
+ viewFor(item: T): CardItemView;
59
+ skeletonCardIndices(): number[];
60
+ /** Um único cartão skeleton no fundo durante `loadingMore` (mantém o scroll estável). */
61
+ skeletonTailIndices(): number[];
62
+ trackFn: (index: number, item: T) => unknown;
63
+ onScroll(ev: Event): void;
64
+ private requestRemotePage;
65
+ private loadMoreMemoryChunk;
66
+ private resetVisibleWindow;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardListComponent<any>, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardListComponent<any>, "app-card-list", never, { "items": { "alias": "items"; "required": true; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "mapItem": { "alias": "mapItem"; "required": true; }; "showItemActions": { "alias": "showItemActions"; "required": false; }; "trackByProp": { "alias": "trackByProp"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "scrollBatchSize": { "alias": "scrollBatchSize"; "required": false; }; "scrollLoadThresholdPx": { "alias": "scrollLoadThresholdPx"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "scrollMaxHeight": { "alias": "scrollMaxHeight"; "required": false; }; "totalCountRemote": { "alias": "totalCountRemote"; "required": false; }; "hasNextPage": { "alias": "hasNextPage"; "required": false; }; }, { "loadMore": "loadMore"; "edit": "edit"; "remove": "remove"; }, never, never, true, never>;
69
+ static ngAcceptInputType_loadingMore: unknown;
70
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Bloco de dashboard: título, ações opcionais e conteúdo (stat-cards, listas, grades).
4
+ * Superfície alinhada aos cartões da lib.
5
+ */
6
+ export declare class DashboardSectionComponent {
7
+ title: string;
8
+ subtitle: string;
9
+ readonly titleId: string;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DashboardSectionComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<DashboardSectionComponent, "app-dashboard-section", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, ["[dashboard-section-actions]", "*"], true, never>;
12
+ }
@@ -0,0 +1,16 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DataCardComponent {
4
+ title: string;
5
+ subtitle?: string;
6
+ /** 1–2 caracteres para o círculo de iniciais. */
7
+ avatarText?: string;
8
+ variant: 'default';
9
+ showActions: boolean;
10
+ readonly edit: EventEmitter<void>;
11
+ readonly remove: EventEmitter<void>;
12
+ onEditClick(ev: Event): void;
13
+ onRemoveClick(ev: Event): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataCardComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataCardComponent, "app-data-card", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; "avatarText": { "alias": "avatarText"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; }, { "edit": "edit"; "remove": "remove"; }, never, never, true, never>;
16
+ }
@@ -0,0 +1,21 @@
1
+ import type { ICellRendererAngularComp } from 'ag-grid-angular';
2
+ import type { ICellRendererParams } from 'ag-grid-community';
3
+ import * as i0 from "@angular/core";
4
+ /** Contexto injetado pelo {@link DataGridComponent} (não exportado para consumidores). */
5
+ export interface DataGridActionsContext<T = unknown> {
6
+ onEditRow: (row: T) => void;
7
+ onRemoveRow: (row: T) => void;
8
+ }
9
+ export declare class DataGridActionsCellRendererComponent implements ICellRendererAngularComp {
10
+ params: ICellRendererParams & {
11
+ context?: DataGridActionsContext;
12
+ };
13
+ agInit(params: ICellRendererParams): void;
14
+ refresh(): boolean;
15
+ /** `params.context` nem sempre vem preenchido; o grid guarda o mesmo objeto em `gridOptions.context`. */
16
+ private get actionsContext();
17
+ edit(): void;
18
+ remove(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataGridActionsCellRendererComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataGridActionsCellRendererComponent, "app-data-grid-actions-cell-renderer", never, {}, {}, never, never, true, never>;
21
+ }
@@ -0,0 +1,76 @@
1
+ import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
+ import type { ColDef, GetRowIdParams, GridReadyEvent } from 'ag-grid-community';
3
+ import type { DataGridColumn } from '../_models/data-grid-column.model';
4
+ import { DataGridActionsCellRendererComponent, type DataGridActionsContext } from './data-grid-actions-cell-renderer.component';
5
+ import * as i0 from "@angular/core";
6
+ /** Emitido quando o usuário muda de página ou tamanho de página na grade paginada. */
7
+ export interface DataGridPaginationChangeEvent {
8
+ /** Índice 0-based da página atual (API ag-Grid). */
9
+ currentPage: number;
10
+ newPage: boolean;
11
+ newPageSize: boolean;
12
+ }
13
+ export declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDestroy {
14
+ private readonly ngZone;
15
+ private gridApi;
16
+ private paginationChangedListener?;
17
+ rows: T[];
18
+ columns: DataGridColumn<T>[];
19
+ pageSize: number;
20
+ loading: boolean;
21
+ /**
22
+ * Após remontar a grade (ex.: skeleton), volta a esta página (0-based).
23
+ * Só aplicado em `gridReady` e quando o valor muda com a API já disponível.
24
+ */
25
+ initialPaginationPage: number;
26
+ height: string | null;
27
+ emptyMessage: string;
28
+ pagination: boolean;
29
+ /** Se `false`, omite colunas com `type: 'actions'` (editar/remover). Por omissão `true`. */
30
+ showActionsColumn: boolean;
31
+ readonly edit: EventEmitter<T>;
32
+ readonly remove: EventEmitter<T>;
33
+ /** Reservado para evolução (seleção de linhas); não ligado na v1 para manter a UI minimal. */
34
+ readonly selectionChange: EventEmitter<T[]>;
35
+ /** Paginação interna do ag-Grid: mudança de página ou de `pageSize`. */
36
+ readonly paginationChanged: EventEmitter<DataGridPaginationChangeEvent>;
37
+ readonly frameworkComponents: {
38
+ dataGridActions: typeof DataGridActionsCellRendererComponent;
39
+ };
40
+ readonly paginationPageSizeChoices: number[];
41
+ /**
42
+ * O AG Grid avisa se `paginationPageSize` não está em `paginationPageSizeSelector`.
43
+ * Junta `pageSize` às opções base quando o consumidor usa um valor fora da lista (ex.: 8).
44
+ */
45
+ get effectivePaginationPageSizeSelector(): number[];
46
+ get skeletonColumnCount(): number;
47
+ get skeletonRowCount(): number;
48
+ readonly defaultColDef: ColDef<T>;
49
+ /**
50
+ * O AG Grid corre muitos callbacks fora da `NgZone`; sem `run()`, o pai com `OnPush`
51
+ * não volta a renderizar e editar/remover parece “morto”.
52
+ */
53
+ readonly actionsContext: DataGridActionsContext<T>;
54
+ agColumnDefs: ColDef<T>[];
55
+ ngOnInit(): void;
56
+ /**
57
+ * IDs estáveis por linha (evita `''` duplicado quando não existe `id` nos dados).
58
+ * Tenta `id`, depois `sku` (comum em grades de produto), senão impressão digital do objeto.
59
+ */
60
+ readonly getRowId: (params: GetRowIdParams<T>) => string;
61
+ /** Identificador determinístico e curto para linhas sem chave explícita. */
62
+ private stableRowFingerprint;
63
+ ngOnChanges(changes: SimpleChanges): void;
64
+ ngOnDestroy(): void;
65
+ get emptyOverlayTemplate(): string;
66
+ get hostHeight(): string;
67
+ onGridReady(ev: GridReadyEvent<T>): void;
68
+ private applyInitialPaginationPage;
69
+ /** Evita `removeEventListener` na API depois do grid destruído (ex.: `@if (loading)` remove o DOM). */
70
+ private detachPaginationListenerIfLive;
71
+ private columnsForGrid;
72
+ private mapColumnsToColDef;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent<any>, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent<any>, "app-data-grid", never, { "rows": { "alias": "rows"; "required": true; }; "columns": { "alias": "columns"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "initialPaginationPage": { "alias": "initialPaginationPage"; "required": false; }; "height": { "alias": "height"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "showActionsColumn": { "alias": "showActionsColumn"; "required": false; }; }, { "edit": "edit"; "remove": "remove"; "selectionChange": "selectionChange"; "paginationChanged": "paginationChanged"; }, never, never, true, never>;
75
+ static ngAcceptInputType_initialPaginationPage: unknown;
76
+ }
@@ -0,0 +1,18 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Lista vertical de registros com estados de loading e vazio padronizados.
4
+ * O conteúdo de cada linha deve usar `app-list-item` (ou composição equivalente).
5
+ */
6
+ export declare class DataListComponent {
7
+ loading: boolean;
8
+ empty: boolean;
9
+ emptyTitle: string;
10
+ emptyDescription: string;
11
+ emptyIconClass: string;
12
+ /** Linhas de skeleton em modo loading. */
13
+ skeletonRows: number;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataListComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataListComponent, "app-data-list", never, { "loading": { "alias": "loading"; "required": false; }; "empty": { "alias": "empty"; "required": false; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; }; "emptyIconClass": { "alias": "emptyIconClass"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; }, {}, never, ["*"], true, never>;
16
+ static ngAcceptInputType_loading: unknown;
17
+ static ngAcceptInputType_empty: unknown;
18
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ /** Barra de consulta: pesquisa, filtros, ações e contador (slots `toolbar-start` / `toolbar-end`). */
3
+ export declare class DataToolbarComponent {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataToolbarComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataToolbarComponent, "app-data-toolbar", never, {}, {}, never, ["[toolbar-start]", "[toolbar-end]"], true, never>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Uma linha chave → valor para usar **dentro** de `app-details-view` (projeção).
4
+ * O host usa `display: contents` para manter `<dl>` > `<dt>`/`<dd>` válidos.
5
+ */
6
+ export declare class DetailsFieldComponent {
7
+ label: string;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DetailsFieldComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<DetailsFieldComponent, "app-details-field", never, { "label": { "alias": "label"; "required": true; }; }, {}, never, ["*"], true, never>;
10
+ }
@@ -0,0 +1,26 @@
1
+ import type { DetailsViewItem } from '../_models/data-display.models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Lista de descrição (chave → valor) para detalhes, drawer ou resumo.
5
+ * Modo **lista**: `[items]`; modo **composto**: projectar `app-details-field` no conteúdo.
6
+ */
7
+ export declare class DetailsViewComponent {
8
+ items: readonly DetailsViewItem[];
9
+ /**
10
+ * Se `true`, ignora `items` e renderiza só `<ng-content />` dentro de um `<dl>`
11
+ * (usar com `app-details-field` para valores ricos).
12
+ */
13
+ projectionOnly: boolean;
14
+ /** `2` ativa grade em dois tempos em telas largas. */
15
+ columns: 1 | 2;
16
+ loading: boolean;
17
+ /** Texto quando `items` está vazio, sem `loading` e sem `projectionOnly`. */
18
+ emptyMessage: string;
19
+ readonly emDash = "\u2014";
20
+ /** Linhas de skeleton em modo loading. */
21
+ readonly skeletonPairs: number[];
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<DetailsViewComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DetailsViewComponent, "app-details-view", never, { "items": { "alias": "items"; "required": false; }; "projectionOnly": { "alias": "projectionOnly"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; }, {}, never, ["*"], true, never>;
24
+ static ngAcceptInputType_projectionOnly: unknown;
25
+ static ngAcceptInputType_loading: unknown;
26
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * HTML injetado no AG Grid (`overlayNoRowsTemplate`) — manter alinhado ao markup de {@link EmptyStateComponent}.
3
+ */
4
+ export declare function escapeHtml(text: string): string;
5
+ export declare function buildEmptyStateOverlayHtml(message: string): string;
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EmptyStateComponent {
3
+ message: string;
4
+ description?: string;
5
+ /** Classe Font Awesome do ícone (ex.: `fa-solid fa-inbox`). */
6
+ iconClass: string;
7
+ variant: 'default';
8
+ /** Padding reduzido (ex.: células de tabela, listas densas). */
9
+ embed: boolean;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmptyStateComponent, "app-empty-state", never, { "message": { "alias": "message"; "required": true; }; "description": { "alias": "description"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "embed": { "alias": "embed"; "required": false; }; }, {}, never, never, true, never>;
12
+ static ngAcceptInputType_embed: unknown;
13
+ }
@@ -0,0 +1,20 @@
1
+ export { DataGridComponent, type DataGridPaginationChangeEvent, } from './data-grid/data-grid.component';
2
+ export { DataToolbarComponent } from './data-toolbar/data-toolbar.component';
3
+ export { AdaptiveDataViewComponent, ADAPTIVE_DATA_VIEW_MOBILE_QUERY, type AdaptiveDataViewMode, } from './adaptive-data-view/adaptive-data-view.component';
4
+ export { DataCardComponent } from './data-card/data-card.component';
5
+ export { CardListComponent, type CardListDataMode, } from './card-list/card-list.component';
6
+ export { EmptyStateComponent } from './empty-state/empty-state.component';
7
+ export { buildEmptyStateOverlayHtml, escapeHtml, } from './empty-state/empty-state-overlay.util';
8
+ export type { DataGridColumn, CardItemView, CardListMapFn } from './_models';
9
+ export { StatusBadgeComponent } from './status-badge/status-badge.component';
10
+ export { DetailsViewComponent } from './details-view/details-view.component';
11
+ export { DetailsFieldComponent } from './details-field/details-field.component';
12
+ export { StatCardComponent } from './stat-card/stat-card.component';
13
+ export { ListItemComponent } from './list-item/list-item.component';
14
+ export { DataListComponent } from './data-list/data-list.component';
15
+ export { DashboardSectionComponent } from './dashboard-section/dashboard-section.component';
16
+ export { TableToolbarComponent } from './table-toolbar/table-toolbar.component';
17
+ export { TableEmptyStateComponent } from './table-empty-state/table-empty-state.component';
18
+ export type { StatusBadgeVariant, StatusBadgeSize, DetailsViewItem, StatCardDeltaTone, } from './_models/data-display.models';
19
+ /** Blocos de skeleton reutilizáveis (ver `src/app/loading/skeleton-loading`). */
20
+ export { SkeletonBlockComponent, SkeletonTextComponent, SkeletonListComponent, SkeletonCardComponent, SkeletonTableComponent, SkeletonFieldShellComponent, type SkeletonFieldShellVariant, } from '../loading/skeleton-loading';
@@ -0,0 +1,22 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Linha base para listas (`app-data-list`): texto, área de estado e ações projetadas.
5
+ * Estrutura preparada para selecção futura (`selectable` apenas aplica classe visual).
6
+ */
7
+ export declare class ListItemComponent {
8
+ title: string;
9
+ subtitle: string;
10
+ clickable: boolean;
11
+ /**
12
+ * Reserva visual para selecção futura (sem lógica de modelo).
13
+ */
14
+ selectable: boolean;
15
+ readonly itemActivate: EventEmitter<void>;
16
+ onKeydown(ev: KeyboardEvent): void;
17
+ onClick(ev: MouseEvent): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "app-list-item", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; }, { "itemActivate": "itemActivate"; }, never, ["*", "[list-item-status]", "[list-item-actions]"], true, never>;
20
+ static ngAcceptInputType_clickable: unknown;
21
+ static ngAcceptInputType_selectable: unknown;
22
+ }
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { StatCardDeltaTone } from '../_models/data-display.models';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Cartão de métrica (KPI) com a **mesma superfície** que `app-data-card` (mixin SCSS `data-card-shell`).
6
+ * Não usa o selector `app-data-card` (esse componente é para linhas de lista com ações).
7
+ */
8
+ export declare class StatCardComponent {
9
+ title: string;
10
+ value: string;
11
+ description: string;
12
+ icon: string;
13
+ /** Texto curto (ex.: +12% ou −3%). */
14
+ delta: string;
15
+ deltaTone: StatCardDeltaTone;
16
+ clickable: boolean;
17
+ readonly cardActivate: EventEmitter<void>;
18
+ onActivate(ev: Event): void;
19
+ onKeydown(ev: KeyboardEvent): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<StatCardComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<StatCardComponent, "app-stat-card", never, { "title": { "alias": "title"; "required": true; }; "value": { "alias": "value"; "required": true; }; "description": { "alias": "description"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "delta": { "alias": "delta"; "required": false; }; "deltaTone": { "alias": "deltaTone"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; }, { "cardActivate": "cardActivate"; }, never, never, true, never>;
22
+ static ngAcceptInputType_clickable: unknown;
23
+ }
@@ -0,0 +1,17 @@
1
+ import type { StatusBadgeSize, StatusBadgeVariant } from '../_models/data-display.models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Etiqueta de estado (Ativo, Pendente, etc.) com fundo suave e cor semântica.
5
+ */
6
+ export declare class StatusBadgeComponent {
7
+ label: string;
8
+ variant: StatusBadgeVariant;
9
+ /** Classes Font Awesome (ex.: `fa-solid fa-check`). */
10
+ icon: string;
11
+ size: StatusBadgeSize;
12
+ bordered: boolean;
13
+ readonly variantClassMap: Record<StatusBadgeVariant, string>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<StatusBadgeComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<StatusBadgeComponent, "app-status-badge", never, { "label": { "alias": "label"; "required": true; }; "variant": { "alias": "variant"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; }, {}, never, never, true, never>;
16
+ static ngAcceptInputType_bordered: unknown;
17
+ }
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Estado vazio para tabelas ou listas densas — reutiliza {@link EmptyStateComponent}
4
+ * e permite uma ação opcional (ex.: limpar filtros).
5
+ */
6
+ export declare class TableEmptyStateComponent {
7
+ title: string;
8
+ description: string;
9
+ iconClass: string;
10
+ embed: boolean;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableEmptyStateComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableEmptyStateComponent, "app-table-empty-state", never, { "title": { "alias": "title"; "required": true; }; "description": { "alias": "description"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "embed": { "alias": "embed"; "required": false; }; }, {}, never, ["[tableEmptyAction]"], true, never>;
13
+ static ngAcceptInputType_embed: unknown;
14
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Barra auxiliar para tabelas / grades: envolve {@link DataToolbarComponent}
4
+ * com áreas para pesquisa, contagem e ações.
5
+ */
6
+ export declare class TableToolbarComponent {
7
+ /** Ex.: `128 resultados` ou `Nenhum resultado`. */
8
+ resultCountLabel: string;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableToolbarComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableToolbarComponent, "app-table-toolbar", never, { "resultCountLabel": { "alias": "resultCountLabel"; "required": false; }; }, {}, never, ["[tableToolbarSearch]", "[tableToolbarFilters]", "[tableToolbarActions]"], true, never>;
11
+ }
@@ -0,0 +1,6 @@
1
+ /** Largura máxima do painel `app-dialog` (conteúdo responsivo). */
2
+ export declare enum LibDialogSize {
3
+ Sm = "sm",
4
+ Md = "md",
5
+ Lg = "lg"
6
+ }
@@ -0,0 +1,3 @@
1
+ import { AppThemeService } from '../../theme';
2
+ /** Classes aplicadas ao painel CDK Dialog + tema da app. */
3
+ export declare function libDialogPanelClasses(theme: AppThemeService, extra?: string | string[]): string[];
@@ -0,0 +1,52 @@
1
+ import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import { LibDialogSize } from '../_models/lib-dialog-size.model';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Diálogo modal declarativo com `[(open)]`, projeção de corpo e rodapé opcional (`[appDialogFooter]`).
6
+ * Bloqueio de scroll alinhado ao CDK (`cdk-global-scrollblock`), como no `ConfirmDialogService`.
7
+ */
8
+ export declare class AppDialogComponent implements OnChanges, OnDestroy {
9
+ private readonly hostEl;
10
+ open: boolean;
11
+ readonly openChange: EventEmitter<boolean>;
12
+ title: string;
13
+ /** Texto de apoio abaixo do título (opcional); liga `aria-describedby` no painel. */
14
+ description: string;
15
+ /**
16
+ * Rótulo acessível quando não há `title` (evita diálogo sem nome).
17
+ * Ignorado se `title` tiver texto.
18
+ */
19
+ ariaLabel: string;
20
+ size: LibDialogSize;
21
+ /**
22
+ * Quando `false`, a tecla Escape e o clique no backdrop não fecham o diálogo
23
+ * (botão ✕, `[(open)]` e `requestClose()` continuam disponíveis).
24
+ * Omisso: `true`.
25
+ */
26
+ allowOverlayDismiss: boolean;
27
+ showCloseButton: boolean;
28
+ readonly LibDialogSize: typeof LibDialogSize;
29
+ readonly titleId: string;
30
+ readonly descriptionId: string;
31
+ /**
32
+ * O modal fica no fim de `document.body` enquanto aberto, para o `backdrop-filter`
33
+ * não ficar «preso» a ancestrais com `overflow: auto` (ex.: `app-shell__content`).
34
+ */
35
+ private bodyRestoreParent;
36
+ private bodyRestoreNext;
37
+ private previousActive;
38
+ private scrollLock;
39
+ ngOnChanges(changes: SimpleChanges): void;
40
+ ngOnDestroy(): void;
41
+ private attachHostToBody;
42
+ private detachHostFromBody;
43
+ onDocumentKeydown(ev: KeyboardEvent): void;
44
+ onBackdropClick(): void;
45
+ requestClose(): void;
46
+ private restoreFocus;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppDialogComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppDialogComponent, "app-dialog", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "allowOverlayDismiss": { "alias": "allowOverlayDismiss"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; }, { "openChange": "openChange"; }, never, ["*", "[appDialogFooter]"], true, never>;
49
+ static ngAcceptInputType_open: unknown;
50
+ static ngAcceptInputType_allowOverlayDismiss: unknown;
51
+ static ngAcceptInputType_showCloseButton: unknown;
52
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ /** Marca o conteúdo projectado no rodapé de `app-dialog`. */
3
+ export declare class DialogFooterDirective {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogFooterDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DialogFooterDirective, "[appDialogFooter]", never, {}, {}, never, never, true, never>;
6
+ }
@@ -0,0 +1,13 @@
1
+ export type ConfirmDialogVariant = 'default' | 'danger';
2
+ export interface ConfirmDialogData {
3
+ title: string;
4
+ message: string;
5
+ confirmLabel?: string;
6
+ cancelLabel?: string;
7
+ variant?: ConfirmDialogVariant;
8
+ /**
9
+ * Se `true`, Escape e clique fora **não** fecham o diálogo (apenas botões do rodapé).
10
+ * Omisso: `false` — permite dispensar com Esc ou backdrop (emite `undefined` no `closed`).
11
+ */
12
+ blockOverlayDismiss?: boolean;
13
+ }
@@ -0,0 +1,20 @@
1
+ import { AfterViewInit } from '@angular/core';
2
+ import { DialogRef } from '@angular/cdk/dialog';
3
+ import { BaseButtonType, BaseButtonVariant } from '../../buttons';
4
+ import type { ConfirmDialogData } from './confirm-dialog-data.model';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ConfirmDialogComponent implements AfterViewInit {
7
+ readonly ref: DialogRef<boolean, ConfirmDialogComponent>;
8
+ readonly data: ConfirmDialogData;
9
+ readonly BaseButtonType: typeof BaseButtonType;
10
+ readonly BaseButtonVariant: typeof BaseButtonVariant;
11
+ readonly titleId: string;
12
+ readonly descId: string;
13
+ private cancelBtn?;
14
+ private static seq;
15
+ ngAfterViewInit(): void;
16
+ onConfirm(): void;
17
+ onCancel(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialogComponent, "app-confirm-dialog", never, {}, {}, never, never, true, never>;
20
+ }
@@ -0,0 +1,17 @@
1
+ import { Observable } from 'rxjs';
2
+ import type { ConfirmDialogData } from './confirm-dialog-data.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ConfirmDialogService {
5
+ private readonly dialog;
6
+ private readonly theme;
7
+ /**
8
+ * Abre o diálogo de confirmação (CDK Dialog + `ConfirmDialogComponent`).
9
+ * Emite `true` se confirmar, `false` se cancelar, `undefined` se fechar sem resultado (Esc/backdrop, quando permitido).
10
+ * Por defeito permite dispensar com Esc e clique fora; use `data.blockOverlayDismiss` para exigir só botões.
11
+ */
12
+ open(data: ConfirmDialogData): Observable<boolean | undefined>;
13
+ /** Confirmação como Promise (adequado a `async`/`await`). */
14
+ confirm(data: ConfirmDialogData): Promise<boolean>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmDialogService>;
17
+ }
@@ -0,0 +1,13 @@
1
+ export { AppDialogComponent } from './app-dialog/app-dialog.component';
2
+ export { DialogFooterDirective } from './app-dialog/dialog-footer.directive';
3
+ export { LibDialogSize } from './_models/lib-dialog-size.model';
4
+ export { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';
5
+ export { ConfirmDialogService } from './confirm-dialog/confirm-dialog.service';
6
+ export type { ConfirmDialogData, ConfirmDialogVariant, } from './confirm-dialog/confirm-dialog-data.model';
7
+ export { libDialogPanelClasses } from './_utils/lib-dialog-panel-classes';
8
+ export { ToastService } from './toast/toast.service';
9
+ export { ToastHostComponent } from './toast/toast-host.component';
10
+ export type { ToastInstance, ToastShowOptions, ToastType, ToastVerticalPosition, } from './toast/toast.models';
11
+ export { LoadingDialogComponent } from './loading-dialog/loading-dialog.component';
12
+ export { LoadingDialogService } from './loading-dialog/loading-dialog.service';
13
+ export type { LoadingDialogData } from './loading-dialog/loading-dialog-data.model';
@@ -0,0 +1,7 @@
1
+ export interface LoadingDialogData {
2
+ /**
3
+ * Texto sob o indicador de progresso.
4
+ * Omisso: mensagem por defeito da lib (`A carregar…`).
5
+ */
6
+ message?: string;
7
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LoadingDialogComponent {
3
+ private readonly data;
4
+ readonly titleId: string;
5
+ readonly message: string;
6
+ private static seq;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoadingDialogComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoadingDialogComponent, "app-loading-dialog", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { DialogRef } from '@angular/cdk/dialog';
2
+ import { LoadingDialogComponent } from './loading-dialog.component';
3
+ import type { LoadingDialogData } from './loading-dialog-data.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class LoadingDialogService {
6
+ private readonly dialog;
7
+ private readonly theme;
8
+ /**
9
+ * Abre o diálogo de carregamento.
10
+ * `disableClose: true` — não fecha com Escape nem clique fora; use `ref.close()` quando terminar.
11
+ */
12
+ open(data?: LoadingDialogData): DialogRef<void, LoadingDialogComponent>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoadingDialogService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<LoadingDialogService>;
15
+ }
@@ -0,0 +1,13 @@
1
+ import { AppThemeService } from '../../theme';
2
+ import { ToastService } from './toast.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ToastHostComponent {
5
+ readonly toastService: ToastService;
6
+ readonly theme: AppThemeService;
7
+ readonly topToasts: import("@angular/core").Signal<import("structra-ui").ToastInstance[]>;
8
+ readonly bottomToasts: import("@angular/core").Signal<import("structra-ui").ToastInstance[]>;
9
+ dismiss(id: string): void;
10
+ action(id: string): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastHostComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastHostComponent, "app-toast-host", never, {}, {}, never, never, true, never>;
13
+ }