@koobiq/components 18.33.0 → 18.35.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 (309) hide show
  1. package/actions-panel/actions-panel-config.d.ts +4 -3
  2. package/actions-panel/actions-panel-container.scss +0 -6
  3. package/actions-panel/actions-panel-ref.d.ts +13 -0
  4. package/actions-panel/actions-panel.d.ts +1 -7
  5. package/button/_button-theme.scss +1 -0
  6. package/clamped-text/clamped-text.d.ts +61 -0
  7. package/clamped-text/clamped-text.scss +17 -0
  8. package/clamped-text/constants.d.ts +14 -0
  9. package/clamped-text/index.d.ts +3 -0
  10. package/clamped-text/module.d.ts +7 -0
  11. package/content-panel/content-panel-aside.scss +9 -0
  12. package/content-panel/content-panel-body.scss +9 -0
  13. package/content-panel/content-panel-container.scss +32 -0
  14. package/content-panel/content-panel-footer.scss +5 -0
  15. package/content-panel/content-panel-header.scss +30 -0
  16. package/content-panel/content-panel-tokens.scss +9 -0
  17. package/content-panel/content-panel.d.ts +149 -0
  18. package/content-panel/content-panel.scss +25 -0
  19. package/content-panel/index.d.ts +3 -0
  20. package/content-panel/module.d.ts +7 -0
  21. package/content-panel/resizable.d.ts +70 -0
  22. package/core/form-field/field-sizing-content.d.ts +21 -0
  23. package/core/form-field/index.d.ts +1 -0
  24. package/core/locales/en-US.d.ts +10 -0
  25. package/core/locales/es-LA.d.ts +10 -0
  26. package/core/locales/fa-IR.d.ts +10 -0
  27. package/core/locales/locale-service.d.ts +70 -0
  28. package/core/locales/pt-BR.d.ts +10 -0
  29. package/core/locales/ru-RU.d.ts +10 -0
  30. package/core/locales/tk-TM.d.ts +10 -0
  31. package/core/locales/types.d.ts +5 -0
  32. package/core/locales/zh-CN.d.ts +10 -0
  33. package/core/navbar/index.d.ts +1 -0
  34. package/core/navbar/rectangle-item.d.ts +14 -0
  35. package/core/option/option.d.ts +3 -1
  36. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  37. package/core/public-api.d.ts +1 -0
  38. package/core/styles/common/_select.scss +6 -3
  39. package/core/utils/dom.d.ts +9 -0
  40. package/core/utils/index.d.ts +1 -0
  41. package/core/utils/utils.d.ts +4 -0
  42. package/datepicker/calendar.component.d.ts +1 -1
  43. package/datepicker/datepicker-input.directive.d.ts +19 -8
  44. package/datepicker/datepicker-toggle.component.d.ts +1 -1
  45. package/datepicker/datepicker.component.d.ts +2 -2
  46. package/dropdown/dropdown-item.scss +1 -0
  47. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  48. package/dynamic-translation/dynamic-translation.d.ts +72 -0
  49. package/dynamic-translation/index.d.ts +2 -0
  50. package/dynamic-translation/module.d.ts +7 -0
  51. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  52. package/esm2022/actions-panel/actions-panel-container.mjs +7 -7
  53. package/esm2022/actions-panel/actions-panel-ref.mjs +17 -1
  54. package/esm2022/actions-panel/actions-panel.mjs +34 -24
  55. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  56. package/esm2022/button/button.component.mjs +2 -2
  57. package/esm2022/button-toggle/button-toggle.component.mjs +9 -9
  58. package/esm2022/clamped-text/clamped-text.mjs +202 -0
  59. package/esm2022/clamped-text/constants.mjs +20 -0
  60. package/esm2022/clamped-text/index.mjs +4 -0
  61. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +5 -0
  62. package/esm2022/clamped-text/module.mjs +19 -0
  63. package/esm2022/content-panel/content-panel.mjs +432 -0
  64. package/esm2022/content-panel/index.mjs +4 -0
  65. package/esm2022/content-panel/koobiq-components-content-panel.mjs +5 -0
  66. package/esm2022/content-panel/module.mjs +42 -0
  67. package/esm2022/content-panel/resizable.mjs +138 -0
  68. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  69. package/esm2022/core/form-field/index.mjs +2 -1
  70. package/esm2022/core/locales/en-US.mjs +11 -1
  71. package/esm2022/core/locales/es-LA.mjs +11 -1
  72. package/esm2022/core/locales/fa-IR.mjs +11 -1
  73. package/esm2022/core/locales/pt-BR.mjs +11 -1
  74. package/esm2022/core/locales/ru-RU.mjs +11 -1
  75. package/esm2022/core/locales/tk-TM.mjs +11 -1
  76. package/esm2022/core/locales/types.mjs +1 -1
  77. package/esm2022/core/locales/zh-CN.mjs +11 -1
  78. package/esm2022/core/navbar/index.mjs +2 -0
  79. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  80. package/esm2022/core/option/option.mjs +8 -4
  81. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  82. package/esm2022/core/public-api.mjs +2 -1
  83. package/esm2022/core/utils/dom.mjs +14 -0
  84. package/esm2022/core/utils/index.mjs +2 -1
  85. package/esm2022/core/utils/utils.mjs +9 -1
  86. package/esm2022/core/version.mjs +2 -2
  87. package/esm2022/datepicker/calendar-header.component.mjs +6 -3
  88. package/esm2022/datepicker/calendar.component.mjs +9 -9
  89. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  90. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  91. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  93. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  94. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  95. package/esm2022/dynamic-translation/dynamic-translation.mjs +175 -0
  96. package/esm2022/dynamic-translation/index.mjs +3 -0
  97. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +5 -0
  98. package/esm2022/dynamic-translation/module.mjs +25 -0
  99. package/esm2022/file-upload/file-drop.mjs +1 -1
  100. package/esm2022/file-upload/file-upload.mjs +6 -1
  101. package/esm2022/file-upload/multiple-file-upload.component.mjs +21 -16
  102. package/esm2022/file-upload/single-file-upload.component.mjs +23 -16
  103. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  104. package/esm2022/filter-bar/filter-refresher.mjs +5 -5
  105. package/esm2022/filter-bar/filter-reset.mjs +3 -3
  106. package/esm2022/filter-bar/filter-search.mjs +11 -11
  107. package/esm2022/filter-bar/filters.mjs +16 -4
  108. package/esm2022/filter-bar/pipe-add.mjs +6 -6
  109. package/esm2022/filter-bar/pipes/base-pipe.mjs +2 -2
  110. package/esm2022/filter-bar/pipes/pipe-button.mjs +7 -7
  111. package/esm2022/filter-bar/pipes/pipe-date.mjs +10 -2
  112. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +10 -2
  113. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +11 -17
  114. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +10 -9
  115. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +7 -7
  116. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -4
  117. package/esm2022/filter-bar/pipes/pipe-text.mjs +9 -3
  118. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +9 -3
  119. package/esm2022/form-field/cleaner.mjs +16 -11
  120. package/esm2022/form-field/fieldset.mjs +2 -2
  121. package/esm2022/form-field/form-field.mjs +5 -5
  122. package/esm2022/form-field/password-hint.mjs +14 -3
  123. package/esm2022/form-field/password-toggle.mjs +45 -10
  124. package/esm2022/form-field/reactive-password-hint.mjs +18 -17
  125. package/esm2022/form-field/stepper.mjs +9 -9
  126. package/esm2022/icon/icon-button.component.mjs +2 -2
  127. package/esm2022/input/input-number.mjs +15 -10
  128. package/esm2022/markdown/markdown.component.mjs +3 -3
  129. package/esm2022/modal/modal.component.mjs +14 -14
  130. package/esm2022/modal/modal.directive.mjs +7 -5
  131. package/esm2022/navbar/navbar-item.component.mjs +3 -3
  132. package/esm2022/navbar-ic/index.mjs +2 -0
  133. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  134. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  135. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  136. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  137. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  138. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  139. package/esm2022/navbar-ic/public-api.mjs +5 -0
  140. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  141. package/esm2022/popover/popover.component.mjs +10 -5
  142. package/esm2022/scrollbar/scrollbar.component.mjs +5 -5
  143. package/esm2022/select/select.component.mjs +24 -11
  144. package/esm2022/sidebar/sidebar.component.mjs +46 -27
  145. package/esm2022/sidepanel/sidepanel-container.component.mjs +15 -4
  146. package/esm2022/sidepanel/sidepanel-directives.mjs +5 -5
  147. package/esm2022/sidepanel/sidepanel-ref.mjs +8 -6
  148. package/esm2022/splitter/splitter.component.mjs +1 -1
  149. package/esm2022/tabs/tab-body.component.mjs +3 -3
  150. package/esm2022/tabs/tab-group.component.mjs +27 -27
  151. package/esm2022/tabs/tab.component.mjs +4 -4
  152. package/esm2022/tags/tag-input.mjs +2 -2
  153. package/esm2022/tags/tag-list.component.mjs +36 -17
  154. package/esm2022/tags/tag.component.mjs +231 -22
  155. package/esm2022/tags/tag.module.mjs +16 -6
  156. package/esm2022/textarea/textarea.component.mjs +6 -4
  157. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  158. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  159. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2022/tree/tree-selection.component.mjs +4 -4
  161. package/esm2022/tree-select/tree-select.component.mjs +11 -9
  162. package/esm2022/username/constants.mjs +25 -0
  163. package/esm2022/username/index.mjs +6 -0
  164. package/esm2022/username/koobiq-components-username.mjs +5 -0
  165. package/esm2022/username/module.mjs +35 -0
  166. package/esm2022/username/types.mjs +32 -0
  167. package/esm2022/username/username.mjs +129 -0
  168. package/esm2022/username/username.pipe.mjs +92 -0
  169. package/fesm2022/koobiq-components-actions-panel.mjs +56 -31
  170. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  172. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-button-toggle.mjs +8 -8
  174. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-button.mjs +2 -2
  176. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-clamped-text.mjs +242 -0
  178. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -0
  179. package/fesm2022/koobiq-components-content-panel.mjs +612 -0
  180. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -0
  181. package/fesm2022/koobiq-components-core.mjs +271 -31
  182. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-datepicker.mjs +45 -40
  184. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-dropdown.mjs +33 -13
  186. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-dynamic-translation.mjs +204 -0
  188. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -0
  189. package/fesm2022/koobiq-components-file-upload.mjs +44 -27
  190. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-filter-bar.mjs +100 -71
  192. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-form-field.mjs +100 -49
  194. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-icon.mjs +2 -2
  196. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-input.mjs +14 -9
  198. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  200. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-modal.mjs +19 -17
  202. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  204. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  205. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  206. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-popover.mjs +11 -6
  208. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-scrollbar.mjs +4 -4
  210. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-select.mjs +23 -10
  212. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-sidebar.mjs +45 -26
  214. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-sidepanel.mjs +24 -12
  216. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-tabs.mjs +31 -31
  219. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-tags.mjs +284 -47
  221. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-textarea.mjs +5 -3
  223. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  226. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  228. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tree-select.mjs +10 -8
  230. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-tree.mjs +3 -3
  232. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-username.mjs +308 -0
  234. package/fesm2022/koobiq-components-username.mjs.map +1 -0
  235. package/file-upload/_file-upload-theme.scss +1 -1
  236. package/file-upload/file-drop.d.ts +1 -1
  237. package/file-upload/file-upload.d.ts +5 -2
  238. package/file-upload/multiple-file-upload.component.d.ts +4 -2
  239. package/file-upload/single-file-upload.component.d.ts +5 -3
  240. package/filter-bar/_filter-bar-theme.scss +2 -2
  241. package/filter-bar/filters.d.ts +1 -0
  242. package/filter-bar/pipes/pipe-date.d.ts +3 -1
  243. package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
  244. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -1
  245. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +3 -2
  246. package/filter-bar/pipes/pipe-select.d.ts +0 -1
  247. package/filter-bar/pipes/pipe-tree-select.d.ts +3 -2
  248. package/form-field/_form-field-theme.scss +27 -18
  249. package/form-field/cleaner.d.ts +4 -2
  250. package/form-field/cleaner.scss +6 -2
  251. package/form-field/form-field.scss +12 -2
  252. package/form-field/password-hint.d.ts +7 -0
  253. package/form-field/password-toggle.d.ts +23 -3
  254. package/form-field/password-toggle.scss +4 -8
  255. package/form-field/reactive-password-hint.d.ts +1 -0
  256. package/icon/_icon-button-theme.scss +8 -2
  257. package/modal/modal.component.d.ts +6 -6
  258. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  259. package/navbar-ic/index.d.ts +1 -0
  260. package/navbar-ic/navbar-ic-divider.scss +7 -0
  261. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  262. package/navbar-ic/navbar-ic-header.scss +53 -0
  263. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  264. package/navbar-ic/navbar-ic-item.scss +96 -0
  265. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  266. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  267. package/navbar-ic/navbar-ic.d.ts +103 -0
  268. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  269. package/navbar-ic/navbar-ic.scss +32 -0
  270. package/navbar-ic/public-api.d.ts +4 -0
  271. package/package.json +34 -4
  272. package/popover/_popover-theme.scss +6 -2
  273. package/popover/popover-confirm.component.d.ts +1 -1
  274. package/popover/popover-tokens.scss +2 -0
  275. package/popover/popover.component.d.ts +6 -3
  276. package/prebuilt-themes/dark-theme.css +1 -1
  277. package/prebuilt-themes/light-theme.css +1 -1
  278. package/prebuilt-themes/theme.css +1 -1
  279. package/schematics/ng-add/index.js +4 -4
  280. package/scrollbar/scrollbar.component.d.ts +4 -4
  281. package/select/select.component.d.ts +14 -2
  282. package/sidebar/sidebar.component.d.ts +31 -5
  283. package/sidepanel/sidepanel-container.component.d.ts +9 -0
  284. package/sidepanel/sidepanel-ref.d.ts +3 -3
  285. package/splitter/splitter.component.d.ts +2 -2
  286. package/tabs/tab-group.component.d.ts +1 -1
  287. package/tabs/tab.component.d.ts +1 -1
  288. package/tags/_tag-theme.scss +10 -1
  289. package/tags/tag-input.d.ts +1 -1
  290. package/tags/tag-list.component.d.ts +11 -3
  291. package/tags/tag-list.scss +5 -0
  292. package/tags/tag.component.d.ts +78 -8
  293. package/tags/tag.module.d.ts +1 -1
  294. package/tags/tag.scss +18 -0
  295. package/textarea/textarea-tokens.scss +1 -1
  296. package/timepicker/timepicker.directive.d.ts +1 -1
  297. package/tooltip/_tooltip-theme.scss +9 -2
  298. package/tooltip/tooltip-tokens.scss +2 -0
  299. package/tooltip/tooltip.component.d.ts +2 -2
  300. package/tree/tree-selection.component.d.ts +1 -1
  301. package/tree-select/tree-select.component.d.ts +1 -1
  302. package/username/constants.d.ts +15 -0
  303. package/username/index.d.ts +5 -0
  304. package/username/module.d.ts +8 -0
  305. package/username/types.d.ts +62 -0
  306. package/username/username-tokens.scss +6 -0
  307. package/username/username.d.ts +68 -0
  308. package/username/username.pipe.d.ts +23 -0
  309. package/username/username.scss +107 -0
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy } from '@angular/core';
2
2
  import { KbqSidebarAnimationState } from './sidebar-animations';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare enum SidebarPositions {
@@ -23,30 +23,56 @@ export declare class KbqSidebarClosed {
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidebarClosed, never>;
24
24
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSidebarClosed, "[kbq-sidebar-closed]", ["kbqSidebarClosed"], { "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, never>;
25
25
  }
26
- export declare class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {
26
+ export declare class KbqSidebar implements OnDestroy, AfterContentInit {
27
27
  private ngZone;
28
28
  private elementRef;
29
+ /**
30
+ * @docs-private
31
+ */
29
32
  protected readonly document: Document;
33
+ private readonly renderer;
34
+ private readonly changeDetectorRef;
30
35
  get opened(): boolean;
31
36
  set opened(value: boolean);
32
37
  private _opened;
33
38
  position: SidebarPositions;
39
+ /**
40
+ * @docs-private
41
+ */
34
42
  params: KbqSidebarParams;
35
43
  readonly stateChanged: EventEmitter<boolean>;
44
+ /**
45
+ * @docs-private
46
+ */
36
47
  openedContent: KbqSidebarOpened;
48
+ /**
49
+ * @docs-private
50
+ */
37
51
  closedContent: KbqSidebarClosed;
52
+ /**
53
+ * @docs-private
54
+ */
38
55
  get animationState(): KbqSidebarAnimationState;
56
+ /**
57
+ * @docs-private
58
+ */
39
59
  internalState: boolean;
40
- private documentKeydownListener;
60
+ private unbindKeydownListener;
41
61
  constructor(ngZone: NgZone, elementRef: ElementRef);
42
- ngOnInit(): void;
62
+ ngAfterContentInit(): void;
43
63
  ngOnDestroy(): void;
44
64
  toggle(): void;
65
+ /**
66
+ * @docs-private
67
+ */
45
68
  onAnimationStart(): void;
69
+ /**
70
+ * @docs-private
71
+ */
46
72
  onAnimationDone(): void;
47
- ngAfterContentInit(): void;
48
73
  private registerKeydownListener;
49
74
  private unRegisterKeydownListener;
75
+ private handleKeydown;
50
76
  private saveWidth;
51
77
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidebar, never>;
52
78
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqSidebar, "kbq-sidebar", ["kbqSidebar"], { "opened": { "alias": "opened"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, { "stateChanged": "stateChanged"; }, ["openedContent", "closedContent"], ["[kbq-sidebar-opened]", "[kbq-sidebar-closed]"], false, never>;
@@ -1,6 +1,7 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
2
  import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
3
3
  import { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter, InjectionToken, OnDestroy } from '@angular/core';
4
+ import { Observable, Subject } from 'rxjs';
4
5
  import { KbqSidepanelAnimationState } from './sidepanel-animations';
5
6
  import { KbqSidepanelConfig } from './sidepanel-config';
6
7
  import * as i0 from "@angular/core";
@@ -27,10 +28,18 @@ export declare class KbqSidepanelContainerComponent extends BasePortalOutlet imp
27
28
  get size(): string;
28
29
  get trapFocusAutoCapture(): boolean;
29
30
  get trapFocus(): boolean;
31
+ /** @docs-private */
32
+ protected readonly indentClickEmitter: Subject<MouseEvent>;
30
33
  /** Whether the component has been destroyed. */
31
34
  private destroyed;
32
35
  constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, sidepanelConfig: KbqSidepanelConfig, withIndent: boolean, withShadow: boolean);
33
36
  ngOnDestroy(): void;
37
+ /**
38
+ * Gets an observable that emits when the indent has been clicked.
39
+ *
40
+ * @docs-private
41
+ */
42
+ indentClick(): Observable<MouseEvent>;
34
43
  /** Attach a component portal as content to this sidepanel container. */
35
44
  attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
36
45
  /** Attach a template portal as content to this sidepanel container. */
@@ -3,9 +3,9 @@ import { Observable } from 'rxjs';
3
3
  import { KbqSidepanelConfig } from './sidepanel-config';
4
4
  import { KbqSidepanelContainerComponent } from './sidepanel-container.component';
5
5
  export declare class KbqSidepanelRef<T = any, R = any> {
6
- containerInstance: KbqSidepanelContainerComponent;
7
- private overlayRef;
8
- config: KbqSidepanelConfig;
6
+ readonly containerInstance: KbqSidepanelContainerComponent;
7
+ readonly overlayRef: OverlayRef;
8
+ readonly config: KbqSidepanelConfig;
9
9
  readonly id: string;
10
10
  /** Instance of the component making up the content of the sidepanel. */
11
11
  instance: T;
@@ -63,7 +63,7 @@ export declare class KbqSplitterComponent implements OnInit, AfterContentInit, O
63
63
  changeDetectorRef: ChangeDetectorRef;
64
64
  private ngZone;
65
65
  private renderer;
66
- gutterPositionChange: EventEmitter<void>;
66
+ readonly gutterPositionChange: EventEmitter<void>;
67
67
  areas: IArea[];
68
68
  gutters: QueryList<KbqGutterDirective>;
69
69
  ghost: KbqGutterGhostDirective;
@@ -111,7 +111,7 @@ export declare class KbqSplitterAreaDirective implements AfterViewInit, OnDestro
111
111
  private elementRef;
112
112
  private renderer;
113
113
  private splitter;
114
- sizeChange: EventEmitter<number>;
114
+ readonly sizeChange: EventEmitter<number>;
115
115
  private readonly window;
116
116
  constructor(elementRef: ElementRef, renderer: Renderer2, splitter: KbqSplitterComponent);
117
117
  isResizing(): boolean;
@@ -85,6 +85,7 @@ export declare class KbqTabGroup implements AfterContentInit, AfterViewInit, Aft
85
85
  private readonly groupId;
86
86
  private readonly resizeDebounceInterval;
87
87
  constructor(changeDetectorRef: ChangeDetectorRef, defaultConfig?: KbqTabsConfig);
88
+ ngAfterContentInit(): void;
88
89
  /**
89
90
  * After the content is checked, this component knows what tabs have been defined
90
91
  * and what the selected index should be. This is where we can know exactly what position
@@ -92,7 +93,6 @@ export declare class KbqTabGroup implements AfterContentInit, AfterViewInit, Aft
92
93
  * a new selected tab should transition in (from the left or right).
93
94
  */
94
95
  ngAfterContentChecked(): void;
95
- ngAfterContentInit(): void;
96
96
  ngAfterViewInit(): void;
97
97
  ngOnDestroy(): void;
98
98
  focusChanged(index: number): void;
@@ -52,8 +52,8 @@ export declare class KbqTab implements OnInit, OnChanges, OnDestroy {
52
52
  private contentPortal;
53
53
  constructor(viewContainerRef: ViewContainerRef);
54
54
  ngOnChanges(changes: SimpleChanges): void;
55
- ngOnDestroy(): void;
56
55
  ngOnInit(): void;
56
+ ngOnDestroy(): void;
57
57
  /**
58
58
  * This has been extracted to a util because of TS 4 and VE.
59
59
  * View Engine doesn't support property rename inheritance.
@@ -36,6 +36,14 @@
36
36
  &.kbq-disabled {
37
37
  @include kbq-tag-state($type, states-disabled);
38
38
  }
39
+
40
+ &.kbq-tag_editing {
41
+ background-color: var(--kbq-background-bg);
42
+ }
43
+
44
+ .kbq-tag-edit-input {
45
+ color: inherit;
46
+ }
39
47
  }
40
48
 
41
49
  @mixin kbq-tag-theme() {
@@ -59,7 +67,8 @@
59
67
  }
60
68
 
61
69
  @mixin kbq-tag-typography() {
62
- .kbq-tag {
70
+ .kbq-tag,
71
+ .kbq-tag-edit-input {
63
72
  @include kbq-typography-level-to-styles-css-variables(typography, text-normal-medium);
64
73
  }
65
74
 
@@ -40,7 +40,7 @@ export declare class KbqTagInput implements KbqTagTextControl, OnChanges {
40
40
  get separators(): KbqTagSeparator[];
41
41
  private _separators;
42
42
  /** Emitted when a tag is to be added. */
43
- tagEnd: EventEmitter<KbqTagInputEvent>;
43
+ readonly tagEnd: EventEmitter<KbqTagInputEvent>;
44
44
  /** A value indicating whether allow/prevent tags duplication */
45
45
  distinct: boolean;
46
46
  /** The input's placeholder text. */
@@ -7,7 +7,7 @@ import { CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core'
7
7
  import { KbqCleaner, KbqFormFieldControl } from '@koobiq/components/form-field';
8
8
  import { Observable, Subject } from 'rxjs';
9
9
  import { KbqTagTextControl } from './tag-text-control';
10
- import { KbqTag, KbqTagEvent, KbqTagSelectionChange } from './tag.component';
10
+ import { KbqTag, KbqTagEditChange, KbqTagEvent, KbqTagSelectionChange } from './tag.component';
11
11
  import * as i0 from "@angular/core";
12
12
  /** Change event object that is emitted when the tag list value has changed. */
13
13
  export declare class KbqTagListChange {
@@ -38,6 +38,8 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
38
38
  get tagBlurChanges(): Observable<KbqTagEvent>;
39
39
  /** Combined stream of all of the child tags' remove change events. */
40
40
  get tagRemoveChanges(): Observable<KbqTagEvent>;
41
+ /** Combined stream of all of the child tags' edit change events. */
42
+ get tagEditChanges(): Observable<KbqTagEditChange>;
41
43
  /** The array of selected tags inside tag list. */
42
44
  get selected(): KbqTag[] | KbqTag;
43
45
  get canShowCleaner(): boolean;
@@ -98,6 +100,8 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
98
100
  */
99
101
  get selectable(): boolean;
100
102
  set selectable(value: boolean);
103
+ /** Whether the tag list is editable. */
104
+ editable: boolean;
101
105
  get tabIndex(): number;
102
106
  set tabIndex(value: number);
103
107
  private _tabIndex;
@@ -149,11 +153,13 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
149
153
  private tagSelectionSubscription;
150
154
  /** Subscription to remove changes in tags. */
151
155
  private tagRemoveSubscription;
156
+ /** Subscription to edit changes in tags. */
157
+ private tagEditSubscription;
152
158
  private readonly destroyRef;
153
159
  constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, defaultErrorStateMatcher: ErrorStateMatcher, dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, ngControl: NgControl);
154
- ngAfterContentInit(): void;
155
160
  ngOnInit(): void;
156
161
  ngDoCheck(): void;
162
+ ngAfterContentInit(): void;
157
163
  ngOnDestroy(): void;
158
164
  updateErrorState(): void;
159
165
  onTouched: () => void;
@@ -229,6 +235,7 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
229
235
  /** Listens to user-generated selection events on each tag. */
230
236
  private listenToTagsFocus;
231
237
  private listenToTagsRemoved;
238
+ private listenToTagsEdit;
232
239
  /** Checks whether an event comes from inside a tag element. */
233
240
  private originatesFromTag;
234
241
  /** Checks whether any of the tags is focused. */
@@ -239,5 +246,6 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
239
246
  private revalidate;
240
247
  private propagateSelectableToChildren;
241
248
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagList, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }]>;
242
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqTagList, "kbq-tag-list", ["kbqTagList"], { "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, ["cleaner", "tags"], ["*", "kbq-cleaner"], false, never>;
249
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqTagList, "kbq-tag-list", ["kbqTagList"], { "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, ["cleaner", "tags"], ["*", "kbq-cleaner"], false, never>;
250
+ static ngAcceptInputType_editable: unknown;
243
251
  }
@@ -24,6 +24,11 @@
24
24
  padding-bottom: var(--kbq-tag-size-padding-vertical);
25
25
  padding-left: 4px;
26
26
  padding-right: unset;
27
+
28
+ &.kbq-input {
29
+ padding: unset;
30
+ min-height: unset;
31
+ }
27
32
  }
28
33
 
29
34
  .kbq-tags-list__list-container {
@@ -1,12 +1,22 @@
1
- import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, QueryList } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, QueryList } from '@angular/core';
2
2
  import { IFocusableOption } from '@koobiq/cdk/a11y';
3
3
  import { KbqColorDirective, KbqTitleTextRef } from '@koobiq/components/core';
4
4
  import { KbqIcon } from '@koobiq/components/icon';
5
5
  import { Subject } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "@koobiq/components/core";
7
8
  export interface KbqTagEvent {
8
9
  tag: KbqTag;
9
10
  }
11
+ /**
12
+ * Event object emitted by KbqTag when the tag is edited.
13
+ */
14
+ export declare class KbqTagEditChange {
15
+ readonly tag: KbqTag;
16
+ readonly type: 'start' | 'submit' | 'cancel';
17
+ readonly reason: string;
18
+ constructor(tag: KbqTag, type: 'start' | 'submit' | 'cancel', reason: string);
19
+ }
10
20
  /** Event object emitted by KbqTag when selected or deselected. */
11
21
  export declare class KbqTagSelectionChange {
12
22
  source: KbqTag;
@@ -30,20 +40,67 @@ export declare class KbqTagTrailingIcon {
30
40
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagTrailingIcon, never>;
31
41
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTagTrailingIcon, "kbq-tag-trailing-icon, [kbqTagTrailingIcon]", never, {}, {}, never, never, false, never>;
32
42
  }
33
- export declare class KbqTag extends KbqColorDirective implements IFocusableOption, OnDestroy, KbqTitleTextRef, AfterContentInit {
34
- elementRef: ElementRef;
43
+ /**
44
+ * Directive to add submit behavior for the editable tag.
45
+ */
46
+ export declare class KbqTagEditSubmit {
47
+ /** @docs-private */
48
+ protected readonly tag: KbqTag;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagEditSubmit, never>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTagEditSubmit, "[kbqTagEditSubmit]", ["kbqTagEditSubmit"], {}, {}, never, never, true, never>;
51
+ }
52
+ /**
53
+ * Directive to add input behavior for the editable tag.
54
+ */
55
+ export declare class KbqTagEditInput {
56
+ private readonly tag;
57
+ /** @docs-private */
58
+ protected handleKeydown(event: KeyboardEvent): void;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagEditInput, never>;
60
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTagEditInput, "[kbqTagEditInput]", ["kbqTagEditInput"], {}, {}, never, never, true, [{ directive: typeof i1.KbqFieldSizingContent; inputs: {}; outputs: {}; }]>;
61
+ }
62
+ export declare class KbqTag extends KbqColorDirective implements IFocusableOption, OnDestroy, KbqTitleTextRef, AfterContentInit, AfterViewInit {
35
63
  changeDetectorRef: ChangeDetectorRef;
36
64
  private _ngZone;
65
+ private readonly focusMonitor;
66
+ private readonly tagList;
67
+ /** @docs-private */
68
+ readonly elementRef: ElementRef<HTMLElement>;
37
69
  /** Emits when the tag is focused. */
38
70
  readonly onFocus: Subject<KbqTagEvent>;
39
71
  /** Emits when the tag is blurred. */
40
72
  readonly onBlur: Subject<KbqTagEvent>;
41
- nativeElement: HTMLElement;
73
+ /** @docs-private */
74
+ readonly nativeElement: HTMLElement;
42
75
  /** Whether the tag has focus. */
43
76
  hasFocus: boolean;
44
77
  /** Whether the tag list is selectable */
45
78
  tagListSelectable: boolean;
46
- textElement: ElementRef;
79
+ /**
80
+ * Whether the tag list is editable.
81
+ *
82
+ * @docs-private
83
+ */
84
+ private get tagListEditable();
85
+ /** Whether the tag is editable. */
86
+ get editable(): boolean;
87
+ set editable(value: boolean);
88
+ private _editable;
89
+ /** Whether the tag edits can't be submitted. */
90
+ preventEditSubmit: boolean;
91
+ private readonly editInputElementRef;
92
+ /**
93
+ * Emits event when the tag is edited.
94
+ */
95
+ readonly editChange: EventEmitter<KbqTagEditChange>;
96
+ /**
97
+ * @docs-private
98
+ */
99
+ protected readonly editing: import("@angular/core").WritableSignal<boolean>;
100
+ /**
101
+ * @docs-private
102
+ */
103
+ readonly textElement: ElementRef<HTMLSpanElement>;
47
104
  contentChildren: QueryList<KbqIcon>;
48
105
  /** The tag avatar */
49
106
  avatar: KbqTagAvatar;
@@ -86,11 +143,12 @@ export declare class KbqTag extends KbqColorDirective implements IFocusableOptio
86
143
  get disabled(): any;
87
144
  set disabled(value: any);
88
145
  private _disabled;
89
- constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone);
146
+ constructor(changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone);
90
147
  ngAfterContentInit(): void;
148
+ ngAfterViewInit(): void;
149
+ ngOnDestroy(): void;
91
150
  addClassModificatorForIcons(): void;
92
151
  addHostClassName(): void;
93
- ngOnDestroy(): void;
94
152
  select(): void;
95
153
  deselect(): void;
96
154
  selectViaInteraction(): void;
@@ -104,12 +162,24 @@ export declare class KbqTag extends KbqColorDirective implements IFocusableOptio
104
162
  * Informs any listeners of the removal request. Does not remove the tag from the DOM.
105
163
  */
106
164
  remove(): void;
165
+ /** @docs-private */
107
166
  handleMousedown(event: Event): void;
167
+ /** @docs-private */
108
168
  handleKeydown(event: KeyboardEvent): void;
169
+ /** @docs-private */
109
170
  blur(): void;
171
+ /** @docs-private */
172
+ protected handleDblClick(event: MouseEvent): void;
173
+ private startEditing;
174
+ /** @docs-private */
175
+ cancelEditing(reason: string): void;
176
+ /** @docs-private */
177
+ submitEditing(reason: string): void;
110
178
  private dispatchSelectionChange;
111
179
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTag, never>;
112
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqTag, "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", ["kbqTag"], { "selected": { "alias": "selected"; "required": false; }; "value": { "alias": "value"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "selectionChange": "selectionChange"; "destroyed": "destroyed"; "removed": "removed"; }, ["avatar", "trailingIcon", "removeIcon", "contentChildren"], ["[kbq-icon]:not([kbqTagRemove])", "*", "[kbqTagRemove]"], false, never>;
180
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqTag, "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", ["kbqTag"], { "editable": { "alias": "editable"; "required": false; }; "preventEditSubmit": { "alias": "preventEditSubmit"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "value": { "alias": "value"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "editChange": "editChange"; "selectionChange": "selectionChange"; "destroyed": "destroyed"; "removed": "removed"; }, ["editInputElementRef", "avatar", "trailingIcon", "removeIcon", "contentChildren"], ["[kbq-icon]:not([kbqTagRemove]):not([kbqTagEditSubmit])", "[kbqTagEditInput]", "*", "[kbqTagEditSubmit]", "[kbqTagRemove]"], false, never>;
181
+ static ngAcceptInputType_editable: unknown;
182
+ static ngAcceptInputType_preventEditSubmit: unknown;
113
183
  }
114
184
  /**
115
185
  *
@@ -5,6 +5,6 @@ import * as i3 from "./tag-input";
5
5
  import * as i4 from "@angular/cdk/platform";
6
6
  export declare class KbqTagsModule {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagsModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTagsModule, [typeof i1.KbqTagList, typeof i2.KbqTag, typeof i3.KbqTagInput, typeof i2.KbqTagTrailingIcon, typeof i2.KbqTagAvatar, typeof i2.KbqTagRemove], [typeof i4.PlatformModule], [typeof i1.KbqTagList, typeof i2.KbqTag, typeof i3.KbqTagInput, typeof i2.KbqTagTrailingIcon, typeof i2.KbqTagAvatar, typeof i2.KbqTagRemove]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTagsModule, [typeof i1.KbqTagList, typeof i2.KbqTag, typeof i3.KbqTagInput, typeof i2.KbqTagTrailingIcon, typeof i2.KbqTagAvatar, typeof i2.KbqTagRemove], [typeof i4.PlatformModule, typeof i2.KbqTagEditSubmit, typeof i2.KbqTagEditInput], [typeof i1.KbqTagList, typeof i2.KbqTag, typeof i3.KbqTagInput, typeof i2.KbqTagTrailingIcon, typeof i2.KbqTagAvatar, typeof i2.KbqTagRemove, typeof i2.KbqTagEditSubmit, typeof i2.KbqTagEditInput]>;
9
9
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqTagsModule>;
10
10
  }
package/tags/tag.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  @use '../core/styles/common/tokens' as *;
2
2
  @use '../core/styles/common/vendor-prefixes';
3
+ @use '../core/styles/common/input';
3
4
 
4
5
  .kbq-tag {
5
6
  @include vendor-prefixes.user-select(none);
@@ -49,6 +50,23 @@
49
50
  & .kbq-icon_left {
50
51
  margin-left: var(--kbq-tag-size-icon-margin-left);
51
52
  }
53
+
54
+ .kbq-tag-edit-input {
55
+ @include input.kbq-reset-input();
56
+
57
+ min-width: var(--kbq-size-xs);
58
+ max-width: 100%;
59
+
60
+ &.kbq-input {
61
+ min-height: unset !important;
62
+ border-radius: unset !important;
63
+ padding: unset !important;
64
+ }
65
+ }
66
+
67
+ .kbq-tag-edit-submit {
68
+ margin-right: var(--kbq-size-3xs);
69
+ }
52
70
  }
53
71
 
54
72
  .kbq-tag__wrapper {
@@ -2,5 +2,5 @@
2
2
  --kbq-textarea-size-min-height: 64px;
3
3
  --kbq-textarea-size-max-height: 96px;
4
4
  --kbq-textarea-size-padding-vertical: 5px;
5
- --kbq-textarea-size-padding-horizontal: var(--kbq-size-m);
5
+ --kbq-textarea-size-padding-horizontal: 11px;
6
6
  }
@@ -64,7 +64,7 @@ export declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, Control
64
64
  set value(value: D | null);
65
65
  private _value;
66
66
  set kbqValidationTooltip(tooltip: KbqWarningTooltipTrigger);
67
- incorrectInput: EventEmitter<void>;
67
+ readonly incorrectInput: EventEmitter<void>;
68
68
  get hasSelection(): boolean;
69
69
  get isFullFormat(): boolean;
70
70
  get isShortFormat(): boolean;
@@ -1,8 +1,6 @@
1
1
  @use '../core/styles/common/tokens' as *;
2
2
 
3
3
  @mixin kbq-tooltip-color($style-name) {
4
- box-shadow: var(--kbq-tooltip-#{$style-name}-shadow);
5
-
6
4
  & .kbq-tooltip__inner {
7
5
  color: var(--kbq-tooltip-#{$style-name}-text);
8
6
 
@@ -11,11 +9,20 @@
11
9
 
12
10
  & .kbq-tooltip__arrow {
13
11
  background-color: var(--kbq-tooltip-#{$style-name}-background);
12
+ box-shadow: var(--kbq-tooltip-borderless-shadow);
13
+ }
14
+
15
+ &.kbq-tooltip_arrowless {
14
16
  box-shadow: var(--kbq-tooltip-#{$style-name}-shadow);
15
17
  }
16
18
  }
17
19
 
18
20
  @mixin kbq-tooltip-theme() {
21
+ .kbq-tooltip,
22
+ .kbq-tooltip__arrow {
23
+ box-shadow: var(--kbq-tooltip-borderless-shadow);
24
+ }
25
+
19
26
  .kbq-tooltip.kbq-theme {
20
27
  @include kbq-tooltip-color(theme-fade-off);
21
28
  }
@@ -20,4 +20,6 @@
20
20
  --kbq-tooltip-error-fade-off-background: var(--kbq-background-error);
21
21
  --kbq-tooltip-error-fade-off-text: var(--kbq-foreground-white);
22
22
  --kbq-tooltip-error-fade-off-shadow: var(--kbq-shadow-popup);
23
+
24
+ --kbq-tooltip-borderless-shadow: 0 2px 8px var(--kbq-shadow-key), 0 3px 8px var(--kbq-shadow-ambient);
23
25
  }
@@ -78,8 +78,8 @@ export declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipCompone
78
78
  private _color;
79
79
  arrow: boolean;
80
80
  offset: number | null;
81
- placementChange: EventEmitter<any>;
82
- visibleChange: EventEmitter<boolean>;
81
+ readonly placementChange: EventEmitter<any>;
82
+ readonly visibleChange: EventEmitter<boolean>;
83
83
  private get hasClickInTrigger();
84
84
  protected originSelector: string;
85
85
  protected overlayConfig: OverlayConfig;
@@ -77,8 +77,8 @@ export declare class KbqTreeSelection extends KbqTreeBase<any> implements Contro
77
77
  private optionFocusSubscription;
78
78
  private optionBlurSubscription;
79
79
  constructor(elementRef: ElementRef, scheduler: AsyncScheduler, differs: IterableDiffers, changeDetectorRef: ChangeDetectorRef, multiple: MultipleMode, clipboard: Clipboard);
80
- ngAfterViewInit(): void;
81
80
  ngAfterContentInit(): void;
81
+ ngAfterViewInit(): void;
82
82
  ngOnDestroy(): void;
83
83
  focus($event: any): void;
84
84
  highlightSelectedOption(): void;
@@ -210,9 +210,9 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
210
210
  private readonly window;
211
211
  constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, renderer: Renderer2, defaultErrorStateMatcher: ErrorStateMatcher, scrollStrategyFactory: any, dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormField: KbqFormField, ngControl: NgControl, localeService?: KbqLocaleService | undefined);
212
212
  ngOnInit(): void;
213
+ ngDoCheck(): void;
213
214
  ngAfterContentInit(): void;
214
215
  ngAfterViewInit(): void;
215
- ngDoCheck(): void;
216
216
  ngOnDestroy(): void;
217
217
  updateErrorState(): void;
218
218
  hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string;
@@ -0,0 +1,15 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended } from './types';
3
+ /** Default name format: Last name full, first and middle as initials. */
4
+ export declare const kbqDefaultFullNameFormatCustom = "L f. m.";
5
+ /** Default name format: Last name full, first and middle as initials. */
6
+ export declare const kbqDefaultFullNameFormat = "lf.m.";
7
+ /**
8
+ * Throws an error when no profile field mapping is provided to the username pipe.
9
+ * @docs-private
10
+ */
11
+ export declare function KbqMappingMissingError(): Error;
12
+ /**
13
+ * Injection token for providing a global username format-to-profile mapping.
14
+ */
15
+ export declare const KBQ_PROFILE_MAPPING: InjectionToken<KbqFormatKeyToProfileMapping | KbqFormatKeyToProfileMappingExtended>;
@@ -0,0 +1,5 @@
1
+ export * from './constants';
2
+ export * from './module';
3
+ export * from './types';
4
+ export * from './username';
5
+ export * from './username.pipe';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./username";
3
+ import * as i2 from "./username.pipe";
4
+ export declare class KbqUsernameModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqUsernameModule, never, [typeof i1.KbqUsername, typeof i1.KbqUsernameCustomView, typeof i1.KbqUsernamePrimary, typeof i1.KbqUsernameSecondary, typeof i2.KbqUsernameCustomPipe, typeof i2.KbqUsernamePipe], [typeof i1.KbqUsername, typeof i1.KbqUsernameCustomView, typeof i1.KbqUsernamePrimary, typeof i1.KbqUsernameSecondary, typeof i2.KbqUsernameCustomPipe, typeof i2.KbqUsernamePipe]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<KbqUsernameModule>;
8
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Keys for formatting username parts in short (initial) or full form.
3
+ */
4
+ export declare enum KbqUsernameFormatKey {
5
+ /**
6
+ * Short form of the first name (e.g., "John" → "J")
7
+ */
8
+ FirstNameShort = "f",
9
+ /**
10
+ * Full form of the first name (e.g., "John")
11
+ */
12
+ FirstNameFull = "F",
13
+ /**
14
+ * Short form of the middle name (e.g., "Henry" → "H")
15
+ */
16
+ MiddleNameShort = "m",
17
+ /**
18
+ * Full form of the middle name (e.g., "Henry")
19
+ */
20
+ MiddleNameFull = "M",
21
+ /**
22
+ * Short form of the last name (e.g., "Doe" → "D")
23
+ */
24
+ LastNameShort = "l",
25
+ /**
26
+ * Full form of the last name (e.g., "Doe")
27
+ */
28
+ LastNameFull = "L",
29
+ Dot = "."
30
+ }
31
+ /**
32
+ * Maps each format key to a property name in the user profile object.
33
+ * Allows flexible formatting regardless of profile field names.
34
+ */
35
+ export type KbqFormatKeyToProfileMapping<T = any> = {
36
+ [key in Exclude<KbqUsernameFormatKey, KbqUsernameFormatKey.FirstNameFull | KbqUsernameFormatKey.MiddleNameFull | KbqUsernameFormatKey.LastNameFull>]: keyof T | undefined;
37
+ };
38
+ /**
39
+ * Maps each format key to a property name in the user profile object.
40
+ * Allows flexible formatting regardless of profile field names.
41
+ * @see KbqUsernameCustomPipe
42
+ */
43
+ export type KbqFormatKeyToProfileMappingExtended<T = any> = {
44
+ [key in KbqUsernameFormatKey]: keyof T | undefined;
45
+ };
46
+ /**
47
+ * Layout mode for displaying a username and applying text-ellipsis.
48
+ *
49
+ * - `stacked`: Elements shown vertically.
50
+ * - `inline`: Elements shown in one line. Text ellipsis is applied to both parts.
51
+ * - `text`: Plain text, no layout styling. No text-ellipsis.
52
+ */
53
+ export type KbqUsernameMode = 'stacked' | 'inline' | 'text';
54
+ /**
55
+ * Visual style of the username.
56
+ *
57
+ * - `default`: standard styling with primary and secondary colors.
58
+ * - `error`: error colors (e.g., red).
59
+ * - `accented`: no color theming; emphasizes via typography only.
60
+ * - `inherit`: inherits parent styles, no theming. For example, useful when using inside links.
61
+ */
62
+ export type KbqUsernameStyle = 'default' | 'error' | 'accented' | 'inherit';
@@ -0,0 +1,6 @@
1
+ :where(.kbq-username) {
2
+ --kbq-username-primary-color: var(--kbq-foreground-contrast);
3
+ --kbq-username-secondary-color: inherit;
4
+ --kbq-username-vertical-gap: var(--kbq-size-xxs);
5
+ --kbq-username-horizontal-gap: var(--kbq-size-xxs);
6
+ }