@ojiepermana/angular 22.1.10 → 22.1.12

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 (340) hide show
  1. package/README.md +32 -26
  2. package/chart/README.md +272 -0
  3. package/component/README.md +89 -0
  4. package/component/accordion/README.md +195 -0
  5. package/component/alert/README.md +184 -0
  6. package/component/alert-dialog/README.md +255 -0
  7. package/component/aspect-ratio/README.md +116 -0
  8. package/component/avatar/README.md +182 -0
  9. package/component/badge/README.md +143 -0
  10. package/component/breadcrumb/README.md +223 -0
  11. package/component/button/README.md +141 -0
  12. package/component/button-group/README.md +214 -0
  13. package/component/calendar/README.md +137 -0
  14. package/component/card/README.md +232 -0
  15. package/component/carousel/README.md +276 -0
  16. package/component/checkbox/README.md +153 -0
  17. package/component/collapsible/README.md +216 -0
  18. package/component/combobox/README.md +202 -0
  19. package/component/command/README.md +287 -0
  20. package/component/composer/README.md +241 -0
  21. package/component/context-menu/README.md +268 -0
  22. package/component/date-picker/README.md +202 -0
  23. package/component/dialog/README.md +276 -0
  24. package/component/drawer/README.md +147 -0
  25. package/component/dropdown-menu/README.md +336 -0
  26. package/component/editor/README.md +152 -0
  27. package/component/empty/README.md +193 -0
  28. package/component/form/README.md +216 -0
  29. package/component/hover-card/README.md +150 -0
  30. package/component/icon/README.md +25 -0
  31. package/component/input/README.md +160 -0
  32. package/component/input-group/README.md +245 -0
  33. package/component/input-otp/README.md +331 -0
  34. package/component/item/README.md +254 -0
  35. package/component/kanban/README.md +81 -0
  36. package/component/kbd/README.md +141 -0
  37. package/component/label/README.md +137 -0
  38. package/component/menubar/README.md +270 -0
  39. package/component/native-select/README.md +176 -0
  40. package/component/navigation-menu/README.md +165 -0
  41. package/component/pagination/README.md +151 -0
  42. package/component/pillbox/README.md +68 -0
  43. package/component/popover/README.md +54 -0
  44. package/component/progress/README.md +160 -0
  45. package/component/radio/README.md +212 -0
  46. package/component/resizable/README.md +178 -0
  47. package/component/scroll-area/README.md +150 -0
  48. package/component/select/README.md +228 -0
  49. package/component/separator/README.md +175 -0
  50. package/component/sheet/README.md +190 -0
  51. package/component/skeleton/README.md +158 -0
  52. package/component/slider/README.md +207 -0
  53. package/component/spinner/README.md +160 -0
  54. package/component/switch/README.md +170 -0
  55. package/component/table/README.md +292 -0
  56. package/component/tabs/README.md +220 -0
  57. package/component/textarea/README.md +169 -0
  58. package/component/timeline/README.md +94 -0
  59. package/component/toast/README.md +173 -0
  60. package/component/toggle/README.md +133 -0
  61. package/component/toggle-group/README.md +234 -0
  62. package/component/tooltip/README.md +230 -0
  63. package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
  64. package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
  65. package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
  66. package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
  67. package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
  68. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
  69. package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
  70. package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
  71. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
  72. package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
  73. package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
  74. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
  75. package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
  76. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
  77. package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
  78. package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
  79. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
  80. package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
  81. package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
  82. package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
  83. package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
  84. package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
  85. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
  86. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
  87. package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
  88. package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
  89. package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
  90. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
  91. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
  92. package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
  93. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
  94. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
  95. package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
  96. package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
  97. package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
  98. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
  99. package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
  100. package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
  101. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
  102. package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
  103. package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
  104. package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
  105. package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
  106. package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
  107. package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
  108. package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
  109. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
  110. package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
  111. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
  112. package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
  113. package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
  114. package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
  115. package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
  116. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
  117. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
  118. package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
  119. package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
  120. package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
  121. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
  122. package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
  123. package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
  124. package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
  125. package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
  126. package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
  127. package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
  128. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
  129. package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
  130. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
  131. package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
  132. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
  133. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
  134. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
  135. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
  136. package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
  137. package/fesm2022/ojiepermana-angular-component.mjs +4 -4
  138. package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
  139. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
  140. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
  141. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
  142. package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
  143. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
  144. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
  145. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
  146. package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
  147. package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
  148. package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
  149. package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
  150. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
  151. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
  152. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
  153. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
  154. package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
  155. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
  156. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
  157. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
  158. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
  159. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
  160. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
  161. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
  162. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
  163. package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
  164. package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
  165. package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
  166. package/fesm2022/ojiepermana-angular.mjs +6 -11
  167. package/navigation/README.md +374 -0
  168. package/package.json +81 -20
  169. package/sdk/README.md +212 -0
  170. package/sdk/schematics/collection.json +20 -0
  171. package/sdk/schematics/init/index.js +83 -0
  172. package/sdk/schematics/init/schema.json +19 -0
  173. package/sdk/schematics/ng-add/index.js +147 -0
  174. package/sdk/schematics/ng-add/schema.json +14 -0
  175. package/sdk/schematics/package.json +3 -0
  176. package/sdk/schematics/sdk/index.js +175 -0
  177. package/sdk/schematics/sdk/schema.json +19 -0
  178. package/sdk/sdk.config.example.json +24 -0
  179. package/sdk/src/config/loader.js +43 -0
  180. package/sdk/src/config/schema.js +59 -0
  181. package/sdk/src/emit/client.js +251 -0
  182. package/sdk/src/emit/metadata.js +310 -0
  183. package/sdk/src/emit/models.js +104 -0
  184. package/sdk/src/emit/navigation.js +56 -0
  185. package/sdk/src/emit/operations.js +118 -0
  186. package/sdk/src/emit/public-api.js +54 -0
  187. package/sdk/src/emit/services.js +110 -0
  188. package/sdk/src/engine.js +67 -0
  189. package/sdk/src/layout/per-domain.js +360 -0
  190. package/sdk/src/package.json +3 -0
  191. package/sdk/src/parser/bundle.js +25 -0
  192. package/sdk/src/parser/ir.js +429 -0
  193. package/sdk/src/parser/types.js +7 -0
  194. package/sdk/src/render/template.js +152 -0
  195. package/sdk/src/writer/index.js +286 -0
  196. package/theme/README.md +126 -0
  197. package/theme/component/settings/README.md +135 -0
  198. package/theme/layout/README.md +539 -0
  199. package/theme/page/README.md +453 -0
  200. package/theme/shell/README.md +340 -0
  201. package/theme/styles/README.md +178 -0
  202. package/theme/styles/css/base/components.css +553 -0
  203. package/theme/styles/css/base/index.css +14 -0
  204. package/theme/styles/css/base/package.css +9 -0
  205. package/theme/styles/css/base/prefers-dark.css +86 -0
  206. package/theme/styles/css/base/print.css +62 -0
  207. package/theme/styles/css/base/status.css +38 -0
  208. package/theme/styles/css/base/tailwind.css +165 -0
  209. package/theme/styles/css/base/theme.css +373 -0
  210. package/theme/styles/css/base/tokens.css +361 -0
  211. package/theme/styles/css/color/amber.css +72 -0
  212. package/theme/styles/css/color/blue.css +72 -0
  213. package/theme/styles/css/color/brand.css +38 -0
  214. package/theme/styles/css/color/cyan.css +72 -0
  215. package/theme/styles/css/color/emerald.css +72 -0
  216. package/theme/styles/css/color/fuchsia.css +72 -0
  217. package/theme/styles/css/color/green.css +72 -0
  218. package/theme/styles/css/color/index.css +19 -0
  219. package/theme/styles/css/color/indigo.css +72 -0
  220. package/theme/styles/css/color/lime.css +72 -0
  221. package/theme/styles/css/color/orange.css +72 -0
  222. package/theme/styles/css/color/pink.css +72 -0
  223. package/theme/styles/css/color/purple.css +72 -0
  224. package/theme/styles/css/color/red.css +72 -0
  225. package/theme/styles/css/color/rose.css +72 -0
  226. package/theme/styles/css/color/sky.css +72 -0
  227. package/theme/styles/css/color/teal.css +72 -0
  228. package/theme/styles/css/color/violet.css +72 -0
  229. package/theme/styles/css/color/yellow.css +72 -0
  230. package/theme/styles/css/index.css +18 -0
  231. package/theme/styles/css/neutral/gray.css +63 -0
  232. package/theme/styles/css/neutral/index.css +11 -0
  233. package/theme/styles/css/neutral/mauve.css +63 -0
  234. package/theme/styles/css/neutral/mist.css +63 -0
  235. package/theme/styles/css/neutral/neutral.css +63 -0
  236. package/theme/styles/css/neutral/olive.css +63 -0
  237. package/theme/styles/css/neutral/slate.css +63 -0
  238. package/theme/styles/css/neutral/stone.css +63 -0
  239. package/theme/styles/css/neutral/taupe.css +63 -0
  240. package/theme/styles/css/neutral/zinc.css +63 -0
  241. package/theme/styles/css/radius/index.css +30 -0
  242. package/theme/styles/css/space/index.css +20 -0
  243. package/types/ojiepermana-angular-chart-area.d.ts +76 -1
  244. package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
  245. package/types/ojiepermana-angular-chart-core.d.ts +811 -1
  246. package/types/ojiepermana-angular-chart-line.d.ts +75 -1
  247. package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
  248. package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
  249. package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
  250. package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
  251. package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
  252. package/types/ojiepermana-angular-chart.d.ts +2 -1
  253. package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
  254. package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
  255. package/types/ojiepermana-angular-component-alert.d.ts +42 -1
  256. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
  257. package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
  258. package/types/ojiepermana-angular-component-badge.d.ts +24 -1
  259. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
  260. package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
  261. package/types/ojiepermana-angular-component-button.d.ts +27 -1
  262. package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
  263. package/types/ojiepermana-angular-component-card.d.ts +69 -1
  264. package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
  265. package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
  266. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
  267. package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
  268. package/types/ojiepermana-angular-component-command.d.ts +130 -1
  269. package/types/ojiepermana-angular-component-composer.d.ts +90 -1
  270. package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
  271. package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
  272. package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
  273. package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
  274. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
  275. package/types/ojiepermana-angular-component-editor.d.ts +135 -1
  276. package/types/ojiepermana-angular-component-empty.d.ts +50 -1
  277. package/types/ojiepermana-angular-component-form.d.ts +159 -1
  278. package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
  279. package/types/ojiepermana-angular-component-icon.d.ts +89 -1
  280. package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
  281. package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
  282. package/types/ojiepermana-angular-component-input.d.ts +21 -1
  283. package/types/ojiepermana-angular-component-item.d.ts +93 -1
  284. package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
  285. package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
  286. package/types/ojiepermana-angular-component-label.d.ts +11 -1
  287. package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
  288. package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
  289. package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
  290. package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
  291. package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
  292. package/types/ojiepermana-angular-component-popover.d.ts +66 -1
  293. package/types/ojiepermana-angular-component-progress.d.ts +17 -1
  294. package/types/ojiepermana-angular-component-radio.d.ts +60 -1
  295. package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
  296. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
  297. package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
  298. package/types/ojiepermana-angular-component-select.d.ts +122 -1
  299. package/types/ojiepermana-angular-component-separator.d.ts +14 -1
  300. package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
  301. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
  302. package/types/ojiepermana-angular-component-slider.d.ts +83 -1
  303. package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
  304. package/types/ojiepermana-angular-component-switch.d.ts +44 -1
  305. package/types/ojiepermana-angular-component-table.d.ts +57 -1
  306. package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
  307. package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
  308. package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
  309. package/types/ojiepermana-angular-component-toast.d.ts +64 -1
  310. package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
  311. package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
  312. package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
  313. package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
  314. package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
  315. package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
  316. package/types/ojiepermana-angular-component-utils.d.ts +2 -1
  317. package/types/ojiepermana-angular-component.d.ts +2 -1
  318. package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
  319. package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
  320. package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
  321. package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
  322. package/types/ojiepermana-angular-navigation.d.ts +507 -1
  323. package/types/ojiepermana-angular-sdk.d.ts +89 -1
  324. package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
  325. package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
  326. package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
  327. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
  328. package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
  329. package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
  330. package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
  331. package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
  332. package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
  333. package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
  334. package/types/ojiepermana-angular-theme-page.d.ts +5 -1
  335. package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
  336. package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
  337. package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
  338. package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
  339. package/types/ojiepermana-angular-theme.d.ts +2 -1
  340. package/types/ojiepermana-angular.d.ts +5 -5
@@ -0,0 +1,178 @@
1
+ # Resizable
2
+
3
+ Accessible resizable panel groups and layouts with pointer and keyboard support.
4
+
5
+ Use Resizable for split views, workspace layouts, drill-in dashboards, inspector panes, and settings screens where users should control how much space each pane receives.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import {
11
+ ResizableHandleComponent,
12
+ ResizablePanelComponent,
13
+ ResizablePanelGroupComponent,
14
+ } from '@ojiepermana/angular/component/resizable';
15
+ ```
16
+
17
+ ## Composition
18
+
19
+ The Angular structure mirrors the shadcn composition while using Angular selectors and standalone imports.
20
+
21
+ ```text
22
+ ResizablePanelGroup
23
+ ├── ResizablePanel
24
+ ├── ResizableHandle
25
+ └── ResizablePanel
26
+ ```
27
+
28
+ ## Basic usage
29
+
30
+ Use `ResizablePanelGroup` as the root, place `ResizablePanel` elements around each separator, and insert `ResizableHandle` between adjacent panels.
31
+
32
+ ```html
33
+ <ResizablePanelGroup
34
+ orientation="horizontal"
35
+ class="h-[200px] max-w-lg rounded-lg border border-border"
36
+ >
37
+ <ResizablePanel defaultSize="35%">
38
+ <div class="flex h-full items-center justify-center p-6">Navigation</div>
39
+ </ResizablePanel>
40
+
41
+ <ResizableHandle aria-label="Resize navigation"></ResizableHandle>
42
+
43
+ <ResizablePanel defaultSize="65%">
44
+ <div class="flex h-full items-center justify-center p-6">Content</div>
45
+ </ResizablePanel>
46
+ </ResizablePanelGroup>
47
+ ```
48
+
49
+ ## Common patterns
50
+
51
+ ### Nested workspace layout
52
+
53
+ Nested groups work well for mail, support, or analytics layouts where a secondary area also needs its own split.
54
+
55
+ ```html
56
+ <ResizablePanelGroup orientation="horizontal" class="h-[220px] rounded-lg border border-border">
57
+ <ResizablePanel defaultSize="50%">
58
+ <div class="flex h-full items-center justify-center p-6">Threads</div>
59
+ </ResizablePanel>
60
+
61
+ <ResizableHandle withHandle aria-label="Resize thread list"></ResizableHandle>
62
+
63
+ <ResizablePanel defaultSize="50%">
64
+ <ResizablePanelGroup orientation="vertical" class="h-full">
65
+ <ResizablePanel defaultSize="28%">
66
+ <div class="flex h-full items-center justify-center p-6">Summary</div>
67
+ </ResizablePanel>
68
+ <ResizableHandle withHandle aria-label="Resize summary"></ResizableHandle>
69
+ <ResizablePanel defaultSize="72%">
70
+ <div class="flex h-full items-center justify-center p-6">Details</div>
71
+ </ResizablePanel>
72
+ </ResizablePanelGroup>
73
+ </ResizablePanel>
74
+ </ResizablePanelGroup>
75
+ ```
76
+
77
+ ### Vertical resizing
78
+
79
+ Use `orientation="vertical"` when panes stack top-to-bottom.
80
+
81
+ ```html
82
+ <ResizablePanelGroup
83
+ orientation="vertical"
84
+ class="h-[220px] max-w-sm rounded-lg border border-border"
85
+ >
86
+ <ResizablePanel defaultSize="25%">...</ResizablePanel>
87
+ <ResizableHandle aria-label="Resize header"></ResizableHandle>
88
+ <ResizablePanel defaultSize="75%">...</ResizablePanel>
89
+ </ResizablePanelGroup>
90
+ ```
91
+
92
+ ### Visible handle
93
+
94
+ Add `withHandle` when the splitter should show a grab affordance.
95
+
96
+ ```html
97
+ <ResizableHandle withHandle aria-label="Resize sidebar"></ResizableHandle>
98
+ ```
99
+
100
+ ### Size constraints
101
+
102
+ Use `minSize` and `maxSize` to keep navigation, preview, or inspector panes within useful bounds.
103
+
104
+ ```html
105
+ <ResizablePanel defaultSize="30%" minSize="20%" maxSize="40%">...</ResizablePanel>
106
+ ```
107
+
108
+ ### RTL
109
+
110
+ Set `dir="rtl"` on `ResizablePanelGroup` or an ancestor when the layout should follow right-to-left direction. Pointer and arrow-key resizing adapt to the computed direction.
111
+
112
+ ```html
113
+ <ResizablePanelGroup
114
+ dir="rtl"
115
+ orientation="horizontal"
116
+ class="h-[200px] rounded-lg border border-border"
117
+ >
118
+ <ResizablePanel defaultSize="50%">...</ResizablePanel>
119
+ <ResizableHandle withHandle aria-label="تغيير حجم القائمة"></ResizableHandle>
120
+ <ResizablePanel defaultSize="50%">...</ResizablePanel>
121
+ </ResizablePanelGroup>
122
+ ```
123
+
124
+ ## API reference
125
+
126
+ ### `ResizablePanelGroupComponent`
127
+
128
+ | Input | Type | Default |
129
+ | ------------- | ---------------------------- | -------------- |
130
+ | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` |
131
+ | `class` | `string` | `''` |
132
+
133
+ ### `ResizablePanelComponent`
134
+
135
+ | Input | Type | Default |
136
+ | ------------- | -------------------------- | -------------- |
137
+ | `defaultSize` | `string \| number \| null` | `null` |
138
+ | `minSize` | `string \| number` | `'10%'` |
139
+ | `maxSize` | `string \| number` | `'90%'` |
140
+ | `id` | `string \| null` | auto-generated |
141
+ | `class` | `string` | `''` |
142
+
143
+ ### `ResizableHandleComponent`
144
+
145
+ | Input | Type | Default |
146
+ | ------------ | ---------------- | ---------------- |
147
+ | `withHandle` | `boolean` | `false` |
148
+ | `aria-label` | `string \| null` | `'Resize panel'` |
149
+ | `class` | `string` | `''` |
150
+
151
+ ## Styling and theming
152
+
153
+ Pass `class` to the group, panel, or handle to tune height, width, backgrounds, borders, and embedded layouts.
154
+
155
+ The primitives use the shared theme tokens, so utilities such as `border-border`, `bg-card`, `bg-muted/40`, `text-foreground`, and `focus-visible:ring-ring` work as expected.
156
+
157
+ ## Accessibility
158
+
159
+ - Each handle is a focusable `separator` with `aria-controls`, `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`.
160
+ - Provide a clear `aria-label` for each handle when the surrounding pane label is not already obvious from context.
161
+ - Panels stay in normal page flow, which keeps nested forms and content accessible without extra portals or overlays.
162
+
163
+ ## Keyboard interactions
164
+
165
+ - Arrow keys resize the adjacent panes.
166
+ - `Home` moves the primary pane to its minimum allowed size.
167
+ - `End` moves the primary pane to its maximum allowed size.
168
+ - `Enter` collapses the primary pane to its minimum and restores the previous size on the next press.
169
+
170
+ ## Angular notes
171
+
172
+ - The API follows the shadcn `orientation` plus percent-size model, but does not require React or `react-resizable-panels`.
173
+ - `defaultSize`, `minSize`, and `maxSize` accept either percentage strings such as `'25%'` or numeric percentages such as `25`.
174
+ - Custom element hosts are explicitly block-level flex items so nested groups and dashboard panes size correctly inside Angular templates.
175
+
176
+ ## Source parity
177
+
178
+ This Angular implementation follows the shadcn Resizable composition and examples while translating them to standalone component imports, Angular selectors, and a signal-driven internal layout model.
@@ -0,0 +1,150 @@
1
+ # Scroll Area
2
+
3
+ Native scroll viewport with token-styled scrollbars for constrained lists,
4
+ horizontal galleries, and RTL content. It maps the shadcn Scroll Area pattern to
5
+ Angular while keeping scrolling browser-native.
6
+
7
+ ## Import
8
+
9
+ ```ts
10
+ import { ScrollAreaComponent } from '@ojiepermana/angular/component/scroll-area';
11
+ ```
12
+
13
+ Import composed primitives separately when the content needs them:
14
+
15
+ ```ts
16
+ import { ScrollAreaComponent } from '@ojiepermana/angular/component/scroll-area';
17
+ import { SeparatorComponent } from '@ojiepermana/angular/component/separator';
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ Give the host a stable height or width, then place padding on inner content when
23
+ the scrollbar should stay flush with the border.
24
+
25
+ ```html
26
+ <ScrollArea class="h-72 w-48 rounded-md border border-border" viewportAriaLabel="Release tags">
27
+ <div class="p-4">
28
+ <h4 class="mb-4 text-sm font-medium leading-none">Tags</h4>
29
+ @for (tag of tags; track tag) {
30
+ <div class="text-sm">{{ tag }}</div>
31
+ <Separator class="my-2" />
32
+ }
33
+ </div>
34
+ </ScrollArea>
35
+ ```
36
+
37
+ ## Common Patterns
38
+
39
+ ### Basic List
40
+
41
+ ```html
42
+ <ScrollArea class="h-64 w-56 rounded-md border border-border" viewportAriaLabel="Activity log">
43
+ <ol class="space-y-3 p-4 text-sm">
44
+ @for (event of events; track event.id) {
45
+ <li>{{ event.label }}</li>
46
+ }
47
+ </ol>
48
+ </ScrollArea>
49
+ ```
50
+
51
+ ### Horizontal Content
52
+
53
+ ```html
54
+ <ScrollArea
55
+ class="w-full max-w-md rounded-md border border-border"
56
+ viewportAriaLabel="Artwork gallery"
57
+ >
58
+ <div class="flex w-max gap-4 p-4">
59
+ @for (artwork of artworks; track artwork.id; let index = $index) {
60
+ <figure class="shrink-0">
61
+ <img
62
+ [ngSrc]="artwork.image"
63
+ [alt]="artwork.alt"
64
+ [priority]="index === 0"
65
+ width="300"
66
+ height="400"
67
+ class="aspect-3/4 h-64 w-48 rounded-md object-cover"
68
+ />
69
+ <figcaption class="pt-2 text-xs text-muted-foreground">{{ artwork.caption }}</figcaption>
70
+ </figure>
71
+ }
72
+ </div>
73
+ </ScrollArea>
74
+ ```
75
+
76
+ ### RTL Content
77
+
78
+ ```html
79
+ <ScrollArea
80
+ dir="rtl"
81
+ lang="ar"
82
+ class="h-72 w-48 rounded-md border border-border text-right"
83
+ viewportAriaLabel="قائمة العلامات"
84
+ >
85
+ <div class="p-4">...</div>
86
+ </ScrollArea>
87
+ ```
88
+
89
+ ## API Reference
90
+
91
+ | Input | Type | Default | Description |
92
+ | ------------------- | ---------------- | ------- | --------------------------------------------------------------------------------------------- |
93
+ | `class` | `string` | `''` | Classes applied to the custom-element host. Use this for size, border, radius, and placement. |
94
+ | `viewportClass` | `string` | `''` | Classes merged onto the native scroll viewport for axis control, whitespace, or overflow. |
95
+ | `viewportAriaLabel` | `string \| null` | `null` | Adds an accessible label and exposes the viewport as a named region. |
96
+ | `viewportTabIndex` | `number` | `0` | Keeps the scroll viewport keyboard-focusable. Use `-1` only when focusable children suffice. |
97
+
98
+ ## Styling and Theming
99
+
100
+ The host is block-level, relatively positioned, and overflow-hidden. The inner
101
+ viewport uses native `overflow: auto`, `scrollbar-width: thin` for Firefox, and
102
+ WebKit scrollbar pseudo-elements for Chromium/Safari.
103
+
104
+ Tokens consumed:
105
+
106
+ - `--scrollbar-thumb` for the default scrollbar thumb (overridable via `--tw-scrollbar-thumb`).
107
+ - `--scrollbar-track` for the scrollbar track (overridable via `--tw-scrollbar-track`).
108
+ - `--scrollbar-thumb-hover` for the hover thumb fallback.
109
+ - `--scrollbar-size` (default `0.5rem`) and `--scrollbar-radius` (default `9999px`) size the WebKit scrollbar.
110
+ - `--ring` for keyboard focus indication.
111
+
112
+ Pass `class` for host sizing and borders, and `viewportClass` when the viewport
113
+ itself needs adjustments such as `whitespace-nowrap`, custom padding, or axis
114
+ constraints.
115
+
116
+ ## Accessibility
117
+
118
+ The component keeps native wheel, touch, momentum, and keyboard scrolling. The
119
+ viewport is focusable by default with `tabindex="0"`, so keyboard users can
120
+ scroll overflowing content even when there are no focusable descendants.
121
+
122
+ Use `viewportAriaLabel` when the scrollable region needs a spoken name. When a
123
+ label is present, the viewport is exposed as `role="region"`. Keep long lists in
124
+ logical DOM order and avoid hiding important content behind custom-only pointer
125
+ controls.
126
+
127
+ ## Keyboard Interactions
128
+
129
+ When the viewport has focus, the browser handles scrolling keys:
130
+
131
+ - Arrow keys move in the matching direction.
132
+ - Page Up and Page Down scroll by a larger step.
133
+ - Home and End jump to the start or end where supported.
134
+ - Space follows the browser's scroll behavior for the focused region.
135
+
136
+ ## Angular Notes
137
+
138
+ `ScrollAreaComponent` is standalone and has no provider setup. Use Angular
139
+ `@for` with stable track expressions for long content. For static artwork inside
140
+ horizontal scroll examples, import `NgOptimizedImage` and use `ngSrc`.
141
+
142
+ The component intentionally does not add a child `ScrollBar` directive. Native
143
+ scrollbars are styled by CSS and remain visible only when the content overflows.
144
+
145
+ ## Source Parity
146
+
147
+ The shadcn Scroll Area docs show `ScrollArea` plus a `ScrollBar` part. This
148
+ Angular implementation preserves the same usage goals, examples, RTL guidance,
149
+ and themed scrollbar appearance while mapping `ScrollBar` to browser-native
150
+ scrollbars instead of a separate decorative child component.
@@ -0,0 +1,228 @@
1
+ # Select
2
+
3
+ Material-backed custom select with shadcn styling for overlay-driven single or multiple choice.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { FormsModule } from '@angular/forms';
9
+ import { OptionComponent, SelectComponent } from '@ojiepermana/angular/component/select';
10
+ ```
11
+
12
+ ## Composition
13
+
14
+ `SelectField` owns the trigger, overlay, disabled state, and common ARIA passthrough.
15
+ Project `SelectItem` children into it for the actual choices.
16
+
17
+ For grouped menus, the current Angular mapping uses `MatOptgroup` from
18
+ `@angular/material/core` inside `SelectField` rather than publishing separate
19
+ `SelectGroup`, `SelectLabel`, or `SelectSeparator` wrappers.
20
+
21
+ ```text
22
+ SelectField
23
+ ├── SelectItem
24
+ ├── SelectItem
25
+ └── mat-optgroup (optional grouping bridge)
26
+ ├── SelectItem
27
+ └── SelectItem
28
+ ```
29
+
30
+ ## Basic Usage
31
+
32
+ ```html
33
+ <SelectField
34
+ class="block w-full max-w-xs"
35
+ placeholder="Select a plan"
36
+ [(ngModel)]="plan"
37
+ aria-label="Plan"
38
+ >
39
+ <SelectItem value="free">Free</SelectItem>
40
+ <SelectItem value="pro">Pro</SelectItem>
41
+ <SelectItem value="enterprise">Enterprise</SelectItem>
42
+ </SelectField>
43
+ ```
44
+
45
+ ## Common Patterns
46
+
47
+ ### Searchable options (opt-in)
48
+
49
+ Search is disabled by default. Add the boolean `search` input when a longer list
50
+ benefits from filtering; no extra component or dependency is required.
51
+
52
+ ```html
53
+ <SelectField
54
+ search
55
+ searchPlaceholder="Search fruit"
56
+ searchEmptyText="No fruit found."
57
+ placeholder="Select a fruit"
58
+ [(ngModel)]="fruit"
59
+ aria-label="Select a fruit"
60
+ >
61
+ <SelectItem value="apple">Apple</SelectItem>
62
+ <SelectItem value="banana">Banana</SelectItem>
63
+ <SelectItem value="blueberry">Blueberry</SelectItem>
64
+ </SelectField>
65
+ ```
66
+
67
+ ### Grouped options
68
+
69
+ ```ts
70
+ import { MatOptgroup } from '@angular/material/core';
71
+ ```
72
+
73
+ ```html
74
+ <SelectField
75
+ class="block w-full max-w-sm"
76
+ placeholder="Select produce"
77
+ [(ngModel)]="produce"
78
+ aria-label="Produce"
79
+ >
80
+ <mat-optgroup label="Fruits">
81
+ <SelectItem value="apple">Apple</SelectItem>
82
+ <SelectItem value="banana">Banana</SelectItem>
83
+ <SelectItem value="blueberry">Blueberry</SelectItem>
84
+ </mat-optgroup>
85
+
86
+ <mat-optgroup label="Vegetables">
87
+ <SelectItem value="carrot">Carrot</SelectItem>
88
+ <SelectItem value="broccoli">Broccoli</SelectItem>
89
+ <SelectItem value="spinach">Spinach</SelectItem>
90
+ </mat-optgroup>
91
+ </SelectField>
92
+ ```
93
+
94
+ ### Disabled trigger
95
+
96
+ ```html
97
+ <SelectField placeholder="Disabled" disabled aria-label="Disabled plan">
98
+ <SelectItem value="free">Free</SelectItem>
99
+ <SelectItem value="pro">Pro</SelectItem>
100
+ <SelectItem value="enterprise">Enterprise</SelectItem>
101
+ </SelectField>
102
+ ```
103
+
104
+ ### Scrollable overlay
105
+
106
+ Long lists scroll automatically inside the Material overlay. You do not need a
107
+ separate input for that behavior.
108
+
109
+ ```html
110
+ <SelectField
111
+ class="block w-full max-w-md"
112
+ placeholder="Select a timezone"
113
+ [(ngModel)]="timezone"
114
+ aria-label="Timezone"
115
+ >
116
+ <mat-optgroup label="North America">
117
+ <SelectItem value="est">Eastern Standard Time</SelectItem>
118
+ <SelectItem value="cst">Central Standard Time</SelectItem>
119
+ <SelectItem value="mst">Mountain Standard Time</SelectItem>
120
+ <SelectItem value="pst">Pacific Standard Time</SelectItem>
121
+ </mat-optgroup>
122
+
123
+ <mat-optgroup label="Europe & Africa">
124
+ <SelectItem value="gmt">Greenwich Mean Time</SelectItem>
125
+ <SelectItem value="cet">Central European Time</SelectItem>
126
+ <SelectItem value="eet">Eastern European Time</SelectItem>
127
+ </mat-optgroup>
128
+ </SelectField>
129
+ ```
130
+
131
+ ### Helper and error text
132
+
133
+ The wrapper accepts `aria-describedby`, so helper or error text can live next to
134
+ the trigger instead of inside it.
135
+
136
+ ```html
137
+ <SelectField
138
+ class="block w-full max-w-sm"
139
+ placeholder="Select department"
140
+ aria-label="Department"
141
+ aria-describedby="department-error"
142
+ [formControl]="departmentControl"
143
+ required
144
+ >
145
+ <SelectItem value="engineering">Engineering</SelectItem>
146
+ <SelectItem value="sales">Sales</SelectItem>
147
+ <SelectItem value="operations">Operations</SelectItem>
148
+ </SelectField>
149
+
150
+ <p id="department-error" class="text-sm font-medium text-destructive">
151
+ Select a department before continuing.
152
+ </p>
153
+ ```
154
+
155
+ ### Multiple selection
156
+
157
+ ```html
158
+ <SelectField multiple [(ngModel)]="interests" aria-label="Interests">
159
+ @for (i of all; track i) {
160
+ <SelectItem [value]="i">{{ i }}</SelectItem>
161
+ }
162
+ </SelectField>
163
+ ```
164
+
165
+ ## API Reference
166
+
167
+ | Primitive | Selector | Inputs | Outputs |
168
+ | --------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
169
+ | `SelectComponent` | `SelectField` | `placeholder`, `disabled`, `multiple`, `required`, `search`, `searchPlaceholder`, `searchEmptyText`, `aria-label`, `aria-labelledby`, `aria-describedby`, `class` | `valueChange`, `openedChange` |
170
+ | `OptionComponent` | `SelectItem` | `value`, `disabled`, `class` | none |
171
+ | `MatOptgroup` mapping | `mat-optgroup` | `label`, `disabled` | none |
172
+
173
+ Public methods on `SelectComponent`: `open()`, `close()`, `focus()`.
174
+
175
+ ## Styling and Theming
176
+
177
+ The component keeps Angular Material overlay interaction while applying local
178
+ item-aligned positioning and shadcn-style bridge tokens through
179
+ `select.component.css`.
180
+
181
+ - The trigger, overlay panel, and option state backgrounds use the same
182
+ `--radius-base` value, so global `theme-radius` and component-level `radius`
183
+ overrides reshape the complete control consistently.
184
+ - The panel covers the trigger and matches its horizontal bounds. It grows
185
+ downward when space permits and falls back upward near the viewport edge.
186
+ - While the listbox is open, the active ring moves from the covered trigger to
187
+ the overlay panel. Closing the panel restores the ring to the focused trigger.
188
+ - Adjacent option state backgrounds keep a subtle half-`--spacing-base` gap, so
189
+ hovered and selected rows remain visually distinct without changing density.
190
+ - The overlay panel keeps `panelClass="select-panel"` so the shared Material
191
+ bridge layer can restyle the menu surface and options.
192
+ - Opt-in search uses the same input, radius, spacing, foreground, and ring tokens
193
+ as the surrounding panel.
194
+ - Group labels come from Angular Material `mat-optgroup`, so grouped menus inherit
195
+ Material spacing while still picking up the surrounding theme tokens.
196
+
197
+ ## Accessibility
198
+
199
+ Built on `mat-select`, which exposes the listbox/combobox interaction contract.
200
+
201
+ - Provide an accessible name with surrounding copy or `aria-label`/`aria-labelledby`.
202
+ - Use `aria-describedby` when helper or validation text is rendered next to the trigger.
203
+ - Localize `searchPlaceholder` and `searchEmptyText` when search is enabled.
204
+ - Group options only when the categories make the list easier to scan.
205
+
206
+ ## Keyboard Interactions
207
+
208
+ - `Enter`, `Space`, or `Alt+ArrowDown` opens the trigger.
209
+ - Without search, Arrow keys move through the open option list and Material typeahead jumps to matching labels.
210
+ - With search enabled, typing filters labels and Arrow keys move only through matching options.
211
+ - `Enter` or `Space` confirms the active option, and `Escape` closes the panel.
212
+
213
+ ## Angular Notes
214
+
215
+ - `SelectField` is intentionally a thin Angular wrapper over `mat-select` rather than a one-to-one Radix port.
216
+ - Grouped menus currently rely on `MatOptgroup` from `@angular/material/core`.
217
+ - If you want browser-native pickers, semantic `optgroup` nodes, or mobile-first behavior, use `select[NativeSelect]` instead.
218
+
219
+ ## Source Parity
220
+
221
+ This Angular slice follows the shadcn Select information architecture while staying honest about the local API.
222
+
223
+ - The public entrypoint exposes `SelectField` and `SelectItem` instead of separate `SelectTrigger`, `SelectContent`, `SelectGroup`, and `SelectItem` components.
224
+ - Group labels map to Angular Material `mat-optgroup`; there is no published `SelectSeparator` wrapper today.
225
+ - Overlay positioning is item-aligned: the panel covers the trigger, stays on
226
+ its horizontal axis, and chooses a downward or upward opening direction from
227
+ the available viewport space. The wrapper does not expose a separate
228
+ `position="item-aligned" | "popper"` switch.