@ojiepermana/angular 21.3.4 → 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 (387) hide show
  1. package/README.md +16 -298
  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 -374
  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 -361
  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/package.json +0 -4
  24. package/component/alert/package.json +0 -4
  25. package/component/alert-dialog/package.json +0 -4
  26. package/component/aspect-ratio/package.json +0 -4
  27. package/component/avatar/package.json +0 -4
  28. package/component/badge/package.json +0 -4
  29. package/component/breadcrumb/package.json +0 -4
  30. package/component/button/package.json +0 -4
  31. package/component/button-group/package.json +0 -4
  32. package/component/calendar/package.json +0 -4
  33. package/component/card/package.json +0 -4
  34. package/component/carousel/package.json +0 -4
  35. package/component/chart/README.md +0 -249
  36. package/component/chart/area/package.json +0 -4
  37. package/component/chart/bar/package.json +0 -4
  38. package/component/chart/line/package.json +0 -4
  39. package/component/chart/package.json +0 -4
  40. package/component/chart/pie/package.json +0 -4
  41. package/component/chart/radar/package.json +0 -4
  42. package/component/chart/radial/package.json +0 -4
  43. package/component/chart/scatter/package.json +0 -4
  44. package/component/checkbox/package.json +0 -4
  45. package/component/collapsible/package.json +0 -4
  46. package/component/combobox/package.json +0 -4
  47. package/component/command/package.json +0 -4
  48. package/component/context-menu/package.json +0 -4
  49. package/component/date-picker/package.json +0 -4
  50. package/component/dialog/package.json +0 -4
  51. package/component/drawer/package.json +0 -4
  52. package/component/dropdown-menu/package.json +0 -4
  53. package/component/form/package.json +0 -4
  54. package/component/input/package.json +0 -4
  55. package/component/input-group/package.json +0 -4
  56. package/component/item/package.json +0 -4
  57. package/component/label/package.json +0 -4
  58. package/component/pagination/package.json +0 -4
  59. package/component/popover/package.json +0 -4
  60. package/component/progress/package.json +0 -4
  61. package/component/radio/package.json +0 -4
  62. package/component/scroll-area/package.json +0 -4
  63. package/component/select/package.json +0 -4
  64. package/component/separator/package.json +0 -4
  65. package/component/sheet/package.json +0 -4
  66. package/component/skeleton/package.json +0 -4
  67. package/component/slider/package.json +0 -4
  68. package/component/switch/package.json +0 -4
  69. package/component/table/package.json +0 -4
  70. package/component/tabs/package.json +0 -4
  71. package/component/textarea/package.json +0 -4
  72. package/component/toast/package.json +0 -4
  73. package/component/tooltip/package.json +0 -4
  74. package/component/utils/package.json +0 -4
  75. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -174
  76. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  77. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -242
  78. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  79. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -90
  80. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  81. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -33
  82. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  83. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -123
  84. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  85. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -47
  86. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  87. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -186
  88. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  89. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -95
  90. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  91. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -64
  92. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  93. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -78
  94. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  95. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -137
  96. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  97. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -310
  98. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  99. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  100. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  101. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  102. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  103. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  104. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  105. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  106. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  107. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  108. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  109. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  110. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  111. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  112. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  113. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3714
  114. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  115. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -104
  116. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  117. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -116
  118. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  119. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -263
  120. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  121. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -268
  122. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  123. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -100
  124. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  125. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -155
  126. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  127. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -262
  128. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  129. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  130. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  131. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -458
  132. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  133. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -208
  134. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  135. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -164
  136. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  137. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -43
  138. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  139. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -241
  140. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  141. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -30
  142. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  143. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -192
  144. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  145. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -163
  146. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  147. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -53
  148. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  149. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -92
  150. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -48
  152. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -131
  154. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -33
  156. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -235
  158. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -29
  160. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -29
  162. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -84
  164. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -139
  166. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -252
  168. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -37
  170. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -47
  172. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -56
  174. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  176. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  178. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -581
  180. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-layout-empty.mjs +0 -49
  182. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs +0 -119
  184. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  186. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -114
  188. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  190. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -27
  192. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  194. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-layout-vertical.mjs +0 -113
  196. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-layout.mjs +0 -461
  198. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  200. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -59
  202. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -548
  204. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -204
  206. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -373
  208. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -433
  210. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  212. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  214. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -286
  216. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  218. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  219. package/generator/api/README.md +0 -252
  220. package/generator/api/bin/package.json +0 -3
  221. package/generator/api/bin/schematics/init/index.js +0 -90
  222. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  223. package/generator/api/bin/schematics/sdk/index.js +0 -76
  224. package/generator/api/bin/src/config/loader.js +0 -41
  225. package/generator/api/bin/src/config/schema.js +0 -57
  226. package/generator/api/bin/src/emit/client.js +0 -246
  227. package/generator/api/bin/src/emit/metadata.js +0 -295
  228. package/generator/api/bin/src/emit/models.js +0 -106
  229. package/generator/api/bin/src/emit/navigation.js +0 -56
  230. package/generator/api/bin/src/emit/operations.js +0 -122
  231. package/generator/api/bin/src/emit/public-api.js +0 -54
  232. package/generator/api/bin/src/emit/services.js +0 -87
  233. package/generator/api/bin/src/engine.js +0 -65
  234. package/generator/api/bin/src/layout/per-domain.js +0 -359
  235. package/generator/api/bin/src/parser/bundle.js +0 -25
  236. package/generator/api/bin/src/parser/ir.js +0 -320
  237. package/generator/api/bin/src/parser/types.js +0 -7
  238. package/generator/api/bin/src/render/template.js +0 -58
  239. package/generator/api/bin/src/writer/index.js +0 -278
  240. package/generator/api/package.json +0 -4
  241. package/generator/api/schematics/init/schema.json +0 -19
  242. package/generator/api/schematics/ng-add/schema.json +0 -14
  243. package/generator/api/schematics/sdk/schema.json +0 -19
  244. package/generator/api/sdk.config.example.json +0 -24
  245. package/generator/guide/README.md +0 -84
  246. package/generator/guide/bin/package.json +0 -3
  247. package/generator/guide/bin/schematics/build/index.js +0 -35
  248. package/generator/guide/bin/schematics/init/index.js +0 -70
  249. package/generator/guide/bin/src/config/loader.js +0 -50
  250. package/generator/guide/bin/src/config/schema.js +0 -12
  251. package/generator/guide/bin/src/engine/component.js +0 -74
  252. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  253. package/generator/guide/bin/src/engine/index.js +0 -42
  254. package/generator/guide/bin/src/engine/naming.js +0 -39
  255. package/generator/guide/bin/src/engine/render.js +0 -31
  256. package/generator/guide/bin/src/engine/routes.js +0 -106
  257. package/generator/guide/bin/src/engine/walk.js +0 -35
  258. package/generator/guide/guide.config.example.json +0 -9
  259. package/generator/guide/schematics/build/schema.json +0 -14
  260. package/generator/guide/schematics/init/schema.json +0 -19
  261. package/layout/component/package.json +0 -4
  262. package/layout/empty/package.json +0 -4
  263. package/layout/horizontal/package.json +0 -4
  264. package/layout/package.json +0 -4
  265. package/layout/provider/package.json +0 -4
  266. package/layout/services/package.json +0 -4
  267. package/layout/shell/package.json +0 -4
  268. package/layout/token/directive/package.json +0 -4
  269. package/layout/token/package.json +0 -4
  270. package/layout/vertical/package.json +0 -4
  271. package/navigation/demo-data/package.json +0 -4
  272. package/navigation/icon/package.json +0 -4
  273. package/navigation/item/package.json +0 -4
  274. package/navigation/service/package.json +0 -4
  275. package/navigation/sidebar/package.json +0 -4
  276. package/navigation/topbar/package.json +0 -4
  277. package/navigation/types/package.json +0 -4
  278. package/theme/README.md +0 -67
  279. package/theme/package.json +0 -4
  280. package/theme/provider/package.json +0 -4
  281. package/theme/services/package.json +0 -4
  282. package/theme/styles/foundation/components.css +0 -81
  283. package/theme/styles/foundation/layers.css +0 -15
  284. package/theme/styles/foundation/tokens.css +0 -55
  285. package/theme/styles/index.css +0 -37
  286. package/theme/styles/integrations/material.css +0 -254
  287. package/theme/styles/integrations/tailwind.css +0 -114
  288. package/theme/styles/variants/color/amber.css +0 -31
  289. package/theme/styles/variants/color/base.css +0 -36
  290. package/theme/styles/variants/color/blue.css +0 -31
  291. package/theme/styles/variants/color/cyan.css +0 -31
  292. package/theme/styles/variants/color/emerald.css +0 -31
  293. package/theme/styles/variants/color/fuchsia.css +0 -31
  294. package/theme/styles/variants/color/green.css +0 -31
  295. package/theme/styles/variants/color/index.css +0 -22
  296. package/theme/styles/variants/color/indigo.css +0 -31
  297. package/theme/styles/variants/color/lime.css +0 -31
  298. package/theme/styles/variants/color/orange.css +0 -31
  299. package/theme/styles/variants/color/pink.css +0 -31
  300. package/theme/styles/variants/color/purple.css +0 -31
  301. package/theme/styles/variants/color/red.css +0 -31
  302. package/theme/styles/variants/color/rose.css +0 -31
  303. package/theme/styles/variants/color/sky.css +0 -31
  304. package/theme/styles/variants/color/teal.css +0 -31
  305. package/theme/styles/variants/color/violet.css +0 -31
  306. package/theme/styles/variants/color/yellow.css +0 -31
  307. package/theme/styles/variants/mode/dark.css +0 -20
  308. package/theme/styles/variants/mode/index.css +0 -6
  309. package/theme/styles/variants/mode/light.css +0 -24
  310. package/theme/styles/variants/style/brutal.css +0 -50
  311. package/theme/styles/variants/style/default.css +0 -54
  312. package/theme/styles/variants/style/index.css +0 -8
  313. package/theme/styles/variants/style/sharp.css +0 -50
  314. package/theme/styles/variants/style/soft.css +0 -50
  315. package/theme/token/package.json +0 -4
  316. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  317. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  318. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  319. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  320. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  321. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  322. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  323. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  324. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  325. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  326. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  327. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  328. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  329. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  330. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  331. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  332. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  333. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  334. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  335. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  336. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  337. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  338. package/types/ojiepermana-angular-component-combobox.d.ts +0 -51
  339. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  340. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  341. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  342. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  343. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  344. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -135
  345. package/types/ojiepermana-angular-component-form.d.ts +0 -92
  346. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  347. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  348. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  349. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  350. package/types/ojiepermana-angular-component-pagination.d.ts +0 -27
  351. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  352. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  353. package/types/ojiepermana-angular-component-radio.d.ts +0 -34
  354. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  355. package/types/ojiepermana-angular-component-select.d.ts +0 -45
  356. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  357. package/types/ojiepermana-angular-component-sheet.d.ts +0 -74
  358. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  359. package/types/ojiepermana-angular-component-slider.d.ts +0 -16
  360. package/types/ojiepermana-angular-component-switch.d.ts +0 -30
  361. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  362. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  363. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  364. package/types/ojiepermana-angular-component-toast.d.ts +0 -29
  365. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -22
  366. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  367. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  368. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  369. package/types/ojiepermana-angular-layout-empty.d.ts +0 -22
  370. package/types/ojiepermana-angular-layout-horizontal.d.ts +0 -36
  371. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  372. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  373. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  374. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  375. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  376. package/types/ojiepermana-angular-layout-vertical.d.ts +0 -38
  377. package/types/ojiepermana-angular-layout.d.ts +0 -164
  378. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  379. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  380. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  381. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  382. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  383. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -54
  384. package/types/ojiepermana-angular-navigation-types.d.ts +0 -129
  385. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  386. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  387. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,581 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, input, output, signal, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import { ButtonComponent } from '@ojiepermana/angular/component/button';
5
- import { cn } from '@ojiepermana/angular/component/utils';
6
-
7
- const THEME_PANEL_THEME_PORT = new InjectionToken('THEME_PANEL_THEME_PORT');
8
- const THEME_PANEL_LAYOUT_PORT = new InjectionToken('THEME_PANEL_LAYOUT_PORT');
9
- const THEME_COLOR_OPTIONS = [
10
- { value: 'base', label: 'Base', swatchClass: 'bg-zinc-800' },
11
- { value: 'red', label: 'Red', swatchClass: 'bg-red-500' },
12
- { value: 'orange', label: 'Orange', swatchClass: 'bg-orange-500' },
13
- { value: 'amber', label: 'Amber', swatchClass: 'bg-amber-400' },
14
- { value: 'yellow', label: 'Yellow', swatchClass: 'bg-yellow-400' },
15
- { value: 'lime', label: 'Lime', swatchClass: 'bg-lime-400' },
16
- { value: 'green', label: 'Green', swatchClass: 'bg-green-600' },
17
- { value: 'emerald', label: 'Emerald', swatchClass: 'bg-emerald-600' },
18
- { value: 'teal', label: 'Teal', swatchClass: 'bg-teal-600' },
19
- { value: 'cyan', label: 'Cyan', swatchClass: 'bg-cyan-600' },
20
- { value: 'sky', label: 'Sky', swatchClass: 'bg-sky-600' },
21
- { value: 'blue', label: 'Blue', swatchClass: 'bg-blue-500' },
22
- { value: 'indigo', label: 'Indigo', swatchClass: 'bg-indigo-500' },
23
- { value: 'violet', label: 'Violet', swatchClass: 'bg-violet-500' },
24
- { value: 'purple', label: 'Purple', swatchClass: 'bg-purple-500' },
25
- { value: 'fuchsia', label: 'Fuchsia', swatchClass: 'bg-fuchsia-600' },
26
- { value: 'pink', label: 'Pink', swatchClass: 'bg-pink-600' },
27
- { value: 'rose', label: 'Rose', swatchClass: 'bg-rose-500' },
28
- ];
29
- const THEME_MODE_OPTIONS = [
30
- { value: 'light', label: 'Light', icon: 'sun' },
31
- { value: 'dark', label: 'Dark', icon: 'moon' },
32
- { value: 'system', label: 'System', icon: 'system' },
33
- ];
34
- const THEME_STYLE_OPTIONS = [
35
- { value: 'default', label: 'Default', icon: 'default-style' },
36
- { value: 'sharp', label: 'Sharp', icon: 'sharp-style' },
37
- { value: 'brutal', label: 'Brutal', icon: 'brutal-style' },
38
- { value: 'soft', label: 'Soft', icon: 'soft-style' },
39
- ];
40
- const LAYOUT_MODE_OPTIONS = [
41
- { value: 'vertical', label: 'Vertical', icon: 'vertical-layout' },
42
- { value: 'horizontal', label: 'Horizontal', icon: 'horizontal-layout' },
43
- { value: 'empty', label: 'Empty', icon: 'empty-layout' },
44
- ];
45
- const LAYOUT_WIDTH_OPTIONS = [
46
- { value: 'full', label: 'Full', icon: 'full-width' },
47
- { value: 'container', label: 'Container', icon: 'container-width' },
48
- { value: 'wide', label: 'Wide', icon: 'wide-width' },
49
- ];
50
- class ThemePanelComponent {
51
- sanitizer = inject(DomSanitizer);
52
- themePort = inject(THEME_PANEL_THEME_PORT, { optional: true });
53
- layoutPort = inject(THEME_PANEL_LAYOUT_PORT, { optional: true });
54
- connected = input(true, ...(ngDevMode ? [{ debugName: "connected" }] : /* istanbul ignore next */ []));
55
- class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
56
- title = input('Theme panel', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
57
- description = input('', ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
58
- userName = input('', ...(ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []));
59
- userSubtitle = input('', ...(ngDevMode ? [{ debugName: "userSubtitle" }] : /* istanbul ignore next */ []));
60
- userInitials = input('', ...(ngDevMode ? [{ debugName: "userInitials" }] : /* istanbul ignore next */ []));
61
- themeColor = input('base', ...(ngDevMode ? [{ debugName: "themeColor" }] : /* istanbul ignore next */ []));
62
- themeMode = input('light', ...(ngDevMode ? [{ debugName: "themeMode" }] : /* istanbul ignore next */ []));
63
- themeStyle = input('default', ...(ngDevMode ? [{ debugName: "themeStyle" }] : /* istanbul ignore next */ []));
64
- layoutMode = input('vertical', ...(ngDevMode ? [{ debugName: "layoutMode" }] : /* istanbul ignore next */ []));
65
- layoutWidth = input('container', ...(ngDevMode ? [{ debugName: "layoutWidth" }] : /* istanbul ignore next */ []));
66
- themeColorChange = output();
67
- themeModeChange = output();
68
- themeStyleChange = output();
69
- layoutModeChange = output();
70
- layoutWidthChange = output();
71
- currentThemeColor = signal(this.themeColor(), ...(ngDevMode ? [{ debugName: "currentThemeColor" }] : /* istanbul ignore next */ []));
72
- currentThemeMode = signal(this.themeMode(), ...(ngDevMode ? [{ debugName: "currentThemeMode" }] : /* istanbul ignore next */ []));
73
- currentThemeStyle = signal(this.themeStyle(), ...(ngDevMode ? [{ debugName: "currentThemeStyle" }] : /* istanbul ignore next */ []));
74
- currentLayoutMode = signal(this.layoutMode(), ...(ngDevMode ? [{ debugName: "currentLayoutMode" }] : /* istanbul ignore next */ []));
75
- currentLayoutWidth = signal(this.layoutWidth(), ...(ngDevMode ? [{ debugName: "currentLayoutWidth" }] : /* istanbul ignore next */ []));
76
- themeColorOptions = THEME_COLOR_OPTIONS;
77
- themeModeOptions = THEME_MODE_OPTIONS;
78
- themeStyleOptions = THEME_STYLE_OPTIONS;
79
- layoutModeOptions = LAYOUT_MODE_OPTIONS;
80
- layoutWidthOptions = LAYOUT_WIDTH_OPTIONS;
81
- hostClasses = computed(() => cn('block overflow-hidden rounded-lg border border-border/70 bg-card text-card-foreground shadow-sm', this.class()), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
82
- hasUserHeader = computed(() => !!this.userName().trim() || !!this.userSubtitle().trim(), ...(ngDevMode ? [{ debugName: "hasUserHeader" }] : /* istanbul ignore next */ []));
83
- resolvedUserInitials = computed(() => this.userInitials().trim() || this.toInitials(this.userName() || this.title()), ...(ngDevMode ? [{ debugName: "resolvedUserInitials" }] : /* istanbul ignore next */ []));
84
- currentThemeColorLabel = computed(() => this.themeColorOptions.find((option) => option.value === this.currentThemeColor())?.label ?? '', ...(ngDevMode ? [{ debugName: "currentThemeColorLabel" }] : /* istanbul ignore next */ []));
85
- constructor() {
86
- effect(() => {
87
- this.currentThemeColor.set(this.connected() && this.themePort ? this.themePort.color() : this.themeColor());
88
- });
89
- effect(() => {
90
- this.currentThemeMode.set(this.connected() && this.themePort ? this.themePort.scheme() : this.themeMode());
91
- });
92
- effect(() => {
93
- this.currentThemeStyle.set(this.connected() && this.themePort ? this.themePort.style() : this.themeStyle());
94
- });
95
- effect(() => {
96
- this.currentLayoutMode.set(this.connected() && this.layoutPort ? this.layoutPort.mode() : this.layoutMode());
97
- });
98
- effect(() => {
99
- this.currentLayoutWidth.set(this.connected() && this.layoutPort ? this.layoutPort.width() : this.layoutWidth());
100
- });
101
- }
102
- setThemeColor(color) {
103
- this.currentThemeColor.set(color);
104
- this.themePort?.setColor(color);
105
- this.themeColorChange.emit(color);
106
- }
107
- setThemeMode(mode) {
108
- this.currentThemeMode.set(mode);
109
- this.themePort?.setScheme(mode);
110
- this.themeModeChange.emit(mode);
111
- }
112
- setThemeStyle(style) {
113
- this.currentThemeStyle.set(style);
114
- this.themePort?.setStyle(style);
115
- this.themeStyleChange.emit(style);
116
- }
117
- setLayoutMode(mode) {
118
- this.currentLayoutMode.set(mode);
119
- this.layoutPort?.setMode(mode);
120
- this.layoutModeChange.emit(mode);
121
- }
122
- setLayoutWidth(width) {
123
- this.currentLayoutWidth.set(width);
124
- this.layoutPort?.setWidth(width);
125
- this.layoutWidthChange.emit(width);
126
- }
127
- sectionEyebrowClasses() {
128
- return 'text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-muted-foreground';
129
- }
130
- segmentedOptionClasses(active) {
131
- return cn('rounded-[calc(var(--layout-frame-radius)-2px)] px-3', active
132
- ? 'border border-border/70 bg-background shadow-sm hover:bg-background'
133
- : 'text-muted-foreground hover:bg-background/70 hover:text-foreground');
134
- }
135
- swatchButtonClasses(active) {
136
- return cn('size-9 rounded-full p-0', active
137
- ? 'border border-border/70 bg-background shadow-sm hover:bg-background'
138
- : 'border border-transparent hover:bg-background/70');
139
- }
140
- optionIconClasses(active) {
141
- return cn('inline-flex size-4 shrink-0 items-center justify-center [&_svg]:size-4', active ? 'text-foreground' : 'text-muted-foreground');
142
- }
143
- colorSwatchClasses(swatchClass, isActive) {
144
- return cn('size-4 rounded-full border border-black/10 shadow-sm', swatchClass, isActive ? 'ring-2 ring-ring ring-offset-2 ring-offset-background' : '');
145
- }
146
- iconSvg(name) {
147
- return this.sanitizer.bypassSecurityTrustHtml(this.rawIconSvg(name));
148
- }
149
- rawIconSvg(name) {
150
- switch (name) {
151
- case 'sun':
152
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2.5v2.2"></path><path d="M12 19.3v2.2"></path><path d="M4.93 4.93 6.5 6.5"></path><path d="M17.5 17.5 19.07 19.07"></path><path d="M2.5 12h2.2"></path><path d="M19.3 12h2.2"></path><path d="M4.93 19.07 6.5 17.5"></path><path d="M17.5 6.5 19.07 4.93"></path></svg>';
153
- case 'moon':
154
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M20.4 14.8A8.8 8.8 0 1 1 9.2 3.6a7.2 7.2 0 0 0 11.2 11.2Z"></path></svg>';
155
- case 'system':
156
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="4.5" width="17" height="11.5" rx="1.8"></rect><path d="M9 19.5h6"></path><path d="M12 16v3.5"></path></svg>';
157
- case 'default-style':
158
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="14" rx="4"></rect></svg>';
159
- case 'sharp-style':
160
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="14" rx="1"></rect></svg>';
161
- case 'brutal-style':
162
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5h14"></path><path d="M5 12h14"></path><path d="M5 16.5h14"></path></svg>';
163
- case 'soft-style':
164
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7.5 9A4.5 4.5 0 0 1 12 4.5h1A4.5 4.5 0 0 1 17.5 9v1A4.5 4.5 0 0 1 13 14.5h-1A4.5 4.5 0 0 1 7.5 10Z"></path><path d="M6.5 15.5c1.3 2 3.2 3 5.5 3s4.2-1 5.5-3"></path></svg>';
165
- case 'vertical-layout':
166
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="5" width="16" height="14" rx="2"></rect><path d="M9 5v14"></path></svg>';
167
- case 'horizontal-layout':
168
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="5" width="16" height="14" rx="2"></rect><path d="M4 10h16"></path></svg>';
169
- case 'empty-layout':
170
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4.5" y="5.5" width="15" height="13" rx="2"></rect></svg>';
171
- case 'full-width':
172
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V5h3"></path><path d="M20 8V5h-3"></path><path d="M4 16v3h3"></path><path d="M20 16v3h-3"></path><path d="M8 5H4"></path><path d="M20 5h-4"></path><path d="M8 19H4"></path><path d="M20 19h-4"></path></svg>';
173
- case 'container-width':
174
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="6" width="16" height="12" rx="2"></rect><path d="M9 9.5h6"></path><path d="M9 14.5h6"></path></svg>';
175
- case 'wide-width':
176
- return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="6" width="18" height="12" rx="2"></rect><path d="M7 9.5h10"></path><path d="M7 14.5h10"></path></svg>';
177
- }
178
- }
179
- toInitials(value) {
180
- const words = value
181
- .split(/\s+/)
182
- .map((item) => item.trim())
183
- .filter(Boolean)
184
- .slice(0, 2);
185
- if (!words.length) {
186
- return 'UI';
187
- }
188
- return words.map((word) => word[0]?.toUpperCase() ?? '').join('');
189
- }
190
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThemePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ThemePanelComponent, isStandalone: true, selector: "ui-theme-panel", inputs: { connected: { classPropertyName: "connected", publicName: "connected", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, userName: { classPropertyName: "userName", publicName: "userName", isSignal: true, isRequired: false, transformFunction: null }, userSubtitle: { classPropertyName: "userSubtitle", publicName: "userSubtitle", isSignal: true, isRequired: false, transformFunction: null }, userInitials: { classPropertyName: "userInitials", publicName: "userInitials", isSignal: true, isRequired: false, transformFunction: null }, themeColor: { classPropertyName: "themeColor", publicName: "themeColor", isSignal: true, isRequired: false, transformFunction: null }, themeMode: { classPropertyName: "themeMode", publicName: "themeMode", isSignal: true, isRequired: false, transformFunction: null }, themeStyle: { classPropertyName: "themeStyle", publicName: "themeStyle", isSignal: true, isRequired: false, transformFunction: null }, layoutMode: { classPropertyName: "layoutMode", publicName: "layoutMode", isSignal: true, isRequired: false, transformFunction: null }, layoutWidth: { classPropertyName: "layoutWidth", publicName: "layoutWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { themeColorChange: "themeColorChange", themeModeChange: "themeModeChange", themeStyleChange: "themeStyleChange", layoutModeChange: "layoutModeChange", layoutWidthChange: "layoutWidthChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
192
- <div class="flex flex-col gap-4 p-4">
193
- @if (hasUserHeader()) {
194
- <header class="flex items-center gap-3 px-1 pt-1">
195
- <span class="flex size-14 items-center justify-center rounded-full bg-primary/10 text-primary">
196
- <span
197
- class="flex size-11 items-center justify-center rounded-full bg-primary text-xs font-semibold tracking-[0.22em] text-primary-foreground">
198
- {{ resolvedUserInitials() }}
199
- </span>
200
- </span>
201
-
202
- <div class="min-w-0 flex-1">
203
- <h2 class="truncate text-[1.05rem] font-semibold leading-none tracking-tight text-foreground">
204
- {{ userName() }}
205
- </h2>
206
- @if (userSubtitle(); as subtitle) {
207
- <p class="mt-1 text-sm leading-none text-muted-foreground">{{ subtitle }}</p>
208
- }
209
- </div>
210
- </header>
211
- } @else {
212
- <header class="space-y-1 px-1 pt-1">
213
- <h2 class="text-base font-semibold tracking-tight text-foreground">{{ title() }}</h2>
214
- @if (description(); as text) {
215
- <p class="text-sm leading-6 text-muted-foreground">{{ text }}</p>
216
- }
217
- </header>
218
- }
219
-
220
- <div class="grid gap-4">
221
- <section data-setting="theme-mode" [attr.data-current]="currentThemeMode()" class="space-y-2">
222
- <div class="px-1">
223
- <p [class]="sectionEyebrowClasses()">Mode</p>
224
- </div>
225
-
226
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
227
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Theme mode">
228
- @for (option of themeModeOptions; track option.value) {
229
- <button
230
- type="button"
231
- ui-button
232
- size="sm"
233
- variant="ghost"
234
- data-setting-option="theme-mode"
235
- [attr.data-value]="option.value"
236
- [attr.aria-pressed]="currentThemeMode() === option.value"
237
- [class]="segmentedOptionClasses(currentThemeMode() === option.value)"
238
- (click)="setThemeMode(option.value)">
239
- <span class="inline-flex items-center gap-2.5">
240
- <span
241
- aria-hidden="true"
242
- [class]="optionIconClasses(currentThemeMode() === option.value)"
243
- [innerHTML]="iconSvg(option.icon!)"></span>
244
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
245
- </span>
246
- </button>
247
- }
248
- </div>
249
- </div>
250
- </section>
251
-
252
- <section data-setting="theme-color" [attr.data-current]="currentThemeColor()" class="space-y-2">
253
- <div class="flex items-center justify-between gap-3 px-1">
254
- <p [class]="sectionEyebrowClasses()">Color</p>
255
- <p class="text-xs font-semibold text-muted-foreground">{{ currentThemeColorLabel() }}</p>
256
- </div>
257
-
258
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-1">
259
- <div class="grid grid-cols-6 justify-items-center gap-1" role="group" aria-label="Theme color">
260
- @for (option of themeColorOptions; track option.value) {
261
- <button
262
- type="button"
263
- ui-button
264
- size="icon"
265
- variant="ghost"
266
- data-setting-option="theme-color"
267
- [attr.data-value]="option.value"
268
- [attr.aria-label]="'Theme color ' + option.label"
269
- [attr.aria-pressed]="currentThemeColor() === option.value"
270
- [class]="swatchButtonClasses(currentThemeColor() === option.value)"
271
- (click)="setThemeColor(option.value)">
272
- <span
273
- aria-hidden="true"
274
- [class]="colorSwatchClasses(option.swatchClass, currentThemeColor() === option.value)"></span>
275
- <span class="sr-only">{{ option.label }}</span>
276
- </button>
277
- }
278
- </div>
279
- </div>
280
- </section>
281
-
282
- <section data-setting="theme-style" [attr.data-current]="currentThemeStyle()" class="space-y-2">
283
- <div class="px-1">
284
- <p [class]="sectionEyebrowClasses()">Style</p>
285
- </div>
286
-
287
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
288
- <div class="grid grid-cols-2 gap-1 sm:grid-cols-4" role="group" aria-label="Theme style">
289
- @for (option of themeStyleOptions; track option.value) {
290
- <button
291
- type="button"
292
- ui-button
293
- size="sm"
294
- variant="ghost"
295
- data-setting-option="theme-style"
296
- [attr.data-value]="option.value"
297
- [attr.aria-pressed]="currentThemeStyle() === option.value"
298
- [class]="segmentedOptionClasses(currentThemeStyle() === option.value)"
299
- (click)="setThemeStyle(option.value)">
300
- <span class="inline-flex items-center gap-2.5">
301
- <span
302
- aria-hidden="true"
303
- [class]="optionIconClasses(currentThemeStyle() === option.value)"
304
- [innerHTML]="iconSvg(option.icon!)"></span>
305
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
306
- </span>
307
- </button>
308
- }
309
- </div>
310
- </div>
311
- </section>
312
-
313
- <section data-setting="layout-mode" [attr.data-current]="currentLayoutMode()" class="space-y-2">
314
- <div class="px-1">
315
- <p [class]="sectionEyebrowClasses()">Layout</p>
316
- </div>
317
-
318
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
319
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Layout mode">
320
- @for (option of layoutModeOptions; track option.value) {
321
- <button
322
- type="button"
323
- ui-button
324
- size="sm"
325
- variant="ghost"
326
- data-setting-option="layout-mode"
327
- [attr.data-value]="option.value"
328
- [attr.aria-pressed]="currentLayoutMode() === option.value"
329
- [class]="segmentedOptionClasses(currentLayoutMode() === option.value)"
330
- (click)="setLayoutMode(option.value)">
331
- <span class="inline-flex items-center gap-2.5">
332
- <span
333
- aria-hidden="true"
334
- [class]="optionIconClasses(currentLayoutMode() === option.value)"
335
- [innerHTML]="iconSvg(option.icon!)"></span>
336
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
337
- </span>
338
- </button>
339
- }
340
- </div>
341
- </div>
342
- </section>
343
-
344
- <section data-setting="layout-width" [attr.data-current]="currentLayoutWidth()" class="space-y-2">
345
- <div class="px-1">
346
- <p [class]="sectionEyebrowClasses()">Width</p>
347
- </div>
348
-
349
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
350
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Layout width">
351
- @for (option of layoutWidthOptions; track option.value) {
352
- <button
353
- type="button"
354
- ui-button
355
- size="sm"
356
- variant="ghost"
357
- data-setting-option="layout-width"
358
- [attr.data-value]="option.value"
359
- [attr.aria-pressed]="currentLayoutWidth() === option.value"
360
- [class]="segmentedOptionClasses(currentLayoutWidth() === option.value)"
361
- (click)="setLayoutWidth(option.value)">
362
- <span class="inline-flex items-center gap-2.5">
363
- <span
364
- aria-hidden="true"
365
- [class]="optionIconClasses(currentLayoutWidth() === option.value)"
366
- [innerHTML]="iconSvg(option.icon!)"></span>
367
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
368
- </span>
369
- </button>
370
- }
371
- </div>
372
- </div>
373
- </section>
374
- </div>
375
- </div>
376
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[ui-button], a[ui-button]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
377
- }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThemePanelComponent, decorators: [{
379
- type: Component,
380
- args: [{
381
- selector: 'ui-theme-panel',
382
- imports: [ButtonComponent],
383
- changeDetection: ChangeDetectionStrategy.OnPush,
384
- host: {
385
- '[class]': 'hostClasses()',
386
- },
387
- template: `
388
- <div class="flex flex-col gap-4 p-4">
389
- @if (hasUserHeader()) {
390
- <header class="flex items-center gap-3 px-1 pt-1">
391
- <span class="flex size-14 items-center justify-center rounded-full bg-primary/10 text-primary">
392
- <span
393
- class="flex size-11 items-center justify-center rounded-full bg-primary text-xs font-semibold tracking-[0.22em] text-primary-foreground">
394
- {{ resolvedUserInitials() }}
395
- </span>
396
- </span>
397
-
398
- <div class="min-w-0 flex-1">
399
- <h2 class="truncate text-[1.05rem] font-semibold leading-none tracking-tight text-foreground">
400
- {{ userName() }}
401
- </h2>
402
- @if (userSubtitle(); as subtitle) {
403
- <p class="mt-1 text-sm leading-none text-muted-foreground">{{ subtitle }}</p>
404
- }
405
- </div>
406
- </header>
407
- } @else {
408
- <header class="space-y-1 px-1 pt-1">
409
- <h2 class="text-base font-semibold tracking-tight text-foreground">{{ title() }}</h2>
410
- @if (description(); as text) {
411
- <p class="text-sm leading-6 text-muted-foreground">{{ text }}</p>
412
- }
413
- </header>
414
- }
415
-
416
- <div class="grid gap-4">
417
- <section data-setting="theme-mode" [attr.data-current]="currentThemeMode()" class="space-y-2">
418
- <div class="px-1">
419
- <p [class]="sectionEyebrowClasses()">Mode</p>
420
- </div>
421
-
422
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
423
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Theme mode">
424
- @for (option of themeModeOptions; track option.value) {
425
- <button
426
- type="button"
427
- ui-button
428
- size="sm"
429
- variant="ghost"
430
- data-setting-option="theme-mode"
431
- [attr.data-value]="option.value"
432
- [attr.aria-pressed]="currentThemeMode() === option.value"
433
- [class]="segmentedOptionClasses(currentThemeMode() === option.value)"
434
- (click)="setThemeMode(option.value)">
435
- <span class="inline-flex items-center gap-2.5">
436
- <span
437
- aria-hidden="true"
438
- [class]="optionIconClasses(currentThemeMode() === option.value)"
439
- [innerHTML]="iconSvg(option.icon!)"></span>
440
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
441
- </span>
442
- </button>
443
- }
444
- </div>
445
- </div>
446
- </section>
447
-
448
- <section data-setting="theme-color" [attr.data-current]="currentThemeColor()" class="space-y-2">
449
- <div class="flex items-center justify-between gap-3 px-1">
450
- <p [class]="sectionEyebrowClasses()">Color</p>
451
- <p class="text-xs font-semibold text-muted-foreground">{{ currentThemeColorLabel() }}</p>
452
- </div>
453
-
454
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-1">
455
- <div class="grid grid-cols-6 justify-items-center gap-1" role="group" aria-label="Theme color">
456
- @for (option of themeColorOptions; track option.value) {
457
- <button
458
- type="button"
459
- ui-button
460
- size="icon"
461
- variant="ghost"
462
- data-setting-option="theme-color"
463
- [attr.data-value]="option.value"
464
- [attr.aria-label]="'Theme color ' + option.label"
465
- [attr.aria-pressed]="currentThemeColor() === option.value"
466
- [class]="swatchButtonClasses(currentThemeColor() === option.value)"
467
- (click)="setThemeColor(option.value)">
468
- <span
469
- aria-hidden="true"
470
- [class]="colorSwatchClasses(option.swatchClass, currentThemeColor() === option.value)"></span>
471
- <span class="sr-only">{{ option.label }}</span>
472
- </button>
473
- }
474
- </div>
475
- </div>
476
- </section>
477
-
478
- <section data-setting="theme-style" [attr.data-current]="currentThemeStyle()" class="space-y-2">
479
- <div class="px-1">
480
- <p [class]="sectionEyebrowClasses()">Style</p>
481
- </div>
482
-
483
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
484
- <div class="grid grid-cols-2 gap-1 sm:grid-cols-4" role="group" aria-label="Theme style">
485
- @for (option of themeStyleOptions; track option.value) {
486
- <button
487
- type="button"
488
- ui-button
489
- size="sm"
490
- variant="ghost"
491
- data-setting-option="theme-style"
492
- [attr.data-value]="option.value"
493
- [attr.aria-pressed]="currentThemeStyle() === option.value"
494
- [class]="segmentedOptionClasses(currentThemeStyle() === option.value)"
495
- (click)="setThemeStyle(option.value)">
496
- <span class="inline-flex items-center gap-2.5">
497
- <span
498
- aria-hidden="true"
499
- [class]="optionIconClasses(currentThemeStyle() === option.value)"
500
- [innerHTML]="iconSvg(option.icon!)"></span>
501
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
502
- </span>
503
- </button>
504
- }
505
- </div>
506
- </div>
507
- </section>
508
-
509
- <section data-setting="layout-mode" [attr.data-current]="currentLayoutMode()" class="space-y-2">
510
- <div class="px-1">
511
- <p [class]="sectionEyebrowClasses()">Layout</p>
512
- </div>
513
-
514
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
515
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Layout mode">
516
- @for (option of layoutModeOptions; track option.value) {
517
- <button
518
- type="button"
519
- ui-button
520
- size="sm"
521
- variant="ghost"
522
- data-setting-option="layout-mode"
523
- [attr.data-value]="option.value"
524
- [attr.aria-pressed]="currentLayoutMode() === option.value"
525
- [class]="segmentedOptionClasses(currentLayoutMode() === option.value)"
526
- (click)="setLayoutMode(option.value)">
527
- <span class="inline-flex items-center gap-2.5">
528
- <span
529
- aria-hidden="true"
530
- [class]="optionIconClasses(currentLayoutMode() === option.value)"
531
- [innerHTML]="iconSvg(option.icon!)"></span>
532
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
533
- </span>
534
- </button>
535
- }
536
- </div>
537
- </div>
538
- </section>
539
-
540
- <section data-setting="layout-width" [attr.data-current]="currentLayoutWidth()" class="space-y-2">
541
- <div class="px-1">
542
- <p [class]="sectionEyebrowClasses()">Width</p>
543
- </div>
544
-
545
- <div class="rounded-(--layout-frame-radius) bg-muted/65 p-0.5">
546
- <div class="grid grid-cols-3 gap-1" role="group" aria-label="Layout width">
547
- @for (option of layoutWidthOptions; track option.value) {
548
- <button
549
- type="button"
550
- ui-button
551
- size="sm"
552
- variant="ghost"
553
- data-setting-option="layout-width"
554
- [attr.data-value]="option.value"
555
- [attr.aria-pressed]="currentLayoutWidth() === option.value"
556
- [class]="segmentedOptionClasses(currentLayoutWidth() === option.value)"
557
- (click)="setLayoutWidth(option.value)">
558
- <span class="inline-flex items-center gap-2.5">
559
- <span
560
- aria-hidden="true"
561
- [class]="optionIconClasses(currentLayoutWidth() === option.value)"
562
- [innerHTML]="iconSvg(option.icon!)"></span>
563
- <span class="text-sm font-semibold leading-none">{{ option.label }}</span>
564
- </span>
565
- </button>
566
- }
567
- </div>
568
- </div>
569
- </section>
570
- </div>
571
- </div>
572
- `,
573
- }]
574
- }], ctorParameters: () => [], propDecorators: { connected: [{ type: i0.Input, args: [{ isSignal: true, alias: "connected", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], userName: [{ type: i0.Input, args: [{ isSignal: true, alias: "userName", required: false }] }], userSubtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "userSubtitle", required: false }] }], userInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "userInitials", required: false }] }], themeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeColor", required: false }] }], themeMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeMode", required: false }] }], themeStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeStyle", required: false }] }], layoutMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutMode", required: false }] }], layoutWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutWidth", required: false }] }], themeColorChange: [{ type: i0.Output, args: ["themeColorChange"] }], themeModeChange: [{ type: i0.Output, args: ["themeModeChange"] }], themeStyleChange: [{ type: i0.Output, args: ["themeStyleChange"] }], layoutModeChange: [{ type: i0.Output, args: ["layoutModeChange"] }], layoutWidthChange: [{ type: i0.Output, args: ["layoutWidthChange"] }] } });
575
-
576
- /**
577
- * Generated bundle index. Do not edit.
578
- */
579
-
580
- export { THEME_PANEL_LAYOUT_PORT, THEME_PANEL_THEME_PORT, ThemePanelComponent };
581
- //# sourceMappingURL=ojiepermana-angular-layout-component.mjs.map