@geoit/ui 0.0.4 → 0.0.6

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 (258) hide show
  1. package/AGENTS.md +12 -8
  2. package/README.md +94 -66
  3. package/ai/AGENTS.md +106 -16
  4. package/ai/README.md +35 -1
  5. package/ai/catalog.json +2855 -275
  6. package/ai/components/geo-alert.md +3 -3
  7. package/ai/components/geo-back-button.md +2 -2
  8. package/ai/components/geo-breadcrumb.md +1 -1
  9. package/ai/components/geo-button.md +3 -3
  10. package/ai/components/geo-chart.md +115 -0
  11. package/ai/components/geo-checkbox.md +4 -6
  12. package/ai/components/geo-column-picker.md +3 -3
  13. package/ai/components/geo-confirm-modal.md +4 -5
  14. package/ai/components/geo-dashboard.md +102 -0
  15. package/ai/components/geo-date-picker.md +5 -3
  16. package/ai/components/geo-date-range-picker.md +5 -3
  17. package/ai/components/geo-empty-state.md +75 -0
  18. package/ai/components/geo-feedback-form.md +97 -0
  19. package/ai/components/geo-file-picker.md +4 -2
  20. package/ai/components/geo-forgot-password.md +81 -0
  21. package/ai/components/geo-form-modal.md +9 -10
  22. package/ai/components/geo-icon.md +3 -3
  23. package/ai/components/geo-input.md +8 -6
  24. package/ai/components/geo-layout-footer.md +70 -0
  25. package/ai/components/geo-layout-header-actions.md +82 -0
  26. package/ai/components/geo-layout-header.md +89 -0
  27. package/ai/components/geo-layout-sidebar.md +86 -0
  28. package/ai/components/geo-layout.md +155 -0
  29. package/ai/components/geo-list-page.md +75 -0
  30. package/ai/components/geo-login.md +106 -0
  31. package/ai/components/geo-map-admin-filter.md +85 -0
  32. package/ai/components/geo-map-basemap-switcher.md +79 -0
  33. package/ai/components/geo-map-help.md +72 -0
  34. package/ai/components/geo-map-layer-card.md +73 -0
  35. package/ai/components/geo-map-layer-panel.md +75 -0
  36. package/ai/components/geo-map-layers-drawer.md +78 -0
  37. package/ai/components/geo-map-legend.md +74 -0
  38. package/ai/components/geo-map-locate.md +75 -0
  39. package/ai/components/geo-map-location-chip.md +71 -0
  40. package/ai/components/geo-map-measure.md +74 -0
  41. package/ai/components/geo-map-opacity.md +75 -0
  42. package/ai/components/geo-map-parcel-popup.md +84 -0
  43. package/ai/components/geo-map-search.md +89 -0
  44. package/ai/components/geo-map-shell.md +146 -0
  45. package/ai/components/geo-map-snapshot.md +75 -0
  46. package/ai/components/geo-map-swipe.md +73 -0
  47. package/ai/components/geo-map-toolbar.md +81 -0
  48. package/ai/components/geo-map-zoom.md +74 -0
  49. package/ai/components/geo-map.md +212 -0
  50. package/ai/components/geo-overlap-result.md +88 -0
  51. package/ai/components/geo-page-header.md +72 -0
  52. package/ai/components/geo-page-title.md +1 -1
  53. package/ai/components/geo-pagination.md +4 -7
  54. package/ai/components/geo-radio.md +3 -1
  55. package/ai/components/geo-row-actions.md +3 -3
  56. package/ai/components/geo-select.md +4 -2
  57. package/ai/components/geo-slider.md +6 -8
  58. package/ai/components/geo-stat-card.md +98 -0
  59. package/ai/components/geo-status-tag.md +2 -2
  60. package/ai/components/geo-step-form-layout.md +7 -8
  61. package/ai/components/geo-stepper.md +3 -4
  62. package/ai/components/geo-table-filter.md +4 -5
  63. package/ai/components/geo-table-pagination.md +4 -7
  64. package/ai/components/geo-table-toolbar.md +7 -7
  65. package/ai/components/geo-table.md +17 -20
  66. package/ai/components/geo-tabs.md +4 -6
  67. package/ai/components/geo-textarea.md +4 -2
  68. package/ai/components/geo-toast.md +4 -4
  69. package/ai/components/geo-tree.md +4 -6
  70. package/ai/components/geo-typography.md +1 -1
  71. package/ai/components/geo-upload.md +9 -10
  72. package/ai/mockup.html +1194 -0
  73. package/ai/recipes.md +184 -85
  74. package/esm2022/lib/figma/geo-alert/geo-alert.component.mjs +19 -36
  75. package/esm2022/lib/figma/geo-back-button/geo-back-button.component.mjs +14 -24
  76. package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.component.mjs +8 -11
  77. package/esm2022/lib/figma/geo-button/geo-button.component.mjs +30 -59
  78. package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +88 -0
  79. package/esm2022/lib/figma/geo-chart/geo-chart.types.mjs +2 -0
  80. package/esm2022/lib/figma/geo-checkbox/geo-checkbox.component.mjs +11 -22
  81. package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.component.mjs +22 -54
  82. package/esm2022/lib/figma/geo-dashboard/geo-dashboard.component.mjs +49 -0
  83. package/esm2022/lib/figma/geo-dashboard/geo-dashboard.types.mjs +2 -0
  84. package/esm2022/lib/figma/geo-date-picker/geo-date-picker.component.mjs +48 -78
  85. package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.component.mjs +47 -75
  86. package/esm2022/lib/figma/geo-empty-state/geo-empty-state.component.mjs +25 -0
  87. package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.component.mjs +75 -0
  88. package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.types.mjs +2 -0
  89. package/esm2022/lib/figma/geo-file-picker/geo-file-picker.component.mjs +59 -81
  90. package/esm2022/lib/figma/geo-forgot-password/geo-forgot-password.component.mjs +51 -0
  91. package/esm2022/lib/figma/geo-form-modal/geo-form-modal.component.mjs +45 -112
  92. package/esm2022/lib/figma/geo-icon/geo-icon.component.mjs +22 -32
  93. package/esm2022/lib/figma/geo-input/geo-input.component.mjs +41 -70
  94. package/esm2022/lib/figma/geo-layout/footer/geo-layout-footer.component.mjs +18 -0
  95. package/esm2022/lib/figma/geo-layout/geo-layout-actions.directive.mjs +15 -0
  96. package/esm2022/lib/figma/geo-layout/geo-layout.component.mjs +79 -0
  97. package/esm2022/lib/figma/geo-layout/geo-layout.types.mjs +42 -0
  98. package/esm2022/lib/figma/geo-layout/header/geo-layout-header.component.mjs +60 -0
  99. package/esm2022/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.mjs +70 -0
  100. package/esm2022/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.mjs +90 -0
  101. package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +22 -0
  102. package/esm2022/lib/figma/geo-login/geo-login.component.mjs +58 -0
  103. package/esm2022/lib/figma/geo-login/geo-login.types.mjs +2 -0
  104. package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +52 -0
  105. package/esm2022/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.mjs +61 -0
  106. package/esm2022/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.mjs +26 -0
  107. package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.mjs +24 -0
  108. package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.mjs +146 -0
  109. package/esm2022/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.mjs +37 -0
  110. package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +30 -0
  111. package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +72 -0
  112. package/esm2022/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.mjs +21 -0
  113. package/esm2022/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.mjs +375 -0
  114. package/esm2022/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.mjs +94 -0
  115. package/esm2022/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.mjs +136 -0
  116. package/esm2022/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.mjs +182 -0
  117. package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +577 -0
  118. package/esm2022/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.mjs +93 -0
  119. package/esm2022/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.mjs +129 -0
  120. package/esm2022/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.mjs +64 -0
  121. package/esm2022/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.mjs +295 -0
  122. package/esm2022/lib/figma/geo-map/geo-map-toolbar.icons.mjs +18 -0
  123. package/esm2022/lib/figma/geo-map/geo-map.component.mjs +144 -0
  124. package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +497 -0
  125. package/esm2022/lib/figma/geo-map/geo-map.controller.mjs +71 -0
  126. package/esm2022/lib/figma/geo-map/geo-map.types.mjs +2 -0
  127. package/esm2022/lib/figma/geo-map/services/geo-map-layer.service.mjs +368 -0
  128. package/esm2022/lib/figma/geo-map/services/geo-map-projection.service.mjs +110 -0
  129. package/esm2022/lib/figma/geo-map/services/geo-map.service.mjs +540 -0
  130. package/esm2022/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.mjs +47 -0
  131. package/esm2022/lib/figma/geo-map/utils/geo-map-interactions.util.mjs +30 -0
  132. package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.component.mjs +25 -0
  133. package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.types.mjs +2 -0
  134. package/esm2022/lib/figma/geo-page-header/geo-page-header.component.mjs +23 -0
  135. package/esm2022/lib/figma/geo-page-title/geo-page-title.component.mjs +20 -35
  136. package/esm2022/lib/figma/geo-pagination/geo-pagination.component.mjs +13 -43
  137. package/esm2022/lib/figma/geo-radio/geo-radio.component.mjs +32 -52
  138. package/esm2022/lib/figma/geo-select/geo-select.component.mjs +46 -72
  139. package/esm2022/lib/figma/geo-slider/geo-slider.component.mjs +12 -28
  140. package/esm2022/lib/figma/geo-stat-card/geo-stat-card.component.mjs +163 -0
  141. package/esm2022/lib/figma/geo-stat-card/geo-stat-card.types.mjs +2 -0
  142. package/esm2022/lib/figma/geo-status-tag/geo-status-tag.component.mjs +23 -27
  143. package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.component.mjs +39 -96
  144. package/esm2022/lib/figma/geo-stepper/geo-stepper.component.mjs +18 -33
  145. package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.mjs +14 -24
  146. package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.mjs +18 -36
  147. package/esm2022/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.mjs +41 -98
  148. package/esm2022/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.mjs +40 -73
  149. package/esm2022/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.mjs +26 -56
  150. package/esm2022/lib/figma/geo-table/geo-table.component.mjs +110 -210
  151. package/esm2022/lib/figma/geo-tabs/geo-tabs.component.mjs +33 -63
  152. package/esm2022/lib/figma/geo-textarea/geo-textarea.component.mjs +28 -44
  153. package/esm2022/lib/figma/geo-toast/geo-toast.component.mjs +18 -39
  154. package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +12 -40
  155. package/esm2022/lib/figma/geo-typography/geo-typography.component.mjs +49 -64
  156. package/esm2022/lib/figma/geo-upload/geo-upload.component.mjs +50 -101
  157. package/esm2022/lib/figma/index.mjs +50 -1
  158. package/esm2022/lib/styles/tokens.mjs +56 -24
  159. package/fesm2022/geoit-ui.mjs +5981 -1825
  160. package/fesm2022/geoit-ui.mjs.map +1 -1
  161. package/lib/figma/geo-alert/geo-alert.component.d.ts +10 -11
  162. package/lib/figma/geo-back-button/geo-back-button.component.d.ts +6 -7
  163. package/lib/figma/geo-breadcrumb/geo-breadcrumb.component.d.ts +2 -2
  164. package/lib/figma/geo-button/geo-button.component.d.ts +21 -17
  165. package/lib/figma/geo-chart/geo-chart.component.d.ts +40 -0
  166. package/lib/figma/geo-chart/geo-chart.types.d.ts +13 -0
  167. package/lib/figma/geo-checkbox/geo-checkbox.component.d.ts +6 -7
  168. package/lib/figma/geo-confirm-modal/geo-confirm-modal.component.d.ts +15 -17
  169. package/lib/figma/geo-dashboard/geo-dashboard.component.d.ts +29 -0
  170. package/lib/figma/geo-dashboard/geo-dashboard.types.d.ts +7 -0
  171. package/lib/figma/geo-date-picker/geo-date-picker.component.d.ts +26 -21
  172. package/lib/figma/geo-date-range-picker/geo-date-range-picker.component.d.ts +25 -20
  173. package/lib/figma/geo-empty-state/geo-empty-state.component.d.ts +17 -0
  174. package/lib/figma/geo-feedback-form/geo-feedback-form.component.d.ts +36 -0
  175. package/lib/figma/geo-feedback-form/geo-feedback-form.types.d.ts +8 -0
  176. package/lib/figma/geo-file-picker/geo-file-picker.component.d.ts +23 -20
  177. package/lib/figma/geo-forgot-password/geo-forgot-password.component.d.ts +24 -0
  178. package/lib/figma/geo-form-modal/geo-form-modal.component.d.ts +33 -35
  179. package/lib/figma/geo-icon/geo-icon.component.d.ts +7 -7
  180. package/lib/figma/geo-input/geo-input.component.d.ts +23 -21
  181. package/lib/figma/geo-layout/footer/geo-layout-footer.component.d.ts +10 -0
  182. package/lib/figma/geo-layout/geo-layout-actions.directive.d.ts +6 -0
  183. package/lib/figma/geo-layout/geo-layout.component.d.ts +48 -0
  184. package/lib/figma/geo-layout/geo-layout.types.d.ts +44 -0
  185. package/lib/figma/geo-layout/header/geo-layout-header.component.d.ts +31 -0
  186. package/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.d.ts +32 -0
  187. package/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.d.ts +34 -0
  188. package/lib/figma/geo-list-page/geo-list-page.component.d.ts +16 -0
  189. package/lib/figma/geo-login/geo-login.component.d.ts +27 -0
  190. package/lib/figma/geo-login/geo-login.types.d.ts +6 -0
  191. package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +28 -0
  192. package/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.d.ts +26 -0
  193. package/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.d.ts +20 -0
  194. package/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.d.ts +15 -0
  195. package/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.d.ts +40 -0
  196. package/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.d.ts +25 -0
  197. package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +18 -0
  198. package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.d.ts +24 -0
  199. package/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.d.ts +14 -0
  200. package/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.d.ts +49 -0
  201. package/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.d.ts +30 -0
  202. package/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.d.ts +44 -0
  203. package/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.d.ts +56 -0
  204. package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +103 -0
  205. package/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.d.ts +21 -0
  206. package/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.d.ts +33 -0
  207. package/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.d.ts +30 -0
  208. package/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.d.ts +67 -0
  209. package/lib/figma/geo-map/geo-map-toolbar.icons.d.ts +17 -0
  210. package/lib/figma/geo-map/geo-map.component.d.ts +53 -0
  211. package/lib/figma/geo-map/geo-map.constants.d.ts +73 -0
  212. package/lib/figma/geo-map/geo-map.controller.d.ts +49 -0
  213. package/lib/figma/geo-map/geo-map.types.d.ts +224 -0
  214. package/lib/figma/geo-map/services/geo-map-layer.service.d.ts +42 -0
  215. package/lib/figma/geo-map/services/geo-map-projection.service.d.ts +32 -0
  216. package/lib/figma/geo-map/services/geo-map.service.d.ts +99 -0
  217. package/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.d.ts +13 -0
  218. package/lib/figma/geo-map/utils/geo-map-interactions.util.d.ts +9 -0
  219. package/lib/figma/geo-overlap-result/geo-overlap-result.component.d.ts +18 -0
  220. package/lib/figma/geo-overlap-result/geo-overlap-result.types.d.ts +7 -0
  221. package/lib/figma/geo-page-header/geo-page-header.component.d.ts +16 -0
  222. package/lib/figma/geo-page-title/geo-page-title.component.d.ts +9 -9
  223. package/lib/figma/geo-pagination/geo-pagination.component.d.ts +9 -14
  224. package/lib/figma/geo-radio/geo-radio.component.d.ts +17 -15
  225. package/lib/figma/geo-select/geo-select.component.d.ts +24 -19
  226. package/lib/figma/geo-slider/geo-slider.component.d.ts +7 -9
  227. package/lib/figma/geo-stat-card/geo-stat-card.component.d.ts +50 -0
  228. package/lib/figma/geo-stat-card/geo-stat-card.types.d.ts +11 -0
  229. package/lib/figma/geo-status-tag/geo-status-tag.component.d.ts +7 -7
  230. package/lib/figma/geo-step-form-layout/geo-step-form-layout.component.d.ts +27 -29
  231. package/lib/figma/geo-stepper/geo-stepper.component.d.ts +6 -8
  232. package/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.d.ts +6 -7
  233. package/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.d.ts +11 -12
  234. package/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.d.ts +21 -28
  235. package/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.d.ts +17 -20
  236. package/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.d.ts +17 -18
  237. package/lib/figma/geo-table/geo-table.component.d.ts +58 -62
  238. package/lib/figma/geo-tabs/geo-tabs.component.d.ts +14 -17
  239. package/lib/figma/geo-textarea/geo-textarea.component.d.ts +15 -13
  240. package/lib/figma/geo-toast/geo-toast.component.d.ts +11 -12
  241. package/lib/figma/geo-tree/geo-tree.component.d.ts +8 -13
  242. package/lib/figma/geo-typography/geo-typography.component.d.ts +13 -13
  243. package/lib/figma/geo-upload/geo-upload.component.d.ts +26 -28
  244. package/lib/figma/index.d.ts +49 -0
  245. package/lib/styles/tokens.d.ts +56 -23
  246. package/package.json +4 -2
  247. package/src/lib/figma/geo-map/assets/toolbar/fullscreen.svg +8 -0
  248. package/src/lib/figma/geo-map/assets/toolbar/home.svg +3 -0
  249. package/src/lib/figma/geo-map/assets/toolbar/layers.svg +3 -0
  250. package/src/lib/figma/geo-map/assets/toolbar/measure-area.svg +12 -0
  251. package/src/lib/figma/geo-map/assets/toolbar/measure-distance.svg +5 -0
  252. package/src/lib/figma/geo-map/assets/toolbar/pan.svg +13 -0
  253. package/src/lib/figma/geo-map/assets/toolbar/search.svg +3 -0
  254. package/src/lib/figma/geo-map/assets/toolbar/zoom-in.svg +3 -0
  255. package/src/lib/figma/geo-map/assets/toolbar/zoom-out.svg +5 -0
  256. package/src/lib/styles/design-tokens.scss +108 -35
  257. package/src/lib/styles/scrollbar.scss +2 -2
  258. package/src/lib/styles/theme.scss +1 -1
@@ -0,0 +1,74 @@
1
+ # geo-map-legend
2
+
3
+ > Complete usage reference for **GeoMapLegendComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Map legend popover / panel with color swatches.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapLegendComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapLegendComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-legend`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Show thematic legend; geo-map-shell includes this.
30
+
31
+ ## Do not use when
32
+ Non-map legends in dashboards — use static markup / geo-status-tag.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `title` | `string` | `'Chú giải'` | — |
46
+ | `items` | `GeoMapLegendItem[]` | `[]` | — |
47
+ | `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
48
+
49
+ ## Outputs
50
+
51
+ | Output | Payload | Description |
52
+ |--------|---------|-------------|
53
+ | `closed` | `OutputEmitterRef<void>` | — |
54
+
55
+
56
+ ## Examples
57
+
58
+ ### Example
59
+
60
+ ```html
61
+ <geo-map-legend [(open)]="legendOpen" [items]="legendItems"></geo-map-legend>
62
+ ```
63
+
64
+ ## Package path
65
+ `node_modules/@geoit/ui/ai/components/geo-map-legend.md`
66
+
67
+ ## Source
68
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.ts`
69
+
70
+ ## Rules for AI / consumers
71
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
72
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
73
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
74
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,75 @@
1
+ # geo-map-locate
2
+
3
+ > Complete usage reference for **GeoMapLocateComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Geolocation button (browser GPS) for the map view.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapLocateComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapLocateComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-locate`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Locate-me control on custom map chrome.
30
+
31
+ ## Do not use when
32
+ Inside geo-map-shell (already wired) unless building a custom shell.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `controller` | `GeoMapController \| null` | `null` | — |
46
+ | `label` | `string` | `'Vị trí của tôi'` | — |
47
+
48
+ ## Outputs
49
+
50
+ | Output | Payload | Description |
51
+ |--------|---------|-------------|
52
+ | `located` | `OutputEmitterRef<[number, number]>` | — |
53
+ | `denied` | `OutputEmitterRef<void>` | — |
54
+ | `locateError` | `OutputEmitterRef<{ reason: GeoMapLocateErrorReason; message?: string; }>` | — |
55
+
56
+
57
+ ## Examples
58
+
59
+ ### Example
60
+
61
+ ```html
62
+ <geo-map-locate [controller]="ctrl" (denied)="onDenied()"></geo-map-locate>
63
+ ```
64
+
65
+ ## Package path
66
+ `node_modules/@geoit/ui/ai/components/geo-map-locate.md`
67
+
68
+ ## Source
69
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.ts`
70
+
71
+ ## Rules for AI / consumers
72
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
73
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
74
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
75
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,71 @@
1
+ # geo-map-location-chip
2
+
3
+ > Complete usage reference for **GeoMapLocationChipComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Location breadcrumb chip shown on the map (ward / province).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapLocationChipComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapLocationChipComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-location-chip`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Show current admin context on map chrome.
30
+
31
+ ## Do not use when
32
+ Page breadcrumb — use geo-breadcrumb.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `label` | `string` | `''` | — |
46
+ | `icon` | `string` | `'environment'` | — |
47
+
48
+ ## Outputs
49
+
50
+ _None_
51
+
52
+
53
+ ## Examples
54
+
55
+ ### Example
56
+
57
+ ```html
58
+ <geo-map-location-chip label="Phường 1 — TP Đà Lạt, Lâm Đồng"></geo-map-location-chip>
59
+ ```
60
+
61
+ ## Package path
62
+ `node_modules/@geoit/ui/ai/components/geo-map-location-chip.md`
63
+
64
+ ## Source
65
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.ts`
66
+
67
+ ## Rules for AI / consumers
68
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
69
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
70
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
71
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,74 @@
1
+ # geo-map-measure
2
+
3
+ > Complete usage reference for **GeoMapMeasureComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Distance / area measure interaction on the map.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapMeasureComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapMeasureComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-measure`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Measure tool mode; usually driven by toolbar via geo-map-shell.
30
+
31
+ ## Do not use when
32
+ Static length labels without interaction.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `controller` | `GeoMapController \| null` | `null` | — |
46
+ | `mode` | `GeoMapMeasureMode` | `'none'` | Two-way `model()` (supports banana binding). |
47
+ | `showResult` | `boolean` | `true` | — |
48
+
49
+ ## Outputs
50
+
51
+ | Output | Payload | Description |
52
+ |--------|---------|-------------|
53
+ | `measureChange` | `OutputEmitterRef<GeoMapMeasureResult \| null>` | — |
54
+
55
+
56
+ ## Examples
57
+
58
+ ### Example
59
+
60
+ ```html
61
+ <geo-map-measure [controller]="ctrl" [(mode)]="measureMode"></geo-map-measure>
62
+ ```
63
+
64
+ ## Package path
65
+ `node_modules/@geoit/ui/ai/components/geo-map-measure.md`
66
+
67
+ ## Source
68
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.ts`
69
+
70
+ ## Rules for AI / consumers
71
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
72
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
73
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
74
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,75 @@
1
+ # geo-map-opacity
2
+
3
+ > Complete usage reference for **GeoMapOpacityComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Layer opacity slider bound to a map layer id.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapOpacityComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapOpacityComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-opacity`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Adjust overlay transparency in custom layer UI.
30
+
31
+ ## Do not use when
32
+ Full layer list — use geo-map-layer-panel / layers drawer.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `controller` | `GeoMapController \| null` | `null` | — |
46
+ | `title` | `string` | `'Độ trong suốt'` | — |
47
+ | `layerId` | `string \| null` | `null` | Two-way `model()` (supports banana binding). |
48
+ | `opacity` | `number` | `100` | Opacity percent 0–100. — Two-way `model()` (supports banana binding). |
49
+ | `variant` | `'panel' \| 'compact'` | `'panel'` | — |
50
+ | `applyToFirstLayer` | `boolean` | `true` | When compact and no layerId, apply to first non-basemap overlay. |
51
+
52
+ ## Outputs
53
+
54
+ _None_
55
+
56
+
57
+ ## Examples
58
+
59
+ ### Example
60
+
61
+ ```html
62
+ <geo-map-opacity [controller]="ctrl" layerId="demo-qhsdd-2020" [(opacity)]="opacity"></geo-map-opacity>
63
+ ```
64
+
65
+ ## Package path
66
+ `node_modules/@geoit/ui/ai/components/geo-map-opacity.md`
67
+
68
+ ## Source
69
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.ts`
70
+
71
+ ## Rules for AI / consumers
72
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
73
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
74
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
75
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,84 @@
1
+ # geo-map-parcel-popup
2
+
3
+ > Complete usage reference for **GeoMapParcelPopupComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Parcel detail popup (citizen / specialist audience).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapParcelPopupComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapParcelPopupComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-parcel-popup`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Show thửa detail after search or map click.
30
+
31
+ ## Do not use when
32
+ Full detail page — navigate to a route instead.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
46
+ | `title` | `string` | `'Thông tin thửa đất'` | — |
47
+ | `parcel` | `GeoMapParcelDetail \| null` | `null` | — |
48
+ | `audience` | `GeoMapParcelAudience` | `'citizen'` | — |
49
+ | `showExport` | `boolean` | `false` | Giữ tương thích API cũ; footer xuất file không còn trong layout thiết kế. |
50
+
51
+ ## Outputs
52
+
53
+ | Output | Payload | Description |
54
+ |--------|---------|-------------|
55
+ | `closed` | `OutputEmitterRef<void>` | — |
56
+ | `back` | `OutputEmitterRef<void>` | — |
57
+ | `exportClick` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
58
+ | `diagramClick` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
59
+
60
+
61
+ ## Examples
62
+
63
+ ### Example
64
+
65
+ ```html
66
+ <geo-map-parcel-popup
67
+ [(open)]="parcelOpen"
68
+ [parcel]="selected"
69
+ audience="citizen"
70
+ (exportClick)="exportPdf($event)"
71
+ ></geo-map-parcel-popup>
72
+ ```
73
+
74
+ ## Package path
75
+ `node_modules/@geoit/ui/ai/components/geo-map-parcel-popup.md`
76
+
77
+ ## Source
78
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.ts`
79
+
80
+ ## Rules for AI / consumers
81
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
82
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
83
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
84
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,89 @@
1
+ # geo-map-search
2
+
3
+ > Complete usage reference for **GeoMapSearchComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Map search panel (owner / certificate / parcel / address / coordinates).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapSearchComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapSearchComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-search`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Tra cứu thửa on portal; prefer via geo-map-shell.
30
+
31
+ ## Do not use when
32
+ Global app search unrelated to map.
33
+
34
+
35
+ ## Binding
36
+
37
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
38
+
39
+ ## Inputs
40
+
41
+ Every supported Input (do not invent others):
42
+
43
+ | Input | Type | Default | Description |
44
+ |-------|------|---------|-------------|
45
+ | `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
46
+ | `title` | `string` | `'Tra cứu thông tin quy hoạch theo'` | — |
47
+ | `mode` | `GeoMapSearchMode` | `'parcel'` | Two-way `model()` (supports banana binding). |
48
+ | `results` | `GeoMapSearchResultItem[]` | `[]` | — |
49
+ | `loading` | `boolean` | `false` | — |
50
+ | `pageIndex` | `number` | `1` | Two-way `model()` (supports banana binding). |
51
+ | `pageSize` | `number` | `5` | Two-way `model()` (supports banana binding). |
52
+ | `total` | `number` | `0` | — |
53
+ | `emptyText` | `string` | `'Chưa có kết quả tra cứu.'` | — |
54
+
55
+ ## Outputs
56
+
57
+ | Output | Payload | Description |
58
+ |--------|---------|-------------|
59
+ | `search` | `OutputEmitterRef<GeoMapSearchQuery>` | — |
60
+ | `reset` | `OutputEmitterRef<void>` | — |
61
+ | `resultSelect` | `OutputEmitterRef<GeoMapSearchResultItem>` | — |
62
+ | `closed` | `OutputEmitterRef<void>` | — |
63
+
64
+
65
+ ## Examples
66
+
67
+ ### Example
68
+
69
+ ```html
70
+ <geo-map-search
71
+ [(open)]="searchOpen"
72
+ mode="parcel"
73
+ [results]="results"
74
+ (search)="runSearch($event)"
75
+ (resultSelect)="onSelect($event)"
76
+ ></geo-map-search>
77
+ ```
78
+
79
+ ## Package path
80
+ `node_modules/@geoit/ui/ai/components/geo-map-search.md`
81
+
82
+ ## Source
83
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.ts`
84
+
85
+ ## Rules for AI / consumers
86
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
87
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
88
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
89
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,146 @@
1
+ # geo-map-shell
2
+
3
+ > Complete usage reference for **GeoMapShellComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Full map portal chrome: search, ĐVHC, layers, legend, measure, basemap, parcel popup.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapShellComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapShellComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-shell`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Public / specialist map portal pages (tra cứu quy hoạch). Prefer this over composing chrome by hand.
30
+
31
+ ## Do not use when
32
+ Bare map embed without UI chrome — use geo-map only.
33
+
34
+ ## How to use
35
+
36
+ Shell portal tra cứu: gắn height + layers API; tắt demoSearch trên production. Lắng nghe (search)/(resultSelect)/(parcelExport). Models [(searchOpen)], [(layersOpen)], … để điều khiển panel từ ngoài.
37
+
38
+ ## Binding
39
+
40
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
41
+
42
+ ## Inputs
43
+
44
+ Every supported Input (do not invent others):
45
+
46
+ | Input | Type | Default | Description |
47
+ |-------|------|---------|-------------|
48
+ | `center` | `number[]` | `[...GEO_MAP_DEFAULT_CENTER]` | — |
49
+ | `zoom` | — | `GEO_MAP_DEFAULT_ZOOM` | — |
50
+ | `height` | `string` | `'560px'` | — |
51
+ | `showMousePosition` | `boolean` | `false` | — |
52
+ | `basemapOptions` | `GeoMapBasemapOption[]` | `GEO_MAP_DEFAULT_BASEMAP_OPTIONS` | — |
53
+ | `toolbarActions` | `GeoMapToolbarAction[]` | `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS` | — |
54
+ | `layers` | `GeoMapLayerConfig[]` | `[]` | Extra overlays merged after demo thematic + traffic. |
55
+ | `legendItems` | `GeoMapLegendItem[]` | `GEO_MAP_DEMO_LEGEND_ITEMS` | — |
56
+ | `showNav` | `boolean` | `true` | — |
57
+ | `includeDemoLayers` | `boolean` | `true` | — |
58
+ | `adminNodes` | `GeoTreeNode[]` | `GEO_MAP_DEMO_ADMIN_NODES` | — |
59
+ | `locationLabel` | `string` | `'Phường 1 — TP Đà Lạt, Lâm Đồng'` | — |
60
+ | `parcelAudience` | `GeoMapParcelAudience` | `'citizen'` | — |
61
+ | `provinceExtent` | `readonly [number, number, number, number]` | `GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326` | — |
62
+ | `demoSearch` | `boolean` | `true` | When true, shell seeds mock search results (Storybook / demos). |
63
+ | `homeMode` | `'location' \| 'emit'` | `'location'` | `location` — Home opens ĐVHC filter (default). `emit` — Home only emits `actionClick` (e.g. portal navigates to login/dashboard). |
64
+ | `basemapId` | `string` | `'osm'` | Two-way `model()` (supports banana binding). |
65
+ | `measureMode` | `GeoMapMeasureMode` | `'none'` | Two-way `model()` (supports banana binding). |
66
+ | `checkedMap` | `Record<string, boolean>` | — | Two-way `model()` (supports banana binding). |
67
+ | `layersOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
68
+ | `legendOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
69
+ | `helpOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
70
+ | `swipeActive` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
71
+ | `searchOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
72
+ | `adminFilterOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
73
+ | `parcelOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
74
+ | `managedLayers` | `GeoMapLayerConfig[]` | `[]` | Two-way `model()` (supports banana binding). |
75
+ | `searchResults` | `GeoMapSearchResultItem[]` | `[]` | Two-way `model()` (supports banana binding). |
76
+ | `selectedParcel` | `GeoMapParcelDetail \| null` | `null` | Two-way `model()` (supports banana binding). |
77
+ | `adminCheckedKeys` | `Array<string \| number>` | `[]` | Two-way `model()` (supports banana binding). |
78
+ | `adminExpandedKeys` | `Array<string \| number>` | `['lam-dong']` | Two-way `model()` (supports banana binding). |
79
+
80
+ ## Outputs
81
+
82
+ | Output | Payload | Description |
83
+ |--------|---------|-------------|
84
+ | `mapReady` | `OutputEmitterRef<GeoMapController>` | — |
85
+ | `mapClick` | `OutputEmitterRef<GeoMapClickEvent>` | — |
86
+ | `locateDenied` | `OutputEmitterRef<void>` | — |
87
+ | `actionClick` | `OutputEmitterRef<GeoMapToolbarAction>` | — |
88
+ | `search` | `OutputEmitterRef<GeoMapSearchQuery>` | — |
89
+ | `searchReset` | `OutputEmitterRef<void>` | — |
90
+ | `resultSelect` | `OutputEmitterRef<GeoMapSearchResultItem>` | — |
91
+ | `parcelExport` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
92
+ | `adminApply` | `OutputEmitterRef<Array<string \| number>>` | — |
93
+
94
+
95
+ ## Examples
96
+
97
+ ### Basic portal
98
+
99
+ ```html
100
+ <geo-map-shell
101
+ height="640px"
102
+ [demoSearch]="false"
103
+ parcelAudience="citizen"
104
+ [layers]="layers"
105
+ (mapReady)="ctrl = $event"
106
+ (search)="onSearch($event)"
107
+ ></geo-map-shell>
108
+ ```
109
+
110
+ ### Open search panel
111
+
112
+ ```html
113
+ <geo-map-shell
114
+ height="640px"
115
+ [demoSearch]="false"
116
+ [(searchOpen)]="searchOpen"
117
+ [(searchResults)]="results"
118
+ (search)="runQuery($event)"
119
+ (resultSelect)="onResult($event)"
120
+ ></geo-map-shell>
121
+ ```
122
+
123
+ ## Tips
124
+
125
+ - Ưu tiên geo-map-shell thay vì tự ghép chrome.
126
+ - Peers bắt buộc: ol, proj4.
127
+ - demoSearch=true chỉ cho Storybook/demo — production phải false + API thật.
128
+ - parcelAudience: citizen | specialist.
129
+ - Đọc geo-map.md cho layer types / projections.
130
+ ## Related components
131
+
132
+ - [`geo-map`](./geo-map.md)
133
+ - [`geo-map-search`](./geo-map-search.md)
134
+ - [`geo-map-toolbar`](./geo-map-toolbar.md)
135
+ - [`geo-map-layers-drawer`](./geo-map-layers-drawer.md)
136
+ ## Package path
137
+ `node_modules/@geoit/ui/ai/components/geo-map-shell.md`
138
+
139
+ ## Source
140
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.ts`
141
+
142
+ ## Rules for AI / consumers
143
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
144
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
145
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
146
+ - Copy examples and adapt labels/bindings only.