@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,75 @@
1
+ # geo-map-snapshot
2
+
3
+ > Complete usage reference for **GeoMapSnapshotComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Capture current map canvas to image / download.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapSnapshotComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapSnapshotComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-snapshot`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Export screenshot control on map chrome.
30
+
31
+ ## Do not use when
32
+ Server-side tile export pipelines.
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` | `'Chụp ảnh bản đồ'` | — |
47
+ | `filename` | `string` | `'ban-do.png'` | — |
48
+
49
+ ## Outputs
50
+
51
+ | Output | Payload | Description |
52
+ |--------|---------|-------------|
53
+ | `captured` | `OutputEmitterRef<void>` | — |
54
+ | `captureError` | `OutputEmitterRef<unknown>` | — |
55
+
56
+
57
+ ## Examples
58
+
59
+ ### Example
60
+
61
+ ```html
62
+ <geo-map-snapshot [controller]="ctrl" (captured)="onShot($event)"></geo-map-snapshot>
63
+ ```
64
+
65
+ ## Package path
66
+ `node_modules/@geoit/ui/ai/components/geo-map-snapshot.md`
67
+
68
+ ## Source
69
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.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,73 @@
1
+ # geo-map-swipe
2
+
3
+ > Complete usage reference for **GeoMapSwipeComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Swipe compare control between two map layers.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapSwipeComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapSwipeComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-swipe`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Before/after planning vs current-use comparison.
30
+
31
+ ## Do not use when
32
+ Simple opacity blend — use geo-map-opacity.
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
+ | `active` | `boolean` | `false` | When true, swipe mode is on. — Two-way `model()` (supports banana binding). |
47
+ | `position` | `number` | `50` | 0–100, left portion shows clipped overlay. — Two-way `model()` (supports banana binding). |
48
+ | `layerId` | `string \| null` | `null` | Optional explicit overlay layer id; defaults to top visible non-basemap. |
49
+
50
+ ## Outputs
51
+
52
+ _None_
53
+
54
+
55
+ ## Examples
56
+
57
+ ### Example
58
+
59
+ ```html
60
+ <geo-map-swipe [controller]="ctrl" [(active)]="swipeOn" layerId="demo-qhsdd-2020"></geo-map-swipe>
61
+ ```
62
+
63
+ ## Package path
64
+ `node_modules/@geoit/ui/ai/components/geo-map-swipe.md`
65
+
66
+ ## Source
67
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.ts`
68
+
69
+ ## Rules for AI / consumers
70
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
71
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
72
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
73
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,81 @@
1
+ # geo-map-toolbar
2
+
3
+ > Complete usage reference for **GeoMapToolbarComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Vertical map tool strip (search, pan, measure, layers, …).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapToolbarComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapToolbarComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-toolbar`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Custom map layouts; usually included inside geo-map-shell.
30
+
31
+ ## Do not use when
32
+ Full portal — use geo-map-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
+ | `actions` | `GeoMapToolbarAction[]` | `[]` | When empty, uses built-in portal action set. |
47
+ | `compact` | `boolean` | `false` | — |
48
+ | `checkedMap` | `Record<string, boolean>` | — | Two-way checked map keyed by action id (for checkbox-style actions). — Two-way `model()` (supports banana binding). |
49
+
50
+ ## Outputs
51
+
52
+ | Output | Payload | Description |
53
+ |--------|---------|-------------|
54
+ | `actionClick` | `OutputEmitterRef<GeoMapToolbarAction>` | — |
55
+ | `actionToggle` | `OutputEmitterRef<{ action: GeoMapToolbarAction; checked: boolean; }>` | — |
56
+
57
+
58
+ ## Examples
59
+
60
+ ### Example
61
+
62
+ ```html
63
+ <geo-map-toolbar
64
+ [controller]="ctrl"
65
+ [actions]="actions"
66
+ [(checkedMap)]="checked"
67
+ (actionClick)="onTool($event)"
68
+ ></geo-map-toolbar>
69
+ ```
70
+
71
+ ## Package path
72
+ `node_modules/@geoit/ui/ai/components/geo-map-toolbar.md`
73
+
74
+ ## Source
75
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.ts`
76
+
77
+ ## Rules for AI / consumers
78
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
79
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
80
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
81
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,74 @@
1
+ # geo-map-zoom
2
+
3
+ > Complete usage reference for **GeoMapZoomComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Zoom +/- and optional province / home navigation control.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapZoomComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapZoomComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map-zoom`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Custom map chrome; geo-map-shell embeds this.
30
+
31
+ ## Do not use when
32
+ Relying on OpenLayers built-in zoom alone is fine for bare geo-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
+ | `controller` | `GeoMapController \| null` | `null` | — |
46
+ | `showNav` | `boolean` | `true` | Show prev / next zoom + fullscreen + box zoom (UC-15). |
47
+ | `showFitProvince` | `boolean` | `true` | Show “xem toàn tỉnh” (TCQH.14 GD5) — fit province extent, not fullscreen. |
48
+ | `provinceExtent` | `readonly [number, number, number, number] \| null` | `null` | Province extent in EPSG:4326. Defaults to Lâm Đồng placeholder when omitted. |
49
+ | `fullscreenTarget` | `HTMLElement \| null` | `null` | Element to put in Fullscreen API. Defaults to closest `.geo-map-shell`, then the OL map target. |
50
+
51
+ ## Outputs
52
+
53
+ _None_
54
+
55
+
56
+ ## Examples
57
+
58
+ ### Example
59
+
60
+ ```html
61
+ <geo-map-zoom [controller]="ctrl" [showNav]="true"></geo-map-zoom>
62
+ ```
63
+
64
+ ## Package path
65
+ `node_modules/@geoit/ui/ai/components/geo-map-zoom.md`
66
+
67
+ ## Source
68
+ `projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.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,212 @@
1
+ # geo-map
2
+
3
+ > Complete usage reference for **GeoMapComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ OpenLayers map host with basemap, typed layers, and GeoMapController.
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoMapComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoMapComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-map`
24
+
25
+ ## Category
26
+ `map`
27
+
28
+ ## When to use
29
+ Any map viewport (portal quy hoạch, tra cứu thửa). Peers: ol, proj4.
30
+
31
+ ## Do not use when
32
+ Full portal chrome — prefer geo-map-shell; non-map charts — use geo-chart.
33
+
34
+ ## How to use
35
+
36
+ Host OpenLayers thuần. (mapReady) nhận GeoMapController để zoom/fit/addLayer. Layers typed (osm/xyz/wms/wmts/geojson). Projections tùy chỉnh qua [projections] — không invent VN-2000.
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]` | Map center in view projection (default Web Mercator Đà Lạt area). |
49
+ | `zoom` | — | `GEO_MAP_DEFAULT_ZOOM` | — |
50
+ | `minZoom` | — | `GEO_MAP_DEFAULT_MIN_ZOOM` | — |
51
+ | `maxZoom` | — | `GEO_MAP_DEFAULT_MAX_ZOOM` | — |
52
+ | `viewProjection` | — | `GEO_MAP_DEFAULT_VIEW_PROJECTION` | — |
53
+ | `basemap` | `'osm' \| { type: 'xyz'` | `'osm'` | — |
54
+ | `layers` | `(\| GeoMapOsmLayerConfig \| GeoMapXyzLayerConfig \| GeoMapWmsLayerConfig \| GeoMapWmtsLayerConfig \| G…` | `[]` | — |
55
+ | `height` | — | `GEO_MAP_DEFAULT_HEIGHT` | — |
56
+ | `registerProjections` | `boolean` | `true` | When true, custom projections listed in `projections` are registered before map create. Built-in EPSG:4326 / EPSG:3857 never need registration. VN-2000 definitions must be supplied via `projections` — never invented. |
57
+ | `projections` | `ProjectionConfig[]` | `[]` | Custom CRS definitions (e.g. local VN-2000 from environment). |
58
+ | `showMousePosition` | `boolean` | `false` | — |
59
+ | `mousePositionProjection` | `string` | `'EPSG:4326'` | — |
60
+ | `showZoomControl` | `boolean` | `true` | When false, hide built-in OL zoom control (prefer `geo-map-zoom`). |
61
+
62
+ ## Outputs
63
+
64
+ | Output | Payload | Description |
65
+ |--------|---------|-------------|
66
+ | `mapReady` | `OutputEmitterRef<GeoMapController>` | — |
67
+ | `mapClick` | `OutputEmitterRef<GeoMapClickEvent>` | — |
68
+ | `viewChange` | `OutputEmitterRef<GeoMapViewChangeEvent>` | — |
69
+ | `initError` | `OutputEmitterRef<string>` | — |
70
+
71
+ ## Related types
72
+
73
+ From `figma/geo-map/geo-map.types.ts`:
74
+
75
+ ```ts
76
+ export interface ProjectionConfig {
77
+ code: string;
78
+ /** Full proj4 definition string. Must be supplied by env/API — never invent VN-2000 params. */
79
+ definition: string;
80
+ extent?: [number, number, number, number];
81
+ units?: string;
82
+ }
83
+
84
+ export interface GeoMapLayerBase {
85
+ id: string;
86
+ title: string;
87
+ visible?: boolean;
88
+ /** 0–1 */
89
+ opacity?: number;
90
+ zIndex?: number;
91
+ minZoom?: number;
92
+ maxZoom?: number;
93
+ /** Treat as basemap (only one active at a time). */
94
+ basemap?: boolean;
95
+ /** Group key for layer panel sections (`base-map`, `qhsdd`, …). */
96
+ group?: string;
97
+ /** Display title for the group accordion (falls back to group key). */
98
+ groupLabel?: string;
99
+ /** Selection UX within the group: radio (`single`) or checkbox (`multi`). */
100
+ groupSelection?: 'single' | 'multi';
101
+ /** Eligible for identify / GetFeatureInfo. */
102
+ queryable?: boolean;
103
+ legendUrl?: string;
104
+ projection?: string;
105
+ metadata?: Record<string, unknown>;
106
+ }
107
+
108
+ export interface GeoMapOsmLayerConfig extends GeoMapLayerBase {
109
+ type: 'osm';
110
+ }
111
+
112
+ export interface GeoMapXyzLayerConfig extends GeoMapLayerBase {
113
+ type: 'xyz';
114
+ url: string;
115
+ attributions?: string | string[];
116
+ maxZoom?: number;
117
+ crossOrigin?: string | null;
118
+ }
119
+
120
+ export interface GeoMapWmsLayerConfig extends GeoMapLayerBase {
121
+ type: 'wms';
122
+ url: string;
123
+ params: Record<string, string | number | boolean>;
124
+ serverType?: 'geoserver' | 'mapserver' | 'qgis' | 'carmentaserver';
125
+ crossOrigin?: string | null;
126
+ /** Optional WMS layer name when not only in `params.LAYERS`. */
127
+ layerName?: string;
128
+ }
129
+
130
+ export interface GeoMapWmtsLayerConfig extends GeoMapLayerBase {
131
+ type: 'wmts';
132
+ url: string;
133
+ layer: string;
134
+ matrixSet: string;
135
+ format?: string;
136
+ style?: string;
137
+ projection?: string;
138
+ crossOrigin?: string | null;
139
+ }
140
+
141
+ export interface GeoMapGeoJsonLayerConfig extends GeoMapLayerBase {
142
+ type: 'geojson';
143
+ /** Inline GeoJSON object or URL string. */
144
+ data: object | string;
145
+ dataProjection?: string;
146
+ featureProjection?: string;
147
+ }
148
+
149
+ export interface GeoMapVectorLayerConfig extends GeoMapLayerBase {
150
+ type: 'vector';
151
+ /** Pre-built OL features (app-owned). */
152
+ features?: Feature<Geometry>[];
153
+ }
154
+
155
+ export interface GeoMapBasemapOption {
156
+ id: string;
157
+ label: string;
158
+ basemap: GeoMapBasemap;
159
+ previewUrl?: string;
160
+ }
161
+
162
+ export interface GeoMapClickEvent {
163
+ /** Coordinate in view projection. */
164
+ coordinate: number[];
165
+ /** Lon/lat (EPSG:4326) as [longitude, latitude]. */
166
+ lonLat: [number, number];
167
+ pixel: [number, number];
168
+ originalEvent: UIEvent;
169
+ }
170
+
171
+ export interface GeoMapViewChangeEvent {
172
+ center: number[];
173
+ zoom: number;
174
+ resolution: number;
175
+ rotation: number;
176
+ }
177
+
178
+ export interface GeoMapLayerVisibilityChange {
179
+ layerId: string;
180
+ visible: boolean;
181
+ }
182
+ ```
183
+
184
+ ## Examples
185
+
186
+ ### Basic
187
+
188
+ ```html
189
+ <geo-map height="480px" basemap="osm" [center]="[108.45, 11.94]" [zoom]="12" (mapReady)="ctrl = $event"></geo-map>
190
+ ```
191
+
192
+ ## Tips
193
+
194
+ - Portal đầy đủ → geo-map-shell.
195
+ - showZoomControl=false khi dùng geo-map-zoom riêng.
196
+ - Peers: ol, proj4.
197
+ ## Related components
198
+
199
+ - [`geo-map-shell`](./geo-map-shell.md)
200
+ - [`geo-map-zoom`](./geo-map-zoom.md)
201
+ - [`geo-map-toolbar`](./geo-map-toolbar.md)
202
+ ## Package path
203
+ `node_modules/@geoit/ui/ai/components/geo-map.md`
204
+
205
+ ## Source
206
+ `projects/geo-ui/src/lib/figma/geo-map/geo-map.component.ts`
207
+
208
+ ## Rules for AI / consumers
209
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
210
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
211
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
212
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,88 @@
1
+ # geo-overlap-result
2
+
3
+ > Complete usage reference for **GeoOverlapResultComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Overlap analysis result list (planning type, area, percent).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoOverlapResultComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoOverlapResultComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-overlap-result`
24
+
25
+ ## Category
26
+ `data`
27
+
28
+ ## When to use
29
+ Show giao cắt quy hoạch vs hiện trạng results.
30
+
31
+ ## Do not use when
32
+ Generic tables — use geo-table.
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` | `'Kết quả phân tích chồng lấn'` | — |
46
+ | `rows` | `GeoOverlapResultRow[]` | `[]` | — |
47
+ | `areaUnit` | `string` | `'m²'` | — |
48
+ | `emptyText` | `string` | `'Chưa có kết quả phân tích.'` | — |
49
+
50
+ ## Outputs
51
+
52
+ | Output | Payload | Description |
53
+ |--------|---------|-------------|
54
+ | `rowClick` | `OutputEmitterRef<GeoOverlapResultRow>` | — |
55
+
56
+ ## Related types
57
+
58
+ From `figma/geo-overlap-result/geo-overlap-result.types.ts`:
59
+
60
+ ```ts
61
+ export interface GeoOverlapResultRow {
62
+ id: string;
63
+ planningType: string;
64
+ intersectionArea: number | string;
65
+ percent: number | string;
66
+ color?: string;
67
+ }
68
+ ```
69
+
70
+ ## Examples
71
+
72
+ ### Example
73
+
74
+ ```html
75
+ <geo-overlap-result [rows]="rows" (rowClick)="focus($event)"></geo-overlap-result>
76
+ ```
77
+
78
+ ## Package path
79
+ `node_modules/@geoit/ui/ai/components/geo-overlap-result.md`
80
+
81
+ ## Source
82
+ `projects/geo-ui/src/lib/figma/geo-overlap-result/geo-overlap-result.component.ts`
83
+
84
+ ## Rules for AI / consumers
85
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
86
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
87
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
88
+ - Copy examples and adapt labels/bindings only.
@@ -0,0 +1,72 @@
1
+ # geo-page-header
2
+
3
+ > Complete usage reference for **GeoPageHeaderComponent** (`@geoit/ui`)
4
+ >
5
+ > Read this file before using the component. Use **only** the Inputs/Outputs listed here.
6
+
7
+ ## Summary
8
+ Compact page header block (title + optional actions slot).
9
+
10
+ ## Import
11
+
12
+ ```ts
13
+ import { GeoPageHeaderComponent } from '@geoit/ui';
14
+ ```
15
+
16
+ Add to the consuming standalone component:
17
+
18
+ ```ts
19
+ imports: [GeoPageHeaderComponent]
20
+ ```
21
+
22
+ ## Selector
23
+ `geo-page-header`
24
+
25
+ ## Category
26
+ `display`
27
+
28
+ ## When to use
29
+ Section headers on dashboard / list pages.
30
+
31
+ ## Do not use when
32
+ Full page title under breadcrumb — prefer geo-page-title.
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` | `''` | — |
46
+ | `breadcrumb` | `GeoBreadcrumbItem[]` | `[]` | — |
47
+ | `uppercase` | `boolean` | `true` | — |
48
+
49
+ ## Outputs
50
+
51
+ _None_
52
+
53
+
54
+ ## Examples
55
+
56
+ ### Example
57
+
58
+ ```html
59
+ <geo-page-header title="Thống kê nhanh"></geo-page-header>
60
+ ```
61
+
62
+ ## Package path
63
+ `node_modules/@geoit/ui/ai/components/geo-page-header.md`
64
+
65
+ ## Source
66
+ `projects/geo-ui/src/lib/figma/geo-page-header/geo-page-header.component.ts`
67
+
68
+ ## Rules for AI / consumers
69
+ - Prefer this component over raw ng-zorro / HTML for the same UI role.
70
+ - Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
71
+ - Match props exactly to the Inputs table; do not invent unsupported inputs.
72
+ - Copy examples and adapt labels/bindings only.
@@ -37,7 +37,7 @@ Tiêu đề trang chữ hoa + gạch nhấn primary. title + level 1–4; accent
37
37
 
38
38
  ## Binding
39
39
 
40
- Standalone presentational / container component — drive via Inputs and Outputs (no `ngModel` unless documented).
40
+ Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
41
41
 
42
42
  ## Inputs
43
43