@ojiepermana/angular 21.3.0 → 21.3.4

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 (442) hide show
  1. package/README.md +76 -12
  2. package/component/accordion/package.json +4 -0
  3. package/component/alert/package.json +4 -0
  4. package/component/alert-dialog/package.json +4 -0
  5. package/component/aspect-ratio/package.json +4 -0
  6. package/component/avatar/package.json +4 -0
  7. package/component/badge/package.json +4 -0
  8. package/component/breadcrumb/package.json +4 -0
  9. package/component/button/package.json +4 -0
  10. package/component/button-group/package.json +4 -0
  11. package/component/calendar/package.json +4 -0
  12. package/component/card/package.json +4 -0
  13. package/component/carousel/package.json +4 -0
  14. package/component/chart/area/package.json +4 -0
  15. package/component/chart/bar/package.json +4 -0
  16. package/component/chart/line/package.json +4 -0
  17. package/component/chart/package.json +4 -0
  18. package/component/chart/pie/package.json +4 -0
  19. package/component/chart/radar/package.json +4 -0
  20. package/component/chart/radial/package.json +4 -0
  21. package/component/chart/scatter/package.json +4 -0
  22. package/component/checkbox/package.json +4 -0
  23. package/component/collapsible/package.json +4 -0
  24. package/component/combobox/package.json +4 -0
  25. package/component/command/package.json +4 -0
  26. package/component/context-menu/package.json +4 -0
  27. package/component/date-picker/package.json +4 -0
  28. package/component/dialog/package.json +4 -0
  29. package/component/drawer/package.json +4 -0
  30. package/component/dropdown-menu/package.json +4 -0
  31. package/component/form/package.json +4 -0
  32. package/component/input/package.json +4 -0
  33. package/component/input-group/package.json +4 -0
  34. package/component/item/package.json +4 -0
  35. package/component/label/package.json +4 -0
  36. package/component/pagination/package.json +4 -0
  37. package/component/popover/package.json +4 -0
  38. package/component/progress/package.json +4 -0
  39. package/component/radio/package.json +4 -0
  40. package/component/scroll-area/package.json +4 -0
  41. package/component/select/package.json +4 -0
  42. package/component/separator/package.json +4 -0
  43. package/component/sheet/package.json +4 -0
  44. package/component/skeleton/package.json +4 -0
  45. package/component/slider/package.json +4 -0
  46. package/component/switch/package.json +4 -0
  47. package/component/table/package.json +4 -0
  48. package/component/tabs/package.json +4 -0
  49. package/component/textarea/package.json +4 -0
  50. package/component/toast/package.json +4 -0
  51. package/component/tooltip/package.json +4 -0
  52. package/component/utils/package.json +4 -0
  53. package/fesm2022/{ojiepermana-angular-ui-component-accordion.mjs → ojiepermana-angular-component-accordion.mjs} +1 -1
  54. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +1 -0
  55. package/fesm2022/{ojiepermana-angular-ui-component-alert-dialog.mjs → ojiepermana-angular-component-alert-dialog.mjs} +1 -1
  56. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +1 -0
  57. package/fesm2022/{ojiepermana-angular-ui-component-alert.mjs → ojiepermana-angular-component-alert.mjs} +1 -1
  58. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +1 -0
  59. package/fesm2022/{ojiepermana-angular-ui-component-aspect-ratio.mjs → ojiepermana-angular-component-aspect-ratio.mjs} +1 -1
  60. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +1 -0
  61. package/fesm2022/{ojiepermana-angular-ui-component-avatar.mjs → ojiepermana-angular-component-avatar.mjs} +1 -1
  62. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +1 -0
  63. package/fesm2022/{ojiepermana-angular-ui-component-badge.mjs → ojiepermana-angular-component-badge.mjs} +1 -1
  64. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +1 -0
  65. package/fesm2022/{ojiepermana-angular-ui-component-breadcrumb.mjs → ojiepermana-angular-component-breadcrumb.mjs} +1 -1
  66. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +1 -0
  67. package/fesm2022/{ojiepermana-angular-ui-component-button-group.mjs → ojiepermana-angular-component-button-group.mjs} +1 -1
  68. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +1 -0
  69. package/fesm2022/{ojiepermana-angular-ui-component-button.mjs → ojiepermana-angular-component-button.mjs} +1 -1
  70. package/fesm2022/ojiepermana-angular-component-button.mjs.map +1 -0
  71. package/fesm2022/{ojiepermana-angular-ui-component-calendar.mjs → ojiepermana-angular-component-calendar.mjs} +1 -1
  72. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +1 -0
  73. package/fesm2022/{ojiepermana-angular-ui-component-card.mjs → ojiepermana-angular-component-card.mjs} +1 -1
  74. package/fesm2022/ojiepermana-angular-component-card.mjs.map +1 -0
  75. package/fesm2022/{ojiepermana-angular-ui-component-carousel.mjs → ojiepermana-angular-component-carousel.mjs} +1 -1
  76. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +1 -0
  77. package/fesm2022/{ojiepermana-angular-ui-component-chart-area.mjs → ojiepermana-angular-component-chart-area.mjs} +1 -1
  78. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +1 -0
  79. package/fesm2022/{ojiepermana-angular-ui-component-chart-bar.mjs → ojiepermana-angular-component-chart-bar.mjs} +1 -1
  80. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +1 -0
  81. package/fesm2022/{ojiepermana-angular-ui-component-chart-line.mjs → ojiepermana-angular-component-chart-line.mjs} +1 -1
  82. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +1 -0
  83. package/fesm2022/{ojiepermana-angular-ui-component-chart-pie.mjs → ojiepermana-angular-component-chart-pie.mjs} +1 -1
  84. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +1 -0
  85. package/fesm2022/{ojiepermana-angular-ui-component-chart-radar.mjs → ojiepermana-angular-component-chart-radar.mjs} +1 -1
  86. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +1 -0
  87. package/fesm2022/{ojiepermana-angular-ui-component-chart-radial.mjs → ojiepermana-angular-component-chart-radial.mjs} +1 -1
  88. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +1 -0
  89. package/fesm2022/{ojiepermana-angular-ui-component-chart-scatter.mjs → ojiepermana-angular-component-chart-scatter.mjs} +1 -1
  90. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +1 -0
  91. package/fesm2022/{ojiepermana-angular-ui-component-chart.mjs → ojiepermana-angular-component-chart.mjs} +1 -1
  92. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +1 -0
  93. package/fesm2022/{ojiepermana-angular-ui-component-checkbox.mjs → ojiepermana-angular-component-checkbox.mjs} +1 -1
  94. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +1 -0
  95. package/fesm2022/{ojiepermana-angular-ui-component-collapsible.mjs → ojiepermana-angular-component-collapsible.mjs} +1 -1
  96. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +1 -0
  97. package/fesm2022/{ojiepermana-angular-ui-component-combobox.mjs → ojiepermana-angular-component-combobox.mjs} +1 -1
  98. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +1 -0
  99. package/fesm2022/{ojiepermana-angular-ui-component-command.mjs → ojiepermana-angular-component-command.mjs} +1 -1
  100. package/fesm2022/ojiepermana-angular-component-command.mjs.map +1 -0
  101. package/fesm2022/{ojiepermana-angular-ui-component-context-menu.mjs → ojiepermana-angular-component-context-menu.mjs} +1 -1
  102. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +1 -0
  103. package/fesm2022/{ojiepermana-angular-ui-component-date-picker.mjs → ojiepermana-angular-component-date-picker.mjs} +1 -1
  104. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +1 -0
  105. package/fesm2022/{ojiepermana-angular-ui-component-dialog.mjs → ojiepermana-angular-component-dialog.mjs} +1 -1
  106. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +1 -0
  107. package/fesm2022/{ojiepermana-angular-ui-component-drawer.mjs → ojiepermana-angular-component-drawer.mjs} +1 -1
  108. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +1 -0
  109. package/fesm2022/{ojiepermana-angular-ui-component-dropdown-menu.mjs → ojiepermana-angular-component-dropdown-menu.mjs} +1 -1
  110. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +1 -0
  111. package/fesm2022/{ojiepermana-angular-ui-component-form.mjs → ojiepermana-angular-component-form.mjs} +1 -1
  112. package/fesm2022/ojiepermana-angular-component-form.mjs.map +1 -0
  113. package/fesm2022/{ojiepermana-angular-ui-component-input-group.mjs → ojiepermana-angular-component-input-group.mjs} +1 -1
  114. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +1 -0
  115. package/fesm2022/{ojiepermana-angular-ui-component-input.mjs → ojiepermana-angular-component-input.mjs} +1 -1
  116. package/fesm2022/ojiepermana-angular-component-input.mjs.map +1 -0
  117. package/fesm2022/{ojiepermana-angular-ui-component-item.mjs → ojiepermana-angular-component-item.mjs} +1 -1
  118. package/fesm2022/ojiepermana-angular-component-item.mjs.map +1 -0
  119. package/fesm2022/{ojiepermana-angular-ui-component-label.mjs → ojiepermana-angular-component-label.mjs} +1 -1
  120. package/fesm2022/ojiepermana-angular-component-label.mjs.map +1 -0
  121. package/fesm2022/{ojiepermana-angular-ui-component-pagination.mjs → ojiepermana-angular-component-pagination.mjs} +1 -1
  122. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +1 -0
  123. package/fesm2022/{ojiepermana-angular-ui-component-popover.mjs → ojiepermana-angular-component-popover.mjs} +1 -1
  124. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +1 -0
  125. package/fesm2022/{ojiepermana-angular-ui-component-progress.mjs → ojiepermana-angular-component-progress.mjs} +1 -1
  126. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +1 -0
  127. package/fesm2022/{ojiepermana-angular-ui-component-radio.mjs → ojiepermana-angular-component-radio.mjs} +1 -1
  128. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +1 -0
  129. package/fesm2022/{ojiepermana-angular-ui-component-scroll-area.mjs → ojiepermana-angular-component-scroll-area.mjs} +1 -1
  130. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +1 -0
  131. package/fesm2022/{ojiepermana-angular-ui-component-select.mjs → ojiepermana-angular-component-select.mjs} +1 -1
  132. package/fesm2022/ojiepermana-angular-component-select.mjs.map +1 -0
  133. package/fesm2022/{ojiepermana-angular-ui-component-separator.mjs → ojiepermana-angular-component-separator.mjs} +1 -1
  134. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +1 -0
  135. package/fesm2022/{ojiepermana-angular-ui-component-sheet.mjs → ojiepermana-angular-component-sheet.mjs} +1 -1
  136. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +1 -0
  137. package/fesm2022/{ojiepermana-angular-ui-component-skeleton.mjs → ojiepermana-angular-component-skeleton.mjs} +1 -1
  138. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +1 -0
  139. package/fesm2022/{ojiepermana-angular-ui-component-slider.mjs → ojiepermana-angular-component-slider.mjs} +1 -1
  140. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +1 -0
  141. package/fesm2022/{ojiepermana-angular-ui-component-switch.mjs → ojiepermana-angular-component-switch.mjs} +1 -1
  142. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +1 -0
  143. package/fesm2022/{ojiepermana-angular-ui-component-table.mjs → ojiepermana-angular-component-table.mjs} +1 -1
  144. package/fesm2022/ojiepermana-angular-component-table.mjs.map +1 -0
  145. package/fesm2022/{ojiepermana-angular-ui-component-tabs.mjs → ojiepermana-angular-component-tabs.mjs} +1 -1
  146. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +1 -0
  147. package/fesm2022/{ojiepermana-angular-ui-component-textarea.mjs → ojiepermana-angular-component-textarea.mjs} +1 -1
  148. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +1 -0
  149. package/fesm2022/{ojiepermana-angular-ui-component-toast.mjs → ojiepermana-angular-component-toast.mjs} +1 -1
  150. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +1 -0
  151. package/fesm2022/{ojiepermana-angular-ui-component-tooltip.mjs → ojiepermana-angular-component-tooltip.mjs} +1 -1
  152. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +1 -0
  153. package/fesm2022/{ojiepermana-angular-ui-component-utils.mjs → ojiepermana-angular-component-utils.mjs} +1 -1
  154. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +1 -0
  155. package/fesm2022/ojiepermana-angular-generator-api.mjs +2 -1
  156. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +1 -1
  157. package/fesm2022/{ojiepermana-angular-layout-theme.mjs → ojiepermana-angular-layout-component.mjs} +1 -1
  158. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +1 -0
  159. package/fesm2022/ojiepermana-angular-layout-empty.mjs +49 -0
  160. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +1 -0
  161. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs +119 -0
  162. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +1 -0
  163. package/fesm2022/ojiepermana-angular-layout-provider.mjs +21 -0
  164. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +1 -0
  165. package/fesm2022/ojiepermana-angular-layout-services.mjs +114 -0
  166. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +1 -0
  167. package/fesm2022/ojiepermana-angular-layout-shell.mjs +48 -0
  168. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +1 -0
  169. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +27 -0
  170. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +1 -0
  171. package/fesm2022/ojiepermana-angular-layout-token.mjs +33 -0
  172. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +1 -0
  173. package/fesm2022/ojiepermana-angular-layout-vertical.mjs +113 -0
  174. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +1 -0
  175. package/fesm2022/ojiepermana-angular-layout.mjs +140 -137
  176. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  177. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +334 -0
  178. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +1 -0
  179. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +1 -1
  180. package/fesm2022/ojiepermana-angular-navigation-item.mjs +548 -0
  181. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +1 -0
  182. package/fesm2022/ojiepermana-angular-navigation-service.mjs +204 -0
  183. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +1 -0
  184. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +373 -0
  185. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +1 -0
  186. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +433 -0
  187. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +1 -0
  188. package/fesm2022/ojiepermana-angular-navigation-types.mjs +4 -0
  189. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +1 -0
  190. package/fesm2022/ojiepermana-angular-theme-provider.mjs +35 -0
  191. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +1 -0
  192. package/fesm2022/ojiepermana-angular-theme-services.mjs +286 -0
  193. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +1 -0
  194. package/fesm2022/ojiepermana-angular-theme-token.mjs +56 -0
  195. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +1 -0
  196. package/fesm2022/ojiepermana-angular-theme.mjs +31 -56
  197. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  198. package/fesm2022/ojiepermana-angular.mjs +3 -4
  199. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  200. package/generator/api/README.md +25 -19
  201. package/generator/api/bin/schematics/init/index.js +4 -2
  202. package/generator/api/bin/src/config/schema.js +2 -1
  203. package/generator/api/bin/src/emit/navigation.js +1 -1
  204. package/generator/api/bin/src/layout/per-domain.js +7 -3
  205. package/generator/api/bin/src/writer/index.js +45 -3
  206. package/generator/api/sdk.config.example.json +4 -2
  207. package/layout/component/package.json +4 -0
  208. package/layout/empty/package.json +4 -0
  209. package/layout/horizontal/package.json +4 -0
  210. package/layout/provider/package.json +4 -0
  211. package/layout/services/package.json +4 -0
  212. package/layout/shell/package.json +4 -0
  213. package/layout/token/directive/package.json +4 -0
  214. package/layout/token/package.json +4 -0
  215. package/layout/vertical/package.json +4 -0
  216. package/navigation/demo-data/package.json +4 -0
  217. package/navigation/icon/package.json +4 -0
  218. package/navigation/item/package.json +4 -0
  219. package/navigation/service/package.json +4 -0
  220. package/navigation/sidebar/package.json +4 -0
  221. package/navigation/topbar/package.json +4 -0
  222. package/navigation/types/package.json +4 -0
  223. package/package.json +196 -128
  224. package/theme/README.md +67 -0
  225. package/theme/provider/package.json +4 -0
  226. package/theme/services/package.json +4 -0
  227. package/theme/styles/index.css +12 -7
  228. package/theme/token/package.json +4 -0
  229. package/types/{ojiepermana-angular-ui-component-chart.d.ts → ojiepermana-angular-component-chart.d.ts} +15 -15
  230. package/types/ojiepermana-angular-generator-api.d.ts +2 -1
  231. package/types/ojiepermana-angular-layout-empty.d.ts +22 -0
  232. package/types/ojiepermana-angular-layout-horizontal.d.ts +36 -0
  233. package/types/ojiepermana-angular-layout-provider.d.ts +6 -0
  234. package/types/ojiepermana-angular-layout-services.d.ts +25 -0
  235. package/types/ojiepermana-angular-layout-shell.d.ts +8 -0
  236. package/types/ojiepermana-angular-layout-token-directive.d.ts +13 -0
  237. package/types/ojiepermana-angular-layout-token.d.ts +36 -0
  238. package/types/ojiepermana-angular-layout-vertical.d.ts +38 -0
  239. package/types/ojiepermana-angular-layout.d.ts +26 -25
  240. package/types/ojiepermana-angular-navigation-demo-data.d.ts +5 -0
  241. package/types/ojiepermana-angular-navigation-item.d.ts +54 -0
  242. package/types/ojiepermana-angular-navigation-service.d.ts +77 -0
  243. package/types/ojiepermana-angular-navigation-sidebar.d.ts +75 -0
  244. package/types/ojiepermana-angular-navigation-topbar.d.ts +54 -0
  245. package/types/ojiepermana-angular-navigation-types.d.ts +129 -0
  246. package/types/ojiepermana-angular-theme-provider.d.ts +11 -0
  247. package/types/ojiepermana-angular-theme-services.d.ts +55 -0
  248. package/types/ojiepermana-angular-theme-token.d.ts +57 -0
  249. package/types/ojiepermana-angular-theme.d.ts +11 -66
  250. package/fesm2022/ojiepermana-angular-layout-theme.mjs.map +0 -1
  251. package/fesm2022/ojiepermana-angular-navigation.mjs +0 -2317
  252. package/fesm2022/ojiepermana-angular-navigation.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-ui-component-accordion.mjs.map +0 -1
  254. package/fesm2022/ojiepermana-angular-ui-component-alert-dialog.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-ui-component-alert.mjs.map +0 -1
  256. package/fesm2022/ojiepermana-angular-ui-component-aspect-ratio.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-ui-component-avatar.mjs.map +0 -1
  258. package/fesm2022/ojiepermana-angular-ui-component-badge.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-ui-component-breadcrumb.mjs.map +0 -1
  260. package/fesm2022/ojiepermana-angular-ui-component-button-group.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-ui-component-button.mjs.map +0 -1
  262. package/fesm2022/ojiepermana-angular-ui-component-calendar.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-ui-component-card.mjs.map +0 -1
  264. package/fesm2022/ojiepermana-angular-ui-component-carousel.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-ui-component-chart-area.mjs.map +0 -1
  266. package/fesm2022/ojiepermana-angular-ui-component-chart-bar.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-ui-component-chart-line.mjs.map +0 -1
  268. package/fesm2022/ojiepermana-angular-ui-component-chart-pie.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-ui-component-chart-radar.mjs.map +0 -1
  270. package/fesm2022/ojiepermana-angular-ui-component-chart-radial.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-ui-component-chart-scatter.mjs.map +0 -1
  272. package/fesm2022/ojiepermana-angular-ui-component-chart.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-ui-component-checkbox.mjs.map +0 -1
  274. package/fesm2022/ojiepermana-angular-ui-component-collapsible.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-ui-component-combobox.mjs.map +0 -1
  276. package/fesm2022/ojiepermana-angular-ui-component-command.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-ui-component-context-menu.mjs.map +0 -1
  278. package/fesm2022/ojiepermana-angular-ui-component-date-picker.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-ui-component-dialog.mjs.map +0 -1
  280. package/fesm2022/ojiepermana-angular-ui-component-drawer.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-ui-component-dropdown-menu.mjs.map +0 -1
  282. package/fesm2022/ojiepermana-angular-ui-component-form.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-ui-component-input-group.mjs.map +0 -1
  284. package/fesm2022/ojiepermana-angular-ui-component-input.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-ui-component-item.mjs.map +0 -1
  286. package/fesm2022/ojiepermana-angular-ui-component-label.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-ui-component-pagination.mjs.map +0 -1
  288. package/fesm2022/ojiepermana-angular-ui-component-popover.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-ui-component-progress.mjs.map +0 -1
  290. package/fesm2022/ojiepermana-angular-ui-component-radio.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-ui-component-scroll-area.mjs.map +0 -1
  292. package/fesm2022/ojiepermana-angular-ui-component-select.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-ui-component-separator.mjs.map +0 -1
  294. package/fesm2022/ojiepermana-angular-ui-component-sheet.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-ui-component-skeleton.mjs.map +0 -1
  296. package/fesm2022/ojiepermana-angular-ui-component-slider.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-ui-component-switch.mjs.map +0 -1
  298. package/fesm2022/ojiepermana-angular-ui-component-table.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-ui-component-tabs.mjs.map +0 -1
  300. package/fesm2022/ojiepermana-angular-ui-component-textarea.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-ui-component-toast.mjs.map +0 -1
  302. package/fesm2022/ojiepermana-angular-ui-component-tooltip.mjs.map +0 -1
  303. package/fesm2022/ojiepermana-angular-ui-component-utils.mjs.map +0 -1
  304. package/layout/theme/package.json +0 -4
  305. package/navigation/package.json +0 -4
  306. package/navigation-icon/package.json +0 -4
  307. package/types/ojiepermana-angular-navigation.d.ts +0 -375
  308. package/ui/component/accordion/package.json +0 -4
  309. package/ui/component/alert/package.json +0 -4
  310. package/ui/component/alert-dialog/package.json +0 -4
  311. package/ui/component/aspect-ratio/package.json +0 -4
  312. package/ui/component/avatar/package.json +0 -4
  313. package/ui/component/badge/package.json +0 -4
  314. package/ui/component/breadcrumb/package.json +0 -4
  315. package/ui/component/button/package.json +0 -4
  316. package/ui/component/button-group/package.json +0 -4
  317. package/ui/component/calendar/package.json +0 -4
  318. package/ui/component/card/package.json +0 -4
  319. package/ui/component/carousel/package.json +0 -4
  320. package/ui/component/chart/area/package.json +0 -4
  321. package/ui/component/chart/bar/package.json +0 -4
  322. package/ui/component/chart/line/package.json +0 -4
  323. package/ui/component/chart/package.json +0 -4
  324. package/ui/component/chart/pie/package.json +0 -4
  325. package/ui/component/chart/radar/package.json +0 -4
  326. package/ui/component/chart/radial/package.json +0 -4
  327. package/ui/component/chart/scatter/package.json +0 -4
  328. package/ui/component/checkbox/package.json +0 -4
  329. package/ui/component/collapsible/package.json +0 -4
  330. package/ui/component/combobox/package.json +0 -4
  331. package/ui/component/command/package.json +0 -4
  332. package/ui/component/context-menu/package.json +0 -4
  333. package/ui/component/date-picker/package.json +0 -4
  334. package/ui/component/dialog/package.json +0 -4
  335. package/ui/component/drawer/package.json +0 -4
  336. package/ui/component/dropdown-menu/package.json +0 -4
  337. package/ui/component/form/package.json +0 -4
  338. package/ui/component/input/package.json +0 -4
  339. package/ui/component/input-group/package.json +0 -4
  340. package/ui/component/item/package.json +0 -4
  341. package/ui/component/label/package.json +0 -4
  342. package/ui/component/pagination/package.json +0 -4
  343. package/ui/component/popover/package.json +0 -4
  344. package/ui/component/progress/package.json +0 -4
  345. package/ui/component/radio/package.json +0 -4
  346. package/ui/component/scroll-area/package.json +0 -4
  347. package/ui/component/select/package.json +0 -4
  348. package/ui/component/separator/package.json +0 -4
  349. package/ui/component/sheet/package.json +0 -4
  350. package/ui/component/skeleton/package.json +0 -4
  351. package/ui/component/slider/package.json +0 -4
  352. package/ui/component/switch/package.json +0 -4
  353. package/ui/component/table/package.json +0 -4
  354. package/ui/component/tabs/package.json +0 -4
  355. package/ui/component/textarea/package.json +0 -4
  356. package/ui/component/toast/package.json +0 -4
  357. package/ui/component/tooltip/package.json +0 -4
  358. package/ui/component/utils/package.json +0 -4
  359. /package/{ui/component → component}/chart/README.md +0 -0
  360. /package/theme/styles/{themes/library/_components.css → foundation/components.css} +0 -0
  361. /package/theme/styles/{themes/library/_layers.css → foundation/layers.css} +0 -0
  362. /package/theme/styles/{themes/library/_tokens.css → foundation/tokens.css} +0 -0
  363. /package/theme/styles/{themes/library/_material-overrides.css → integrations/material.css} +0 -0
  364. /package/theme/styles/{themes → integrations}/tailwind.css +0 -0
  365. /package/theme/styles/{themes/library → variants}/color/amber.css +0 -0
  366. /package/theme/styles/{themes/library → variants}/color/base.css +0 -0
  367. /package/theme/styles/{themes/library → variants}/color/blue.css +0 -0
  368. /package/theme/styles/{themes/library → variants}/color/cyan.css +0 -0
  369. /package/theme/styles/{themes/library → variants}/color/emerald.css +0 -0
  370. /package/theme/styles/{themes/library → variants}/color/fuchsia.css +0 -0
  371. /package/theme/styles/{themes/library → variants}/color/green.css +0 -0
  372. /package/theme/styles/{themes/library → variants}/color/index.css +0 -0
  373. /package/theme/styles/{themes/library → variants}/color/indigo.css +0 -0
  374. /package/theme/styles/{themes/library → variants}/color/lime.css +0 -0
  375. /package/theme/styles/{themes/library → variants}/color/orange.css +0 -0
  376. /package/theme/styles/{themes/library → variants}/color/pink.css +0 -0
  377. /package/theme/styles/{themes/library → variants}/color/purple.css +0 -0
  378. /package/theme/styles/{themes/library → variants}/color/red.css +0 -0
  379. /package/theme/styles/{themes/library → variants}/color/rose.css +0 -0
  380. /package/theme/styles/{themes/library → variants}/color/sky.css +0 -0
  381. /package/theme/styles/{themes/library → variants}/color/teal.css +0 -0
  382. /package/theme/styles/{themes/library → variants}/color/violet.css +0 -0
  383. /package/theme/styles/{themes/library → variants}/color/yellow.css +0 -0
  384. /package/theme/styles/{themes → variants}/mode/dark.css +0 -0
  385. /package/theme/styles/{themes → variants}/mode/index.css +0 -0
  386. /package/theme/styles/{themes → variants}/mode/light.css +0 -0
  387. /package/theme/styles/{themes/library → variants}/style/brutal.css +0 -0
  388. /package/theme/styles/{themes/library → variants}/style/default.css +0 -0
  389. /package/theme/styles/{themes/library → variants}/style/index.css +0 -0
  390. /package/theme/styles/{themes/library → variants}/style/sharp.css +0 -0
  391. /package/theme/styles/{themes/library → variants}/style/soft.css +0 -0
  392. /package/types/{ojiepermana-angular-ui-component-accordion.d.ts → ojiepermana-angular-component-accordion.d.ts} +0 -0
  393. /package/types/{ojiepermana-angular-ui-component-alert-dialog.d.ts → ojiepermana-angular-component-alert-dialog.d.ts} +0 -0
  394. /package/types/{ojiepermana-angular-ui-component-alert.d.ts → ojiepermana-angular-component-alert.d.ts} +0 -0
  395. /package/types/{ojiepermana-angular-ui-component-aspect-ratio.d.ts → ojiepermana-angular-component-aspect-ratio.d.ts} +0 -0
  396. /package/types/{ojiepermana-angular-ui-component-avatar.d.ts → ojiepermana-angular-component-avatar.d.ts} +0 -0
  397. /package/types/{ojiepermana-angular-ui-component-badge.d.ts → ojiepermana-angular-component-badge.d.ts} +0 -0
  398. /package/types/{ojiepermana-angular-ui-component-breadcrumb.d.ts → ojiepermana-angular-component-breadcrumb.d.ts} +0 -0
  399. /package/types/{ojiepermana-angular-ui-component-button-group.d.ts → ojiepermana-angular-component-button-group.d.ts} +0 -0
  400. /package/types/{ojiepermana-angular-ui-component-button.d.ts → ojiepermana-angular-component-button.d.ts} +0 -0
  401. /package/types/{ojiepermana-angular-ui-component-calendar.d.ts → ojiepermana-angular-component-calendar.d.ts} +0 -0
  402. /package/types/{ojiepermana-angular-ui-component-card.d.ts → ojiepermana-angular-component-card.d.ts} +0 -0
  403. /package/types/{ojiepermana-angular-ui-component-carousel.d.ts → ojiepermana-angular-component-carousel.d.ts} +0 -0
  404. /package/types/{ojiepermana-angular-ui-component-chart-area.d.ts → ojiepermana-angular-component-chart-area.d.ts} +0 -0
  405. /package/types/{ojiepermana-angular-ui-component-chart-bar.d.ts → ojiepermana-angular-component-chart-bar.d.ts} +0 -0
  406. /package/types/{ojiepermana-angular-ui-component-chart-line.d.ts → ojiepermana-angular-component-chart-line.d.ts} +0 -0
  407. /package/types/{ojiepermana-angular-ui-component-chart-pie.d.ts → ojiepermana-angular-component-chart-pie.d.ts} +0 -0
  408. /package/types/{ojiepermana-angular-ui-component-chart-radar.d.ts → ojiepermana-angular-component-chart-radar.d.ts} +0 -0
  409. /package/types/{ojiepermana-angular-ui-component-chart-radial.d.ts → ojiepermana-angular-component-chart-radial.d.ts} +0 -0
  410. /package/types/{ojiepermana-angular-ui-component-chart-scatter.d.ts → ojiepermana-angular-component-chart-scatter.d.ts} +0 -0
  411. /package/types/{ojiepermana-angular-ui-component-checkbox.d.ts → ojiepermana-angular-component-checkbox.d.ts} +0 -0
  412. /package/types/{ojiepermana-angular-ui-component-collapsible.d.ts → ojiepermana-angular-component-collapsible.d.ts} +0 -0
  413. /package/types/{ojiepermana-angular-ui-component-combobox.d.ts → ojiepermana-angular-component-combobox.d.ts} +0 -0
  414. /package/types/{ojiepermana-angular-ui-component-command.d.ts → ojiepermana-angular-component-command.d.ts} +0 -0
  415. /package/types/{ojiepermana-angular-ui-component-context-menu.d.ts → ojiepermana-angular-component-context-menu.d.ts} +0 -0
  416. /package/types/{ojiepermana-angular-ui-component-date-picker.d.ts → ojiepermana-angular-component-date-picker.d.ts} +0 -0
  417. /package/types/{ojiepermana-angular-ui-component-dialog.d.ts → ojiepermana-angular-component-dialog.d.ts} +0 -0
  418. /package/types/{ojiepermana-angular-ui-component-drawer.d.ts → ojiepermana-angular-component-drawer.d.ts} +0 -0
  419. /package/types/{ojiepermana-angular-ui-component-dropdown-menu.d.ts → ojiepermana-angular-component-dropdown-menu.d.ts} +0 -0
  420. /package/types/{ojiepermana-angular-ui-component-form.d.ts → ojiepermana-angular-component-form.d.ts} +0 -0
  421. /package/types/{ojiepermana-angular-ui-component-input-group.d.ts → ojiepermana-angular-component-input-group.d.ts} +0 -0
  422. /package/types/{ojiepermana-angular-ui-component-input.d.ts → ojiepermana-angular-component-input.d.ts} +0 -0
  423. /package/types/{ojiepermana-angular-ui-component-item.d.ts → ojiepermana-angular-component-item.d.ts} +0 -0
  424. /package/types/{ojiepermana-angular-ui-component-label.d.ts → ojiepermana-angular-component-label.d.ts} +0 -0
  425. /package/types/{ojiepermana-angular-ui-component-pagination.d.ts → ojiepermana-angular-component-pagination.d.ts} +0 -0
  426. /package/types/{ojiepermana-angular-ui-component-popover.d.ts → ojiepermana-angular-component-popover.d.ts} +0 -0
  427. /package/types/{ojiepermana-angular-ui-component-progress.d.ts → ojiepermana-angular-component-progress.d.ts} +0 -0
  428. /package/types/{ojiepermana-angular-ui-component-radio.d.ts → ojiepermana-angular-component-radio.d.ts} +0 -0
  429. /package/types/{ojiepermana-angular-ui-component-scroll-area.d.ts → ojiepermana-angular-component-scroll-area.d.ts} +0 -0
  430. /package/types/{ojiepermana-angular-ui-component-select.d.ts → ojiepermana-angular-component-select.d.ts} +0 -0
  431. /package/types/{ojiepermana-angular-ui-component-separator.d.ts → ojiepermana-angular-component-separator.d.ts} +0 -0
  432. /package/types/{ojiepermana-angular-ui-component-sheet.d.ts → ojiepermana-angular-component-sheet.d.ts} +0 -0
  433. /package/types/{ojiepermana-angular-ui-component-skeleton.d.ts → ojiepermana-angular-component-skeleton.d.ts} +0 -0
  434. /package/types/{ojiepermana-angular-ui-component-slider.d.ts → ojiepermana-angular-component-slider.d.ts} +0 -0
  435. /package/types/{ojiepermana-angular-ui-component-switch.d.ts → ojiepermana-angular-component-switch.d.ts} +0 -0
  436. /package/types/{ojiepermana-angular-ui-component-table.d.ts → ojiepermana-angular-component-table.d.ts} +0 -0
  437. /package/types/{ojiepermana-angular-ui-component-tabs.d.ts → ojiepermana-angular-component-tabs.d.ts} +0 -0
  438. /package/types/{ojiepermana-angular-ui-component-textarea.d.ts → ojiepermana-angular-component-textarea.d.ts} +0 -0
  439. /package/types/{ojiepermana-angular-ui-component-toast.d.ts → ojiepermana-angular-component-toast.d.ts} +0 -0
  440. /package/types/{ojiepermana-angular-ui-component-tooltip.d.ts → ojiepermana-angular-component-tooltip.d.ts} +0 -0
  441. /package/types/{ojiepermana-angular-ui-component-utils.d.ts → ojiepermana-angular-component-utils.d.ts} +0 -0
  442. /package/types/{ojiepermana-angular-layout-theme.d.ts → ojiepermana-angular-layout-component.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-navigation.mjs","sources":["../../../projects/angular/navigation/src/lib/core/services/navigation.service.ts","../../../projects/angular/navigation/src/lib/core/utils/cn.util.ts","../../../projects/angular/navigation/src/lib/components/shared/nav-item.component.ts","../../../projects/angular/navigation/src/lib/components/sidebar/sidebar.component.ts","../../../projects/angular/navigation/src/lib/components/topbar/topbar.component.ts","../../../projects/angular/navigation/src/lib/data/demo-navigation.data.ts","../../../projects/angular/navigation/public-api.ts","../../../projects/angular/navigation/ojiepermana-angular-navigation.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Injectable, computed, effect, inject, signal } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\nimport { DestroyRef } from '@angular/core';\nimport type { NavigationItem, SidebarAppearance } from '../types/navigation.type';\n\n/** Default registry key used when no id is specified. */\nexport const DEFAULT_NAVIGATION_ID = 'main';\nconst SIDEBAR_COLLAPSE_STORAGE_KEY = 'sidebar-collapse';\nconst LEGACY_SIDEBAR_APPEARANCE_STORAGE_KEY = 'sidebar-appearance';\n\nfunction parseSidebarCollapsed(value: string | null | undefined): boolean | null {\n if (value === 'true') return true;\n if (value === 'false') return false;\n return null;\n}\n\n/**\n * Signal-based global state untuk navigation (sidebar/topbar).\n *\n * Items disimpan dalam registry ber-key. Key default adalah `'main'`.\n * Komponen `sidebar` / `topbar` memilih registry via input `navigationId`.\n */\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private readonly doc = inject(DOCUMENT);\n private readonly router = inject(Router);\n private readonly destroyRef = inject(DestroyRef);\n private readonly persistedSidebarCollapsed = this.readPersistedSidebarCollapsed();\n\n /** Internal version counter — incremented on every registry mutation. */\n private readonly _version = signal(0);\n\n /** Internal map of registered navigation trees. */\n private readonly _registry = new Map<string, NavigationItem[]>();\n private readonly _collapsed = signal(this.persistedSidebarCollapsed ?? false);\n private readonly _hasStoredSidebarCollapse = signal(this.persistedSidebarCollapsed !== null);\n\n /**\n * Backward-compatible accessor — returns items for the default (`'main'`) key.\n * Prefer `getItems(id)` when working with named registries.\n */\n readonly items = computed(() => this.getItems(DEFAULT_NAVIGATION_ID)());\n\n /** Sidebar appearance preference (`default` or `thin`). */\n readonly sidebarAppearance = computed<SidebarAppearance>(() => (this._collapsed() ? 'thin' : 'default'));\n readonly hasStoredSidebarCollapse = this._hasStoredSidebarCollapse.asReadonly();\n\n /** Sidebar collapsed (default ↔ thin) toggle untuk desktop. */\n readonly collapsed = this._collapsed.asReadonly();\n\n /** Sheet drawer terbuka di mobile. */\n readonly mobileOpen = signal<boolean>(false);\n\n /** Set id grup / collapsable yang sedang terbuka. */\n readonly openGroups = signal<ReadonlySet<string>>(new Set<string>());\n\n /** URL aktif terakhir. Update otomatis dari Router `NavigationEnd`. */\n readonly activeUrl = signal<string>(this.router.url);\n\n /** Trail id item yang sedang match dengan URL aktif (across ALL registries). */\n readonly activeTrail = computed<ReadonlySet<string>>(() => {\n this._version(); // track changes\n const url = this.activeUrl();\n const trail = new Set<string>();\n const walk = (list: readonly NavigationItem[], ancestors: string[]): boolean => {\n let matched = false;\n for (const item of list) {\n const id = item.id;\n const link = 'link' in item ? item.link : undefined;\n let selfMatch = false;\n if (link) {\n selfMatch = url === link || url.startsWith(link + '/') || url.startsWith(link + '?');\n }\n const children = 'children' in item ? (item.children ?? []) : [];\n const nextAncestors = id ? [...ancestors, id] : ancestors;\n const childMatch = children.length > 0 && walk(children, nextAncestors);\n if (selfMatch || childMatch) {\n if (id) trail.add(id);\n for (const a of ancestors) trail.add(a);\n matched = true;\n }\n }\n return matched;\n };\n for (const items of this._registry.values()) {\n walk(items, []);\n }\n return trail;\n });\n\n constructor() {\n effect(() => {\n if (!this._hasStoredSidebarCollapse()) {\n return;\n }\n\n this.persistSidebarCollapsed(this._collapsed());\n });\n\n this.router.events\n .pipe(\n filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((e) => this.activeUrl.set(e.urlAfterRedirects));\n }\n\n /**\n * Register items di registry.\n *\n * Overload:\n * - `registerItems(items)` → key `'main'`\n * - `registerItems(id, items)` → key spesifik\n */\n registerItems(items: NavigationItem[]): void;\n registerItems(id: string, items: NavigationItem[]): void;\n registerItems(idOrItems: string | NavigationItem[], maybeItems?: NavigationItem[]): void {\n const [id, items] = typeof idOrItems === 'string' ? [idOrItems, maybeItems!] : [DEFAULT_NAVIGATION_ID, idOrItems];\n this._registry.set(id, items);\n this._version.update((v) => v + 1);\n }\n\n /** Remove a named registry entry. */\n removeItems(id: string): void {\n this._registry.delete(id);\n this._version.update((v) => v + 1);\n }\n\n /**\n * Computed yang mengembalikan items untuk key tertentu.\n * Reactive terhadap perubahan registry.\n */\n getItems(id: string): () => readonly NavigationItem[] {\n return computed(() => {\n this._version(); // track changes\n return this._registry.get(id) ?? [];\n });\n }\n\n setSidebarAppearance(value: SidebarAppearance): void {\n this.setCollapsed(value === 'thin');\n }\n\n toggleSidebarAppearance(currentAppearance: SidebarAppearance = this.sidebarAppearance()): void {\n this.setCollapsed(currentAppearance !== 'thin');\n }\n\n /** Toggle sidebar collapsed (default ↔ thin). */\n toggleCollapsed(): void {\n this.setCollapsed(!this._collapsed());\n }\n\n setCollapsed(value: boolean): void {\n this._collapsed.set(value);\n this._hasStoredSidebarCollapse.set(true);\n }\n\n openMobile(): void {\n this.mobileOpen.set(true);\n }\n\n closeMobile(): void {\n this.mobileOpen.set(false);\n }\n\n toggleMobile(): void {\n this.mobileOpen.update((v) => !v);\n }\n\n isGroupOpen(id: string): boolean {\n return this.openGroups().has(id);\n }\n\n toggleGroup(id: string): void {\n const next = new Set(this.openGroups());\n if (next.has(id)) next.delete(id);\n else next.add(id);\n this.openGroups.set(next);\n }\n\n setGroupOpen(id: string, open: boolean): void {\n const next = new Set(this.openGroups());\n if (open) next.add(id);\n else next.delete(id);\n this.openGroups.set(next);\n }\n\n /** Apakah id termasuk dalam active trail saat ini. */\n isActive(id: string | undefined): boolean {\n return !!id && this.activeTrail().has(id);\n }\n\n private readPersistedSidebarCollapsed(): boolean | null {\n try {\n const storage = this.doc.defaultView?.localStorage;\n const collapsed = parseSidebarCollapsed(storage?.getItem(SIDEBAR_COLLAPSE_STORAGE_KEY));\n if (collapsed !== null) {\n return collapsed;\n }\n\n const legacyAppearance = storage?.getItem(LEGACY_SIDEBAR_APPEARANCE_STORAGE_KEY);\n if (legacyAppearance === 'thin') {\n return true;\n }\n if (legacyAppearance === 'default') {\n return false;\n }\n\n return null;\n } catch {\n return null;\n }\n }\n\n private persistSidebarCollapsed(value: boolean): void {\n try {\n const storage = this.doc.defaultView?.localStorage;\n storage?.setItem(SIDEBAR_COLLAPSE_STORAGE_KEY, String(value));\n storage?.removeItem(LEGACY_SIDEBAR_APPEARANCE_STORAGE_KEY);\n } catch {\n /* ignore */\n }\n }\n}\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/** Concatenate and dedupe Tailwind class names. */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { UiNavIconComponent } from './nav-icon.component';\nimport { NavigationService } from '../../core/services/navigation.service';\nimport { cn } from '../../core/utils/cn.util';\nimport type {\n NavigationAsideItem,\n NavigationBasicItem,\n NavigationCollapsableItem,\n NavigationGroupItem,\n NavigationItem,\n NavigationMegaItem,\n} from '../../core/types/navigation.type';\n\n/**\n * Recursive navigation item renderer (vertical context).\n *\n * Menerima item polymorphic dan delegasi ke template sesuai `type`.\n * Mega dirender sebagai group biasa saat muncul di konteks vertical.\n */\n@Component({\n selector: 'ui-nav-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink, RouterLinkActive, MatTooltip, UiNavIconComponent],\n template: `\n @switch (type()) {\n @case ('divider') {\n <hr class=\"my-2 border-t border-border\" role=\"separator\" />\n }\n @case ('spacer') {\n <div class=\"flex-1\"></div>\n }\n @case ('group') {\n <div role=\"group\" [attr.aria-labelledby]=\"headingId()\">\n @if (!compact()) {\n <div class=\"sticky top-0 z-10 p-3 text-muted-foreground backdrop-blur-3xl bg-transparent\">\n <div [id]=\"headingId()\" [class]=\"cn('ui-nav-heading text-muted-foreground', item().classes?.title)\">\n {{ item().title }}\n </div>\n </div>\n }\n <div class=\"flex flex-col gap-0.5\">\n @for (child of groupItem().children; track child.id) {\n <ui-nav-item\n [item]=\"child\"\n [level]=\"level() + 1\"\n [compact]=\"compact()\"\n [railConnector]=\"railConnector()\" />\n }\n </div>\n </div>\n }\n @case ('collapsable') {\n @let id = collapsableItem().id ?? '';\n @let open = isGroupOpen();\n @let active = isTrailActive();\n <button\n type=\"button\"\n [class]=\"\n cn(\n 'ui-nav-text ui-nav-hover-surface group/ni flex w-full items-center gap-3 rounded p-3 text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n active && 'text-primary',\n railConnectorClasses(active),\n item().classes?.wrapper\n )\n \"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"id + '-panel'\"\n [disabled]=\"collapsableItem().disabled || null\"\n [matTooltip]=\"compact() ? (collapsableItem().title ?? '') : ''\"\n matTooltipPosition=\"right\"\n [matTooltipDisabled]=\"!compact()\"\n (click)=\"toggleGroup()\">\n @if (showRailConnector(active)) {\n <span aria-hidden=\"true\" data-nav-rail-dot [class]=\"railConnectorDotClasses\"></span>\n }\n @if (collapsableItem().icon) {\n <span\n [class]=\"\n cn(\n 'inline-flex shrink-0 items-center justify-center',\n open && 'h-7 w-7 rounded-full border border-brand'\n )\n \">\n <ui-nav-icon [name]=\"collapsableItem().icon!\" [size]=\"18\" [class]=\"item().classes?.icon ?? ''\" />\n </span>\n }\n @if (!compact()) {\n <span [class]=\"cn('flex-1 truncate text-left', item().classes?.title)\">\n {{ collapsableItem().title }}\n </span>\n @if (collapsableItem().badge; as badge) {\n <span [class]=\"badge.classes ?? 'ui-nav-badge ml-auto'\">{{ badge.title }}</span>\n }\n <ui-nav-icon\n [name]=\"'chevron_right'\"\n [size]=\"18\"\n [class]=\"cn('transition-transform duration-200', open && 'rotate-90')\" />\n }\n </button>\n @if (!compact() && open) {\n <div\n [id]=\"id + '-panel'\"\n role=\"region\"\n class=\"relative ml-6.5 mt-0.5 flex flex-col gap-0.5 pl-3 before:absolute before:bottom-0 before:left-0 before:-top-3.5 before:w-px before:bg-primary/30 before:content-['']\">\n @for (child of collapsableItem().children; track child.id) {\n <ui-nav-item [item]=\"child\" [level]=\"level() + 1\" [compact]=\"false\" [railConnector]=\"true\" />\n }\n </div>\n }\n }\n @case ('mega') {\n <!-- Mega direndahkan ke group saat berada di sidebar vertical. -->\n <div class=\"mt-4 py-3 first:mt-0\" role=\"group\">\n @if (!compact()) {\n <div class=\"ui-nav-heading sticky top-0 z-10 bg-background px-3 pb-1 text-muted-foreground\">\n {{ item().title }}\n </div>\n }\n <div class=\"flex flex-col gap-0.5\">\n @for (child of megaItem().children; track child.id) {\n <ui-nav-item\n [item]=\"child\"\n [level]=\"level() + 1\"\n [compact]=\"compact()\"\n [railConnector]=\"railConnector()\" />\n }\n </div>\n </div>\n }\n @case ('aside') {\n <a\n [class]=\"\n cn(\n 'ui-nav-text ui-nav-hover-surface flex items-center gap-3 rounded px-3 py-2 text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring aria-[current=page]:text-primary',\n railConnectorClasses(rla.isActive),\n item().classes?.wrapper\n )\n \"\n routerLinkActive=\"text-primary\"\n #rla=\"routerLinkActive\"\n [attr.aria-current]=\"rla.isActive ? 'page' : null\"\n [routerLink]=\"asideItem().link\"\n [queryParams]=\"asideItem().queryParams\"\n [fragment]=\"asideItem().fragment ?? undefined\"\n [target]=\"asideItem().target ?? undefined\"\n [matTooltip]=\"compact() ? (asideItem().title ?? '') : ''\"\n matTooltipPosition=\"right\"\n [matTooltipDisabled]=\"!compact()\">\n @if (showRailConnector(rla.isActive)) {\n <span aria-hidden=\"true\" data-nav-rail-dot [class]=\"railConnectorDotClasses\"></span>\n }\n @if (asideItem().icon) {\n <ui-nav-icon [name]=\"asideItem().icon!\" [size]=\"18\" />\n }\n @if (!compact()) {\n <span class=\"flex-1 truncate\">{{ asideItem().title }}</span>\n }\n </a>\n }\n @default {\n <!-- basic -->\n @if (basicItem().link && !basicItem().externalLink) {\n <a\n [class]=\"\n cn(\n 'ui-nav-text ui-nav-hover-surface flex items-center gap-3 rounded px-3 py-2 text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring aria-[current=page]:text-primary aria-disabled:pointer-events-none aria-disabled:opacity-50',\n railConnectorClasses(rla.isActive),\n item().classes?.wrapper\n )\n \"\n routerLinkActive=\"text-primary\"\n #rla=\"routerLinkActive\"\n [routerLinkActiveOptions]=\"\n basicItem().isActiveMatchOptions ?? (basicItem().exactMatch ? exactMatch : inexactMatch)\n \"\n [attr.aria-current]=\"rla.isActive ? 'page' : null\"\n [attr.aria-disabled]=\"basicItem().disabled || null\"\n [matTooltip]=\"compact() ? (basicItem().title ?? '') : ''\"\n matTooltipPosition=\"right\"\n [matTooltipDisabled]=\"!compact()\"\n [routerLink]=\"basicItem().link\"\n [queryParams]=\"basicItem().queryParams\"\n [queryParamsHandling]=\"basicItem().queryParamsHandling ?? null\"\n [fragment]=\"basicItem().fragment ?? undefined\"\n [preserveFragment]=\"basicItem().preserveFragment ?? false\"\n [target]=\"basicItem().target ?? undefined\"\n (click)=\"runAction()\">\n @if (showRailConnector(rla.isActive)) {\n <span aria-hidden=\"true\" data-nav-rail-dot [class]=\"railConnectorDotClasses\"></span>\n }\n @if (basicItem().icon) {\n <ui-nav-icon [name]=\"basicItem().icon!\" [size]=\"18\" [class]=\"item().classes?.icon ?? ''\" />\n }\n @if (!compact()) {\n <span [class]=\"cn('flex-1 truncate', item().classes?.title)\">{{ basicItem().title }}</span>\n @if (basicItem().badge; as badge) {\n <span [class]=\"badge.classes ?? 'ui-nav-badge ml-auto'\">{{ badge.title }}</span>\n }\n }\n </a>\n } @else if (basicItem().link && basicItem().externalLink) {\n <a\n [class]=\"\n cn(\n 'ui-nav-text ui-nav-hover-surface flex items-center gap-3 rounded px-3 py-2 text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n item().classes?.wrapper\n )\n \"\n [attr.href]=\"basicItem().link\"\n [attr.target]=\"basicItem().target ?? '_blank'\"\n rel=\"noopener noreferrer\"\n [matTooltip]=\"compact() ? (basicItem().title ?? '') : ''\"\n matTooltipPosition=\"right\"\n [matTooltipDisabled]=\"!compact()\">\n @if (basicItem().icon) {\n <ui-nav-icon [name]=\"basicItem().icon!\" [size]=\"18\" />\n }\n @if (!compact()) {\n <span class=\"flex-1 truncate\">{{ basicItem().title }}</span>\n }\n </a>\n } @else {\n <button\n type=\"button\"\n [class]=\"\n cn(\n 'ui-nav-text ui-nav-hover-surface flex w-full items-center gap-3 rounded px-3 py-2 text-left text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n item().classes?.wrapper\n )\n \"\n [disabled]=\"basicItem().disabled || null\"\n [matTooltip]=\"compact() ? (basicItem().title ?? '') : ''\"\n matTooltipPosition=\"right\"\n [matTooltipDisabled]=\"!compact()\"\n (click)=\"runAction()\">\n @if (basicItem().icon) {\n <ui-nav-icon [name]=\"basicItem().icon!\" [size]=\"18\" />\n }\n @if (!compact()) {\n <span class=\"flex-1 truncate\">{{ basicItem().title }}</span>\n }\n </button>\n }\n }\n }\n `,\n})\nexport class UiNavItemComponent {\n private readonly nav = inject(NavigationService);\n protected readonly cn = cn;\n\n readonly item = input.required<NavigationItem>();\n readonly level = input<number>(0);\n /** Compact / icon-only rendering (sidebar `thin`). */\n readonly compact = input<boolean>(false);\n /** True when this branch sits inside a collapsable rail and can draw a connector back to it. */\n readonly railConnector = input<boolean>(false);\n\n protected readonly railConnectorDotClasses =\n 'pointer-events-none absolute -left-[11px] top-1/2 z-10 h-1 w-1 -translate-x-1/2 -translate-y-1/2 rounded-full bg-foreground/80';\n\n protected readonly exactMatch = {\n exact: true,\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'exact',\n matrixParams: 'exact',\n } as const;\n protected readonly inexactMatch = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n } as const;\n\n protected readonly type = computed(() => this.item().type);\n\n protected readonly groupItem = computed(() => this.item() as NavigationGroupItem);\n protected readonly collapsableItem = computed(() => this.item() as NavigationCollapsableItem);\n protected readonly megaItem = computed(() => this.item() as NavigationMegaItem);\n protected readonly asideItem = computed(() => this.item() as NavigationAsideItem);\n protected readonly basicItem = computed(() => this.item() as NavigationBasicItem);\n\n protected readonly headingId = computed(() => {\n const id = this.item().id ?? '';\n return `nav-group-${id}`;\n });\n\n protected isGroupOpen(): boolean {\n const id = this.item().id;\n if (!id) return false;\n // auto-open when any descendant is active\n if (this.nav.isActive(id) && 'children' in this.item()) return true;\n return this.nav.isGroupOpen(id);\n }\n\n protected isTrailActive(): boolean {\n return this.nav.isActive(this.item().id);\n }\n\n protected railConnectorClasses(active: boolean): string {\n if (!active || !this.railConnector()) return '';\n\n return (\n 'relative after:pointer-events-none after:absolute after:-left-3 after:top-1/2 after:z-0 after:h-px ' +\n \"after:w-3 after:-translate-y-1/2 after:rounded-full after:bg-primary/30 after:content-['']\"\n );\n }\n\n protected showRailConnector(active: boolean): boolean {\n return active && this.railConnector();\n }\n\n protected toggleGroup(): void {\n const id = this.item().id;\n if (id) this.nav.toggleGroup(id);\n }\n\n protected runAction(): void {\n const item = this.item();\n if ('action' in item && typeof item.action === 'function') {\n item.action(item);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { filter, map } from 'rxjs/operators';\nimport { ScrollAreaComponent } from '@ojiepermana/angular/component/scroll-area';\nimport { UiNavIconComponent } from '../shared/nav-icon.component';\nimport { UiNavItemComponent } from '../shared/nav-item.component';\nimport { NavigationService, DEFAULT_NAVIGATION_ID } from '../../core/services/navigation.service';\nimport type {\n NavigationItem,\n SidebarAppearance,\n SidebarBorderSource,\n SidebarPosition,\n} from '../../core/types/navigation.type';\n\n/**\n * Vertical navigation (sidebar) — shadcn-styled.\n *\n * Variants:\n * - `default`: 17.5rem, label + icon\n * - `thin`: 4rem icon-only; hover memunculkan overlay expand (tidak push konten)\n *\n * Mobile (`< md`): saat `autoMobile=true` (default), host desktop disembunyikan\n * dan konten dirender lewat CDK Overlay drawer dengan focus trap. State buka\n * dikontrol lewat `NavigationService.mobileOpen`.\n */\n@Component({\n selector: 'sidebar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, ScrollAreaComponent, UiNavIconComponent, UiNavItemComponent],\n host: {\n role: 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'hostClasses()',\n '[attr.data-appearance]': 'resolvedAppearance()',\n '[attr.data-position]': 'position()',\n '[attr.data-expanded]': 'isExpanded()',\n '[hidden]': 'isMobile()',\n '(mouseenter)': 'onHoverEnter()',\n '(mouseleave)': 'onHoverLeave()',\n '(focusin)': 'onHoverEnter()',\n '(click)': 'onHostClick($event)',\n },\n template: `\n <div [class]=\"innerClasses()\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n\n <ng-template #body>\n @if (header()) {\n <div [class]=\"headerClasses()\">\n <div [class]=\"headerSlotClasses()\">\n <ng-content select=\"[sidebar-header]\" />\n </div>\n @if (!isMobile() && !isCompact()) {\n <button\n type=\"button\"\n data-sidebar-toggle\n class=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n [attr.aria-label]=\"toggleButtonLabel()\"\n [attr.title]=\"toggleButtonLabel()\"\n [attr.aria-pressed]=\"resolvedAppearance() === 'thin'\"\n (click)=\"toggleAppearance($event)\">\n <ui-nav-icon name=\"view_sidebar\" [size]=\"18\" class=\"text-current\" />\n </button>\n }\n </div>\n }\n <ui-scroll-area class=\"min-h-0 flex-1\" [viewportClass]=\"scrollViewportClasses()\">\n <nav [class]=\"navClasses()\">\n @for (item of resolvedItems(); track item.id) {\n <ui-nav-item [item]=\"item\" [compact]=\"isCompact()\" />\n }\n </nav>\n </ui-scroll-area>\n <div [class]=\"footerClasses()\">\n <div [class]=\"footerSlotClasses()\">\n <ng-content select=\"[sidebar-footer]\" />\n </div>\n </div>\n </ng-template>\n\n <ng-template #drawerTpl>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel()\"\n class=\"flex h-full w-72 max-w-[85vw] flex-col border-primary/30 text-foreground shadow-xl\"\n [class.border-r]=\"position() === 'left'\"\n [class.border-l]=\"position() === 'right'\"\n [class.border-primary/30]=\"position() === 'left' || position() === 'right'\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n </ng-template>\n `,\n})\nexport class SidebarComponent {\n private readonly nav = inject(NavigationService);\n private readonly bp = inject(BreakpointObserver);\n private readonly overlay = inject(Overlay);\n private readonly vcr = inject(ViewContainerRef);\n private readonly focusTrapFactory = inject(FocusTrapFactory);\n private readonly doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly items = input<NavigationItem[]>([]);\n /** Registry key di `NavigationService`. Default `'main'`. */\n readonly navigationId = input<string>(DEFAULT_NAVIGATION_ID);\n readonly appearance = input<SidebarAppearance>('default');\n /** Desktop border can be owned by the sidebar or by the surrounding layout shell. */\n readonly borderSource = input<SidebarBorderSource>('component');\n readonly position = input<SidebarPosition>('left');\n readonly ariaLabel = input<string>('Primary');\n readonly header = input<boolean>(true);\n readonly class = input<string>('');\n /** Auto switch ke CDK overlay drawer saat viewport `< md`. */\n readonly autoMobile = input<boolean>(true);\n /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */\n readonly autoRegister = input<boolean>(true);\n\n /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */\n protected readonly resolvedItems = computed(() => {\n const explicit = this.items();\n return explicit.length > 0 ? explicit : this.nav.getItems(this.navigationId())();\n });\n\n private readonly hovered = signal<boolean>(false);\n private readonly suppressHoverUntilLeave = signal<boolean>(false);\n\n private readonly drawerTpl = viewChild.required<TemplateRef<unknown>>('drawerTpl');\n private drawerRef: OverlayRef | null = null;\n private focusTrap: FocusTrap | null = null;\n private previouslyFocused: HTMLElement | null = null;\n\n /** True saat viewport `< md` (767.98px). */\n protected readonly isMobileMedia = toSignal(this.bp.observe('(max-width: 767.98px)').pipe(map((s) => s.matches)), {\n initialValue: false,\n });\n\n protected readonly isMobile = computed(() => this.autoMobile() && this.isMobileMedia());\n protected readonly resolvedCollapsed = computed(() => {\n if (this.nav.hasStoredSidebarCollapse()) {\n return this.nav.collapsed();\n }\n\n return this.appearance() === 'thin';\n });\n protected readonly resolvedAppearance = computed<SidebarAppearance>(() => {\n return this.resolvedCollapsed() ? 'thin' : 'default';\n });\n protected readonly hoverActive = computed(() => this.hovered() && !this.suppressHoverUntilLeave());\n protected readonly isExpanded = computed(() => !this.resolvedCollapsed() || this.hoverActive());\n protected readonly isCompact = computed(() => !this.isMobile() && this.resolvedCollapsed() && !this.hoverActive());\n protected readonly toggleButtonLabel = computed(() =>\n this.resolvedCollapsed() ? 'Expand sidebar' : 'Collapse sidebar',\n );\n\n constructor() {\n // Auto-register items ke service untuk active trail (hanya jika input non-kosong).\n effect(() => {\n const explicit = this.items();\n if (this.autoRegister() && explicit.length > 0) this.nav.registerItems(this.navigationId(), explicit);\n });\n\n // Kelola overlay drawer berdasarkan mobileOpen + isMobile.\n effect(() => {\n const open = this.nav.mobileOpen();\n const mobile = this.isMobile();\n if (mobile && open) this.openDrawer();\n else this.closeDrawer();\n });\n\n this.destroyRef.onDestroy(() => this.closeDrawer());\n }\n\n protected readonly hostClasses = computed(() => {\n const base = ['relative flex shrink-0 text-foreground', 'transition-[width] duration-200 ease-out'];\n if (this.resolvedCollapsed()) base.push('w-16');\n else base.push('[width:17.5rem]');\n if (this.borderSource() === 'component') {\n if (this.position() === 'right') base.push('border-l', 'border-primary/30');\n else base.push('border-r', 'border-primary/30');\n }\n return [...base, this.class()].join(' ');\n });\n\n protected readonly headerClasses = computed(() => {\n const base = ['flex items-center gap-1 border-b border-primary/30'];\n if (this.isCompact()) {\n base.push('h-12', 'justify-center', 'px-2');\n } else {\n base.push('h-12', 'pr-2');\n }\n return base.join(' ');\n });\n\n protected readonly headerSlotClasses = computed(() => {\n const base = ['min-w-0'];\n if (this.isCompact()) {\n base.push(\n 'flex flex-1 items-center justify-center overflow-hidden',\n '[&>[sidebar-header]>*]:mx-auto',\n '[&>[sidebar-header]>*]:w-auto',\n '[&>[sidebar-header]>*]:max-w-full',\n '[&>[sidebar-header]>*]:justify-center',\n '[&>[sidebar-header]>*]:gap-0',\n '[&>[sidebar-header]>*]:px-0',\n '[&>[sidebar-header]>*]:shrink-0',\n '[&>[sidebar-header]>*>*:first-child]:mx-auto',\n '[&>[sidebar-header]>*>*:nth-child(n+2)]:hidden',\n );\n } else {\n base.push('flex min-w-0 flex-1 items-center');\n }\n return base.join(' ');\n });\n\n protected readonly navClasses = computed(() => {\n const base = ['min-h-full'];\n if (this.isCompact()) {\n base.push(\n 'px-2',\n '[&_.ui-nav-text]:mx-auto',\n '[&_.ui-nav-text]:w-10',\n '[&_.ui-nav-text]:justify-center',\n '[&_.ui-nav-text]:px-0',\n );\n }\n return base.join(' ');\n });\n\n protected readonly scrollViewportClasses = computed(\n () => 'overflow-y-auto overflow-x-hidden scrollbar-thin scrollbar-thumb-primary scrollbar-track-primary/10',\n );\n\n protected readonly footerClasses = computed(() => {\n const base = ['h-12 border-t border-primary/30'];\n if (this.isCompact()) {\n base.push('flex items-center justify-center px-2');\n }\n return base.join(' ');\n });\n\n protected readonly footerSlotClasses = computed(() => {\n const base = ['h-full'];\n if (this.isCompact()) {\n base.push(\n 'flex h-full items-center justify-center overflow-hidden',\n '[&>[sidebar-footer]>*]:mx-auto',\n '[&>[sidebar-footer]>*]:w-auto',\n '[&>[sidebar-footer]>*]:max-w-full',\n '[&>[sidebar-footer]>*]:justify-center',\n '[&>[sidebar-footer]>*]:gap-0',\n '[&>[sidebar-footer]>*]:px-0',\n '[&>[sidebar-footer]>*>*:first-child]:mx-auto',\n '[&>[sidebar-footer]>*>*:nth-child(n+2)]:hidden',\n );\n } else {\n base.push('w-full');\n }\n return base.join(' ');\n });\n\n protected readonly innerClasses = computed(() => {\n const overlayActive = this.resolvedCollapsed() && this.hoverActive();\n const base = ['flex h-full flex-col transition-[width] duration-200 ease-out'];\n if (this.resolvedCollapsed()) {\n base.push('bg-background');\n }\n if (overlayActive) {\n base.push(\n 'absolute inset-y-0 z-30 border-l border-r border-primary/30 shadow-xl [width:17.5rem]',\n this.position() === 'right' ? 'right-0' : 'left-0',\n );\n } else {\n base.push('w-full');\n }\n return base.join(' ');\n });\n\n protected onHoverEnter(): void {\n if (!this.resolvedCollapsed() || this.isMobile() || this.suppressHoverUntilLeave()) return;\n this.hovered.set(true);\n }\n\n protected onHoverLeave(): void {\n this.suppressHoverUntilLeave.set(false);\n if (this.resolvedCollapsed()) this.hovered.set(false);\n }\n\n protected toggleAppearance(event: MouseEvent): void {\n event.stopPropagation();\n const nextCollapsed = !this.resolvedCollapsed();\n this.nav.setCollapsed(nextCollapsed);\n this.hovered.set(false);\n this.suppressHoverUntilLeave.set(nextCollapsed);\n }\n\n /** Touch fallback: tap pada strip thin (ketika belum expanded) untuk expand. */\n protected onHostClick(event: MouseEvent): void {\n if (!this.resolvedCollapsed() || this.isMobile()) return;\n if (this.hovered()) return;\n const target = event.target as HTMLElement | null;\n // Biarkan klik pada control interaktif terus propagate (tidak intercept).\n if (target && target.closest('a,button,[role=\"menuitem\"]')) return;\n this.hovered.set(true);\n }\n\n private openDrawer(): void {\n if (this.drawerRef) return;\n const side = this.position();\n const pos = this.overlay.position().global().top('0');\n if (side === 'right') pos.right('0');\n else pos.left('0');\n\n this.drawerRef = this.overlay.create({\n positionStrategy: pos,\n height: '100vh',\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n panelClass: ['sidebar-drawer'],\n });\n\n const portal = new TemplatePortal(this.drawerTpl(), this.vcr);\n const viewRef = this.drawerRef.attach(portal);\n viewRef.detectChanges();\n\n const root = this.drawerRef.overlayElement;\n this.focusTrap = this.focusTrapFactory.create(root);\n this.previouslyFocused = this.doc.activeElement as HTMLElement | null;\n queueMicrotask(() => this.focusTrap?.focusInitialElementWhenReady());\n\n this.drawerRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.nav.closeMobile());\n\n this.drawerRef\n .keydownEvents()\n .pipe(\n filter((e) => e.key === 'Escape'),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.nav.closeMobile());\n }\n\n private closeDrawer(): void {\n if (!this.drawerRef) return;\n this.focusTrap?.destroy();\n this.focusTrap = null;\n this.drawerRef.dispose();\n this.drawerRef = null;\n this.previouslyFocused?.focus?.();\n this.previouslyFocused = null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { UiNavIconComponent } from '../shared/nav-icon.component';\nimport { UiNavItemComponent } from '../shared/nav-item.component';\nimport { NavigationService, DEFAULT_NAVIGATION_ID } from '../../core/services/navigation.service';\nimport type {\n NavigationBasicItem,\n NavigationCollapsableItem,\n NavigationGroupItem,\n NavigationItem,\n TopbarAppearance,\n} from '../../core/types/navigation.type';\n\ninterface ActiveOverlay {\n ref: OverlayRef;\n id: string;\n}\n\n/**\n * Horizontal navigation (topbar) — shadcn-styled.\n */\n@Component({\n selector: 'topbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink, RouterLinkActive, UiNavIconComponent, UiNavItemComponent],\n host: {\n role: 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n '[class]': 'hostClasses()',\n '[attr.data-appearance]': 'appearance()',\n },\n template: `\n <div class=\"flex h-full w-full items-center gap-3 px-1\">\n <div data-topbar-slot=\"start\" class=\"flex shrink-0 items-center gap-2\">\n @if (showHamburger()) {\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-9 items-center justify-center rounded-md text-foreground/80 hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring md:hidden\"\n [attr.aria-label]=\"hamburgerLabel()\"\n [attr.aria-expanded]=\"nav.mobileOpen()\"\n (click)=\"nav.toggleMobile()\">\n <ui-nav-icon name=\"menu\" [size]=\"18\" />\n </button>\n }\n <ng-content select=\"[topbar-start]\" />\n </div>\n\n <div data-topbar-slot=\"nav\" class=\"flex min-w-0 flex-1 items-center justify-center\">\n <ul\n class=\"flex min-w-0 flex-1 items-center justify-center gap-1\"\n role=\"menubar\"\n (keydown)=\"onMenubarKeydown($event)\">\n @for (item of resolvedItems(); track item.id) {\n <li role=\"none\" class=\"relative\">\n @switch (item.type) {\n @case ('basic') {\n @let basic = asBasic(item);\n <a\n role=\"menuitem\"\n class=\"ui-nav-text inline-flex items-center gap-2 rounded-md px-3 py-2 text-foreground/80 hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring aria-[current=page]:text-primary\"\n [routerLink]=\"basic.link\"\n routerLinkActive\n #rla=\"routerLinkActive\"\n [class.text-primary]=\"rla.isActive\"\n [attr.aria-current]=\"rla.isActive ? 'page' : null\"\n [target]=\"basic.target ?? undefined\">\n @if (basic.icon) {\n <ui-nav-icon [name]=\"basic.icon\" [size]=\"18\" />\n }\n <span>{{ basic.title }}</span>\n </a>\n }\n @case ('collapsable') {\n @let col = asCollapsable(item);\n <button\n #trigger\n type=\"button\"\n role=\"menuitem\"\n class=\"ui-nav-text inline-flex items-center gap-2 rounded-md px-3 py-2 text-foreground/80 hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n [class.text-primary]=\"isItemActive(col.id)\"\n [attr.aria-expanded]=\"openId() === col.id\"\n [attr.aria-haspopup]=\"'menu'\"\n (click)=\"toggleDropdown(trigger, item)\"\n (mouseenter)=\"openDropdown(trigger, item)\">\n @if (col.icon) {\n <ui-nav-icon [name]=\"col.icon\" [size]=\"18\" />\n }\n <span>{{ col.title }}</span>\n <ui-nav-icon name=\"expand_more\" [size]=\"18\" />\n </button>\n }\n @case ('group') {\n @let group = asGroup(item);\n <button\n #trigger\n type=\"button\"\n role=\"menuitem\"\n class=\"ui-nav-text inline-flex items-center gap-2 rounded-md px-3 py-2 text-foreground/80 hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n [class.text-primary]=\"isItemActive(group.id)\"\n [attr.aria-expanded]=\"openId() === group.id\"\n [attr.aria-haspopup]=\"'menu'\"\n (click)=\"toggleDropdown(trigger, item)\"\n (mouseenter)=\"openDropdown(trigger, item)\">\n @if (group.icon) {\n <ui-nav-icon [name]=\"group.icon\" [size]=\"18\" />\n }\n <span>{{ group.title }}</span>\n <ui-nav-icon name=\"expand_more\" [size]=\"18\" />\n </button>\n }\n @default {\n <span class=\"ui-nav-heading px-3 py-2 text-muted-foreground\">\n {{ item.title }}\n </span>\n }\n }\n </li>\n }\n </ul>\n </div>\n\n <div data-topbar-slot=\"end\" [class]=\"endSlotClasses()\">\n <ng-content select=\"[topbar-end]\" />\n </div>\n </div>\n\n <!-- Dropdown template -->\n <ng-template #dropdownTpl let-item>\n <div role=\"menu\" class=\"min-w-56 border border-brand bg-background/95 p-1\" (keydown)=\"onPanelKeydown($event)\">\n @for (child of item.children; track child.id) {\n <ui-nav-item [item]=\"child\" />\n }\n </div>\n </ng-template>\n `,\n})\nexport class TopbarComponent {\n protected readonly nav = inject(NavigationService);\n private readonly overlay = inject(Overlay);\n private readonly vcr = inject(ViewContainerRef);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly items = input<NavigationItem[]>([]);\n /** Registry key di `NavigationService`. Default `'main'`. */\n readonly navigationId = input<string>(DEFAULT_NAVIGATION_ID);\n readonly appearance = input<TopbarAppearance>('default');\n readonly ariaLabel = input<string>('Primary');\n readonly class = input<string>('');\n /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */\n readonly autoRegister = input<boolean>(true);\n /** Tampilkan hamburger di `< md` yang men-toggle mobile drawer sidebar. */\n readonly showHamburger = input<boolean>(true);\n readonly hamburgerLabel = input<string>('Open navigation');\n\n /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */\n protected readonly resolvedItems = computed(() => {\n const explicit = this.items();\n return explicit.length > 0 ? explicit : this.nav.getItems(this.navigationId())();\n });\n\n protected readonly openId = signal<string | null>(null);\n private active: ActiveOverlay | null = null;\n\n private readonly dropdownTpl = viewChild.required<TemplateRef<unknown>>('dropdownTpl');\n\n constructor() {\n effect(() => {\n const explicit = this.items();\n if (this.autoRegister() && explicit.length > 0) this.nav.registerItems(this.navigationId(), explicit);\n });\n this.destroyRef.onDestroy(() => this.closeAll());\n }\n\n protected readonly hostClasses = computed(() => {\n return ['sticky top-0 z-20 flex h-11 w-full items-center', this.class()].join(' ');\n });\n\n protected readonly endSlotClasses = computed(() => {\n const base = ['flex h-full shrink-0 items-center justify-end gap-2 overflow-hidden'];\n base.push(\n '[&>[topbar-end]]:flex',\n '[&>[topbar-end]]:min-w-0',\n '[&>[topbar-end]]:max-w-full',\n '[&>[topbar-end]]:items-center',\n '[&>[topbar-end]]:justify-end',\n '[&>[topbar-end]]:gap-2',\n '[&>[topbar-end]>*]:w-auto',\n '[&>[topbar-end]>*]:max-w-full',\n '[&>[topbar-end]>*]:justify-end',\n '[&>[topbar-end]>*]:gap-0',\n '[&>[topbar-end]>*]:px-2',\n '[&>[topbar-end]>*>*:first-child]:ml-auto',\n '[&>[topbar-end]>*>*:nth-child(n+2)]:hidden',\n );\n return base.join(' ');\n });\n\n protected asBasic(i: NavigationItem): NavigationBasicItem {\n return i as NavigationBasicItem;\n }\n protected asCollapsable(i: NavigationItem): NavigationCollapsableItem {\n return i as NavigationCollapsableItem;\n }\n protected asGroup(i: NavigationItem): NavigationGroupItem {\n return i as NavigationGroupItem;\n }\n\n protected isItemActive(id: string | undefined): boolean {\n return this.nav.isActive(id);\n }\n\n protected toggleDropdown(trigger: HTMLElement, item: NavigationItem): void {\n if (this.openId() === item.id) this.closeAll();\n else this.openDropdown(trigger, item);\n }\n\n protected openDropdown(trigger: HTMLElement, item: NavigationItem): void {\n if (this.openId() === item.id) return;\n this.closeAll();\n this.attach(trigger, item, this.dropdownTpl());\n }\n\n private attach(trigger: HTMLElement, item: NavigationItem, tpl: TemplateRef<unknown>): void {\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withFlexibleDimensions(false)\n .withPush(false)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n },\n ]);\n\n const ref = this.overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n panelClass: ['ui-dropdown-panel'],\n });\n\n const portal = new TemplatePortal(tpl, this.vcr, { $implicit: item });\n ref.attach(portal);\n this.active = { ref, id: item.id ?? '' };\n this.openId.set(item.id ?? null);\n\n merge(ref.backdropClick(), ref.keydownEvents().pipe(filter((e) => e.key === 'Escape')))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.closeAll();\n trigger.focus();\n });\n }\n\n protected closeAll(): void {\n if (this.active) {\n this.active.ref.dispose();\n this.active = null;\n }\n this.openId.set(null);\n }\n\n /** Menubar keyboard navigation: ArrowLeft/Right antar trigger, Home/End, ArrowDown fokus panel. */\n protected onMenubarKeydown(event: KeyboardEvent): void {\n const key = event.key;\n const root = this.host.nativeElement;\n const triggers = Array.from(root.querySelectorAll<HTMLElement>('ul[role=\"menubar\"] [role=\"menuitem\"]')).filter(\n (el) => !el.hasAttribute('disabled'),\n );\n if (triggers.length === 0) return;\n const currentIndex = triggers.indexOf(document.activeElement as HTMLElement);\n\n if (key === 'ArrowDown' && currentIndex !== -1) {\n event.preventDefault();\n // Jika open, fokus item pertama panel; jika belum, focus tetap (panel akan dibuka via click/mouseenter).\n queueMicrotask(() => this.focusFirstInPanel());\n return;\n }\n if (key !== 'ArrowLeft' && key !== 'ArrowRight' && key !== 'Home' && key !== 'End') return;\n let nextIndex = currentIndex;\n if (key === 'ArrowRight') nextIndex = (currentIndex + 1 + triggers.length) % triggers.length;\n else if (key === 'ArrowLeft') nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n else if (key === 'Home') nextIndex = 0;\n else if (key === 'End') nextIndex = triggers.length - 1;\n if (nextIndex !== currentIndex && triggers[nextIndex]) {\n event.preventDefault();\n triggers[nextIndex].focus();\n }\n }\n\n /** Arrow-key navigation dalam dropdown panel. */\n protected onPanelKeydown(event: KeyboardEvent): void {\n const key = event.key;\n if (\n key !== 'ArrowDown' &&\n key !== 'ArrowUp' &&\n key !== 'ArrowLeft' &&\n key !== 'ArrowRight' &&\n key !== 'Home' &&\n key !== 'End'\n )\n return;\n const panel = this.active?.ref.overlayElement;\n if (!panel) return;\n const items = this.collectPanelFocusables(panel);\n if (items.length === 0) return;\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n let nextIndex = currentIndex;\n if (key === 'ArrowDown' || key === 'ArrowRight') nextIndex = (currentIndex + 1 + items.length) % items.length;\n else if (key === 'ArrowUp' || key === 'ArrowLeft') nextIndex = (currentIndex - 1 + items.length) % items.length;\n else if (key === 'Home') nextIndex = 0;\n else if (key === 'End') nextIndex = items.length - 1;\n if (nextIndex !== currentIndex && items[nextIndex]) {\n event.preventDefault();\n items[nextIndex].focus();\n }\n }\n\n private collectPanelFocusables(root: HTMLElement): HTMLElement[] {\n return Array.from(\n root.querySelectorAll<HTMLElement>('a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'),\n ).filter((el) => el.offsetParent !== null || el.getClientRects().length > 0);\n }\n\n private focusFirstInPanel(): void {\n const panel = this.active?.ref.overlayElement;\n if (!panel) return;\n const items = this.collectPanelFocusables(panel);\n items[0]?.focus();\n }\n}\n","import { NavigationItem } from '../core/types/navigation.type';\n\nexport const DemoNavigationData: NavigationItem[] = [\n {\n id: 'documentation',\n title: 'Documentation',\n subtitle: 'Guides and getting started resources',\n type: 'group',\n icon: 'menu_book',\n children: [\n {\n id: 'documentation-introduction',\n title: 'Introduction',\n type: 'basic',\n icon: 'menu_book',\n link: '/docs/introduction',\n },\n {\n id: 'documentation-installation',\n title: 'Installation',\n type: 'basic',\n icon: 'download',\n link: '/docs/installation',\n },\n {\n id: 'documentation-getting-started',\n title: 'Getting started',\n type: 'basic',\n icon: 'rocket_launch',\n link: '/docs/getting-started',\n },\n {\n id: 'documentation-upgrade-guide',\n title: 'Upgrade Guide',\n type: 'basic',\n icon: 'arrow_circle_up',\n link: '/docs/upgrade-guide',\n },\n {\n id: 'documentation-changelog',\n title: 'Changelog',\n type: 'basic',\n icon: 'history',\n link: '/docs/changelog',\n },\n {\n id: 'documentation-icon-lucide',\n title: 'Lucide Icons',\n type: 'basic',\n icon: 'star',\n link: '/lucide-icons',\n badge: {\n title: 'Demo',\n classes: 'ml-2 px-2 py-0.5 rounded-full text-xs bg-blue-500 text-white',\n },\n },\n ],\n },\n {\n id: 'user-interface',\n title: 'User Interface',\n subtitle: 'Components and design elements',\n type: 'group',\n icon: 'dashboard',\n children: [\n {\n id: 'user-interface-material-components',\n title: 'Material Components',\n type: 'collapsable',\n icon: 'deployed_code',\n children: [\n {\n id: 'user-interface-material-components-inputs-forms',\n title: 'Inputs & Forms',\n type: 'collapsable',\n icon: 'input',\n children: [\n {\n id: 'user-interface-material-components-inputs-forms-autocomplete',\n title: 'Autocomplete',\n type: 'basic',\n icon: 'search',\n link: '/ui/material/autocomplete',\n },\n {\n id: 'user-interface-material-components-inputs-forms-checkbox',\n title: 'Checkbox',\n type: 'basic',\n icon: 'check_box',\n link: '/ui/material/checkbox',\n },\n {\n id: 'user-interface-material-components-inputs-forms-datepicker',\n title: 'Datepicker',\n type: 'basic',\n icon: 'calendar_today',\n link: '/ui/material/datepicker',\n },\n {\n id: 'user-interface-material-components-inputs-forms-form-field',\n title: 'Form field',\n type: 'basic',\n icon: 'text_fields',\n link: '/ui/material/form-field',\n },\n {\n id: 'user-interface-material-components-inputs-forms-input',\n title: 'Input',\n type: 'basic',\n icon: 'text_fields',\n link: '/ui/material/input',\n },\n {\n id: 'user-interface-material-components-inputs-forms-radio-button',\n title: 'Radio button',\n type: 'basic',\n icon: 'radio_button_checked',\n link: '/ui/material/radio',\n },\n {\n id: 'user-interface-material-components-inputs-forms-select',\n title: 'Select',\n type: 'basic',\n icon: 'expand_more',\n link: '/ui/material/select',\n },\n {\n id: 'user-interface-material-components-inputs-forms-slider',\n title: 'Slider',\n type: 'basic',\n icon: 'tune',\n link: '/ui/material/slider',\n },\n {\n id: 'user-interface-material-components-inputs-forms-slide-toggle',\n title: 'Slide toggle',\n type: 'basic',\n icon: 'toggle_on',\n link: '/ui/material/slide-toggle',\n },\n ],\n },\n {\n id: 'user-interface-material-components-buttons-actions',\n title: 'Buttons & Actions',\n type: 'collapsable',\n icon: 'ads_click',\n children: [\n {\n id: 'user-interface-material-components-buttons-actions-button',\n title: 'Button',\n type: 'basic',\n icon: 'crop_square',\n link: '/ui/material/button',\n },\n {\n id: 'user-interface-material-components-buttons-actions-button-toggle',\n title: 'Button toggle',\n type: 'basic',\n icon: 'view_column',\n link: '/ui/material/button-toggle',\n },\n {\n id: 'user-interface-material-components-buttons-actions-chips',\n title: 'Chips',\n type: 'basic',\n icon: 'label',\n link: '/ui/material/chips',\n badge: {\n title: 'New',\n classes: 'ml-2 px-2 py-0.5 rounded-full text-xs bg-green-500 text-white',\n },\n },\n {\n id: 'user-interface-material-components-buttons-actions-menu',\n title: 'Menu',\n type: 'basic',\n icon: 'menu',\n link: '/ui/material/menu',\n },\n {\n id: 'user-interface-material-components-buttons-actions-ripples',\n title: 'Ripples',\n type: 'basic',\n icon: 'waves',\n link: '/ui/material/ripples',\n },\n ],\n },\n {\n id: 'user-interface-material-components-layout-containers',\n title: 'Layout & Containers',\n type: 'collapsable',\n icon: 'dashboard',\n children: [\n {\n id: 'user-interface-material-components-layout-containers-card',\n title: 'Card',\n type: 'basic',\n icon: 'credit_card',\n link: '/ui/material/card',\n },\n {\n id: 'user-interface-material-components-layout-containers-divider',\n title: 'Divider',\n type: 'basic',\n icon: 'remove',\n link: '/ui/material/divider',\n },\n {\n id: 'user-interface-material-components-layout-containers-expansion-panel',\n title: 'Expansion Panel',\n type: 'basic',\n icon: 'expand_more',\n link: '/ui/material/expansion',\n },\n {\n id: 'user-interface-material-components-layout-containers-grid-list',\n title: 'Grid list',\n type: 'basic',\n icon: 'grid_view',\n link: '/ui/material/grid-list',\n },\n {\n id: 'user-interface-material-components-layout-containers-list',\n title: 'List',\n type: 'basic',\n icon: 'list',\n link: '/ui/material/list',\n },\n {\n id: 'user-interface-material-components-layout-containers-sidenav',\n title: 'Sidenav',\n type: 'basic',\n icon: 'view_sidebar',\n link: '/ui/material/sidenav',\n },\n {\n id: 'user-interface-material-components-layout-containers-tabs',\n title: 'Tabs',\n type: 'basic',\n icon: 'tab',\n link: '/ui/material/tabs',\n },\n {\n id: 'user-interface-material-components-layout-containers-toolbar',\n title: 'Toolbar',\n type: 'basic',\n icon: 'build',\n link: '/ui/material/toolbar',\n },\n ],\n },\n {\n id: 'user-interface-material-components-data-display',\n title: 'Data & Display',\n type: 'collapsable',\n icon: 'bar_chart',\n children: [\n {\n id: 'user-interface-material-components-data-display-badge',\n title: 'Badge',\n type: 'basic',\n icon: 'verified',\n link: '/ui/material/badge',\n },\n {\n id: 'user-interface-material-components-data-display-icon',\n title: 'Icon',\n type: 'basic',\n icon: 'star',\n link: '/ui/material/icon',\n },\n {\n id: 'user-interface-material-components-data-display-paginator',\n title: 'Paginator',\n type: 'basic',\n icon: 'first_page',\n link: '/ui/material/paginator',\n },\n {\n id: 'user-interface-material-components-data-display-progress-bar',\n title: 'Progress bar',\n type: 'basic',\n icon: 'hourglass_empty',\n link: '/ui/material/progress-bar',\n },\n {\n id: 'user-interface-material-components-data-display-progress-spinner',\n title: 'Progress spinner',\n type: 'basic',\n icon: 'progress_activity',\n link: '/ui/material/progress-spinner',\n },\n {\n id: 'user-interface-material-components-data-display-sort',\n title: 'Sort header',\n type: 'basic',\n icon: 'swap_vert',\n link: '/ui/material/sort',\n },\n {\n id: 'user-interface-material-components-data-display-table',\n title: 'Table',\n type: 'basic',\n icon: 'table_chart',\n link: '/ui/material/table',\n },\n {\n id: 'user-interface-material-components-data-display-tree',\n title: 'Tree',\n type: 'basic',\n icon: 'hub',\n link: '/ui/material/tree',\n },\n ],\n },\n {\n id: 'user-interface-material-components-overlays-modals',\n title: 'Overlays & Modals',\n type: 'collapsable',\n icon: 'layers',\n children: [\n {\n id: 'user-interface-material-components-overlays-modals-bottom-sheet',\n title: 'Bottom Sheet',\n type: 'basic',\n icon: 'south',\n link: '/ui/material/bottom-sheet',\n },\n {\n id: 'user-interface-material-components-overlays-modals-dialog',\n title: 'Dialog',\n type: 'basic',\n icon: 'chat',\n link: '/ui/material/dialog',\n },\n {\n id: 'user-interface-material-components-overlays-modals-snack-bar',\n title: 'Snack-bar',\n type: 'basic',\n icon: 'notifications',\n link: '/ui/material/snack-bar',\n },\n {\n id: 'user-interface-material-components-overlays-modals-tooltip',\n title: 'Tooltip',\n type: 'basic',\n icon: 'help',\n link: '/ui/material/tooltip',\n },\n ],\n },\n {\n id: 'user-interface-material-components-navigation-stepper',\n title: 'Navigation & Steps',\n type: 'collapsable',\n icon: 'account_tree',\n children: [\n {\n id: 'user-interface-material-components-navigation-stepper-stepper',\n title: 'Stepper',\n type: 'basic',\n icon: 'account_tree',\n link: '/ui/material/stepper',\n },\n ],\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk',\n title: 'Angular CDK',\n type: 'collapsable',\n icon: 'widgets',\n children: [\n {\n id: 'user-interface-angular-cdk-accessibility-navigation',\n title: 'Accessibility & Navigation',\n type: 'collapsable',\n icon: 'accessibility',\n children: [\n {\n id: 'user-interface-angular-cdk-accessibility-navigation-a11y',\n title: 'Accessibility',\n type: 'basic',\n icon: 'accessibility',\n link: '/ui/cdk/a11y',\n },\n {\n id: 'user-interface-angular-cdk-accessibility-navigation-focus-trap',\n title: 'Focus Trap',\n type: 'basic',\n icon: 'center_focus_strong',\n link: '/ui/cdk/focus-trap',\n },\n {\n id: 'user-interface-angular-cdk-accessibility-navigation-live-announcer',\n title: 'Live Announcer',\n type: 'basic',\n icon: 'campaign',\n link: '/ui/cdk/live-announcer',\n },\n {\n id: 'user-interface-angular-cdk-accessibility-navigation-listbox',\n title: 'Listbox',\n type: 'basic',\n icon: 'list',\n link: '/ui/cdk/listbox',\n },\n {\n id: 'user-interface-angular-cdk-accessibility-navigation-menu-cdk',\n title: 'Menu',\n type: 'basic',\n icon: 'menu',\n link: '/ui/cdk/menu',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-layout-positioning',\n title: 'Layout & Positioning',\n type: 'collapsable',\n icon: 'dashboard',\n children: [\n {\n id: 'user-interface-angular-cdk-layout-positioning-layout',\n title: 'Layout',\n type: 'basic',\n icon: 'dashboard',\n link: '/ui/cdk/layout',\n },\n {\n id: 'user-interface-angular-cdk-layout-positioning-overlay',\n title: 'Overlay',\n type: 'basic',\n icon: 'layers',\n link: '/ui/cdk/overlay',\n },\n {\n id: 'user-interface-angular-cdk-layout-positioning-portal',\n title: 'Portal',\n type: 'basic',\n icon: 'radio_button_checked',\n link: '/ui/cdk/portal',\n },\n {\n id: 'user-interface-angular-cdk-layout-positioning-scrolling',\n title: 'Scrolling',\n type: 'basic',\n icon: 'unfold_more',\n link: '/ui/cdk/scrolling',\n },\n {\n id: 'user-interface-angular-cdk-layout-positioning-virtual-scrolling',\n title: 'Virtual Scrolling',\n type: 'basic',\n icon: 'view_agenda',\n link: '/ui/cdk/virtual-scrolling',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-interaction-behavior',\n title: 'Interaction & Behavior',\n type: 'collapsable',\n icon: 'pan_tool',\n children: [\n {\n id: 'user-interface-angular-cdk-interaction-behavior-drag-drop',\n title: 'Drag and Drop',\n type: 'basic',\n icon: 'open_with',\n link: '/ui/cdk/drag-drop',\n },\n {\n id: 'user-interface-angular-cdk-interaction-behavior-observers',\n title: 'Observers',\n type: 'basic',\n icon: 'visibility',\n link: '/ui/cdk/observers',\n },\n {\n id: 'user-interface-angular-cdk-interaction-behavior-platform',\n title: 'Platform',\n type: 'basic',\n icon: 'devices',\n link: '/ui/cdk/platform',\n },\n {\n id: 'user-interface-angular-cdk-interaction-behavior-stepper-cdk',\n title: 'Stepper',\n type: 'basic',\n icon: 'account_tree',\n link: '/ui/cdk/stepper',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-forms-data',\n title: 'Forms & Data',\n type: 'collapsable',\n icon: 'storage',\n children: [\n {\n id: 'user-interface-angular-cdk-forms-data-accordion',\n title: 'Accordion',\n type: 'basic',\n icon: 'expand_more',\n link: '/ui/cdk/accordion',\n },\n {\n id: 'user-interface-angular-cdk-forms-data-table-cdk',\n title: 'Table',\n type: 'basic',\n icon: 'table_chart',\n link: '/ui/cdk/table',\n },\n {\n id: 'user-interface-angular-cdk-forms-data-tree-cdk',\n title: 'Tree',\n type: 'basic',\n icon: 'hub',\n link: '/ui/cdk/tree',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-utilities-helpers',\n title: 'Utilities & Helpers',\n type: 'collapsable',\n icon: 'build',\n children: [\n {\n id: 'user-interface-angular-cdk-utilities-helpers-bidi',\n title: 'Bidirectionality',\n type: 'basic',\n icon: 'swap_horiz',\n link: '/ui/cdk/bidi',\n },\n {\n id: 'user-interface-angular-cdk-utilities-helpers-clipboard',\n title: 'Clipboard',\n type: 'basic',\n icon: 'content_paste',\n link: '/ui/cdk/clipboard',\n },\n {\n id: 'user-interface-angular-cdk-utilities-helpers-coercion',\n title: 'Coercion',\n type: 'basic',\n icon: 'shuffle',\n link: '/ui/cdk/coercion',\n },\n {\n id: 'user-interface-angular-cdk-utilities-helpers-collections',\n title: 'Collections',\n type: 'basic',\n icon: 'folder',\n link: '/ui/cdk/collections',\n },\n {\n id: 'user-interface-angular-cdk-utilities-helpers-keycodes',\n title: 'Keycodes',\n type: 'basic',\n icon: 'keyboard',\n link: '/ui/cdk/keycodes',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-testing-tools',\n title: 'Testing Tools',\n type: 'collapsable',\n icon: 'bug_report',\n children: [\n {\n id: 'user-interface-angular-cdk-testing-tools-component-harnesses',\n title: 'Component Harnesses',\n type: 'basic',\n icon: 'science',\n link: '/ui/cdk/testing',\n },\n {\n id: 'user-interface-angular-cdk-testing-tools-test-harnesses',\n title: 'Test Harnesses',\n type: 'basic',\n icon: 'science',\n link: '/ui/cdk/test-harnesses',\n },\n ],\n },\n {\n id: 'user-interface-angular-cdk-advanced-feature',\n title: 'Advanced feature',\n type: 'collapsable',\n icon: 'settings',\n children: [\n {\n id: 'user-interface-angular-cdk-advanced-feature-dialog-cdk',\n title: 'Dialog',\n type: 'basic',\n icon: 'chat',\n link: '/ui/cdk/dialog',\n },\n {\n id: 'user-interface-angular-cdk-advanced-feature-text-field',\n title: 'Text Field',\n type: 'basic',\n icon: 'text_fields',\n link: '/ui/cdk/text-field',\n },\n ],\n },\n ],\n },\n {\n id: 'user-interface-tailwind',\n title: 'Tailwind CSS',\n type: 'collapsable',\n icon: 'air',\n children: [\n {\n id: 'user-interface-tailwind-css-heading',\n title: 'Heading',\n type: 'basic',\n icon: 'text_fields',\n link: '/ui/tailwind/heading',\n },\n {\n id: 'user-interface-tailwind-data-display',\n title: 'Data Display',\n type: 'basic',\n icon: 'bar_chart',\n link: '/ui/tailwind/data-display',\n },\n {\n id: 'user-interface-tailwind-list',\n title: 'List',\n type: 'basic',\n icon: 'list',\n link: '/ui/tailwind/list',\n },\n {\n id: 'user-interface-tailwind-form',\n title: 'Form',\n type: 'basic',\n icon: 'dynamic_form',\n link: '/ui/tailwind/form',\n },\n {\n id: 'user-interface-tailwind-feedback',\n title: 'Feedback',\n type: 'basic',\n icon: 'report',\n link: '/ui/tailwind/feedback',\n },\n ],\n },\n ],\n },\n {\n id: 'feature',\n title: 'Features',\n subtitle: 'Advanced functionality and customization options',\n type: 'group',\n icon: 'settings',\n children: [\n {\n id: 'feature-theme',\n title: 'Themes',\n type: 'collapsable',\n icon: 'palette',\n children: [\n {\n id: 'feature-theme-dark-mode',\n title: 'Dark Mode',\n type: 'basic',\n icon: 'dark_mode',\n link: '/feature/theme/dark-mode',\n },\n {\n id: 'feature-theme-color',\n title: 'Color Schemes',\n type: 'basic',\n icon: 'palette',\n link: '/feature/theme/color-schemes',\n badge: {\n title: 'Beta',\n classes: 'ml-2 px-2 py-0.5 rounded-full text-xs bg-yellow-500 text-white',\n },\n },\n {\n id: 'feature-layout',\n title: 'Layout',\n type: 'collapsable',\n icon: 'dashboard',\n children: [\n {\n id: 'feature-layout-apps',\n title: 'Application',\n type: 'collapsable',\n icon: 'web',\n children: [\n {\n id: 'feature-layout-apps-vertical',\n title: 'Vertical',\n type: 'basic',\n icon: 'view_sidebar',\n link: '/feature/layout/application/vertical',\n },\n {\n id: 'feature-layout-apps-horizontal',\n title: 'Horizontal',\n type: 'basic',\n icon: 'view_column',\n link: '/feature/layout/application/horizontal',\n },\n ],\n },\n {\n id: 'feature-layout-page',\n title: 'Pages',\n type: 'collapsable',\n icon: 'description',\n children: [\n {\n id: 'feature-layout-page-page',\n title: 'Page',\n type: 'basic',\n icon: 'description',\n link: '/feature/layout/page/page',\n },\n {\n id: 'feature-layout-page-content',\n title: 'Content',\n type: 'basic',\n icon: 'description',\n link: '/feature/layout/page/content',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n id: 'feature-navigation',\n title: 'Navigation',\n type: 'collapsable',\n icon: 'navigation',\n children: [\n {\n id: 'feature-navigation-horizontal-navigation',\n title: 'Horizontal ',\n type: 'basic',\n icon: 'view_column',\n link: '/feature/navigation/horizontal',\n },\n {\n id: 'feature-navigation-vertical-navigation',\n title: 'Vertical ',\n type: 'collapsable',\n icon: 'view_agenda',\n children: [\n {\n id: 'feature-navigation-vertical-navigation-default',\n title: 'Default',\n type: 'basic',\n icon: 'view_agenda',\n link: '/feature/navigation/vertical/default',\n },\n {\n id: 'feature-navigation-vertical-navigation-thin',\n title: 'Thin',\n type: 'basic',\n icon: 'view_agenda',\n link: '/feature/navigation/vertical/thin',\n },\n {\n id: 'feature-navigation-vertical-navigation-compact',\n title: 'Compact',\n type: 'basic',\n icon: 'view_agenda',\n link: '/feature/navigation/vertical/compact',\n },\n {\n id: 'feature-navigation-vertical-navigation-dense',\n title: 'Dense',\n type: 'basic',\n icon: 'view_agenda',\n link: '/feature/navigation/vertical/dense',\n },\n ],\n },\n ],\n },\n ],\n },\n];\n","/*\n * Public API Surface of @ojiepermana/angular/navigation\n */\n\n// Core\nexport * from './src/lib/core/types/navigation.type';\nexport * from './src/lib/core/services/navigation.service';\n\n// Shared\nexport * from './src/lib/components/shared/nav-icon.component';\nexport * from './src/lib/components/shared/nav-item.component';\n\n// Sidebar & Topbar\nexport * from './src/lib/components/sidebar/sidebar.component';\nexport * from './src/lib/components/topbar/topbar.component';\n\n// Demo data\nexport * from './src/lib/data/demo-navigation.data';\n\nexport const NAVIGATION_VERSION = '0.0.1';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-accordion.mjs","sources":["../../../projects/angular/ui/component/accordion/src/lib/accordion.component.ts","../../../projects/angular/ui/component/accordion/ojiepermana-angular-ui-component-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n computed,\n forwardRef,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type AccordionType = 'single' | 'multiple';\n\n@Directive()\nexport abstract class AccordionContextBase {\n abstract isOpen(value: string): boolean;\n abstract toggle(value: string): void;\n}\n\n@Component({\n selector: 'ui-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }],\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AccordionComponent extends AccordionContextBase {\n readonly type = input<AccordionType>('single');\n readonly collapsible = input<boolean>(true);\n readonly value = model<string | string[] | null>(null);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('block', this.class()));\n\n private readonly openSet = computed<Set<string>>(() => {\n const v = this.value();\n if (v == null) return new Set();\n return new Set(Array.isArray(v) ? v : [v]);\n });\n\n override isOpen(value: string): boolean {\n return this.openSet().has(value);\n }\n\n override toggle(value: string): void {\n const isMulti = this.type() === 'multiple';\n const current = this.openSet();\n const open = current.has(value);\n if (isMulti) {\n const next = new Set(current);\n open ? next.delete(value) : next.add(value);\n this.value.set([...next]);\n } else {\n if (open) {\n if (this.collapsible()) this.value.set(null);\n } else {\n this.value.set(value);\n }\n }\n }\n}\n\n@Component({\n selector: 'ui-accordion-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-state]': 'open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n },\n template: `<ng-content />`,\n})\nexport class AccordionItemComponent {\n protected readonly ctx = inject(AccordionContextBase);\n readonly value = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly class = input<string>('');\n\n readonly triggerId = `ui-accordion-trigger-${nextId()}`;\n readonly contentId = `ui-accordion-content-${nextId()}`;\n\n protected readonly classes = computed(() => cn('block border-b border-border', this.class()));\n\n readonly open = computed(() => this.ctx.isOpen(this.value()));\n\n toggle(): void {\n if (!this.disabled()) this.ctx.toggle(this.value());\n }\n}\n\n@Component({\n selector: 'button[ui-accordion-trigger]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n type: 'button',\n '[attr.id]': 'item.triggerId',\n '[attr.aria-controls]': 'item.contentId',\n '[attr.aria-expanded]': 'item.open()',\n '[attr.data-state]': 'item.open() ? \"open\" : \"closed\"',\n '[disabled]': 'item.disabled() || null',\n '(click)': 'item.toggle()',\n },\n template: `\n <ng-content />\n <svg\n aria-hidden=\"true\"\n class=\"h-4 w-4 shrink-0 transition-transform duration-200\"\n [class.rotate-180]=\"item.open()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n `,\n})\nexport class AccordionTriggerComponent {\n protected readonly item = inject(AccordionItemComponent);\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'flex flex-1 w-full items-center justify-between py-4 text-sm font-medium',\n 'transition-all hover:underline',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-accordion-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.id]': 'item.contentId',\n '[attr.role]': '\"region\"',\n '[attr.aria-labelledby]': 'item.triggerId',\n '[attr.data-state]': 'item.open() ? \"open\" : \"closed\"',\n '[hidden]': '!item.open()',\n },\n template: `<div class=\"pb-4 pt-0 text-sm\"><ng-content /></div>`,\n})\nexport class AccordionContentComponent {\n protected readonly item = inject(AccordionItemComponent);\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('block overflow-hidden text-sm', this.class()));\n}\n\nlet _id = 0;\nfunction nextId(): number {\n return ++_id;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-alert-dialog.mjs","sources":["../../../projects/angular/ui/component/alert-dialog/src/lib/alert-dialog.component.ts","../../../projects/angular/ui/component/alert-dialog/src/lib/alert-dialog-parts.component.ts","../../../projects/angular/ui/component/alert-dialog/ojiepermana-angular-ui-component-alert-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model, output, signal } from '@angular/core';\n\nimport { cn } from '@ojiepermana/angular/component/utils';\nimport { DialogComponent } from '@ojiepermana/angular/component/dialog';\nimport type { AlertDialogSize } from './alert-dialog.types';\n\nconst ALERT_DIALOG_SIZE_CLASSES: Record<AlertDialogSize, string> = {\n default: 'sm:max-w-lg',\n sm: 'sm:max-w-sm',\n};\n\n@Component({\n selector: 'ui-alert-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DialogComponent],\n template: `\n <ui-dialog\n [(open)]=\"open\"\n [closeOnEscape]=\"closeOnEscape()\"\n [closeOnBackdropClick]=\"closeOnBackdropClick()\"\n [showCloseButton]=\"showCloseButton()\"\n [closeButtonLabel]=\"closeButtonLabel()\"\n [aria-labelledby]=\"labelledBy()\"\n [aria-describedby]=\"describedBy()\"\n [class]=\"surfaceClasses()\"\n (openedChange)=\"openedChange.emit($event)\">\n <ng-content />\n </ui-dialog>\n `,\n})\nexport class AlertDialogComponent {\n readonly open = model<boolean>(false);\n readonly closeOnEscape = input<boolean>(true);\n readonly closeOnBackdropClick = input<boolean>(false);\n readonly showCloseButton = input<boolean>(false);\n readonly closeButtonLabel = input<string>('Close');\n readonly labelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\n readonly describedBy = input<string | null>(null, { alias: 'aria-describedby' });\n readonly class = input<string>('');\n\n readonly openedChange = output<boolean>();\n\n private readonly contentSize = signal<AlertDialogSize>('default');\n\n readonly resolvedSize = computed<AlertDialogSize>(() => this.contentSize());\n protected readonly surfaceClasses = computed(() => cn(ALERT_DIALOG_SIZE_CLASSES[this.resolvedSize()], this.class()));\n\n setContentSize(size: AlertDialogSize): void {\n this.contentSize.set(size);\n }\n\n close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, computed, effect, inject, input } from '@angular/core';\n\nimport { cn } from '@ojiepermana/angular/component/utils';\nimport { buttonVariants, type ButtonSize, type ButtonVariant } from '@ojiepermana/angular/component/button';\nimport { AlertDialogComponent } from './alert-dialog.component';\nimport type { AlertDialogSize } from './alert-dialog.types';\n\nconst ALERT_DIALOG_MEDIA_SIZE_CLASSES: Record<AlertDialogSize, string> = {\n default: 'h-12 w-12 [&_svg]:h-5 [&_svg]:w-5',\n sm: 'h-10 w-10 [&_svg]:h-4.5 [&_svg]:w-4.5',\n};\n\n@Component({\n selector: 'ui-alert-dialog-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n template: `<ng-content />`,\n})\nexport class AlertDialogContentComponent {\n readonly size = input<AlertDialogSize>('default');\n readonly class = input<string>('');\n\n private readonly alertDialog = inject(AlertDialogComponent, { optional: true });\n\n protected readonly classes = computed(() => cn('grid gap-4', this.class()));\n\n constructor() {\n effect(() => this.alertDialog?.setContentSize(this.size()));\n }\n}\n\n@Component({\n selector: 'ui-alert-dialog-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDialogHeaderComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('flex flex-col gap-2 text-center sm:text-left', this.class()));\n}\n\n@Component({\n selector: 'ui-alert-dialog-title, h2[ui-alert-dialog-title]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDialogTitleComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('text-lg font-semibold leading-none tracking-tight', this.class()));\n}\n\n@Component({\n selector: 'ui-alert-dialog-description, p[ui-alert-dialog-description]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDialogDescriptionComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('text-sm leading-6 text-muted-foreground', this.class()));\n}\n\n@Component({\n selector: 'ui-alert-dialog-media',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDialogMediaComponent {\n readonly class = input<string>('');\n\n private readonly alertDialog = inject(AlertDialogComponent, { optional: true });\n\n protected readonly classes = computed(() =>\n cn(\n 'mx-auto flex shrink-0 items-center justify-center rounded-full border border-border bg-muted/60 text-foreground sm:mx-0',\n ALERT_DIALOG_MEDIA_SIZE_CLASSES[this.alertDialog?.resolvedSize() ?? 'default'],\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-alert-dialog-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDialogFooterComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-2', this.class()),\n );\n}\n\n@Component({\n selector: 'button[ui-alert-dialog-cancel], a[ui-alert-dialog-cancel]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n '[attr.data-variant]': 'variant()',\n '[attr.type]': 'buttonType()',\n '(click)': 'handleClick()',\n },\n template: `<ng-content />`,\n})\nexport class AlertDialogCancelComponent {\n readonly variant = input<ButtonVariant>('outline');\n readonly size = input<ButtonSize>('default');\n readonly closeOnClick = input<boolean>(true);\n readonly class = input<string>('');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly alertDialog = inject(AlertDialogComponent, { optional: true });\n\n protected readonly classes = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.class()),\n );\n protected readonly buttonType = computed(() =>\n this.host.nativeElement.tagName.toLowerCase() === 'button' ? 'button' : null,\n );\n\n protected handleClick(): void {\n if (this.closeOnClick()) {\n this.alertDialog?.close();\n }\n }\n}\n\n@Component({\n selector: 'button[ui-alert-dialog-action], a[ui-alert-dialog-action]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n '[attr.data-variant]': 'variant()',\n '[attr.type]': 'buttonType()',\n '(click)': 'handleClick()',\n },\n template: `<ng-content />`,\n})\nexport class AlertDialogActionComponent {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('default');\n readonly closeOnClick = input<boolean>(true);\n readonly class = input<string>('');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly alertDialog = inject(AlertDialogComponent, { optional: true });\n\n protected readonly classes = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.class()),\n );\n protected readonly buttonType = computed(() =>\n this.host.nativeElement.tagName.toLowerCase() === 'button' ? 'button' : null,\n );\n\n protected handleClick(): void {\n if (this.closeOnClick()) {\n this.alertDialog?.close();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-alert.mjs","sources":["../../../projects/angular/ui/component/alert/src/lib/alert.variants.ts","../../../projects/angular/ui/component/alert/src/lib/alert.component.ts","../../../projects/angular/ui/component/alert/ojiepermana-angular-ui-component-alert.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const alertVariants = cva(\n [\n 'relative block w-full rounded-lg border p-4 [&:has(ui-alert-action)]:pr-20',\n '[&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px]',\n '[&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive: 'border-destructive/50 text-destructive [&>svg]:text-destructive dark:border-destructive',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n\nexport type AlertVariant = NonNullable<VariantProps<typeof alertVariants>['variant']>;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\nimport { alertVariants, type AlertVariant } from './alert.variants';\n\n@Component({\n selector: 'ui-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.role]': '\"alert\"',\n },\n template: `<ng-content />`,\n})\nexport class AlertComponent {\n readonly variant = input<AlertVariant>('default');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn(alertVariants({ variant: this.variant() }), this.class()));\n}\n\n@Component({\n selector: 'ui-alert-title, h5[ui-alert-title]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertTitleComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('mb-1 block font-medium leading-none tracking-tight', this.class()));\n}\n\n@Component({\n selector: 'ui-alert-description',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertDescriptionComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('block text-sm [&_p]:leading-relaxed', this.class()));\n}\n\n@Component({\n selector: 'ui-alert-action',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AlertActionComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('mt-3 flex items-center justify-end sm:absolute sm:right-4 sm:top-4 sm:mt-0', this.class()),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-aspect-ratio.mjs","sources":["../../../projects/angular/ui/component/aspect-ratio/src/lib/aspect-ratio.component.ts","../../../projects/angular/ui/component/aspect-ratio/ojiepermana-angular-ui-component-aspect-ratio.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-aspect-ratio',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n },\n template:\n '<div [style.padding-bottom]=\"paddingBottom()\" class=\"block w-full\"></div><div class=\"absolute inset-0\"><ng-content /></div>',\n})\nexport class AspectRatioComponent {\n readonly ratio = input.required<number>();\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('relative block w-full', this.class()));\n\n protected readonly paddingBottom = computed(() => {\n const ratio = this.ratio();\n\n return Number.isFinite(ratio) && ratio > 0 ? `${100 / ratio}%` : '100%';\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;AAChC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;AAEnE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAE1B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAA,EAAG,GAAG,GAAG,KAAK,GAAG,GAAG,MAAM;AACzE,IAAA,CAAC,oFAAC;wGAVS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,sXAF7B,6HAA6H,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEpH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACD,oBAAA,QAAQ,EACN,6HAA6H;AAChI,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-avatar.mjs","sources":["../../../projects/angular/ui/component/avatar/src/lib/avatar.component.ts","../../../projects/angular/ui/component/avatar/ojiepermana-angular-ui-component-avatar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nconst avatarSizeClasses = {\n default: 'h-10 w-10',\n sm: 'h-8 w-8',\n lg: 'h-12 w-12',\n} as const;\n\nexport type AvatarSize = keyof typeof avatarSizeClasses;\n\n@Component({\n selector: 'ui-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n template: `<ng-content />`,\n})\nexport class AvatarComponent {\n readonly size = input<AvatarSize>('default');\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('relative flex shrink-0 overflow-hidden rounded-full', avatarSizeClasses[this.size()], this.class()),\n );\n}\n\n@Component({\n selector: 'ui-avatar-image',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'absolute inset-0 z-10 block',\n },\n template: `\n @if (!failed()) {\n <img [src]=\"src()\" [alt]=\"alt()\" [class]=\"classes()\" (error)=\"failed.set(true)\" />\n }\n `,\n})\nexport class AvatarImageComponent {\n readonly src = input.required<string>();\n readonly alt = input<string>('');\n readonly class = input<string>('');\n\n protected readonly failed = signal(false);\n protected readonly classes = computed(() => cn('h-full w-full object-cover', this.class()));\n}\n\n@Component({\n selector: 'ui-avatar-fallback',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarFallbackComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'absolute inset-0 z-0 flex items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-avatar-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarBadgeComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'absolute bottom-0 right-0 z-10 flex size-4 translate-x-1/4 translate-y-1/4 items-center justify-center rounded-full border-2 border-background bg-primary text-[0.625rem] font-medium leading-none text-primary-foreground shadow-sm [&>*]:pointer-events-none [&>*]:size-2.5 [&>*]:shrink-0',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-avatar-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarGroupComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('inline-flex items-center [&>*]:ring-2 [&>*]:ring-background [&>*:not(:first-child)]:-ml-3', this.class()),\n );\n}\n\n@Component({\n selector: 'ui-avatar-group-count',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarGroupCountComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground',\n this.class(),\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-badge.mjs","sources":["../../../projects/angular/ui/component/badge/src/lib/badge.variants.ts","../../../projects/angular/ui/component/badge/src/lib/badge.component.ts","../../../projects/angular/ui/component/badge/ojiepermana-angular-ui-component-badge.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n [\n 'inline-flex items-center gap-1 rounded-full border border-border px-2.5 py-0.5',\n 'text-xs font-semibold transition-colors',\n '[&>svg]:size-3 [&>svg]:shrink-0',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'bg-transparent text-foreground',\n ghost: 'border-transparent bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n link: 'border-transparent bg-transparent text-foreground underline-offset-4 hover:underline',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n\nexport type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\nimport { badgeVariants, type BadgeVariant } from './badge.variants';\n\n@Component({\n selector: 'ui-badge, [ui-badge]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BadgeComponent {\n readonly variant = input<BadgeVariant>('default');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn(badgeVariants({ variant: this.variant() }), this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,GAAG,CAC9B;IACE,gFAAgF;IAChF,yCAAyC;IACzC,iCAAiC;IACjC,qEAAqE;AACtE,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,2EAA2E;AACpF,YAAA,SAAS,EAAE,iFAAiF;AAC5F,YAAA,WAAW,EAAE,uFAAuF;AACpG,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,KAAK,EAAE,gGAAgG;AACvG,YAAA,IAAI,EAAE,sFAAsF;AAC7F,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AACxC,CAAA;;MCXU,cAAc,CAAA;AAChB,IAAA,OAAO,GAAG,KAAK,CAAe,SAAS,8EAAC;AACxC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEf,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;wGAJ9F,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,kYAFf,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-breadcrumb.mjs","sources":["../../../projects/angular/ui/component/breadcrumb/src/lib/breadcrumb.component.ts","../../../projects/angular/ui/component/breadcrumb/ojiepermana-angular-ui-component-breadcrumb.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-breadcrumb, nav[ui-breadcrumb]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.aria-label]': '\"breadcrumb\"',\n },\n template: `<ng-content />`,\n})\nexport class BreadcrumbComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('block', this.class()));\n}\n\n@Component({\n selector: 'ol[ui-breadcrumb-list]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbListComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class()),\n );\n}\n\n@Component({\n selector: 'li[ui-breadcrumb-item]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbItemComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('inline-flex items-center gap-1.5', this.class()));\n}\n\n@Component({\n selector: 'a[ui-breadcrumb-link]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbLinkComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('transition-colors hover:text-foreground', this.class()));\n}\n\n@Component({\n selector: 'span[ui-breadcrumb-page]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'link',\n 'aria-disabled': 'true',\n 'aria-current': 'page',\n },\n template: `<ng-content />`,\n})\nexport class BreadcrumbPageComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('font-normal text-foreground', this.class()));\n}\n\n@Component({\n selector: 'li[ui-breadcrumb-separator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'presentation',\n 'aria-hidden': 'true',\n },\n template: `\n <ng-content>\n <svg\n class=\"h-3.5 w-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </ng-content>\n `,\n})\nexport class BreadcrumbSeparatorComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('[&>svg]:size-3.5', this.class()));\n}\n\n@Component({\n selector: 'span[ui-breadcrumb-ellipsis]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'presentation',\n 'aria-hidden': 'true',\n },\n template: `\n <svg\n class=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More</span>\n `,\n})\nexport class BreadcrumbEllipsisComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('relative flex h-9 w-9 items-center justify-center', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,mBAAmB,CAAA;AACrB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAF3D,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,sTAFpB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mCAAmC;oBAC7C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,mBAAmB,EAAE,cAAc;AACpC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAYY,uBAAuB,CAAA;AACzB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,0FAA0F,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAC7G;wGAJU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,sQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAcY,uBAAuB,CAAA;AACzB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFtF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,sQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAYY,uBAAuB,CAAA;AACzB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,yCAAyC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAF7F,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,qQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAiBY,uBAAuB,CAAA;AACzB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFjF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,yVAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,cAAc,EAAE,MAAM;AACvB,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MA6BY,4BAA4B,CAAA;AAC9B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFtE,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAf7B;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAvBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACF,iBAAA;;MA8BY,2BAA2B,CAAA;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,mDAAmD,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFvG,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhB5B;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAxBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA;;;ACvHD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-button-group.mjs","sources":["../../../projects/angular/ui/component/button-group/src/lib/button-group.component.ts","../../../projects/angular/ui/component/button-group/ojiepermana-angular-ui-component-button-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n\nconst BUTTON_GROUP_BASE = [\n 'inline-flex w-fit items-stretch',\n 'has-[>[data-slot=button-group]]:gap-2',\n '[&>*]:focus-visible:relative [&>*]:focus-visible:z-10',\n '[&>input]:flex-1 [&>textarea]:flex-1',\n '[&>ui-input-group]:min-w-0 [&>ui-input-group]:flex-1',\n].join(' ');\n\nconst buttonGroupOrientationClasses: Record<ButtonGroupOrientation, string> = {\n horizontal: [\n '[&>*:not(:first-child)]:rounded-s-none',\n '[&>*:not(:first-child)]:[border-inline-start-width:0]',\n '[&>*:not(:last-child)]:rounded-e-none',\n ].join(' '),\n vertical: [\n 'flex-col',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>*:not(:first-child)]:border-t-0',\n '[&>*:not(:last-child)]:rounded-b-none',\n ].join(' '),\n};\n\n@Component({\n selector: 'ui-button-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-slot]': '\"button-group\"',\n role: 'group',\n },\n template: `<ng-content />`,\n})\nexport class ButtonGroupComponent {\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(BUTTON_GROUP_BASE, buttonGroupOrientationClasses[this.orientation()], this.class()),\n );\n}\n\n@Component({\n selector: 'ui-button-group-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"button-group-text\"',\n },\n template: `<ng-content />`,\n})\nexport class ButtonGroupTextComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n [\n 'flex items-center gap-2 whitespace-nowrap rounded-md border border-border bg-muted px-4 text-sm font-medium shadow-sm',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',\n ].join(' '),\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-button-group-separator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-slot]': '\"button-group-separator\"',\n role: 'separator',\n },\n template: '',\n})\nexport class ButtonGroupSeparatorComponent {\n readonly orientation = input<ButtonGroupOrientation>('vertical');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'relative shrink-0 bg-border',\n this.orientation() === 'horizontal' ? 'h-px w-full self-auto' : 'h-auto w-px self-stretch',\n this.class(),\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-button.mjs","sources":["../../../projects/angular/ui/component/button/src/lib/button.variants.ts","../../../projects/angular/ui/component/button/src/lib/button.component.ts","../../../projects/angular/ui/component/button/ojiepermana-angular-ui-component-button.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n [\n 'inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap',\n 'rounded-md text-sm font-medium',\n 'transition-colors',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n xs: 'h-7 rounded-md px-2.5 text-xs',\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n 'icon-xs': 'h-7 w-7 p-0',\n 'icon-sm': 'h-8 w-8 p-0',\n icon: 'h-9 w-9 p-0',\n 'icon-lg': 'h-10 w-10 p-0',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\nimport { buttonVariants, type ButtonSize, type ButtonVariant } from './button.variants';\n\n@Component({\n selector: 'button[ui-button], a[ui-button]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-size]': 'size()',\n },\n template: `<ng-content />`,\n})\nexport class ButtonComponent {\n readonly variant = input<ButtonVariant>('default');\n readonly size = input<ButtonSize>('default');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.class()),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,cAAc,GAAG,GAAG,CAC/B;IACE,gFAAgF;IAChF,gCAAgC;IAChC,mBAAmB;IACnB,yEAAyE;IACzE,kDAAkD;IAClD,6DAA6D;AAC9D,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,WAAW,EAAE,oEAAoE;AACjF,YAAA,OAAO,EAAE,gFAAgF;AACzF,YAAA,SAAS,EAAE,8DAA8D;AACzE,YAAA,KAAK,EAAE,8CAA8C;AACrD,YAAA,IAAI,EAAE,iDAAiD;AACxD,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,+BAA+B;AACnC,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,EAAE,EAAE,sBAAsB;AAC1B,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,SAAS,EAAE,eAAe;AAC3B,SAAA;AACF,KAAA;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;AACzD,CAAA;;MCnBU,eAAe,CAAA;AACjB,IAAA,OAAO,GAAG,KAAK,CAAgB,SAAS,8EAAC;AACzC,IAAA,IAAI,GAAG,KAAK,CAAa,SAAS,2EAAC;AACnC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EACjF;wGAPU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gkBAFhB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;oBAC3C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,kBAAkB,EAAE,QAAQ;AAC7B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACbD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-calendar.mjs","sources":["../../../projects/angular/ui/component/calendar/src/lib/calendar.component.ts","../../../projects/angular/ui/component/calendar/ojiepermana-angular-ui-component-calendar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model } from '@angular/core';\nimport { MatCalendar } from '@angular/material/datepicker';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type CalendarStartView = 'month' | 'year' | 'multi-year';\nexport type CalendarDateFilter = (date: Date | null) => boolean;\n\n/**\n * Inline calendar built on MatCalendar. Requires a date adapter provider in the\n * consumer app (e.g. `provideNativeDateAdapter()` from `@angular/material/core`).\n */\n@Component({\n selector: 'ui-calendar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCalendar],\n host: {\n '[class]': 'classes()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.inert]': 'disabled() ? \"\" : null',\n },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CalendarComponent), multi: true }],\n template: `\n <mat-calendar\n class=\"ui-calendar\"\n [selected]=\"value()\"\n [minDate]=\"min()\"\n [maxDate]=\"max()\"\n [startAt]=\"startAt()\"\n [startView]=\"startView()\"\n [dateFilter]=\"resolvedDateFilter()\"\n (selectedChange)=\"onSelect($event)\" />\n `,\n styles: [\n `\n :host {\n display: block;\n width: fit-content;\n padding: 0.75rem;\n border-radius: var(--radius);\n border: 1px solid hsl(var(--border));\n background: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n .ui-calendar {\n display: block;\n width: var(--ui-calendar-width, 17.5rem);\n }\n `,\n ],\n})\nexport class CalendarComponent implements ControlValueAccessor {\n readonly value = model<Date | null>(null);\n readonly min = input<Date | null>(null);\n readonly max = input<Date | null>(null);\n readonly startAt = input<Date | null>(null);\n readonly startView = input<CalendarStartView>('month');\n readonly dateFilter = input<CalendarDateFilter | null>(null);\n readonly disabled = model<boolean>(false);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn('block w-fit', this.disabled() ? 'pointer-events-none opacity-50' : '', this.class()),\n );\n protected readonly resolvedDateFilter = computed(() => this.dateFilter() ?? undefined);\n\n private onChangeFn: (v: Date | null) => void = () => {};\n private onTouchedFn: () => void = () => {};\n\n protected onSelect(d: Date | null): void {\n this.value.set(d);\n this.onChangeFn(d);\n this.onTouchedFn();\n }\n\n writeValue(v: Date | null): void {\n this.value.set(v);\n }\n\n registerOnChange(fn: (v: Date | null) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.disabled.set(state);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}