@ojiepermana/angular 21.3.0 → 21.3.3

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 (441) 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 +18 -15
  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/sdk.config.example.json +4 -2
  206. package/layout/component/package.json +4 -0
  207. package/layout/empty/package.json +4 -0
  208. package/layout/horizontal/package.json +4 -0
  209. package/layout/provider/package.json +4 -0
  210. package/layout/services/package.json +4 -0
  211. package/layout/shell/package.json +4 -0
  212. package/layout/token/directive/package.json +4 -0
  213. package/layout/token/package.json +4 -0
  214. package/layout/vertical/package.json +4 -0
  215. package/navigation/demo-data/package.json +4 -0
  216. package/navigation/icon/package.json +4 -0
  217. package/navigation/item/package.json +4 -0
  218. package/navigation/service/package.json +4 -0
  219. package/navigation/sidebar/package.json +4 -0
  220. package/navigation/topbar/package.json +4 -0
  221. package/navigation/types/package.json +4 -0
  222. package/package.json +196 -128
  223. package/theme/README.md +67 -0
  224. package/theme/provider/package.json +4 -0
  225. package/theme/services/package.json +4 -0
  226. package/theme/styles/index.css +12 -7
  227. package/theme/token/package.json +4 -0
  228. package/types/{ojiepermana-angular-ui-component-chart.d.ts → ojiepermana-angular-component-chart.d.ts} +15 -15
  229. package/types/ojiepermana-angular-generator-api.d.ts +2 -1
  230. package/types/ojiepermana-angular-layout-empty.d.ts +22 -0
  231. package/types/ojiepermana-angular-layout-horizontal.d.ts +36 -0
  232. package/types/ojiepermana-angular-layout-provider.d.ts +6 -0
  233. package/types/ojiepermana-angular-layout-services.d.ts +25 -0
  234. package/types/ojiepermana-angular-layout-shell.d.ts +8 -0
  235. package/types/ojiepermana-angular-layout-token-directive.d.ts +13 -0
  236. package/types/ojiepermana-angular-layout-token.d.ts +36 -0
  237. package/types/ojiepermana-angular-layout-vertical.d.ts +38 -0
  238. package/types/ojiepermana-angular-layout.d.ts +26 -25
  239. package/types/ojiepermana-angular-navigation-demo-data.d.ts +5 -0
  240. package/types/ojiepermana-angular-navigation-item.d.ts +54 -0
  241. package/types/ojiepermana-angular-navigation-service.d.ts +77 -0
  242. package/types/ojiepermana-angular-navigation-sidebar.d.ts +75 -0
  243. package/types/ojiepermana-angular-navigation-topbar.d.ts +54 -0
  244. package/types/ojiepermana-angular-navigation-types.d.ts +129 -0
  245. package/types/ojiepermana-angular-theme-provider.d.ts +11 -0
  246. package/types/ojiepermana-angular-theme-services.d.ts +55 -0
  247. package/types/ojiepermana-angular-theme-token.d.ts +57 -0
  248. package/types/ojiepermana-angular-theme.d.ts +11 -66
  249. package/fesm2022/ojiepermana-angular-layout-theme.mjs.map +0 -1
  250. package/fesm2022/ojiepermana-angular-navigation.mjs +0 -2317
  251. package/fesm2022/ojiepermana-angular-navigation.mjs.map +0 -1
  252. package/fesm2022/ojiepermana-angular-ui-component-accordion.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-ui-component-alert-dialog.mjs.map +0 -1
  254. package/fesm2022/ojiepermana-angular-ui-component-alert.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-ui-component-aspect-ratio.mjs.map +0 -1
  256. package/fesm2022/ojiepermana-angular-ui-component-avatar.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-ui-component-badge.mjs.map +0 -1
  258. package/fesm2022/ojiepermana-angular-ui-component-breadcrumb.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-ui-component-button-group.mjs.map +0 -1
  260. package/fesm2022/ojiepermana-angular-ui-component-button.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-ui-component-calendar.mjs.map +0 -1
  262. package/fesm2022/ojiepermana-angular-ui-component-card.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-ui-component-carousel.mjs.map +0 -1
  264. package/fesm2022/ojiepermana-angular-ui-component-chart-area.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-ui-component-chart-bar.mjs.map +0 -1
  266. package/fesm2022/ojiepermana-angular-ui-component-chart-line.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-ui-component-chart-pie.mjs.map +0 -1
  268. package/fesm2022/ojiepermana-angular-ui-component-chart-radar.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-ui-component-chart-radial.mjs.map +0 -1
  270. package/fesm2022/ojiepermana-angular-ui-component-chart-scatter.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-ui-component-chart.mjs.map +0 -1
  272. package/fesm2022/ojiepermana-angular-ui-component-checkbox.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-ui-component-collapsible.mjs.map +0 -1
  274. package/fesm2022/ojiepermana-angular-ui-component-combobox.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-ui-component-command.mjs.map +0 -1
  276. package/fesm2022/ojiepermana-angular-ui-component-context-menu.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-ui-component-date-picker.mjs.map +0 -1
  278. package/fesm2022/ojiepermana-angular-ui-component-dialog.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-ui-component-drawer.mjs.map +0 -1
  280. package/fesm2022/ojiepermana-angular-ui-component-dropdown-menu.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-ui-component-form.mjs.map +0 -1
  282. package/fesm2022/ojiepermana-angular-ui-component-input-group.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-ui-component-input.mjs.map +0 -1
  284. package/fesm2022/ojiepermana-angular-ui-component-item.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-ui-component-label.mjs.map +0 -1
  286. package/fesm2022/ojiepermana-angular-ui-component-pagination.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-ui-component-popover.mjs.map +0 -1
  288. package/fesm2022/ojiepermana-angular-ui-component-progress.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-ui-component-radio.mjs.map +0 -1
  290. package/fesm2022/ojiepermana-angular-ui-component-scroll-area.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-ui-component-select.mjs.map +0 -1
  292. package/fesm2022/ojiepermana-angular-ui-component-separator.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-ui-component-sheet.mjs.map +0 -1
  294. package/fesm2022/ojiepermana-angular-ui-component-skeleton.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-ui-component-slider.mjs.map +0 -1
  296. package/fesm2022/ojiepermana-angular-ui-component-switch.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-ui-component-table.mjs.map +0 -1
  298. package/fesm2022/ojiepermana-angular-ui-component-tabs.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-ui-component-textarea.mjs.map +0 -1
  300. package/fesm2022/ojiepermana-angular-ui-component-toast.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-ui-component-tooltip.mjs.map +0 -1
  302. package/fesm2022/ojiepermana-angular-ui-component-utils.mjs.map +0 -1
  303. package/layout/theme/package.json +0 -4
  304. package/navigation/package.json +0 -4
  305. package/navigation-icon/package.json +0 -4
  306. package/types/ojiepermana-angular-navigation.d.ts +0 -375
  307. package/ui/component/accordion/package.json +0 -4
  308. package/ui/component/alert/package.json +0 -4
  309. package/ui/component/alert-dialog/package.json +0 -4
  310. package/ui/component/aspect-ratio/package.json +0 -4
  311. package/ui/component/avatar/package.json +0 -4
  312. package/ui/component/badge/package.json +0 -4
  313. package/ui/component/breadcrumb/package.json +0 -4
  314. package/ui/component/button/package.json +0 -4
  315. package/ui/component/button-group/package.json +0 -4
  316. package/ui/component/calendar/package.json +0 -4
  317. package/ui/component/card/package.json +0 -4
  318. package/ui/component/carousel/package.json +0 -4
  319. package/ui/component/chart/area/package.json +0 -4
  320. package/ui/component/chart/bar/package.json +0 -4
  321. package/ui/component/chart/line/package.json +0 -4
  322. package/ui/component/chart/package.json +0 -4
  323. package/ui/component/chart/pie/package.json +0 -4
  324. package/ui/component/chart/radar/package.json +0 -4
  325. package/ui/component/chart/radial/package.json +0 -4
  326. package/ui/component/chart/scatter/package.json +0 -4
  327. package/ui/component/checkbox/package.json +0 -4
  328. package/ui/component/collapsible/package.json +0 -4
  329. package/ui/component/combobox/package.json +0 -4
  330. package/ui/component/command/package.json +0 -4
  331. package/ui/component/context-menu/package.json +0 -4
  332. package/ui/component/date-picker/package.json +0 -4
  333. package/ui/component/dialog/package.json +0 -4
  334. package/ui/component/drawer/package.json +0 -4
  335. package/ui/component/dropdown-menu/package.json +0 -4
  336. package/ui/component/form/package.json +0 -4
  337. package/ui/component/input/package.json +0 -4
  338. package/ui/component/input-group/package.json +0 -4
  339. package/ui/component/item/package.json +0 -4
  340. package/ui/component/label/package.json +0 -4
  341. package/ui/component/pagination/package.json +0 -4
  342. package/ui/component/popover/package.json +0 -4
  343. package/ui/component/progress/package.json +0 -4
  344. package/ui/component/radio/package.json +0 -4
  345. package/ui/component/scroll-area/package.json +0 -4
  346. package/ui/component/select/package.json +0 -4
  347. package/ui/component/separator/package.json +0 -4
  348. package/ui/component/sheet/package.json +0 -4
  349. package/ui/component/skeleton/package.json +0 -4
  350. package/ui/component/slider/package.json +0 -4
  351. package/ui/component/switch/package.json +0 -4
  352. package/ui/component/table/package.json +0 -4
  353. package/ui/component/tabs/package.json +0 -4
  354. package/ui/component/textarea/package.json +0 -4
  355. package/ui/component/toast/package.json +0 -4
  356. package/ui/component/tooltip/package.json +0 -4
  357. package/ui/component/utils/package.json +0 -4
  358. /package/{ui/component → component}/chart/README.md +0 -0
  359. /package/theme/styles/{themes/library/_components.css → foundation/components.css} +0 -0
  360. /package/theme/styles/{themes/library/_layers.css → foundation/layers.css} +0 -0
  361. /package/theme/styles/{themes/library/_tokens.css → foundation/tokens.css} +0 -0
  362. /package/theme/styles/{themes/library/_material-overrides.css → integrations/material.css} +0 -0
  363. /package/theme/styles/{themes → integrations}/tailwind.css +0 -0
  364. /package/theme/styles/{themes/library → variants}/color/amber.css +0 -0
  365. /package/theme/styles/{themes/library → variants}/color/base.css +0 -0
  366. /package/theme/styles/{themes/library → variants}/color/blue.css +0 -0
  367. /package/theme/styles/{themes/library → variants}/color/cyan.css +0 -0
  368. /package/theme/styles/{themes/library → variants}/color/emerald.css +0 -0
  369. /package/theme/styles/{themes/library → variants}/color/fuchsia.css +0 -0
  370. /package/theme/styles/{themes/library → variants}/color/green.css +0 -0
  371. /package/theme/styles/{themes/library → variants}/color/index.css +0 -0
  372. /package/theme/styles/{themes/library → variants}/color/indigo.css +0 -0
  373. /package/theme/styles/{themes/library → variants}/color/lime.css +0 -0
  374. /package/theme/styles/{themes/library → variants}/color/orange.css +0 -0
  375. /package/theme/styles/{themes/library → variants}/color/pink.css +0 -0
  376. /package/theme/styles/{themes/library → variants}/color/purple.css +0 -0
  377. /package/theme/styles/{themes/library → variants}/color/red.css +0 -0
  378. /package/theme/styles/{themes/library → variants}/color/rose.css +0 -0
  379. /package/theme/styles/{themes/library → variants}/color/sky.css +0 -0
  380. /package/theme/styles/{themes/library → variants}/color/teal.css +0 -0
  381. /package/theme/styles/{themes/library → variants}/color/violet.css +0 -0
  382. /package/theme/styles/{themes/library → variants}/color/yellow.css +0 -0
  383. /package/theme/styles/{themes → variants}/mode/dark.css +0 -0
  384. /package/theme/styles/{themes → variants}/mode/index.css +0 -0
  385. /package/theme/styles/{themes → variants}/mode/light.css +0 -0
  386. /package/theme/styles/{themes/library → variants}/style/brutal.css +0 -0
  387. /package/theme/styles/{themes/library → variants}/style/default.css +0 -0
  388. /package/theme/styles/{themes/library → variants}/style/index.css +0 -0
  389. /package/theme/styles/{themes/library → variants}/style/sharp.css +0 -0
  390. /package/theme/styles/{themes/library → variants}/style/soft.css +0 -0
  391. /package/types/{ojiepermana-angular-ui-component-accordion.d.ts → ojiepermana-angular-component-accordion.d.ts} +0 -0
  392. /package/types/{ojiepermana-angular-ui-component-alert-dialog.d.ts → ojiepermana-angular-component-alert-dialog.d.ts} +0 -0
  393. /package/types/{ojiepermana-angular-ui-component-alert.d.ts → ojiepermana-angular-component-alert.d.ts} +0 -0
  394. /package/types/{ojiepermana-angular-ui-component-aspect-ratio.d.ts → ojiepermana-angular-component-aspect-ratio.d.ts} +0 -0
  395. /package/types/{ojiepermana-angular-ui-component-avatar.d.ts → ojiepermana-angular-component-avatar.d.ts} +0 -0
  396. /package/types/{ojiepermana-angular-ui-component-badge.d.ts → ojiepermana-angular-component-badge.d.ts} +0 -0
  397. /package/types/{ojiepermana-angular-ui-component-breadcrumb.d.ts → ojiepermana-angular-component-breadcrumb.d.ts} +0 -0
  398. /package/types/{ojiepermana-angular-ui-component-button-group.d.ts → ojiepermana-angular-component-button-group.d.ts} +0 -0
  399. /package/types/{ojiepermana-angular-ui-component-button.d.ts → ojiepermana-angular-component-button.d.ts} +0 -0
  400. /package/types/{ojiepermana-angular-ui-component-calendar.d.ts → ojiepermana-angular-component-calendar.d.ts} +0 -0
  401. /package/types/{ojiepermana-angular-ui-component-card.d.ts → ojiepermana-angular-component-card.d.ts} +0 -0
  402. /package/types/{ojiepermana-angular-ui-component-carousel.d.ts → ojiepermana-angular-component-carousel.d.ts} +0 -0
  403. /package/types/{ojiepermana-angular-ui-component-chart-area.d.ts → ojiepermana-angular-component-chart-area.d.ts} +0 -0
  404. /package/types/{ojiepermana-angular-ui-component-chart-bar.d.ts → ojiepermana-angular-component-chart-bar.d.ts} +0 -0
  405. /package/types/{ojiepermana-angular-ui-component-chart-line.d.ts → ojiepermana-angular-component-chart-line.d.ts} +0 -0
  406. /package/types/{ojiepermana-angular-ui-component-chart-pie.d.ts → ojiepermana-angular-component-chart-pie.d.ts} +0 -0
  407. /package/types/{ojiepermana-angular-ui-component-chart-radar.d.ts → ojiepermana-angular-component-chart-radar.d.ts} +0 -0
  408. /package/types/{ojiepermana-angular-ui-component-chart-radial.d.ts → ojiepermana-angular-component-chart-radial.d.ts} +0 -0
  409. /package/types/{ojiepermana-angular-ui-component-chart-scatter.d.ts → ojiepermana-angular-component-chart-scatter.d.ts} +0 -0
  410. /package/types/{ojiepermana-angular-ui-component-checkbox.d.ts → ojiepermana-angular-component-checkbox.d.ts} +0 -0
  411. /package/types/{ojiepermana-angular-ui-component-collapsible.d.ts → ojiepermana-angular-component-collapsible.d.ts} +0 -0
  412. /package/types/{ojiepermana-angular-ui-component-combobox.d.ts → ojiepermana-angular-component-combobox.d.ts} +0 -0
  413. /package/types/{ojiepermana-angular-ui-component-command.d.ts → ojiepermana-angular-component-command.d.ts} +0 -0
  414. /package/types/{ojiepermana-angular-ui-component-context-menu.d.ts → ojiepermana-angular-component-context-menu.d.ts} +0 -0
  415. /package/types/{ojiepermana-angular-ui-component-date-picker.d.ts → ojiepermana-angular-component-date-picker.d.ts} +0 -0
  416. /package/types/{ojiepermana-angular-ui-component-dialog.d.ts → ojiepermana-angular-component-dialog.d.ts} +0 -0
  417. /package/types/{ojiepermana-angular-ui-component-drawer.d.ts → ojiepermana-angular-component-drawer.d.ts} +0 -0
  418. /package/types/{ojiepermana-angular-ui-component-dropdown-menu.d.ts → ojiepermana-angular-component-dropdown-menu.d.ts} +0 -0
  419. /package/types/{ojiepermana-angular-ui-component-form.d.ts → ojiepermana-angular-component-form.d.ts} +0 -0
  420. /package/types/{ojiepermana-angular-ui-component-input-group.d.ts → ojiepermana-angular-component-input-group.d.ts} +0 -0
  421. /package/types/{ojiepermana-angular-ui-component-input.d.ts → ojiepermana-angular-component-input.d.ts} +0 -0
  422. /package/types/{ojiepermana-angular-ui-component-item.d.ts → ojiepermana-angular-component-item.d.ts} +0 -0
  423. /package/types/{ojiepermana-angular-ui-component-label.d.ts → ojiepermana-angular-component-label.d.ts} +0 -0
  424. /package/types/{ojiepermana-angular-ui-component-pagination.d.ts → ojiepermana-angular-component-pagination.d.ts} +0 -0
  425. /package/types/{ojiepermana-angular-ui-component-popover.d.ts → ojiepermana-angular-component-popover.d.ts} +0 -0
  426. /package/types/{ojiepermana-angular-ui-component-progress.d.ts → ojiepermana-angular-component-progress.d.ts} +0 -0
  427. /package/types/{ojiepermana-angular-ui-component-radio.d.ts → ojiepermana-angular-component-radio.d.ts} +0 -0
  428. /package/types/{ojiepermana-angular-ui-component-scroll-area.d.ts → ojiepermana-angular-component-scroll-area.d.ts} +0 -0
  429. /package/types/{ojiepermana-angular-ui-component-select.d.ts → ojiepermana-angular-component-select.d.ts} +0 -0
  430. /package/types/{ojiepermana-angular-ui-component-separator.d.ts → ojiepermana-angular-component-separator.d.ts} +0 -0
  431. /package/types/{ojiepermana-angular-ui-component-sheet.d.ts → ojiepermana-angular-component-sheet.d.ts} +0 -0
  432. /package/types/{ojiepermana-angular-ui-component-skeleton.d.ts → ojiepermana-angular-component-skeleton.d.ts} +0 -0
  433. /package/types/{ojiepermana-angular-ui-component-slider.d.ts → ojiepermana-angular-component-slider.d.ts} +0 -0
  434. /package/types/{ojiepermana-angular-ui-component-switch.d.ts → ojiepermana-angular-component-switch.d.ts} +0 -0
  435. /package/types/{ojiepermana-angular-ui-component-table.d.ts → ojiepermana-angular-component-table.d.ts} +0 -0
  436. /package/types/{ojiepermana-angular-ui-component-tabs.d.ts → ojiepermana-angular-component-tabs.d.ts} +0 -0
  437. /package/types/{ojiepermana-angular-ui-component-textarea.d.ts → ojiepermana-angular-component-textarea.d.ts} +0 -0
  438. /package/types/{ojiepermana-angular-ui-component-toast.d.ts → ojiepermana-angular-component-toast.d.ts} +0 -0
  439. /package/types/{ojiepermana-angular-ui-component-tooltip.d.ts → ojiepermana-angular-component-tooltip.d.ts} +0 -0
  440. /package/types/{ojiepermana-angular-ui-component-utils.d.ts → ojiepermana-angular-component-utils.d.ts} +0 -0
  441. /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-ui-component-select.mjs","sources":["../../../projects/angular/ui/component/select/src/lib/select.component.ts","../../../projects/angular/ui/component/select/src/lib/option.component.ts","../../../projects/angular/ui/component/select/ojiepermana-angular-ui-component-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-select',\n imports: [MatFormField, MatSelect],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectComponent), multi: true }],\n template: `\n <mat-form-field [class]=\"classes()\" subscriptSizing=\"dynamic\">\n <mat-select\n #ref\n disableRipple\n panelClass=\"ui-select-panel\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (selectionChange)=\"handleChange($event)\"\n (openedChange)=\"openedChange.emit($event)\">\n <ng-content />\n </mat-select>\n </mat-form-field>\n `,\n styleUrl: './select.component.css',\n})\nexport class SelectComponent implements ControlValueAccessor {\n readonly placeholder = input<string>('');\n readonly multiple = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n readonly class = input<string>('');\n\n readonly valueChange = output<unknown>();\n readonly openedChange = output<boolean>();\n\n private readonly ref = viewChild.required<MatSelect>('ref');\n\n protected readonly value = signal<unknown>(null);\n protected readonly disabled = signal<boolean>(false);\n protected readonly classes = computed(() => cn('ui-select-field w-full', this.class()));\n\n private onChange: (v: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n protected handleChange(e: MatSelectChange): void {\n this.value.set(e.value);\n this.onChange(e.value);\n this.onTouched();\n this.valueChange.emit(e.value);\n }\n\n open(): void {\n this.ref().open();\n }\n\n close(): void {\n this.ref().close();\n }\n\n focus(): void {\n this.ref().focus();\n }\n\n writeValue(v: unknown): void {\n this.value.set(v);\n }\n registerOnChange(fn: (v: unknown) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(d: boolean): void {\n this.disabled.set(d);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MatOption } from '@angular/material/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n/**\n * Option for `<ui-select>`. Wraps `mat-option` so the underlying `mat-select`\n * can still discover it via `@ContentChildren(MatOption, { descendants: true })`.\n */\n@Component({\n selector: 'ui-option',\n imports: [MatOption],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `\n <mat-option [value]=\"value()\" [disabled]=\"disabled()\">\n <ng-content />\n </mat-option>\n `,\n})\nexport class OptionComponent {\n readonly value = input.required<unknown>();\n readonly disabled = input<boolean>(false);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('contents', this.class()));\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-separator.mjs","sources":["../../../projects/angular/ui/component/separator/src/lib/separator.component.ts","../../../projects/angular/ui/component/separator/ojiepermana-angular-ui-component-separator.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type SeparatorOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'ui-separator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.role]': 'decorative() ? \"none\" : \"separator\"',\n '[attr.aria-orientation]': 'decorative() ? null : orientation()',\n '[attr.data-orientation]': 'orientation()',\n },\n template: '',\n})\nexport class SeparatorComponent {\n readonly orientation = input<SeparatorOrientation>('horizontal');\n readonly decorative = input<boolean>(true);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn('shrink-0 bg-border', this.orientation() === 'horizontal' ? 'h-px w-full' : 'h-full w-px', this.class()),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAgBa,kBAAkB,CAAA;AACpB,IAAA,WAAW,GAAG,KAAK,CAAuB,YAAY,kFAAC;AACvD,IAAA,UAAU,GAAG,KAAK,CAAU,IAAI,iFAAC;AACjC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,GAAG,aAAa,GAAG,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAC5G;wGAPU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,+qBAFnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAED,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;oBACxB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,aAAa,EAAE,qCAAqC;AACpD,wBAAA,yBAAyB,EAAE,qCAAqC;AAChE,wBAAA,yBAAyB,EAAE,eAAe;AAC3C,qBAAA;AACD,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;ACfD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-sheet.mjs","sources":["../../../projects/angular/ui/component/sheet/src/lib/sheet.component.ts","../../../projects/angular/ui/component/sheet/src/lib/sheet-close.directive.ts","../../../projects/angular/ui/component/sheet/src/lib/sheet-parts.component.ts","../../../projects/angular/ui/component/sheet/ojiepermana-angular-ui-component-sheet.ts"],"sourcesContent":["import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst SIDE_BASE: Record<SheetSide, string> = {\n top: 'inset-x-0 top-0 border-b border-border',\n bottom: 'inset-x-0 bottom-0 border-t border-border',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border sm:max-w-sm',\n right: 'inset-y-0 right-0 h-full w-3/4 border-l border-border sm:max-w-sm',\n};\n\nconst DRAWER_SIDE_CLASSES: Record<SheetSide, string> = {\n top: 'max-h-[85vh] rounded-b-lg',\n bottom: 'max-h-[85vh] rounded-t-lg',\n left: 'rounded-r-lg',\n right: 'rounded-l-lg',\n};\n\nconst SIDE_ENTER_FROM: Record<SheetSide, string> = {\n top: 'translateY(-100%)',\n bottom: 'translateY(100%)',\n left: 'translateX(-100%)',\n right: 'translateX(100%)',\n};\n\n@Component({\n selector: 'ui-sheet, ui-drawer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-template #tpl>\n <div\n class=\"ui-sheet-surface fixed z-50 bg-background shadow-lg transition ease-in-out\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"labelledBy()\"\n [attr.aria-describedby]=\"describedBy()\"\n [class]=\"surfaceClasses()\"\n [style.--ui-sheet-from]=\"enterFrom()\">\n <ng-content />\n </div>\n </ng-template>\n `,\n styles: [\n `\n .ui-sheet-surface {\n animation: ui-sheet-in 300ms cubic-bezier(0.2, 0, 0, 1);\n }\n @keyframes ui-sheet-in {\n from {\n transform: var(--ui-sheet-from);\n }\n to {\n transform: translate(0, 0);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .ui-sheet-surface {\n animation-duration: 0ms;\n }\n }\n `,\n ],\n})\nexport class SheetComponent {\n private readonly overlay = inject(Overlay);\n private readonly vcr = inject(ViewContainerRef);\n private readonly trapFactory = inject(FocusTrapFactory);\n private readonly doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly open = model<boolean>(false);\n readonly side = input<SheetSide | undefined>(undefined);\n readonly closeOnEscape = input<boolean>(true);\n readonly closeOnBackdropClick = input<boolean>(true);\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 tpl = viewChild.required<TemplateRef<unknown>>('tpl');\n private overlayRef: OverlayRef | null = null;\n private focusTrap: FocusTrap | null = null;\n private previousFocus: HTMLElement | null = null;\n\n private readonly resolvedSide = computed<SheetSide>(() => this.side() ?? (this.isDrawerHost() ? 'bottom' : 'right'));\n\n protected readonly surfaceClasses = computed(() =>\n cn(\n 'gap-4 p-6 flex flex-col',\n SIDE_BASE[this.resolvedSide()],\n this.isDrawerHost() ? DRAWER_SIDE_CLASSES[this.resolvedSide()] : '',\n this.class(),\n ),\n );\n\n protected readonly enterFrom = computed(() => SIDE_ENTER_FROM[this.resolvedSide()]);\n\n constructor() {\n effect(() => {\n this.open() ? this.attach() : this.detach();\n });\n }\n\n private attach(): void {\n if (this.overlayRef) return;\n this.previousFocus = this.doc.activeElement as HTMLElement | null;\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'ui-dialog-backdrop',\n panelClass: 'ui-sheet-panel',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global(),\n });\n\n const portal = new TemplatePortal(this.tpl(), this.vcr);\n this.overlayRef.attach(portal);\n\n this.focusTrap = this.trapFactory.create(this.overlayRef.hostElement);\n this.focusTrap.focusInitialElementWhenReady();\n\n if (this.closeOnBackdropClick()) {\n this.overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.open.set(false));\n }\n\n this.overlayRef\n .keydownEvents()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n filter((e) => e.key === 'Escape' && this.closeOnEscape()),\n )\n .subscribe((e) => {\n e.preventDefault();\n this.open.set(false);\n });\n\n this.openedChange.emit(true);\n }\n\n private detach(): void {\n if (!this.overlayRef) return;\n this.focusTrap?.destroy();\n this.focusTrap = null;\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.previousFocus?.focus?.();\n this.openedChange.emit(false);\n }\n\n close(): void {\n this.open.set(false);\n }\n\n private isDrawerHost(): boolean {\n return this.host.nativeElement.localName === 'ui-drawer';\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { SheetComponent } from './sheet.component';\n\n@Directive({\n selector: 'button[ui-sheet-close], a[ui-sheet-close], button[ui-drawer-close], a[ui-drawer-close]',\n host: {\n '(click)': 'closeSheet()',\n },\n})\nexport class SheetCloseDirective {\n private readonly sheet = inject(SheetComponent);\n\n closeSheet(): void {\n this.sheet.close();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-sheet-header, ui-drawer-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class SheetHeaderComponent {\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-sheet-title, ui-drawer-title, h2[ui-sheet-title], h2[ui-drawer-title]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class SheetTitleComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('text-lg font-semibold text-foreground', this.class()));\n}\n\n@Component({\n selector: 'ui-sheet-description, ui-drawer-description, p[ui-sheet-description], p[ui-drawer-description]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class SheetDescriptionComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('text-sm text-muted-foreground', this.class()));\n}\n\n@Component({\n selector: 'ui-sheet-content, ui-drawer-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class SheetContentComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('flex-1 overflow-auto', this.class()));\n}\n\n@Component({\n selector: 'ui-sheet-footer, ui-drawer-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class SheetFooterComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', 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-skeleton.mjs","sources":["../../../projects/angular/ui/component/skeleton/src/lib/skeleton.component.ts","../../../projects/angular/ui/component/skeleton/ojiepermana-angular-ui-component-skeleton.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-skeleton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.aria-hidden]': '\"true\"',\n },\n template: '',\n})\nexport class SkeletonComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('block animate-pulse rounded-md bg-muted', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,iBAAiB,CAAA;AACnB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,yCAAyC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAH7F,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,2RAFlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAED,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,oBAAoB,EAAE,QAAQ;AAC/B,qBAAA;AACD,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-slider.mjs","sources":["../../../projects/angular/ui/component/slider/src/lib/slider.component.ts","../../../projects/angular/ui/component/slider/ojiepermana-angular-ui-component-slider.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n/**\n * Styled native range input. Works with `ngModel` / `FormControl` via\n * Angular's built-in `RangeValueAccessor`. Keyboard + ARIA handled by the browser.\n */\n@Component({\n selector: 'input[type=range][ui-slider]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: '',\n styleUrl: './slider.component.css',\n})\nexport class SliderComponent {\n private readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'ui-slider relative w-full appearance-none bg-transparent',\n 'focus-visible:outline-none',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.class(),\n ),\n );\n\n focus(): void {\n this.el.nativeElement.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;MAQU,eAAe,CAAA;AACT,IAAA,EAAE,GAAG,MAAM,CAA+B,UAAU,CAAC;AAC7D,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEf,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,0DAA0D,EAC1D,4BAA4B,EAC5B,kDAAkD,EAClD,IAAI,CAAC,KAAK,EAAE,CACb,8EACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC/B;wGAfW,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,4QAHhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kpCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAGD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;+BACE,8BAA8B,EAAA,eAAA,EACvB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAA,QAAA,EACtB,EAAE,EAAA,MAAA,EAAA,CAAA,kpCAAA,CAAA,EAAA;;;ACXd;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-switch.mjs","sources":["../../../projects/angular/ui/component/switch/src/lib/switch.component.ts","../../../projects/angular/ui/component/switch/ojiepermana-angular-ui-component-switch.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatSlideToggle, MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n/**\n * Switch — shadcn-styled wrapper around `mat-slide-toggle`.\n */\n@Component({\n selector: 'ui-switch',\n imports: [MatSlideToggle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SwitchComponent), multi: true }],\n template: `\n <mat-slide-toggle\n #ref\n hideIcon\n disableRipple\n [class]=\"classes()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (change)=\"handleChange($event)\">\n <ng-content />\n </mat-slide-toggle>\n `,\n styleUrl: './switch.component.css',\n})\nexport class SwitchComponent implements ControlValueAccessor {\n readonly required = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n readonly class = input<string>('');\n\n readonly checkedChange = output<boolean>();\n\n private readonly ref = viewChild.required<MatSlideToggle>('ref');\n\n protected readonly checked = signal<boolean>(false);\n protected readonly disabled = signal<boolean>(false);\n protected readonly classes = computed(() => cn('ui-switch', this.class()));\n\n private onChange: (v: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n protected handleChange(e: MatSlideToggleChange): void {\n this.checked.set(e.checked);\n this.onChange(e.checked);\n this.onTouched();\n this.checkedChange.emit(e.checked);\n }\n\n focus(): void {\n this.ref().focus();\n }\n\n writeValue(v: boolean): void {\n this.checked.set(!!v);\n }\n registerOnChange(fn: (v: boolean) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(d: boolean): void {\n this.disabled.set(d);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAcA;;AAEG;MAuBU,eAAe,CAAA;AACjB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,+EAAC;IAChC,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IAC/D,cAAc,GAAG,KAAK,CAAgB,IAAI,sFAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;AACzE,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEzB,aAAa,GAAG,MAAM,EAAW;AAEzB,IAAA,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAiB,KAAK,CAAC;AAE7C,IAAA,OAAO,GAAG,MAAM,CAAU,KAAK,8EAAC;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,+EAAC;AACjC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;AAElE,IAAA,QAAQ,GAAyB,MAAK,EAAE,CAAC;AACzC,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAE9B,IAAA,YAAY,CAAC,CAAuB,EAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACpC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;IACpB;AAEA,IAAA,UAAU,CAAC,CAAU,EAAA;QACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB;AACA,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AACA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AACA,IAAA,gBAAgB,CAAC,CAAU,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB;wGAvCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAlBf,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAC9F;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,26DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjBS,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAoBb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ,CAAC,cAAc,CAAC,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAK,eAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAC9F;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,26DAAA,CAAA,EAAA;0gBAWyD,KAAK,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC/CjE;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-table.mjs","sources":["../../../projects/angular/ui/component/table/src/lib/table.component.ts","../../../projects/angular/ui/component/table/ojiepermana-angular-ui-component-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-table',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'relative block w-full overflow-x-auto' },\n template: `\n <table [class]=\"classes()\">\n <ng-content />\n </table>\n `,\n})\nexport class TableComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('w-full caption-bottom text-sm', this.class()));\n}\n\n@Component({\n selector: 'thead[ui-table-header]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableHeaderComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('[&_tr]:border-b [&_tr]:border-border', this.class()));\n}\n\n@Component({\n selector: 'tbody[ui-table-body]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableBodyComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('[&_tr:last-child]:border-0', this.class()));\n}\n\n@Component({\n selector: 'tfoot[ui-table-footer]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableFooterComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0', this.class()),\n );\n}\n\n@Component({\n selector: 'tr[ui-table-row]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableRowComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', this.class()),\n );\n}\n\n@Component({\n selector: 'th[ui-table-head]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableHeadComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-muted-foreground',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-[2px]',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'td[ui-table-cell]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableCellComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'whitespace-nowrap p-2 align-middle',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-[2px]',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'caption[ui-table-caption]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class TableCaptionComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('mt-4 text-sm text-muted-foreground', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,cAAc,CAAA;AAChB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,+BAA+B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFnF,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,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,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,cAAA,EAAA,uCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANf;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;oBACpB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE;AACxD,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA,CAAA;AACF,iBAAA;;MAYY,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAF1F,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,sQAFrB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,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,kBAAkB,CAAA;AACpB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFhF,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,oQAFnB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,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;;MAYY,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,uEAAuE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAC1F;wGAJU,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,sQAFrB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,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,iBAAiB,CAAA;AACnB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,2FAA2F,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAC9G;wGAJU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,gQAFlB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,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,kBAAkB,CAAA;AACpB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IACf,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,sFAAsF,EACtF,+BAA+B,EAC/B,uCAAuC,EACvC,IAAI,CAAC,KAAK,EAAE,CACb,8EACF;wGATU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,iQAFnB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAmBY,kBAAkB,CAAA;AACpB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IACf,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,oCAAoC,EACpC,+BAA+B,EAC/B,uCAAuC,EACvC,IAAI,CAAC,KAAK,EAAE,CACb,8EACF;wGATU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,iQAFnB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAmBY,qBAAqB,CAAA;AACvB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,oCAAoC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAFxF,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yQAFtB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;AC3GD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-tabs.mjs","sources":["../../../projects/angular/ui/component/tabs/src/lib/tabs.component.ts","../../../projects/angular/ui/component/tabs/ojiepermana-angular-ui-component-tabs.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n computed,\n forwardRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type TabsListVariant = 'default' | 'line';\n\ninterface TabsTriggerRegistration {\n readonly element: HTMLElement;\n readonly value: () => string;\n readonly disabled: () => boolean;\n}\n\nlet nextTabsId = 0;\n\n/**\n * Shared state for a tabs group. Children read the active value and register\n * themselves so the group can drive roving-tabindex keyboard navigation.\n */\n@Directive()\nexport abstract class TabsContextBase {\n abstract value: ReturnType<typeof model<string | null>>;\n abstract register(element: HTMLElement, value: () => string, disabled: () => boolean): void;\n abstract unregister(element: HTMLElement): void;\n abstract activate(value: string, focus?: boolean): void;\n abstract focusNext(from: HTMLElement, offset: number): void;\n abstract focusFirst(): void;\n abstract focusLast(): void;\n abstract triggerId(value: string): string;\n abstract contentId(value: string): string;\n}\n\n@Directive()\nexport abstract class TabsListContextBase {\n abstract listVariant(): TabsListVariant;\n}\n\n@Component({\n selector: 'ui-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: TabsContextBase, useExisting: forwardRef(() => TabsComponent) }],\n host: {\n '[class]': 'classes()',\n '[attr.data-orientation]': 'orientation()',\n },\n template: `<ng-content />`,\n})\nexport class TabsComponent extends TabsContextBase {\n readonly value = model<string | null>(null);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly class = input<string>('');\n\n private readonly idPrefix = `ui-tabs-${nextTabsId++}`;\n private readonly triggers = new Map<HTMLElement, TabsTriggerRegistration>();\n\n protected readonly classes = computed(() =>\n cn(this.orientation() === 'vertical' ? 'flex items-start gap-4' : 'block', this.class()),\n );\n\n override register(element: HTMLElement, value: () => string, disabled: () => boolean): void {\n this.triggers.set(element, { element, value, disabled });\n\n if (this.value() == null && !disabled()) {\n this.value.set(value());\n }\n }\n\n override unregister(element: HTMLElement): void {\n this.triggers.delete(element);\n }\n\n override activate(value: string, focus = false): void {\n const trigger = this.triggerForValue(value);\n if (!trigger || trigger.disabled()) return;\n\n this.value.set(value);\n if (focus) {\n trigger.element.focus();\n }\n }\n\n override focusNext(from: HTMLElement, offset: number): void {\n const enabledTriggers = this.enabledTriggers();\n const currentIndex = enabledTriggers.findIndex((trigger) => trigger.element === from);\n if (currentIndex < 0 || enabledTriggers.length === 0) return;\n\n const nextTrigger = enabledTriggers[(currentIndex + offset + enabledTriggers.length) % enabledTriggers.length];\n this.activate(nextTrigger.value(), true);\n }\n\n override focusFirst(): void {\n const firstTrigger = this.enabledTriggers()[0];\n if (firstTrigger) this.activate(firstTrigger.value(), true);\n }\n\n override focusLast(): void {\n const enabledTriggers = this.enabledTriggers();\n const lastTrigger = enabledTriggers[enabledTriggers.length - 1];\n if (lastTrigger) this.activate(lastTrigger.value(), true);\n }\n\n override triggerId(value: string): string {\n return `${this.idPrefix}-trigger-${this.normalizeValue(value)}`;\n }\n\n override contentId(value: string): string {\n return `${this.idPrefix}-content-${this.normalizeValue(value)}`;\n }\n\n private enabledTriggers(): TabsTriggerRegistration[] {\n return [...this.triggers.values()].filter((trigger) => !trigger.disabled());\n }\n\n private triggerForValue(value: string): TabsTriggerRegistration | undefined {\n return [...this.triggers.values()].find((trigger) => trigger.value() === value);\n }\n\n private normalizeValue(value: string): string {\n const normalized = value\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n\n return normalized || 'tab';\n }\n}\n\n@Component({\n selector: 'ui-tabs-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: TabsListContextBase, useExisting: forwardRef(() => TabsListComponent) }],\n host: {\n '[class]': 'classes()',\n '[attr.role]': '\"tablist\"',\n '[attr.aria-orientation]': 'ctx.orientation()',\n '[attr.data-variant]': 'variant()',\n },\n template: `<ng-content />`,\n})\nexport class TabsListComponent extends TabsListContextBase {\n protected readonly ctx = inject(TabsComponent);\n readonly variant = input<TabsListVariant>('default');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn(this.variantClasses(), this.class()));\n\n override listVariant(): TabsListVariant {\n return this.variant();\n }\n\n private variantClasses(): string {\n if (this.variant() === 'line') {\n return this.ctx.orientation() === 'vertical'\n ? 'inline-flex flex-col items-stretch justify-start gap-1 border-e border-border bg-transparent p-0 pe-3 text-muted-foreground'\n : 'inline-flex h-9 items-center justify-start gap-4 border-b border-border bg-transparent p-0 text-muted-foreground';\n }\n\n return this.ctx.orientation() === 'vertical'\n ? 'inline-flex flex-col items-stretch justify-start rounded-md bg-muted p-1 text-muted-foreground'\n : 'inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground';\n }\n}\n\n@Component({\n selector: 'button[ui-tabs-trigger]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[id]': 'triggerId()',\n type: 'button',\n '[attr.role]': '\"tab\"',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-controls]': 'contentId()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.tabindex]': 'selected() ? 0 : -1',\n '[attr.data-state]': 'selected() ? \"active\" : \"inactive\"',\n '[disabled]': 'disabled() || null',\n '(click)': 'onClick()',\n '(keydown.arrowRight)': 'onArrow($any($event), 1, \"horizontal\")',\n '(keydown.arrowLeft)': 'onArrow($any($event), -1, \"horizontal\")',\n '(keydown.arrowDown)': 'onArrow($any($event), 1, \"vertical\")',\n '(keydown.arrowUp)': 'onArrow($any($event), -1, \"vertical\")',\n '(keydown.home)': 'onHome($any($event))',\n '(keydown.end)': 'onEnd($any($event))',\n },\n template: `<ng-content />`,\n})\nexport class TabsTriggerComponent {\n protected readonly ctx = inject(TabsComponent);\n private readonly list = inject(TabsListContextBase, { optional: true });\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly value = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly class = input<string>('');\n\n protected readonly selected = computed(() => this.ctx.value() === this.value());\n protected readonly triggerId = computed(() => this.ctx.triggerId(this.value()));\n protected readonly contentId = computed(() => this.ctx.contentId(this.value()));\n\n protected readonly classes = computed(() =>\n cn(\n 'inline-flex items-center justify-center gap-1.5 whitespace-nowrap text-sm font-medium',\n 'ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.variantClasses(),\n this.class(),\n ),\n );\n\n ngOnInit(): void {\n this.ctx.register(this.el.nativeElement, this.value, this.disabled);\n }\n\n ngOnDestroy(): void {\n this.ctx.unregister(this.el.nativeElement);\n }\n\n protected onClick(): void {\n if (this.disabled()) return;\n this.ctx.activate(this.value());\n }\n\n protected onArrow(e: KeyboardEvent, delta: number, axis: 'horizontal' | 'vertical'): void {\n if (this.ctx.orientation() !== axis) return;\n e.preventDefault();\n this.ctx.focusNext(this.el.nativeElement, delta);\n }\n\n protected onHome(e: KeyboardEvent): void {\n e.preventDefault();\n this.ctx.focusFirst();\n }\n\n protected onEnd(e: KeyboardEvent): void {\n e.preventDefault();\n this.ctx.focusLast();\n }\n\n private variantClasses(): string {\n const variant = this.list?.listVariant() ?? 'default';\n\n if (variant === 'line') {\n return this.ctx.orientation() === 'vertical'\n ? 'w-full justify-start rounded-none border-e-2 border-transparent px-3 py-2 data-[state=active]:border-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:shadow-none'\n : 'rounded-none border-b-2 border-transparent px-2 py-2 data-[state=active]:border-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:shadow-none';\n }\n\n return cn(\n 'rounded-sm px-3 py-1.5 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',\n this.ctx.orientation() === 'vertical' && 'w-full justify-start',\n );\n }\n}\n\n@Component({\n selector: 'ui-tabs-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[id]': 'contentId()',\n '[attr.role]': '\"tabpanel\"',\n '[attr.aria-labelledby]': 'triggerId()',\n '[attr.data-state]': 'active() ? \"active\" : \"inactive\"',\n '[hidden]': '!active()',\n tabindex: '0',\n },\n template: `@if (active()) {\n <ng-content />\n }`,\n})\nexport class TabsContentComponent {\n private readonly ctx = inject(TabsComponent);\n readonly value = input.required<string>();\n readonly class = input<string>('');\n protected readonly active = computed(() => this.ctx.value() === this.value());\n protected readonly triggerId = computed(() => this.ctx.triggerId(this.value()));\n protected readonly contentId = computed(() => this.ctx.contentId(this.value()));\n protected readonly classes = computed(() =>\n cn(\n 'mt-2 block ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\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-textarea.mjs","sources":["../../../projects/angular/ui/component/textarea/src/lib/textarea.component.ts","../../../projects/angular/ui/component/textarea/ojiepermana-angular-ui-component-textarea.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'textarea[ui-textarea]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: '',\n})\nexport class TextareaComponent {\n private readonly el = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n [\n 'flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2',\n 'text-sm shadow-sm transition-colors',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive',\n ].join(' '),\n this.class(),\n ),\n );\n\n focus(): void {\n this.el.nativeElement.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,iBAAiB,CAAA;AACX,IAAA,EAAE,GAAG,MAAM,CAAkC,UAAU,CAAC;AAChE,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA;QACE,kFAAkF;QAClF,qCAAqC;QACrC,mCAAmC;QACnC,yEAAyE;QACzE,iDAAiD;QACjD,2FAA2F;KAC5F,CAAC,IAAI,CAAC,GAAG,CAAC,EACX,IAAI,CAAC,KAAK,EAAE,CACb,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC/B;wGApBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qQAFlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAED,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,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,EAAE;AACb,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-toast.mjs","sources":["../../../projects/angular/ui/component/toast/src/lib/toast.service.ts","../../../projects/angular/ui/component/toast/ojiepermana-angular-ui-component-toast.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\n\nexport type ToastVariant = 'default' | 'destructive' | 'success';\n\nexport interface ToastOptions {\n readonly title?: string;\n readonly description?: string;\n readonly action?: string;\n readonly variant?: ToastVariant;\n readonly durationMs?: number;\n readonly horizontalPosition?: MatSnackBarConfig['horizontalPosition'];\n readonly verticalPosition?: MatSnackBarConfig['verticalPosition'];\n}\n\n/**\n * Thin, opinionated wrapper over MatSnackBar that applies shadcn styling\n * via `panelClass: ui-toast-panel` and variant data attributes.\n */\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n private readonly snack = inject(MatSnackBar);\n\n show(options: ToastOptions): MatSnackBarRef<unknown> {\n const message = options.title\n ? options.description\n ? `${options.title}\\n${options.description}`\n : options.title\n : (options.description ?? '');\n\n const variant = options.variant ?? 'default';\n\n return this.snack.open(message, options.action ?? '', {\n duration: options.durationMs ?? 5000,\n horizontalPosition: options.horizontalPosition ?? 'end',\n verticalPosition: options.verticalPosition ?? 'bottom',\n panelClass: ['ui-toast-panel', `ui-toast-${variant}`],\n });\n }\n\n success(opts: Omit<ToastOptions, 'variant'>): MatSnackBarRef<unknown> {\n return this.show({ ...opts, variant: 'success' });\n }\n\n error(opts: Omit<ToastOptions, 'variant'>): MatSnackBarRef<unknown> {\n return this.show({ ...opts, variant: 'destructive' });\n }\n\n dismiss(): void {\n this.snack.dismiss();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAeA;;;AAGG;MAEU,YAAY,CAAA;AACN,IAAA,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;AAE5C,IAAA,IAAI,CAAC,OAAqB,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC;cACpB,OAAO,CAAC;kBACN,GAAG,OAAO,CAAC,KAAK,CAAA,EAAA,EAAK,OAAO,CAAC,WAAW,CAAA;kBACxC,OAAO,CAAC;eACT,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;AAE/B,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS;AAE5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE;AACpD,YAAA,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;AACpC,YAAA,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;AACvD,YAAA,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,QAAQ;AACtD,YAAA,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAA,SAAA,EAAY,OAAO,EAAE,CAAC;AACtD,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAmC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACnD;AAEA,IAAA,KAAK,CAAC,IAAmC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACvD;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACtB;wGA9BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACnBlC;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-tooltip.mjs","sources":["../../../projects/angular/ui/component/tooltip/src/lib/tooltip.directive.ts","../../../projects/angular/ui/component/tooltip/ojiepermana-angular-ui-component-tooltip.ts"],"sourcesContent":["import { Directive, effect, inject, input } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n/**\n * Shadcn-styled tooltip directive. Thin wrapper around `matTooltip` that\n * forces the shadcn panel class and sensible defaults.\n *\n * @example\n * <button ui-button [uiTooltip]=\"'Save changes'\" uiTooltipPosition=\"above\">Save</button>\n */\n@Directive({\n selector: '[uiTooltip]',\n hostDirectives: [\n {\n directive: MatTooltip,\n inputs: [\n 'matTooltipPosition: uiTooltipPosition',\n 'matTooltipDisabled: uiTooltipDisabled',\n 'matTooltipShowDelay: uiTooltipShowDelay',\n 'matTooltipHideDelay: uiTooltipHideDelay',\n 'matTooltipTouchGestures: uiTooltipTouchGestures',\n ],\n },\n ],\n exportAs: 'uiTooltip',\n})\nexport class TooltipDirective {\n private readonly tooltip = inject(MatTooltip, { host: true });\n\n readonly uiTooltip = input<string>('');\n\n constructor() {\n this.tooltip.tooltipClass = 'ui-tooltip-panel';\n effect(() => {\n this.tooltip.message = this.uiTooltip();\n });\n }\n\n show(): void {\n this.tooltip.show();\n }\n\n hide(): void {\n this.tooltip.hide();\n }\n}\n\nexport type { TooltipPosition };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAGA;;;;;;AAMG;MAiBU,gBAAgB,CAAA;IACV,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAEtC,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,kBAAkB;QAC9C,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;AACzC,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGAlBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAhB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,UAAU;AACrB,4BAAA,MAAM,EAAE;gCACN,uCAAuC;gCACvC,uCAAuC;gCACvC,yCAAyC;gCACzC,yCAAyC;gCACzC,iDAAiD;AAClD,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;;;ACzBD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ojiepermana-angular-ui-component-utils.mjs","sources":["../../../projects/angular/ui/component/utils/src/lib/cn.util.ts","../../../projects/angular/ui/component/utils/ojiepermana-angular-ui-component-utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGM,SAAU,EAAE,CAAC,GAAG,MAAoB,EAAA;AACxC,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B;;ACLA;;AAEG;;;;"}
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-layout-theme.mjs",
3
- "typings": "../../types/ojiepermana-angular-layout-theme.d.ts"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../fesm2022/ojiepermana-angular-navigation.mjs",
3
- "typings": "../types/ojiepermana-angular-navigation.d.ts"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../fesm2022/ojiepermana-angular-navigation-icon.mjs",
3
- "typings": "../types/ojiepermana-angular-navigation-icon.d.ts"
4
- }
@@ -1,375 +0,0 @@
1
- export * from '@ojiepermana/angular/navigation-icon';
2
- import * as _angular_core from '@angular/core';
3
- import { Params, QueryParamsHandling, IsActiveMatchOptions } from '@angular/router';
4
- import { ClassValue } from 'clsx';
5
-
6
- type NavigationItemType = 'aside' | 'basic' | 'collapsable' | 'divider' | 'group' | 'mega' | 'spacer';
7
- interface NavigationItemClasses {
8
- title?: string;
9
- subtitle?: string;
10
- icon?: string;
11
- wrapper?: string;
12
- }
13
- interface NavigationItemBadge {
14
- title?: string;
15
- classes?: string;
16
- }
17
- type NavigationVisibilityHandler = (item: NavigationItem) => boolean;
18
- type NavigationActionHandler = (item: NavigationItem) => void;
19
- interface NavigationItemBase {
20
- /** Unique identifier untuk item navigasi */
21
- id?: string;
22
- /** Judul/label yang ditampilkan */
23
- title?: string;
24
- /** Subtitle/deskripsi tambahan */
25
- subtitle?: string;
26
- /** Status aktif item */
27
- active?: boolean;
28
- /** Status disabled item */
29
- disabled?: boolean;
30
- /** Tooltip text saat hover */
31
- tooltip?: string;
32
- /** Custom CSS classes */
33
- classes?: NavigationItemClasses;
34
- /** Material Symbols icon name (ligature, e.g. `dashboard`, `menu_book`) */
35
- icon?: string;
36
- /** Badge configuration */
37
- badge?: NavigationItemBadge;
38
- /** Additional metadata */
39
- meta?: Record<string, unknown>;
40
- /** Function untuk hide/show item secara dinamis */
41
- isHidden?: NavigationVisibilityHandler;
42
- }
43
- interface NavigationRoutableItemBase extends NavigationItemBase {
44
- /** Angular router link */
45
- link?: string;
46
- /** URL fragment (#anchor) */
47
- fragment?: string;
48
- /** Preserve fragment saat navigasi */
49
- preserveFragment?: boolean;
50
- /** Query parameters untuk routing */
51
- queryParams?: Params | null;
52
- /** Cara handle query params */
53
- queryParamsHandling?: QueryParamsHandling | null;
54
- /** Flag untuk external link */
55
- externalLink?: boolean;
56
- /** Target untuk external link */
57
- target?: '_blank' | '_self' | '_parent' | '_top' | string;
58
- /** Exact match untuk active route */
59
- exactMatch?: boolean;
60
- /** Options untuk active match detection */
61
- isActiveMatchOptions?: IsActiveMatchOptions;
62
- /** Custom action yang dipanggil saat item diklik */
63
- action?: NavigationActionHandler;
64
- }
65
- interface NavigationBasicItem extends NavigationRoutableItemBase {
66
- type: 'basic';
67
- children?: never;
68
- }
69
- interface NavigationAsideItem extends NavigationRoutableItemBase {
70
- type: 'aside';
71
- children: NavigationItem[];
72
- }
73
- interface NavigationCollapsableItem extends NavigationRoutableItemBase {
74
- type: 'collapsable';
75
- children: NavigationItem[];
76
- }
77
- interface NavigationGroupItem extends NavigationItemBase {
78
- type: 'group';
79
- children: NavigationItem[];
80
- }
81
- /**
82
- * Mega menu branch — dirender sebagai panel full-width multi-kolom pada topbar.
83
- * Children biasanya berupa `NavigationGroupItem` (per kolom) berisi `basic` items.
84
- */
85
- interface NavigationMegaItem extends NavigationItemBase {
86
- type: 'mega';
87
- /** Jumlah kolom saat viewport >= md (default: 4) */
88
- columns?: number;
89
- children: NavigationItem[];
90
- }
91
- interface NavigationDividerItem extends NavigationItemBase {
92
- type: 'divider';
93
- children?: never;
94
- }
95
- interface NavigationSpacerItem extends NavigationItemBase {
96
- type: 'spacer';
97
- children?: never;
98
- }
99
- type NavigationBranchItem = NavigationAsideItem | NavigationCollapsableItem | NavigationGroupItem | NavigationMegaItem;
100
- type NavigationLeafItem = NavigationBasicItem | NavigationDividerItem | NavigationSpacerItem;
101
- type NavigationItem = NavigationBranchItem | NavigationLeafItem;
102
- /**
103
- * Navigation Item Interface
104
- *
105
- * Interface ini mendefinisikan struktur data untuk setiap item navigasi
106
- * Mendukung berbagai tipe item dan konfigurasi routing Angular
107
- */
108
- type NavigationStructuredItem = NavigationItem;
109
- /**
110
- * Sidebar Appearance
111
- * - default: full width (lebar penuh) dengan label + icon
112
- * - thin: icon-only, expand overlay saat hover
113
- */
114
- type SidebarAppearance = 'default' | 'thin';
115
- /**
116
- * Topbar Appearance
117
- * - default: horizontal dengan dropdown untuk collapsable
118
- * - megamenu: full-width panel multi-kolom untuk item `mega`
119
- */
120
- type TopbarAppearance = 'default' | 'megamenu';
121
- /** Sidebar desktop border ownership */
122
- type SidebarBorderSource = 'component' | 'layout';
123
- /** Sidebar position */
124
- type SidebarPosition = 'left' | 'right';
125
- /** Sidebar display mode */
126
- type SidebarMode = 'over' | 'side';
127
- type VerticalNavigationAppearance = SidebarAppearance;
128
- type VerticalNavigationBorderSource = SidebarBorderSource;
129
- type VerticalNavigationMode = SidebarMode;
130
- type VerticalNavigationPosition = SidebarPosition;
131
-
132
- /** Default registry key used when no id is specified. */
133
- declare const DEFAULT_NAVIGATION_ID = "main";
134
- /**
135
- * Signal-based global state untuk navigation (sidebar/topbar).
136
- *
137
- * Items disimpan dalam registry ber-key. Key default adalah `'main'`.
138
- * Komponen `sidebar` / `topbar` memilih registry via input `navigationId`.
139
- */
140
- declare class NavigationService {
141
- private readonly doc;
142
- private readonly router;
143
- private readonly destroyRef;
144
- private readonly persistedSidebarCollapsed;
145
- /** Internal version counter — incremented on every registry mutation. */
146
- private readonly _version;
147
- /** Internal map of registered navigation trees. */
148
- private readonly _registry;
149
- private readonly _collapsed;
150
- private readonly _hasStoredSidebarCollapse;
151
- /**
152
- * Backward-compatible accessor — returns items for the default (`'main'`) key.
153
- * Prefer `getItems(id)` when working with named registries.
154
- */
155
- readonly items: _angular_core.Signal<readonly NavigationItem[]>;
156
- /** Sidebar appearance preference (`default` or `thin`). */
157
- readonly sidebarAppearance: _angular_core.Signal<SidebarAppearance>;
158
- readonly hasStoredSidebarCollapse: _angular_core.Signal<boolean>;
159
- /** Sidebar collapsed (default ↔ thin) toggle untuk desktop. */
160
- readonly collapsed: _angular_core.Signal<boolean>;
161
- /** Sheet drawer terbuka di mobile. */
162
- readonly mobileOpen: _angular_core.WritableSignal<boolean>;
163
- /** Set id grup / collapsable yang sedang terbuka. */
164
- readonly openGroups: _angular_core.WritableSignal<ReadonlySet<string>>;
165
- /** URL aktif terakhir. Update otomatis dari Router `NavigationEnd`. */
166
- readonly activeUrl: _angular_core.WritableSignal<string>;
167
- /** Trail id item yang sedang match dengan URL aktif (across ALL registries). */
168
- readonly activeTrail: _angular_core.Signal<ReadonlySet<string>>;
169
- constructor();
170
- /**
171
- * Register items di registry.
172
- *
173
- * Overload:
174
- * - `registerItems(items)` → key `'main'`
175
- * - `registerItems(id, items)` → key spesifik
176
- */
177
- registerItems(items: NavigationItem[]): void;
178
- registerItems(id: string, items: NavigationItem[]): void;
179
- /** Remove a named registry entry. */
180
- removeItems(id: string): void;
181
- /**
182
- * Computed yang mengembalikan items untuk key tertentu.
183
- * Reactive terhadap perubahan registry.
184
- */
185
- getItems(id: string): () => readonly NavigationItem[];
186
- setSidebarAppearance(value: SidebarAppearance): void;
187
- toggleSidebarAppearance(currentAppearance?: SidebarAppearance): void;
188
- /** Toggle sidebar collapsed (default ↔ thin). */
189
- toggleCollapsed(): void;
190
- setCollapsed(value: boolean): void;
191
- openMobile(): void;
192
- closeMobile(): void;
193
- toggleMobile(): void;
194
- isGroupOpen(id: string): boolean;
195
- toggleGroup(id: string): void;
196
- setGroupOpen(id: string, open: boolean): void;
197
- /** Apakah id termasuk dalam active trail saat ini. */
198
- isActive(id: string | undefined): boolean;
199
- private readPersistedSidebarCollapsed;
200
- private persistSidebarCollapsed;
201
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationService, never>;
202
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavigationService>;
203
- }
204
-
205
- /** Concatenate and dedupe Tailwind class names. */
206
- declare function cn(...inputs: ClassValue[]): string;
207
-
208
- /**
209
- * Recursive navigation item renderer (vertical context).
210
- *
211
- * Menerima item polymorphic dan delegasi ke template sesuai `type`.
212
- * Mega dirender sebagai group biasa saat muncul di konteks vertical.
213
- */
214
- declare class UiNavItemComponent {
215
- private readonly nav;
216
- protected readonly cn: typeof cn;
217
- readonly item: _angular_core.InputSignal<NavigationItem>;
218
- readonly level: _angular_core.InputSignal<number>;
219
- /** Compact / icon-only rendering (sidebar `thin`). */
220
- readonly compact: _angular_core.InputSignal<boolean>;
221
- /** True when this branch sits inside a collapsable rail and can draw a connector back to it. */
222
- readonly railConnector: _angular_core.InputSignal<boolean>;
223
- protected readonly railConnectorDotClasses = "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";
224
- protected readonly exactMatch: {
225
- readonly exact: true;
226
- readonly paths: "exact";
227
- readonly queryParams: "exact";
228
- readonly fragment: "exact";
229
- readonly matrixParams: "exact";
230
- };
231
- protected readonly inexactMatch: {
232
- readonly paths: "subset";
233
- readonly queryParams: "subset";
234
- readonly fragment: "ignored";
235
- readonly matrixParams: "ignored";
236
- };
237
- protected readonly type: _angular_core.Signal<"aside" | "basic" | "collapsable" | "divider" | "group" | "mega" | "spacer">;
238
- protected readonly groupItem: _angular_core.Signal<NavigationGroupItem>;
239
- protected readonly collapsableItem: _angular_core.Signal<NavigationCollapsableItem>;
240
- protected readonly megaItem: _angular_core.Signal<NavigationMegaItem>;
241
- protected readonly asideItem: _angular_core.Signal<NavigationAsideItem>;
242
- protected readonly basicItem: _angular_core.Signal<NavigationBasicItem>;
243
- protected readonly headingId: _angular_core.Signal<string>;
244
- protected isGroupOpen(): boolean;
245
- protected isTrailActive(): boolean;
246
- protected railConnectorClasses(active: boolean): string;
247
- protected showRailConnector(active: boolean): boolean;
248
- protected toggleGroup(): void;
249
- protected runAction(): void;
250
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiNavItemComponent, never>;
251
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiNavItemComponent, "ui-nav-item", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "railConnector": { "alias": "railConnector"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
252
- }
253
-
254
- /**
255
- * Vertical navigation (sidebar) — shadcn-styled.
256
- *
257
- * Variants:
258
- * - `default`: 17.5rem, label + icon
259
- * - `thin`: 4rem icon-only; hover memunculkan overlay expand (tidak push konten)
260
- *
261
- * Mobile (`< md`): saat `autoMobile=true` (default), host desktop disembunyikan
262
- * dan konten dirender lewat CDK Overlay drawer dengan focus trap. State buka
263
- * dikontrol lewat `NavigationService.mobileOpen`.
264
- */
265
- declare class SidebarComponent {
266
- private readonly nav;
267
- private readonly bp;
268
- private readonly overlay;
269
- private readonly vcr;
270
- private readonly focusTrapFactory;
271
- private readonly doc;
272
- private readonly destroyRef;
273
- readonly items: _angular_core.InputSignal<NavigationItem[]>;
274
- /** Registry key di `NavigationService`. Default `'main'`. */
275
- readonly navigationId: _angular_core.InputSignal<string>;
276
- readonly appearance: _angular_core.InputSignal<SidebarAppearance>;
277
- /** Desktop border can be owned by the sidebar or by the surrounding layout shell. */
278
- readonly borderSource: _angular_core.InputSignal<SidebarBorderSource>;
279
- readonly position: _angular_core.InputSignal<SidebarPosition>;
280
- readonly ariaLabel: _angular_core.InputSignal<string>;
281
- readonly header: _angular_core.InputSignal<boolean>;
282
- readonly class: _angular_core.InputSignal<string>;
283
- /** Auto switch ke CDK overlay drawer saat viewport `< md`. */
284
- readonly autoMobile: _angular_core.InputSignal<boolean>;
285
- /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */
286
- readonly autoRegister: _angular_core.InputSignal<boolean>;
287
- /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */
288
- protected readonly resolvedItems: _angular_core.Signal<readonly NavigationItem[]>;
289
- private readonly hovered;
290
- private readonly suppressHoverUntilLeave;
291
- private readonly drawerTpl;
292
- private drawerRef;
293
- private focusTrap;
294
- private previouslyFocused;
295
- /** True saat viewport `< md` (767.98px). */
296
- protected readonly isMobileMedia: _angular_core.Signal<boolean>;
297
- protected readonly isMobile: _angular_core.Signal<boolean>;
298
- protected readonly resolvedCollapsed: _angular_core.Signal<boolean>;
299
- protected readonly resolvedAppearance: _angular_core.Signal<SidebarAppearance>;
300
- protected readonly hoverActive: _angular_core.Signal<boolean>;
301
- protected readonly isExpanded: _angular_core.Signal<boolean>;
302
- protected readonly isCompact: _angular_core.Signal<boolean>;
303
- protected readonly toggleButtonLabel: _angular_core.Signal<"Expand sidebar" | "Collapse sidebar">;
304
- constructor();
305
- protected readonly hostClasses: _angular_core.Signal<string>;
306
- protected readonly headerClasses: _angular_core.Signal<string>;
307
- protected readonly headerSlotClasses: _angular_core.Signal<string>;
308
- protected readonly navClasses: _angular_core.Signal<string>;
309
- protected readonly scrollViewportClasses: _angular_core.Signal<string>;
310
- protected readonly footerClasses: _angular_core.Signal<string>;
311
- protected readonly footerSlotClasses: _angular_core.Signal<string>;
312
- protected readonly innerClasses: _angular_core.Signal<string>;
313
- protected onHoverEnter(): void;
314
- protected onHoverLeave(): void;
315
- protected toggleAppearance(event: MouseEvent): void;
316
- /** Touch fallback: tap pada strip thin (ketika belum expanded) untuk expand. */
317
- protected onHostClick(event: MouseEvent): void;
318
- private openDrawer;
319
- private closeDrawer;
320
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
321
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "sidebar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "navigationId": { "alias": "navigationId"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "borderSource": { "alias": "borderSource"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "autoMobile": { "alias": "autoMobile"; "required": false; "isSignal": true; }; "autoRegister": { "alias": "autoRegister"; "required": false; "isSignal": true; }; }, {}, never, ["[sidebar-header]", "[sidebar-footer]"], true, never>;
322
- }
323
-
324
- /**
325
- * Horizontal navigation (topbar) — shadcn-styled.
326
- */
327
- declare class TopbarComponent {
328
- protected readonly nav: NavigationService;
329
- private readonly overlay;
330
- private readonly vcr;
331
- private readonly host;
332
- private readonly destroyRef;
333
- readonly items: _angular_core.InputSignal<NavigationItem[]>;
334
- /** Registry key di `NavigationService`. Default `'main'`. */
335
- readonly navigationId: _angular_core.InputSignal<string>;
336
- readonly appearance: _angular_core.InputSignal<TopbarAppearance>;
337
- readonly ariaLabel: _angular_core.InputSignal<string>;
338
- readonly class: _angular_core.InputSignal<string>;
339
- /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */
340
- readonly autoRegister: _angular_core.InputSignal<boolean>;
341
- /** Tampilkan hamburger di `< md` yang men-toggle mobile drawer sidebar. */
342
- readonly showHamburger: _angular_core.InputSignal<boolean>;
343
- readonly hamburgerLabel: _angular_core.InputSignal<string>;
344
- /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */
345
- protected readonly resolvedItems: _angular_core.Signal<readonly NavigationItem[]>;
346
- protected readonly openId: _angular_core.WritableSignal<string | null>;
347
- private active;
348
- private readonly dropdownTpl;
349
- constructor();
350
- protected readonly hostClasses: _angular_core.Signal<string>;
351
- protected readonly endSlotClasses: _angular_core.Signal<string>;
352
- protected asBasic(i: NavigationItem): NavigationBasicItem;
353
- protected asCollapsable(i: NavigationItem): NavigationCollapsableItem;
354
- protected asGroup(i: NavigationItem): NavigationGroupItem;
355
- protected isItemActive(id: string | undefined): boolean;
356
- protected toggleDropdown(trigger: HTMLElement, item: NavigationItem): void;
357
- protected openDropdown(trigger: HTMLElement, item: NavigationItem): void;
358
- private attach;
359
- protected closeAll(): void;
360
- /** Menubar keyboard navigation: ArrowLeft/Right antar trigger, Home/End, ArrowDown fokus panel. */
361
- protected onMenubarKeydown(event: KeyboardEvent): void;
362
- /** Arrow-key navigation dalam dropdown panel. */
363
- protected onPanelKeydown(event: KeyboardEvent): void;
364
- private collectPanelFocusables;
365
- private focusFirstInPanel;
366
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TopbarComponent, never>;
367
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TopbarComponent, "topbar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "navigationId": { "alias": "navigationId"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "autoRegister": { "alias": "autoRegister"; "required": false; "isSignal": true; }; "showHamburger": { "alias": "showHamburger"; "required": false; "isSignal": true; }; "hamburgerLabel": { "alias": "hamburgerLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[topbar-start]", "[topbar-end]"], true, never>;
368
- }
369
-
370
- declare const DemoNavigationData: NavigationItem[];
371
-
372
- declare const NAVIGATION_VERSION = "0.0.1";
373
-
374
- export { DEFAULT_NAVIGATION_ID, DemoNavigationData, NAVIGATION_VERSION, NavigationService, SidebarComponent, TopbarComponent, UiNavItemComponent };
375
- export type { NavigationActionHandler, NavigationAsideItem, NavigationBasicItem, NavigationBranchItem, NavigationCollapsableItem, NavigationDividerItem, NavigationGroupItem, NavigationItem, NavigationItemBadge, NavigationItemBase, NavigationItemClasses, NavigationItemType, NavigationLeafItem, NavigationMegaItem, NavigationRoutableItemBase, NavigationSpacerItem, NavigationStructuredItem, NavigationVisibilityHandler, SidebarAppearance, SidebarBorderSource, SidebarMode, SidebarPosition, TopbarAppearance, VerticalNavigationAppearance, VerticalNavigationBorderSource, VerticalNavigationMode, VerticalNavigationPosition };
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../../fesm2022/ojiepermana-angular-ui-component-accordion.mjs",
3
- "typings": "../../../types/ojiepermana-angular-ui-component-accordion.d.ts"
4
- }