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

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 (75) hide show
  1. package/alert/_alert-theme.scss +28 -16
  2. package/alert/alert.component.scss +140 -41
  3. package/code-block/README.md +1 -0
  4. package/code-block/code-block.scss +9 -0
  5. package/core/option/_option-action-theme.scss +6 -8
  6. package/core/styles/theming/_components-theming.scss +7 -0
  7. package/core/styles/theming/_theming.scss +1 -4
  8. package/dropdown/_dropdown-theme.scss +9 -3
  9. package/esm2022/alert/alert.component.mjs +2 -2
  10. package/esm2022/code-block/code-block.component.mjs +2 -2
  11. package/esm2022/core/version.mjs +2 -2
  12. package/esm2022/datepicker/datepicker-animations.mjs +2 -2
  13. package/esm2022/input/input-number.mjs +2 -2
  14. package/esm2022/modal/modal.component.mjs +4 -4
  15. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  16. package/esm2022/select/select.component.mjs +34 -7
  17. package/esm2022/splitter/splitter.component.mjs +2 -2
  18. package/esm2022/table/table.component.mjs +29 -6
  19. package/esm2022/table/table.module.mjs +14 -6
  20. package/esm2022/tabs/tab-body.component.mjs +1 -1
  21. package/esm2022/tabs/tab-group.component.mjs +2 -2
  22. package/esm2022/tags/tag.component.mjs +2 -2
  23. package/esm2022/timepicker/timepicker.directive.mjs +2 -2
  24. package/esm2022/tree/tree-base.mjs +2 -2
  25. package/fesm2022/koobiq-components-alert.mjs +2 -2
  26. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-code-block.mjs +2 -2
  28. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  29. package/fesm2022/koobiq-components-core.mjs +1 -1
  30. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  31. package/fesm2022/koobiq-components-datepicker.mjs +1 -1
  32. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  33. package/fesm2022/koobiq-components-input.mjs +1 -1
  34. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  35. package/fesm2022/koobiq-components-modal.mjs +3 -3
  36. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  38. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-select.mjs +34 -7
  40. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-splitter.mjs +1 -1
  42. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-table.mjs +41 -10
  44. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-tabs.mjs +1 -1
  46. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-tags.mjs +1 -1
  48. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-timepicker.mjs +1 -1
  50. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-tree.mjs +1 -1
  52. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  53. package/icon/_icon-item-theme.scss +6 -0
  54. package/icon/_icon-theme.scss +5 -0
  55. package/input/_input-theme.scss +4 -0
  56. package/list/_list-theme.scss +5 -3
  57. package/modal/modal.component.d.ts +1 -1
  58. package/modal/modal.scss +1 -1
  59. package/navbar/vertical-navbar.scss +1 -0
  60. package/package.json +7 -7
  61. package/popover/README.md +1 -0
  62. package/prebuilt-themes/dark-theme.css +1 -1
  63. package/prebuilt-themes/light-theme.css +1 -1
  64. package/schematics/ng-add/index.js +5 -5
  65. package/select/select.component.d.ts +5 -1
  66. package/table/_table-theme.scss +10 -10
  67. package/table/table.component.d.ts +8 -1
  68. package/table/table.module.d.ts +1 -1
  69. package/table/table.scss +39 -40
  70. package/tabs/tab-body.component.d.ts +1 -1
  71. package/tabs/tab-nav-bar/tab-nav-bar.scss +0 -1
  72. package/tags/tag.component.d.ts +1 -1
  73. package/textarea/textarea.scss +2 -2
  74. package/timepicker/timepicker.directive.d.ts +1 -1
  75. package/tree/tree-base.d.ts +1 -1
@@ -52,16 +52,16 @@ function ngAdd(options) {
52
52
  }
53
53
  // Installing dependencies
54
54
  addPackageToPackageJson(tree, '@angular/cdk', "^17.2.0");
55
- addPackageToPackageJson(tree, '@koobiq/cdk', "^17.0.0-rc.4");
56
- addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^17.0.0-rc.4");
55
+ addPackageToPackageJson(tree, '@koobiq/cdk', "^17.0.0-rc.6");
56
+ addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^17.0.0-rc.6");
57
57
  addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.0.2");
58
58
  addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.0.2");
59
59
  addPackageToPackageJson(tree, '@koobiq/icons', "^7.1.1");
60
- addPackageToPackageJson(tree, '@koobiq/tokens-builder', "^3.0.0-rc.2");
61
- addPackageToPackageJson(tree, '@koobiq/design-tokens', "^3.0.0-rc.4");
60
+ addPackageToPackageJson(tree, '@koobiq/tokens-builder', "^3.0.0-rc.4");
61
+ addPackageToPackageJson(tree, '@koobiq/design-tokens', "^3.0.0-rc.8");
62
62
  addPackageToPackageJson(tree, '@messageformat/core', "^3.0.1");
63
63
  addPackageToPackageJson(tree, 'luxon', "^3.4.4");
64
- addPackageToPackageJson(tree, 'marked', "^4.0.18");
64
+ addPackageToPackageJson(tree, 'marked', "^9.0.0");
65
65
  addPackageToPackageJson(tree, 'overlayscrollbars', "^2.7.3");
66
66
  addPackageToPackageJson(tree, 'ngx-highlightjs', "^10.0.0");
67
67
  };
@@ -107,6 +107,7 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
107
107
  panel: ElementRef;
108
108
  optionsContainer: ElementRef;
109
109
  overlayDir: CdkConnectedOverlay;
110
+ footer?: ElementRef;
110
111
  cdkVirtualForOf?: CdkVirtualForOf<any>;
111
112
  tags: QueryList<KbqTag>;
112
113
  /** User-supplied override of the trigger element. */
@@ -274,8 +275,11 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
274
275
  onRemoveMatcherItem(option: KbqOptionBase, $event: any): void;
275
276
  calculateHiddenItems(): void;
276
277
  getItemHeight(): number;
278
+ handleClick($event: MouseEvent): void;
277
279
  private updateLocaleParams;
278
280
  private isVisible;
281
+ private currentOverlayPosition;
282
+ private modalOverlayPosition;
279
283
  private closingActions;
280
284
  private getHeightOfOptionsContainer;
281
285
  private updateScrollSize;
@@ -331,6 +335,6 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
331
335
  private getTotalVisibleItems;
332
336
  private buildTriggerClone;
333
337
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
334
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "kbq-select-matcher, [kbq-select-matcher]", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
338
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "kbq-select-matcher, [kbq-select-matcher]", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
335
339
  }
336
340
  export {};
@@ -2,25 +2,27 @@
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 kbq-table-theme($theme) {
8
9
  $foreground: map.get($theme, foreground);
9
- $background: map.get($theme, background);
10
+ $states-background: map.get(map.get($theme, states), background);
11
+ $line: map.get($theme, line);
10
12
 
11
13
  .kbq-table {
12
14
  & > thead {
13
- color: map.get($foreground, text-less-contrast);
15
+ color: map.get($foreground, contrast-secondary);
14
16
 
15
17
  & > tr > th {
16
- border-color: map.get($foreground, divider);
18
+ border-bottom-color: map.get($line, contrast-fade);
17
19
  }
18
20
  }
19
21
 
20
22
  & > tbody {
21
23
  & > tr {
22
- &:hover {
23
- background-color: map.get($background, overlay-hover);
24
+ &:hover td {
25
+ background-color: map.get($states-background, transparent-hover);
24
26
  }
25
27
 
26
28
  & > th,
@@ -34,7 +36,7 @@
34
36
  & > tbody > tr {
35
37
  & th,
36
38
  & td {
37
- border-bottom-color: map.get($foreground, divider);
39
+ border-bottom-color: map.get($line, contrast-fade);
38
40
  }
39
41
  }
40
42
  }
@@ -42,15 +44,13 @@
42
44
  }
43
45
 
44
46
  @mixin kbq-table-typography($config) {
45
- $tokens: map.get($config, tokens);
46
-
47
47
  .kbq-table {
48
48
  & > thead {
49
49
  & > tr > th {
50
50
  font-weight: normal;
51
51
  }
52
52
 
53
- @include kbq-typography-level-to-styles($config, map.get($tokens, table-font-header));
53
+ @include kbq-typography-level-to-styles($config, getToken(table-font-header));
54
54
  }
55
55
 
56
56
  & > tbody {
@@ -58,7 +58,7 @@
58
58
  font-weight: normal;
59
59
  }
60
60
 
61
- @include kbq-typography-level-to-styles($config, map.get($tokens, table-font-body));
61
+ @include kbq-typography-level-to-styles($config, getToken(table-font-body));
62
62
  }
63
63
  }
64
64
  }
@@ -1,5 +1,12 @@
1
+ import { KbqButton } from '@koobiq/components/button';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class KbqTable {
4
+ border: boolean;
3
5
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTable, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqTable, "table[kbq-table]", ["kbqTable"], {}, {}, never, ["*"], false, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqTable, "table[kbq-table]", ["kbqTable"], { "border": { "alias": "border"; "required": false; }; }, {}, never, ["*"], false, never>;
7
+ }
8
+ export declare class KbqTableCellContent {
9
+ button: KbqButton;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqTableCellContent, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTableCellContent, "kbq-table td", never, {}, {}, ["button"], never, false, never>;
5
12
  }
@@ -5,6 +5,6 @@ import * as i3 from "@angular/cdk/a11y";
5
5
  import * as i4 from "@angular/cdk/platform";
6
6
  export declare class KbqTableModule {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTableModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTableModule, [typeof i1.KbqTable], [typeof i2.CommonModule, typeof i3.A11yModule, typeof i4.PlatformModule], [typeof i1.KbqTable]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTableModule, [typeof i1.KbqTable, typeof i1.KbqTableCellContent], [typeof i2.CommonModule, typeof i3.A11yModule, typeof i4.PlatformModule], [typeof i1.KbqTable, typeof i1.KbqTableCellContent]>;
9
9
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqTableModule>;
10
10
  }
package/table/table.scss CHANGED
@@ -1,7 +1,7 @@
1
1
  @use 'sass:meta';
2
2
  @use 'sass:map';
3
3
 
4
- @use '../core/styles/tokens';
4
+ @use '../core/styles/common/tokens' as *;
5
5
 
6
6
 
7
7
  $tokens: meta.module-variables(tokens) !default;
@@ -16,61 +16,60 @@ $tokens: meta.module-variables(tokens) !default;
16
16
  & > th,
17
17
  & > td {
18
18
  padding: {
19
- top: var(--kbq-table-size-row-padding-vertical, map.get($tokens, table-size-row-padding-vertical));
20
- right: calc((var(
21
- --kbq-table-size-row-padding-horizontal,
22
- map.get($tokens, table-size-row-padding-horizontal)
23
- ) / 2));
24
- bottom: calc(
25
- var(--kbq-table-size-row-padding-vertical, map.get($tokens, table-size-row-padding-vertical)) -
26
- var(--kbq-table-size-border-width, map.get($tokens, table-size-border-width))
27
- );
28
- left: calc((var(
29
- --kbq-table-size-row-padding-horizontal,
30
- map.get($tokens, table-size-row-padding-horizontal)
31
- ) / 2))
19
+ top: cssVar(table-size-row-padding-vertical);
20
+ right: cssVar(table-size-row-padding-horizontal);
21
+ bottom: cssVar(table-size-row-padding-vertical);
22
+ left: cssVar(table-size-row-padding-horizontal);
32
23
  };
33
24
 
34
25
  vertical-align: baseline;
35
26
  text-align: left;
36
27
  }
37
-
38
- & > th:first-child,
39
- & > td:first-child {
40
- padding-left:
41
- var(--kbq-table-size-row-padding-horizontal, map.get($tokens, table-size-row-padding-horizontal));
42
- }
43
-
44
- & > th:last-child,
45
- & > td:last-child {
46
- padding-right:
47
- var(--kbq-table-size-row-padding-horizontal, map.get($tokens, table-size-row-padding-horizontal));
48
- }
49
28
  }
50
29
  }
51
30
 
52
- /* stylelint-disable no-descending-specificity */
53
31
  & > thead {
54
32
  & > tr > th {
55
- padding: {
56
- top: var(--kbq-table-size-row-padding-vertical, map.get($tokens, table-size-row-padding-vertical));
57
- bottom: (
58
- calc(var(--kbq-table-size-row-padding-vertical, map.get($tokens, table-size-row-padding-vertical)) -
59
- var(--kbq-table-size-border-width, map.get($tokens, table-size-border-width)))
60
- );
61
- }
62
-
63
- border-bottom:
64
- var(--kbq-table-size-border-width, map.get($tokens, table-size-border-width)) solid transparent;
33
+ border-bottom-width: cssVar(table-size-border-width);
34
+ border-bottom-style: solid;
65
35
  }
66
36
  }
67
37
 
38
+ .kbq-table-cell_has-button {
39
+ padding-top: cssVar(size-xxs);
40
+ padding-bottom: cssVar(size-xxs);
41
+ }
42
+ }
43
+ .kbq-table.kbq-table_bordered {
68
44
  & > tbody > tr {
69
45
  & th,
70
46
  & td {
71
- border-bottom:
72
- var(--kbq-table-size-border-width, map.get($tokens, table-size-border-width)) solid transparent;
47
+ border-bottom-width: cssVar(table-size-border-width);
48
+ border-bottom-style: solid;
49
+ }
50
+ }
51
+ }
52
+
53
+ .kbq-table:not(.kbq-table_bordered) {
54
+ & > tbody > tr {
55
+ & > td:first-child {
56
+ border-top-left-radius: cssVar(size-m);
57
+ border-bottom-left-radius: cssVar(size-m);
58
+ }
59
+
60
+ & > td:last-child {
61
+ border-top-right-radius: cssVar(size-m);
62
+ border-bottom-right-radius: cssVar(size-m);
63
+ }
64
+
65
+ &:first-child {
66
+ & > td:first-child {
67
+ border-top-left-radius: 0;
68
+ }
69
+
70
+ & > td:last-child {
71
+ border-top-right-radius: 0;
72
+ }
73
73
  }
74
74
  }
75
- /* stylelint-enable no-descending-specificity */
76
75
  }
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  *
12
12
  * In the case of a new tab body that should immediately be centered with an animating transition,
13
13
  * then left-origin-center or right-origin-center can be used, which will use left or right as its
14
- * psuedo-prior state.
14
+ * pseudo-prior state.
15
15
  */
16
16
  export type KbqTabBodyPositionState = 'left' | 'center' | 'right' | 'left-origin-center' | 'right-origin-center';
17
17
  /**
@@ -38,7 +38,6 @@ $tokens: meta.module-variables(tokens) !default;
38
38
  &.kbq-tab-group_vertical {
39
39
  flex-direction: column;
40
40
  flex-grow: 0;
41
-
42
41
  gap: var(
43
42
  --kbq-tabs-size-tab-stack-vertical-content-gap-vartical,
44
43
  map.get($tokens, tabs-size-tab-stack-vertical-content-gap-vertical)
@@ -43,7 +43,7 @@ export declare class KbqTag extends KbqTagMixinBase implements IFocusableOption,
43
43
  private _ngZone;
44
44
  /** Emits when the tag is focused. */
45
45
  readonly onFocus: Subject<KbqTagEvent>;
46
- /** Emits when the tag is blured. */
46
+ /** Emits when the tag is blurred. */
47
47
  readonly onBlur: Subject<KbqTagEvent>;
48
48
  nativeElement: HTMLElement;
49
49
  /** Whether the tag has focus. */
@@ -25,8 +25,8 @@ $tokens: meta.module-variables(tokens) !default;
25
25
  var(--kbq-textarea-size-padding-vertical, map.get($tokens, textarea-size-padding-vertical))
26
26
  var(--kbq-textarea-size-padding-horizontal, map.get($tokens, textarea-size-padding-horizontal));
27
27
 
28
- -webkit-appearance: none; // Chrome textaria height sizing fix
29
- vertical-align: bottom; // Chrome textaria height sizing fix
28
+ -webkit-appearance: none; // Chrome textarea height sizing fix
29
+ vertical-align: bottom; // Chrome textarea height sizing fix
30
30
 
31
31
  &:not(.kbq-textarea-resizable) {
32
32
  box-sizing: border-box;
@@ -119,7 +119,7 @@ export declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, Control
119
119
  private incrementTime;
120
120
  private decrementTime;
121
121
  /**
122
- * @description Get params for arrow-keys (up/down) time valie edit.
122
+ * @description Get params for arrow-keys (up/down) time value edit.
123
123
  * @param cursorPosition Current cursor position in timeString
124
124
  */
125
125
  private getTimeEditMetrics;
@@ -41,7 +41,7 @@ export declare class KbqTreeBase<T> implements AfterContentChecked, CollectionVi
41
41
  /**
42
42
  * Provides a stream containing the latest data array to render. Influenced by the tree's
43
43
  * stream of view window (what dataNodes are currently on screen).
44
- * Data source can be an observable of data array, or a dara array to render.
44
+ * Data source can be an observable of data array, or a data array to render.
45
45
  */
46
46
  get dataSource(): DataSource<T> | Observable<T[]> | T[];
47
47
  set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]);