@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,160 +0,0 @@
1
- # Spinner
2
-
3
- Displays a compact loading indicator for inline status, buttons, badges, input groups, and empty states.
4
-
5
- Use Spinner when work is in progress but the surrounding layout should stay visible and composable.
6
-
7
- ## Import
8
-
9
- ```ts
10
- import { SpinnerComponent } from '@ojiepermana/angular/component/spinner';
11
- ```
12
-
13
- Bring in companion entrypoints such as Button, Badge, Item, Empty, or Input Group only when the surrounding example needs them.
14
-
15
- ## Basic usage
16
-
17
- By default, `ui-spinner` exposes `role="status"` with an accessible name of `Loading`.
18
-
19
- ```html
20
- <ui-spinner aria-label="Loading invoices" />
21
- ```
22
-
23
- ## Common patterns
24
-
25
- ### Size and color
26
-
27
- Use the `class` input to change size, color, or surrounding spacing.
28
-
29
- ```html
30
- <div class="flex items-center gap-4">
31
- <ui-spinner class="size-3" aria-label="Refreshing alerts" />
32
- <ui-spinner class="size-4 text-primary" aria-label="Refreshing dashboard" />
33
- <ui-spinner class="size-6 text-muted-foreground" aria-label="Loading analytics" />
34
- </div>
35
- ```
36
-
37
- ### Decorative inline status
38
-
39
- When nearby text already explains the loading state, mark the spinner as decorative so assistive technology does not hear duplicate status announcements.
40
-
41
- ```html
42
- <button ui-button type="button" disabled class="gap-2">
43
- <ui-spinner decorative />
44
- Loading...
45
- </button>
46
- ```
47
-
48
- ### Button and badge composition
49
-
50
- There is no React-style `data-icon` API in the Angular library. Place `ui-spinner` before or after the visible label and use standard gap utilities on the host surface.
51
-
52
- ```html
53
- <button ui-button type="button" variant="outline" disabled class="gap-2">
54
- <ui-spinner decorative />
55
- Please wait
56
- </button>
57
-
58
- <ui-badge class="gap-1.5">
59
- <ui-spinner decorative class="size-3" />
60
- Syncing
61
- </ui-badge>
62
- ```
63
-
64
- ### Item row
65
-
66
- The upstream preview maps cleanly to the local Item primitive.
67
-
68
- ```html
69
- <ui-item variant="muted" class="w-full max-w-xs [--radius:1rem]">
70
- <ui-item-media>
71
- <ui-spinner decorative />
72
- </ui-item-media>
73
- <ui-item-content>
74
- <ui-item-title>Processing payment...</ui-item-title>
75
- </ui-item-content>
76
- <ui-item-content class="flex-none justify-end">
77
- <span class="text-sm tabular-nums">$100.00</span>
78
- </ui-item-content>
79
- </ui-item>
80
- ```
81
-
82
- ### Input group status
83
-
84
- Spinner works as projected content inside `ui-input-group-addon` for inline or block-end status rows.
85
-
86
- ```html
87
- <ui-input-group>
88
- <input ui-input-group-input placeholder="Send a message..." disabled />
89
- <ui-input-group-addon align="inline-end">
90
- <ui-spinner decorative />
91
- </ui-input-group-addon>
92
- </ui-input-group>
93
- ```
94
-
95
- ### Empty state
96
-
97
- Project the spinner into `ui-empty-media` when a request is still processing.
98
-
99
- ```html
100
- <ui-empty class="w-full max-w-xl rounded-2xl border border-border bg-card/40">
101
- <ui-empty-header>
102
- <ui-empty-media variant="icon">
103
- <ui-spinner decorative class="size-5" />
104
- </ui-empty-media>
105
- <ui-empty-title>Processing your request</ui-empty-title>
106
- <ui-empty-description>Please wait while the operation completes.</ui-empty-description>
107
- </ui-empty-header>
108
- </ui-empty>
109
- ```
110
-
111
- ### RTL
112
-
113
- Set `dir="rtl"` on the surrounding container or layout shell. The spinner stays direction-agnostic while the surrounding row flips logically.
114
-
115
- ```html
116
- <section dir="rtl" lang="ar" class="w-full max-w-xs">
117
- <ui-item variant="muted">
118
- <ui-item-media>
119
- <ui-spinner decorative />
120
- </ui-item-media>
121
- <ui-item-content>
122
- <ui-item-title>جاري معالجة الدفع...</ui-item-title>
123
- </ui-item-content>
124
- </ui-item>
125
- </section>
126
- ```
127
-
128
- ## API reference
129
-
130
- | Input | Type | Default | Notes |
131
- | ----------------- | ---------------- | ----------- | ------------------------------------------------------- |
132
- | `class` | `string` | `''` | Controls size, color, and layout spacing. |
133
- | `decorative` | `boolean` | `false` | Removes status semantics and sets `aria-hidden="true"`. |
134
- | `aria-label` | `string` | `'Loading'` | Accessible name when the spinner stands alone. |
135
- | `aria-labelledby` | `string \| null` | `null` | Connects the spinner to nearby visible text. |
136
-
137
- Native host attributes such as `id`, `dir`, `data-*`, and custom utility classes still pass through to the rendered custom element.
138
-
139
- ## Styling and theming
140
-
141
- The spinner inherits `currentColor`, so it automatically matches the surrounding button, badge, item, or muted text color unless a utility overrides it.
142
-
143
- The default animation uses `animate-spin` and automatically stops under `prefers-reduced-motion`.
144
-
145
- ## Accessibility
146
-
147
- - Default host is a named `status` element for standalone loading indicators.
148
- - Set `decorative` when nearby text already announces the loading state.
149
- - Use `aria-labelledby` instead of a second invisible label when visible copy already exists in the same row.
150
- - Keep the spinner paired with meaningful text or layout context for passive loading states.
151
-
152
- ## Angular notes
153
-
154
- - `ui-spinner` is a standalone component with no providers or services.
155
- - Size and color remain utility-driven instead of introducing React-style variant props.
156
- - The `decorative` input is the Angular-first way to avoid repeated status announcements inside composed controls.
157
-
158
- ## Source parity
159
-
160
- This Angular implementation follows the shadcn Spinner page closely for preview, sizing, buttons, badges, input groups, empty states, and RTL composition while translating the API to standalone imports, utility-driven styling, and explicit accessibility bindings.
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-component-spinner.mjs",
3
- "typings": "../../types/ojiepermana-angular-component-spinner.d.ts"
4
- }
@@ -1,166 +0,0 @@
1
- # Switch
2
-
3
- A shadcn-style switch primitive built on Angular Material's `mat-slide-toggle`, with `ControlValueAccessor` support for `ngModel` and reactive forms.
4
-
5
- ## Import
6
-
7
- ```ts
8
- import { FormsModule } from '@angular/forms';
9
- import { SwitchComponent } from '@ojiepermana/angular/component/switch';
10
- ```
11
-
12
- Add `FormsModule` only when the host component uses `ngModel`. Reactive forms work through the same primitive.
13
-
14
- ## Basic usage
15
-
16
- Use projected content for compact inline labels.
17
-
18
- ```html
19
- <ui-switch [(ngModel)]="airplaneMode" name="airplane-mode">Airplane mode</ui-switch>
20
- ```
21
-
22
- For helper text or card-like settings rows, move the copy outside the switch and connect it with `aria-labelledby` plus `aria-describedby`.
23
-
24
- ```html
25
- <div class="flex items-start justify-between gap-4 rounded-xl border border-border bg-card/40 p-4">
26
- <div class="space-y-1">
27
- <p id="switch-share-label" class="font-medium">Share across devices</p>
28
- <p id="switch-share-description" class="text-sm leading-5 text-muted-foreground">
29
- Focus is shared across devices, and turns off when you leave the app.
30
- </p>
31
- </div>
32
- <ui-switch
33
- [ngModel]="shareAcrossDevices()"
34
- (ngModelChange)="shareAcrossDevices.set($event)"
35
- name="share-across-devices"
36
- aria-labelledby="switch-share-label"
37
- aria-describedby="switch-share-description" />
38
- </div>
39
- ```
40
-
41
- Reactive forms continue to work through the component's value accessor.
42
-
43
- ```html
44
- <ui-switch [formControl]="form.controls.notifications" aria-label="Email notifications" />
45
- ```
46
-
47
- ## Common patterns
48
-
49
- ### Descriptive settings row
50
-
51
- Use `aria-labelledby` and `aria-describedby` when the visible copy sits outside the switch.
52
-
53
- ```html
54
- <div class="flex items-start justify-between gap-4">
55
- <div class="space-y-1">
56
- <p id="setting-label" class="font-medium">Share across devices</p>
57
- <p id="setting-description" class="text-sm text-muted-foreground">
58
- Focus is shared across devices, and turns off when you leave the app.
59
- </p>
60
- </div>
61
- <ui-switch
62
- [ngModel]="shareAcrossDevices()"
63
- (ngModelChange)="shareAcrossDevices.set($event)"
64
- name="share-across-devices"
65
- aria-labelledby="setting-label"
66
- aria-describedby="setting-description" />
67
- </div>
68
- ```
69
-
70
- ### Choice card layout
71
-
72
- The upstream shadcn example wraps the whole field in a clickable label. This Angular primitive keeps the switch as the single interactive control and uses the surrounding card only for layout.
73
-
74
- ```html
75
- <div class="rounded-xl border border-border bg-card/40 p-4">
76
- <div class="flex items-start justify-between gap-4">
77
- <div class="space-y-1">
78
- <p id="notifications-label" class="font-medium">Enable notifications</p>
79
- <p id="notifications-description" class="text-sm text-muted-foreground">
80
- Receive notifications when focus mode is enabled or disabled.
81
- </p>
82
- </div>
83
- <ui-switch
84
- [ngModel]="notificationsEnabled()"
85
- (ngModelChange)="notificationsEnabled.set($event)"
86
- name="notifications-card"
87
- aria-labelledby="notifications-label"
88
- aria-describedby="notifications-description" />
89
- </div>
90
- </div>
91
- ```
92
-
93
- ### Invalid state
94
-
95
- Forward `aria-invalid="true"` when validation should promote the switch into the destructive token set.
96
-
97
- ```html
98
- <ui-switch
99
- [ngModel]="acceptTerms()"
100
- (ngModelChange)="acceptTerms.set($event)"
101
- name="terms-switch"
102
- aria-invalid="true"
103
- aria-label="Accept terms and conditions" />
104
- ```
105
-
106
- ### Size
107
-
108
- Use `size="sm"` for denser settings lists and compact preference panes.
109
-
110
- ```html
111
- <ui-switch size="sm" [(ngModel)]="compactPreference" name="compact-preference">Compact mode</ui-switch>
112
- ```
113
-
114
- ## API reference
115
-
116
- | Input | Type | Default | Notes |
117
- | ------------------ | --------------------------- | -------------- | ------------------------------------------------------------------------- |
118
- | `id` | `string` | auto-generated | Forwarded to Material; the focusable switch button becomes `<id>-button`. |
119
- | `name` | `string \| null` | `null` | Forwarded to the underlying switch control. |
120
- | `disabled` | `boolean` | `false` | Merges with form-driven disabled state. |
121
- | `required` | `boolean` | `false` | Forwarded to the underlying Material switch. |
122
- | `aria-label` | `string \| null` | `null` | Use for compact or text-free switch controls. |
123
- | `aria-describedby` | `string \| null` | `null` | Links helper or error text outside the control. |
124
- | `aria-labelledby` | `string \| null` | `null` | Best choice for descriptive rows and card layouts. |
125
- | `aria-invalid` | `boolean \| string \| null` | `null` | Switches the control into the destructive invalid treatment. |
126
- | `size` | `'default' \| 'sm'` | `'default'` | Smaller track for dense settings lists. |
127
- | `class` | `string` | `''` | Adds utility classes to the wrapped Material host. |
128
-
129
- | Output | Payload |
130
- | --------------- | --------- |
131
- | `checkedChange` | `boolean` |
132
-
133
- Public method: `focus()`.
134
-
135
- ## Styling and theming
136
-
137
- The component uses a Material bridge so the MDC switch structure is restyled with the library theme tokens.
138
-
139
- - Default track and handle colors use the shared `primary`, `input`, and `background` tokens.
140
- - `aria-invalid="true"` switches the switch into the destructive token set.
141
- - `size="sm"` tightens the track and handle sizing without creating a second entrypoint.
142
- - Pass spacing or alignment utilities through `class` when the switch needs to line up with multi-line content.
143
-
144
- Additional visual adjustments belong in `switch.component.css` inside the library.
145
-
146
- ## Accessibility
147
-
148
- - Give the switch an accessible name through projected content, `aria-label`, or `aria-labelledby`.
149
- - Use `aria-describedby` for helper or error text rendered outside the control.
150
- - Prefer `aria-labelledby` over `label[for]` when the visible label is external, because Angular Material renders a focusable switch button rather than a labelable text input.
151
- - `aria-invalid` is forwarded to the underlying Material host for validation styling and assistive technology cues.
152
-
153
- ## Keyboard interactions
154
-
155
- - `Tab` moves focus to the switch in DOM order.
156
- - `Space` toggles the checked state.
157
-
158
- ## Angular notes
159
-
160
- - `ngModel`, reactive forms, and `checkedChange` all work with the same primitive.
161
- - Passing `id` forwards a stable base id to Angular Material; the focusable button receives the derived `<id>-button` id.
162
- - The direct `disabled` input and `setDisabledState()` from forms are merged, so either source can disable the control.
163
-
164
- ## Source parity
165
-
166
- This Angular implementation follows the shadcn Switch examples while translating the upstream Field helpers and clickable-card label pattern into Angular-friendly descriptive containers, ARIA relationships, and signal-friendly state handling.
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-component-switch.mjs",
3
- "typings": "../../types/ojiepermana-angular-component-switch.d.ts"
4
- }
@@ -1,291 +0,0 @@
1
- # Table
2
-
3
- Responsive native table primitives for invoices, product lists, row actions, and compact data summaries.
4
-
5
- Use Table when information has real row and column relationships. The Angular primitive keeps shadcn's composition model while preserving semantic `<table>`, `<thead>`, `<tbody>`, `<tfoot>`, `<tr>`, `<th>`, `<td>`, and `<caption>` elements.
6
-
7
- shadcn's `data-table` guide maps to this entrypoint rather than a separate Angular package surface. Compose Table with the local button, checkbox, input, badge, and dropdown-menu primitives when you need sorting, filtering, row selection, column visibility, row actions, or pagination.
8
-
9
- ## Import
10
-
11
- ```ts
12
- import {
13
- TableBodyComponent,
14
- TableCaptionComponent,
15
- TableCellComponent,
16
- TableComponent,
17
- TableFooterComponent,
18
- TableHeadComponent,
19
- TableHeaderComponent,
20
- TableRowComponent,
21
- } from '@ojiepermana/angular/component/table';
22
- ```
23
-
24
- Row action menus can compose with the local button and dropdown-menu primitives.
25
-
26
- ```ts
27
- import { ButtonComponent } from '@ojiepermana/angular/component/button';
28
- import {
29
- MenuContentDirective,
30
- MenuItemComponent,
31
- MenuSeparatorComponent,
32
- MenuSurfaceComponent,
33
- MenuTriggerDirective,
34
- } from '@ojiepermana/angular/component/dropdown-menu';
35
- ```
36
-
37
- ## Composition
38
-
39
- Apply the attribute-selector parts to the matching semantic table tags.
40
-
41
- ```text
42
- ui-table
43
- |-- caption[ui-table-caption]
44
- |-- thead[ui-table-header]
45
- | `-- tr[ui-table-row]
46
- | |-- th[ui-table-head]
47
- | |-- th[ui-table-head]
48
- | |-- th[ui-table-head]
49
- | `-- th[ui-table-head]
50
- |-- tbody[ui-table-body]
51
- | `-- tr[ui-table-row]
52
- | |-- td[ui-table-cell]
53
- | |-- td[ui-table-cell]
54
- | |-- td[ui-table-cell]
55
- | `-- td[ui-table-cell]
56
- `-- tfoot[ui-table-footer]
57
- ```
58
-
59
- ## Usage
60
-
61
- Use `ui-table` as the responsive wrapper. Bind rows with Angular control flow and stable tracking.
62
-
63
- ```html
64
- <ui-table>
65
- <caption ui-table-caption>
66
- A list of your recent invoices.
67
- </caption>
68
- <thead ui-table-header>
69
- <tr ui-table-row>
70
- <th ui-table-head class="w-25">Invoice</th>
71
- <th ui-table-head>Status</th>
72
- <th ui-table-head>Method</th>
73
- <th ui-table-head class="text-right">Amount</th>
74
- </tr>
75
- </thead>
76
- <tbody ui-table-body>
77
- @for (invoice of invoices; track invoice.invoice) {
78
- <tr ui-table-row>
79
- <td ui-table-cell class="font-medium">{{ invoice.invoice }}</td>
80
- <td ui-table-cell>{{ invoice.status }}</td>
81
- <td ui-table-cell>{{ invoice.method }}</td>
82
- <td ui-table-cell class="text-right">{{ invoice.amount }}</td>
83
- </tr>
84
- }
85
- </tbody>
86
- </ui-table>
87
- ```
88
-
89
- ## Common patterns
90
-
91
- ### Footer totals
92
-
93
- Use `tfoot[ui-table-footer]` for totals and summaries. `colspan` stays on the native `td`.
94
-
95
- ```html
96
- <ui-table>
97
- <caption ui-table-caption>
98
- A list of your recent invoices.
99
- </caption>
100
- <thead ui-table-header>
101
- ...
102
- </thead>
103
- <tbody ui-table-body>
104
- ...
105
- </tbody>
106
- <tfoot ui-table-footer>
107
- <tr ui-table-row>
108
- <td ui-table-cell colspan="3">Total</td>
109
- <td ui-table-cell class="text-right">$2,500.00</td>
110
- </tr>
111
- </tfoot>
112
- </ui-table>
113
- ```
114
-
115
- ### Row actions
116
-
117
- Compose action menus with `ui-button`, `uiMenuTrigger`, and the dropdown-menu surface.
118
-
119
- ```html
120
- <ng-template uiMenuContent #productActionsMenu="uiMenuContent">
121
- <ui-menu-surface class="w-36">
122
- <button ui-menu-item>Edit</button>
123
- <button ui-menu-item>Duplicate</button>
124
- <ui-menu-separator />
125
- <button ui-menu-item variant="destructive">Delete</button>
126
- </ui-menu-surface>
127
- </ng-template>
128
-
129
- <ui-table>
130
- <thead ui-table-header>
131
- <tr ui-table-row>
132
- <th ui-table-head>Product</th>
133
- <th ui-table-head>Price</th>
134
- <th ui-table-head class="text-right">Actions</th>
135
- </tr>
136
- </thead>
137
- <tbody ui-table-body>
138
- @for (product of products; track product.name) {
139
- <tr ui-table-row>
140
- <td ui-table-cell class="font-medium">{{ product.name }}</td>
141
- <td ui-table-cell>{{ product.price }}</td>
142
- <td ui-table-cell class="text-right">
143
- <button
144
- ui-button
145
- type="button"
146
- variant="ghost"
147
- size="icon-sm"
148
- [attr.aria-label]="'Open actions for ' + product.name"
149
- [uiMenuTrigger]="productActionsMenu">
150
- <span aria-hidden="true">...</span>
151
- </button>
152
- </td>
153
- </tr>
154
- }
155
- </tbody>
156
- </ui-table>
157
- ```
158
-
159
- ### Data table guide mapping
160
-
161
- The upstream shadcn `data-table` page is a composition guide, not a standalone primitive. In this Angular library the same guidance starts with `@ojiepermana/angular/component/table` and layers behavior around it.
162
-
163
- ```ts
164
- import { BadgeComponent } from '@ojiepermana/angular/component/badge';
165
- import { ButtonComponent } from '@ojiepermana/angular/component/button';
166
- import { CheckboxComponent } from '@ojiepermana/angular/component/checkbox';
167
- import {
168
- MenuCheckboxItemComponent,
169
- MenuContentDirective,
170
- MenuGroupComponent,
171
- MenuItemComponent,
172
- MenuLabelComponent,
173
- MenuSeparatorComponent,
174
- MenuSurfaceComponent,
175
- MenuTriggerDirective,
176
- } from '@ojiepermana/angular/component/dropdown-menu';
177
- import { InputComponent } from '@ojiepermana/angular/component/input';
178
- ```
179
-
180
- Keep Table as the markup layer and put behavior in Angular signals, services, or a table state library. A small explicit pipeline is usually easier to maintain than a generic catch-all data-table wrapper.
181
-
182
- ```ts
183
- readonly filterText = signal('');
184
- readonly sortState = signal<{ column: 'status' | 'email' | 'amount'; direction: 'asc' | 'desc' } | null>(null);
185
- readonly selectedIds = signal<ReadonlySet<string>>(new Set());
186
-
187
- readonly filteredRows = computed(() => {
188
- const query = filterText().trim().toLowerCase();
189
- return query ? rows.filter((row) => row.email.toLowerCase().includes(query)) : rows;
190
- });
191
-
192
- readonly sortedRows = computed(() => sortRows(filteredRows(), sortState()));
193
- readonly pageRows = computed(() => paginateRows(sortedRows(), currentPage(), pageSize));
194
- ```
195
-
196
- Selected rows can use the shadcn-compatible `data-state="selected"` hook so row styling stays synchronized with the checkbox state.
197
-
198
- ```html
199
- <ui-table>
200
- <thead ui-table-header>
201
- ...
202
- </thead>
203
- <tbody ui-table-body>
204
- @for (row of filteredRows(); track row.id) {
205
- <tr ui-table-row [attr.data-state]="selectedIds().has(row.id) ? 'selected' : null">
206
- <td ui-table-cell>{{ row.title }}</td>
207
- <td ui-table-cell>{{ row.status }}</td>
208
- <td ui-table-cell class="text-right">{{ row.amount }}</td>
209
- </tr>
210
- }
211
- </tbody>
212
- </ui-table>
213
- ```
214
-
215
- ### RTL
216
-
217
- Set direction on a wrapper or directly on `ui-table`. Keep alignment explicit for amount and numeric columns.
218
-
219
- ```html
220
- <div dir="rtl" lang="ar" class="text-right">
221
- <ui-table>
222
- <caption ui-table-caption>
223
- قائمة بفواتيرك الأخيرة.
224
- </caption>
225
- <thead ui-table-header>
226
- <tr ui-table-row>
227
- <th ui-table-head class="w-25 text-right">الفاتورة</th>
228
- <th ui-table-head class="text-right">الحالة</th>
229
- <th ui-table-head class="text-right">الطريقة</th>
230
- <th ui-table-head class="text-right">المبلغ</th>
231
- </tr>
232
- </thead>
233
- <tbody ui-table-body>
234
- ...
235
- </tbody>
236
- </ui-table>
237
- </div>
238
- ```
239
-
240
- ## API reference
241
-
242
- ### `TableComponent`
243
-
244
- | Input | Type | Default | Description |
245
- | ------- | -------- | ------- | ------------------------------------------------- |
246
- | `class` | `string` | `''` | Classes applied to the rendered native `<table>`. |
247
-
248
- ### Attribute parts
249
-
250
- | Part | Selector | Input | Notes |
251
- | ----------------------- | --------------------------- | ------- | ------------------------------------------------------- |
252
- | `TableCaptionComponent` | `caption[ui-table-caption]` | `class` | Muted caption below the table. |
253
- | `TableHeaderComponent` | `thead[ui-table-header]` | `class` | Header section with row dividers. |
254
- | `TableBodyComponent` | `tbody[ui-table-body]` | `class` | Body section that removes the final row border. |
255
- | `TableFooterComponent` | `tfoot[ui-table-footer]` | `class` | Footer section with muted background and top divider. |
256
- | `TableRowComponent` | `tr[ui-table-row]` | `class` | Row hover state and `data-state="selected"` support. |
257
- | `TableHeadComponent` | `th[ui-table-head]` | `class` | Header cell with muted foreground and nowrap text. |
258
- | `TableCellComponent` | `td[ui-table-cell]` | `class` | Body or footer cell with compact padding and alignment. |
259
-
260
- ## Styling and theming
261
-
262
- The root host is `relative block w-full overflow-x-auto`; the rendered table is `w-full caption-bottom text-sm`.
263
-
264
- Dividers use the shared `border-border` token, row hover uses `hover:bg-muted/50`, footer uses `bg-muted/50`, and selected rows respond to `data-state="selected"` with `bg-muted`.
265
-
266
- Pass utility classes to individual parts for column width, alignment, density, responsive visibility, and typography.
267
-
268
- ## Accessibility
269
-
270
- - Use a `<caption ui-table-caption>` when the table conveys meaningful data.
271
- - Keep column headers in native `<th ui-table-head>` cells so screen readers can announce header relationships.
272
- - Use `scope`, `colspan`, `rowspan`, and `aria-sort` on native cells when your data model needs them.
273
- - Do not use Table for non-tabular layout. Use CSS grid or flex layouts for purely visual alignment.
274
-
275
- ## Keyboard interactions
276
-
277
- Static tables do not add custom keyboard behavior. Focusable controls inside cells, such as action menu buttons, keep their own native or primitive-provided keyboard behavior.
278
-
279
- When composing a row menu, the trigger uses native button activation and the local menu handles Arrow Up, Arrow Down, Home, End, Tab dismissal, and typeahead.
280
-
281
- ## Angular notes
282
-
283
- - All table parts are standalone components and can be imported directly.
284
- - The root `ui-table` wraps projected content in a native `<table>`, so child parts should be direct table descendants in normal HTML order.
285
- - Prefer Angular `@for` with a stable `track` expression for row rendering.
286
- - Keep sorting, filtering, pagination, and selection state outside the primitive; Table is intentionally presentational.
287
- - Attribute-selector primitives must be applied to their semantic tag, for example `th[ui-table-head]` and `td[ui-table-cell]`.
288
-
289
- ## Source parity
290
-
291
- This Angular implementation follows the shadcn Table docs for preview, usage, composition, footer, actions, data-table guidance, and RTL. React component names map to Angular selectors, React `className` maps to `class`, and row action menus compose with the local Angular dropdown-menu primitives.
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-component-table.mjs",
3
- "typings": "../../types/ojiepermana-angular-component-table.d.ts"
4
- }