@frame-ui-ng/components 0.1.0-beta.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 (249) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +31 -0
  3. package/accordion/src/styles/_vars.css +25 -0
  4. package/accordion/src/styles/accordion.css +87 -0
  5. package/alert/src/styles/_vars.css +28 -0
  6. package/alert/src/styles/alert.css +77 -0
  7. package/avatar/src/styles/_vars.css +34 -0
  8. package/avatar/src/styles/avatar.css +209 -0
  9. package/badge/src/styles/_vars.css +16 -0
  10. package/badge/src/styles/badge.css +125 -0
  11. package/breadcrumb/src/styles/_vars.css +16 -0
  12. package/breadcrumb/src/styles/breadcrumb.css +98 -0
  13. package/button/src/styles/_vars.css +20 -0
  14. package/button/src/styles/button-icon.css +18 -0
  15. package/button/src/styles/button-label.css +3 -0
  16. package/button/src/styles/button.css +243 -0
  17. package/button-group/src/styles/button-group.css +69 -0
  18. package/calendar/src/styles/_vars.css +29 -0
  19. package/calendar/src/styles/calendar.css +226 -0
  20. package/card/src/styles/_vars.css +17 -0
  21. package/card/src/styles/card.css +142 -0
  22. package/carousel/src/styles/_vars.css +7 -0
  23. package/carousel/src/styles/carousel.css +89 -0
  24. package/checkbox/src/styles/_vars.css +22 -0
  25. package/checkbox/src/styles/checkbox.css +95 -0
  26. package/collapsible/src/styles/_vars.css +13 -0
  27. package/collapsible/src/styles/collapsible.css +42 -0
  28. package/combobox/src/styles/_vars.css +60 -0
  29. package/combobox/src/styles/combobox.css +285 -0
  30. package/command/src/styles/_vars.css +37 -0
  31. package/command/src/styles/command.css +171 -0
  32. package/context-menu/src/styles/context-menu.css +5 -0
  33. package/date-picker/src/styles/_vars.css +29 -0
  34. package/date-picker/src/styles/date-picker.css +177 -0
  35. package/dropdown-menu/src/styles/_vars.css +34 -0
  36. package/dropdown-menu/src/styles/dropdown-menu-item.css +87 -0
  37. package/dropdown-menu/src/styles/dropdown-menu-motion.css +42 -0
  38. package/dropdown-menu/src/styles/dropdown-menu-panel.css +26 -0
  39. package/dropdown-menu/src/styles/dropdown-menu.css +4 -0
  40. package/empty/src/styles/_vars.css +23 -0
  41. package/empty/src/styles/empty.css +108 -0
  42. package/fesm2022/frame-ui-ng-components-accordion.mjs +268 -0
  43. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -0
  44. package/fesm2022/frame-ui-ng-components-alert.mjs +102 -0
  45. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -0
  46. package/fesm2022/frame-ui-ng-components-avatar.mjs +197 -0
  47. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -0
  48. package/fesm2022/frame-ui-ng-components-badge.mjs +120 -0
  49. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -0
  50. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +156 -0
  51. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -0
  52. package/fesm2022/frame-ui-ng-components-button-group.mjs +44 -0
  53. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -0
  54. package/fesm2022/frame-ui-ng-components-button.mjs +150 -0
  55. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -0
  56. package/fesm2022/frame-ui-ng-components-calendar.mjs +559 -0
  57. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -0
  58. package/fesm2022/frame-ui-ng-components-card.mjs +169 -0
  59. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -0
  60. package/fesm2022/frame-ui-ng-components-carousel.mjs +454 -0
  61. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -0
  62. package/fesm2022/frame-ui-ng-components-checkbox.mjs +83 -0
  63. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -0
  64. package/fesm2022/frame-ui-ng-components-collapsible.mjs +191 -0
  65. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -0
  66. package/fesm2022/frame-ui-ng-components-combobox.mjs +859 -0
  67. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -0
  68. package/fesm2022/frame-ui-ng-components-command.mjs +658 -0
  69. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -0
  70. package/fesm2022/frame-ui-ng-components-context-menu.mjs +579 -0
  71. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -0
  72. package/fesm2022/frame-ui-ng-components-date-picker.mjs +512 -0
  73. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -0
  74. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +647 -0
  75. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -0
  76. package/fesm2022/frame-ui-ng-components-empty.mjs +134 -0
  77. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -0
  78. package/fesm2022/frame-ui-ng-components-field.mjs +210 -0
  79. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -0
  80. package/fesm2022/frame-ui-ng-components-forms.mjs +89 -0
  81. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -0
  82. package/fesm2022/frame-ui-ng-components-hover-card.mjs +412 -0
  83. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -0
  84. package/fesm2022/frame-ui-ng-components-input-otp.mjs +327 -0
  85. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -0
  86. package/fesm2022/frame-ui-ng-components-input.mjs +250 -0
  87. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -0
  88. package/fesm2022/frame-ui-ng-components-item.mjs +207 -0
  89. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -0
  90. package/fesm2022/frame-ui-ng-components-menubar.mjs +371 -0
  91. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -0
  92. package/fesm2022/frame-ui-ng-components-modal.mjs +525 -0
  93. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -0
  94. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +322 -0
  95. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -0
  96. package/fesm2022/frame-ui-ng-components-pagination.mjs +327 -0
  97. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -0
  98. package/fesm2022/frame-ui-ng-components-popover.mjs +454 -0
  99. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -0
  100. package/fesm2022/frame-ui-ng-components-progress.mjs +96 -0
  101. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -0
  102. package/fesm2022/frame-ui-ng-components-radio-group.mjs +124 -0
  103. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -0
  104. package/fesm2022/frame-ui-ng-components-resizable.mjs +325 -0
  105. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -0
  106. package/fesm2022/frame-ui-ng-components-select.mjs +434 -0
  107. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -0
  108. package/fesm2022/frame-ui-ng-components-separator.mjs +51 -0
  109. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -0
  110. package/fesm2022/frame-ui-ng-components-sheet.mjs +514 -0
  111. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -0
  112. package/fesm2022/frame-ui-ng-components-sidebar.mjs +628 -0
  113. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -0
  114. package/fesm2022/frame-ui-ng-components-skeleton.mjs +46 -0
  115. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -0
  116. package/fesm2022/frame-ui-ng-components-slider.mjs +279 -0
  117. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -0
  118. package/fesm2022/frame-ui-ng-components-spinner.mjs +51 -0
  119. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -0
  120. package/fesm2022/frame-ui-ng-components-switch.mjs +130 -0
  121. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -0
  122. package/fesm2022/frame-ui-ng-components-table.mjs +594 -0
  123. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -0
  124. package/fesm2022/frame-ui-ng-components-tabs.mjs +208 -0
  125. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -0
  126. package/fesm2022/frame-ui-ng-components-textarea.mjs +40 -0
  127. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -0
  128. package/fesm2022/frame-ui-ng-components-toast.mjs +346 -0
  129. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -0
  130. package/fesm2022/frame-ui-ng-components-toggle.mjs +127 -0
  131. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -0
  132. package/fesm2022/frame-ui-ng-components-tooltip.mjs +425 -0
  133. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -0
  134. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +321 -0
  135. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -0
  136. package/fesm2022/frame-ui-ng-components.mjs +10278 -0
  137. package/fesm2022/frame-ui-ng-components.mjs.map +1 -0
  138. package/field/src/styles/_vars.css +20 -0
  139. package/field/src/styles/field.css +165 -0
  140. package/hover-card/src/styles/_vars.css +21 -0
  141. package/hover-card/src/styles/hover-card.css +76 -0
  142. package/input/src/styles/_vars.css +65 -0
  143. package/input/src/styles/input-group.css +112 -0
  144. package/input/src/styles/input.css +163 -0
  145. package/input-otp/src/styles/_vars.css +21 -0
  146. package/input-otp/src/styles/input-otp.css +116 -0
  147. package/item/src/styles/_vars.css +34 -0
  148. package/item/src/styles/item.css +187 -0
  149. package/menubar/src/styles/_vars.css +22 -0
  150. package/menubar/src/styles/menubar.css +70 -0
  151. package/modal/src/styles/_vars.css +18 -0
  152. package/modal/src/styles/modal.css +179 -0
  153. package/navigation-menu/src/styles/_vars.css +45 -0
  154. package/navigation-menu/src/styles/navigation-menu.css +245 -0
  155. package/package.json +243 -0
  156. package/pagination/src/styles/_vars.css +22 -0
  157. package/pagination/src/styles/pagination.css +138 -0
  158. package/popover/src/styles/_vars.css +24 -0
  159. package/popover/src/styles/popover.css +101 -0
  160. package/progress/src/styles/_vars.css +15 -0
  161. package/progress/src/styles/progress.css +64 -0
  162. package/radio-group/src/styles/_vars.css +29 -0
  163. package/radio-group/src/styles/radio-group.css +137 -0
  164. package/resizable/src/styles/_vars.css +20 -0
  165. package/resizable/src/styles/resizable.css +130 -0
  166. package/select/src/styles/_vars.css +28 -0
  167. package/select/src/styles/select-content.css +19 -0
  168. package/select/src/styles/select-feedback.css +6 -0
  169. package/select/src/styles/select-item.css +69 -0
  170. package/select/src/styles/select-trigger.css +95 -0
  171. package/select/src/styles/select.css +5 -0
  172. package/separator/src/styles/_vars.css +9 -0
  173. package/separator/src/styles/separator.css +25 -0
  174. package/sheet/src/styles/_vars.css +18 -0
  175. package/sheet/src/styles/sheet.css +215 -0
  176. package/sidebar/src/styles/_vars.css +24 -0
  177. package/sidebar/src/styles/sidebar.css +531 -0
  178. package/skeleton/src/styles/_vars.css +8 -0
  179. package/skeleton/src/styles/skeleton.css +40 -0
  180. package/slider/src/styles/_vars.css +17 -0
  181. package/slider/src/styles/slider.css +147 -0
  182. package/spinner/src/styles/_vars.css +9 -0
  183. package/spinner/src/styles/spinner.css +62 -0
  184. package/src/styles/components.css +47 -0
  185. package/styles/components.css +47 -0
  186. package/styles.css +49 -0
  187. package/switch/src/styles/_vars.css +34 -0
  188. package/switch/src/styles/switch.css +131 -0
  189. package/table/src/styles/_vars.css +25 -0
  190. package/table/src/styles/table.css +245 -0
  191. package/tabs/src/styles/_vars.css +23 -0
  192. package/tabs/src/styles/tabs.css +164 -0
  193. package/textarea/src/styles/_vars.css +20 -0
  194. package/textarea/src/styles/textarea.css +60 -0
  195. package/toast/src/styles/_vars.css +47 -0
  196. package/toast/src/styles/toast.css +314 -0
  197. package/toggle/src/styles/_vars.css +24 -0
  198. package/toggle/src/styles/toggle.css +110 -0
  199. package/tooltip/src/styles/_vars.css +21 -0
  200. package/tooltip/src/styles/tooltip.css +103 -0
  201. package/types/frame-ui-ng-components-accordion.d.ts +75 -0
  202. package/types/frame-ui-ng-components-alert.d.ts +30 -0
  203. package/types/frame-ui-ng-components-avatar.d.ts +65 -0
  204. package/types/frame-ui-ng-components-badge.d.ts +35 -0
  205. package/types/frame-ui-ng-components-breadcrumb.d.ts +40 -0
  206. package/types/frame-ui-ng-components-button-group.d.ts +18 -0
  207. package/types/frame-ui-ng-components-button.d.ts +50 -0
  208. package/types/frame-ui-ng-components-calendar.d.ts +101 -0
  209. package/types/frame-ui-ng-components-card.d.ts +51 -0
  210. package/types/frame-ui-ng-components-carousel.d.ts +117 -0
  211. package/types/frame-ui-ng-components-checkbox.d.ts +25 -0
  212. package/types/frame-ui-ng-components-collapsible.d.ts +55 -0
  213. package/types/frame-ui-ng-components-combobox.d.ts +201 -0
  214. package/types/frame-ui-ng-components-command.d.ts +198 -0
  215. package/types/frame-ui-ng-components-context-menu.d.ts +149 -0
  216. package/types/frame-ui-ng-components-date-picker.d.ts +95 -0
  217. package/types/frame-ui-ng-components-dropdown-menu.d.ts +182 -0
  218. package/types/frame-ui-ng-components-empty.d.ts +44 -0
  219. package/types/frame-ui-ng-components-field.d.ts +60 -0
  220. package/types/frame-ui-ng-components-forms.d.ts +39 -0
  221. package/types/frame-ui-ng-components-hover-card.d.ts +94 -0
  222. package/types/frame-ui-ng-components-input-otp.d.ts +70 -0
  223. package/types/frame-ui-ng-components-input.d.ts +67 -0
  224. package/types/frame-ui-ng-components-item.d.ts +62 -0
  225. package/types/frame-ui-ng-components-menubar.d.ts +76 -0
  226. package/types/frame-ui-ng-components-modal.d.ts +148 -0
  227. package/types/frame-ui-ng-components-navigation-menu.d.ts +74 -0
  228. package/types/frame-ui-ng-components-pagination.d.ts +79 -0
  229. package/types/frame-ui-ng-components-popover.d.ts +95 -0
  230. package/types/frame-ui-ng-components-progress.d.ts +24 -0
  231. package/types/frame-ui-ng-components-radio-group.d.ts +40 -0
  232. package/types/frame-ui-ng-components-resizable.d.ts +61 -0
  233. package/types/frame-ui-ng-components-select.d.ts +114 -0
  234. package/types/frame-ui-ng-components-separator.d.ts +19 -0
  235. package/types/frame-ui-ng-components-sheet.d.ts +146 -0
  236. package/types/frame-ui-ng-components-sidebar.d.ts +163 -0
  237. package/types/frame-ui-ng-components-skeleton.d.ts +18 -0
  238. package/types/frame-ui-ng-components-slider.d.ts +56 -0
  239. package/types/frame-ui-ng-components-spinner.d.ts +23 -0
  240. package/types/frame-ui-ng-components-switch.d.ts +38 -0
  241. package/types/frame-ui-ng-components-table.d.ts +125 -0
  242. package/types/frame-ui-ng-components-tabs.d.ts +62 -0
  243. package/types/frame-ui-ng-components-textarea.d.ts +14 -0
  244. package/types/frame-ui-ng-components-toast.d.ts +74 -0
  245. package/types/frame-ui-ng-components-toggle.d.ts +45 -0
  246. package/types/frame-ui-ng-components-tooltip.d.ts +99 -0
  247. package/types/frame-ui-ng-components-virtual-scroll.d.ts +106 -0
  248. package/types/frame-ui-ng-components.d.ts +2746 -0
  249. package/virtual-scroll/src/styles/virtual-scroll.css +54 -0
@@ -0,0 +1,628 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, signal, input, booleanAttribute, output, computed, effect, HostListener, Directive, NgModule } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+
5
+ const FR_SIDEBAR_SIDES = ['left', 'right'];
6
+ const FR_SIDEBAR_VARIANTS = ['sidebar', 'floating', 'inset'];
7
+ const FR_SIDEBAR_COLLAPSIBLES = ['offcanvas', 'icon', 'none'];
8
+ const FR_SIDEBAR_MENU_BUTTON_SIZES = ['default', 'sm', 'lg'];
9
+ const FR_SIDEBAR_MENU_BUTTON_VARIANTS = ['default', 'outline'];
10
+ const FR_SIDEBAR_PROVIDER = new InjectionToken('FR_SIDEBAR_PROVIDER');
11
+ function coerceSide(value) {
12
+ return value === 'right' ? 'right' : 'left';
13
+ }
14
+ function coerceVariant(value) {
15
+ return value === 'floating' || value === 'inset' ? value : 'sidebar';
16
+ }
17
+ function coerceCollapsible(value) {
18
+ return value === 'icon' || value === 'none' ? value : 'offcanvas';
19
+ }
20
+ function coerceMenuButtonSize(value) {
21
+ return value === 'sm' || value === 'lg' ? value : 'default';
22
+ }
23
+ function coerceMenuButtonVariant(value) {
24
+ return value === 'outline' ? 'outline' : 'default';
25
+ }
26
+ class FrSidebarProvider {
27
+ document = inject(DOCUMENT);
28
+ elementRef = inject(ElementRef);
29
+ internalOpen = signal(true, ...(ngDevMode ? [{ debugName: "internalOpen" }] : /* istanbul ignore next */ []));
30
+ internalOpenMobile = signal(false, ...(ngDevMode ? [{ debugName: "internalOpenMobile" }] : /* istanbul ignore next */ []));
31
+ resizing = signal(false, ...(ngDevMode ? [{ debugName: "resizing" }] : /* istanbul ignore next */ []));
32
+ defaultOpen = input(true, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
33
+ openInput = input(null, { ...(ngDevMode ? { debugName: "openInput" } : /* istanbul ignore next */ {}), alias: 'open' });
34
+ openChange = output();
35
+ openMobileChange = output();
36
+ shortcut = input('b', ...(ngDevMode ? [{ debugName: "shortcut" }] : /* istanbul ignore next */ []));
37
+ keyboardShortcut = input(true, { ...(ngDevMode ? { debugName: "keyboardShortcut" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
38
+ isMobile = signal(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
39
+ open = computed(() => this.openInput() ?? this.internalOpen(), ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
40
+ openMobile = computed(() => this.internalOpenMobile(), ...(ngDevMode ? [{ debugName: "openMobile" }] : /* istanbul ignore next */ []));
41
+ state = computed(() => (this.open() ? 'expanded' : 'collapsed'), ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
42
+ constructor() {
43
+ this.internalOpen.set(this.defaultOpen());
44
+ effect(() => {
45
+ if (this.openInput() === null) {
46
+ this.internalOpen.set(this.defaultOpen());
47
+ }
48
+ });
49
+ effect(() => {
50
+ this.elementRef.nativeElement.style.setProperty('--frame-sidebar-state', this.state());
51
+ });
52
+ const defaultView = this.document.defaultView;
53
+ if (!defaultView?.matchMedia) {
54
+ return;
55
+ }
56
+ const mediaQuery = defaultView.matchMedia('(max-width: 768px)');
57
+ const updateMobile = () => this.isMobile.set(mediaQuery.matches);
58
+ updateMobile();
59
+ mediaQuery.addEventListener?.('change', updateMobile);
60
+ }
61
+ setOpen(open) {
62
+ if (this.openInput() === null) {
63
+ this.internalOpen.set(open);
64
+ }
65
+ this.openChange.emit(open);
66
+ }
67
+ setOpenMobile(open) {
68
+ this.internalOpenMobile.set(open);
69
+ this.openMobileChange.emit(open);
70
+ }
71
+ setSidebarWidth(width) {
72
+ this.elementRef.nativeElement.style.setProperty('--frame-sidebar-width', `${width}px`);
73
+ }
74
+ setResizing(resizing) {
75
+ this.resizing.set(resizing);
76
+ }
77
+ toggleSidebar() {
78
+ if (this.isMobile()) {
79
+ this.setOpenMobile(!this.openMobile());
80
+ return;
81
+ }
82
+ this.setOpen(!this.open());
83
+ }
84
+ handleKeydown(event) {
85
+ if (!this.keyboardShortcut()) {
86
+ return;
87
+ }
88
+ const key = this.shortcut().toLowerCase();
89
+ if (event.key.toLowerCase() !== key || (!event.metaKey && !event.ctrlKey)) {
90
+ return;
91
+ }
92
+ event.preventDefault();
93
+ this.toggleSidebar();
94
+ }
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarProvider, isStandalone: true, selector: "[frSidebarProvider], frame-sidebar-provider", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, openInput: { classPropertyName: "openInput", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, shortcut: { classPropertyName: "shortcut", publicName: "shortcut", isSignal: true, isRequired: false, transformFunction: null }, keyboardShortcut: { classPropertyName: "keyboardShortcut", publicName: "keyboardShortcut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", openMobileChange: "openMobileChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)" }, properties: { "attr.data-state": "state()", "attr.data-open": "open()", "attr.data-mobile-open": "openMobile()", "attr.data-mobile": "isMobile() ? \"\" : null", "attr.data-resizing": "resizing() ? \"\" : null" }, classAttribute: "frame-sidebar-provider" }, providers: [
97
+ {
98
+ provide: FR_SIDEBAR_PROVIDER,
99
+ useExisting: FrSidebarProvider,
100
+ },
101
+ ], exportAs: ["frSidebarProvider"], ngImport: i0 });
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarProvider, decorators: [{
104
+ type: Directive,
105
+ args: [{
106
+ selector: '[frSidebarProvider], frame-sidebar-provider',
107
+ exportAs: 'frSidebarProvider',
108
+ providers: [
109
+ {
110
+ provide: FR_SIDEBAR_PROVIDER,
111
+ useExisting: FrSidebarProvider,
112
+ },
113
+ ],
114
+ host: {
115
+ class: 'frame-sidebar-provider',
116
+ '[attr.data-state]': 'state()',
117
+ '[attr.data-open]': 'open()',
118
+ '[attr.data-mobile-open]': 'openMobile()',
119
+ '[attr.data-mobile]': 'isMobile() ? "" : null',
120
+ '[attr.data-resizing]': 'resizing() ? "" : null',
121
+ },
122
+ }]
123
+ }], ctorParameters: () => [], propDecorators: { defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], openInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], openMobileChange: [{ type: i0.Output, args: ["openMobileChange"] }], shortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortcut", required: false }] }], keyboardShortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyboardShortcut", required: false }] }], handleKeydown: [{
124
+ type: HostListener,
125
+ args: ['document:keydown', ['$event']]
126
+ }] } });
127
+ class FrSidebar {
128
+ elementRef = inject(ElementRef);
129
+ provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
130
+ side = input('left', { ...(ngDevMode ? { debugName: "side" } : /* istanbul ignore next */ {}), transform: coerceSide });
131
+ variant = input('sidebar', { ...(ngDevMode ? { debugName: "variant" } : /* istanbul ignore next */ {}), transform: coerceVariant });
132
+ collapsible = input('offcanvas', { ...(ngDevMode ? { debugName: "collapsible" } : /* istanbul ignore next */ {}), transform: coerceCollapsible });
133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
134
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebar, isStandalone: true, selector: "[frSidebar], frame-sidebar", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-side": "side()", "attr.data-variant": "variant()", "attr.data-collapsible": "collapsible()", "attr.data-state": "provider?.state() ?? \"expanded\"", "attr.data-mobile-open": "provider?.openMobile() ?? false" }, classAttribute: "frame-sidebar" }, ngImport: i0 });
135
+ }
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebar, decorators: [{
137
+ type: Directive,
138
+ args: [{
139
+ selector: '[frSidebar], frame-sidebar',
140
+ host: {
141
+ class: 'frame-sidebar',
142
+ '[attr.data-side]': 'side()',
143
+ '[attr.data-variant]': 'variant()',
144
+ '[attr.data-collapsible]': 'collapsible()',
145
+ '[attr.data-state]': 'provider?.state() ?? "expanded"',
146
+ '[attr.data-mobile-open]': 'provider?.openMobile() ?? false',
147
+ },
148
+ }]
149
+ }], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }] } });
150
+ class FrSidebarTrigger {
151
+ provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
152
+ ariaLabel = input('Toggle sidebar', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
153
+ toggle() {
154
+ this.provider?.toggleSidebar();
155
+ }
156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
157
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarTrigger, isStandalone: true, selector: "[frSidebarTrigger]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-expanded": "provider?.open() ?? true", "attr.aria-label": "ariaLabel()" }, classAttribute: "frame-sidebar__trigger" }, ngImport: i0 });
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarTrigger, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ selector: '[frSidebarTrigger]',
163
+ host: {
164
+ class: 'frame-sidebar__trigger',
165
+ type: 'button',
166
+ '[attr.aria-expanded]': 'provider?.open() ?? true',
167
+ '[attr.aria-label]': 'ariaLabel()',
168
+ '(click)': 'toggle()',
169
+ },
170
+ }]
171
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
172
+ class FrSidebarRail {
173
+ document = inject(DOCUMENT);
174
+ sidebar = inject(FrSidebar, { optional: true });
175
+ startX = 0;
176
+ startWidth = 0;
177
+ dragging = false;
178
+ suppressClick = false;
179
+ frameId = -1;
180
+ pendingWidth = 0;
181
+ provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
182
+ toggle() {
183
+ if (this.suppressClick) {
184
+ return;
185
+ }
186
+ this.provider?.toggleSidebar();
187
+ }
188
+ startResize(event) {
189
+ if (!this.sidebar || !this.provider || this.provider.isMobile()) {
190
+ return;
191
+ }
192
+ this.startX = event.clientX;
193
+ this.startWidth = this.sidebar.elementRef.nativeElement.getBoundingClientRect().width;
194
+ this.dragging = false;
195
+ this.pendingWidth = this.startWidth;
196
+ this.provider.setResizing(true);
197
+ event.preventDefault();
198
+ const move = (moveEvent) => this.resize(moveEvent);
199
+ const up = () => {
200
+ this.document.removeEventListener('pointermove', move);
201
+ this.document.removeEventListener('pointerup', up);
202
+ this.flushResize();
203
+ this.provider?.setResizing(false);
204
+ this.suppressClick = this.dragging;
205
+ this.dragging = false;
206
+ this.pendingWidth = 0;
207
+ setTimeout(() => {
208
+ this.suppressClick = false;
209
+ });
210
+ };
211
+ this.document.addEventListener('pointermove', move);
212
+ this.document.addEventListener('pointerup', up, { once: true });
213
+ }
214
+ resize(event) {
215
+ if (!this.sidebar || !this.provider) {
216
+ return;
217
+ }
218
+ const delta = event.clientX - this.startX;
219
+ const direction = this.sidebar.side() === 'right' ? -1 : 1;
220
+ const nextWidth = Math.min(Math.max(this.startWidth + delta * direction, 192), 384);
221
+ if (Math.abs(delta) > 3) {
222
+ this.dragging = true;
223
+ }
224
+ this.pendingWidth = nextWidth;
225
+ if (this.frameId !== -1) {
226
+ return;
227
+ }
228
+ this.frameId = requestAnimationFrame(() => {
229
+ this.provider?.setSidebarWidth(this.pendingWidth);
230
+ this.frameId = -1;
231
+ });
232
+ }
233
+ flushResize() {
234
+ if (this.frameId !== -1) {
235
+ cancelAnimationFrame(this.frameId);
236
+ this.frameId = -1;
237
+ }
238
+ if (this.pendingWidth) {
239
+ this.provider?.setSidebarWidth(this.pendingWidth);
240
+ }
241
+ }
242
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarRail, deps: [], target: i0.ɵɵFactoryTarget.Directive });
243
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarRail, isStandalone: true, selector: "[frSidebarRail], frame-sidebar-rail", host: { attributes: { "role": "separator", "tabindex": "0", "aria-label": "Resize sidebar", "aria-orientation": "vertical" }, listeners: { "click": "toggle()", "pointerdown": "startResize($event)", "keydown.enter": "toggle()", "keydown.space": "toggle(); $event.preventDefault()" }, classAttribute: "frame-sidebar__rail" }, ngImport: i0 });
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarRail, decorators: [{
246
+ type: Directive,
247
+ args: [{
248
+ selector: '[frSidebarRail], frame-sidebar-rail',
249
+ host: {
250
+ class: 'frame-sidebar__rail',
251
+ role: 'separator',
252
+ tabindex: '0',
253
+ 'aria-label': 'Resize sidebar',
254
+ 'aria-orientation': 'vertical',
255
+ '(click)': 'toggle()',
256
+ '(pointerdown)': 'startResize($event)',
257
+ '(keydown.enter)': 'toggle()',
258
+ '(keydown.space)': 'toggle(); $event.preventDefault()',
259
+ },
260
+ }]
261
+ }] });
262
+ class FrSidebarInset {
263
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarInset, deps: [], target: i0.ɵɵFactoryTarget.Directive });
264
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarInset, isStandalone: true, selector: "[frSidebarInset], frame-sidebar-inset", host: { classAttribute: "frame-sidebar-inset" }, ngImport: i0 });
265
+ }
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarInset, decorators: [{
267
+ type: Directive,
268
+ args: [{
269
+ selector: '[frSidebarInset], frame-sidebar-inset',
270
+ host: {
271
+ class: 'frame-sidebar-inset',
272
+ },
273
+ }]
274
+ }] });
275
+ class FrSidebarHeader {
276
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
277
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarHeader, isStandalone: true, selector: "[frSidebarHeader], frame-sidebar-header", host: { classAttribute: "frame-sidebar__header" }, ngImport: i0 });
278
+ }
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarHeader, decorators: [{
280
+ type: Directive,
281
+ args: [{
282
+ selector: '[frSidebarHeader], frame-sidebar-header',
283
+ host: {
284
+ class: 'frame-sidebar__header',
285
+ },
286
+ }]
287
+ }] });
288
+ class FrSidebarFooter {
289
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
290
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarFooter, isStandalone: true, selector: "[frSidebarFooter], frame-sidebar-footer", host: { classAttribute: "frame-sidebar__footer" }, ngImport: i0 });
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarFooter, decorators: [{
293
+ type: Directive,
294
+ args: [{
295
+ selector: '[frSidebarFooter], frame-sidebar-footer',
296
+ host: {
297
+ class: 'frame-sidebar__footer',
298
+ },
299
+ }]
300
+ }] });
301
+ class FrSidebarContent {
302
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
303
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarContent, isStandalone: true, selector: "[frSidebarContent], frame-sidebar-content", host: { classAttribute: "frame-sidebar__content" }, ngImport: i0 });
304
+ }
305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarContent, decorators: [{
306
+ type: Directive,
307
+ args: [{
308
+ selector: '[frSidebarContent], frame-sidebar-content',
309
+ host: {
310
+ class: 'frame-sidebar__content',
311
+ },
312
+ }]
313
+ }] });
314
+ class FrSidebarGroup {
315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
316
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroup, isStandalone: true, selector: "[frSidebarGroup], frame-sidebar-group", host: { classAttribute: "frame-sidebar__group" }, ngImport: i0 });
317
+ }
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroup, decorators: [{
319
+ type: Directive,
320
+ args: [{
321
+ selector: '[frSidebarGroup], frame-sidebar-group',
322
+ host: {
323
+ class: 'frame-sidebar__group',
324
+ },
325
+ }]
326
+ }] });
327
+ class FrSidebarGroupLabel {
328
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
329
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupLabel, isStandalone: true, selector: "[frSidebarGroupLabel], frame-sidebar-group-label", host: { classAttribute: "frame-sidebar__group-label" }, ngImport: i0 });
330
+ }
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupLabel, decorators: [{
332
+ type: Directive,
333
+ args: [{
334
+ selector: '[frSidebarGroupLabel], frame-sidebar-group-label',
335
+ host: {
336
+ class: 'frame-sidebar__group-label',
337
+ },
338
+ }]
339
+ }] });
340
+ class FrSidebarGroupAction {
341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
342
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupAction, isStandalone: true, selector: "[frSidebarGroupAction], frame-sidebar-group-action", host: { attributes: { "type": "button" }, classAttribute: "frame-sidebar__group-action" }, ngImport: i0 });
343
+ }
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupAction, decorators: [{
345
+ type: Directive,
346
+ args: [{
347
+ selector: '[frSidebarGroupAction], frame-sidebar-group-action',
348
+ host: {
349
+ class: 'frame-sidebar__group-action',
350
+ type: 'button',
351
+ },
352
+ }]
353
+ }] });
354
+ class FrSidebarGroupContent {
355
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
356
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupContent, isStandalone: true, selector: "[frSidebarGroupContent], frame-sidebar-group-content", host: { classAttribute: "frame-sidebar__group-content" }, ngImport: i0 });
357
+ }
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupContent, decorators: [{
359
+ type: Directive,
360
+ args: [{
361
+ selector: '[frSidebarGroupContent], frame-sidebar-group-content',
362
+ host: {
363
+ class: 'frame-sidebar__group-content',
364
+ },
365
+ }]
366
+ }] });
367
+ class FrSidebarMenu {
368
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
369
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenu, isStandalone: true, selector: "[frSidebarMenu], frame-sidebar-menu", host: { attributes: { "role": "list" }, classAttribute: "frame-sidebar__menu" }, ngImport: i0 });
370
+ }
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenu, decorators: [{
372
+ type: Directive,
373
+ args: [{
374
+ selector: '[frSidebarMenu], frame-sidebar-menu',
375
+ host: {
376
+ class: 'frame-sidebar__menu',
377
+ role: 'list',
378
+ },
379
+ }]
380
+ }] });
381
+ class FrSidebarMenuItem {
382
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
383
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuItem, isStandalone: true, selector: "[frSidebarMenuItem], frame-sidebar-menu-item", host: { attributes: { "role": "listitem" }, classAttribute: "frame-sidebar__menu-item" }, ngImport: i0 });
384
+ }
385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuItem, decorators: [{
386
+ type: Directive,
387
+ args: [{
388
+ selector: '[frSidebarMenuItem], frame-sidebar-menu-item',
389
+ host: {
390
+ class: 'frame-sidebar__menu-item',
391
+ role: 'listitem',
392
+ },
393
+ }]
394
+ }] });
395
+ class FrSidebarMenuButton {
396
+ active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
397
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
398
+ size = input('default', { ...(ngDevMode ? { debugName: "size" } : /* istanbul ignore next */ {}), transform: coerceMenuButtonSize });
399
+ variant = input('default', { ...(ngDevMode ? { debugName: "variant" } : /* istanbul ignore next */ {}), transform: coerceMenuButtonVariant });
400
+ tooltip = input(null, ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
401
+ handleClick(event) {
402
+ if (this.disabled()) {
403
+ event.preventDefault();
404
+ event.stopPropagation();
405
+ }
406
+ }
407
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
408
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarMenuButton, isStandalone: true, selector: "[frSidebarMenuButton], a[frSidebarMenuButton], button[frSidebarMenuButton]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick($event)" }, properties: { "attr.data-active": "active() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.tabindex": "disabled() ? -1 : null" }, classAttribute: "frame-sidebar__menu-button" }, ngImport: i0 });
409
+ }
410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuButton, decorators: [{
411
+ type: Directive,
412
+ args: [{
413
+ selector: '[frSidebarMenuButton], a[frSidebarMenuButton], button[frSidebarMenuButton]',
414
+ host: {
415
+ class: 'frame-sidebar__menu-button',
416
+ '[attr.data-active]': 'active() ? "" : null',
417
+ '[attr.data-disabled]': 'disabled() ? "" : null',
418
+ '[attr.data-size]': 'size()',
419
+ '[attr.data-variant]': 'variant()',
420
+ '[attr.aria-disabled]': 'disabled() ? "true" : null',
421
+ '[attr.tabindex]': 'disabled() ? -1 : null',
422
+ '(click)': 'handleClick($event)',
423
+ },
424
+ }]
425
+ }], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }] } });
426
+ class FrSidebarMenuAction {
427
+ showOnHover = input(false, { ...(ngDevMode ? { debugName: "showOnHover" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
429
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarMenuAction, isStandalone: true, selector: "[frSidebarMenuAction], frame-sidebar-menu-action", inputs: { showOnHover: { classPropertyName: "showOnHover", publicName: "showOnHover", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "attr.data-show-on-hover": "showOnHover() ? \"\" : null" }, classAttribute: "frame-sidebar__menu-action" }, ngImport: i0 });
430
+ }
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuAction, decorators: [{
432
+ type: Directive,
433
+ args: [{
434
+ selector: '[frSidebarMenuAction], frame-sidebar-menu-action',
435
+ host: {
436
+ class: 'frame-sidebar__menu-action',
437
+ type: 'button',
438
+ '[attr.data-show-on-hover]': 'showOnHover() ? "" : null',
439
+ },
440
+ }]
441
+ }], propDecorators: { showOnHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOnHover", required: false }] }] } });
442
+ class FrSidebarMenuBadge {
443
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuBadge, deps: [], target: i0.ɵɵFactoryTarget.Directive });
444
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuBadge, isStandalone: true, selector: "[frSidebarMenuBadge], frame-sidebar-menu-badge", host: { classAttribute: "frame-sidebar__menu-badge" }, ngImport: i0 });
445
+ }
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuBadge, decorators: [{
447
+ type: Directive,
448
+ args: [{
449
+ selector: '[frSidebarMenuBadge], frame-sidebar-menu-badge',
450
+ host: {
451
+ class: 'frame-sidebar__menu-badge',
452
+ },
453
+ }]
454
+ }] });
455
+ class FrSidebarMenuSub {
456
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSub, deps: [], target: i0.ɵɵFactoryTarget.Directive });
457
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuSub, isStandalone: true, selector: "[frSidebarMenuSub], frame-sidebar-menu-sub", host: { attributes: { "role": "list" }, classAttribute: "frame-sidebar__menu-sub" }, ngImport: i0 });
458
+ }
459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSub, decorators: [{
460
+ type: Directive,
461
+ args: [{
462
+ selector: '[frSidebarMenuSub], frame-sidebar-menu-sub',
463
+ host: {
464
+ class: 'frame-sidebar__menu-sub',
465
+ role: 'list',
466
+ },
467
+ }]
468
+ }] });
469
+ class FrSidebarMenuSubItem {
470
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSubItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
471
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuSubItem, isStandalone: true, selector: "[frSidebarMenuSubItem], frame-sidebar-menu-sub-item", host: { attributes: { "role": "listitem" }, classAttribute: "frame-sidebar__menu-sub-item" }, ngImport: i0 });
472
+ }
473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSubItem, decorators: [{
474
+ type: Directive,
475
+ args: [{
476
+ selector: '[frSidebarMenuSubItem], frame-sidebar-menu-sub-item',
477
+ host: {
478
+ class: 'frame-sidebar__menu-sub-item',
479
+ role: 'listitem',
480
+ },
481
+ }]
482
+ }] });
483
+ class FrSidebarMenuSubButton {
484
+ active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
485
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
486
+ handleClick(event) {
487
+ if (this.disabled()) {
488
+ event.preventDefault();
489
+ event.stopPropagation();
490
+ }
491
+ }
492
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSubButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
493
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarMenuSubButton, isStandalone: true, selector: "[frSidebarMenuSubButton], a[frSidebarMenuSubButton], button[frSidebarMenuSubButton]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick($event)" }, properties: { "attr.data-active": "active() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null" }, classAttribute: "frame-sidebar__menu-sub-button" }, ngImport: i0 });
494
+ }
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSubButton, decorators: [{
496
+ type: Directive,
497
+ args: [{
498
+ selector: '[frSidebarMenuSubButton], a[frSidebarMenuSubButton], button[frSidebarMenuSubButton]',
499
+ host: {
500
+ class: 'frame-sidebar__menu-sub-button',
501
+ '[attr.data-active]': 'active() ? "" : null',
502
+ '[attr.data-disabled]': 'disabled() ? "" : null',
503
+ '[attr.aria-disabled]': 'disabled() ? "true" : null',
504
+ '(click)': 'handleClick($event)',
505
+ },
506
+ }]
507
+ }], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
508
+ class FrSidebarMenuSkeleton {
509
+ showIcon = input(false, { ...(ngDevMode ? { debugName: "showIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
510
+ width = input('72%', ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
511
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
512
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarMenuSkeleton, isStandalone: true, selector: "[frSidebarMenuSkeleton], frame-sidebar-menu-skeleton", inputs: { showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-show-icon": "showIcon() ? \"\" : null", "style.--frame-sidebar-skeleton-width": "width()" }, classAttribute: "frame-sidebar__menu-skeleton" }, ngImport: i0 });
513
+ }
514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSkeleton, decorators: [{
515
+ type: Directive,
516
+ args: [{
517
+ selector: '[frSidebarMenuSkeleton], frame-sidebar-menu-skeleton',
518
+ host: {
519
+ class: 'frame-sidebar__menu-skeleton',
520
+ '[attr.data-show-icon]': 'showIcon() ? "" : null',
521
+ '[style.--frame-sidebar-skeleton-width]': 'width()',
522
+ },
523
+ }]
524
+ }], propDecorators: { showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
525
+
526
+ class FrSidebarModule {
527
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
528
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarModule, imports: [FrSidebar,
529
+ FrSidebarContent,
530
+ FrSidebarFooter,
531
+ FrSidebarGroup,
532
+ FrSidebarGroupAction,
533
+ FrSidebarGroupContent,
534
+ FrSidebarGroupLabel,
535
+ FrSidebarHeader,
536
+ FrSidebarInset,
537
+ FrSidebarMenu,
538
+ FrSidebarMenuAction,
539
+ FrSidebarMenuBadge,
540
+ FrSidebarMenuButton,
541
+ FrSidebarMenuItem,
542
+ FrSidebarMenuSkeleton,
543
+ FrSidebarMenuSub,
544
+ FrSidebarMenuSubButton,
545
+ FrSidebarMenuSubItem,
546
+ FrSidebarProvider,
547
+ FrSidebarRail,
548
+ FrSidebarTrigger], exports: [FrSidebar,
549
+ FrSidebarContent,
550
+ FrSidebarFooter,
551
+ FrSidebarGroup,
552
+ FrSidebarGroupAction,
553
+ FrSidebarGroupContent,
554
+ FrSidebarGroupLabel,
555
+ FrSidebarHeader,
556
+ FrSidebarInset,
557
+ FrSidebarMenu,
558
+ FrSidebarMenuAction,
559
+ FrSidebarMenuBadge,
560
+ FrSidebarMenuButton,
561
+ FrSidebarMenuItem,
562
+ FrSidebarMenuSkeleton,
563
+ FrSidebarMenuSub,
564
+ FrSidebarMenuSubButton,
565
+ FrSidebarMenuSubItem,
566
+ FrSidebarProvider,
567
+ FrSidebarRail,
568
+ FrSidebarTrigger] });
569
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarModule });
570
+ }
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarModule, decorators: [{
572
+ type: NgModule,
573
+ args: [{
574
+ imports: [
575
+ FrSidebar,
576
+ FrSidebarContent,
577
+ FrSidebarFooter,
578
+ FrSidebarGroup,
579
+ FrSidebarGroupAction,
580
+ FrSidebarGroupContent,
581
+ FrSidebarGroupLabel,
582
+ FrSidebarHeader,
583
+ FrSidebarInset,
584
+ FrSidebarMenu,
585
+ FrSidebarMenuAction,
586
+ FrSidebarMenuBadge,
587
+ FrSidebarMenuButton,
588
+ FrSidebarMenuItem,
589
+ FrSidebarMenuSkeleton,
590
+ FrSidebarMenuSub,
591
+ FrSidebarMenuSubButton,
592
+ FrSidebarMenuSubItem,
593
+ FrSidebarProvider,
594
+ FrSidebarRail,
595
+ FrSidebarTrigger,
596
+ ],
597
+ exports: [
598
+ FrSidebar,
599
+ FrSidebarContent,
600
+ FrSidebarFooter,
601
+ FrSidebarGroup,
602
+ FrSidebarGroupAction,
603
+ FrSidebarGroupContent,
604
+ FrSidebarGroupLabel,
605
+ FrSidebarHeader,
606
+ FrSidebarInset,
607
+ FrSidebarMenu,
608
+ FrSidebarMenuAction,
609
+ FrSidebarMenuBadge,
610
+ FrSidebarMenuButton,
611
+ FrSidebarMenuItem,
612
+ FrSidebarMenuSkeleton,
613
+ FrSidebarMenuSub,
614
+ FrSidebarMenuSubButton,
615
+ FrSidebarMenuSubItem,
616
+ FrSidebarProvider,
617
+ FrSidebarRail,
618
+ FrSidebarTrigger,
619
+ ],
620
+ }]
621
+ }] });
622
+
623
+ /**
624
+ * Generated bundle index. Do not edit.
625
+ */
626
+
627
+ export { FR_SIDEBAR_COLLAPSIBLES, FR_SIDEBAR_MENU_BUTTON_SIZES, FR_SIDEBAR_MENU_BUTTON_VARIANTS, FR_SIDEBAR_PROVIDER, FR_SIDEBAR_SIDES, FR_SIDEBAR_VARIANTS, FrSidebar, FrSidebarContent, FrSidebarFooter, FrSidebarGroup, FrSidebarGroupAction, FrSidebarGroupContent, FrSidebarGroupLabel, FrSidebarHeader, FrSidebarInset, FrSidebarMenu, FrSidebarMenuAction, FrSidebarMenuBadge, FrSidebarMenuButton, FrSidebarMenuItem, FrSidebarMenuSkeleton, FrSidebarMenuSub, FrSidebarMenuSubButton, FrSidebarMenuSubItem, FrSidebarModule, FrSidebarProvider, FrSidebarRail, FrSidebarTrigger };
628
+ //# sourceMappingURL=frame-ui-ng-components-sidebar.mjs.map