@koobiq/components 17.0.0-rc.6 → 17.0.0-rc.8

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 (256) hide show
  1. package/alert/_alert-theme.scss +19 -33
  2. package/alert/alert.component.scss +49 -141
  3. package/autocomplete/_autocomplete-theme.scss +3 -2
  4. package/autocomplete/autocomplete.scss +7 -14
  5. package/badge/_badge-theme.scss +31 -45
  6. package/badge/badge.component.scss +18 -38
  7. package/button/_button-base.scss +7 -13
  8. package/button/_button-theme.scss +29 -85
  9. package/button/button.component.d.ts +3 -2
  10. package/button/button.scss +7 -16
  11. package/button-toggle/_button-toggle-theme.scss +18 -18
  12. package/button-toggle/button-toggle.scss +14 -34
  13. package/card/_card-theme.scss +19 -17
  14. package/card/card.component.scss +2 -4
  15. package/checkbox/_checkbox-theme.scss +44 -43
  16. package/checkbox/checkbox.scss +23 -21
  17. package/code-block/_code-block-theme.scss +27 -26
  18. package/code-block/actionbar.component.scss +7 -18
  19. package/code-block/code-block.scss +21 -66
  20. package/core/form-field/form-field-ref.d.ts +2 -0
  21. package/core/forms/_forms-theme.scss +4 -7
  22. package/core/forms/_forms.scss +13 -42
  23. package/core/locales/locale-service.d.ts +1 -0
  24. package/core/option/_optgroup-theme.scss +4 -5
  25. package/core/option/_option-action-theme.scss +7 -7
  26. package/core/option/_option-theme.scss +16 -20
  27. package/core/select/common.d.ts +35 -0
  28. package/core/select/index.d.ts +1 -0
  29. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +16 -19
  30. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +9 -8
  31. package/core/styles/common/_groups.scss +3 -5
  32. package/core/styles/common/_list.scss +14 -18
  33. package/core/styles/common/_popup.scss +5 -4
  34. package/core/styles/common/_select.scss +11 -16
  35. package/core/styles/common/_tokens.scss +30 -9
  36. package/core/styles/theming/_components-theming.scss +151 -131
  37. package/core/styles/visual/_layout.scss +14 -16
  38. package/datepicker/_datepicker-theme.scss +24 -39
  39. package/datepicker/calendar-body.scss +3 -8
  40. package/datepicker/calendar-header.scss +4 -9
  41. package/datepicker/calendar.scss +5 -16
  42. package/datepicker/datepicker-content.scss +4 -12
  43. package/datepicker/datepicker-input.scss +0 -4
  44. package/datepicker/datepicker-toggle.scss +3 -2
  45. package/divider/_divider-theme.scss +3 -1
  46. package/divider/divider.scss +9 -25
  47. package/dl/_dl-theme.scss +5 -6
  48. package/dl/dl.scss +5 -19
  49. package/dropdown/_dropdown-theme.scss +21 -21
  50. package/dropdown/dropdown-item.scss +5 -11
  51. package/dropdown/dropdown-trigger.directive.d.ts +2 -2
  52. package/dropdown/dropdown.scss +6 -14
  53. package/esm2022/alert/alert.component.mjs +2 -2
  54. package/esm2022/badge/badge.component.mjs +2 -2
  55. package/esm2022/button/button.component.mjs +13 -6
  56. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  57. package/esm2022/checkbox/checkbox.mjs +2 -2
  58. package/esm2022/code-block/actionbar.component.mjs +2 -2
  59. package/esm2022/code-block/code-block.component.mjs +2 -2
  60. package/esm2022/core/form-field/form-field-ref.mjs +1 -1
  61. package/esm2022/core/locales/locale-service.mjs +5 -2
  62. package/esm2022/core/option/option.mjs +2 -2
  63. package/esm2022/core/select/common.mjs +120 -0
  64. package/esm2022/core/select/index.mjs +2 -1
  65. package/esm2022/core/version.mjs +2 -2
  66. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  67. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  68. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -4
  69. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  70. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  71. package/esm2022/form-field/form-field.mjs +2 -2
  72. package/esm2022/form-field/hint.mjs +2 -2
  73. package/esm2022/form-field/password-hint.mjs +2 -2
  74. package/esm2022/icon/icon-item.component.mjs +16 -6
  75. package/esm2022/list/list-selection.component.mjs +2 -2
  76. package/esm2022/list/list.component.mjs +2 -2
  77. package/esm2022/markdown/markdown.component.mjs +2 -2
  78. package/esm2022/navbar/navbar-item.component.mjs +2 -2
  79. package/esm2022/navbar/navbar.component.mjs +2 -2
  80. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  81. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  82. package/esm2022/popover/popover.component.mjs +3 -3
  83. package/esm2022/radio/radio.component.mjs +2 -2
  84. package/esm2022/scrollbar/scrollbar.component.mjs +2 -2
  85. package/esm2022/select/select.component.mjs +18 -114
  86. package/esm2022/select/select.module.mjs +28 -28
  87. package/esm2022/table/table.component.mjs +2 -2
  88. package/esm2022/tabs/tab-group.component.mjs +54 -12
  89. package/esm2022/tabs/tab-header.component.mjs +2 -2
  90. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
  91. package/esm2022/tags/tag-default-options.mjs +1 -1
  92. package/esm2022/tags/tag-input.mjs +17 -3
  93. package/esm2022/tags/tag-list.component.mjs +2 -2
  94. package/esm2022/tags/tag.component.mjs +2 -2
  95. package/esm2022/timepicker/timepicker.directive.mjs +10 -2
  96. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  97. package/esm2022/timezone/timezone-select.component.mjs +5 -5
  98. package/esm2022/title/title.directive.mjs +2 -2
  99. package/esm2022/toast/toast.component.mjs +3 -3
  100. package/esm2022/toast/toast.service.mjs +17 -12
  101. package/esm2022/tooltip/tooltip.component.mjs +2 -2
  102. package/esm2022/tree/tree-option.component.mjs +2 -2
  103. package/esm2022/tree-select/tree-select.component.mjs +9 -37
  104. package/esm2022/tree-select/tree-select.module.mjs +31 -11
  105. package/fesm2022/koobiq-components-alert.mjs +2 -2
  106. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-badge.mjs +2 -2
  108. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  110. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-button.mjs +12 -5
  112. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  114. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-code-block.mjs +4 -4
  116. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-core.mjs +124 -7
  118. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-datepicker.mjs +1 -1
  120. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-dropdown.mjs +5 -5
  122. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  124. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-form-field.mjs +6 -6
  126. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-icon.mjs +14 -4
  128. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-list.mjs +4 -4
  130. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  132. package/fesm2022/koobiq-components-navbar.mjs +6 -6
  133. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-popover.mjs +4 -4
  135. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-radio.mjs +2 -2
  137. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
  139. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-select.mjs +46 -142
  141. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-table.mjs +2 -2
  143. package/fesm2022/koobiq-components-tabs.mjs +56 -14
  144. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-tags.mjs +20 -7
  146. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-timepicker.mjs +9 -1
  148. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-timezone.mjs +6 -6
  150. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-title.mjs +1 -1
  152. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-toast.mjs +19 -13
  154. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  156. package/fesm2022/koobiq-components-tree-select.mjs +37 -44
  157. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-tree.mjs +2 -2
  159. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  160. package/file-upload/_file-upload-theme.scss +109 -68
  161. package/file-upload/file-upload.scss +0 -5
  162. package/file-upload/multiple-file-upload.component.scss +35 -99
  163. package/file-upload/single-file-upload.component.scss +12 -31
  164. package/form-field/_form-field-theme.scss +32 -34
  165. package/form-field/_hint-theme.scss +16 -19
  166. package/form-field/cleaner.scss +3 -8
  167. package/form-field/form-field.scss +11 -12
  168. package/form-field/hint.scss +5 -7
  169. package/form-field/password-toggle.scss +3 -9
  170. package/form-field/stepper.scss +4 -10
  171. package/icon/_icon-button-theme.scss +35 -35
  172. package/icon/_icon-item-theme.scss +46 -31
  173. package/icon/_icon-theme.scss +9 -15
  174. package/icon/icon-button.scss +5 -17
  175. package/icon/icon-item.component.d.ts +3 -1
  176. package/icon/icon-item.scss +12 -7
  177. package/icon/icon.scss +0 -5
  178. package/input/_input-theme.scss +2 -3
  179. package/input/input.scss +2 -1
  180. package/link/_link-theme.scss +25 -42
  181. package/list/_list-theme.scss +18 -17
  182. package/list/list.scss +3 -5
  183. package/loader-overlay/_loader-overlay-theme.scss +13 -16
  184. package/loader-overlay/loader-overlay.scss +9 -32
  185. package/markdown/_markdown-theme.scss +41 -44
  186. package/markdown/markdown.scss +38 -88
  187. package/modal/_modal-confirm.scss +2 -6
  188. package/modal/_modal-theme.scss +11 -12
  189. package/modal/modal.scss +18 -24
  190. package/navbar/_navbar-item_horizontal.scss +28 -28
  191. package/navbar/_navbar-item_vertical.scss +31 -30
  192. package/navbar/_navbar-theme.scss +21 -22
  193. package/navbar/navbar-brand.scss +24 -26
  194. package/navbar/navbar-divider.scss +4 -7
  195. package/navbar/navbar-item.scss +11 -13
  196. package/navbar/navbar.scss +2 -5
  197. package/navbar/vertical-navbar.scss +3 -5
  198. package/package.json +9 -9
  199. package/popover/_popover-theme.scss +9 -16
  200. package/popover/popover.scss +18 -24
  201. package/prebuilt-themes/dark-theme.css +1 -1
  202. package/prebuilt-themes/light-theme.css +1 -1
  203. package/progress-bar/_progress-bar-theme.scss +7 -10
  204. package/progress-bar/progress-bar.scss +6 -18
  205. package/progress-spinner/_progress-spinner-theme.scss +6 -7
  206. package/progress-spinner/progress-spinner.scss +8 -17
  207. package/radio/_radio-theme.scss +29 -37
  208. package/radio/radio.scss +20 -39
  209. package/risk-level/_risk-level-theme.scss +25 -30
  210. package/risk-level/risk-level.component.scss +5 -8
  211. package/schematics/ng-add/index.js +6 -6
  212. package/scrollbar/_scrollbar-component-theme.scss +14 -17
  213. package/scrollbar/scrollbar.component.scss +13 -20
  214. package/select/_select-theme.scss +14 -15
  215. package/select/select.component.d.ts +2 -32
  216. package/select/select.module.d.ts +1 -1
  217. package/select/select.scss +3 -10
  218. package/sidepanel/_sidepanel-theme.scss +8 -9
  219. package/sidepanel/sidepanel.scss +19 -30
  220. package/splitter/_splitter-theme.scss +3 -3
  221. package/table/_table-theme.scss +9 -8
  222. package/table/table.scss +12 -12
  223. package/tabs/_tabs-common.scss +4 -7
  224. package/tabs/_tabs-theme.scss +77 -44
  225. package/tabs/tab-group.component.d.ts +9 -3
  226. package/tabs/tab-group.scss +2 -7
  227. package/tabs/tab-header.scss +0 -4
  228. package/tabs/tab-nav-bar/tab-nav-bar.scss +2 -7
  229. package/tags/_tag-theme.scss +23 -26
  230. package/tags/tag-default-options.d.ts +1 -0
  231. package/tags/tag-input.d.ts +7 -1
  232. package/tags/tag-list.scss +6 -5
  233. package/tags/tag.scss +6 -9
  234. package/textarea/_textarea-theme.scss +2 -4
  235. package/textarea/textarea.scss +4 -6
  236. package/timepicker/timepicker.scss +2 -7
  237. package/timezone/_timezone-option-theme.scss +8 -9
  238. package/timezone/timezone-option.component.scss +5 -7
  239. package/timezone/timezone-select.component.d.ts +2 -1
  240. package/timezone/timezone-select.component.scss +2 -3
  241. package/toast/_toast-theme.scss +15 -14
  242. package/toast/toast-container.component.scss +4 -7
  243. package/toast/toast.component.scss +20 -25
  244. package/toast/toast.service.d.ts +8 -4
  245. package/toggle/_toggle-theme.scss +48 -42
  246. package/toggle/toggle.scss +9 -21
  247. package/tooltip/_tooltip-theme.scss +13 -16
  248. package/tooltip/tooltip.scss +8 -10
  249. package/tree/_tree-theme.scss +20 -22
  250. package/tree/toggle.scss +3 -5
  251. package/tree/tree-option.scss +5 -6
  252. package/tree-select/_tree-select-theme.scss +12 -14
  253. package/tree-select/tree-select.component.d.ts +4 -17
  254. package/tree-select/tree-select.module.d.ts +1 -2
  255. package/tree-select/tree-select.scss +1 -5
  256. package/core/styles/_variables.scss +0 -1
@@ -1,10 +1,7 @@
1
1
  @use 'sass:meta';
2
2
  @use 'sass:map';
3
3
 
4
- @use '../core/styles/tokens';
5
-
6
-
7
- $tokens: meta.module-variables(tokens) !default;
4
+ @use '../core/styles/common/tokens' as *;
8
5
 
9
6
 
10
7
  .kbq-badge {
@@ -12,7 +9,7 @@ $tokens: meta.module-variables(tokens) !default;
12
9
  flex-direction: row;
13
10
  justify-content: flex-start;
14
11
  align-items: center;
15
-
12
+ height: var(--kbq-badge-size-normal-height, map.get($tokens, badge-size-normal-height));
16
13
  text-align: center;
17
14
  white-space: nowrap;
18
15
 
@@ -20,64 +17,47 @@ $tokens: meta.module-variables(tokens) !default;
20
17
 
21
18
  box-sizing: border-box;
22
19
 
23
- padding:
24
- var(--kbq-badge-size-normal-vertical-padding, map.get($tokens, badge-size-normal-vertical-padding))
25
- var(--kbq-badge-size-normal-horizontal-padding, map.get($tokens, badge-size-normal-horizontal-padding));
20
+ padding-right: kbq-css-variable(badge-size-normal-horizontal-padding);
21
+ padding-left: kbq-css-variable(badge-size-normal-horizontal-padding);
26
22
 
27
23
  border: {
28
- width: var(--kbq-badge-size-normal-border-width, map.get($tokens, badge-size-normal-border-width));
29
- radius: var(--kbq-badge-size-normal-border-radius, map.get($tokens, badge-size-normal-border-radius));
24
+ width: kbq-css-variable(badge-size-normal-border-width);
25
+ radius: kbq-css-variable(badge-size-normal-border-radius);
30
26
  }
31
27
 
32
28
  & .kbq-badge-caption {
33
- padding-left:
34
- var(--kbq-badge-size-normal-content-padding, map.get($tokens, badge-size-normal-content-padding));
29
+ padding-left: kbq-css-variable(badge-size-normal-content-padding);
35
30
  }
36
31
 
37
32
  & .kbq-icon_left {
38
- margin-right: var(
39
- --kbq-badge-size-normal-icon-left-margin-right,
40
- map.get($tokens, badge-size-normal-icon-left-margin-right)
41
- );
33
+ margin-right: kbq-css-variable(badge-size-normal-icon-left-margin-right);
42
34
  }
43
35
 
44
36
  & .kbq-icon_right {
45
- margin-left: var(
46
- --kbq-badge-size-normal-icon-right-margin-left,
47
- map.get($tokens, badge-size-normal-icon-right-margin-left)
48
- );
37
+ margin-left: kbq-css-variable(badge-size-normal-icon-right-margin-left);
49
38
  }
50
39
 
51
40
  &.kbq-badge_compact {
52
- padding:
53
- var(--kbq-badge-size-compact-vertical-padding, map.get($tokens, badge-size-compact-vertical-padding))
54
- var(
55
- --kbq-badge-size-compact-horizontal-padding,
56
- map.get($tokens, badge-size-compact-horizontal-padding)
57
- );
41
+ height: var(--kbq-badge-size-compact-height, map.get($tokens, badge-size-compact-height));
42
+
43
+ padding-right: kbq-css-variable(badge-size-compact-horizontal-padding);
44
+ padding-left: kbq-css-variable(badge-size-compact-horizontal-padding);
58
45
 
59
46
  border: {
60
- width: var(--kbq-badge-size-compact-border-width, map.get($tokens, badge-size-compact-border-width));
61
- radius: var(--kbq-badge-size-compact-border-radius, map.get($tokens, badge-size-compact-border-radius));
47
+ width: kbq-css-variable(badge-size-compact-border-width);
48
+ radius: kbq-css-variable(badge-size-compact-border-radius);
62
49
  }
63
50
 
64
51
  & .kbq-badge-caption {
65
- padding-left:
66
- var(--kbq-badge-size-compact-content-padding, map.get($tokens, badge-size-compact-content-padding));
52
+ padding-left: kbq-css-variable(badge-size-compact-content-padding);
67
53
  }
68
54
 
69
55
  & .kbq-icon_left {
70
- margin-right: var(
71
- --kbq-badge-size-compact-icon-left-margin-right,
72
- map.get($tokens, badge-size-compact-icon-left-margin-right)
73
- );
56
+ margin-right: kbq-css-variable(badge-size-compact-icon-left-margin-right);
74
57
  }
75
58
 
76
59
  & .kbq-icon_right {
77
- margin-left: var(
78
- --kbq-badge-size-compact-icon-right-margin-left,
79
- map.get($tokens, badge-size-compact-icon-right-margin-left)
80
- );
60
+ margin-left: kbq-css-variable(badge-size-compact-icon-right-margin-left);
81
61
  }
82
62
  }
83
63
  }
@@ -3,11 +3,9 @@
3
3
 
4
4
  @use '../core/styles/common/button';
5
5
 
6
- @use '../core/styles/tokens';
6
+ @use '../core/styles/common/tokens' as *;
7
7
 
8
8
 
9
- $tokens: meta.module-variables(tokens) !default;
10
-
11
9
  %kbq-button-base {
12
10
  @include button.kbq-button-reset();
13
11
 
@@ -21,8 +19,8 @@ $tokens: meta.module-variables(tokens) !default;
21
19
 
22
20
  margin: 0; /* Safari */
23
21
 
24
- height: var(--kbq-button-size-height, map.get($tokens, button-size-height));
25
- min-height: var(--kbq-button-size-height, map.get($tokens, button-size-height));
22
+ height: kbq-css-variable(button-size-height);
23
+ min-height: kbq-css-variable(button-size-height);
26
24
 
27
25
  white-space: nowrap;
28
26
 
@@ -31,8 +29,8 @@ $tokens: meta.module-variables(tokens) !default;
31
29
 
32
30
  vertical-align: baseline;
33
31
 
34
- border: var(--kbq-button-size-border-width, map.get($tokens, button-size-border-width)) solid transparent;
35
- border-radius: var(--kbq-button-size-border-radius, map.get($tokens, button-size-border-radius));
32
+ border: kbq-css-variable(button-size-border-width) solid transparent;
33
+ border-radius: kbq-css-variable(button-size-border-radius);
36
34
 
37
35
  &::-moz-focus-inner {
38
36
  border: 0;
@@ -56,14 +54,10 @@ $tokens: meta.module-variables(tokens) !default;
56
54
  }
57
55
 
58
56
  & .kbq-icon_left {
59
- margin-right: var(
60
- --kbq-button-size-content-padding, map.get($tokens, button-size-content-padding)
61
- );
57
+ margin-right: kbq-css-variable(button-size-content-padding);
62
58
  }
63
59
 
64
60
  & .kbq-icon_right {
65
- margin-left: var(
66
- --kbq-button-size-content-padding, map.get($tokens, button-size-content-padding)
67
- );
61
+ margin-left: kbq-css-variable(button-size-content-padding);
68
62
  }
69
63
  }
@@ -2,6 +2,7 @@
2
2
  @use 'sass:map';
3
3
 
4
4
  @use '../core/styles/typography/typography-utils' as *;
5
+ @use '../core/styles/common/tokens' as *;
5
6
 
6
7
 
7
8
  @mixin _icon($left-icon, $right-icon) {
@@ -18,85 +19,43 @@
18
19
  }
19
20
  }
20
21
 
21
- @mixin kbq-filled-button($params) {
22
- border-color: map.get($params, border);
23
- color: map.get($params, foreground);
24
- background: map.get($params, background);
22
+ @mixin kbq-button-type($component, $type, $sub-type) {
23
+ $style: map.get($component, $type, $sub-type);
24
+ $base-path: button-#{$type}-#{$sub-type};
25
25
 
26
- @include _icon(map.get($params, left-icon), map.get($params, right-icon));
26
+ border-color: kbq-css-variable(#{$base-path}-border, map.get($style, border));
27
+ color: kbq-css-variable(#{$base-path}-foreground, map.get($style, foreground));
28
+ background: kbq-css-variable(#{$base-path}-background, map.get($style, background));
27
29
 
28
- &:hover:not(.kbq-disabled),
29
- &.kbq-hover:not(.kbq-disabled) {
30
- background: map.get($params, states_hover_background);
31
- }
32
-
33
- &:active:not(.kbq-disabled),
34
- &.kbq-active:not(.kbq-disabled) {
35
- background: map.get($params, states_active_background);
36
- }
37
-
38
- &.kbq-disabled {
39
- color: map.get($params, states_disabled_foreground);
40
- background: map.get($params, states_disabled_background);
41
-
42
- @include _icon(map.get($params, states_disabled_left-icon), map.get($params, states_disabled_left-icon));
43
- }
44
- }
45
-
46
- @mixin kbq-outline-button($params) {
47
- border-color: map.get($params, border);
48
- color: map.get($params, foreground);
49
- background: map.get($params, background);
50
-
51
- @include _icon(map.get($params, left-icon), map.get($params, right-icon));
30
+ @include _icon(
31
+ kbq-css-variable(#{$base-path}-left-icon, map.get($style, left-icon)),
32
+ kbq-css-variable(#{$base-path}-right-icon, map.get($style, right-icon))
33
+ );
52
34
 
53
35
  &:hover:not(.kbq-disabled),
54
36
  &.kbq-hover:not(.kbq-disabled) {
55
- background: map.get($params, states_hover_background);
37
+ background: kbq-css-variable(#{$base-path}-states-hover-background, map.get($style, states-hover-background));
56
38
  }
57
39
 
58
40
  &:active:not(.kbq-disabled),
59
41
  &.kbq-active:not(.kbq-disabled) {
60
- background: map.get($params, states_active_background);
42
+ background: kbq-css-variable(#{$base-path}-states-active-background, map.get($style, states-active-background));
61
43
  }
62
44
 
63
45
  &.kbq-disabled {
64
- border-color: map.get($params, states_disabled_border);
65
- color: map.get($params, states_disabled_foreground);
66
-
67
- @include _icon(map.get($params, states_disabled_left-icon), map.get($params, states_disabled_left-icon));
68
- }
69
- }
70
-
71
- @mixin kbq-transparent-button($params) {
72
- border-color: map.get($params, border);
73
- color: map.get($params, foreground);
74
- background: map.get($params, background);
75
-
76
- @include _icon(map.get($params, left-icon), map.get($params, right-icon));
77
-
78
- &:hover:not(.kbq-disabled),
79
- &.kbq-hover:not(.kbq-disabled) {
80
- background: map.get($params, states_hover_background);
81
- }
82
-
83
- &:active:not(.kbq-disabled),
84
- &.kbq-active:not(.kbq-disabled) {
85
- background: map.get($params, states_active_background);
86
- }
87
-
88
- &.kbq-disabled {
89
- border-color: map.get($params, states_disabled_border);
90
- color: map.get($params, states_disabled_foreground);
91
-
92
- @include _icon(map.get($params, states_disabled_left-icon), map.get($params, states_disabled_left-icon));
46
+ color: kbq-css-variable(#{$base-path}-states-disabled-foreground, map.get($style, states-disabled-foreground));
47
+ background: kbq-css-variable(
48
+ #{$base-path}-states-disabled-background, map.get($style, states-disabled-background)
49
+ );
50
+
51
+ @include _icon(
52
+ kbq-css-variable(#{$base-path}-states-disabled-left-icon, map.get($style, states-disabled-left-icon)),
53
+ kbq-css-variable(#{$base-path}-states-disabled-right-icon, map.get($style, states-disabled-right-icon))
54
+ );
93
55
  }
94
56
  }
95
57
 
96
58
  @mixin kbq-button-theme($theme) {
97
- $primary: map.get($theme, theme);
98
- $background: map.get($theme, background);
99
-
100
59
  $button: map.get(map.get($theme, components), button);
101
60
 
102
61
  .kbq-button-overlay {
@@ -109,43 +68,31 @@
109
68
 
110
69
  &.kbq-button_filled {
111
70
  &.kbq-contrast {
112
- $filled-contrast: map.get(map.get($button, filled), contrast-fade-off);
113
-
114
- @include kbq-filled-button($filled-contrast);
71
+ @include kbq-button-type($button, filled, contrast-fade-off);
115
72
  }
116
73
 
117
74
  &.kbq-contrast-fade {
118
- $filled-fade-contrast: map.get(map.get($button, filled), contrast-fade-on);
119
-
120
- @include kbq-filled-button($filled-fade-contrast);
75
+ @include kbq-button-type($button, filled, contrast-fade-on);
121
76
  }
122
77
  }
123
78
 
124
79
  &.kbq-button_outline {
125
80
  &.kbq-theme-fade {
126
- $outline-theme-fade-on: map.get(map.get($button, outline), theme-fade-on);
127
-
128
- @include kbq-outline-button($outline-theme-fade-on);
81
+ @include kbq-button-type($button, outline, theme-fade-on);
129
82
  }
130
83
 
131
84
  &.kbq-contrast-fade {
132
- $outline-contrast-fade-on: map.get(map.get($button, outline), contrast-fade-on);
133
-
134
- @include kbq-outline-button($outline-contrast-fade-on);
85
+ @include kbq-button-type($button, outline, contrast-fade-on);
135
86
  }
136
87
  }
137
88
 
138
89
  &.kbq-button_transparent {
139
90
  &.kbq-theme {
140
- $transparent-theme: map.get(map.get($button, transparent), theme);
141
-
142
- @include kbq-transparent-button($transparent-theme);
91
+ @include kbq-button-type($button, transparent, theme);
143
92
  }
144
93
 
145
94
  &.kbq-contrast {
146
- $transparent-contrast: map.get(map.get($button, transparent), contrast);
147
-
148
- @include kbq-transparent-button($transparent-contrast);
95
+ @include kbq-button-type($button, transparent, contrast);
149
96
  }
150
97
  }
151
98
 
@@ -160,11 +107,9 @@
160
107
  }
161
108
 
162
109
  @mixin kbq-button-typography($config) {
163
- $tokens: map.get($config, tokens);
164
-
165
110
  .kbq-button,
166
111
  .kbq-button-icon {
167
- @include kbq-typography-level-to-styles($config, map.get($tokens, button-font-default));
112
+ @include kbq-typography-css-variables(button, default);
168
113
  }
169
114
 
170
115
  .kbq-button-icon.kbq-button-wrapper {
@@ -173,4 +118,3 @@
173
118
  }
174
119
  }
175
120
  }
176
-
@@ -1,6 +1,6 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { ChangeDetectorRef, ElementRef, OnDestroy, Renderer2, QueryList, AfterContentInit } from '@angular/core';
3
- import { CanColor, CanDisable, CanColorCtor, HasTabIndexCtor } from '@koobiq/components/core';
3
+ import { CanColor, CanDisable, CanColorCtor, HasTabIndexCtor, KbqTitleTextRef } from '@koobiq/components/core';
4
4
  import { KbqIcon } from '@koobiq/components/icon';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare enum KbqButtonStyles {
@@ -32,10 +32,11 @@ export declare class KbqButtonBase {
32
32
  }
33
33
  /** @docs-private */
34
34
  export declare const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor & typeof KbqButtonBase;
35
- export declare class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor {
35
+ export declare class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor, KbqTitleTextRef {
36
36
  private focusMonitor;
37
37
  private styler;
38
38
  hasFocus: boolean;
39
+ textElement: ElementRef;
39
40
  get kbqStyle(): string;
40
41
  set kbqStyle(value: string | KbqButtonStyles);
41
42
  private _kbqStyle;
@@ -4,6 +4,7 @@
4
4
  @use 'button-base' as *;
5
5
 
6
6
  @use '../core/styles/tokens';
7
+ @use '../core/styles/common/tokens' as *;
7
8
 
8
9
 
9
10
  $tokens: meta.module-variables(tokens) !default;
@@ -13,22 +14,18 @@ $tokens: meta.module-variables(tokens) !default;
13
14
 
14
15
  // base padding + compensation (4px) - border-width (2px)
15
16
  padding-left: calc(
16
- var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding)) +
17
- 4px -
18
- var(--kbq-button-size-border-width, map.get($tokens, button-size-border-width))
17
+ var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding)) + 4px
19
18
  );
20
19
  padding-right: calc(
21
- var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding)) +
22
- 4px -
23
- var(--kbq-button-size-border-width, map.get($tokens, button-size-border-width))
20
+ var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding)) + 4px
24
21
  );
25
22
 
26
23
  &.kbq-button-icon_left {
27
- padding-left: var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding));
24
+ padding-left: kbq-css-variable(button-size-horizontal-padding);
28
25
  }
29
26
 
30
27
  &.kbq-button-icon_right {
31
- padding-right: var(--kbq-button-size-horizontal-padding, map.get($tokens, button-size-horizontal-padding));
28
+ padding-right: kbq-css-variable(button-size-horizontal-padding);
32
29
  }
33
30
  }
34
31
 
@@ -39,15 +36,9 @@ $tokens: meta.module-variables(tokens) !default;
39
36
  .kbq-button-icon {
40
37
  @extend %kbq-button-base;
41
38
 
42
- padding-left: calc(
43
- var(--kbq-button-icon-size-horizontal-padding, map.get($tokens, button-icon-size-horizontal-padding)) -
44
- var(--kbq-button-size-border-width, map.get($tokens, button-size-border-width))
45
- );
39
+ padding-left: kbq-css-variable(button-icon-size-horizontal-padding);
46
40
 
47
- padding-right: calc(
48
- var(--kbq-button-icon-size-horizontal-padding, map.get($tokens, button-icon-size-horizontal-padding)) -
49
- var(--kbq-button-size-border-width, map.get($tokens, button-size-border-width))
50
- );
41
+ padding-right: kbq-css-variable(button-icon-size-horizontal-padding);
51
42
  }
52
43
 
53
44
  .kbq-button-overlay {
@@ -3,18 +3,18 @@
3
3
 
4
4
  @use '../core/styles/typography/typography-utils' as *;
5
5
 
6
- @use '../core/styles/tokens';
6
+ @use '../core/styles/common/tokens' as *;
7
7
 
8
8
 
9
- $tokens: meta.module-variables(tokens) !default;
9
+ @mixin kbq-button-toggle-state($component, $state-name) {
10
+ $state: map.get($component, $state-name);
10
11
 
11
- @mixin kbq-button-toggle-color($state) {
12
- background: map.get($state, background);
12
+ background: kbq-css-variable(button-toggle-item-#{$state-name}-background, map.get($state, background));
13
13
 
14
- color: map.get($state, text);
14
+ color: kbq-css-variable(button-toggle-item-#{$state-name}-text, map.get($state, text));
15
15
 
16
16
  & .kbq-icon {
17
- color: map.get($state, icon);
17
+ color: kbq-css-variable(button-toggle-item-#{$state-name}-icon, map.get($state, icon));
18
18
  }
19
19
  }
20
20
 
@@ -22,43 +22,43 @@ $tokens: meta.module-variables(tokens) !default;
22
22
  $button-toggle: map.get(map.get($theme, components), button-toggle);
23
23
 
24
24
  .kbq-button-toggle-group {
25
- $container: map.get($button-toggle, container);
26
-
27
- background: map.get($container, background);
25
+ background: kbq-css-variable(
26
+ button-toggle-container-background, map.get($button-toggle, container, background)
27
+ );
28
28
 
29
29
  .kbq-button-toggle {
30
30
  $button: map.get($button-toggle, item);
31
31
 
32
32
  & > .kbq-button,
33
33
  & > .kbq-icon-button {
34
- @include kbq-button-toggle-color(map.get($button, default));
34
+ @include kbq-button-toggle-state($button, default);
35
35
 
36
36
  &:hover:not(.kbq-disabled) {
37
- @include kbq-button-toggle-color(map.get($button, hover));
37
+ @include kbq-button-toggle-state($button, states-hover);
38
38
  }
39
39
 
40
40
  &:active:not(.kbq-disabled) {
41
- @include kbq-button-toggle-color(map.get($button, active));
41
+ @include kbq-button-toggle-state($button, states-active);
42
42
  }
43
43
 
44
44
  &.kbq-selected:not(.kbq-disabled) {
45
- @include kbq-button-toggle-color(map.get($button, selected));
45
+ @include kbq-button-toggle-state($button, states-selected);
46
46
 
47
47
  &:hover {
48
- @include kbq-button-toggle-color(map.get($button, selected-hover));
48
+ @include kbq-button-toggle-state($button, states-selected-hover);
49
49
  }
50
50
 
51
51
  &:active {
52
- @include kbq-button-toggle-color(map.get($button, selected-active));
52
+ @include kbq-button-toggle-state($button, states-selected-active);
53
53
  }
54
54
  }
55
55
 
56
56
  &.kbq-disabled {
57
- @include kbq-button-toggle-color(map.get($button, disabled));
57
+ @include kbq-button-toggle-state($button, states-disabled);
58
58
  }
59
59
 
60
60
  &.kbq-disabled.kbq-selected {
61
- @include kbq-button-toggle-color(map.get($button, selected-disabled));
61
+ @include kbq-button-toggle-state($button, states-selected-disabled);
62
62
  }
63
63
 
64
64
  &.cdk-keyboard-focused {
@@ -71,7 +71,7 @@ $tokens: meta.module-variables(tokens) !default;
71
71
 
72
72
  @mixin kbq-button-toggle-typography($config) {
73
73
  .kbq-button-toggle .kbq-button-toggle-wrapper {
74
- @include kbq-typography-level-to-styles($config, map.get($tokens, button-toggle-font-item));
74
+ @include kbq-typography-css-variables(button-toggle, item);
75
75
  }
76
76
  }
77
77
 
@@ -4,6 +4,7 @@
4
4
  @use '../core/styles/common';
5
5
 
6
6
  @use '../core/styles/tokens';
7
+ @use '../core/styles/common/tokens' as *;
7
8
 
8
9
 
9
10
  $tokens: meta.module-variables(tokens) !default;
@@ -14,46 +15,31 @@ $tokens: meta.module-variables(tokens) !default;
14
15
  flex-direction: row;
15
16
  align-items: center;
16
17
 
17
- gap: var(
18
- --kbq-button-toggle-size-container-content-gap-horizontal,
19
- map.get($tokens, button-toggle-size-container-content-gap-horizontal)
20
- );
18
+ gap: kbq-css-variable(button-toggle-size-container-content-gap-horizontal);
21
19
 
22
- border-radius: var(
23
- --kbq-button-toggle-size-container-border-radius,
24
- map.get($tokens, button-toggle-size-container-border-radius)
25
- );
20
+ border-radius: kbq-css-variable(button-toggle-size-container-border-radius);
26
21
 
27
22
  padding:
28
- var(
29
- --kbq-button-toggle-size-container-padding-vertical,
30
- map.get($tokens, button-toggle-size-container-padding-vertical)
31
- )
32
- var(
33
- --kbq-button-toggle-size-container-padding-horizontal,
34
- map.get($tokens, button-toggle-size-container-padding-horizontal)
35
- );
23
+ kbq-css-variable(button-toggle-size-container-padding-vertical)
24
+ kbq-css-variable(button-toggle-size-container-padding-horizontal);
36
25
 
37
26
  .kbq-button-toggle {
38
27
  display: flex;
39
28
  overflow: hidden;
40
29
  justify-content: flex-start;
30
+ align-items: center;
31
+
32
+ height: kbq-css-variable(button-toggle-size-item-height);
41
33
 
42
34
  $padding-vertical: map.get($tokens, button-toggle-size-item-padding-vertical);
43
35
  $padding-horizontal: map.get($tokens, button-toggle-size-item-padding-horizontal);
44
36
  $outline-width: map.get($tokens, button-toggle-size-item-focus-outline-width);
45
37
 
46
- border-radius: var(
47
- --kbq-button-toggle-size-item-border-radius,
48
- map.get($tokens, button-toggle-size-item-border-radius)
49
- );
38
+ border-radius: kbq-css-variable(button-toggle-size-item-border-radius);
50
39
 
51
40
  > .kbq-button,
52
41
  > .kbq-button-icon {
53
- border-radius: var(
54
- --kbq-button-toggle-size-item-border-radius,
55
- map.get($tokens, button-toggle-size-item-border-radius)
56
- );
42
+ border-radius: kbq-css-variable(button-toggle-size-item-border-radius);
57
43
 
58
44
  padding:
59
45
  calc(var(--kbq-button-toggle-size-item-padding-vertical, $padding-vertical) - $outline-width)
@@ -70,13 +56,11 @@ $tokens: meta.module-variables(tokens) !default;
70
56
  text-overflow: ellipsis;
71
57
  overflow: hidden;
72
58
  white-space: nowrap;
59
+ align-items: center;
73
60
 
74
61
  width: 100%;
75
62
 
76
- gap: var(
77
- --kbq-button-toggle-size-item-content-gap-horizontal,
78
- map.get($tokens, button-toggle-size-item-content-gap-horizontal)
79
- );
63
+ gap: kbq-css-variable(button-toggle-size-item-content-gap-horizontal);
80
64
  }
81
65
  }
82
66
  }
@@ -87,8 +71,7 @@ $tokens: meta.module-variables(tokens) !default;
87
71
  > .kbq-button-icon {
88
72
  max-width: 100%;
89
73
 
90
- height: unset;
91
- min-height: unset;
74
+ height: kbq-css-variable(button-toggle-size-item-height);
92
75
  }
93
76
  }
94
77
  }
@@ -105,10 +88,7 @@ $tokens: meta.module-variables(tokens) !default;
105
88
  > .kbq-button-icon {
106
89
  width: 100%;
107
90
 
108
- border-radius: var(
109
- --kbq-button-toggle-size-item-border-radius,
110
- map.get($tokens, button-toggle-size-item-border-radius)
111
- );
91
+ border-radius: kbq-css-variable(button-toggle-size-item-border-radius);
112
92
  }
113
93
  }
114
94
  }