@ojiepermana/angular 21.2.4 → 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 (345) hide show
  1. package/README.md +155 -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/README.md +249 -0
  15. package/component/chart/area/package.json +4 -0
  16. package/component/chart/bar/package.json +4 -0
  17. package/component/chart/line/package.json +4 -0
  18. package/component/chart/package.json +4 -0
  19. package/component/chart/pie/package.json +4 -0
  20. package/component/chart/radar/package.json +4 -0
  21. package/component/chart/radial/package.json +4 -0
  22. package/component/chart/scatter/package.json +4 -0
  23. package/component/checkbox/package.json +4 -0
  24. package/component/collapsible/package.json +4 -0
  25. package/component/combobox/package.json +4 -0
  26. package/component/command/package.json +4 -0
  27. package/component/context-menu/package.json +4 -0
  28. package/component/date-picker/package.json +4 -0
  29. package/component/dialog/package.json +4 -0
  30. package/component/drawer/package.json +4 -0
  31. package/component/dropdown-menu/package.json +4 -0
  32. package/component/form/package.json +4 -0
  33. package/component/input/package.json +4 -0
  34. package/component/input-group/package.json +4 -0
  35. package/component/item/package.json +4 -0
  36. package/component/label/package.json +4 -0
  37. package/component/pagination/package.json +4 -0
  38. package/component/popover/package.json +4 -0
  39. package/component/progress/package.json +4 -0
  40. package/component/radio/package.json +4 -0
  41. package/component/scroll-area/package.json +4 -0
  42. package/component/select/package.json +4 -0
  43. package/component/separator/package.json +4 -0
  44. package/component/sheet/package.json +4 -0
  45. package/component/skeleton/package.json +4 -0
  46. package/component/slider/package.json +4 -0
  47. package/component/switch/package.json +4 -0
  48. package/component/table/package.json +4 -0
  49. package/component/tabs/package.json +4 -0
  50. package/component/textarea/package.json +4 -0
  51. package/component/toast/package.json +4 -0
  52. package/component/tooltip/package.json +4 -0
  53. package/component/utils/package.json +4 -0
  54. package/fesm2022/ojiepermana-angular-component-accordion.mjs +174 -0
  55. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +1 -0
  56. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +242 -0
  57. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +1 -0
  58. package/fesm2022/ojiepermana-angular-component-alert.mjs +90 -0
  59. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +1 -0
  60. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +33 -0
  61. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +1 -0
  62. package/fesm2022/ojiepermana-angular-component-avatar.mjs +123 -0
  63. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +1 -0
  64. package/fesm2022/ojiepermana-angular-component-badge.mjs +47 -0
  65. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +1 -0
  66. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +186 -0
  67. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +1 -0
  68. package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -0
  69. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +1 -0
  70. package/fesm2022/ojiepermana-angular-component-button.mjs +64 -0
  71. package/fesm2022/ojiepermana-angular-component-button.mjs.map +1 -0
  72. package/fesm2022/ojiepermana-angular-component-calendar.mjs +78 -0
  73. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +1 -0
  74. package/fesm2022/ojiepermana-angular-component-card.mjs +137 -0
  75. package/fesm2022/ojiepermana-angular-component-card.mjs.map +1 -0
  76. package/fesm2022/ojiepermana-angular-component-carousel.mjs +310 -0
  77. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +1 -0
  78. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +6 -0
  79. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +1 -0
  80. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +6 -0
  81. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +1 -0
  82. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +6 -0
  83. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +1 -0
  84. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +6 -0
  85. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +1 -0
  86. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +6 -0
  87. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +1 -0
  88. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +6 -0
  89. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +1 -0
  90. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +6 -0
  91. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +1 -0
  92. package/fesm2022/{ojiepermana-angular-chart.mjs → ojiepermana-angular-component-chart.mjs} +2 -2
  93. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +1 -0
  94. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +104 -0
  95. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +1 -0
  96. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +116 -0
  97. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +1 -0
  98. package/fesm2022/ojiepermana-angular-component-combobox.mjs +263 -0
  99. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +1 -0
  100. package/fesm2022/ojiepermana-angular-component-command.mjs +268 -0
  101. package/fesm2022/ojiepermana-angular-component-command.mjs.map +1 -0
  102. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +100 -0
  103. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +1 -0
  104. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +155 -0
  105. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +1 -0
  106. package/fesm2022/ojiepermana-angular-component-dialog.mjs +262 -0
  107. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +1 -0
  108. package/fesm2022/ojiepermana-angular-component-drawer.mjs +6 -0
  109. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +1 -0
  110. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +458 -0
  111. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +1 -0
  112. package/fesm2022/ojiepermana-angular-component-form.mjs +208 -0
  113. package/fesm2022/ojiepermana-angular-component-form.mjs.map +1 -0
  114. package/fesm2022/ojiepermana-angular-component-input-group.mjs +164 -0
  115. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +1 -0
  116. package/fesm2022/ojiepermana-angular-component-input.mjs +43 -0
  117. package/fesm2022/ojiepermana-angular-component-input.mjs.map +1 -0
  118. package/fesm2022/ojiepermana-angular-component-item.mjs +241 -0
  119. package/fesm2022/ojiepermana-angular-component-item.mjs.map +1 -0
  120. package/fesm2022/ojiepermana-angular-component-label.mjs +30 -0
  121. package/fesm2022/ojiepermana-angular-component-label.mjs.map +1 -0
  122. package/fesm2022/ojiepermana-angular-component-pagination.mjs +192 -0
  123. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +1 -0
  124. package/fesm2022/ojiepermana-angular-component-popover.mjs +163 -0
  125. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +1 -0
  126. package/fesm2022/ojiepermana-angular-component-progress.mjs +53 -0
  127. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +1 -0
  128. package/fesm2022/ojiepermana-angular-component-radio.mjs +92 -0
  129. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +1 -0
  130. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +48 -0
  131. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +1 -0
  132. package/fesm2022/ojiepermana-angular-component-select.mjs +131 -0
  133. package/fesm2022/ojiepermana-angular-component-select.mjs.map +1 -0
  134. package/fesm2022/ojiepermana-angular-component-separator.mjs +33 -0
  135. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +1 -0
  136. package/fesm2022/ojiepermana-angular-component-sheet.mjs +235 -0
  137. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +1 -0
  138. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +29 -0
  139. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +1 -0
  140. package/fesm2022/ojiepermana-angular-component-slider.mjs +29 -0
  141. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +1 -0
  142. package/fesm2022/ojiepermana-angular-component-switch.mjs +84 -0
  143. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +1 -0
  144. package/fesm2022/ojiepermana-angular-component-table.mjs +139 -0
  145. package/fesm2022/ojiepermana-angular-component-table.mjs.map +1 -0
  146. package/fesm2022/ojiepermana-angular-component-tabs.mjs +252 -0
  147. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +1 -0
  148. package/fesm2022/ojiepermana-angular-component-textarea.mjs +37 -0
  149. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +1 -0
  150. package/fesm2022/ojiepermana-angular-component-toast.mjs +47 -0
  151. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +1 -0
  152. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +56 -0
  153. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +1 -0
  154. package/fesm2022/ojiepermana-angular-component-utils.mjs +13 -0
  155. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +1 -0
  156. package/fesm2022/ojiepermana-angular-generator-api.mjs +2 -1
  157. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +1 -1
  158. package/fesm2022/ojiepermana-angular-layout-component.mjs +581 -0
  159. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +1 -0
  160. package/fesm2022/ojiepermana-angular-layout-empty.mjs +49 -0
  161. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +1 -0
  162. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs +119 -0
  163. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +1 -0
  164. package/fesm2022/ojiepermana-angular-layout-provider.mjs +21 -0
  165. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +1 -0
  166. package/fesm2022/ojiepermana-angular-layout-services.mjs +114 -0
  167. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +1 -0
  168. package/fesm2022/ojiepermana-angular-layout-shell.mjs +48 -0
  169. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +1 -0
  170. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +27 -0
  171. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +1 -0
  172. package/fesm2022/ojiepermana-angular-layout-token.mjs +33 -0
  173. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +1 -0
  174. package/fesm2022/ojiepermana-angular-layout-vertical.mjs +113 -0
  175. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +1 -0
  176. package/fesm2022/ojiepermana-angular-layout.mjs +141 -137
  177. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  178. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +334 -0
  179. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +1 -0
  180. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +59 -0
  181. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +1 -0
  182. package/fesm2022/ojiepermana-angular-navigation-item.mjs +548 -0
  183. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +1 -0
  184. package/fesm2022/ojiepermana-angular-navigation-service.mjs +204 -0
  185. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +1 -0
  186. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +373 -0
  187. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +1 -0
  188. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +433 -0
  189. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +1 -0
  190. package/fesm2022/ojiepermana-angular-navigation-types.mjs +4 -0
  191. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +1 -0
  192. package/fesm2022/ojiepermana-angular-theme-provider.mjs +35 -0
  193. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +1 -0
  194. package/fesm2022/ojiepermana-angular-theme-services.mjs +286 -0
  195. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +1 -0
  196. package/fesm2022/ojiepermana-angular-theme-token.mjs +56 -0
  197. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +1 -0
  198. package/fesm2022/ojiepermana-angular-theme.mjs +31 -56
  199. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  200. package/fesm2022/ojiepermana-angular.mjs +7 -6
  201. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  202. package/generator/api/README.md +18 -15
  203. package/generator/api/bin/schematics/init/index.js +4 -2
  204. package/generator/api/bin/src/config/schema.js +2 -1
  205. package/generator/api/bin/src/emit/navigation.js +1 -1
  206. package/generator/api/bin/src/layout/per-domain.js +7 -3
  207. package/generator/api/sdk.config.example.json +4 -2
  208. package/layout/component/package.json +4 -0
  209. package/layout/empty/package.json +4 -0
  210. package/layout/horizontal/package.json +4 -0
  211. package/layout/provider/package.json +4 -0
  212. package/layout/services/package.json +4 -0
  213. package/layout/shell/package.json +4 -0
  214. package/layout/token/directive/package.json +4 -0
  215. package/layout/token/package.json +4 -0
  216. package/layout/vertical/package.json +4 -0
  217. package/navigation/demo-data/package.json +4 -0
  218. package/navigation/icon/package.json +4 -0
  219. package/navigation/item/package.json +4 -0
  220. package/navigation/service/package.json +4 -0
  221. package/navigation/sidebar/package.json +4 -0
  222. package/navigation/topbar/package.json +4 -0
  223. package/navigation/types/package.json +4 -0
  224. package/package.json +284 -16
  225. package/theme/README.md +67 -0
  226. package/theme/provider/package.json +4 -0
  227. package/theme/services/package.json +4 -0
  228. package/theme/styles/index.css +12 -7
  229. package/theme/token/package.json +4 -0
  230. package/types/ojiepermana-angular-component-accordion.d.ts +51 -0
  231. package/types/ojiepermana-angular-component-alert-dialog.d.ts +93 -0
  232. package/types/ojiepermana-angular-component-alert.d.ts +37 -0
  233. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -0
  234. package/types/ojiepermana-angular-component-avatar.d.ts +51 -0
  235. package/types/ojiepermana-angular-component-badge.d.ts +19 -0
  236. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -0
  237. package/types/ojiepermana-angular-component-button-group.d.ts +26 -0
  238. package/types/ojiepermana-angular-component-button.d.ts +22 -0
  239. package/types/ojiepermana-angular-component-calendar.d.ts +33 -0
  240. package/types/ojiepermana-angular-component-card.d.ts +60 -0
  241. package/types/ojiepermana-angular-component-carousel.d.ts +86 -0
  242. package/types/ojiepermana-angular-component-chart-area.d.ts +1 -0
  243. package/types/ojiepermana-angular-component-chart-bar.d.ts +1 -0
  244. package/types/ojiepermana-angular-component-chart-line.d.ts +1 -0
  245. package/types/ojiepermana-angular-component-chart-pie.d.ts +1 -0
  246. package/types/ojiepermana-angular-component-chart-radar.d.ts +1 -0
  247. package/types/ojiepermana-angular-component-chart-radial.d.ts +1 -0
  248. package/types/ojiepermana-angular-component-chart-scatter.d.ts +1 -0
  249. package/types/{ojiepermana-angular-chart.d.ts → ojiepermana-angular-component-chart.d.ts} +15 -15
  250. package/types/ojiepermana-angular-component-checkbox.d.ts +35 -0
  251. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -0
  252. package/types/ojiepermana-angular-component-combobox.d.ts +51 -0
  253. package/types/ojiepermana-angular-component-command.d.ts +99 -0
  254. package/types/ojiepermana-angular-component-context-menu.d.ts +35 -0
  255. package/types/ojiepermana-angular-component-date-picker.d.ts +41 -0
  256. package/types/ojiepermana-angular-component-dialog.d.ts +87 -0
  257. package/types/ojiepermana-angular-component-drawer.d.ts +1 -0
  258. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +135 -0
  259. package/types/ojiepermana-angular-component-form.d.ts +92 -0
  260. package/types/ojiepermana-angular-component-input-group.d.ts +51 -0
  261. package/types/ojiepermana-angular-component-input.d.ts +16 -0
  262. package/types/ojiepermana-angular-component-item.d.ts +88 -0
  263. package/types/ojiepermana-angular-component-label.d.ts +11 -0
  264. package/types/ojiepermana-angular-component-pagination.d.ts +27 -0
  265. package/types/ojiepermana-angular-component-popover.d.ts +43 -0
  266. package/types/ojiepermana-angular-component-progress.d.ts +17 -0
  267. package/types/ojiepermana-angular-component-radio.d.ts +34 -0
  268. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -0
  269. package/types/ojiepermana-angular-component-select.d.ts +45 -0
  270. package/types/ojiepermana-angular-component-separator.d.ts +14 -0
  271. package/types/ojiepermana-angular-component-sheet.d.ts +74 -0
  272. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -0
  273. package/types/ojiepermana-angular-component-slider.d.ts +16 -0
  274. package/types/ojiepermana-angular-component-switch.d.ts +30 -0
  275. package/types/ojiepermana-angular-component-table.d.ts +52 -0
  276. package/types/ojiepermana-angular-component-tabs.d.ts +92 -0
  277. package/types/ojiepermana-angular-component-textarea.d.ts +12 -0
  278. package/types/ojiepermana-angular-component-toast.d.ts +29 -0
  279. package/types/ojiepermana-angular-component-tooltip.d.ts +22 -0
  280. package/types/ojiepermana-angular-component-utils.d.ts +5 -0
  281. package/types/ojiepermana-angular-generator-api.d.ts +2 -1
  282. package/types/ojiepermana-angular-layout-component.d.ts +205 -0
  283. package/types/ojiepermana-angular-layout-empty.d.ts +22 -0
  284. package/types/ojiepermana-angular-layout-horizontal.d.ts +36 -0
  285. package/types/ojiepermana-angular-layout-provider.d.ts +6 -0
  286. package/types/ojiepermana-angular-layout-services.d.ts +25 -0
  287. package/types/ojiepermana-angular-layout-shell.d.ts +8 -0
  288. package/types/ojiepermana-angular-layout-token-directive.d.ts +13 -0
  289. package/types/ojiepermana-angular-layout-token.d.ts +36 -0
  290. package/types/ojiepermana-angular-layout-vertical.d.ts +38 -0
  291. package/types/ojiepermana-angular-layout.d.ts +27 -26
  292. package/types/ojiepermana-angular-navigation-demo-data.d.ts +5 -0
  293. package/types/ojiepermana-angular-navigation-icon.d.ts +17 -0
  294. package/types/ojiepermana-angular-navigation-item.d.ts +54 -0
  295. package/types/ojiepermana-angular-navigation-service.d.ts +77 -0
  296. package/types/ojiepermana-angular-navigation-sidebar.d.ts +75 -0
  297. package/types/ojiepermana-angular-navigation-topbar.d.ts +54 -0
  298. package/types/ojiepermana-angular-navigation-types.d.ts +129 -0
  299. package/types/ojiepermana-angular-theme-provider.d.ts +11 -0
  300. package/types/ojiepermana-angular-theme-services.d.ts +55 -0
  301. package/types/ojiepermana-angular-theme-token.d.ts +57 -0
  302. package/types/ojiepermana-angular-theme.d.ts +11 -66
  303. package/chart/README.md +0 -0
  304. package/chart/package.json +0 -4
  305. package/component/package.json +0 -4
  306. package/fesm2022/ojiepermana-angular-chart.mjs.map +0 -1
  307. package/fesm2022/ojiepermana-angular-component.mjs +0 -5774
  308. package/fesm2022/ojiepermana-angular-component.mjs.map +0 -1
  309. package/fesm2022/ojiepermana-angular-navigation.mjs +0 -2369
  310. package/fesm2022/ojiepermana-angular-navigation.mjs.map +0 -1
  311. package/navigation/package.json +0 -4
  312. package/types/ojiepermana-angular-component.d.ts +0 -1927
  313. package/types/ojiepermana-angular-navigation.d.ts +0 -393
  314. /package/theme/styles/{themes/library/_components.css → foundation/components.css} +0 -0
  315. /package/theme/styles/{themes/library/_layers.css → foundation/layers.css} +0 -0
  316. /package/theme/styles/{themes/library/_tokens.css → foundation/tokens.css} +0 -0
  317. /package/theme/styles/{themes/library/_material-overrides.css → integrations/material.css} +0 -0
  318. /package/theme/styles/{themes → integrations}/tailwind.css +0 -0
  319. /package/theme/styles/{themes/library → variants}/color/amber.css +0 -0
  320. /package/theme/styles/{themes/library → variants}/color/base.css +0 -0
  321. /package/theme/styles/{themes/library → variants}/color/blue.css +0 -0
  322. /package/theme/styles/{themes/library → variants}/color/cyan.css +0 -0
  323. /package/theme/styles/{themes/library → variants}/color/emerald.css +0 -0
  324. /package/theme/styles/{themes/library → variants}/color/fuchsia.css +0 -0
  325. /package/theme/styles/{themes/library → variants}/color/green.css +0 -0
  326. /package/theme/styles/{themes/library → variants}/color/index.css +0 -0
  327. /package/theme/styles/{themes/library → variants}/color/indigo.css +0 -0
  328. /package/theme/styles/{themes/library → variants}/color/lime.css +0 -0
  329. /package/theme/styles/{themes/library → variants}/color/orange.css +0 -0
  330. /package/theme/styles/{themes/library → variants}/color/pink.css +0 -0
  331. /package/theme/styles/{themes/library → variants}/color/purple.css +0 -0
  332. /package/theme/styles/{themes/library → variants}/color/red.css +0 -0
  333. /package/theme/styles/{themes/library → variants}/color/rose.css +0 -0
  334. /package/theme/styles/{themes/library → variants}/color/sky.css +0 -0
  335. /package/theme/styles/{themes/library → variants}/color/teal.css +0 -0
  336. /package/theme/styles/{themes/library → variants}/color/violet.css +0 -0
  337. /package/theme/styles/{themes/library → variants}/color/yellow.css +0 -0
  338. /package/theme/styles/{themes → variants}/mode/dark.css +0 -0
  339. /package/theme/styles/{themes → variants}/mode/index.css +0 -0
  340. /package/theme/styles/{themes → variants}/mode/light.css +0 -0
  341. /package/theme/styles/{themes/library → variants}/style/brutal.css +0 -0
  342. /package/theme/styles/{themes/library → variants}/style/default.css +0 -0
  343. /package/theme/styles/{themes/library → variants}/style/index.css +0 -0
  344. /package/theme/styles/{themes/library → variants}/style/sharp.css +0 -0
  345. /package/theme/styles/{themes/library → variants}/style/soft.css +0 -0
@@ -0,0 +1,77 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { NavigationItem, SidebarAppearance } from '@ojiepermana/angular/navigation/types';
3
+
4
+ /** Default registry key used when no id is specified. */
5
+ declare const DEFAULT_NAVIGATION_ID = "main";
6
+ /**
7
+ * Signal-based global state untuk navigation (sidebar/topbar).
8
+ *
9
+ * Items disimpan dalam registry ber-key. Key default adalah `'main'`.
10
+ * Komponen `sidebar` / `topbar` memilih registry via input `navigationId`.
11
+ */
12
+ declare class NavigationService {
13
+ private readonly doc;
14
+ private readonly router;
15
+ private readonly destroyRef;
16
+ private readonly persistedSidebarCollapsed;
17
+ /** Internal version counter — incremented on every registry mutation. */
18
+ private readonly _version;
19
+ /** Internal map of registered navigation trees. */
20
+ private readonly _registry;
21
+ private readonly _collapsed;
22
+ private readonly _hasStoredSidebarCollapse;
23
+ /**
24
+ * Backward-compatible accessor — returns items for the default (`'main'`) key.
25
+ * Prefer `getItems(id)` when working with named registries.
26
+ */
27
+ readonly items: _angular_core.Signal<readonly NavigationItem[]>;
28
+ /** Sidebar appearance preference (`default` or `thin`). */
29
+ readonly sidebarAppearance: _angular_core.Signal<SidebarAppearance>;
30
+ readonly hasStoredSidebarCollapse: _angular_core.Signal<boolean>;
31
+ /** Sidebar collapsed (default ↔ thin) toggle untuk desktop. */
32
+ readonly collapsed: _angular_core.Signal<boolean>;
33
+ /** Sheet drawer terbuka di mobile. */
34
+ readonly mobileOpen: _angular_core.WritableSignal<boolean>;
35
+ /** Set id grup / collapsable yang sedang terbuka. */
36
+ readonly openGroups: _angular_core.WritableSignal<ReadonlySet<string>>;
37
+ /** URL aktif terakhir. Update otomatis dari Router `NavigationEnd`. */
38
+ readonly activeUrl: _angular_core.WritableSignal<string>;
39
+ /** Trail id item yang sedang match dengan URL aktif (across ALL registries). */
40
+ readonly activeTrail: _angular_core.Signal<ReadonlySet<string>>;
41
+ constructor();
42
+ /**
43
+ * Register items di registry.
44
+ *
45
+ * Overload:
46
+ * - `registerItems(items)` → key `'main'`
47
+ * - `registerItems(id, items)` → key spesifik
48
+ */
49
+ registerItems(items: NavigationItem[]): void;
50
+ registerItems(id: string, items: NavigationItem[]): void;
51
+ /** Remove a named registry entry. */
52
+ removeItems(id: string): void;
53
+ /**
54
+ * Computed yang mengembalikan items untuk key tertentu.
55
+ * Reactive terhadap perubahan registry.
56
+ */
57
+ getItems(id: string): () => readonly NavigationItem[];
58
+ setSidebarAppearance(value: SidebarAppearance): void;
59
+ toggleSidebarAppearance(currentAppearance?: SidebarAppearance): void;
60
+ /** Toggle sidebar collapsed (default ↔ thin). */
61
+ toggleCollapsed(): void;
62
+ setCollapsed(value: boolean): void;
63
+ openMobile(): void;
64
+ closeMobile(): void;
65
+ toggleMobile(): void;
66
+ isGroupOpen(id: string): boolean;
67
+ toggleGroup(id: string): void;
68
+ setGroupOpen(id: string, open: boolean): void;
69
+ /** Apakah id termasuk dalam active trail saat ini. */
70
+ isActive(id: string | undefined): boolean;
71
+ private readPersistedSidebarCollapsed;
72
+ private persistSidebarCollapsed;
73
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationService, never>;
74
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavigationService>;
75
+ }
76
+
77
+ export { DEFAULT_NAVIGATION_ID, NavigationService };
@@ -0,0 +1,75 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { NavigationItem, SidebarAppearance, SidebarBorderSource, SidebarPosition } from '@ojiepermana/angular/navigation/types';
3
+ export { SidebarAppearance, SidebarBorderSource, SidebarMode, SidebarPosition } from '@ojiepermana/angular/navigation/types';
4
+
5
+ /**
6
+ * Vertical navigation (sidebar) — shadcn-styled.
7
+ *
8
+ * Variants:
9
+ * - `default`: 17.5rem, label + icon
10
+ * - `thin`: 4rem icon-only; hover memunculkan overlay expand (tidak push konten)
11
+ *
12
+ * Mobile (`< md`): saat `autoMobile=true` (default), host desktop disembunyikan
13
+ * dan konten dirender lewat CDK Overlay drawer dengan focus trap. State buka
14
+ * dikontrol lewat `NavigationService.mobileOpen`.
15
+ */
16
+ declare class SidebarComponent {
17
+ private readonly nav;
18
+ private readonly bp;
19
+ private readonly overlay;
20
+ private readonly vcr;
21
+ private readonly focusTrapFactory;
22
+ private readonly doc;
23
+ private readonly destroyRef;
24
+ readonly items: _angular_core.InputSignal<NavigationItem[]>;
25
+ /** Registry key di `NavigationService`. Default `'main'`. */
26
+ readonly navigationId: _angular_core.InputSignal<string>;
27
+ readonly appearance: _angular_core.InputSignal<SidebarAppearance>;
28
+ /** Desktop border can be owned by the sidebar or by the surrounding layout shell. */
29
+ readonly borderSource: _angular_core.InputSignal<SidebarBorderSource>;
30
+ readonly position: _angular_core.InputSignal<SidebarPosition>;
31
+ readonly ariaLabel: _angular_core.InputSignal<string>;
32
+ readonly header: _angular_core.InputSignal<boolean>;
33
+ readonly class: _angular_core.InputSignal<string>;
34
+ /** Auto switch ke CDK overlay drawer saat viewport `< md`. */
35
+ readonly autoMobile: _angular_core.InputSignal<boolean>;
36
+ /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */
37
+ readonly autoRegister: _angular_core.InputSignal<boolean>;
38
+ /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */
39
+ protected readonly resolvedItems: _angular_core.Signal<readonly NavigationItem[]>;
40
+ private readonly hovered;
41
+ private readonly suppressHoverUntilLeave;
42
+ private readonly drawerTpl;
43
+ private drawerRef;
44
+ private focusTrap;
45
+ private previouslyFocused;
46
+ /** True saat viewport `< md` (767.98px). */
47
+ protected readonly isMobileMedia: _angular_core.Signal<boolean>;
48
+ protected readonly isMobile: _angular_core.Signal<boolean>;
49
+ protected readonly resolvedCollapsed: _angular_core.Signal<boolean>;
50
+ protected readonly resolvedAppearance: _angular_core.Signal<SidebarAppearance>;
51
+ protected readonly hoverActive: _angular_core.Signal<boolean>;
52
+ protected readonly isExpanded: _angular_core.Signal<boolean>;
53
+ protected readonly isCompact: _angular_core.Signal<boolean>;
54
+ protected readonly toggleButtonLabel: _angular_core.Signal<"Expand sidebar" | "Collapse sidebar">;
55
+ constructor();
56
+ protected readonly hostClasses: _angular_core.Signal<string>;
57
+ protected readonly headerClasses: _angular_core.Signal<string>;
58
+ protected readonly headerSlotClasses: _angular_core.Signal<string>;
59
+ protected readonly navClasses: _angular_core.Signal<string>;
60
+ protected readonly scrollViewportClasses: _angular_core.Signal<string>;
61
+ protected readonly footerClasses: _angular_core.Signal<string>;
62
+ protected readonly footerSlotClasses: _angular_core.Signal<string>;
63
+ protected readonly innerClasses: _angular_core.Signal<string>;
64
+ protected onHoverEnter(): void;
65
+ protected onHoverLeave(): void;
66
+ protected toggleAppearance(event: MouseEvent): void;
67
+ /** Touch fallback: tap pada strip thin (ketika belum expanded) untuk expand. */
68
+ protected onHostClick(event: MouseEvent): void;
69
+ private openDrawer;
70
+ private closeDrawer;
71
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
72
+ 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>;
73
+ }
74
+
75
+ export { SidebarComponent };
@@ -0,0 +1,54 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { NavigationService } from '@ojiepermana/angular/navigation/service';
3
+ import { NavigationItem, TopbarAppearance, NavigationBasicItem, NavigationCollapsableItem, NavigationGroupItem } from '@ojiepermana/angular/navigation/types';
4
+ export { TopbarAppearance } from '@ojiepermana/angular/navigation/types';
5
+
6
+ /**
7
+ * Horizontal navigation (topbar) — shadcn-styled.
8
+ */
9
+ declare class TopbarComponent {
10
+ protected readonly nav: NavigationService;
11
+ private readonly overlay;
12
+ private readonly vcr;
13
+ private readonly host;
14
+ private readonly destroyRef;
15
+ readonly items: _angular_core.InputSignal<NavigationItem[]>;
16
+ /** Registry key di `NavigationService`. Default `'main'`. */
17
+ readonly navigationId: _angular_core.InputSignal<string>;
18
+ readonly appearance: _angular_core.InputSignal<TopbarAppearance>;
19
+ readonly ariaLabel: _angular_core.InputSignal<string>;
20
+ readonly class: _angular_core.InputSignal<string>;
21
+ /** Auto-register `items` ke `NavigationService` agar `activeTrail` bekerja. */
22
+ readonly autoRegister: _angular_core.InputSignal<boolean>;
23
+ /** Tampilkan hamburger di `< md` yang men-toggle mobile drawer sidebar. */
24
+ readonly showHamburger: _angular_core.InputSignal<boolean>;
25
+ readonly hamburgerLabel: _angular_core.InputSignal<string>;
26
+ protected readonly mobileOpen: _angular_core.WritableSignal<boolean>;
27
+ /** Resolved items: input jika disediakan, fallback ke registry NavigationService. */
28
+ protected readonly resolvedItems: _angular_core.Signal<readonly NavigationItem[]>;
29
+ protected readonly openId: _angular_core.WritableSignal<string | null>;
30
+ private active;
31
+ private readonly dropdownTpl;
32
+ constructor();
33
+ protected readonly hostClasses: _angular_core.Signal<string>;
34
+ protected readonly endSlotClasses: _angular_core.Signal<string>;
35
+ protected asBasic(i: NavigationItem): NavigationBasicItem;
36
+ protected asCollapsable(i: NavigationItem): NavigationCollapsableItem;
37
+ protected asGroup(i: NavigationItem): NavigationGroupItem;
38
+ protected isItemActive(id: string | undefined): boolean;
39
+ protected toggleMobile(): void;
40
+ protected toggleDropdown(trigger: HTMLElement, item: NavigationItem): void;
41
+ protected openDropdown(trigger: HTMLElement, item: NavigationItem): void;
42
+ private attach;
43
+ protected closeAll(): void;
44
+ /** Menubar keyboard navigation: ArrowLeft/Right antar trigger, Home/End, ArrowDown fokus panel. */
45
+ protected onMenubarKeydown(event: KeyboardEvent): void;
46
+ /** Arrow-key navigation dalam dropdown panel. */
47
+ protected onPanelKeydown(event: KeyboardEvent): void;
48
+ private collectPanelFocusables;
49
+ private focusFirstInPanel;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TopbarComponent, never>;
51
+ 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>;
52
+ }
53
+
54
+ export { TopbarComponent };
@@ -0,0 +1,129 @@
1
+ import { Params, QueryParamsHandling, IsActiveMatchOptions } from '@angular/router';
2
+
3
+ type NavigationItemType = 'aside' | 'basic' | 'collapsable' | 'divider' | 'group' | 'mega' | 'spacer';
4
+ interface NavigationItemClasses {
5
+ title?: string;
6
+ subtitle?: string;
7
+ icon?: string;
8
+ wrapper?: string;
9
+ }
10
+ interface NavigationItemBadge {
11
+ title?: string;
12
+ classes?: string;
13
+ }
14
+ type NavigationVisibilityHandler = (item: NavigationItem) => boolean;
15
+ type NavigationActionHandler = (item: NavigationItem) => void;
16
+ interface NavigationItemBase {
17
+ /** Unique identifier untuk item navigasi */
18
+ id?: string;
19
+ /** Judul/label yang ditampilkan */
20
+ title?: string;
21
+ /** Subtitle/deskripsi tambahan */
22
+ subtitle?: string;
23
+ /** Status aktif item */
24
+ active?: boolean;
25
+ /** Status disabled item */
26
+ disabled?: boolean;
27
+ /** Tooltip text saat hover */
28
+ tooltip?: string;
29
+ /** Custom CSS classes */
30
+ classes?: NavigationItemClasses;
31
+ /** Material Symbols icon name (ligature, e.g. `dashboard`, `menu_book`) */
32
+ icon?: string;
33
+ /** Badge configuration */
34
+ badge?: NavigationItemBadge;
35
+ /** Additional metadata */
36
+ meta?: Record<string, unknown>;
37
+ /** Function untuk hide/show item secara dinamis */
38
+ isHidden?: NavigationVisibilityHandler;
39
+ }
40
+ interface NavigationRoutableItemBase extends NavigationItemBase {
41
+ /** Angular router link */
42
+ link?: string;
43
+ /** URL fragment (#anchor) */
44
+ fragment?: string;
45
+ /** Preserve fragment saat navigasi */
46
+ preserveFragment?: boolean;
47
+ /** Query parameters untuk routing */
48
+ queryParams?: Params | null;
49
+ /** Cara handle query params */
50
+ queryParamsHandling?: QueryParamsHandling | null;
51
+ /** Flag untuk external link */
52
+ externalLink?: boolean;
53
+ /** Target untuk external link */
54
+ target?: '_blank' | '_self' | '_parent' | '_top' | string;
55
+ /** Exact match untuk active route */
56
+ exactMatch?: boolean;
57
+ /** Options untuk active match detection */
58
+ isActiveMatchOptions?: IsActiveMatchOptions;
59
+ /** Custom action yang dipanggil saat item diklik */
60
+ action?: NavigationActionHandler;
61
+ }
62
+ interface NavigationBasicItem extends NavigationRoutableItemBase {
63
+ type: 'basic';
64
+ children?: never;
65
+ }
66
+ interface NavigationAsideItem extends NavigationRoutableItemBase {
67
+ type: 'aside';
68
+ children: NavigationItem[];
69
+ }
70
+ interface NavigationCollapsableItem extends NavigationRoutableItemBase {
71
+ type: 'collapsable';
72
+ children: NavigationItem[];
73
+ }
74
+ interface NavigationGroupItem extends NavigationItemBase {
75
+ type: 'group';
76
+ children: NavigationItem[];
77
+ }
78
+ /**
79
+ * Mega menu branch — dirender sebagai panel full-width multi-kolom pada topbar.
80
+ * Children biasanya berupa `NavigationGroupItem` (per kolom) berisi `basic` items.
81
+ */
82
+ interface NavigationMegaItem extends NavigationItemBase {
83
+ type: 'mega';
84
+ /** Jumlah kolom saat viewport >= md (default: 4) */
85
+ columns?: number;
86
+ children: NavigationItem[];
87
+ }
88
+ interface NavigationDividerItem extends NavigationItemBase {
89
+ type: 'divider';
90
+ children?: never;
91
+ }
92
+ interface NavigationSpacerItem extends NavigationItemBase {
93
+ type: 'spacer';
94
+ children?: never;
95
+ }
96
+ type NavigationBranchItem = NavigationAsideItem | NavigationCollapsableItem | NavigationGroupItem | NavigationMegaItem;
97
+ type NavigationLeafItem = NavigationBasicItem | NavigationDividerItem | NavigationSpacerItem;
98
+ type NavigationItem = NavigationBranchItem | NavigationLeafItem;
99
+ /**
100
+ * Navigation Item Interface
101
+ *
102
+ * Interface ini mendefinisikan struktur data untuk setiap item navigasi
103
+ * Mendukung berbagai tipe item dan konfigurasi routing Angular
104
+ */
105
+ type NavigationStructuredItem = NavigationItem;
106
+ /**
107
+ * Sidebar Appearance
108
+ * - default: full width (lebar penuh) dengan label + icon
109
+ * - thin: icon-only, expand overlay saat hover
110
+ */
111
+ type SidebarAppearance = 'default' | 'thin';
112
+ /**
113
+ * Topbar Appearance
114
+ * - default: horizontal dengan dropdown untuk collapsable
115
+ * - megamenu: full-width panel multi-kolom untuk item `mega`
116
+ */
117
+ type TopbarAppearance = 'default' | 'megamenu';
118
+ /** Sidebar desktop border ownership */
119
+ type SidebarBorderSource = 'component' | 'layout';
120
+ /** Sidebar position */
121
+ type SidebarPosition = 'left' | 'right';
122
+ /** Sidebar display mode */
123
+ type SidebarMode = 'over' | 'side';
124
+ type VerticalNavigationAppearance = SidebarAppearance;
125
+ type VerticalNavigationBorderSource = SidebarBorderSource;
126
+ type VerticalNavigationMode = SidebarMode;
127
+ type VerticalNavigationPosition = SidebarPosition;
128
+
129
+ 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 };
@@ -0,0 +1,11 @@
1
+ import { Provider, EnvironmentProviders } from '@angular/core';
2
+ import { MaterialThemeConfig } from '@ojiepermana/angular/theme/token';
3
+
4
+ interface MaterialThemeFeature {
5
+ readonly providers: Provider[];
6
+ }
7
+ declare function provideMaterialTheme(config?: MaterialThemeConfig, ...features: MaterialThemeFeature[]): EnvironmentProviders;
8
+ declare function withMaterialDefaults(): MaterialThemeFeature;
9
+
10
+ export { provideMaterialTheme, withMaterialDefaults };
11
+ export type { MaterialThemeFeature };
@@ -0,0 +1,55 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ThemeConfig, ThemeMode, ColorScheme, ThemeBrand, ThemeColor, ThemeStyle } from '@ojiepermana/angular/theme/token';
3
+
4
+ declare class ThemeService {
5
+ private readonly document;
6
+ private readonly destroyRef;
7
+ private readonly config;
8
+ private readonly initialBrand;
9
+ private readonly _modePreference;
10
+ private readonly _brand;
11
+ private readonly _color;
12
+ private readonly _style;
13
+ private readonly _systemPrefersDark;
14
+ readonly scheme: _angular_core.Signal<"light" | "dark" | "system">;
15
+ readonly brand: _angular_core.Signal<"etos" | null>;
16
+ readonly color: _angular_core.Signal<"base" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose">;
17
+ readonly theme: _angular_core.Signal<"base" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose">;
18
+ readonly style: _angular_core.Signal<"default" | "sharp" | "brutal" | "soft">;
19
+ readonly mode: _angular_core.Signal<"light" | "dark">;
20
+ readonly snapshot: _angular_core.Signal<ThemeConfig>;
21
+ readonly isDark: _angular_core.Signal<boolean>;
22
+ constructor();
23
+ setMode(mode: ThemeMode): void;
24
+ setScheme(scheme: ColorScheme): void;
25
+ setBrand(brand: ThemeBrand | null): void;
26
+ setColor(color: ThemeColor): void;
27
+ setTheme(theme: ThemeColor | string): void;
28
+ setStyle(style: ThemeStyle): void;
29
+ setAll(config: Partial<ThemeConfig> & {
30
+ readonly scheme?: ColorScheme;
31
+ }): void;
32
+ toggleScheme(): void;
33
+ toggleMode(): void;
34
+ reset(): void;
35
+ private resolveConfig;
36
+ private resolveMode;
37
+ private prefersDark;
38
+ private watchSystemScheme;
39
+ private readPersistedMode;
40
+ private readPersistedBrand;
41
+ private readPersistedColor;
42
+ private readPersistedStyle;
43
+ private persistMode;
44
+ private persistBrand;
45
+ private persistColor;
46
+ private persistStyle;
47
+ private clearPersistedBrand;
48
+ private clearPersistedColor;
49
+ private clearPersistedStyle;
50
+ private clearPersistedItem;
51
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
52
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
53
+ }
54
+
55
+ export { ThemeService };
@@ -0,0 +1,57 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ declare const MODES: readonly ["light", "dark"];
4
+ type ThemeMode = (typeof MODES)[number];
5
+ declare const COLOR_SCHEMES: readonly ["light", "dark", "system"];
6
+ type ColorScheme = (typeof COLOR_SCHEMES)[number];
7
+ declare const COLORS: readonly ["base", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "blue", "indigo", "violet", "purple", "fuchsia", "pink", "rose"];
8
+ type ThemeColor = (typeof COLORS)[number];
9
+ declare const STYLES: readonly ["default", "sharp", "brutal", "soft"];
10
+ type ThemeStyle = (typeof STYLES)[number];
11
+ declare const BRANDS: readonly ["etos"];
12
+ type ThemeBrand = (typeof BRANDS)[number];
13
+ interface ThemeConfig {
14
+ readonly mode: ThemeMode;
15
+ readonly brand: ThemeBrand | null;
16
+ readonly color: ThemeColor;
17
+ readonly style: ThemeStyle;
18
+ }
19
+ interface MaterialThemeConfig {
20
+ readonly mode?: ColorScheme;
21
+ readonly brand?: ThemeBrand | null;
22
+ readonly 'theme-brand'?: ThemeBrand | null;
23
+ readonly color?: ThemeColor;
24
+ readonly style?: ThemeStyle;
25
+ readonly defaultMode?: ColorScheme;
26
+ readonly defaultBrand?: ThemeBrand | null;
27
+ readonly defaultColor?: ThemeColor;
28
+ readonly defaultStyle?: ThemeStyle;
29
+ readonly defaultScheme?: ColorScheme;
30
+ readonly defaultTheme?: ThemeColor | string;
31
+ readonly storageKey?: string | null;
32
+ readonly schemeStorageKey?: string | null;
33
+ readonly themeStorageKey?: string | null;
34
+ readonly modeStorageKey?: string | null;
35
+ readonly brandStorageKey?: string | null;
36
+ readonly colorStorageKey?: string | null;
37
+ readonly styleStorageKey?: string | null;
38
+ }
39
+ interface ResolvedMaterialThemeConfig {
40
+ readonly defaultMode: ColorScheme;
41
+ readonly defaultBrand: ThemeBrand | null;
42
+ readonly defaultColor: ThemeColor;
43
+ readonly defaultStyle: ThemeStyle;
44
+ readonly modeStorageKey: string | null;
45
+ readonly brandStorageKey: string | null;
46
+ readonly colorStorageKey: string | null;
47
+ readonly styleStorageKey: string | null;
48
+ }
49
+ declare const MATERIAL_THEME_CONFIG: InjectionToken<MaterialThemeConfig>;
50
+ declare const DEFAULT_MATERIAL_THEME_CONFIG: ResolvedMaterialThemeConfig;
51
+ declare function isColorScheme(value: string | null | undefined): value is ColorScheme;
52
+ declare function isThemeColor(value: string | null | undefined): value is ThemeColor;
53
+ declare function isThemeStyle(value: string | null | undefined): value is ThemeStyle;
54
+ declare function isThemeBrand(value: string | null | undefined): value is ThemeBrand;
55
+
56
+ export { BRANDS, COLORS, COLOR_SCHEMES, DEFAULT_MATERIAL_THEME_CONFIG, MATERIAL_THEME_CONFIG, MODES, STYLES, isColorScheme, isThemeBrand, isThemeColor, isThemeStyle };
57
+ export type { ColorScheme, MaterialThemeConfig, ResolvedMaterialThemeConfig, ThemeBrand, ThemeColor, ThemeConfig, ThemeMode, ThemeStyle };
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Provider, EnvironmentProviders } from '@angular/core';
3
+ import { ThemeConfig as ThemeConfig$1, ThemeMode as ThemeMode$1, ColorScheme as ColorScheme$1, ThemeBrand as ThemeBrand$1, ThemeColor as ThemeColor$1, ThemeStyle as ThemeStyle$1, MaterialThemeConfig as MaterialThemeConfig$1 } from '@ojiepermana/angular/theme/token';
3
4
 
4
5
  declare const MODES: readonly ["light", "dark"];
5
6
  type ThemeMode = (typeof MODES)[number];
@@ -18,41 +19,23 @@ interface ThemeConfig {
18
19
  readonly style: ThemeStyle;
19
20
  }
20
21
  interface MaterialThemeConfig {
21
- /** Initial mode preference. Supports `system` for first-visit OS detection. */
22
22
  readonly mode?: ColorScheme;
23
- /** Initial brand bundle. When set, it replaces the explicit color and style layers. */
24
23
  readonly brand?: ThemeBrand | null;
25
- /** Alias for `brand` to match the persisted `theme-brand` setting. */
26
24
  readonly 'theme-brand'?: ThemeBrand | null;
27
- /** Initial brand color layer. */
28
25
  readonly color?: ThemeColor;
29
- /** Initial style personality layer. */
30
26
  readonly style?: ThemeStyle;
31
- /** @deprecated Use `mode` instead. */
32
27
  readonly defaultMode?: ColorScheme;
33
- /** Default brand bundle. When set, it replaces the explicit color and style layers. */
34
28
  readonly defaultBrand?: ThemeBrand | null;
35
- /** @deprecated Use `color` instead. */
36
29
  readonly defaultColor?: ThemeColor;
37
- /** @deprecated Use `style` instead. */
38
30
  readonly defaultStyle?: ThemeStyle;
39
- /** @deprecated Use `defaultMode` instead. */
40
31
  readonly defaultScheme?: ColorScheme;
41
- /** @deprecated Use `defaultColor` instead. */
42
32
  readonly defaultTheme?: ThemeColor | string;
43
- /** @deprecated Use `modeStorageKey` instead. */
44
33
  readonly storageKey?: string | null;
45
- /** @deprecated Use `modeStorageKey` instead. */
46
34
  readonly schemeStorageKey?: string | null;
47
- /** @deprecated Use `colorStorageKey` instead. */
48
35
  readonly themeStorageKey?: string | null;
49
- /** localStorage key used to persist the mode preference. Set to `null` to disable persistence. */
50
36
  readonly modeStorageKey?: string | null;
51
- /** localStorage key used to persist the brand bundle. Set to `null` to disable persistence. */
52
37
  readonly brandStorageKey?: string | null;
53
- /** localStorage key used to persist the color layer. Set to `null` to disable persistence. */
54
38
  readonly colorStorageKey?: string | null;
55
- /** localStorage key used to persist the style layer. Set to `null` to disable persistence. */
56
39
  readonly styleStorageKey?: string | null;
57
40
  }
58
41
  interface ResolvedMaterialThemeConfig {
@@ -88,17 +71,17 @@ declare class ThemeService {
88
71
  readonly theme: _angular_core.Signal<"base" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose">;
89
72
  readonly style: _angular_core.Signal<"default" | "sharp" | "brutal" | "soft">;
90
73
  readonly mode: _angular_core.Signal<"light" | "dark">;
91
- readonly snapshot: _angular_core.Signal<ThemeConfig>;
74
+ readonly snapshot: _angular_core.Signal<ThemeConfig$1>;
92
75
  readonly isDark: _angular_core.Signal<boolean>;
93
76
  constructor();
94
- setMode(mode: ThemeMode): void;
95
- setScheme(scheme: ColorScheme): void;
96
- setBrand(brand: ThemeBrand | null): void;
97
- setColor(color: ThemeColor): void;
98
- setTheme(theme: ThemeColor | string): void;
99
- setStyle(style: ThemeStyle): void;
100
- setAll(config: Partial<ThemeConfig> & {
101
- readonly scheme?: ColorScheme;
77
+ setMode(mode: ThemeMode$1): void;
78
+ setScheme(scheme: ColorScheme$1): void;
79
+ setBrand(brand: ThemeBrand$1 | null): void;
80
+ setColor(color: ThemeColor$1): void;
81
+ setTheme(theme: ThemeColor$1 | string): void;
82
+ setStyle(style: ThemeStyle$1): void;
83
+ setAll(config: Partial<ThemeConfig$1> & {
84
+ readonly scheme?: ColorScheme$1;
102
85
  }): void;
103
86
  toggleScheme(): void;
104
87
  toggleMode(): void;
@@ -123,48 +106,10 @@ declare class ThemeService {
123
106
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
124
107
  }
125
108
 
126
- /**
127
- * Opaque feature unit consumed by {@link provideMaterialTheme}. Mirrors
128
- * Angular's router/http feature pattern so add-ons can be composed without
129
- * widening the primary provider signature.
130
- */
131
109
  interface MaterialThemeFeature {
132
110
  readonly providers: Provider[];
133
111
  }
134
- /**
135
- * Bootstrap the shared theme for any `@ojiepermana/angular/*` entry point.
136
- *
137
- * By default wires up the theme config token and eagerly initializes `ThemeService`
138
- * so root theme attributes are applied during bootstrap. Opt in
139
- * to Angular Material defaults (ripple / form-field) via
140
- * {@link withMaterialDefaults}.
141
- * Supports shorthand `mode`, `color`, and `style` config keys.
142
- *
143
- * @example
144
- * export const appConfig: ApplicationConfig = {
145
- * providers: [
146
- * provideAnimations(),
147
- * provideMaterialTheme(
148
- * {
149
- * mode: 'system',
150
- * color: 'base',
151
- * style: 'soft',
152
- * },
153
- * withMaterialDefaults(),
154
- * ),
155
- * ],
156
- * };
157
- */
158
- declare function provideMaterialTheme(config?: MaterialThemeConfig, ...features: MaterialThemeFeature[]): EnvironmentProviders;
159
- /**
160
- * Opt-in Angular Material defaults tuned for the shared theme layer:
161
- *
162
- * - Disables the global Material ripple.
163
- * - Forces `appearance: 'outline'` + `subscriptSizing: 'dynamic'` on every
164
- * `mat-form-field`.
165
- *
166
- * Only apply when your app actually renders Angular Material components.
167
- */
112
+ declare function provideMaterialTheme(config?: MaterialThemeConfig$1, ...features: MaterialThemeFeature[]): EnvironmentProviders;
168
113
  declare function withMaterialDefaults(): MaterialThemeFeature;
169
114
 
170
115
  export { BRANDS, COLORS, COLOR_SCHEMES, DEFAULT_MATERIAL_THEME_CONFIG, MATERIAL_THEME_CONFIG, MODES, STYLES, ThemeService, isColorScheme, isThemeBrand, isThemeColor, isThemeStyle, provideMaterialTheme, withMaterialDefaults };
package/chart/README.md DELETED
File without changes
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../fesm2022/ojiepermana-angular-chart.mjs",
3
- "typings": "../types/ojiepermana-angular-chart.d.ts"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../fesm2022/ojiepermana-angular-component.mjs",
3
- "typings": "../types/ojiepermana-angular-component.d.ts"
4
- }