@ojiepermana/angular 21.2.4 → 21.3.0

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 (232) hide show
  1. package/README.md +90 -11
  2. package/fesm2022/ojiepermana-angular-layout-theme.mjs +581 -0
  3. package/fesm2022/ojiepermana-angular-layout-theme.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-layout.mjs +2 -1
  5. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  6. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +59 -0
  7. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +1 -0
  8. package/fesm2022/ojiepermana-angular-navigation.mjs +6 -58
  9. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
  10. package/fesm2022/ojiepermana-angular-theme.mjs +1 -1
  11. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  12. package/fesm2022/ojiepermana-angular-ui-component-accordion.mjs +174 -0
  13. package/fesm2022/ojiepermana-angular-ui-component-accordion.mjs.map +1 -0
  14. package/fesm2022/ojiepermana-angular-ui-component-alert-dialog.mjs +242 -0
  15. package/fesm2022/ojiepermana-angular-ui-component-alert-dialog.mjs.map +1 -0
  16. package/fesm2022/ojiepermana-angular-ui-component-alert.mjs +90 -0
  17. package/fesm2022/ojiepermana-angular-ui-component-alert.mjs.map +1 -0
  18. package/fesm2022/ojiepermana-angular-ui-component-aspect-ratio.mjs +33 -0
  19. package/fesm2022/ojiepermana-angular-ui-component-aspect-ratio.mjs.map +1 -0
  20. package/fesm2022/ojiepermana-angular-ui-component-avatar.mjs +123 -0
  21. package/fesm2022/ojiepermana-angular-ui-component-avatar.mjs.map +1 -0
  22. package/fesm2022/ojiepermana-angular-ui-component-badge.mjs +47 -0
  23. package/fesm2022/ojiepermana-angular-ui-component-badge.mjs.map +1 -0
  24. package/fesm2022/ojiepermana-angular-ui-component-breadcrumb.mjs +186 -0
  25. package/fesm2022/ojiepermana-angular-ui-component-breadcrumb.mjs.map +1 -0
  26. package/fesm2022/ojiepermana-angular-ui-component-button-group.mjs +95 -0
  27. package/fesm2022/ojiepermana-angular-ui-component-button-group.mjs.map +1 -0
  28. package/fesm2022/ojiepermana-angular-ui-component-button.mjs +64 -0
  29. package/fesm2022/ojiepermana-angular-ui-component-button.mjs.map +1 -0
  30. package/fesm2022/ojiepermana-angular-ui-component-calendar.mjs +78 -0
  31. package/fesm2022/ojiepermana-angular-ui-component-calendar.mjs.map +1 -0
  32. package/fesm2022/ojiepermana-angular-ui-component-card.mjs +137 -0
  33. package/fesm2022/ojiepermana-angular-ui-component-card.mjs.map +1 -0
  34. package/fesm2022/ojiepermana-angular-ui-component-carousel.mjs +310 -0
  35. package/fesm2022/ojiepermana-angular-ui-component-carousel.mjs.map +1 -0
  36. package/fesm2022/ojiepermana-angular-ui-component-chart-area.mjs +6 -0
  37. package/fesm2022/ojiepermana-angular-ui-component-chart-area.mjs.map +1 -0
  38. package/fesm2022/ojiepermana-angular-ui-component-chart-bar.mjs +6 -0
  39. package/fesm2022/ojiepermana-angular-ui-component-chart-bar.mjs.map +1 -0
  40. package/fesm2022/ojiepermana-angular-ui-component-chart-line.mjs +6 -0
  41. package/fesm2022/ojiepermana-angular-ui-component-chart-line.mjs.map +1 -0
  42. package/fesm2022/ojiepermana-angular-ui-component-chart-pie.mjs +6 -0
  43. package/fesm2022/ojiepermana-angular-ui-component-chart-pie.mjs.map +1 -0
  44. package/fesm2022/ojiepermana-angular-ui-component-chart-radar.mjs +6 -0
  45. package/fesm2022/ojiepermana-angular-ui-component-chart-radar.mjs.map +1 -0
  46. package/fesm2022/ojiepermana-angular-ui-component-chart-radial.mjs +6 -0
  47. package/fesm2022/ojiepermana-angular-ui-component-chart-radial.mjs.map +1 -0
  48. package/fesm2022/ojiepermana-angular-ui-component-chart-scatter.mjs +6 -0
  49. package/fesm2022/ojiepermana-angular-ui-component-chart-scatter.mjs.map +1 -0
  50. package/fesm2022/{ojiepermana-angular-chart.mjs → ojiepermana-angular-ui-component-chart.mjs} +2 -2
  51. package/fesm2022/ojiepermana-angular-ui-component-chart.mjs.map +1 -0
  52. package/fesm2022/ojiepermana-angular-ui-component-checkbox.mjs +104 -0
  53. package/fesm2022/ojiepermana-angular-ui-component-checkbox.mjs.map +1 -0
  54. package/fesm2022/ojiepermana-angular-ui-component-collapsible.mjs +116 -0
  55. package/fesm2022/ojiepermana-angular-ui-component-collapsible.mjs.map +1 -0
  56. package/fesm2022/ojiepermana-angular-ui-component-combobox.mjs +263 -0
  57. package/fesm2022/ojiepermana-angular-ui-component-combobox.mjs.map +1 -0
  58. package/fesm2022/ojiepermana-angular-ui-component-command.mjs +268 -0
  59. package/fesm2022/ojiepermana-angular-ui-component-command.mjs.map +1 -0
  60. package/fesm2022/ojiepermana-angular-ui-component-context-menu.mjs +100 -0
  61. package/fesm2022/ojiepermana-angular-ui-component-context-menu.mjs.map +1 -0
  62. package/fesm2022/ojiepermana-angular-ui-component-date-picker.mjs +155 -0
  63. package/fesm2022/ojiepermana-angular-ui-component-date-picker.mjs.map +1 -0
  64. package/fesm2022/ojiepermana-angular-ui-component-dialog.mjs +262 -0
  65. package/fesm2022/ojiepermana-angular-ui-component-dialog.mjs.map +1 -0
  66. package/fesm2022/ojiepermana-angular-ui-component-drawer.mjs +6 -0
  67. package/fesm2022/ojiepermana-angular-ui-component-drawer.mjs.map +1 -0
  68. package/fesm2022/ojiepermana-angular-ui-component-dropdown-menu.mjs +458 -0
  69. package/fesm2022/ojiepermana-angular-ui-component-dropdown-menu.mjs.map +1 -0
  70. package/fesm2022/ojiepermana-angular-ui-component-form.mjs +208 -0
  71. package/fesm2022/ojiepermana-angular-ui-component-form.mjs.map +1 -0
  72. package/fesm2022/ojiepermana-angular-ui-component-input-group.mjs +164 -0
  73. package/fesm2022/ojiepermana-angular-ui-component-input-group.mjs.map +1 -0
  74. package/fesm2022/ojiepermana-angular-ui-component-input.mjs +43 -0
  75. package/fesm2022/ojiepermana-angular-ui-component-input.mjs.map +1 -0
  76. package/fesm2022/ojiepermana-angular-ui-component-item.mjs +241 -0
  77. package/fesm2022/ojiepermana-angular-ui-component-item.mjs.map +1 -0
  78. package/fesm2022/ojiepermana-angular-ui-component-label.mjs +30 -0
  79. package/fesm2022/ojiepermana-angular-ui-component-label.mjs.map +1 -0
  80. package/fesm2022/ojiepermana-angular-ui-component-pagination.mjs +192 -0
  81. package/fesm2022/ojiepermana-angular-ui-component-pagination.mjs.map +1 -0
  82. package/fesm2022/ojiepermana-angular-ui-component-popover.mjs +163 -0
  83. package/fesm2022/ojiepermana-angular-ui-component-popover.mjs.map +1 -0
  84. package/fesm2022/ojiepermana-angular-ui-component-progress.mjs +53 -0
  85. package/fesm2022/ojiepermana-angular-ui-component-progress.mjs.map +1 -0
  86. package/fesm2022/ojiepermana-angular-ui-component-radio.mjs +92 -0
  87. package/fesm2022/ojiepermana-angular-ui-component-radio.mjs.map +1 -0
  88. package/fesm2022/ojiepermana-angular-ui-component-scroll-area.mjs +48 -0
  89. package/fesm2022/ojiepermana-angular-ui-component-scroll-area.mjs.map +1 -0
  90. package/fesm2022/ojiepermana-angular-ui-component-select.mjs +131 -0
  91. package/fesm2022/ojiepermana-angular-ui-component-select.mjs.map +1 -0
  92. package/fesm2022/ojiepermana-angular-ui-component-separator.mjs +33 -0
  93. package/fesm2022/ojiepermana-angular-ui-component-separator.mjs.map +1 -0
  94. package/fesm2022/ojiepermana-angular-ui-component-sheet.mjs +235 -0
  95. package/fesm2022/ojiepermana-angular-ui-component-sheet.mjs.map +1 -0
  96. package/fesm2022/ojiepermana-angular-ui-component-skeleton.mjs +29 -0
  97. package/fesm2022/ojiepermana-angular-ui-component-skeleton.mjs.map +1 -0
  98. package/fesm2022/ojiepermana-angular-ui-component-slider.mjs +29 -0
  99. package/fesm2022/ojiepermana-angular-ui-component-slider.mjs.map +1 -0
  100. package/fesm2022/ojiepermana-angular-ui-component-switch.mjs +84 -0
  101. package/fesm2022/ojiepermana-angular-ui-component-switch.mjs.map +1 -0
  102. package/fesm2022/ojiepermana-angular-ui-component-table.mjs +139 -0
  103. package/fesm2022/ojiepermana-angular-ui-component-table.mjs.map +1 -0
  104. package/fesm2022/ojiepermana-angular-ui-component-tabs.mjs +252 -0
  105. package/fesm2022/ojiepermana-angular-ui-component-tabs.mjs.map +1 -0
  106. package/fesm2022/ojiepermana-angular-ui-component-textarea.mjs +37 -0
  107. package/fesm2022/ojiepermana-angular-ui-component-textarea.mjs.map +1 -0
  108. package/fesm2022/ojiepermana-angular-ui-component-toast.mjs +47 -0
  109. package/fesm2022/ojiepermana-angular-ui-component-toast.mjs.map +1 -0
  110. package/fesm2022/ojiepermana-angular-ui-component-tooltip.mjs +56 -0
  111. package/fesm2022/ojiepermana-angular-ui-component-tooltip.mjs.map +1 -0
  112. package/fesm2022/ojiepermana-angular-ui-component-utils.mjs +13 -0
  113. package/fesm2022/ojiepermana-angular-ui-component-utils.mjs.map +1 -0
  114. package/fesm2022/ojiepermana-angular.mjs +5 -3
  115. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  116. package/layout/theme/package.json +4 -0
  117. package/navigation-icon/package.json +4 -0
  118. package/package.json +212 -12
  119. package/types/ojiepermana-angular-layout-theme.d.ts +205 -0
  120. package/types/ojiepermana-angular-layout.d.ts +1 -1
  121. package/types/ojiepermana-angular-navigation-icon.d.ts +17 -0
  122. package/types/ojiepermana-angular-navigation.d.ts +2 -20
  123. package/types/ojiepermana-angular-ui-component-accordion.d.ts +51 -0
  124. package/types/ojiepermana-angular-ui-component-alert-dialog.d.ts +93 -0
  125. package/types/ojiepermana-angular-ui-component-alert.d.ts +37 -0
  126. package/types/ojiepermana-angular-ui-component-aspect-ratio.d.ts +12 -0
  127. package/types/ojiepermana-angular-ui-component-avatar.d.ts +51 -0
  128. package/types/ojiepermana-angular-ui-component-badge.d.ts +19 -0
  129. package/types/ojiepermana-angular-ui-component-breadcrumb.d.ts +46 -0
  130. package/types/ojiepermana-angular-ui-component-button-group.d.ts +26 -0
  131. package/types/ojiepermana-angular-ui-component-button.d.ts +22 -0
  132. package/types/ojiepermana-angular-ui-component-calendar.d.ts +33 -0
  133. package/types/ojiepermana-angular-ui-component-card.d.ts +60 -0
  134. package/types/ojiepermana-angular-ui-component-carousel.d.ts +86 -0
  135. package/types/ojiepermana-angular-ui-component-chart-area.d.ts +1 -0
  136. package/types/ojiepermana-angular-ui-component-chart-bar.d.ts +1 -0
  137. package/types/ojiepermana-angular-ui-component-chart-line.d.ts +1 -0
  138. package/types/ojiepermana-angular-ui-component-chart-pie.d.ts +1 -0
  139. package/types/ojiepermana-angular-ui-component-chart-radar.d.ts +1 -0
  140. package/types/ojiepermana-angular-ui-component-chart-radial.d.ts +1 -0
  141. package/types/ojiepermana-angular-ui-component-chart-scatter.d.ts +1 -0
  142. package/types/{ojiepermana-angular-chart.d.ts → ojiepermana-angular-ui-component-chart.d.ts} +15 -15
  143. package/types/ojiepermana-angular-ui-component-checkbox.d.ts +35 -0
  144. package/types/ojiepermana-angular-ui-component-collapsible.d.ts +42 -0
  145. package/types/ojiepermana-angular-ui-component-combobox.d.ts +51 -0
  146. package/types/ojiepermana-angular-ui-component-command.d.ts +99 -0
  147. package/types/ojiepermana-angular-ui-component-context-menu.d.ts +35 -0
  148. package/types/ojiepermana-angular-ui-component-date-picker.d.ts +41 -0
  149. package/types/ojiepermana-angular-ui-component-dialog.d.ts +87 -0
  150. package/types/ojiepermana-angular-ui-component-drawer.d.ts +1 -0
  151. package/types/ojiepermana-angular-ui-component-dropdown-menu.d.ts +135 -0
  152. package/types/ojiepermana-angular-ui-component-form.d.ts +92 -0
  153. package/types/ojiepermana-angular-ui-component-input-group.d.ts +51 -0
  154. package/types/ojiepermana-angular-ui-component-input.d.ts +16 -0
  155. package/types/ojiepermana-angular-ui-component-item.d.ts +88 -0
  156. package/types/ojiepermana-angular-ui-component-label.d.ts +11 -0
  157. package/types/ojiepermana-angular-ui-component-pagination.d.ts +27 -0
  158. package/types/ojiepermana-angular-ui-component-popover.d.ts +43 -0
  159. package/types/ojiepermana-angular-ui-component-progress.d.ts +17 -0
  160. package/types/ojiepermana-angular-ui-component-radio.d.ts +34 -0
  161. package/types/ojiepermana-angular-ui-component-scroll-area.d.ts +19 -0
  162. package/types/ojiepermana-angular-ui-component-select.d.ts +45 -0
  163. package/types/ojiepermana-angular-ui-component-separator.d.ts +14 -0
  164. package/types/ojiepermana-angular-ui-component-sheet.d.ts +74 -0
  165. package/types/ojiepermana-angular-ui-component-skeleton.d.ts +10 -0
  166. package/types/ojiepermana-angular-ui-component-slider.d.ts +16 -0
  167. package/types/ojiepermana-angular-ui-component-switch.d.ts +30 -0
  168. package/types/ojiepermana-angular-ui-component-table.d.ts +52 -0
  169. package/types/ojiepermana-angular-ui-component-tabs.d.ts +92 -0
  170. package/types/ojiepermana-angular-ui-component-textarea.d.ts +12 -0
  171. package/types/ojiepermana-angular-ui-component-toast.d.ts +29 -0
  172. package/types/ojiepermana-angular-ui-component-tooltip.d.ts +22 -0
  173. package/types/ojiepermana-angular-ui-component-utils.d.ts +5 -0
  174. package/ui/component/accordion/package.json +4 -0
  175. package/ui/component/alert/package.json +4 -0
  176. package/ui/component/alert-dialog/package.json +4 -0
  177. package/ui/component/aspect-ratio/package.json +4 -0
  178. package/ui/component/avatar/package.json +4 -0
  179. package/ui/component/badge/package.json +4 -0
  180. package/ui/component/breadcrumb/package.json +4 -0
  181. package/ui/component/button/package.json +4 -0
  182. package/ui/component/button-group/package.json +4 -0
  183. package/ui/component/calendar/package.json +4 -0
  184. package/ui/component/card/package.json +4 -0
  185. package/ui/component/carousel/package.json +4 -0
  186. package/ui/component/chart/README.md +249 -0
  187. package/ui/component/chart/area/package.json +4 -0
  188. package/ui/component/chart/bar/package.json +4 -0
  189. package/ui/component/chart/line/package.json +4 -0
  190. package/ui/component/chart/package.json +4 -0
  191. package/ui/component/chart/pie/package.json +4 -0
  192. package/ui/component/chart/radar/package.json +4 -0
  193. package/ui/component/chart/radial/package.json +4 -0
  194. package/ui/component/chart/scatter/package.json +4 -0
  195. package/ui/component/checkbox/package.json +4 -0
  196. package/ui/component/collapsible/package.json +4 -0
  197. package/ui/component/combobox/package.json +4 -0
  198. package/ui/component/command/package.json +4 -0
  199. package/ui/component/context-menu/package.json +4 -0
  200. package/ui/component/date-picker/package.json +4 -0
  201. package/ui/component/dialog/package.json +4 -0
  202. package/ui/component/drawer/package.json +4 -0
  203. package/ui/component/dropdown-menu/package.json +4 -0
  204. package/ui/component/form/package.json +4 -0
  205. package/ui/component/input/package.json +4 -0
  206. package/ui/component/input-group/package.json +4 -0
  207. package/ui/component/item/package.json +4 -0
  208. package/ui/component/label/package.json +4 -0
  209. package/ui/component/pagination/package.json +4 -0
  210. package/ui/component/popover/package.json +4 -0
  211. package/ui/component/progress/package.json +4 -0
  212. package/ui/component/radio/package.json +4 -0
  213. package/ui/component/scroll-area/package.json +4 -0
  214. package/ui/component/select/package.json +4 -0
  215. package/ui/component/separator/package.json +4 -0
  216. package/ui/component/sheet/package.json +4 -0
  217. package/ui/component/skeleton/package.json +4 -0
  218. package/ui/component/slider/package.json +4 -0
  219. package/ui/component/switch/package.json +4 -0
  220. package/ui/component/table/package.json +4 -0
  221. package/ui/component/tabs/package.json +4 -0
  222. package/ui/component/textarea/package.json +4 -0
  223. package/ui/component/toast/package.json +4 -0
  224. package/ui/component/tooltip/package.json +4 -0
  225. package/ui/component/utils/package.json +4 -0
  226. package/chart/README.md +0 -0
  227. package/chart/package.json +0 -4
  228. package/component/package.json +0 -4
  229. package/fesm2022/ojiepermana-angular-chart.mjs.map +0 -1
  230. package/fesm2022/ojiepermana-angular-component.mjs +0 -5774
  231. package/fesm2022/ojiepermana-angular-component.mjs.map +0 -1
  232. package/types/ojiepermana-angular-component.d.ts +0 -1927
@@ -0,0 +1,56 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, input, effect, Directive } from '@angular/core';
3
+ import * as i1 from '@angular/material/tooltip';
4
+ import { MatTooltip } from '@angular/material/tooltip';
5
+
6
+ /**
7
+ * Shadcn-styled tooltip directive. Thin wrapper around `matTooltip` that
8
+ * forces the shadcn panel class and sensible defaults.
9
+ *
10
+ * @example
11
+ * <button ui-button [uiTooltip]="'Save changes'" uiTooltipPosition="above">Save</button>
12
+ */
13
+ class TooltipDirective {
14
+ tooltip = inject(MatTooltip, { host: true });
15
+ uiTooltip = input('', ...(ngDevMode ? [{ debugName: "uiTooltip" }] : /* istanbul ignore next */ []));
16
+ constructor() {
17
+ this.tooltip.tooltipClass = 'ui-tooltip-panel';
18
+ effect(() => {
19
+ this.tooltip.message = this.uiTooltip();
20
+ });
21
+ }
22
+ show() {
23
+ this.tooltip.show();
24
+ }
25
+ hide() {
26
+ this.tooltip.hide();
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
29
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: TooltipDirective, isStandalone: true, selector: "[uiTooltip]", inputs: { uiTooltip: { classPropertyName: "uiTooltip", publicName: "uiTooltip", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["uiTooltip"], hostDirectives: [{ directive: i1.MatTooltip, inputs: ["matTooltipPosition", "uiTooltipPosition", "matTooltipDisabled", "uiTooltipDisabled", "matTooltipShowDelay", "uiTooltipShowDelay", "matTooltipHideDelay", "uiTooltipHideDelay", "matTooltipTouchGestures", "uiTooltipTouchGestures"] }], ngImport: i0 });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TooltipDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[uiTooltip]',
35
+ hostDirectives: [
36
+ {
37
+ directive: MatTooltip,
38
+ inputs: [
39
+ 'matTooltipPosition: uiTooltipPosition',
40
+ 'matTooltipDisabled: uiTooltipDisabled',
41
+ 'matTooltipShowDelay: uiTooltipShowDelay',
42
+ 'matTooltipHideDelay: uiTooltipHideDelay',
43
+ 'matTooltipTouchGestures: uiTooltipTouchGestures',
44
+ ],
45
+ },
46
+ ],
47
+ exportAs: 'uiTooltip',
48
+ }]
49
+ }], ctorParameters: () => [], propDecorators: { uiTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "uiTooltip", required: false }] }] } });
50
+
51
+ /**
52
+ * Generated bundle index. Do not edit.
53
+ */
54
+
55
+ export { TooltipDirective };
56
+ //# sourceMappingURL=ojiepermana-angular-ui-component-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-ui-component-tooltip.mjs","sources":["../../../projects/angular/ui/component/tooltip/src/lib/tooltip.directive.ts","../../../projects/angular/ui/component/tooltip/ojiepermana-angular-ui-component-tooltip.ts"],"sourcesContent":["import { Directive, effect, inject, input } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n/**\n * Shadcn-styled tooltip directive. Thin wrapper around `matTooltip` that\n * forces the shadcn panel class and sensible defaults.\n *\n * @example\n * <button ui-button [uiTooltip]=\"'Save changes'\" uiTooltipPosition=\"above\">Save</button>\n */\n@Directive({\n selector: '[uiTooltip]',\n hostDirectives: [\n {\n directive: MatTooltip,\n inputs: [\n 'matTooltipPosition: uiTooltipPosition',\n 'matTooltipDisabled: uiTooltipDisabled',\n 'matTooltipShowDelay: uiTooltipShowDelay',\n 'matTooltipHideDelay: uiTooltipHideDelay',\n 'matTooltipTouchGestures: uiTooltipTouchGestures',\n ],\n },\n ],\n exportAs: 'uiTooltip',\n})\nexport class TooltipDirective {\n private readonly tooltip = inject(MatTooltip, { host: true });\n\n readonly uiTooltip = input<string>('');\n\n constructor() {\n this.tooltip.tooltipClass = 'ui-tooltip-panel';\n effect(() => {\n this.tooltip.message = this.uiTooltip();\n });\n }\n\n show(): void {\n this.tooltip.show();\n }\n\n hide(): void {\n this.tooltip.hide();\n }\n}\n\nexport type { TooltipPosition };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAGA;;;;;;AAMG;MAiBU,gBAAgB,CAAA;IACV,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,gFAAC;AAEtC,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,kBAAkB;QAC9C,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;AACzC,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;wGAlBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAhB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,UAAU;AACrB,4BAAA,MAAM,EAAE;gCACN,uCAAuC;gCACvC,uCAAuC;gCACvC,yCAAyC;gCACzC,yCAAyC;gCACzC,iDAAiD;AAClD,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;;;ACzBD;;AAEG;;;;"}
@@ -0,0 +1,13 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ /**
9
+ * Generated bundle index. Do not edit.
10
+ */
11
+
12
+ export { cn };
13
+ //# sourceMappingURL=ojiepermana-angular-ui-component-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-ui-component-utils.mjs","sources":["../../../projects/angular/ui/component/utils/src/lib/cn.util.ts","../../../projects/angular/ui/component/utils/ojiepermana-angular-ui-component-utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGM,SAAU,EAAE,CAAC,GAAG,MAAoB,EAAA;AACxC,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B;;ACLA;;AAEG;;;;"}
@@ -3,13 +3,15 @@
3
3
  *
4
4
  * Components and utilities are shipped via subpath entries:
5
5
  * - `@ojiepermana/angular/theme` — design tokens, CSS variables, `ThemeService`, `provideMaterialTheme`
6
- * - `@ojiepermana/angular/component` — shadcn/ui primitives on top of Material M3
6
+ * - `@ojiepermana/angular/component/<slug>` — shadcn/ui primitives and utilities shipped only as granular entrypoints
7
7
  * - `@ojiepermana/angular/layout` — layout primitives (WIP)
8
8
  * - `@ojiepermana/angular/navigation` — navigation primitives (WIP)
9
- * - `@ojiepermana/angular/chart` chart primitives (WIP)
9
+ * - `@ojiepermana/angular/navigation/icon` standalone icon entrypoint for bundle-sensitive consumers
10
+ * - `@ojiepermana/angular/component/chart` — shared chart primitives
11
+ * - `@ojiepermana/angular/component/chart/<type>` — chart implementations
10
12
  * - `@ojiepermana/angular/generator/api` — OpenAPI → Angular SDK generator (schematics + config types)
11
13
  *
12
- * Consumers should import from the subpaths directly.
14
+ * Consumers should import from the smallest subpath that fits their use case.
13
15
  */
14
16
  const MATERIAL_VERSION = '0.0.1';
15
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"ojiepermana-angular.mjs","sources":["../../../projects/angular/public-api.ts","../../../projects/angular/ojiepermana-angular.ts"],"sourcesContent":["/*\n * Public API Surface of @ojiepermana/angular (primary entry)\n *\n * Components and utilities are shipped via subpath entries:\n * - `@ojiepermana/angular/theme` — design tokens, CSS variables, `ThemeService`, `provideMaterialTheme`\n * - `@ojiepermana/angular/component` — shadcn/ui primitives on top of Material M3\n * - `@ojiepermana/angular/layout` — layout primitives (WIP)\n * - `@ojiepermana/angular/navigation` — navigation primitives (WIP)\n * - `@ojiepermana/angular/chart` — chart primitives (WIP)\n * - `@ojiepermana/angular/generator/api` — OpenAPI → Angular SDK generator (schematics + config types)\n *\n * Consumers should import from the subpaths directly.\n */\n\nexport const MATERIAL_VERSION = '0.0.1';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;AAYG;AAEI,MAAM,gBAAgB,GAAG;;ACdhC;;AAEG;;;;"}
1
+ {"version":3,"file":"ojiepermana-angular.mjs","sources":["../../../projects/angular/public-api.ts","../../../projects/angular/ojiepermana-angular.ts"],"sourcesContent":["/*\n * Public API Surface of @ojiepermana/angular (primary entry)\n *\n * Components and utilities are shipped via subpath entries:\n * - `@ojiepermana/angular/theme` — design tokens, CSS variables, `ThemeService`, `provideMaterialTheme`\n * - `@ojiepermana/angular/component/<slug>` — shadcn/ui primitives and utilities shipped only as granular entrypoints\n * - `@ojiepermana/angular/layout` — layout primitives (WIP)\n * - `@ojiepermana/angular/navigation` — navigation primitives (WIP)\n * - `@ojiepermana/angular/navigation/icon` — standalone icon entrypoint for bundle-sensitive consumers\n * - `@ojiepermana/angular/component/chart` — shared chart primitives\n * - `@ojiepermana/angular/component/chart/<type>` — chart implementations\n * - `@ojiepermana/angular/generator/api` — OpenAPI → Angular SDK generator (schematics + config types)\n *\n * Consumers should import from the smallest subpath that fits their use case.\n */\n\nexport const MATERIAL_VERSION = '0.0.1';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;AAcG;AAEI,MAAM,gBAAgB,GAAG;;AChBhC;;AAEG;;;;"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../../fesm2022/ojiepermana-angular-layout-theme.mjs",
3
+ "typings": "../../types/ojiepermana-angular-layout-theme.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/ojiepermana-angular-navigation-icon.mjs",
3
+ "typings": "../types/ojiepermana-angular-navigation-icon.d.ts"
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ojiepermana/angular",
3
- "version": "21.2.4",
3
+ "version": "21.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ojiepermana/angular.git"
@@ -79,14 +79,6 @@
79
79
  "types": "./types/ojiepermana-angular.d.ts",
80
80
  "default": "./fesm2022/ojiepermana-angular.mjs"
81
81
  },
82
- "./chart": {
83
- "types": "./types/ojiepermana-angular-chart.d.ts",
84
- "default": "./fesm2022/ojiepermana-angular-chart.mjs"
85
- },
86
- "./component": {
87
- "types": "./types/ojiepermana-angular-component.d.ts",
88
- "default": "./fesm2022/ojiepermana-angular-component.mjs"
89
- },
90
82
  "./generator/api": {
91
83
  "types": "./types/ojiepermana-angular-generator-api.d.ts",
92
84
  "default": "./fesm2022/ojiepermana-angular-generator-api.mjs"
@@ -95,6 +87,10 @@
95
87
  "types": "./types/ojiepermana-angular-layout.d.ts",
96
88
  "default": "./fesm2022/ojiepermana-angular-layout.mjs"
97
89
  },
90
+ "./layout/theme": {
91
+ "types": "./types/ojiepermana-angular-layout-theme.d.ts",
92
+ "default": "./fesm2022/ojiepermana-angular-layout-theme.mjs"
93
+ },
98
94
  "./navigation": {
99
95
  "types": "./types/ojiepermana-angular-navigation.d.ts",
100
96
  "default": "./fesm2022/ojiepermana-angular-navigation.mjs"
@@ -107,9 +103,213 @@
107
103
  "types": "./types/ojiepermana-angular-layout.d.ts",
108
104
  "default": "./fesm2022/ojiepermana-angular-layout.mjs"
109
105
  },
110
- "./layout/theme": {
111
- "types": "./types/ojiepermana-angular-component.d.ts",
112
- "default": "./fesm2022/ojiepermana-angular-component.mjs"
106
+ "./component/accordion": {
107
+ "types": "./types/ojiepermana-angular-ui-component-accordion.d.ts",
108
+ "default": "./fesm2022/ojiepermana-angular-ui-component-accordion.mjs"
109
+ },
110
+ "./component/alert": {
111
+ "types": "./types/ojiepermana-angular-ui-component-alert.d.ts",
112
+ "default": "./fesm2022/ojiepermana-angular-ui-component-alert.mjs"
113
+ },
114
+ "./component/alert-dialog": {
115
+ "types": "./types/ojiepermana-angular-ui-component-alert-dialog.d.ts",
116
+ "default": "./fesm2022/ojiepermana-angular-ui-component-alert-dialog.mjs"
117
+ },
118
+ "./component/aspect-ratio": {
119
+ "types": "./types/ojiepermana-angular-ui-component-aspect-ratio.d.ts",
120
+ "default": "./fesm2022/ojiepermana-angular-ui-component-aspect-ratio.mjs"
121
+ },
122
+ "./component/avatar": {
123
+ "types": "./types/ojiepermana-angular-ui-component-avatar.d.ts",
124
+ "default": "./fesm2022/ojiepermana-angular-ui-component-avatar.mjs"
125
+ },
126
+ "./component/badge": {
127
+ "types": "./types/ojiepermana-angular-ui-component-badge.d.ts",
128
+ "default": "./fesm2022/ojiepermana-angular-ui-component-badge.mjs"
129
+ },
130
+ "./component/breadcrumb": {
131
+ "types": "./types/ojiepermana-angular-ui-component-breadcrumb.d.ts",
132
+ "default": "./fesm2022/ojiepermana-angular-ui-component-breadcrumb.mjs"
133
+ },
134
+ "./component/button": {
135
+ "types": "./types/ojiepermana-angular-ui-component-button.d.ts",
136
+ "default": "./fesm2022/ojiepermana-angular-ui-component-button.mjs"
137
+ },
138
+ "./component/button-group": {
139
+ "types": "./types/ojiepermana-angular-ui-component-button-group.d.ts",
140
+ "default": "./fesm2022/ojiepermana-angular-ui-component-button-group.mjs"
141
+ },
142
+ "./component/calendar": {
143
+ "types": "./types/ojiepermana-angular-ui-component-calendar.d.ts",
144
+ "default": "./fesm2022/ojiepermana-angular-ui-component-calendar.mjs"
145
+ },
146
+ "./component/card": {
147
+ "types": "./types/ojiepermana-angular-ui-component-card.d.ts",
148
+ "default": "./fesm2022/ojiepermana-angular-ui-component-card.mjs"
149
+ },
150
+ "./component/carousel": {
151
+ "types": "./types/ojiepermana-angular-ui-component-carousel.d.ts",
152
+ "default": "./fesm2022/ojiepermana-angular-ui-component-carousel.mjs"
153
+ },
154
+ "./component/chart": {
155
+ "types": "./types/ojiepermana-angular-ui-component-chart.d.ts",
156
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart.mjs"
157
+ },
158
+ "./component/chart/area": {
159
+ "types": "./types/ojiepermana-angular-ui-component-chart-area.d.ts",
160
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-area.mjs"
161
+ },
162
+ "./component/chart/bar": {
163
+ "types": "./types/ojiepermana-angular-ui-component-chart-bar.d.ts",
164
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-bar.mjs"
165
+ },
166
+ "./component/chart/line": {
167
+ "types": "./types/ojiepermana-angular-ui-component-chart-line.d.ts",
168
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-line.mjs"
169
+ },
170
+ "./component/chart/pie": {
171
+ "types": "./types/ojiepermana-angular-ui-component-chart-pie.d.ts",
172
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-pie.mjs"
173
+ },
174
+ "./component/chart/radar": {
175
+ "types": "./types/ojiepermana-angular-ui-component-chart-radar.d.ts",
176
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-radar.mjs"
177
+ },
178
+ "./component/chart/radial": {
179
+ "types": "./types/ojiepermana-angular-ui-component-chart-radial.d.ts",
180
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-radial.mjs"
181
+ },
182
+ "./component/chart/scatter": {
183
+ "types": "./types/ojiepermana-angular-ui-component-chart-scatter.d.ts",
184
+ "default": "./fesm2022/ojiepermana-angular-ui-component-chart-scatter.mjs"
185
+ },
186
+ "./component/checkbox": {
187
+ "types": "./types/ojiepermana-angular-ui-component-checkbox.d.ts",
188
+ "default": "./fesm2022/ojiepermana-angular-ui-component-checkbox.mjs"
189
+ },
190
+ "./component/collapsible": {
191
+ "types": "./types/ojiepermana-angular-ui-component-collapsible.d.ts",
192
+ "default": "./fesm2022/ojiepermana-angular-ui-component-collapsible.mjs"
193
+ },
194
+ "./component/combobox": {
195
+ "types": "./types/ojiepermana-angular-ui-component-combobox.d.ts",
196
+ "default": "./fesm2022/ojiepermana-angular-ui-component-combobox.mjs"
197
+ },
198
+ "./component/command": {
199
+ "types": "./types/ojiepermana-angular-ui-component-command.d.ts",
200
+ "default": "./fesm2022/ojiepermana-angular-ui-component-command.mjs"
201
+ },
202
+ "./component/context-menu": {
203
+ "types": "./types/ojiepermana-angular-ui-component-context-menu.d.ts",
204
+ "default": "./fesm2022/ojiepermana-angular-ui-component-context-menu.mjs"
205
+ },
206
+ "./component/date-picker": {
207
+ "types": "./types/ojiepermana-angular-ui-component-date-picker.d.ts",
208
+ "default": "./fesm2022/ojiepermana-angular-ui-component-date-picker.mjs"
209
+ },
210
+ "./component/dialog": {
211
+ "types": "./types/ojiepermana-angular-ui-component-dialog.d.ts",
212
+ "default": "./fesm2022/ojiepermana-angular-ui-component-dialog.mjs"
213
+ },
214
+ "./component/drawer": {
215
+ "types": "./types/ojiepermana-angular-ui-component-drawer.d.ts",
216
+ "default": "./fesm2022/ojiepermana-angular-ui-component-drawer.mjs"
217
+ },
218
+ "./component/dropdown-menu": {
219
+ "types": "./types/ojiepermana-angular-ui-component-dropdown-menu.d.ts",
220
+ "default": "./fesm2022/ojiepermana-angular-ui-component-dropdown-menu.mjs"
221
+ },
222
+ "./component/form": {
223
+ "types": "./types/ojiepermana-angular-ui-component-form.d.ts",
224
+ "default": "./fesm2022/ojiepermana-angular-ui-component-form.mjs"
225
+ },
226
+ "./component/input": {
227
+ "types": "./types/ojiepermana-angular-ui-component-input.d.ts",
228
+ "default": "./fesm2022/ojiepermana-angular-ui-component-input.mjs"
229
+ },
230
+ "./component/input-group": {
231
+ "types": "./types/ojiepermana-angular-ui-component-input-group.d.ts",
232
+ "default": "./fesm2022/ojiepermana-angular-ui-component-input-group.mjs"
233
+ },
234
+ "./component/item": {
235
+ "types": "./types/ojiepermana-angular-ui-component-item.d.ts",
236
+ "default": "./fesm2022/ojiepermana-angular-ui-component-item.mjs"
237
+ },
238
+ "./component/label": {
239
+ "types": "./types/ojiepermana-angular-ui-component-label.d.ts",
240
+ "default": "./fesm2022/ojiepermana-angular-ui-component-label.mjs"
241
+ },
242
+ "./component/pagination": {
243
+ "types": "./types/ojiepermana-angular-ui-component-pagination.d.ts",
244
+ "default": "./fesm2022/ojiepermana-angular-ui-component-pagination.mjs"
245
+ },
246
+ "./component/popover": {
247
+ "types": "./types/ojiepermana-angular-ui-component-popover.d.ts",
248
+ "default": "./fesm2022/ojiepermana-angular-ui-component-popover.mjs"
249
+ },
250
+ "./component/progress": {
251
+ "types": "./types/ojiepermana-angular-ui-component-progress.d.ts",
252
+ "default": "./fesm2022/ojiepermana-angular-ui-component-progress.mjs"
253
+ },
254
+ "./component/radio": {
255
+ "types": "./types/ojiepermana-angular-ui-component-radio.d.ts",
256
+ "default": "./fesm2022/ojiepermana-angular-ui-component-radio.mjs"
257
+ },
258
+ "./component/scroll-area": {
259
+ "types": "./types/ojiepermana-angular-ui-component-scroll-area.d.ts",
260
+ "default": "./fesm2022/ojiepermana-angular-ui-component-scroll-area.mjs"
261
+ },
262
+ "./component/select": {
263
+ "types": "./types/ojiepermana-angular-ui-component-select.d.ts",
264
+ "default": "./fesm2022/ojiepermana-angular-ui-component-select.mjs"
265
+ },
266
+ "./component/separator": {
267
+ "types": "./types/ojiepermana-angular-ui-component-separator.d.ts",
268
+ "default": "./fesm2022/ojiepermana-angular-ui-component-separator.mjs"
269
+ },
270
+ "./component/sheet": {
271
+ "types": "./types/ojiepermana-angular-ui-component-sheet.d.ts",
272
+ "default": "./fesm2022/ojiepermana-angular-ui-component-sheet.mjs"
273
+ },
274
+ "./component/skeleton": {
275
+ "types": "./types/ojiepermana-angular-ui-component-skeleton.d.ts",
276
+ "default": "./fesm2022/ojiepermana-angular-ui-component-skeleton.mjs"
277
+ },
278
+ "./component/slider": {
279
+ "types": "./types/ojiepermana-angular-ui-component-slider.d.ts",
280
+ "default": "./fesm2022/ojiepermana-angular-ui-component-slider.mjs"
281
+ },
282
+ "./component/switch": {
283
+ "types": "./types/ojiepermana-angular-ui-component-switch.d.ts",
284
+ "default": "./fesm2022/ojiepermana-angular-ui-component-switch.mjs"
285
+ },
286
+ "./component/table": {
287
+ "types": "./types/ojiepermana-angular-ui-component-table.d.ts",
288
+ "default": "./fesm2022/ojiepermana-angular-ui-component-table.mjs"
289
+ },
290
+ "./component/tabs": {
291
+ "types": "./types/ojiepermana-angular-ui-component-tabs.d.ts",
292
+ "default": "./fesm2022/ojiepermana-angular-ui-component-tabs.mjs"
293
+ },
294
+ "./component/textarea": {
295
+ "types": "./types/ojiepermana-angular-ui-component-textarea.d.ts",
296
+ "default": "./fesm2022/ojiepermana-angular-ui-component-textarea.mjs"
297
+ },
298
+ "./component/toast": {
299
+ "types": "./types/ojiepermana-angular-ui-component-toast.d.ts",
300
+ "default": "./fesm2022/ojiepermana-angular-ui-component-toast.mjs"
301
+ },
302
+ "./component/tooltip": {
303
+ "types": "./types/ojiepermana-angular-ui-component-tooltip.d.ts",
304
+ "default": "./fesm2022/ojiepermana-angular-ui-component-tooltip.mjs"
305
+ },
306
+ "./component/utils": {
307
+ "types": "./types/ojiepermana-angular-ui-component-utils.d.ts",
308
+ "default": "./fesm2022/ojiepermana-angular-ui-component-utils.mjs"
309
+ },
310
+ "./navigation/icon": {
311
+ "types": "./types/ojiepermana-angular-navigation-icon.d.ts",
312
+ "default": "./fesm2022/ojiepermana-angular-navigation-icon.mjs"
113
313
  }
114
314
  },
115
315
  "module": "fesm2022/ojiepermana-angular.mjs",
@@ -0,0 +1,205 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, Signal } from '@angular/core';
3
+ import { SafeHtml } from '@angular/platform-browser';
4
+
5
+ type ThemePanelColor = 'base' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose';
6
+ type ThemePanelMode = 'light' | 'dark' | 'system';
7
+ type ThemePanelStyle = 'default' | 'sharp' | 'brutal' | 'soft';
8
+ type ThemePanelLayoutMode = 'vertical' | 'horizontal' | 'empty';
9
+ type ThemePanelLayoutWidth = 'full' | 'container' | 'wide';
10
+ interface ThemePanelThemePort {
11
+ readonly color: Signal<ThemePanelColor>;
12
+ readonly scheme: Signal<ThemePanelMode>;
13
+ readonly style: Signal<ThemePanelStyle>;
14
+ setColor(color: ThemePanelColor): void;
15
+ setScheme(mode: ThemePanelMode): void;
16
+ setStyle(style: ThemePanelStyle): void;
17
+ }
18
+ interface ThemePanelLayoutPort {
19
+ readonly mode: Signal<ThemePanelLayoutMode>;
20
+ readonly width: Signal<ThemePanelLayoutWidth>;
21
+ setMode(mode: ThemePanelLayoutMode): void;
22
+ setWidth(width: ThemePanelLayoutWidth): void;
23
+ }
24
+ declare const THEME_PANEL_THEME_PORT: InjectionToken<ThemePanelThemePort>;
25
+ declare const THEME_PANEL_LAYOUT_PORT: InjectionToken<ThemePanelLayoutPort>;
26
+ type ThemePanelIconName = 'sun' | 'moon' | 'system' | 'default-style' | 'sharp-style' | 'brutal-style' | 'soft-style' | 'vertical-layout' | 'horizontal-layout' | 'empty-layout' | 'full-width' | 'container-width' | 'wide-width';
27
+ declare class ThemePanelComponent {
28
+ private readonly sanitizer;
29
+ private readonly themePort;
30
+ private readonly layoutPort;
31
+ readonly connected: _angular_core.InputSignal<boolean>;
32
+ readonly class: _angular_core.InputSignal<string>;
33
+ readonly title: _angular_core.InputSignal<string>;
34
+ readonly description: _angular_core.InputSignal<string>;
35
+ readonly userName: _angular_core.InputSignal<string>;
36
+ readonly userSubtitle: _angular_core.InputSignal<string>;
37
+ readonly userInitials: _angular_core.InputSignal<string>;
38
+ readonly themeColor: _angular_core.InputSignal<ThemePanelColor>;
39
+ readonly themeMode: _angular_core.InputSignal<ThemePanelMode>;
40
+ readonly themeStyle: _angular_core.InputSignal<ThemePanelStyle>;
41
+ readonly layoutMode: _angular_core.InputSignal<ThemePanelLayoutMode>;
42
+ readonly layoutWidth: _angular_core.InputSignal<ThemePanelLayoutWidth>;
43
+ readonly themeColorChange: _angular_core.OutputEmitterRef<ThemePanelColor>;
44
+ readonly themeModeChange: _angular_core.OutputEmitterRef<ThemePanelMode>;
45
+ readonly themeStyleChange: _angular_core.OutputEmitterRef<ThemePanelStyle>;
46
+ readonly layoutModeChange: _angular_core.OutputEmitterRef<ThemePanelLayoutMode>;
47
+ readonly layoutWidthChange: _angular_core.OutputEmitterRef<ThemePanelLayoutWidth>;
48
+ protected readonly currentThemeColor: _angular_core.WritableSignal<ThemePanelColor>;
49
+ protected readonly currentThemeMode: _angular_core.WritableSignal<ThemePanelMode>;
50
+ protected readonly currentThemeStyle: _angular_core.WritableSignal<ThemePanelStyle>;
51
+ protected readonly currentLayoutMode: _angular_core.WritableSignal<ThemePanelLayoutMode>;
52
+ protected readonly currentLayoutWidth: _angular_core.WritableSignal<ThemePanelLayoutWidth>;
53
+ protected readonly themeColorOptions: readonly [{
54
+ readonly value: "base";
55
+ readonly label: "Base";
56
+ readonly swatchClass: "bg-zinc-800";
57
+ }, {
58
+ readonly value: "red";
59
+ readonly label: "Red";
60
+ readonly swatchClass: "bg-red-500";
61
+ }, {
62
+ readonly value: "orange";
63
+ readonly label: "Orange";
64
+ readonly swatchClass: "bg-orange-500";
65
+ }, {
66
+ readonly value: "amber";
67
+ readonly label: "Amber";
68
+ readonly swatchClass: "bg-amber-400";
69
+ }, {
70
+ readonly value: "yellow";
71
+ readonly label: "Yellow";
72
+ readonly swatchClass: "bg-yellow-400";
73
+ }, {
74
+ readonly value: "lime";
75
+ readonly label: "Lime";
76
+ readonly swatchClass: "bg-lime-400";
77
+ }, {
78
+ readonly value: "green";
79
+ readonly label: "Green";
80
+ readonly swatchClass: "bg-green-600";
81
+ }, {
82
+ readonly value: "emerald";
83
+ readonly label: "Emerald";
84
+ readonly swatchClass: "bg-emerald-600";
85
+ }, {
86
+ readonly value: "teal";
87
+ readonly label: "Teal";
88
+ readonly swatchClass: "bg-teal-600";
89
+ }, {
90
+ readonly value: "cyan";
91
+ readonly label: "Cyan";
92
+ readonly swatchClass: "bg-cyan-600";
93
+ }, {
94
+ readonly value: "sky";
95
+ readonly label: "Sky";
96
+ readonly swatchClass: "bg-sky-600";
97
+ }, {
98
+ readonly value: "blue";
99
+ readonly label: "Blue";
100
+ readonly swatchClass: "bg-blue-500";
101
+ }, {
102
+ readonly value: "indigo";
103
+ readonly label: "Indigo";
104
+ readonly swatchClass: "bg-indigo-500";
105
+ }, {
106
+ readonly value: "violet";
107
+ readonly label: "Violet";
108
+ readonly swatchClass: "bg-violet-500";
109
+ }, {
110
+ readonly value: "purple";
111
+ readonly label: "Purple";
112
+ readonly swatchClass: "bg-purple-500";
113
+ }, {
114
+ readonly value: "fuchsia";
115
+ readonly label: "Fuchsia";
116
+ readonly swatchClass: "bg-fuchsia-600";
117
+ }, {
118
+ readonly value: "pink";
119
+ readonly label: "Pink";
120
+ readonly swatchClass: "bg-pink-600";
121
+ }, {
122
+ readonly value: "rose";
123
+ readonly label: "Rose";
124
+ readonly swatchClass: "bg-rose-500";
125
+ }];
126
+ protected readonly themeModeOptions: readonly [{
127
+ readonly value: "light";
128
+ readonly label: "Light";
129
+ readonly icon: "sun";
130
+ }, {
131
+ readonly value: "dark";
132
+ readonly label: "Dark";
133
+ readonly icon: "moon";
134
+ }, {
135
+ readonly value: "system";
136
+ readonly label: "System";
137
+ readonly icon: "system";
138
+ }];
139
+ protected readonly themeStyleOptions: readonly [{
140
+ readonly value: "default";
141
+ readonly label: "Default";
142
+ readonly icon: "default-style";
143
+ }, {
144
+ readonly value: "sharp";
145
+ readonly label: "Sharp";
146
+ readonly icon: "sharp-style";
147
+ }, {
148
+ readonly value: "brutal";
149
+ readonly label: "Brutal";
150
+ readonly icon: "brutal-style";
151
+ }, {
152
+ readonly value: "soft";
153
+ readonly label: "Soft";
154
+ readonly icon: "soft-style";
155
+ }];
156
+ protected readonly layoutModeOptions: readonly [{
157
+ readonly value: "vertical";
158
+ readonly label: "Vertical";
159
+ readonly icon: "vertical-layout";
160
+ }, {
161
+ readonly value: "horizontal";
162
+ readonly label: "Horizontal";
163
+ readonly icon: "horizontal-layout";
164
+ }, {
165
+ readonly value: "empty";
166
+ readonly label: "Empty";
167
+ readonly icon: "empty-layout";
168
+ }];
169
+ protected readonly layoutWidthOptions: readonly [{
170
+ readonly value: "full";
171
+ readonly label: "Full";
172
+ readonly icon: "full-width";
173
+ }, {
174
+ readonly value: "container";
175
+ readonly label: "Container";
176
+ readonly icon: "container-width";
177
+ }, {
178
+ readonly value: "wide";
179
+ readonly label: "Wide";
180
+ readonly icon: "wide-width";
181
+ }];
182
+ protected readonly hostClasses: Signal<string>;
183
+ protected readonly hasUserHeader: Signal<boolean>;
184
+ protected readonly resolvedUserInitials: Signal<string>;
185
+ protected readonly currentThemeColorLabel: Signal<"Base" | "Red" | "Orange" | "Amber" | "Yellow" | "Lime" | "Green" | "Emerald" | "Teal" | "Cyan" | "Sky" | "Blue" | "Indigo" | "Violet" | "Purple" | "Fuchsia" | "Pink" | "Rose" | "">;
186
+ constructor();
187
+ protected setThemeColor(color: ThemePanelColor): void;
188
+ protected setThemeMode(mode: ThemePanelMode): void;
189
+ protected setThemeStyle(style: ThemePanelStyle): void;
190
+ protected setLayoutMode(mode: ThemePanelLayoutMode): void;
191
+ protected setLayoutWidth(width: ThemePanelLayoutWidth): void;
192
+ protected sectionEyebrowClasses(): string;
193
+ protected segmentedOptionClasses(active: boolean): string;
194
+ protected swatchButtonClasses(active: boolean): string;
195
+ protected optionIconClasses(active: boolean): string;
196
+ protected colorSwatchClasses(swatchClass: string | undefined, isActive: boolean): string;
197
+ protected iconSvg(name: ThemePanelIconName): SafeHtml;
198
+ private rawIconSvg;
199
+ private toInitials;
200
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemePanelComponent, never>;
201
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemePanelComponent, "ui-theme-panel", never, { "connected": { "alias": "connected"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "userName": { "alias": "userName"; "required": false; "isSignal": true; }; "userSubtitle": { "alias": "userSubtitle"; "required": false; "isSignal": true; }; "userInitials": { "alias": "userInitials"; "required": false; "isSignal": true; }; "themeColor": { "alias": "themeColor"; "required": false; "isSignal": true; }; "themeMode": { "alias": "themeMode"; "required": false; "isSignal": true; }; "themeStyle": { "alias": "themeStyle"; "required": false; "isSignal": true; }; "layoutMode": { "alias": "layoutMode"; "required": false; "isSignal": true; }; "layoutWidth": { "alias": "layoutWidth"; "required": false; "isSignal": true; }; }, { "themeColorChange": "themeColorChange"; "themeModeChange": "themeModeChange"; "themeStyleChange": "themeStyleChange"; "layoutModeChange": "layoutModeChange"; "layoutWidthChange": "layoutWidthChange"; }, never, never, true, never>;
202
+ }
203
+
204
+ export { THEME_PANEL_LAYOUT_PORT, THEME_PANEL_THEME_PORT, ThemePanelComponent };
205
+ export type { ThemePanelColor, ThemePanelLayoutMode, ThemePanelLayoutPort, ThemePanelLayoutWidth, ThemePanelMode, ThemePanelStyle, ThemePanelThemePort };
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
3
  import { SidebarAppearance, SidebarPosition, SidebarMode, TopbarAppearance } from '@ojiepermana/angular/navigation';
4
- import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component';
4
+ import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component/popover';
5
5
 
6
6
  /**
7
7
  * Vertical layout — sidebar + main (scrollable).
@@ -0,0 +1,17 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ declare class UiNavIconComponent {
4
+ private readonly doc;
5
+ private readonly platformId;
6
+ readonly name: _angular_core.InputSignal<string>;
7
+ readonly class: _angular_core.InputSignal<string>;
8
+ readonly size: _angular_core.InputSignal<number | null>;
9
+ protected readonly fontVariationSettings = "\"FILL\" 0, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24";
10
+ constructor();
11
+ protected readonly classes: _angular_core.Signal<string>;
12
+ private ensureFontStylesheet;
13
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiNavIconComponent, never>;
14
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiNavIconComponent, "ui-nav-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ }
16
+
17
+ export { UiNavIconComponent };