@koobiq/components 19.4.1 → 19.6.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 (242) hide show
  1. package/LICENSE +1 -1
  2. package/accordion/accordion-content.d.ts +1 -1
  3. package/accordion/accordion-content.directive.d.ts +22 -7
  4. package/accordion/accordion-header.directive.d.ts +2 -2
  5. package/accordion/accordion-item.d.ts +74 -3
  6. package/accordion/accordion-trigger.component.d.ts +15 -2
  7. package/accordion/accordion-trigger.directive.d.ts +13 -5
  8. package/accordion/accordion.component.d.ts +67 -6
  9. package/accordion/accordion.component.scss +9 -27
  10. package/accordion/public-api.d.ts +0 -2
  11. package/actions-panel/actions-panel-container.scss +6 -0
  12. package/actions-panel/actions-panel-tokens.scss +4 -1
  13. package/autocomplete/autocomplete.component.d.ts +6 -1
  14. package/autocomplete/autocomplete.module.d.ts +1 -1
  15. package/autocomplete/autocomplete.scss +14 -3
  16. package/badge/badge-tokens.scss +3 -3
  17. package/button/button-group.d.ts +45 -0
  18. package/button/button-group.scss +17 -0
  19. package/button/button.component.d.ts +3 -0
  20. package/button/button.module.d.ts +2 -1
  21. package/button/public-api.d.ts +1 -0
  22. package/button-toggle/button-toggle-tokens.scss +1 -1
  23. package/checkbox/checkbox.d.ts +5 -4
  24. package/checkbox/checkbox.scss +5 -5
  25. package/clamped-text/clamped-list.d.ts +41 -0
  26. package/clamped-text/clamped-text.d.ts +10 -6
  27. package/clamped-text/constants.d.ts +21 -1
  28. package/clamped-text/index.d.ts +1 -0
  29. package/clamped-text/module.d.ts +2 -1
  30. package/code-block/code-block-tokens.scss +35 -16
  31. package/code-block/code-block.d.ts +17 -5
  32. package/code-block/code-block.module.d.ts +1 -1
  33. package/code-block/code-block.scss +1 -0
  34. package/code-block/types.d.ts +9 -0
  35. package/core/common-behaviors/flex.d.ts +4 -0
  36. package/core/common-behaviors/index.d.ts +1 -0
  37. package/core/error/error-state-matcher.d.ts +10 -0
  38. package/core/form-field/form-field-ref.d.ts +3 -1
  39. package/core/forms/_forms.scss +10 -3
  40. package/core/locales/en-US.d.ts +2 -0
  41. package/core/locales/es-LA.d.ts +2 -0
  42. package/core/locales/locale-service.d.ts +10 -0
  43. package/core/locales/pt-BR.d.ts +2 -0
  44. package/core/locales/ru-RU.d.ts +2 -0
  45. package/core/locales/tk-TM.d.ts +2 -0
  46. package/core/locales/types.d.ts +2 -0
  47. package/core/option/_option-action-theme.scss +1 -0
  48. package/core/option/_option-theme.scss +4 -17
  49. package/core/option/action-container.scss +4 -6
  50. package/core/option/option.d.ts +5 -1
  51. package/core/option/option.scss +5 -0
  52. package/core/pop-up/pop-up-trigger.d.ts +11 -2
  53. package/core/select/common.d.ts +4 -4
  54. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +2 -2
  55. package/core/styles/common/_groups-mixins.scss +79 -0
  56. package/core/styles/common/_groups.scss +4 -34
  57. package/core/styles/common/_overlay.scss +5 -1
  58. package/core/styles/common/_select.scss +4 -0
  59. package/core/styles/theming/scrollbar-tokens.scss +6 -6
  60. package/core/styles/visual/_layout.scss +0 -2
  61. package/core/utils/utils.d.ts +2 -0
  62. package/datepicker/datepicker-input.directive.d.ts +1 -0
  63. package/dropdown/dropdown-trigger.directive.d.ts +5 -0
  64. package/dropdown/dropdown.component.d.ts +2 -1
  65. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -1
  66. package/fesm2022/koobiq-components-accordion.mjs +301 -237
  67. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-actions-panel.mjs +12 -12
  69. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-alert.mjs +16 -16
  71. package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
  72. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-autocomplete.mjs +39 -23
  74. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-badge.mjs +14 -14
  76. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  78. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-button-toggle.mjs +12 -12
  80. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-button.mjs +146 -24
  82. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-checkbox.mjs +18 -20
  84. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-clamped-text.mjs +134 -47
  86. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-code-block.mjs +54 -22
  88. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  90. package/fesm2022/koobiq-components-core.mjs +313 -257
  91. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-datepicker.mjs +40 -64
  93. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-divider.mjs +7 -7
  95. package/fesm2022/koobiq-components-dl.mjs +13 -13
  96. package/fesm2022/koobiq-components-dropdown.mjs +48 -23
  97. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  99. package/fesm2022/koobiq-components-ellipsis-center.mjs +8 -9
  100. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  102. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  103. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-filter-bar.mjs +118 -106
  105. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-form-field.mjs +77 -65
  107. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-icon.mjs +32 -28
  109. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-inline-edit.mjs +115 -65
  111. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-input.mjs +28 -26
  113. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-link.mjs +23 -17
  115. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-list.mjs +19 -19
  117. package/fesm2022/koobiq-components-loader-overlay.mjs +28 -19
  118. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-markdown.mjs +54 -22
  120. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-modal.mjs +96 -63
  122. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  124. package/fesm2022/koobiq-components-navbar.mjs +53 -46
  125. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  127. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-overflow-items.mjs +29 -17
  129. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-popover.mjs +52 -23
  131. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  133. package/fesm2022/koobiq-components-progress-spinner.mjs +14 -14
  134. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-radio.mjs +10 -10
  136. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  137. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  138. package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
  139. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-search-expandable.mjs +17 -8
  141. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-select.mjs +342 -58
  143. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  145. package/fesm2022/koobiq-components-sidepanel.mjs +50 -41
  146. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-skeleton.mjs +62 -13
  148. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-split-button.mjs +9 -9
  150. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  152. package/fesm2022/koobiq-components-table.mjs +10 -10
  153. package/fesm2022/koobiq-components-tabs.mjs +54 -54
  154. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-tags.mjs +44 -47
  156. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-textarea.mjs +10 -9
  158. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-time-range.mjs +25 -25
  160. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  162. package/fesm2022/koobiq-components-timezone.mjs +26 -26
  163. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-title.mjs +8 -9
  165. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-toast.mjs +16 -16
  167. package/fesm2022/koobiq-components-toggle.mjs +12 -9
  168. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-tooltip.mjs +95 -52
  170. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-top-bar.mjs +15 -15
  172. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-tree-select.mjs +15 -12
  174. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-tree.mjs +64 -52
  176. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-username.mjs +28 -28
  178. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  179. package/filter-bar/filter-search.d.ts +10 -1
  180. package/filter-bar/pipes/pipe-date.scss +5 -16
  181. package/form-field/form-field.d.ts +25 -1
  182. package/form-field/form-field.scss +26 -2
  183. package/icon/icon-button.component.d.ts +3 -0
  184. package/icon/icon-button.scss +4 -0
  185. package/inline-edit/inline-edit-tokens.scss +3 -3
  186. package/inline-edit/inline-edit.d.ts +31 -11
  187. package/inline-edit/inline-edit.scss +28 -30
  188. package/input/input-password.d.ts +1 -0
  189. package/input/input.d.ts +1 -0
  190. package/link/_link-theme.scss +18 -8
  191. package/link/link-tokens.scss +9 -6
  192. package/link/link.component.d.ts +9 -5
  193. package/loader-overlay/_loader-overlay-theme.scss +12 -0
  194. package/loader-overlay/loader-overlay-tokens.scss +1 -0
  195. package/loader-overlay/loader-overlay.component.d.ts +7 -1
  196. package/markdown/_markdown-theme.scss +3 -31
  197. package/markdown/markdown-tokens.scss +0 -11
  198. package/markdown/markdown.component.d.ts +12 -7
  199. package/markdown/markdown.scss +0 -11
  200. package/modal/modal-ref.class.d.ts +1 -0
  201. package/modal/modal.component.d.ts +14 -8
  202. package/modal/modal.scss +1 -0
  203. package/modal/modal.type.d.ts +5 -0
  204. package/navbar/navbar-item.component.d.ts +3 -1
  205. package/navbar/navbar.scss +3 -0
  206. package/overflow-items/overflow-items.d.ts +8 -2
  207. package/package.json +4 -5
  208. package/popover/popover.component.d.ts +15 -2
  209. package/prebuilt-themes/dark-theme.css +1 -1
  210. package/prebuilt-themes/light-theme.css +1 -1
  211. package/prebuilt-themes/theme.css +1 -1
  212. package/progress-spinner/progress-spinner.scss +1 -0
  213. package/schematics/ng-add/index.js +4 -6
  214. package/scrollbar/scrollbar-tokens.scss +7 -7
  215. package/search-expandable/search-expandable.d.ts +6 -2
  216. package/select/public-api.d.ts +1 -0
  217. package/select/select-common.d.ts +30 -0
  218. package/select/select.component.d.ts +193 -29
  219. package/select/select.module.d.ts +3 -2
  220. package/sidepanel/_sidepanel-theme.scss +1 -7
  221. package/sidepanel/sidepanel-config.d.ts +10 -2
  222. package/sidepanel/sidepanel.service.d.ts +0 -1
  223. package/skeleton/skeleton.d.ts +12 -3
  224. package/skeleton/skeleton.scss +22 -7
  225. package/split-button/_split-button-theme.scss +2 -1
  226. package/tabs/_tabs-common.scss +2 -1
  227. package/tags/tag-input.d.ts +4 -3
  228. package/tags/tag-list.component.d.ts +1 -0
  229. package/tags/tag-tokens.scss +4 -4
  230. package/textarea/textarea.component.d.ts +1 -0
  231. package/title/title.directive.d.ts +0 -1
  232. package/toggle/toggle.component.d.ts +4 -3
  233. package/tooltip/tooltip-tokens.scss +4 -4
  234. package/tooltip/tooltip.component.d.ts +22 -2
  235. package/top-bar/top-bar.scss +3 -0
  236. package/tree/_tree-theme.scss +0 -19
  237. package/tree/tree-option.component.d.ts +9 -3
  238. package/tree/tree-option.scss +9 -5
  239. package/tree/tree-selection.component.d.ts +2 -0
  240. package/tree-select/tree-select.component.d.ts +1 -0
  241. package/accordion/accordion-item.directive.d.ts +0 -72
  242. package/accordion/accordion-root.directive.d.ts +0 -64
@@ -85,11 +85,11 @@ class KbqUsernamePipe {
85
85
  });
86
86
  return result.trim();
87
87
  }
88
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
89
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, isStandalone: true, name: "kbqUsername" }); }
90
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, providedIn: 'root' }); }
88
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
89
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePipe, isStandalone: true, name: "kbqUsername" }); }
90
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePipe, providedIn: 'root' }); }
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePipe, decorators: [{
93
93
  type: Injectable,
94
94
  args: [{ providedIn: 'root' }]
95
95
  }, {
@@ -129,11 +129,11 @@ class KbqUsernameCustomPipe {
129
129
  });
130
130
  return result.trim();
131
131
  }
132
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
133
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, isStandalone: true, name: "kbqUsernameCustom" }); }
134
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, providedIn: 'root' }); }
132
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
133
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomPipe, isStandalone: true, name: "kbqUsernameCustom" }); }
134
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomPipe, providedIn: 'root' }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomPipe, decorators: [{
137
137
  type: Injectable,
138
138
  args: [{ providedIn: 'root' }]
139
139
  }, {
@@ -147,10 +147,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
147
147
  const baseClass = 'kbq-username';
148
148
  /** Styles the primary part of the username (e.g. full name). */
149
149
  class KbqUsernamePrimary {
150
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePrimary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
151
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernamePrimary, isStandalone: true, selector: "[kbqUsernamePrimary]", host: { classAttribute: "kbq-username__primary" }, exportAs: ["kbqUsernamePrimary"], ngImport: i0 }); }
150
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePrimary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
151
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: KbqUsernamePrimary, isStandalone: true, selector: "[kbqUsernamePrimary]", host: { classAttribute: "kbq-username__primary" }, exportAs: ["kbqUsernamePrimary"], ngImport: i0 }); }
152
152
  }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePrimary, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernamePrimary, decorators: [{
154
154
  type: Directive,
155
155
  args: [{
156
156
  selector: '[kbqUsernamePrimary]',
@@ -162,10 +162,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
162
162
  }] });
163
163
  /** Styles the secondary part. */
164
164
  class KbqUsernameSecondary {
165
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
166
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameSecondary, isStandalone: true, selector: "[kbqUsernameSecondary]", host: { classAttribute: "kbq-username__secondary" }, exportAs: ["kbqUsernameSecondary"], ngImport: i0 }); }
165
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameSecondary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
166
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: KbqUsernameSecondary, isStandalone: true, selector: "[kbqUsernameSecondary]", host: { classAttribute: "kbq-username__secondary" }, exportAs: ["kbqUsernameSecondary"], ngImport: i0 }); }
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondary, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameSecondary, decorators: [{
169
169
  type: Directive,
170
170
  args: [{
171
171
  selector: '[kbqUsernameSecondary]',
@@ -177,10 +177,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
177
177
  }] });
178
178
  /** Styles a secondary hint. */
179
179
  class KbqUsernameSecondaryHint {
180
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondaryHint, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
181
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameSecondaryHint, isStandalone: true, selector: "[kbqUsernameSecondaryHint]", host: { classAttribute: "kbq-username__secondary-hint" }, exportAs: ["kbqUsernameSecondaryHint"], ngImport: i0 }); }
180
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameSecondaryHint, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
181
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: KbqUsernameSecondaryHint, isStandalone: true, selector: "[kbqUsernameSecondaryHint]", host: { classAttribute: "kbq-username__secondary-hint" }, exportAs: ["kbqUsernameSecondaryHint"], ngImport: i0 }); }
182
182
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondaryHint, decorators: [{
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameSecondaryHint, decorators: [{
184
184
  type: Directive,
185
185
  args: [{
186
186
  selector: '[kbqUsernameSecondaryHint]',
@@ -192,10 +192,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
192
192
  }] });
193
193
  /** Custom content for `KbqUsername`, overrides default view. */
194
194
  class KbqUsernameCustomView {
195
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
196
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameCustomView, isStandalone: true, selector: "kbq-username-custom-view, [kbq-username-custom-view]", host: { classAttribute: "kbq-username__custom-view" }, exportAs: ["kbqUsernameCustomView"], ngImport: i0 }); }
195
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
196
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: KbqUsernameCustomView, isStandalone: true, selector: "kbq-username-custom-view, [kbq-username-custom-view]", host: { classAttribute: "kbq-username__custom-view" }, exportAs: ["kbqUsernameCustomView"], ngImport: i0 }); }
197
197
  }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomView, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameCustomView, decorators: [{
199
199
  type: Directive,
200
200
  args: [{
201
201
  selector: 'kbq-username-custom-view, [kbq-username-custom-view]',
@@ -246,10 +246,10 @@ class KbqUsername {
246
246
  return [this.type(), this.mode()].map((modificator) => `${baseClass}_${modificator}`).join(' ');
247
247
  });
248
248
  }
249
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsername, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
250
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqUsername, isStandalone: true, selector: "kbq-username", inputs: { userInfo: { classPropertyName: "userInfo", publicName: "userInfo", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, fullNameFormat: { classPropertyName: "fullNameFormat", publicName: "fullNameFormat", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" }, classAttribute: "kbq-username" }, queries: [{ propertyName: "customView", first: true, predicate: KbqUsernameCustomView, descendants: true, isSignal: true }], exportAs: ["kbqUsername"], ngImport: i0, template: "@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-username{color:var(--kbq-username-primary-color)}.kbq-username .kbq-username__secondary,.kbq-username .kbq-username__secondary-hint{color:var(--kbq-username-secondary-color)}.kbq-username.kbq-username_default .kbq-username__secondary-hint,.kbq-username.kbq-username_default .kbq-username__primary+.kbq-username__secondary{--kbq-username-secondary-color: var(--kbq-foreground-contrast-secondary)}.kbq-username.kbq-username_error{--kbq-username-primary-color: var(--kbq-foreground-error);--kbq-username-secondary-color: var(--kbq-foreground-error)}.kbq-username.kbq-username_accented{--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: var(--kbq-foreground-contrast)}.kbq-username.kbq-username_inherit{--kbq-username-primary-color: inherit;--kbq-username-secondary-color: inherit}.kbq-username{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-username.kbq-username_accented .kbq-username__primary{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_stacked>.kbq-username__custom-view{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:normal;gap:var(--kbq-username-vertical-gap)}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:baseline}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:var(--kbq-username-horizontal-gap)}[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:0;margin-right:var(--kbq-username-horizontal-gap)}.kbq-username.kbq-username_text:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_text>.kbq-username__custom-view{display:inline}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__secondary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-username.kbq-username_inherit:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inherit>.kbq-username__custom-view{font:inherit;display:inherit}\n", ":where(.kbq-username){--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: inherit;--kbq-username-vertical-gap: var(--kbq-size-xxs);--kbq-username-horizontal-gap: var(--kbq-size-xxs)}\n"], dependencies: [{ kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i1.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "pipe", type: KbqUsernamePipe, name: "kbqUsername" }, { kind: "directive", type: KbqUsernamePrimary, selector: "[kbqUsernamePrimary]", exportAs: ["kbqUsernamePrimary"] }, { kind: "directive", type: KbqUsernameSecondary, selector: "[kbqUsernameSecondary]", exportAs: ["kbqUsernameSecondary"] }, { kind: "directive", type: KbqUsernameSecondaryHint, selector: "[kbqUsernameSecondaryHint]", exportAs: ["kbqUsernameSecondaryHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
249
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsername, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
250
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: KbqUsername, isStandalone: true, selector: "kbq-username", inputs: { userInfo: { classPropertyName: "userInfo", publicName: "userInfo", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, fullNameFormat: { classPropertyName: "fullNameFormat", publicName: "fullNameFormat", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" }, classAttribute: "kbq-username" }, queries: [{ propertyName: "customView", first: true, predicate: KbqUsernameCustomView, descendants: true, isSignal: true }], exportAs: ["kbqUsername"], ngImport: i0, template: "@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>kbq-group-item{width:100%}.kbq-group kbq-group-item+kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group kbq-group-item+kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-username{color:var(--kbq-username-primary-color)}.kbq-username .kbq-username__secondary,.kbq-username .kbq-username__secondary-hint{color:var(--kbq-username-secondary-color)}.kbq-username.kbq-username_default .kbq-username__secondary-hint,.kbq-username.kbq-username_default .kbq-username__primary+.kbq-username__secondary{--kbq-username-secondary-color: var(--kbq-foreground-contrast-secondary)}.kbq-username.kbq-username_error{--kbq-username-primary-color: var(--kbq-foreground-error);--kbq-username-secondary-color: var(--kbq-foreground-error)}.kbq-username.kbq-username_accented{--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: var(--kbq-foreground-contrast)}.kbq-username.kbq-username_inherit{--kbq-username-primary-color: inherit;--kbq-username-secondary-color: inherit}.kbq-username{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-username.kbq-username_accented .kbq-username__primary{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_stacked>.kbq-username__custom-view{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:normal;gap:var(--kbq-username-vertical-gap)}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:baseline}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:var(--kbq-username-horizontal-gap)}[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:0;margin-right:var(--kbq-username-horizontal-gap)}.kbq-username.kbq-username_text:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_text>.kbq-username__custom-view{display:inline}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__secondary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-username.kbq-username_inherit:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inherit>.kbq-username__custom-view{font:inherit;display:inherit}\n", ":where(.kbq-username){--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: inherit;--kbq-username-vertical-gap: var(--kbq-size-xxs);--kbq-username-horizontal-gap: var(--kbq-size-xxs)}\n"], dependencies: [{ kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i1.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "pipe", type: KbqUsernamePipe, name: "kbqUsername" }, { kind: "directive", type: KbqUsernamePrimary, selector: "[kbqUsernamePrimary]", exportAs: ["kbqUsernamePrimary"] }, { kind: "directive", type: KbqUsernameSecondary, selector: "[kbqUsernameSecondary]", exportAs: ["kbqUsernameSecondary"] }, { kind: "directive", type: KbqUsernameSecondaryHint, selector: "[kbqUsernameSecondaryHint]", exportAs: ["kbqUsernameSecondaryHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
251
251
  }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsername, decorators: [{
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsername, decorators: [{
253
253
  type: Component,
254
254
  args: [{ selector: 'kbq-username', exportAs: 'kbqUsername', imports: [
255
255
  KbqTitleModule,
@@ -260,7 +260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
260
260
  ], host: {
261
261
  class: baseClass,
262
262
  '[class]': 'class()'
263
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-username{color:var(--kbq-username-primary-color)}.kbq-username .kbq-username__secondary,.kbq-username .kbq-username__secondary-hint{color:var(--kbq-username-secondary-color)}.kbq-username.kbq-username_default .kbq-username__secondary-hint,.kbq-username.kbq-username_default .kbq-username__primary+.kbq-username__secondary{--kbq-username-secondary-color: var(--kbq-foreground-contrast-secondary)}.kbq-username.kbq-username_error{--kbq-username-primary-color: var(--kbq-foreground-error);--kbq-username-secondary-color: var(--kbq-foreground-error)}.kbq-username.kbq-username_accented{--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: var(--kbq-foreground-contrast)}.kbq-username.kbq-username_inherit{--kbq-username-primary-color: inherit;--kbq-username-secondary-color: inherit}.kbq-username{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-username.kbq-username_accented .kbq-username__primary{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_stacked>.kbq-username__custom-view{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:normal;gap:var(--kbq-username-vertical-gap)}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:baseline}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:var(--kbq-username-horizontal-gap)}[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:0;margin-right:var(--kbq-username-horizontal-gap)}.kbq-username.kbq-username_text:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_text>.kbq-username__custom-view{display:inline}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__secondary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-username.kbq-username_inherit:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inherit>.kbq-username__custom-view{font:inherit;display:inherit}\n", ":where(.kbq-username){--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: inherit;--kbq-username-vertical-gap: var(--kbq-size-xxs);--kbq-username-horizontal-gap: var(--kbq-size-xxs)}\n"] }]
263
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>kbq-group-item{width:100%}.kbq-group kbq-group-item+kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group kbq-group-item+kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-username{color:var(--kbq-username-primary-color)}.kbq-username .kbq-username__secondary,.kbq-username .kbq-username__secondary-hint{color:var(--kbq-username-secondary-color)}.kbq-username.kbq-username_default .kbq-username__secondary-hint,.kbq-username.kbq-username_default .kbq-username__primary+.kbq-username__secondary{--kbq-username-secondary-color: var(--kbq-foreground-contrast-secondary)}.kbq-username.kbq-username_error{--kbq-username-primary-color: var(--kbq-foreground-error);--kbq-username-secondary-color: var(--kbq-foreground-error)}.kbq-username.kbq-username_accented{--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: var(--kbq-foreground-contrast)}.kbq-username.kbq-username_inherit{--kbq-username-primary-color: inherit;--kbq-username-secondary-color: inherit}.kbq-username{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-username.kbq-username_accented .kbq-username__primary{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_stacked>.kbq-username__custom-view{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:normal;gap:var(--kbq-username-vertical-gap)}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:baseline}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:var(--kbq-username-horizontal-gap)}[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:0;margin-right:var(--kbq-username-horizontal-gap)}.kbq-username.kbq-username_text:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_text>.kbq-username__custom-view{display:inline}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__secondary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-username.kbq-username_inherit:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inherit>.kbq-username__custom-view{font:inherit;display:inherit}\n", ":where(.kbq-username){--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: inherit;--kbq-username-vertical-gap: var(--kbq-size-xxs);--kbq-username-horizontal-gap: var(--kbq-size-xxs)}\n"] }]
264
264
  }] });
265
265
 
266
266
  const COMPONENTS = [
@@ -272,8 +272,8 @@ const COMPONENTS = [
272
272
  KbqUsernamePipe
273
273
  ];
274
274
  class KbqUsernameModule {
275
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
276
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername,
275
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
276
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername,
277
277
  KbqUsernameCustomView,
278
278
  KbqUsernamePrimary,
279
279
  KbqUsernameSecondary,
@@ -284,9 +284,9 @@ class KbqUsernameModule {
284
284
  KbqUsernameSecondary,
285
285
  KbqUsernameCustomPipe,
286
286
  KbqUsernamePipe] }); }
287
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername] }); }
287
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername] }); }
288
288
  }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, decorators: [{
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqUsernameModule, decorators: [{
290
290
  type: NgModule,
291
291
  args: [{
292
292
  imports: COMPONENTS,
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-username.mjs","sources":["../../../packages/components/username/types.ts","../../../packages/components/username/constants.ts","../../../packages/components/username/username.pipe.ts","../../../packages/components/username/username.ts","../../../packages/components/username/username.html","../../../packages/components/username/module.ts","../../../packages/components/username/koobiq-components-username.ts"],"sourcesContent":["/**\n * Keys for formatting username parts in short (initial) or full form.\n */\nexport enum KbqUsernameFormatKey {\n /**\n * Short form of the first name (e.g., \"John\" → \"J\")\n */\n FirstNameShort = 'f',\n\n /**\n * Full form of the first name (e.g., \"John\")\n */\n FirstNameFull = 'F',\n\n /**\n * Short form of the middle name (e.g., \"Henry\" → \"H\")\n */\n MiddleNameShort = 'm',\n\n /**\n * Full form of the middle name (e.g., \"Henry\")\n */\n MiddleNameFull = 'M',\n\n /**\n * Short form of the last name (e.g., \"Doe\" → \"D\")\n */\n LastNameShort = 'l',\n\n /**\n * Full form of the last name (e.g., \"Doe\")\n */\n LastNameFull = 'L',\n Dot = '.'\n}\n\n/**\n * Maps each format key to a property name in the user profile object.\n * Allows flexible formatting regardless of profile field names.\n */\nexport type KbqFormatKeyToProfileMapping<T = any> = {\n [key in Exclude<\n KbqUsernameFormatKey,\n KbqUsernameFormatKey.FirstNameFull | KbqUsernameFormatKey.MiddleNameFull | KbqUsernameFormatKey.LastNameFull\n >]: keyof T | undefined;\n};\n\n/**\n * Maps each format key to a property name in the user profile object.\n * Allows flexible formatting regardless of profile field names.\n * @see KbqUsernameCustomPipe\n */\nexport type KbqFormatKeyToProfileMappingExtended<T = any> = {\n [key in KbqUsernameFormatKey]: keyof T | undefined;\n};\n\n/**\n * Layout mode for displaying a username and applying text-ellipsis.\n *\n * - `stacked`: Elements shown vertically.\n * - `inline`: Elements shown in one line. Text ellipsis is applied to both parts.\n * - `text`: Plain text, no layout styling. No text-ellipsis.\n */\nexport type KbqUsernameMode = 'stacked' | 'inline' | 'text';\n\n/**\n * Visual style of the username.\n *\n * - `default`: standard styling with primary and secondary colors.\n * - `error`: error colors (e.g., red).\n * - `accented`: no color theming; emphasizes via typography only.\n * - `inherit`: inherits parent styles, no theming. For example, useful when using inside links.\n */\nexport type KbqUsernameStyle = 'default' | 'error' | 'accented' | 'inherit';\n","import { InjectionToken } from '@angular/core';\nimport { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUsernameFormatKey } from './types';\n\n/** Default name format: Last name full, first and middle as initials. */\nexport const kbqDefaultFullNameFormatCustom = 'L f. m.';\n/** Default name format: Last name full, first and middle as initials. */\nexport const kbqDefaultFullNameFormat = 'lf.m.';\n\n/**\n * Throws an error when no profile field mapping is provided to the username pipe.\n * @docs-private\n */\nexport function KbqMappingMissingError() {\n return new Error('KbqUsernamePipe: profile field mapping is required but was not provided.');\n}\n\n/**\n * Injection token for providing a global username format-to-profile mapping.\n */\nexport const KBQ_PROFILE_MAPPING = new InjectionToken<\n KbqFormatKeyToProfileMapping | KbqFormatKeyToProfileMappingExtended\n>('KBQ_PROFILE_MAPPING', {\n factory: () =>\n ({\n [KbqUsernameFormatKey.FirstNameShort]: 'firstName',\n [KbqUsernameFormatKey.MiddleNameShort]: 'middleName',\n [KbqUsernameFormatKey.LastNameShort]: 'lastName',\n [KbqUsernameFormatKey.Dot]: undefined\n }) satisfies KbqFormatKeyToProfileMapping<{ firstName: string; middleName: string; lastName: string }>\n});\n","import { inject, Injectable, Pipe, PipeTransform } from '@angular/core';\nimport {\n KBQ_PROFILE_MAPPING,\n kbqDefaultFullNameFormat,\n kbqDefaultFullNameFormatCustom,\n KbqMappingMissingError\n} from './constants';\nimport { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUsernameFormatKey } from './types';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqUsername',\n pure: true\n})\nexport class KbqUsernamePipe<T = unknown> implements PipeTransform {\n private readonly mapping = inject(KBQ_PROFILE_MAPPING, { optional: true });\n\n /** Builds a formatted name string from the user profile using the provided format and mapping. */\n transform(profile: T, format = kbqDefaultFullNameFormat, customMapping?: KbqFormatKeyToProfileMapping): string {\n const resolvedMapping = customMapping || this.mapping;\n\n if (!resolvedMapping) {\n throw KbqMappingMissingError();\n }\n\n if (!profile || typeof profile !== 'object') return '';\n\n let result = '';\n\n const formatUnits = format.split('');\n\n formatUnits.forEach((letter: KbqUsernameFormatKey | string, index: number, array) => {\n if (letter !== KbqUsernameFormatKey.Dot) {\n const field: keyof T = resolvedMapping[letter];\n const fieldValue = profile[field];\n\n if (fieldValue) {\n const isShort = array[index + 1] === KbqUsernameFormatKey.Dot;\n const resolvedFieldValue = isShort ? `${fieldValue[0]}${KbqUsernameFormatKey.Dot}` : fieldValue;\n\n result += ` ${resolvedFieldValue}`;\n }\n }\n });\n\n return result.trim();\n }\n}\n\n/**\n * Pipe to format a user profile into a name string using a format pattern and field mapping.\n * Lowercase keys output initials; uppercase keys show full values.\n */\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqUsernameCustom',\n pure: true\n})\nexport class KbqUsernameCustomPipe<T = unknown> implements PipeTransform {\n private readonly mapping = inject(KBQ_PROFILE_MAPPING, { optional: true });\n\n /** Builds a formatted name string from the user profile using the provided format and mapping. */\n transform(\n profile: T,\n format = kbqDefaultFullNameFormatCustom,\n customMapping?: KbqFormatKeyToProfileMappingExtended<T>\n ): string {\n const resolvedMapping = customMapping || this.mapping;\n\n if (!resolvedMapping) {\n throw KbqMappingMissingError();\n }\n\n if (!profile || typeof profile !== 'object') return '';\n\n let result = '';\n\n const formatUnits = format.split('');\n\n formatUnits.forEach((letter: KbqUsernameFormatKey | string) => {\n const field: keyof T | undefined = resolvedMapping[letter];\n\n if (!field) {\n result += letter;\n\n return;\n }\n\n const isShort = letter === letter.toLowerCase();\n const fieldValue = profile[field] || '';\n\n result += fieldValue && isShort ? fieldValue[0] : fieldValue;\n });\n\n return result.trim();\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { kbqDefaultFullNameFormat } from './constants';\nimport { KbqUsernameMode, KbqUsernameStyle } from './types';\nimport { KbqUsernamePipe } from './username.pipe';\n\nconst baseClass = 'kbq-username';\n\n/**\n * Basic user info\n * @docs-private\n */\nexport type KbqUserInfo = {\n firstName?: string;\n lastName?: string;\n middleName?: string;\n login?: string;\n site?: string;\n};\n\n/** Styles the primary part of the username (e.g. full name). */\n@Directive({\n selector: '[kbqUsernamePrimary]',\n exportAs: 'kbqUsernamePrimary',\n host: {\n class: `${baseClass}__primary`\n }\n})\nexport class KbqUsernamePrimary {}\n\n/** Styles the secondary part. */\n@Directive({\n selector: '[kbqUsernameSecondary]',\n exportAs: 'kbqUsernameSecondary',\n host: {\n class: `${baseClass}__secondary`\n }\n})\nexport class KbqUsernameSecondary {}\n\n/** Styles a secondary hint. */\n@Directive({\n selector: '[kbqUsernameSecondaryHint]',\n exportAs: 'kbqUsernameSecondaryHint',\n host: {\n class: `${baseClass}__secondary-hint`\n }\n})\nexport class KbqUsernameSecondaryHint {}\n\n/** Custom content for `KbqUsername`, overrides default view. */\n@Directive({\n selector: 'kbq-username-custom-view, [kbq-username-custom-view]',\n exportAs: 'kbqUsernameCustomView',\n host: {\n class: `${baseClass}__custom-view`\n }\n})\nexport class KbqUsernameCustomView {}\n\n/**\n * Displays a user's name based on profile data.\n * Supports different display modes and visual styles.\n * A custom view can be provided via `<kbq-username-custom-view>` for full control over the output.\n * Accepts input profile data and optional formatting options.\n */\n@Component({\n selector: 'kbq-username',\n exportAs: 'kbqUsername',\n imports: [\n KbqTitleModule,\n KbqUsernamePipe,\n KbqUsernamePrimary,\n KbqUsernameSecondary,\n KbqUsernameSecondaryHint\n ],\n templateUrl: './username.html',\n styleUrls: ['./username.scss', './username-tokens.scss'],\n host: {\n class: baseClass,\n '[class]': 'class()'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqUsername {\n /** User profile data used for display. */\n readonly userInfo = input<KbqUserInfo>();\n /** Enables compact display mode */\n readonly isCompact = input(false, { transform: booleanAttribute });\n /** Format string for rendering the user's full name. */\n readonly fullNameFormat = input<string>(kbqDefaultFullNameFormat);\n /**\n * Display mode of the username.\n * @default inline\n */\n readonly mode = input<KbqUsernameMode>('inline');\n /**\n * Visual style of the username.\n * @default default\n */\n readonly type = input<KbqUsernameStyle>('default');\n /**\n * Custom projected view for username rendering.\n * @docs-private\n */\n protected readonly customView = contentChild(KbqUsernameCustomView);\n\n /** @docs-private */\n protected readonly hasFullName = computed(() => {\n const userInfo = this.userInfo();\n\n if (!userInfo) return false;\n\n return userInfo?.lastName && userInfo?.firstName;\n });\n\n /** @docs-private */\n protected readonly class = computed(() => {\n return [this.type(), this.mode()].map((modificator) => `${baseClass}_${modificator}`).join(' ');\n });\n}\n","@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqUsername, KbqUsernameCustomView, KbqUsernamePrimary, KbqUsernameSecondary } from './username';\nimport { KbqUsernameCustomPipe, KbqUsernamePipe } from './username.pipe';\n\nconst COMPONENTS = [\n KbqUsername,\n KbqUsernameCustomView,\n KbqUsernamePrimary,\n KbqUsernameSecondary,\n KbqUsernameCustomPipe,\n KbqUsernamePipe\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqUsernameModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-username.mjs","sources":["../../../packages/components/username/types.ts","../../../packages/components/username/constants.ts","../../../packages/components/username/username.pipe.ts","../../../packages/components/username/username.ts","../../../packages/components/username/username.html","../../../packages/components/username/module.ts","../../../packages/components/username/koobiq-components-username.ts"],"sourcesContent":["/**\n * Keys for formatting username parts in short (initial) or full form.\n */\nexport enum KbqUsernameFormatKey {\n /**\n * Short form of the first name (e.g., \"John\" → \"J\")\n */\n FirstNameShort = 'f',\n\n /**\n * Full form of the first name (e.g., \"John\")\n */\n FirstNameFull = 'F',\n\n /**\n * Short form of the middle name (e.g., \"Henry\" → \"H\")\n */\n MiddleNameShort = 'm',\n\n /**\n * Full form of the middle name (e.g., \"Henry\")\n */\n MiddleNameFull = 'M',\n\n /**\n * Short form of the last name (e.g., \"Doe\" → \"D\")\n */\n LastNameShort = 'l',\n\n /**\n * Full form of the last name (e.g., \"Doe\")\n */\n LastNameFull = 'L',\n Dot = '.'\n}\n\n/**\n * Maps each format key to a property name in the user profile object.\n * Allows flexible formatting regardless of profile field names.\n */\nexport type KbqFormatKeyToProfileMapping<T = any> = {\n [key in Exclude<\n KbqUsernameFormatKey,\n KbqUsernameFormatKey.FirstNameFull | KbqUsernameFormatKey.MiddleNameFull | KbqUsernameFormatKey.LastNameFull\n >]: keyof T | undefined;\n};\n\n/**\n * Maps each format key to a property name in the user profile object.\n * Allows flexible formatting regardless of profile field names.\n * @see KbqUsernameCustomPipe\n */\nexport type KbqFormatKeyToProfileMappingExtended<T = any> = {\n [key in KbqUsernameFormatKey]: keyof T | undefined;\n};\n\n/**\n * Layout mode for displaying a username and applying text-ellipsis.\n *\n * - `stacked`: Elements shown vertically.\n * - `inline`: Elements shown in one line. Text ellipsis is applied to both parts.\n * - `text`: Plain text, no layout styling. No text-ellipsis.\n */\nexport type KbqUsernameMode = 'stacked' | 'inline' | 'text';\n\n/**\n * Visual style of the username.\n *\n * - `default`: standard styling with primary and secondary colors.\n * - `error`: error colors (e.g., red).\n * - `accented`: no color theming; emphasizes via typography only.\n * - `inherit`: inherits parent styles, no theming. For example, useful when using inside links.\n */\nexport type KbqUsernameStyle = 'default' | 'error' | 'accented' | 'inherit';\n","import { InjectionToken } from '@angular/core';\nimport { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUsernameFormatKey } from './types';\n\n/** Default name format: Last name full, first and middle as initials. */\nexport const kbqDefaultFullNameFormatCustom = 'L f. m.';\n/** Default name format: Last name full, first and middle as initials. */\nexport const kbqDefaultFullNameFormat = 'lf.m.';\n\n/**\n * Throws an error when no profile field mapping is provided to the username pipe.\n * @docs-private\n */\nexport function KbqMappingMissingError() {\n return new Error('KbqUsernamePipe: profile field mapping is required but was not provided.');\n}\n\n/**\n * Injection token for providing a global username format-to-profile mapping.\n */\nexport const KBQ_PROFILE_MAPPING = new InjectionToken<\n KbqFormatKeyToProfileMapping | KbqFormatKeyToProfileMappingExtended\n>('KBQ_PROFILE_MAPPING', {\n factory: () =>\n ({\n [KbqUsernameFormatKey.FirstNameShort]: 'firstName',\n [KbqUsernameFormatKey.MiddleNameShort]: 'middleName',\n [KbqUsernameFormatKey.LastNameShort]: 'lastName',\n [KbqUsernameFormatKey.Dot]: undefined\n }) satisfies KbqFormatKeyToProfileMapping<{ firstName: string; middleName: string; lastName: string }>\n});\n","import { inject, Injectable, Pipe, PipeTransform } from '@angular/core';\nimport {\n KBQ_PROFILE_MAPPING,\n kbqDefaultFullNameFormat,\n kbqDefaultFullNameFormatCustom,\n KbqMappingMissingError\n} from './constants';\nimport { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUsernameFormatKey } from './types';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqUsername',\n pure: true\n})\nexport class KbqUsernamePipe<T = unknown> implements PipeTransform {\n private readonly mapping = inject(KBQ_PROFILE_MAPPING, { optional: true });\n\n /** Builds a formatted name string from the user profile using the provided format and mapping. */\n transform(profile: T, format = kbqDefaultFullNameFormat, customMapping?: KbqFormatKeyToProfileMapping): string {\n const resolvedMapping = customMapping || this.mapping;\n\n if (!resolvedMapping) {\n throw KbqMappingMissingError();\n }\n\n if (!profile || typeof profile !== 'object') return '';\n\n let result = '';\n\n const formatUnits = format.split('');\n\n formatUnits.forEach((letter: KbqUsernameFormatKey | string, index: number, array) => {\n if (letter !== KbqUsernameFormatKey.Dot) {\n const field: keyof T = resolvedMapping[letter];\n const fieldValue = profile[field];\n\n if (fieldValue) {\n const isShort = array[index + 1] === KbqUsernameFormatKey.Dot;\n const resolvedFieldValue = isShort ? `${fieldValue[0]}${KbqUsernameFormatKey.Dot}` : fieldValue;\n\n result += ` ${resolvedFieldValue}`;\n }\n }\n });\n\n return result.trim();\n }\n}\n\n/**\n * Pipe to format a user profile into a name string using a format pattern and field mapping.\n * Lowercase keys output initials; uppercase keys show full values.\n */\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqUsernameCustom',\n pure: true\n})\nexport class KbqUsernameCustomPipe<T = unknown> implements PipeTransform {\n private readonly mapping = inject(KBQ_PROFILE_MAPPING, { optional: true });\n\n /** Builds a formatted name string from the user profile using the provided format and mapping. */\n transform(\n profile: T,\n format = kbqDefaultFullNameFormatCustom,\n customMapping?: KbqFormatKeyToProfileMappingExtended<T>\n ): string {\n const resolvedMapping = customMapping || this.mapping;\n\n if (!resolvedMapping) {\n throw KbqMappingMissingError();\n }\n\n if (!profile || typeof profile !== 'object') return '';\n\n let result = '';\n\n const formatUnits = format.split('');\n\n formatUnits.forEach((letter: KbqUsernameFormatKey | string) => {\n const field: keyof T | undefined = resolvedMapping[letter];\n\n if (!field) {\n result += letter;\n\n return;\n }\n\n const isShort = letter === letter.toLowerCase();\n const fieldValue = profile[field] || '';\n\n result += fieldValue && isShort ? fieldValue[0] : fieldValue;\n });\n\n return result.trim();\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { kbqDefaultFullNameFormat } from './constants';\nimport { KbqUsernameMode, KbqUsernameStyle } from './types';\nimport { KbqUsernamePipe } from './username.pipe';\n\nconst baseClass = 'kbq-username';\n\n/**\n * Basic user info\n * @docs-private\n */\nexport type KbqUserInfo = {\n firstName?: string;\n lastName?: string;\n middleName?: string;\n login?: string;\n site?: string;\n};\n\n/** Styles the primary part of the username (e.g. full name). */\n@Directive({\n selector: '[kbqUsernamePrimary]',\n exportAs: 'kbqUsernamePrimary',\n host: {\n class: `${baseClass}__primary`\n }\n})\nexport class KbqUsernamePrimary {}\n\n/** Styles the secondary part. */\n@Directive({\n selector: '[kbqUsernameSecondary]',\n exportAs: 'kbqUsernameSecondary',\n host: {\n class: `${baseClass}__secondary`\n }\n})\nexport class KbqUsernameSecondary {}\n\n/** Styles a secondary hint. */\n@Directive({\n selector: '[kbqUsernameSecondaryHint]',\n exportAs: 'kbqUsernameSecondaryHint',\n host: {\n class: `${baseClass}__secondary-hint`\n }\n})\nexport class KbqUsernameSecondaryHint {}\n\n/** Custom content for `KbqUsername`, overrides default view. */\n@Directive({\n selector: 'kbq-username-custom-view, [kbq-username-custom-view]',\n exportAs: 'kbqUsernameCustomView',\n host: {\n class: `${baseClass}__custom-view`\n }\n})\nexport class KbqUsernameCustomView {}\n\n/**\n * Displays a user's name based on profile data.\n * Supports different display modes and visual styles.\n * A custom view can be provided via `<kbq-username-custom-view>` for full control over the output.\n * Accepts input profile data and optional formatting options.\n */\n@Component({\n selector: 'kbq-username',\n exportAs: 'kbqUsername',\n imports: [\n KbqTitleModule,\n KbqUsernamePipe,\n KbqUsernamePrimary,\n KbqUsernameSecondary,\n KbqUsernameSecondaryHint\n ],\n templateUrl: './username.html',\n styleUrls: ['./username.scss', './username-tokens.scss'],\n host: {\n class: baseClass,\n '[class]': 'class()'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqUsername {\n /** User profile data used for display. */\n readonly userInfo = input<KbqUserInfo>();\n /** Enables compact display mode */\n readonly isCompact = input(false, { transform: booleanAttribute });\n /** Format string for rendering the user's full name. */\n readonly fullNameFormat = input<string>(kbqDefaultFullNameFormat);\n /**\n * Display mode of the username.\n * @default inline\n */\n readonly mode = input<KbqUsernameMode>('inline');\n /**\n * Visual style of the username.\n * @default default\n */\n readonly type = input<KbqUsernameStyle>('default');\n /**\n * Custom projected view for username rendering.\n * @docs-private\n */\n protected readonly customView = contentChild(KbqUsernameCustomView);\n\n /** @docs-private */\n protected readonly hasFullName = computed(() => {\n const userInfo = this.userInfo();\n\n if (!userInfo) return false;\n\n return userInfo?.lastName && userInfo?.firstName;\n });\n\n /** @docs-private */\n protected readonly class = computed(() => {\n return [this.type(), this.mode()].map((modificator) => `${baseClass}_${modificator}`).join(' ');\n });\n}\n","@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>&nbsp;({{ profile.site }})</span>\n }\n </span>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqUsername, KbqUsernameCustomView, KbqUsernamePrimary, KbqUsernameSecondary } from './username';\nimport { KbqUsernameCustomPipe, KbqUsernamePipe } from './username.pipe';\n\nconst COMPONENTS = [\n KbqUsername,\n KbqUsernameCustomView,\n KbqUsernamePrimary,\n KbqUsernameSecondary,\n KbqUsernameCustomPipe,\n KbqUsernamePipe\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqUsernameModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;AAEG;IACS;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC5B;;AAEG;AACH,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB;AAEpB;;AAEG;AACH,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,GAAmB;AAEnB;;AAEG;AACH,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB;AAErB;;AAEG;AACH,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB;AAEpB;;AAEG;AACH,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,GAAmB;AAEnB;;AAEG;AACH,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,GAAkB;AAClB,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACb,CAAC,EA/BW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ACAhC;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,wBAAwB,GAAG;AAExC;;;AAGG;SACa,sBAAsB,GAAA;AAClC,IAAA,OAAO,IAAI,KAAK,CAAC,0EAA0E,CAAC;AAChG;AAEA;;AAEG;MACU,mBAAmB,GAAG,IAAI,cAAc,CAEnD,qBAAqB,EAAE;AACrB,IAAA,OAAO,EAAE,OACJ;AACG,QAAA,CAAC,oBAAoB,CAAC,cAAc,GAAG,WAAW;AAClD,QAAA,CAAC,oBAAoB,CAAC,eAAe,GAAG,YAAY;AACpD,QAAA,CAAC,oBAAoB,CAAC,aAAa,GAAG,UAAU;AAChD,QAAA,CAAC,oBAAoB,CAAC,GAAG,GAAG;KAC/B;AACR,CAAA;;MCfY,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;QAMqB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAgC7E,IAAA;;AA7BG,IAAA,SAAS,CAAC,OAAU,EAAE,MAAM,GAAG,wBAAwB,EAAE,aAA4C,EAAA;AACjG,QAAA,MAAM,eAAe,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO;QAErD,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,sBAAsB,EAAE;QAClC;AAEA,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,EAAE;QAEtD,IAAI,MAAM,GAAG,EAAE;QAEf,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAEpC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAqC,EAAE,KAAa,EAAE,KAAK,KAAI;AAChF,YAAA,IAAI,MAAM,KAAK,oBAAoB,CAAC,GAAG,EAAE;AACrC,gBAAA,MAAM,KAAK,GAAY,eAAe,CAAC,MAAM,CAAC;AAC9C,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;gBAEjC,IAAI,UAAU,EAAE;AACZ,oBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,oBAAoB,CAAC,GAAG;oBAC7D,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAA,EAAG,UAAU,CAAC,CAAC,CAAC,CAAA,EAAG,oBAAoB,CAAC,GAAG,CAAA,CAAE,GAAG,UAAU;AAE/F,oBAAA,MAAM,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAA,CAAE;gBACtC;YACJ;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC,IAAI,EAAE;IACxB;kIAhCS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;gIAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cALF,MAAM,EAAA,CAAA,CAAA;;4FAKnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;kBACjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE;AACT,iBAAA;;AAoCD;;;AAGG;MAMU,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;QAMqB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAqC7E,IAAA;;AAlCG,IAAA,SAAS,CACL,OAAU,EACV,MAAM,GAAG,8BAA8B,EACvC,aAAuD,EAAA;AAEvD,QAAA,MAAM,eAAe,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO;QAErD,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,sBAAsB,EAAE;QAClC;AAEA,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,EAAE;QAEtD,IAAI,MAAM,GAAG,EAAE;QAEf,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAEpC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,MAAqC,KAAI;AAC1D,YAAA,MAAM,KAAK,GAAwB,eAAe,CAAC,MAAM,CAAC;YAE1D,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,IAAI,MAAM;gBAEhB;YACJ;YAEA,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE;YAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;AAEvC,YAAA,MAAM,IAAI,UAAU,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU;AAChE,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC,IAAI,EAAE;IACxB;kIArCS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;gIAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cALR,MAAM,EAAA,CAAA,CAAA;;4FAKnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;kBACjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE;AACT,iBAAA;;;AC1CD,MAAM,SAAS,GAAG,cAAc;AAchC;MAQa,kBAAkB,CAAA;kIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;wBACF,KAAK,EAAE,CAAA,EAAG,SAAS,CAAA,SAAA;AACtB;AACJ,iBAAA;;AAGD;MAQa,oBAAoB,CAAA;kIAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;wBACF,KAAK,EAAE,CAAA,EAAG,SAAS,CAAA,WAAA;AACtB;AACJ,iBAAA;;AAGD;MAQa,wBAAwB,CAAA;kIAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,IAAI,EAAE;wBACF,KAAK,EAAE,CAAA,EAAG,SAAS,CAAA,gBAAA;AACtB;AACJ,iBAAA;;AAGD;MAQa,qBAAqB,CAAA;kIAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;wBACF,KAAK,EAAE,CAAA,EAAG,SAAS,CAAA,aAAA;AACtB;AACJ,iBAAA;;AAGD;;;;;AAKG;MAoBU,WAAW,CAAA;AAnBxB,IAAA,WAAA,GAAA;;QAqBa,IAAA,CAAA,QAAQ,GAAG,KAAK,EAAe;;QAE/B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;AAEzD,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAS,wBAAwB,CAAC;AACjE;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,QAAQ,CAAC;AAChD;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,SAAS,CAAC;AAClD;;;AAGG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,YAAY,CAAC,qBAAqB,CAAC;;AAGhD,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAEhC,YAAA,IAAI,CAAC,QAAQ;AAAE,gBAAA,OAAO,KAAK;AAE3B,YAAA,OAAO,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAAE,SAAS;AACpD,QAAA,CAAC,CAAC;;AAGiB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnG,QAAA,CAAC,CAAC;AACL,IAAA;kIApCY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqByB,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnHtE,miCAmCA,EAAA,MAAA,EAAA,CAAA,ugNAAA,EAAA,mOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED4CQ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACd,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA3CV,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAUlB,oBAAoB,uGAUpB,wBAAwB,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAqCxB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAnBvB,SAAS;+BACI,cAAc,EAAA,QAAA,EACd,aAAa,EAAA,OAAA,EACd;wBACL,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,oBAAoB;wBACpB;qBACH,EAAA,IAAA,EAGK;AACF,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,SAAS,EAAE;AACd,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,miCAAA,EAAA,MAAA,EAAA,CAAA,ugNAAA,EAAA,mOAAA,CAAA,EAAA;;;AExFnD,MAAM,UAAU,GAAG;IACf,WAAW;IACX,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB;CACH;MAMY,iBAAiB,CAAA;kIAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAZ1B,WAAW;YACX,qBAAqB;YACrB,kBAAkB;YAClB,oBAAoB;YACpB,qBAAqB;AACrB,YAAA,eAAe,aALf,WAAW;YACX,qBAAqB;YACrB,kBAAkB;YAClB,oBAAoB;YACpB,qBAAqB;YACrB,eAAe,CAAA,EAAA,CAAA,CAAA;AAON,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAZ1B,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAYF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;AChBD;;AAEG;;;;"}
@@ -2,6 +2,7 @@ import { AfterViewInit, EventEmitter } from '@angular/core';
2
2
  import { UntypedFormControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare const defaultOnSearchTimeout = 0;
5
+ /** @deprecated Will be removed in next major release. Use `kbq-search-expandable` instead. */
5
6
  export declare class KbqFilterBarSearch implements AfterViewInit {
6
7
  /** KbqFilterBar instance */
7
8
  private readonly filterBar;
@@ -26,6 +27,14 @@ export declare class KbqFilterBarSearch implements AfterViewInit {
26
27
  readonly emitValueByEnter: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
27
28
  /** Value of the field after initialization */
28
29
  readonly initialValue: import("@angular/core").InputSignal<unknown>;
30
+ /** Custom tooltip text. When set, overrides localeData.tooltip */
31
+ readonly customTooltip: import("@angular/core").InputSignal<string>;
32
+ /** Custom placeholder text. When set, overrides localeData.placeholder */
33
+ readonly customPlaceholder: import("@angular/core").InputSignal<string>;
34
+ /** @docs-private */
35
+ get resolvedTooltip(): string;
36
+ /** @docs-private */
37
+ get resolvedPlaceholder(): string;
29
38
  /** event that is generated whenever a user performs a search. */
30
39
  readonly onSearch: EventEmitter<string>;
31
40
  ngAfterViewInit(): void;
@@ -41,5 +50,5 @@ export declare class KbqFilterBarSearch implements AfterViewInit {
41
50
  /** @docs-private */
42
51
  onReset: () => void;
43
52
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqFilterBarSearch, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqFilterBarSearch, "kbq-filter-search, [kbq-filter-search]", never, { "onSearchTimeout": { "alias": "onSearchTimeout"; "required": false; "isSignal": true; }; "emitValueByEnter": { "alias": "emitValueByEnter"; "required": false; "isSignal": true; }; "initialValue": { "alias": "initialValue"; "required": false; "isSignal": true; }; }, { "onSearch": "onSearch"; }, never, never, true, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqFilterBarSearch, "kbq-filter-search, [kbq-filter-search]", never, { "onSearchTimeout": { "alias": "onSearchTimeout"; "required": false; "isSignal": true; }; "emitValueByEnter": { "alias": "emitValueByEnter"; "required": false; "isSignal": true; }; "initialValue": { "alias": "initialValue"; "required": false; "isSignal": true; }; "customTooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "customPlaceholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "onSearch": "onSearch"; }, never, never, true, never>;
45
54
  }
@@ -37,9 +37,7 @@
37
37
  width: 320px;
38
38
 
39
39
  & .kbq-date-period__header {
40
- padding-top: var(--kbq-size-xs);
41
- padding-left: var(--kbq-size-xxs);
42
- padding-right: var(--kbq-size-xxs);
40
+ padding: var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s);
43
41
 
44
42
  & .kbq-button {
45
43
  width: 100%;
@@ -54,22 +52,12 @@
54
52
  & .kbq-date-period__content {
55
53
  display: grid;
56
54
  grid-auto-columns: minmax(min-content, 1fr);
57
- grid-template-columns: min-content;
55
+ grid-template-columns: min-content minmax(min-content, 1fr);
58
56
 
59
57
  padding: 0;
60
58
 
61
59
  gap: var(--kbq-size-s);
62
60
 
63
- & .kbq-date-period__content-header {
64
- grid-column: 2 span;
65
-
66
- padding-top: var(--kbq-size-s);
67
- padding-left: var(--kbq-size-l);
68
- padding-right: var(--kbq-size-l);
69
-
70
- color: var(--kbq-foreground-contrast-secondary);
71
- }
72
-
73
61
  & .kbq-form__label {
74
62
  padding-left: var(--kbq-size-l);
75
63
  }
@@ -80,14 +68,14 @@
80
68
 
81
69
  & .kbq-date-period__date,
82
70
  & .kbq-date-period__time {
83
- flex: 1;
71
+ width: auto;
84
72
  }
85
73
 
86
74
  & .kbq-form__row_with-time {
87
75
  display: flex;
88
76
 
89
77
  & .kbq-date-period__date {
90
- min-width: 136px;
78
+ width: 136px;
91
79
 
92
80
  & .kbq-form-field__container {
93
81
  border-top-right-radius: unset;
@@ -96,6 +84,7 @@
96
84
  }
97
85
 
98
86
  & .kbq-date-period__time.kbq-form-field-type-timepicker {
87
+ flex: 1;
99
88
  margin-left: -1px;
100
89
  width: unset;
101
90
 
@@ -22,6 +22,14 @@ export declare function getKbqFormFieldYouCanNotUseCleanerInNumberInputError():
22
22
  export type KbqFormFieldDefaultOptions = Partial<{
23
23
  /** Disables form field borders and shadows. */
24
24
  noBorders: boolean;
25
+ /** Use when KbqFormField is in an overlay container. */
26
+ inOverlay: boolean;
27
+ /** Whether the form field is displayed horizontally. */
28
+ horizontal: boolean;
29
+ /** Additional CSS classes applied to the label element. */
30
+ labelClass: string | string[] | Set<string>;
31
+ /** Additional CSS classes applied to the content wrapper element. */
32
+ contentClass: string | string[] | Set<string>;
25
33
  }>;
26
34
  /**
27
35
  * Injection token that can be used to configure the default options for all kbq-form-field's.
@@ -29,6 +37,14 @@ export type KbqFormFieldDefaultOptions = Partial<{
29
37
  export declare const KBQ_FORM_FIELD_DEFAULT_OPTIONS: InjectionToken<Partial<{
30
38
  /** Disables form field borders and shadows. */
31
39
  noBorders: boolean;
40
+ /** Use when KbqFormField is in an overlay container. */
41
+ inOverlay: boolean;
42
+ /** Whether the form field is displayed horizontally. */
43
+ horizontal: boolean;
44
+ /** Additional CSS classes applied to the label element. */
45
+ labelClass: string | string[] | Set<string>;
46
+ /** Additional CSS classes applied to the content wrapper element. */
47
+ contentClass: string | string[] | Set<string>;
32
48
  }>>;
33
49
  /** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */
34
50
  export declare const kbqFormFieldDefaultOptionsProvider: (options: KbqFormFieldDefaultOptions) => Provider;
@@ -44,6 +60,14 @@ export declare class KbqFormField extends KbqColorDirective implements AfterCont
44
60
  readonly elementRef: ElementRef<HTMLElement>;
45
61
  /** Disables form field borders and shadows. */
46
62
  readonly noBorders: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
63
+ /** Use when KbqFormField is in an overlay container. */
64
+ readonly inOverlay: import("@angular/core").ModelSignal<boolean | undefined>;
65
+ /** Whether the form field is displayed horizontally. */
66
+ readonly horizontal: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
67
+ /** Additional CSS classes applied to the label element. */
68
+ readonly labelClass: import("@angular/core").InputSignal<string | string[] | Set<string> | undefined>;
69
+ /** Additional CSS classes applied to the content wrapper element. */
70
+ readonly contentClass: import("@angular/core").InputSignal<string | string[] | Set<string> | undefined>;
47
71
  /**
48
72
  * The form field control.
49
73
  *
@@ -248,7 +272,7 @@ export declare class KbqFormField extends KbqColorDirective implements AfterCont
248
272
  /** Initializes the KbqHint, KbqPasswordHint, KbqReactivePasswordHint and KbqError containers. */
249
273
  private initializeHint;
250
274
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqFormField, never>;
251
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqFormField, "kbq-form-field", ["kbqFormField"], { "noBorders": { "alias": "noBorders"; "required": false; "isSignal": true; }; }, {}, ["control", "stepper", "cleaner", "passwordToggle", "label", "hint", "passwordHints", "suffix", "prefix", "reactivePasswordHint", "error"], ["kbq-label", "[kbqPrefix]", "*", "kbq-cleaner", "kbq-password-toggle, kbq-stepper, [kbqSuffix]", "kbq-error", "kbq-hint, kbq-password-hint, kbq-reactive-password-hint"], true, never>;
275
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqFormField, "kbq-form-field", ["kbqFormField"], { "noBorders": { "alias": "noBorders"; "required": false; "isSignal": true; }; "inOverlay": { "alias": "inOverlay"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "labelClass": { "alias": "labelClass"; "required": false; "isSignal": true; }; "contentClass": { "alias": "contentClass"; "required": false; "isSignal": true; }; }, { "inOverlay": "inOverlayChange"; }, ["control", "stepper", "cleaner", "passwordToggle", "label", "hint", "passwordHints", "suffix", "prefix", "reactivePasswordHint", "error"], ["kbq-label", "[kbqPrefix]", "*", "kbq-cleaner", "kbq-password-toggle, kbq-stepper, [kbqSuffix]", "kbq-error", "kbq-hint, kbq-password-hint, kbq-reactive-password-hint"], true, never>;
252
276
  }
253
277
  /**
254
278
  * @docs-private
@@ -17,13 +17,32 @@
17
17
  }
18
18
 
19
19
  .kbq-form-field {
20
+ --kbq-form-field-label-margin-bottom: var(--kbq-size-xs);
21
+
20
22
  position: relative;
21
23
  display: inline-block;
22
24
  width: 100%;
23
25
 
26
+ &.kbq-form-field_horizontal {
27
+ display: flex;
28
+ flex-direction: row;
29
+ align-items: flex-start;
30
+
31
+ .kbq-form-field__label {
32
+ --kbq-form-field-label-margin-bottom: 0;
33
+
34
+ padding: var(--kbq-size-xs) var(--kbq-size-l) 0 0;
35
+ }
36
+ }
37
+
38
+ .kbq-form-field__content {
39
+ flex: 1;
40
+ }
41
+
24
42
  .kbq-form-field__label {
43
+ box-sizing: border-box;
25
44
  display: flex;
26
- margin-bottom: var(--kbq-size-xs);
45
+ margin-bottom: var(--kbq-form-field-label-margin-bottom);
27
46
  }
28
47
 
29
48
  // We should override suffix spacing for select type, because it has custom suffix
@@ -57,8 +76,9 @@
57
76
  }
58
77
 
59
78
  .kbq-form-field__infix {
79
+ box-sizing: border-box;
80
+
60
81
  width: 100%;
61
- max-width: calc(100% - var(--kbq-size-xs));
62
82
  flex-grow: 1;
63
83
 
64
84
  padding-left: var(--kbq-form-field-size-infix-left-padding);
@@ -97,6 +117,10 @@
97
117
  box-shadow: none !important;
98
118
  }
99
119
 
120
+ &.kbq-form-field_in-overlay .kbq-form-field__container {
121
+ background-color: var(--kbq-background-card) !important;
122
+ }
123
+
100
124
  & + .kbq-password-hint {
101
125
  margin-top: var(--kbq-size-m);
102
126
  }
@@ -14,7 +14,10 @@ export declare class KbqIconButton extends KbqIcon implements AfterViewInit, OnD
14
14
  get disabled(): boolean;
15
15
  set disabled(value: boolean);
16
16
  private _disabled;
17
+ /** @docs-private */
18
+ readonly disabledSignal: import("@angular/core").WritableSignal<boolean>;
17
19
  name: string;
20
+ constructor();
18
21
  ngAfterViewInit(): void;
19
22
  ngOnDestroy(): void;
20
23
  private runFocusMonitor;
@@ -12,6 +12,10 @@
12
12
  &.kbq-icon-button_small {
13
13
  padding: var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding);
14
14
  }
15
+
16
+ &.kbq-disabled {
17
+ pointer-events: none;
18
+ }
15
19
  }
16
20
 
17
21
  button.kbq-icon-button {
@@ -1,8 +1,8 @@
1
1
  :where(.kbq-inline-edit, .kbq-inline-edit__panel) {
2
2
  --kbq-inline-edit-background: transparent;
3
- --kbq-inline-edit-height: var(--kbq-size-3xl);
4
- --kbq-inline-edit-padding-horizontal: var(--kbq-size-s);
5
- --kbq-inline-edit-padding-vertical: var(--kbq-size-xs);
3
+ --kbq-inline-edit-height: calc(var(--kbq-size-3xl) - 2 * var(--kbq-size-border-width));
4
+ --kbq-inline-edit-padding-horizontal: calc(var(--kbq-size-s) - var(--kbq-size-border-width));
5
+ --kbq-inline-edit-padding-vertical: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
6
6
  --kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);
7
7
  --kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary);
8
8
  }