@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,29 @@
1
+ import { MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';
2
+ import * as i0 from '@angular/core';
3
+
4
+ type ToastVariant = 'default' | 'destructive' | 'success';
5
+ interface ToastOptions {
6
+ readonly title?: string;
7
+ readonly description?: string;
8
+ readonly action?: string;
9
+ readonly variant?: ToastVariant;
10
+ readonly durationMs?: number;
11
+ readonly horizontalPosition?: MatSnackBarConfig['horizontalPosition'];
12
+ readonly verticalPosition?: MatSnackBarConfig['verticalPosition'];
13
+ }
14
+ /**
15
+ * Thin, opinionated wrapper over MatSnackBar that applies shadcn styling
16
+ * via `panelClass: ui-toast-panel` and variant data attributes.
17
+ */
18
+ declare class ToastService {
19
+ private readonly snack;
20
+ show(options: ToastOptions): MatSnackBarRef<unknown>;
21
+ success(opts: Omit<ToastOptions, 'variant'>): MatSnackBarRef<unknown>;
22
+ error(opts: Omit<ToastOptions, 'variant'>): MatSnackBarRef<unknown>;
23
+ dismiss(): void;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
25
+ static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
26
+ }
27
+
28
+ export { ToastService };
29
+ export type { ToastOptions, ToastVariant };
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+ import * as i1 from '@angular/material/tooltip';
3
+ export { TooltipPosition } from '@angular/material/tooltip';
4
+
5
+ /**
6
+ * Shadcn-styled tooltip directive. Thin wrapper around `matTooltip` that
7
+ * forces the shadcn panel class and sensible defaults.
8
+ *
9
+ * @example
10
+ * <button ui-button [uiTooltip]="'Save changes'" uiTooltipPosition="above">Save</button>
11
+ */
12
+ declare class TooltipDirective {
13
+ private readonly tooltip;
14
+ readonly uiTooltip: i0.InputSignal<string>;
15
+ constructor();
16
+ show(): void;
17
+ hide(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[uiTooltip]", ["uiTooltip"], { "uiTooltip": { "alias": "uiTooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.MatTooltip; inputs: { "matTooltipPosition": "uiTooltipPosition"; "matTooltipDisabled": "uiTooltipDisabled"; "matTooltipShowDelay": "uiTooltipShowDelay"; "matTooltipHideDelay": "uiTooltipHideDelay"; "matTooltipTouchGestures": "uiTooltipTouchGestures"; }; outputs: {}; }]>;
20
+ }
21
+
22
+ export { TooltipDirective };
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+
5
+ export { cn };
@@ -40,7 +40,8 @@ interface SdkTargetConfig {
40
40
  /**
41
41
  * When `true`, reorganize emitted files into one folder per domain (derived
42
42
  * from OpenAPI tags). Models shared by multiple domains live in `shared/`,
43
- * domain-owned models live inside each domain. Default `false` (flat layout).
43
+ * domain-owned models live inside each domain. Defaults to `true` for
44
+ * `mode: "library"` and `false` otherwise.
44
45
  */
45
46
  splitByDomain?: boolean;
46
47
  /**
@@ -0,0 +1,205 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, Signal } from '@angular/core';
3
+ import { SafeHtml } from '@angular/platform-browser';
4
+
5
+ type ThemePanelColor = 'base' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose';
6
+ type ThemePanelMode = 'light' | 'dark' | 'system';
7
+ type ThemePanelStyle = 'default' | 'sharp' | 'brutal' | 'soft';
8
+ type ThemePanelLayoutMode = 'vertical' | 'horizontal' | 'empty';
9
+ type ThemePanelLayoutWidth = 'full' | 'container' | 'wide';
10
+ interface ThemePanelThemePort {
11
+ readonly color: Signal<ThemePanelColor>;
12
+ readonly scheme: Signal<ThemePanelMode>;
13
+ readonly style: Signal<ThemePanelStyle>;
14
+ setColor(color: ThemePanelColor): void;
15
+ setScheme(mode: ThemePanelMode): void;
16
+ setStyle(style: ThemePanelStyle): void;
17
+ }
18
+ interface ThemePanelLayoutPort {
19
+ readonly mode: Signal<ThemePanelLayoutMode>;
20
+ readonly width: Signal<ThemePanelLayoutWidth>;
21
+ setMode(mode: ThemePanelLayoutMode): void;
22
+ setWidth(width: ThemePanelLayoutWidth): void;
23
+ }
24
+ declare const THEME_PANEL_THEME_PORT: InjectionToken<ThemePanelThemePort>;
25
+ declare const THEME_PANEL_LAYOUT_PORT: InjectionToken<ThemePanelLayoutPort>;
26
+ type ThemePanelIconName = 'sun' | 'moon' | 'system' | 'default-style' | 'sharp-style' | 'brutal-style' | 'soft-style' | 'vertical-layout' | 'horizontal-layout' | 'empty-layout' | 'full-width' | 'container-width' | 'wide-width';
27
+ declare class ThemePanelComponent {
28
+ private readonly sanitizer;
29
+ private readonly themePort;
30
+ private readonly layoutPort;
31
+ readonly connected: _angular_core.InputSignal<boolean>;
32
+ readonly class: _angular_core.InputSignal<string>;
33
+ readonly title: _angular_core.InputSignal<string>;
34
+ readonly description: _angular_core.InputSignal<string>;
35
+ readonly userName: _angular_core.InputSignal<string>;
36
+ readonly userSubtitle: _angular_core.InputSignal<string>;
37
+ readonly userInitials: _angular_core.InputSignal<string>;
38
+ readonly themeColor: _angular_core.InputSignal<ThemePanelColor>;
39
+ readonly themeMode: _angular_core.InputSignal<ThemePanelMode>;
40
+ readonly themeStyle: _angular_core.InputSignal<ThemePanelStyle>;
41
+ readonly layoutMode: _angular_core.InputSignal<ThemePanelLayoutMode>;
42
+ readonly layoutWidth: _angular_core.InputSignal<ThemePanelLayoutWidth>;
43
+ readonly themeColorChange: _angular_core.OutputEmitterRef<ThemePanelColor>;
44
+ readonly themeModeChange: _angular_core.OutputEmitterRef<ThemePanelMode>;
45
+ readonly themeStyleChange: _angular_core.OutputEmitterRef<ThemePanelStyle>;
46
+ readonly layoutModeChange: _angular_core.OutputEmitterRef<ThemePanelLayoutMode>;
47
+ readonly layoutWidthChange: _angular_core.OutputEmitterRef<ThemePanelLayoutWidth>;
48
+ protected readonly currentThemeColor: _angular_core.WritableSignal<ThemePanelColor>;
49
+ protected readonly currentThemeMode: _angular_core.WritableSignal<ThemePanelMode>;
50
+ protected readonly currentThemeStyle: _angular_core.WritableSignal<ThemePanelStyle>;
51
+ protected readonly currentLayoutMode: _angular_core.WritableSignal<ThemePanelLayoutMode>;
52
+ protected readonly currentLayoutWidth: _angular_core.WritableSignal<ThemePanelLayoutWidth>;
53
+ protected readonly themeColorOptions: readonly [{
54
+ readonly value: "base";
55
+ readonly label: "Base";
56
+ readonly swatchClass: "bg-zinc-800";
57
+ }, {
58
+ readonly value: "red";
59
+ readonly label: "Red";
60
+ readonly swatchClass: "bg-red-500";
61
+ }, {
62
+ readonly value: "orange";
63
+ readonly label: "Orange";
64
+ readonly swatchClass: "bg-orange-500";
65
+ }, {
66
+ readonly value: "amber";
67
+ readonly label: "Amber";
68
+ readonly swatchClass: "bg-amber-400";
69
+ }, {
70
+ readonly value: "yellow";
71
+ readonly label: "Yellow";
72
+ readonly swatchClass: "bg-yellow-400";
73
+ }, {
74
+ readonly value: "lime";
75
+ readonly label: "Lime";
76
+ readonly swatchClass: "bg-lime-400";
77
+ }, {
78
+ readonly value: "green";
79
+ readonly label: "Green";
80
+ readonly swatchClass: "bg-green-600";
81
+ }, {
82
+ readonly value: "emerald";
83
+ readonly label: "Emerald";
84
+ readonly swatchClass: "bg-emerald-600";
85
+ }, {
86
+ readonly value: "teal";
87
+ readonly label: "Teal";
88
+ readonly swatchClass: "bg-teal-600";
89
+ }, {
90
+ readonly value: "cyan";
91
+ readonly label: "Cyan";
92
+ readonly swatchClass: "bg-cyan-600";
93
+ }, {
94
+ readonly value: "sky";
95
+ readonly label: "Sky";
96
+ readonly swatchClass: "bg-sky-600";
97
+ }, {
98
+ readonly value: "blue";
99
+ readonly label: "Blue";
100
+ readonly swatchClass: "bg-blue-500";
101
+ }, {
102
+ readonly value: "indigo";
103
+ readonly label: "Indigo";
104
+ readonly swatchClass: "bg-indigo-500";
105
+ }, {
106
+ readonly value: "violet";
107
+ readonly label: "Violet";
108
+ readonly swatchClass: "bg-violet-500";
109
+ }, {
110
+ readonly value: "purple";
111
+ readonly label: "Purple";
112
+ readonly swatchClass: "bg-purple-500";
113
+ }, {
114
+ readonly value: "fuchsia";
115
+ readonly label: "Fuchsia";
116
+ readonly swatchClass: "bg-fuchsia-600";
117
+ }, {
118
+ readonly value: "pink";
119
+ readonly label: "Pink";
120
+ readonly swatchClass: "bg-pink-600";
121
+ }, {
122
+ readonly value: "rose";
123
+ readonly label: "Rose";
124
+ readonly swatchClass: "bg-rose-500";
125
+ }];
126
+ protected readonly themeModeOptions: readonly [{
127
+ readonly value: "light";
128
+ readonly label: "Light";
129
+ readonly icon: "sun";
130
+ }, {
131
+ readonly value: "dark";
132
+ readonly label: "Dark";
133
+ readonly icon: "moon";
134
+ }, {
135
+ readonly value: "system";
136
+ readonly label: "System";
137
+ readonly icon: "system";
138
+ }];
139
+ protected readonly themeStyleOptions: readonly [{
140
+ readonly value: "default";
141
+ readonly label: "Default";
142
+ readonly icon: "default-style";
143
+ }, {
144
+ readonly value: "sharp";
145
+ readonly label: "Sharp";
146
+ readonly icon: "sharp-style";
147
+ }, {
148
+ readonly value: "brutal";
149
+ readonly label: "Brutal";
150
+ readonly icon: "brutal-style";
151
+ }, {
152
+ readonly value: "soft";
153
+ readonly label: "Soft";
154
+ readonly icon: "soft-style";
155
+ }];
156
+ protected readonly layoutModeOptions: readonly [{
157
+ readonly value: "vertical";
158
+ readonly label: "Vertical";
159
+ readonly icon: "vertical-layout";
160
+ }, {
161
+ readonly value: "horizontal";
162
+ readonly label: "Horizontal";
163
+ readonly icon: "horizontal-layout";
164
+ }, {
165
+ readonly value: "empty";
166
+ readonly label: "Empty";
167
+ readonly icon: "empty-layout";
168
+ }];
169
+ protected readonly layoutWidthOptions: readonly [{
170
+ readonly value: "full";
171
+ readonly label: "Full";
172
+ readonly icon: "full-width";
173
+ }, {
174
+ readonly value: "container";
175
+ readonly label: "Container";
176
+ readonly icon: "container-width";
177
+ }, {
178
+ readonly value: "wide";
179
+ readonly label: "Wide";
180
+ readonly icon: "wide-width";
181
+ }];
182
+ protected readonly hostClasses: Signal<string>;
183
+ protected readonly hasUserHeader: Signal<boolean>;
184
+ protected readonly resolvedUserInitials: Signal<string>;
185
+ protected readonly currentThemeColorLabel: Signal<"Base" | "Red" | "Orange" | "Amber" | "Yellow" | "Lime" | "Green" | "Emerald" | "Teal" | "Cyan" | "Sky" | "Blue" | "Indigo" | "Violet" | "Purple" | "Fuchsia" | "Pink" | "Rose" | "">;
186
+ constructor();
187
+ protected setThemeColor(color: ThemePanelColor): void;
188
+ protected setThemeMode(mode: ThemePanelMode): void;
189
+ protected setThemeStyle(style: ThemePanelStyle): void;
190
+ protected setLayoutMode(mode: ThemePanelLayoutMode): void;
191
+ protected setLayoutWidth(width: ThemePanelLayoutWidth): void;
192
+ protected sectionEyebrowClasses(): string;
193
+ protected segmentedOptionClasses(active: boolean): string;
194
+ protected swatchButtonClasses(active: boolean): string;
195
+ protected optionIconClasses(active: boolean): string;
196
+ protected colorSwatchClasses(swatchClass: string | undefined, isActive: boolean): string;
197
+ protected iconSvg(name: ThemePanelIconName): SafeHtml;
198
+ private rawIconSvg;
199
+ private toInitials;
200
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemePanelComponent, never>;
201
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemePanelComponent, "ui-theme-panel", never, { "connected": { "alias": "connected"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "userName": { "alias": "userName"; "required": false; "isSignal": true; }; "userSubtitle": { "alias": "userSubtitle"; "required": false; "isSignal": true; }; "userInitials": { "alias": "userInitials"; "required": false; "isSignal": true; }; "themeColor": { "alias": "themeColor"; "required": false; "isSignal": true; }; "themeMode": { "alias": "themeMode"; "required": false; "isSignal": true; }; "themeStyle": { "alias": "themeStyle"; "required": false; "isSignal": true; }; "layoutMode": { "alias": "layoutMode"; "required": false; "isSignal": true; }; "layoutWidth": { "alias": "layoutWidth"; "required": false; "isSignal": true; }; }, { "themeColorChange": "themeColorChange"; "themeModeChange": "themeModeChange"; "themeStyleChange": "themeStyleChange"; "layoutModeChange": "layoutModeChange"; "layoutWidthChange": "layoutWidthChange"; }, never, never, true, never>;
202
+ }
203
+
204
+ export { THEME_PANEL_LAYOUT_PORT, THEME_PANEL_THEME_PORT, ThemePanelComponent };
205
+ export type { ThemePanelColor, ThemePanelLayoutMode, ThemePanelLayoutPort, ThemePanelLayoutWidth, ThemePanelMode, ThemePanelStyle, ThemePanelThemePort };
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ /**
4
+ * Empty layout — full-viewport, flex-centered main.
5
+ *
6
+ * Cocok untuk halaman login / error / onboarding (pola shadcn `login-05`).
7
+ * Konten dirender lewat `<router-outlet>`; consumer men-style card / form
8
+ * milik halaman route sendiri.
9
+ *
10
+ * Markup:
11
+ * ```html
12
+ * <empty>
13
+ * <!-- router-outlet dirender oleh komponen -->
14
+ * </empty>
15
+ * ```
16
+ */
17
+ declare class EmptyLayoutComponent {
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmptyLayoutComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmptyLayoutComponent, "empty", never, {}, {}, never, never, true, never>;
20
+ }
21
+
22
+ export { EmptyLayoutComponent };
@@ -0,0 +1,36 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TopbarAppearance } from '@ojiepermana/angular/navigation/types';
3
+
4
+ /**
5
+ * Horizontal layout — themed topbar + main (scrollable).
6
+ *
7
+ * Data navigasi diambil dari `NavigationService`.
8
+ * Consumer app dapat memproyeksikan brand kiri dan profile kanan.
9
+ *
10
+ * Markup:
11
+ * ```html
12
+ * <horizontal>
13
+ * <a ui-layout-brand>Brand</a>
14
+ * <button ui-layout-profile type="button">Profile</button>
15
+ * </horizontal>
16
+ * ```
17
+ */
18
+ declare class HorizontalLayoutComponent {
19
+ private readonly layout;
20
+ private readonly theme;
21
+ readonly topbarAppearance: _angular_core.InputSignal<TopbarAppearance>;
22
+ readonly ariaLabel: _angular_core.InputSignal<string>;
23
+ protected readonly layoutWidth: _angular_core.Signal<"full" | "container" | "wide">;
24
+ protected readonly themeStyle: _angular_core.Signal<"default" | "sharp" | "brutal" | "soft">;
25
+ protected readonly isConstrainedWidth: _angular_core.Signal<boolean>;
26
+ protected readonly isWideWidth: _angular_core.Signal<boolean>;
27
+ protected readonly shellBorderWidth: _angular_core.Signal<"var(--border-width)" | null>;
28
+ protected readonly dividerBorderWidth: _angular_core.Signal<string>;
29
+ protected readonly hostClasses: _angular_core.Signal<string>;
30
+ protected readonly frameClasses: _angular_core.Signal<string>;
31
+ protected readonly mainClasses: _angular_core.Signal<string>;
32
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HorizontalLayoutComponent, never>;
33
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HorizontalLayoutComponent, "horizontal", never, { "topbarAppearance": { "alias": "topbarAppearance"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[ui-layout-brand],[topbar-start]", "[ui-layout-profile],[topbar-end]"], true, never>;
34
+ }
35
+
36
+ export { HorizontalLayoutComponent };
@@ -0,0 +1,6 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { MaterialLayoutConfig } from '@ojiepermana/angular/layout/token';
3
+
4
+ declare function provideMaterialLayout(config?: MaterialLayoutConfig): EnvironmentProviders;
5
+
6
+ export { provideMaterialLayout };
@@ -0,0 +1,25 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { LayoutMode, LayoutWidth } from '@ojiepermana/angular/layout/token';
3
+
4
+ declare class LayoutService {
5
+ private readonly document;
6
+ private readonly config;
7
+ private readonly _mode;
8
+ private readonly _width;
9
+ readonly mode: _angular_core.Signal<"vertical" | "horizontal" | "empty">;
10
+ readonly width: _angular_core.Signal<"full" | "container" | "wide">;
11
+ constructor();
12
+ setMode(mode: LayoutMode): void;
13
+ toggleMode(): void;
14
+ setWidth(width: LayoutWidth): void;
15
+ toggleWidth(): void;
16
+ private resolveConfig;
17
+ private readPersistedMode;
18
+ private readPersistedWidth;
19
+ private persistMode;
20
+ private persistWidth;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutService, never>;
22
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LayoutService>;
23
+ }
24
+
25
+ export { LayoutService };
@@ -0,0 +1,8 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare class ShellPagesComponent {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShellPagesComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShellPagesComponent, "shell-pages", never, {}, {}, never, ["[shell-pages-header]", "[shell-pages-main]", "[shell-pages-footer]"], true, never>;
6
+ }
7
+
8
+ export { ShellPagesComponent };
@@ -0,0 +1,13 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component/popover';
3
+
4
+ declare class LayoutProfilePopoverDefaultsDirective implements PopoverTriggerDefaults {
5
+ private readonly layout;
6
+ readonly side: _angular_core.Signal<PopoverSide>;
7
+ readonly align: _angular_core.Signal<PopoverAlign>;
8
+ readonly sideOffset: _angular_core.Signal<-20 | 12>;
9
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutProfilePopoverDefaultsDirective, never>;
10
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LayoutProfilePopoverDefaultsDirective, "[ui-layout-profile][uiPopoverTrigger]", never, {}, {}, never, never, true, never>;
11
+ }
12
+
13
+ export { LayoutProfilePopoverDefaultsDirective };
@@ -0,0 +1,36 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ declare const LAYOUT_MODES: readonly ["vertical", "horizontal", "empty"];
4
+ type LayoutMode = (typeof LAYOUT_MODES)[number];
5
+ declare const LAYOUT_WIDTHS: readonly ["full", "container", "wide"];
6
+ type LayoutWidth = (typeof LAYOUT_WIDTHS)[number];
7
+ /** @deprecated Use `container` instead. */
8
+ type LegacyLayoutWidth = 'fixed';
9
+ type ConfiguredLayoutWidth = LayoutWidth | LegacyLayoutWidth;
10
+ interface MaterialLayoutConfig {
11
+ /** Initial layout mode. */
12
+ readonly mode?: LayoutMode;
13
+ /** Initial layout width. */
14
+ readonly width?: ConfiguredLayoutWidth;
15
+ /** @deprecated Use `mode` instead. */
16
+ /** Initial layout mode. Defaults to `vertical`. */
17
+ readonly defaultMode?: LayoutMode;
18
+ /** localStorage key used to persist the layout mode. Set to `null` to disable persistence. */
19
+ readonly storageKey?: string | null;
20
+ /** localStorage key used to persist the layout width. Set to `null` to disable persistence. */
21
+ readonly widthStorageKey?: string | null;
22
+ }
23
+ interface ResolvedMaterialLayoutConfig {
24
+ readonly defaultMode: LayoutMode;
25
+ readonly defaultWidth: LayoutWidth;
26
+ readonly storageKey: string | null;
27
+ readonly widthStorageKey: string | null;
28
+ }
29
+ declare const MATERIAL_LAYOUT_CONFIG: InjectionToken<MaterialLayoutConfig>;
30
+ declare const DEFAULT_MATERIAL_LAYOUT_CONFIG: ResolvedMaterialLayoutConfig;
31
+ declare function isLayoutMode(value: string | null | undefined): value is LayoutMode;
32
+ declare function isLayoutWidth(value: string | null | undefined): value is LayoutWidth;
33
+ declare function normalizeLayoutWidth(value: string | null | undefined): LayoutWidth | null;
34
+
35
+ export { DEFAULT_MATERIAL_LAYOUT_CONFIG, LAYOUT_MODES, LAYOUT_WIDTHS, MATERIAL_LAYOUT_CONFIG, isLayoutMode, isLayoutWidth, normalizeLayoutWidth };
36
+ export type { ConfiguredLayoutWidth, LayoutMode, LayoutWidth, LegacyLayoutWidth, MaterialLayoutConfig, ResolvedMaterialLayoutConfig };
@@ -0,0 +1,38 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { SidebarAppearance, SidebarPosition, SidebarMode } from '@ojiepermana/angular/navigation/types';
3
+
4
+ /**
5
+ * Vertical layout — sidebar + main (scrollable).
6
+ *
7
+ * Data navigasi diambil dari `NavigationService` (register via
8
+ * `NavigationService.registerItems()` di bootstrap). Main memegang
9
+ * `<router-outlet>` dan scroll jika konten panjang.
10
+ *
11
+ * Markup:
12
+ * ```html
13
+ * <vertical>
14
+ * <a ui-layout-brand>Brand</a>
15
+ * <button ui-layout-profile type="button">Profile</button>
16
+ * </vertical>
17
+ * ```
18
+ */
19
+ declare class VerticalLayoutComponent {
20
+ private readonly layout;
21
+ private readonly theme;
22
+ readonly sidebarAppearance: _angular_core.InputSignal<SidebarAppearance>;
23
+ readonly sidebarPosition: _angular_core.InputSignal<SidebarPosition>;
24
+ readonly sidebarMode: _angular_core.InputSignal<SidebarMode>;
25
+ readonly ariaLabel: _angular_core.InputSignal<string>;
26
+ protected readonly layoutWidth: _angular_core.Signal<"full" | "container" | "wide">;
27
+ protected readonly themeStyle: _angular_core.Signal<"default" | "sharp" | "brutal" | "soft">;
28
+ protected readonly isConstrainedWidth: _angular_core.Signal<boolean>;
29
+ protected readonly isWideWidth: _angular_core.Signal<boolean>;
30
+ protected readonly shellBorderWidth: _angular_core.Signal<"var(--border-width)" | null>;
31
+ protected readonly hostClasses: _angular_core.Signal<string>;
32
+ protected readonly frameClasses: _angular_core.Signal<string>;
33
+ protected readonly mainClasses: _angular_core.Signal<string>;
34
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VerticalLayoutComponent, never>;
35
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VerticalLayoutComponent, "vertical", never, { "sidebarAppearance": { "alias": "sidebarAppearance"; "required": false; "isSignal": true; }; "sidebarPosition": { "alias": "sidebarPosition"; "required": false; "isSignal": true; }; "sidebarMode": { "alias": "sidebarMode"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[ui-layout-brand],[sidebar-header]", "[ui-layout-profile],[sidebar-footer]"], true, never>;
36
+ }
37
+
38
+ export { VerticalLayoutComponent };
@@ -1,7 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
- import { SidebarAppearance, SidebarPosition, SidebarMode, TopbarAppearance } from '@ojiepermana/angular/navigation';
4
- import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component';
2
+ import { EnvironmentProviders, InjectionToken } from '@angular/core';
3
+ import { SidebarAppearance, SidebarPosition, SidebarMode, TopbarAppearance } from '@ojiepermana/angular/navigation/types';
4
+ import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component/popover';
5
+ import { MaterialLayoutConfig as MaterialLayoutConfig$1, LayoutMode as LayoutMode$1, LayoutWidth as LayoutWidth$1 } from '@ojiepermana/angular/layout/token';
5
6
 
6
7
  /**
7
8
  * Vertical layout — sidebar + main (scrollable).
@@ -93,6 +94,29 @@ declare class ShellPagesComponent {
93
94
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShellPagesComponent, "shell-pages", never, {}, {}, never, ["[shell-pages-header]", "[shell-pages-main]", "[shell-pages-footer]"], true, never>;
94
95
  }
95
96
 
97
+ declare function provideMaterialLayout(config?: MaterialLayoutConfig$1): EnvironmentProviders;
98
+
99
+ declare class LayoutService {
100
+ private readonly document;
101
+ private readonly config;
102
+ private readonly _mode;
103
+ private readonly _width;
104
+ readonly mode: _angular_core.Signal<"vertical" | "horizontal" | "empty">;
105
+ readonly width: _angular_core.Signal<"full" | "container" | "wide">;
106
+ constructor();
107
+ setMode(mode: LayoutMode$1): void;
108
+ toggleMode(): void;
109
+ setWidth(width: LayoutWidth$1): void;
110
+ toggleWidth(): void;
111
+ private resolveConfig;
112
+ private readPersistedMode;
113
+ private readPersistedWidth;
114
+ private persistMode;
115
+ private persistWidth;
116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutService, never>;
117
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LayoutService>;
118
+ }
119
+
96
120
  declare const LAYOUT_MODES: readonly ["vertical", "horizontal", "empty"];
97
121
  type LayoutMode = (typeof LAYOUT_MODES)[number];
98
122
  declare const LAYOUT_WIDTHS: readonly ["full", "container", "wide"];
@@ -125,29 +149,6 @@ declare function isLayoutMode(value: string | null | undefined): value is Layout
125
149
  declare function isLayoutWidth(value: string | null | undefined): value is LayoutWidth;
126
150
  declare function normalizeLayoutWidth(value: string | null | undefined): LayoutWidth | null;
127
151
 
128
- declare class LayoutService {
129
- private readonly document;
130
- private readonly config;
131
- private readonly _mode;
132
- private readonly _width;
133
- readonly mode: _angular_core.Signal<"vertical" | "horizontal" | "empty">;
134
- readonly width: _angular_core.Signal<"full" | "container" | "wide">;
135
- constructor();
136
- setMode(mode: LayoutMode): void;
137
- toggleMode(): void;
138
- setWidth(width: LayoutWidth): void;
139
- toggleWidth(): void;
140
- private resolveConfig;
141
- private readPersistedMode;
142
- private readPersistedWidth;
143
- private persistMode;
144
- private persistWidth;
145
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutService, never>;
146
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<LayoutService>;
147
- }
148
-
149
- declare function provideMaterialLayout(config?: MaterialLayoutConfig): EnvironmentProviders;
150
-
151
152
  declare class LayoutProfilePopoverDefaultsDirective implements PopoverTriggerDefaults {
152
153
  private readonly layout;
153
154
  readonly side: _angular_core.Signal<PopoverSide>;
@@ -0,0 +1,5 @@
1
+ import { NavigationItem } from '@ojiepermana/angular/navigation/types';
2
+
3
+ declare const DemoNavigationData: NavigationItem[];
4
+
5
+ export { DemoNavigationData };
@@ -0,0 +1,17 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ declare class UiNavIconComponent {
4
+ private readonly doc;
5
+ private readonly platformId;
6
+ readonly name: _angular_core.InputSignal<string>;
7
+ readonly class: _angular_core.InputSignal<string>;
8
+ readonly size: _angular_core.InputSignal<number | null>;
9
+ protected readonly fontVariationSettings = "\"FILL\" 0, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24";
10
+ constructor();
11
+ protected readonly classes: _angular_core.Signal<string>;
12
+ private ensureFontStylesheet;
13
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiNavIconComponent, never>;
14
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiNavIconComponent, "ui-nav-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ }
16
+
17
+ export { UiNavIconComponent };
@@ -0,0 +1,54 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { NavigationItem, NavigationGroupItem, NavigationCollapsableItem, NavigationMegaItem, NavigationAsideItem, NavigationBasicItem } from '@ojiepermana/angular/navigation/types';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ /** Concatenate and dedupe Tailwind class names. */
6
+ declare function cn(...inputs: ClassValue[]): string;
7
+
8
+ /**
9
+ * Recursive navigation item renderer (vertical context).
10
+ *
11
+ * Menerima item polymorphic dan delegasi ke template sesuai `type`.
12
+ * Mega dirender sebagai group biasa saat muncul di konteks vertical.
13
+ */
14
+ declare class UiNavItemComponent {
15
+ private readonly nav;
16
+ protected readonly cn: typeof cn;
17
+ readonly item: _angular_core.InputSignal<NavigationItem>;
18
+ readonly level: _angular_core.InputSignal<number>;
19
+ /** Compact / icon-only rendering (sidebar `thin`). */
20
+ readonly compact: _angular_core.InputSignal<boolean>;
21
+ /** True when this branch sits inside a collapsable rail and can draw a connector back to it. */
22
+ readonly railConnector: _angular_core.InputSignal<boolean>;
23
+ 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";
24
+ protected readonly exactMatch: {
25
+ readonly exact: true;
26
+ readonly paths: "exact";
27
+ readonly queryParams: "exact";
28
+ readonly fragment: "exact";
29
+ readonly matrixParams: "exact";
30
+ };
31
+ protected readonly inexactMatch: {
32
+ readonly paths: "subset";
33
+ readonly queryParams: "subset";
34
+ readonly fragment: "ignored";
35
+ readonly matrixParams: "ignored";
36
+ };
37
+ protected readonly type: _angular_core.Signal<"aside" | "collapsable" | "group" | "mega" | "basic" | "divider" | "spacer">;
38
+ protected readonly groupItem: _angular_core.Signal<NavigationGroupItem>;
39
+ protected readonly collapsableItem: _angular_core.Signal<NavigationCollapsableItem>;
40
+ protected readonly megaItem: _angular_core.Signal<NavigationMegaItem>;
41
+ protected readonly asideItem: _angular_core.Signal<NavigationAsideItem>;
42
+ protected readonly basicItem: _angular_core.Signal<NavigationBasicItem>;
43
+ protected readonly headingId: _angular_core.Signal<string>;
44
+ protected isGroupOpen(): boolean;
45
+ protected isTrailActive(): boolean;
46
+ protected railConnectorClasses(active: boolean): string;
47
+ protected showRailConnector(active: boolean): boolean;
48
+ protected toggleGroup(): void;
49
+ protected runAction(): void;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiNavItemComponent, never>;
51
+ 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>;
52
+ }
53
+
54
+ export { UiNavItemComponent };