@ojiepermana/angular 22.0.1 → 22.0.27

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 (517) hide show
  1. package/README.md +16 -302
  2. package/fesm2022/ojiepermana-angular-chart.mjs +11 -0
  3. package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-component.mjs +11 -0
  5. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
  6. package/fesm2022/ojiepermana-angular-navigation.mjs +11 -0
  7. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -0
  8. package/fesm2022/ojiepermana-angular-sdk.mjs +11 -0
  9. package/fesm2022/ojiepermana-angular-sdk.mjs.map +1 -0
  10. package/fesm2022/ojiepermana-angular-theme.mjs +3 -382
  11. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  12. package/fesm2022/ojiepermana-angular.mjs +14 -14
  13. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  14. package/package.json +25 -425
  15. package/types/ojiepermana-angular-chart.d.ts +1 -0
  16. package/types/ojiepermana-angular-component.d.ts +1 -0
  17. package/types/ojiepermana-angular-navigation.d.ts +1 -0
  18. package/types/ojiepermana-angular-sdk.d.ts +1 -0
  19. package/types/ojiepermana-angular-theme.d.ts +1 -116
  20. package/types/ojiepermana-angular.d.ts +5 -3
  21. package/.npmignore +0 -2
  22. package/collection.json +0 -30
  23. package/component/accordion/README.md +0 -195
  24. package/component/accordion/package.json +0 -4
  25. package/component/alert/README.md +0 -182
  26. package/component/alert/package.json +0 -4
  27. package/component/alert-dialog/README.md +0 -239
  28. package/component/alert-dialog/package.json +0 -4
  29. package/component/aspect-ratio/README.md +0 -112
  30. package/component/aspect-ratio/package.json +0 -4
  31. package/component/avatar/README.md +0 -176
  32. package/component/avatar/package.json +0 -4
  33. package/component/badge/README.md +0 -133
  34. package/component/badge/package.json +0 -4
  35. package/component/breadcrumb/README.md +0 -216
  36. package/component/breadcrumb/package.json +0 -4
  37. package/component/button/README.md +0 -139
  38. package/component/button/package.json +0 -4
  39. package/component/button-group/README.md +0 -208
  40. package/component/button-group/package.json +0 -4
  41. package/component/calendar/README.md +0 -132
  42. package/component/calendar/package.json +0 -4
  43. package/component/card/README.md +0 -220
  44. package/component/card/package.json +0 -4
  45. package/component/carousel/README.md +0 -276
  46. package/component/carousel/package.json +0 -4
  47. package/component/chart/README.md +0 -249
  48. package/component/chart/area/package.json +0 -4
  49. package/component/chart/bar/package.json +0 -4
  50. package/component/chart/line/package.json +0 -4
  51. package/component/chart/package.json +0 -4
  52. package/component/chart/pie/package.json +0 -4
  53. package/component/chart/radar/package.json +0 -4
  54. package/component/chart/radial/package.json +0 -4
  55. package/component/chart/scatter/package.json +0 -4
  56. package/component/checkbox/README.md +0 -149
  57. package/component/checkbox/package.json +0 -4
  58. package/component/collapsible/README.md +0 -195
  59. package/component/collapsible/package.json +0 -4
  60. package/component/combobox/README.md +0 -198
  61. package/component/combobox/package.json +0 -4
  62. package/component/command/README.md +0 -275
  63. package/component/command/package.json +0 -4
  64. package/component/composer/README.md +0 -235
  65. package/component/composer/package.json +0 -4
  66. package/component/context-menu/README.md +0 -267
  67. package/component/context-menu/package.json +0 -4
  68. package/component/date-picker/README.md +0 -177
  69. package/component/date-picker/package.json +0 -4
  70. package/component/dialog/README.md +0 -237
  71. package/component/dialog/package.json +0 -4
  72. package/component/drawer/README.md +0 -145
  73. package/component/drawer/package.json +0 -4
  74. package/component/dropdown-menu/README.md +0 -311
  75. package/component/dropdown-menu/package.json +0 -4
  76. package/component/editor/README.md +0 -136
  77. package/component/editor/package.json +0 -4
  78. package/component/empty/README.md +0 -183
  79. package/component/empty/package.json +0 -4
  80. package/component/form/README.md +0 -210
  81. package/component/form/package.json +0 -4
  82. package/component/hover-card/README.md +0 -146
  83. package/component/hover-card/package.json +0 -4
  84. package/component/input/README.md +0 -159
  85. package/component/input/package.json +0 -4
  86. package/component/input-group/README.md +0 -239
  87. package/component/input-group/package.json +0 -4
  88. package/component/input-otp/README.md +0 -278
  89. package/component/input-otp/package.json +0 -4
  90. package/component/item/README.md +0 -247
  91. package/component/item/package.json +0 -4
  92. package/component/kanban/README.md +0 -81
  93. package/component/kanban/package.json +0 -4
  94. package/component/kbd/README.md +0 -139
  95. package/component/kbd/package.json +0 -4
  96. package/component/label/README.md +0 -136
  97. package/component/label/package.json +0 -4
  98. package/component/menubar/README.md +0 -269
  99. package/component/menubar/package.json +0 -4
  100. package/component/native-select/README.md +0 -176
  101. package/component/native-select/package.json +0 -4
  102. package/component/navigation-menu/README.md +0 -160
  103. package/component/navigation-menu/package.json +0 -4
  104. package/component/pagination/README.md +0 -144
  105. package/component/pagination/package.json +0 -4
  106. package/component/pillbox/README.md +0 -67
  107. package/component/pillbox/package.json +0 -4
  108. package/component/popover/README.md +0 -43
  109. package/component/popover/package.json +0 -4
  110. package/component/progress/README.md +0 -160
  111. package/component/progress/package.json +0 -4
  112. package/component/radio/README.md +0 -209
  113. package/component/radio/package.json +0 -4
  114. package/component/resizable/README.md +0 -168
  115. package/component/resizable/package.json +0 -4
  116. package/component/scroll-area/README.md +0 -143
  117. package/component/scroll-area/package.json +0 -4
  118. package/component/select/README.md +0 -174
  119. package/component/select/package.json +0 -4
  120. package/component/separator/README.md +0 -170
  121. package/component/separator/package.json +0 -4
  122. package/component/sheet/README.md +0 -183
  123. package/component/sheet/package.json +0 -4
  124. package/component/skeleton/README.md +0 -158
  125. package/component/skeleton/package.json +0 -4
  126. package/component/slider/README.md +0 -207
  127. package/component/slider/package.json +0 -4
  128. package/component/spinner/README.md +0 -160
  129. package/component/spinner/package.json +0 -4
  130. package/component/switch/README.md +0 -166
  131. package/component/switch/package.json +0 -4
  132. package/component/table/README.md +0 -291
  133. package/component/table/package.json +0 -4
  134. package/component/tabs/README.md +0 -219
  135. package/component/tabs/package.json +0 -4
  136. package/component/textarea/README.md +0 -154
  137. package/component/textarea/package.json +0 -4
  138. package/component/timeline/README.md +0 -94
  139. package/component/timeline/package.json +0 -4
  140. package/component/toast/README.md +0 -321
  141. package/component/toast/package.json +0 -4
  142. package/component/toggle/README.md +0 -131
  143. package/component/toggle/package.json +0 -4
  144. package/component/toggle-group/README.md +0 -206
  145. package/component/toggle-group/package.json +0 -4
  146. package/component/tooltip/README.md +0 -211
  147. package/component/tooltip/package.json +0 -4
  148. package/component/utils/package.json +0 -4
  149. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -189
  150. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -276
  152. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -99
  154. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -37
  156. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -139
  158. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -50
  160. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -200
  162. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -103
  164. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -68
  166. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -88
  168. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -152
  170. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -334
  172. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  174. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  176. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  178. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  180. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  182. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  184. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  186. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3925
  188. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -114
  190. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -124
  192. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -272
  194. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -293
  196. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-component-composer.mjs +0 -352
  198. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -103
  200. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -170
  202. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -279
  204. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  206. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -492
  208. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-component-editor.mjs +0 -717
  210. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-component-empty.mjs +0 -145
  212. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -366
  214. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +0 -297
  216. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -179
  218. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  219. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +0 -514
  220. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +0 -1
  221. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -45
  222. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  223. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -264
  224. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  225. package/fesm2022/ojiepermana-angular-component-kanban.mjs +0 -314
  226. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +0 -1
  227. package/fesm2022/ojiepermana-angular-component-kbd.mjs +0 -55
  228. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +0 -1
  229. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -33
  230. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  231. package/fesm2022/ojiepermana-angular-component-menubar.mjs +0 -308
  232. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +0 -1
  233. package/fesm2022/ojiepermana-angular-component-native-select.mjs +0 -67
  234. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +0 -1
  235. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +0 -413
  236. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +0 -1
  237. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -226
  238. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  239. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +0 -812
  240. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +0 -1
  241. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -169
  242. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  243. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -60
  244. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  245. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -122
  246. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  247. package/fesm2022/ojiepermana-angular-component-resizable.mjs +0 -481
  248. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +0 -1
  249. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -54
  250. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  251. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -176
  252. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -37
  254. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -284
  256. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -31
  258. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -423
  260. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-component-spinner.mjs +0 -60
  262. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -116
  264. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -155
  266. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -272
  268. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -39
  270. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-component-timeline.mjs +0 -237
  272. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -71
  274. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +0 -289
  276. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-component-toggle.mjs +0 -82
  278. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -354
  280. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  282. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  284. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -602
  286. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  288. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -116
  290. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  292. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -30
  294. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  296. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs +0 -49
  298. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs +0 -128
  300. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs +0 -123
  302. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs.map +0 -1
  303. package/fesm2022/ojiepermana-angular-layout.mjs +0 -485
  304. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  305. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  306. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  307. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -63
  308. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  309. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -559
  310. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  311. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -213
  312. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  313. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -401
  314. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  315. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -670
  316. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  317. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  318. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  319. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  320. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  321. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -294
  322. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  323. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  324. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  325. package/generator/api/README.md +0 -252
  326. package/generator/api/bin/package.json +0 -3
  327. package/generator/api/bin/schematics/init/index.js +0 -90
  328. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  329. package/generator/api/bin/schematics/sdk/index.js +0 -76
  330. package/generator/api/bin/src/config/loader.js +0 -41
  331. package/generator/api/bin/src/config/schema.js +0 -57
  332. package/generator/api/bin/src/emit/client.js +0 -248
  333. package/generator/api/bin/src/emit/metadata.js +0 -295
  334. package/generator/api/bin/src/emit/models.js +0 -106
  335. package/generator/api/bin/src/emit/navigation.js +0 -56
  336. package/generator/api/bin/src/emit/operations.js +0 -122
  337. package/generator/api/bin/src/emit/public-api.js +0 -54
  338. package/generator/api/bin/src/emit/services.js +0 -87
  339. package/generator/api/bin/src/engine.js +0 -65
  340. package/generator/api/bin/src/layout/per-domain.js +0 -359
  341. package/generator/api/bin/src/parser/bundle.js +0 -25
  342. package/generator/api/bin/src/parser/ir.js +0 -320
  343. package/generator/api/bin/src/parser/types.js +0 -7
  344. package/generator/api/bin/src/render/template.js +0 -58
  345. package/generator/api/bin/src/writer/index.js +0 -278
  346. package/generator/api/package.json +0 -4
  347. package/generator/api/schematics/init/schema.json +0 -19
  348. package/generator/api/schematics/ng-add/schema.json +0 -14
  349. package/generator/api/schematics/sdk/schema.json +0 -19
  350. package/generator/api/sdk.config.example.json +0 -24
  351. package/generator/guide/README.md +0 -84
  352. package/generator/guide/bin/package.json +0 -3
  353. package/generator/guide/bin/schematics/build/index.js +0 -36
  354. package/generator/guide/bin/schematics/init/index.js +0 -70
  355. package/generator/guide/bin/src/config/loader.js +0 -50
  356. package/generator/guide/bin/src/config/schema.js +0 -12
  357. package/generator/guide/bin/src/engine/component.js +0 -74
  358. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  359. package/generator/guide/bin/src/engine/index.js +0 -42
  360. package/generator/guide/bin/src/engine/naming.js +0 -39
  361. package/generator/guide/bin/src/engine/render.js +0 -36
  362. package/generator/guide/bin/src/engine/routes.js +0 -106
  363. package/generator/guide/bin/src/engine/walk.js +0 -35
  364. package/generator/guide/guide.config.example.json +0 -9
  365. package/generator/guide/schematics/build/schema.json +0 -14
  366. package/generator/guide/schematics/init/schema.json +0 -19
  367. package/layout/component/package.json +0 -4
  368. package/layout/package.json +0 -4
  369. package/layout/provider/package.json +0 -4
  370. package/layout/services/package.json +0 -4
  371. package/layout/shell/package.json +0 -4
  372. package/layout/token/directive/package.json +0 -4
  373. package/layout/token/package.json +0 -4
  374. package/layout/type/empty/package.json +0 -4
  375. package/layout/type/horizontal/package.json +0 -4
  376. package/layout/type/vertical/package.json +0 -4
  377. package/navigation/demo-data/package.json +0 -4
  378. package/navigation/icon/package.json +0 -4
  379. package/navigation/item/package.json +0 -4
  380. package/navigation/service/package.json +0 -4
  381. package/navigation/sidebar/package.json +0 -4
  382. package/navigation/topbar/README.md +0 -196
  383. package/navigation/topbar/package.json +0 -4
  384. package/navigation/types/package.json +0 -4
  385. package/theme/README.md +0 -174
  386. package/theme/package.json +0 -4
  387. package/theme/provider/package.json +0 -4
  388. package/theme/services/package.json +0 -4
  389. package/theme/styles/foundation/components.css +0 -81
  390. package/theme/styles/foundation/layers.css +0 -15
  391. package/theme/styles/foundation/tokens.css +0 -55
  392. package/theme/styles/index.css +0 -37
  393. package/theme/styles/integrations/material/autocomplete.css +0 -178
  394. package/theme/styles/integrations/material/button.css +0 -468
  395. package/theme/styles/integrations/material/dialog.css +0 -152
  396. package/theme/styles/integrations/material/select.css +0 -175
  397. package/theme/styles/integrations/material/slide-toggle.css +0 -234
  398. package/theme/styles/integrations/material/slider.css +0 -194
  399. package/theme/styles/integrations/material/tabs.css +0 -229
  400. package/theme/styles/integrations/material.css +0 -264
  401. package/theme/styles/integrations/tailwind.css +0 -114
  402. package/theme/styles/variants/color/amber.css +0 -31
  403. package/theme/styles/variants/color/base.css +0 -36
  404. package/theme/styles/variants/color/blue.css +0 -31
  405. package/theme/styles/variants/color/cyan.css +0 -31
  406. package/theme/styles/variants/color/emerald.css +0 -31
  407. package/theme/styles/variants/color/fuchsia.css +0 -31
  408. package/theme/styles/variants/color/green.css +0 -31
  409. package/theme/styles/variants/color/index.css +0 -22
  410. package/theme/styles/variants/color/indigo.css +0 -31
  411. package/theme/styles/variants/color/lime.css +0 -31
  412. package/theme/styles/variants/color/orange.css +0 -31
  413. package/theme/styles/variants/color/pink.css +0 -31
  414. package/theme/styles/variants/color/purple.css +0 -31
  415. package/theme/styles/variants/color/red.css +0 -31
  416. package/theme/styles/variants/color/rose.css +0 -31
  417. package/theme/styles/variants/color/sky.css +0 -31
  418. package/theme/styles/variants/color/teal.css +0 -31
  419. package/theme/styles/variants/color/violet.css +0 -31
  420. package/theme/styles/variants/color/yellow.css +0 -31
  421. package/theme/styles/variants/mode/dark.css +0 -20
  422. package/theme/styles/variants/mode/index.css +0 -6
  423. package/theme/styles/variants/mode/light.css +0 -24
  424. package/theme/styles/variants/style/brutal.css +0 -50
  425. package/theme/styles/variants/style/default.css +0 -54
  426. package/theme/styles/variants/style/index.css +0 -8
  427. package/theme/styles/variants/style/sharp.css +0 -50
  428. package/theme/styles/variants/style/soft.css +0 -50
  429. package/theme/token/package.json +0 -4
  430. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  431. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  432. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  433. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  434. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  435. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  436. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  437. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  438. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  439. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  440. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  441. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  442. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  443. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  444. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  445. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  446. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  447. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  448. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  449. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  450. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  451. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  452. package/types/ojiepermana-angular-component-combobox.d.ts +0 -50
  453. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  454. package/types/ojiepermana-angular-component-composer.d.ts +0 -90
  455. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  456. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  457. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  458. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  459. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -137
  460. package/types/ojiepermana-angular-component-editor.d.ts +0 -123
  461. package/types/ojiepermana-angular-component-empty.d.ts +0 -50
  462. package/types/ojiepermana-angular-component-form.d.ts +0 -141
  463. package/types/ojiepermana-angular-component-hover-card.d.ts +0 -74
  464. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  465. package/types/ojiepermana-angular-component-input-otp.d.ts +0 -136
  466. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  467. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  468. package/types/ojiepermana-angular-component-kanban.d.ts +0 -70
  469. package/types/ojiepermana-angular-component-kbd.d.ts +0 -16
  470. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  471. package/types/ojiepermana-angular-component-menubar.d.ts +0 -67
  472. package/types/ojiepermana-angular-component-native-select.d.ts +0 -26
  473. package/types/ojiepermana-angular-component-navigation-menu.d.ts +0 -96
  474. package/types/ojiepermana-angular-component-pagination.d.ts +0 -33
  475. package/types/ojiepermana-angular-component-pillbox.d.ts +0 -157
  476. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  477. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  478. package/types/ojiepermana-angular-component-radio.d.ts +0 -40
  479. package/types/ojiepermana-angular-component-resizable.d.ts +0 -99
  480. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  481. package/types/ojiepermana-angular-component-select.d.ts +0 -57
  482. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  483. package/types/ojiepermana-angular-component-sheet.d.ts +0 -76
  484. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  485. package/types/ojiepermana-angular-component-slider.d.ts +0 -74
  486. package/types/ojiepermana-angular-component-spinner.d.ts +0 -13
  487. package/types/ojiepermana-angular-component-switch.d.ts +0 -40
  488. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  489. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  490. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  491. package/types/ojiepermana-angular-component-timeline.d.ts +0 -63
  492. package/types/ojiepermana-angular-component-toast.d.ts +0 -38
  493. package/types/ojiepermana-angular-component-toggle-group.d.ts +0 -89
  494. package/types/ojiepermana-angular-component-toggle.d.ts +0 -25
  495. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -89
  496. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  497. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  498. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  499. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  500. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  501. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  502. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  503. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  504. package/types/ojiepermana-angular-layout-type-empty.d.ts +0 -22
  505. package/types/ojiepermana-angular-layout-type-horizontal.d.ts +0 -36
  506. package/types/ojiepermana-angular-layout-type-vertical.d.ts +0 -38
  507. package/types/ojiepermana-angular-layout.d.ts +0 -164
  508. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  509. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  510. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  511. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  512. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  513. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -74
  514. package/types/ojiepermana-angular-navigation-types.d.ts +0 -135
  515. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  516. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  517. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,14 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "NgAddSchema",
4
- "title": "@ojiepermana/angular ng-add options",
5
- "type": "object",
6
- "properties": {
7
- "skipInstall": {
8
- "type": "boolean",
9
- "default": false,
10
- "description": "Skip installing dependencies after updating package.json."
11
- }
12
- },
13
- "additionalProperties": false
14
- }
@@ -1,19 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "SdkGeneratorSchema",
4
- "title": "Generate an Angular SDK from an OpenAPI spec",
5
- "type": "object",
6
- "properties": {
7
- "config": {
8
- "type": "string",
9
- "description": "Path to sdk.config.json (defaults to ./config/sdk.config.json at workspace root).",
10
- "default": "config/sdk.config.json"
11
- },
12
- "target": {
13
- "type": "string",
14
- "description": "Optional name/index of a specific target in the config to generate."
15
- }
16
- },
17
- "required": [],
18
- "additionalProperties": false
19
- }
@@ -1,24 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@ojiepermana/angular/generator/api/schematics/sdk/schema.json",
3
- "targets": [
4
- {
5
- "input": "./openapi.yaml",
6
- "output": "./sdk",
7
- "mode": "library",
8
- "clientName": "Api",
9
- "packageName": "@my-scope/sdk",
10
- "packageVersion": "0.0.1",
11
- "rootUrl": "",
12
- "splitByDomain": true,
13
- "splitDepth": "service",
14
- "features": {
15
- "models": true,
16
- "operations": true,
17
- "services": true,
18
- "client": true,
19
- "metadata": true,
20
- "navigation": true
21
- }
22
- }
23
- ]
24
- }
@@ -1,84 +0,0 @@
1
- # `@ojiepermana/angular/generator/guide`
2
-
3
- Build-time schematic that compiles a folder of Markdown files into Angular standalone components plus a nested `Routes` file.
4
-
5
- This entry point ships **no runtime code**. It is only invoked through the Angular CLI:
6
-
7
- ```bash
8
- # 1. scaffold a config file at the workspace root
9
- bun run gen:guide:init
10
-
11
- # 2. edit guide.config.json (sourceDir, outputDir, ...)
12
-
13
- # 3. generate components + routes
14
- bun run gen:guide
15
- ```
16
-
17
- Inside this monorepo the schematic factory is registered in the parent collection at [`projects/angular/collection.json`](../../collection.json).
18
- After publishing, consumers run `ng generate @ojiepermana/angular:guide` (and `:guide-init` to scaffold the config).
19
-
20
- ## Config (`guide.config.json`)
21
-
22
- | Key | Type | Default | Description |
23
- | ----------------- | --------------------------- | --------------- | ------------------------------------------------------------------- |
24
- | `sourceDir` | `string` (required) | — | Folder containing `.md` files. Nested folders become nested routes. |
25
- | `outputDir` | `string` (required) | — | Destination folder for generated components and the routes file. |
26
- | `routeFile` | `string` | `doc.routes.ts` | File name of the generated routes file at `outputDir`. |
27
- | `componentPrefix` | `string` | `Doc` | Prefix on generated component class names. |
28
- | `componentStyle` | `'none' \| 'css' \| 'scss'` | `'none'` | Whether to emit a sibling stylesheet per component. |
29
- | `routeExportName` | `string` | `DOC_ROUTES` | Identifier used for the exported `Routes` constant. |
30
-
31
- ## Frontmatter
32
-
33
- Each `.md` file may declare YAML-style frontmatter:
34
-
35
- ```md
36
- ---
37
- title: Getting Started
38
- order: 1
39
- path: getting-started
40
- ---
41
-
42
- # Hello
43
- ```
44
-
45
- - `title` → `data.title` on the route
46
- - `order` → controls sibling sort order (lower comes first)
47
- - `path` → overrides the URL segment derived from the file name (`index.md` → empty path)
48
-
49
- ## Output shape
50
-
51
- For `sourceDir: ./docs` containing `docs/intro/overview.md`:
52
-
53
- ```
54
- <outputDir>/
55
- intro/
56
- overview.component.ts // standalone @Component, OnPush, inline template
57
- doc.routes.ts // exports DOC_ROUTES: Routes
58
- ```
59
-
60
- Routes mirror the folder tree with lazy `loadComponent`:
61
-
62
- ```ts
63
- export const DOC_ROUTES: Routes = [
64
- {
65
- path: 'intro',
66
- children: [
67
- {
68
- path: 'overview',
69
- loadComponent: () => import('./intro/overview.component').then((m) => m.DocIntroOverviewComponent),
70
- data: { title: 'Overview', order: 1 },
71
- },
72
- ],
73
- },
74
- ];
75
- ```
76
-
77
- Then plug into your app:
78
-
79
- ```ts
80
- {
81
- path: 'docs',
82
- loadChildren: () => import('./docs/doc.routes').then((m) => m.DOC_ROUTES),
83
- },
84
- ```
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.build = build;
4
- const node_path_1 = require("node:path");
5
- const loader_1 = require("../../src/config/loader");
6
- const engine_1 = require("../../src/engine");
7
- function build(options = {}) {
8
- return async (tree, context) => {
9
- const workspaceRoot = process.cwd();
10
- const configPath = options.config ?? 'config/guide.config.json';
11
- const config = (0, loader_1.loadConfig)(configPath, workspaceRoot);
12
- const result = await (0, engine_1.generate)(config, workspaceRoot);
13
- writeResult(tree, workspaceRoot, result, context);
14
- return tree;
15
- };
16
- }
17
- function writeResult(tree, workspaceRoot, result, context) {
18
- const relOutput = (0, node_path_1.relative)(workspaceRoot, result.outputDir) || '.';
19
- context.logger.info(`[guide] ${relOutput} (markdown=${result.stats.markdown}, components=${result.stats.components}, files=${result.stats.files})`);
20
- for (const file of result.files) {
21
- const treePath = normalizeTreePath(workspaceRoot, file.path);
22
- const buffer = Buffer.from(file.content, 'utf8');
23
- if (tree.exists(treePath)) {
24
- tree.overwrite(treePath, buffer);
25
- }
26
- else {
27
- tree.create(treePath, buffer);
28
- }
29
- }
30
- }
31
- function normalizeTreePath(workspaceRoot, path) {
32
- const abs = (0, node_path_1.resolve)(workspaceRoot, path);
33
- const rel = (0, node_path_1.relative)(workspaceRoot, abs);
34
- const posix = rel.split(/\\+/).join('/');
35
- return posix.startsWith('/') ? posix : `/${posix}`;
36
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = init;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- const FALLBACK_TEMPLATE = {
7
- $schema: './node_modules/@ojiepermana/angular/generator/guide/schematics/build/schema.json',
8
- sourceDir: './docs',
9
- outputDir: './projects/demo/library/src/app/docs',
10
- routeFile: 'doc.routes.ts',
11
- componentPrefix: 'Doc',
12
- componentStyle: 'none',
13
- routeExportName: 'DOC_ROUTES',
14
- };
15
- function init(options = {}) {
16
- return (tree, context) => {
17
- const workspaceRoot = process.cwd();
18
- const destRelative = options.path ?? 'config/guide.config.json';
19
- const treePath = destRelative.startsWith('/') ? destRelative : `/${destRelative}`;
20
- if (tree.exists(treePath) && !options.force) {
21
- throw new Error(`${destRelative} already exists. Re-run with --force to overwrite.`);
22
- }
23
- const content = loadTemplate(workspaceRoot, destRelative);
24
- const buffer = Buffer.from(content, 'utf8');
25
- if (tree.exists(treePath)) {
26
- tree.overwrite(treePath, buffer);
27
- context.logger.info(`[guide:init] overwrote ${destRelative}`);
28
- }
29
- else {
30
- tree.create(treePath, buffer);
31
- context.logger.info(`[guide:init] created ${destRelative}`);
32
- }
33
- context.logger.info(`[guide:init] edit sourceDir / outputDir, then run \`${getNextCommand(workspaceRoot)}\`.`);
34
- };
35
- }
36
- function loadTemplate(workspaceRoot, destRelative) {
37
- const candidates = [
38
- (0, node_path_1.resolve)(workspaceRoot, 'guide.config.example.json'),
39
- (0, node_path_1.resolve)(__dirname, '../../../guide.config.example.json'),
40
- (0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/guide/guide.config.example.json'),
41
- ];
42
- for (const candidate of candidates) {
43
- try {
44
- const parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, 'utf8'));
45
- parsed.$schema = resolveSchemaPath(workspaceRoot, destRelative);
46
- return `${JSON.stringify(parsed, null, 2)}\n`;
47
- }
48
- catch {
49
- // try next
50
- }
51
- }
52
- return `${JSON.stringify({ ...FALLBACK_TEMPLATE, $schema: resolveSchemaPath(workspaceRoot, destRelative) }, null, 2)}\n`;
53
- }
54
- function resolveSchemaPath(workspaceRoot, destRelative) {
55
- const prefix = relativePrefix(destRelative);
56
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/guide/schematics/build/schema.json'))) {
57
- return `${prefix}projects/angular/generator/guide/schematics/build/schema.json`;
58
- }
59
- return `${prefix}node_modules/@ojiepermana/angular/generator/guide/schematics/build/schema.json`;
60
- }
61
- function relativePrefix(destRelative) {
62
- const depth = destRelative.replace(/^\/+/, '').split('/').length - 1;
63
- return depth <= 0 ? './' : '../'.repeat(depth);
64
- }
65
- function getNextCommand(workspaceRoot) {
66
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/collection.json'))) {
67
- return 'bun run gen:guide';
68
- }
69
- return 'ng generate @ojiepermana/angular:guide';
70
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadConfig = loadConfig;
4
- exports.resolveConfig = resolveConfig;
5
- const node_fs_1 = require("node:fs");
6
- const node_path_1 = require("node:path");
7
- const VALID_STYLES = ['none', 'css', 'scss'];
8
- function loadConfig(configPath, workspaceRoot) {
9
- const absolute = (0, node_path_1.isAbsolute)(configPath) ? configPath : (0, node_path_1.resolve)(workspaceRoot, configPath);
10
- let raw;
11
- try {
12
- raw = (0, node_fs_1.readFileSync)(absolute, 'utf8');
13
- }
14
- catch (error) {
15
- throw new Error(`[guide] Unable to read config at ${absolute}. Run \`bun run gen:guide:init\` to scaffold one. (${error.message})`);
16
- }
17
- let parsed;
18
- try {
19
- parsed = JSON.parse(raw);
20
- }
21
- catch (error) {
22
- throw new Error(`[guide] Invalid JSON in ${absolute}: ${error.message}`);
23
- }
24
- return resolveConfig(parsed, absolute);
25
- }
26
- function resolveConfig(input, configPath) {
27
- if (!input || typeof input !== 'object') {
28
- throw new Error(`[guide] Config at ${configPath} must be a JSON object.`);
29
- }
30
- if (!input.sourceDir || typeof input.sourceDir !== 'string') {
31
- throw new Error(`[guide] "sourceDir" is required in ${configPath}.`);
32
- }
33
- if (!input.outputDir || typeof input.outputDir !== 'string') {
34
- throw new Error(`[guide] "outputDir" is required in ${configPath}.`);
35
- }
36
- const style = input.componentStyle ?? 'none';
37
- if (!VALID_STYLES.includes(style)) {
38
- throw new Error(`[guide] Invalid componentStyle "${style}". Expected one of ${VALID_STYLES.join(', ')}.`);
39
- }
40
- return {
41
- sourceDir: input.sourceDir,
42
- outputDir: input.outputDir,
43
- routeFile: input.routeFile && input.routeFile.trim() ? input.routeFile : 'doc.routes.ts',
44
- componentPrefix: input.componentPrefix && input.componentPrefix.trim() ? input.componentPrefix : 'Doc',
45
- componentStyle: style,
46
- routeExportName: input.routeExportName && /^[A-Za-z_][A-Za-z0-9_]*$/.test(input.routeExportName)
47
- ? input.routeExportName
48
- : 'DOC_ROUTES',
49
- };
50
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- /**
3
- * Public configuration shape for the `guide` schematic.
4
- *
5
- * The schematic reads `guide.config.json` at the workspace root and produces
6
- * standalone Angular components plus a nested `Routes` file under `outputDir`.
7
- *
8
- * Node / Angular CLI utilities stay in the schematic package itself. This file
9
- * is the only surface re-exported by the secondary entry point and therefore
10
- * MUST stay free of Node-specific imports.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildComponent = buildComponent;
4
- const naming_1 = require("./naming");
5
- const render_1 = require("./render");
6
- async function buildComponent(segments, frontmatter, body, config) {
7
- const html = await (0, render_1.renderMarkdown)(body);
8
- const escaped = (0, render_1.escapeForTemplateLiteral)(html);
9
- const className = (0, naming_1.componentClassName)(config.componentPrefix, segments);
10
- const selector = (0, naming_1.componentSelector)(config.componentPrefix, segments);
11
- const fileBase = (0, naming_1.componentFileBase)(segments);
12
- const folderPath = segments.slice(0, -1).map(naming_1.toSlug).join('/');
13
- const tsPath = joinPath(folderPath, `${fileBase}.component.ts`);
14
- const { stylePath, styleRef, styleContent } = styleAssets(config.componentStyle, folderPath, fileBase);
15
- const title = typeof frontmatter.title === 'string' && frontmatter.title.trim()
16
- ? frontmatter.title.trim()
17
- : humanizeTitle(segments);
18
- const order = typeof frontmatter.order === 'number' ? frontmatter.order : null;
19
- const pathOverride = typeof frontmatter.path === 'string' && frontmatter.path.trim() ? frontmatter.path.trim() : null;
20
- const tsContent = renderComponentTs({
21
- className,
22
- selector,
23
- html: escaped,
24
- styleRef,
25
- });
26
- return {
27
- className,
28
- selector,
29
- tsContent,
30
- styleContent,
31
- tsPath,
32
- stylePath,
33
- segments,
34
- title,
35
- order,
36
- pathOverride,
37
- };
38
- }
39
- function styleAssets(style, folder, fileBase) {
40
- if (style === 'none') {
41
- return { stylePath: null, styleRef: null, styleContent: null };
42
- }
43
- const ext = style === 'scss' ? 'scss' : 'css';
44
- const stylePath = joinPath(folder, `${fileBase}.component.${ext}`);
45
- return {
46
- stylePath,
47
- styleRef: `./${fileBase}.component.${ext}`,
48
- styleContent: `:host { display: block; }\n`,
49
- };
50
- }
51
- function renderComponentTs(opts) {
52
- const styleLine = opts.styleRef ? ` styleUrl: '${opts.styleRef}',\n` : '';
53
- return (`// Auto-generated by @ojiepermana/angular/generator/guide. Do not edit by hand.\n` +
54
- `import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n` +
55
- `@Component({\n` +
56
- ` selector: '${opts.selector}',\n` +
57
- ` changeDetection: ChangeDetectionStrategy.OnPush,\n` +
58
- ` host: { class: 'block min-w-0' },\n` +
59
- styleLine +
60
- ` template: \`<article class="demo-docs-content">${opts.html}</article>\`,\n` +
61
- `})\n` +
62
- `export class ${opts.className} {}\n`);
63
- }
64
- function humanizeTitle(segments) {
65
- const last = segments[segments.length - 1] ?? 'Untitled';
66
- return last
67
- .replace(/[-_]+/g, ' ')
68
- .replace(/\s+/g, ' ')
69
- .trim()
70
- .replace(/(^|\s)\S/g, (c) => c.toUpperCase());
71
- }
72
- function joinPath(folder, file) {
73
- return folder ? `${folder}/${file}` : file;
74
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMarkdown = parseMarkdown;
4
- const FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
5
- function parseMarkdown(source) {
6
- const match = source.match(FRONTMATTER_RE);
7
- if (!match) {
8
- return { frontmatter: {}, body: source };
9
- }
10
- const frontmatter = parseSimpleYaml(match[1]);
11
- const body = source.slice(match[0].length);
12
- return { frontmatter, body };
13
- }
14
- function parseSimpleYaml(yaml) {
15
- const out = {};
16
- for (const rawLine of yaml.split(/\r?\n/)) {
17
- const line = rawLine.trim();
18
- if (!line || line.startsWith('#'))
19
- continue;
20
- const idx = line.indexOf(':');
21
- if (idx === -1)
22
- continue;
23
- const key = line.slice(0, idx).trim();
24
- let value = line.slice(idx + 1).trim();
25
- if (!key)
26
- continue;
27
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
28
- value = value.slice(1, -1);
29
- }
30
- if (value === 'true')
31
- out[key] = true;
32
- else if (value === 'false')
33
- out[key] = false;
34
- else if (value !== '' && !Number.isNaN(Number(value)) && /^-?\d+(\.\d+)?$/.test(value)) {
35
- out[key] = Number(value);
36
- }
37
- else {
38
- out[key] = value;
39
- }
40
- }
41
- return out;
42
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = generate;
4
- const node_path_1 = require("node:path");
5
- const component_1 = require("./component");
6
- const frontmatter_1 = require("./frontmatter");
7
- const routes_1 = require("./routes");
8
- const walk_1 = require("./walk");
9
- async function generate(config, workspaceRoot) {
10
- const sourceAbs = resolveUnderRoot(config.sourceDir, workspaceRoot);
11
- const outputAbs = resolveUnderRoot(config.outputDir, workspaceRoot);
12
- const sources = (0, walk_1.collectMarkdown)(sourceAbs);
13
- const components = await Promise.all(sources.map(async (src) => {
14
- const { frontmatter, body } = (0, frontmatter_1.parseMarkdown)(src.content);
15
- return (0, component_1.buildComponent)(src.segments, frontmatter, body, config);
16
- }));
17
- const files = [];
18
- for (const comp of components) {
19
- files.push({ path: joinWorkspace(workspaceRoot, outputAbs, comp.tsPath), content: comp.tsContent });
20
- if (comp.stylePath && comp.styleContent !== null) {
21
- files.push({ path: joinWorkspace(workspaceRoot, outputAbs, comp.stylePath), content: comp.styleContent });
22
- }
23
- }
24
- files.push({
25
- path: joinWorkspace(workspaceRoot, outputAbs, config.routeFile),
26
- content: (0, routes_1.renderRoutes)(components, config),
27
- });
28
- return {
29
- config,
30
- outputDir: outputAbs,
31
- files,
32
- stats: { markdown: sources.length, components: components.length, files: files.length },
33
- };
34
- }
35
- function resolveUnderRoot(p, workspaceRoot) {
36
- return (0, node_path_1.isAbsolute)(p) ? p : (0, node_path_1.resolve)(workspaceRoot, p);
37
- }
38
- function joinWorkspace(workspaceRoot, outputAbs, rel) {
39
- const abs = (0, node_path_1.resolve)(outputAbs, rel);
40
- const normalized = abs.startsWith(workspaceRoot) ? abs.slice(workspaceRoot.length + 1) : abs;
41
- return normalized.split(/[\\/]+/).join('/');
42
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toSlug = toSlug;
4
- exports.toPascal = toPascal;
5
- exports.componentClassName = componentClassName;
6
- exports.componentFileBase = componentFileBase;
7
- exports.componentSelector = componentSelector;
8
- function toSlug(segment) {
9
- return segment
10
- .toLowerCase()
11
- .trim()
12
- .replace(/[^a-z0-9]+/g, '-')
13
- .replace(/^-+|-+$/g, '');
14
- }
15
- function toPascal(segment) {
16
- return segment
17
- .replace(/[^A-Za-z0-9]+/g, ' ')
18
- .trim()
19
- .split(/\s+/)
20
- .map((w) => (w.length === 0 ? w : w[0].toUpperCase() + w.slice(1).toLowerCase()))
21
- .join('');
22
- }
23
- function componentClassName(prefix, segments) {
24
- const base = segments.map(toPascal).join('');
25
- return `${prefix}${base}Component`;
26
- }
27
- function componentFileBase(segments) {
28
- const last = segments[segments.length - 1] ?? 'index';
29
- return toSlug(last) || 'index';
30
- }
31
- function componentSelector(prefix, segments) {
32
- const kebabPrefix = prefix
33
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
34
- .replace(/[^A-Za-z0-9]+/g, '-')
35
- .replace(/^-+|-+$/g, '')
36
- .toLowerCase() || 'doc';
37
- const rest = segments.map(toSlug).filter(Boolean).join('-') || 'index';
38
- return `${kebabPrefix}-${rest}`;
39
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderMarkdown = renderMarkdown;
4
- exports.escapeForTemplateLiteral = escapeForTemplateLiteral;
5
- let markedPromise = null;
6
- async function loadMarked() {
7
- markedPromise ??= import('marked');
8
- return markedPromise;
9
- }
10
- /** Render Markdown (GFM) to HTML. */
11
- async function renderMarkdown(body) {
12
- const { marked } = await loadMarked();
13
- marked.setOptions({ gfm: true, breaks: false });
14
- const html = marked.parse(body, { async: false });
15
- if (typeof html !== 'string') {
16
- throw new Error('[guide] marked returned a non-string result; expected synchronous parse.');
17
- }
18
- return html.trim();
19
- }
20
- /**
21
- * Escape content so rendered HTML can be safely embedded in a generated Angular
22
- * inline template.
23
- *
24
- * Besides template-literal escaping, Angular v17+ reserves `@`, `{`, and `}`
25
- * in templates for control flow blocks and ICU expressions. Docs content often
26
- * contains those characters in code fences, so encode them before emission.
27
- */
28
- function escapeForTemplateLiteral(html) {
29
- return html
30
- .replace(/\\/g, '\\\\')
31
- .replace(/`/g, '\\`')
32
- .replace(/\$\{/g, '\\${')
33
- .replace(/@/g, '&#64;')
34
- .replace(/\{/g, '&#123;')
35
- .replace(/\}/g, '&#125;');
36
- }
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderRoutes = renderRoutes;
4
- const naming_1 = require("./naming");
5
- function renderRoutes(components, config) {
6
- const root = { segment: '', children: new Map() };
7
- for (const comp of components) {
8
- insert(root, comp);
9
- }
10
- const body = serializeChildren(root, ' ');
11
- const exportName = config.routeExportName;
12
- return (`// Auto-generated by @ojiepermana/angular/generator/guide. Do not edit by hand.\n` +
13
- `import type { Routes } from '@angular/router';\n\n` +
14
- `export const ${exportName}: Routes = [\n` +
15
- body +
16
- `];\n`);
17
- }
18
- function insert(root, comp) {
19
- const segments = routeSegments(comp);
20
- let node = root;
21
- for (let i = 0; i < segments.length - 1; i++) {
22
- const seg = segments[i];
23
- let next = node.children.get(seg);
24
- if (!next) {
25
- next = { segment: seg, children: new Map() };
26
- node.children.set(seg, next);
27
- }
28
- node = next;
29
- }
30
- const leafSeg = segments[segments.length - 1];
31
- let leaf = node.children.get(leafSeg);
32
- if (!leaf) {
33
- leaf = { segment: leafSeg, children: new Map() };
34
- node.children.set(leafSeg, leaf);
35
- }
36
- if (leaf.leaf) {
37
- throw new Error(`[guide] Route conflict: two markdown files resolve to the same path "${segments.join('/') || '<root>'}".`);
38
- }
39
- leaf.leaf = comp;
40
- }
41
- function routeSegments(comp) {
42
- // file segments without extension; handle index.md as empty path at parent level
43
- const segs = comp.segments.slice();
44
- const last = segs[segs.length - 1] ?? 'index';
45
- if (comp.pathOverride !== null) {
46
- // Override replaces the leaf segment path (keeps parent folders).
47
- segs[segs.length - 1] = comp.pathOverride === '' ? '' : comp.pathOverride;
48
- }
49
- else if (/^index$/i.test(last)) {
50
- segs[segs.length - 1] = '';
51
- }
52
- else {
53
- segs[segs.length - 1] = (0, naming_1.toSlug)(last);
54
- }
55
- // slugify folder segments
56
- for (let i = 0; i < segs.length - 1; i++) {
57
- segs[i] = (0, naming_1.toSlug)(segs[i]);
58
- }
59
- return segs;
60
- }
61
- function serializeChildren(node, indent) {
62
- const children = [...node.children.values()].sort(compareNodes);
63
- return children.map((c) => serializeNode(c, indent)).join('');
64
- }
65
- function compareNodes(a, b) {
66
- const orderA = a.leaf?.order ?? Number.POSITIVE_INFINITY;
67
- const orderB = b.leaf?.order ?? Number.POSITIVE_INFINITY;
68
- if (orderA !== orderB)
69
- return orderA - orderB;
70
- return a.segment.localeCompare(b.segment);
71
- }
72
- function serializeNode(node, indent) {
73
- const next = indent + ' ';
74
- const lines = [];
75
- lines.push(`${indent}{`);
76
- lines.push(`${next}path: ${JSON.stringify(node.segment)},`);
77
- if (node.leaf) {
78
- const comp = node.leaf;
79
- const importPath = importSpecifier(comp.tsPath);
80
- lines.push(`${next}loadComponent: () => import(${JSON.stringify(importPath)}).then((m) => m.${comp.className}),`);
81
- const data = routeData(comp);
82
- if (data)
83
- lines.push(`${next}data: ${data},`);
84
- }
85
- if (node.children.size > 0) {
86
- lines.push(`${next}children: [`);
87
- lines.push(serializeChildren(node, next + ' ').replace(/\n+$/, ''));
88
- lines.push(`${next}],`);
89
- }
90
- lines.push(`${indent}},`);
91
- return lines.join('\n') + '\n';
92
- }
93
- function routeData(comp) {
94
- const parts = [];
95
- if (comp.title)
96
- parts.push(`title: ${JSON.stringify(comp.title)}`);
97
- if (comp.order !== null)
98
- parts.push(`order: ${comp.order}`);
99
- if (parts.length === 0)
100
- return null;
101
- return `{ ${parts.join(', ')} }`;
102
- }
103
- function importSpecifier(tsPath) {
104
- const noExt = tsPath.replace(/\.ts$/i, '');
105
- return `./${noExt}`;
106
- }