@gooddata/sdk-ui-kit 10.27.0-alpha.22 → 10.27.0-alpha.24

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 (56) hide show
  1. package/esm/@ui/@types/icon.d.ts +1 -1
  2. package/esm/@ui/@types/icon.d.ts.map +1 -1
  3. package/esm/@ui/UiButton/UiButton.d.ts +2 -0
  4. package/esm/@ui/UiButton/UiButton.d.ts.map +1 -1
  5. package/esm/@ui/UiButton/UiButton.js +2 -2
  6. package/esm/@ui/UiButton/UiButton.js.map +1 -1
  7. package/esm/@ui/UiIcon/icons.d.ts.map +1 -1
  8. package/esm/@ui/UiIcon/icons.js +2 -0
  9. package/esm/@ui/UiIcon/icons.js.map +1 -1
  10. package/esm/@ui/UiMenu/UiMenu.d.ts +2 -2
  11. package/esm/@ui/UiMenu/UiMenu.d.ts.map +1 -1
  12. package/esm/@ui/UiMenu/UiMenu.js +16 -74
  13. package/esm/@ui/UiMenu/UiMenu.js.map +1 -1
  14. package/esm/@ui/UiMenu/context.d.ts +11 -0
  15. package/esm/@ui/UiMenu/context.d.ts.map +1 -0
  16. package/esm/@ui/UiMenu/context.js +11 -0
  17. package/esm/@ui/UiMenu/context.js.map +1 -0
  18. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.d.ts +7 -0
  19. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.d.ts.map +1 -0
  20. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.js +21 -0
  21. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.js.map +1 -0
  22. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.d.ts +2 -2
  23. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.d.ts.map +1 -1
  24. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.js +19 -3
  25. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.js.map +1 -1
  26. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.d.ts +6 -2
  27. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.d.ts.map +1 -1
  28. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.js +45 -2
  29. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.js.map +1 -1
  30. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.d.ts +2 -2
  31. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.d.ts.map +1 -1
  32. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.js +8 -3
  33. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.js.map +1 -1
  34. package/esm/@ui/UiMenu/hooks.d.ts +11 -11
  35. package/esm/@ui/UiMenu/hooks.d.ts.map +1 -1
  36. package/esm/@ui/UiMenu/hooks.js +101 -15
  37. package/esm/@ui/UiMenu/hooks.js.map +1 -1
  38. package/esm/@ui/UiMenu/itemUtils.d.ts +15 -14
  39. package/esm/@ui/UiMenu/itemUtils.d.ts.map +1 -1
  40. package/esm/@ui/UiMenu/itemUtils.js +39 -11
  41. package/esm/@ui/UiMenu/itemUtils.js.map +1 -1
  42. package/esm/@ui/UiMenu/types.d.ts +70 -32
  43. package/esm/@ui/UiMenu/types.d.ts.map +1 -1
  44. package/esm/index.d.ts +1 -1
  45. package/esm/index.d.ts.map +1 -1
  46. package/esm/index.js.map +1 -1
  47. package/esm/sdk-ui-kit.d.ts +85 -36
  48. package/esm/typings/accessibility.d.ts +1 -1
  49. package/esm/typings/accessibility.d.ts.map +1 -1
  50. package/package.json +8 -8
  51. package/src/@ui/UiChip/UiChip.scss +1 -0
  52. package/src/@ui/UiListbox/UiListbox.scss +2 -4
  53. package/src/@ui/UiMenu/UiMenu.scss +23 -7
  54. package/styles/css/main.css +24 -7
  55. package/styles/css/main.css.map +1 -1
  56. package/styles/scss/mixins.scss +6 -0
@@ -560,13 +560,13 @@ export declare function DefaultUiListboxStaticItemComponent<T>({ item, }: UiList
560
560
  /**
561
561
  * @internal
562
562
  */
563
- export declare function DefaultUiMenuInteractiveItemComponent<InteractiveItemData, StaticItemData>({ item, isFocused, onSelect, }: UiMenuInteractiveItemProps<InteractiveItemData, StaticItemData>): React_2.ReactNode;
563
+ export declare function DefaultUiMenuInteractiveItemComponent<T extends IUiMenuItemData = object>({ item, isFocused, onSelect, }: UiMenuInteractiveItemProps<T>): React_2.ReactNode;
564
564
 
565
565
  /**
566
566
  * By default just renders the data.
567
567
  * @internal
568
568
  */
569
- export declare function DefaultUiMenuStaticItemComponent<T>({ item }: UiMenuStaticItemProps<T>): React_2.ReactNode;
569
+ export declare const DefaultUiMenuStaticItemComponent: React_2.MemoExoticComponent<(<T extends IUiMenuItemData = object>({ item }: UiMenuStaticItemProps<T>) => React_2.ReactElement)>;
570
570
 
571
571
  /**
572
572
  * @internal
@@ -1092,6 +1092,7 @@ export declare interface IAccessibilityConfigBase {
1092
1092
  ariaLabelledBy?: React.AriaAttributes["aria-labelledby"];
1093
1093
  ariaDescribedBy?: React.AriaAttributes["aria-describedby"];
1094
1094
  role?: React.HTMLAttributes<HTMLElement>["role"];
1095
+ ariaExpanded?: "true" | "false";
1095
1096
  }
1096
1097
 
1097
1098
  /**
@@ -1549,7 +1550,7 @@ export declare const iconPaths: Record<IconType, React_2.ReactNode>;
1549
1550
  /**
1550
1551
  * @internal
1551
1552
  */
1552
- export declare type IconType = "check" | "plus" | "sync" | "alert" | "close" | "question" | "crossCircle" | "chevronUp" | "chevronDown" | "date" | "lock" | "cross";
1553
+ export declare type IconType = "check" | "plus" | "sync" | "alert" | "close" | "question" | "crossCircle" | "chevronUp" | "chevronDown" | "date" | "lock" | "cross" | "navigateUp" | "navigateDown";
1553
1554
 
1554
1555
  /**
1555
1556
  * @internal
@@ -3028,7 +3029,6 @@ export declare interface IMenuAccessibilityConfig extends IAccessibilityConfigBa
3028
3029
  role?: "menu" | "menuitem" | "separator" | "presentation";
3029
3030
  ariaDisabled?: "true" | "false";
3030
3031
  ariaHaspopup?: "true" | "false" | "menu" | "listbox" | "tree" | "grid" | "dialog";
3031
- ariaExpanded?: "true" | "false";
3032
3032
  ariaControls?: string;
3033
3033
  }
3034
3034
 
@@ -4360,43 +4360,82 @@ export declare interface IUiListboxStaticItem<T> {
4360
4360
  /**
4361
4361
  * @internal
4362
4362
  */
4363
- export declare interface IUiMenuContext<InteractiveItemData, StaticItemData = React_2.ReactNode> {
4364
- items: IUiMenuItem<InteractiveItemData, StaticItemData>[];
4365
- focusedItem: IUiMenuInteractiveItem<InteractiveItemData, StaticItemData> | undefined;
4366
- itemRefs: React_2.MutableRefObject<{
4367
- [id: string]: HTMLElement;
4368
- }>;
4369
- onSelect: (item: IUiMenuInteractiveItem<InteractiveItemData, StaticItemData> | undefined) => void;
4363
+ export declare interface IUiMenuContext<T extends IUiMenuItemData = object> extends IUiMenuPluggableComponents<T> {
4364
+ items: IUiMenuItem<T>[];
4365
+ focusedItem: IUiMenuInteractiveItem<T> | undefined;
4366
+ onSelect: (item: IUiMenuInteractiveItem<T> | undefined) => void;
4370
4367
  onClose?: () => void;
4371
4368
  setFocusedId: React_2.Dispatch<React_2.SetStateAction<string | undefined>>;
4372
- isItemFocusable: (item: IUiMenuItem<InteractiveItemData, StaticItemData>) => boolean;
4369
+ isItemFocusable: (item: IUiMenuItem<T>) => boolean;
4370
+ controlType: IUiMenuControlType;
4371
+ setControlType: React_2.Dispatch<React_2.SetStateAction<IUiMenuControlType>>;
4372
+ scrollToView: (element: HTMLElement | null) => void;
4373
+ makeItemId: (item: IUiMenuItem<T>) => string;
4374
+ itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
4375
+ ItemComponent: React_2.ComponentType<UiMenuItemProps<T>>;
4376
+ menuComponentRef: React_2.RefObject<HTMLElement>;
4377
+ itemsContainerRef: React_2.RefObject<HTMLElement>;
4373
4378
  }
4374
4379
 
4375
4380
  /**
4376
4381
  * @internal
4377
4382
  */
4378
- export declare interface IUiMenuInteractiveItem<InteractiveItemData, StaticItemData = React_2.ReactNode> {
4383
+ export declare type IUiMenuControlType = "keyboard" | "mouse" | "unknown";
4384
+
4385
+ /**
4386
+ * @internal
4387
+ */
4388
+ export declare type IUiMenuGroupItem<T extends IUiMenuItemData = object> = {
4389
+ type: "group";
4390
+ id: string;
4391
+ stringTitle: string;
4392
+ data: T["group"];
4393
+ subItems: IUiMenuItem<T>[];
4394
+ };
4395
+
4396
+ /**
4397
+ * @internal
4398
+ */
4399
+ export declare type IUiMenuInteractiveItem<T extends IUiMenuItemData = object> = {
4379
4400
  type: "interactive";
4380
4401
  id: string;
4381
4402
  stringTitle: string;
4382
4403
  isDisabled?: boolean;
4383
- data: InteractiveItemData;
4384
- subMenu?: IUiMenuItem<InteractiveItemData, StaticItemData>[];
4385
- }
4404
+ data: T["interactive"];
4405
+ subItems?: IUiMenuItem<T>[];
4406
+ };
4386
4407
 
4387
4408
  /**
4388
4409
  * @internal
4389
4410
  */
4390
- export declare type IUiMenuItem<InteractiveItemData, StaticItemData = React_2.ReactNode> = IUiMenuStaticItem<StaticItemData> | IUiMenuInteractiveItem<InteractiveItemData, StaticItemData>;
4411
+ export declare type IUiMenuItem<T extends IUiMenuItemData = object> = IUiMenuStaticItem<T> | IUiMenuInteractiveItem<T> | IUiMenuGroupItem<T>;
4412
+
4413
+ /**
4414
+ * @internal
4415
+ */
4416
+ export declare type IUiMenuItemData = {
4417
+ [type in IUiMenuItem<any>["type"]]?: unknown;
4418
+ };
4391
4419
 
4392
4420
  /**
4393
4421
  * @internal
4394
4422
  */
4395
- export declare interface IUiMenuStaticItem<T> {
4423
+ export declare interface IUiMenuPluggableComponents<T extends IUiMenuItemData = object> {
4424
+ InteractiveItemComponent: React_2.ComponentType<UiMenuInteractiveItemProps<T>>;
4425
+ InteractiveItemWrapperComponent: React_2.ComponentType<UiMenuInteractiveItemWrapperProps<T>>;
4426
+ GroupItemComponent: React_2.ComponentType<UiMenuGroupItemProps<T>>;
4427
+ StaticItemComponent: React_2.ComponentType<UiMenuStaticItemProps<T>>;
4428
+ MenuHeaderComponent: React_2.ComponentType;
4429
+ }
4430
+
4431
+ /**
4432
+ * @internal
4433
+ */
4434
+ export declare type IUiMenuStaticItem<T extends IUiMenuItemData = object> = {
4396
4435
  type: "static";
4397
4436
  id?: string;
4398
- data: T;
4399
- }
4437
+ data: T["static"];
4438
+ };
4400
4439
 
4401
4440
  /**
4402
4441
  * @internal
@@ -5387,6 +5426,7 @@ export declare interface UiButtonProps {
5387
5426
  tooltip?: React_2.ReactNode;
5388
5427
  onClick?: (e: React_2.MouseEvent<HTMLButtonElement>) => void;
5389
5428
  dataId?: string;
5429
+ accessibilityConfig?: IAccessibilityConfigBase;
5390
5430
  }
5391
5431
 
5392
5432
  /**
@@ -5531,22 +5571,20 @@ export declare interface UiListboxStaticItemProps<T> {
5531
5571
  *
5532
5572
  * @internal
5533
5573
  */
5534
- export declare function UiMenu<InteractiveItemData, StaticItemData>({ items, className, itemClassName, maxWidth, onSelect, onClose, onUnhandledKeyDown, InteractiveItemComponent, StaticItemComponent, MenuHeaderComponent, shouldKeyboardActionPreventDefault, shouldKeyboardActionStopPropagation, shouldCloseOnSelect, isDisabledFocusable, ariaAttributes, }: UiMenuProps<InteractiveItemData, StaticItemData>): React_2.ReactNode;
5574
+ export declare function UiMenu<T extends IUiMenuItemData = object>(props: UiMenuProps<T>): React_2.ReactNode;
5535
5575
 
5536
5576
  /**
5537
5577
  * @internal
5538
5578
  */
5539
- export declare interface UiMenuHeaderProps<InteractiveItemData, StaticItemData = React_2.ReactNode> {
5540
- onBack?: () => void;
5541
- onClose?: () => void;
5542
- parentItem?: IUiMenuInteractiveItem<InteractiveItemData, StaticItemData>;
5579
+ export declare interface UiMenuGroupItemProps<T extends IUiMenuItemData = object> {
5580
+ item: IUiMenuGroupItem<T>;
5543
5581
  }
5544
5582
 
5545
5583
  /**
5546
5584
  * @internal
5547
5585
  */
5548
- export declare interface UiMenuInteractiveItemProps<InteractiveItemData, StaticItemData = React_2.ReactNode> {
5549
- item: IUiMenuInteractiveItem<InteractiveItemData, StaticItemData>;
5586
+ export declare interface UiMenuInteractiveItemProps<T extends IUiMenuItemData = object> {
5587
+ item: IUiMenuInteractiveItem<T>;
5550
5588
  isFocused: boolean;
5551
5589
  onSelect: () => void;
5552
5590
  }
@@ -5554,17 +5592,28 @@ export declare interface UiMenuInteractiveItemProps<InteractiveItemData, StaticI
5554
5592
  /**
5555
5593
  * @internal
5556
5594
  */
5557
- export declare interface UiMenuProps<InteractiveItemData, StaticItemData = React_2.ReactNode> {
5558
- items: IUiMenuItem<InteractiveItemData, StaticItemData>[];
5595
+ export declare interface UiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
5596
+ item: IUiMenuInteractiveItem<T>;
5597
+ }
5598
+
5599
+ /**
5600
+ * @internal
5601
+ */
5602
+ export declare interface UiMenuItemProps<T extends IUiMenuItemData = object> {
5603
+ item: IUiMenuItem<T>;
5604
+ }
5605
+
5606
+ /**
5607
+ * @internal
5608
+ */
5609
+ export declare interface UiMenuProps<T extends IUiMenuItemData = object> extends Partial<IUiMenuPluggableComponents<T>> {
5610
+ items: IUiMenuItem<T>[];
5559
5611
  className?: string;
5560
- itemClassName?: ((item: IUiMenuItem<InteractiveItemData, StaticItemData>) => string | undefined) | string;
5612
+ itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
5561
5613
  maxWidth?: number;
5562
- onSelect?: (item: IUiMenuInteractiveItem<InteractiveItemData, StaticItemData>) => void;
5614
+ onSelect?: (item: IUiMenuInteractiveItem<T>) => void;
5563
5615
  onClose?: () => void;
5564
- onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IUiMenuContext<InteractiveItemData, StaticItemData>) => void;
5565
- InteractiveItemComponent?: React_2.ComponentType<UiMenuInteractiveItemProps<InteractiveItemData, StaticItemData>>;
5566
- StaticItemComponent?: React_2.ComponentType<UiMenuStaticItemProps<StaticItemData>>;
5567
- MenuHeaderComponent?: React_2.ComponentType<UiMenuHeaderProps<InteractiveItemData, StaticItemData>>;
5616
+ onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IUiMenuContext<T>) => void;
5568
5617
  shouldKeyboardActionPreventDefault?: boolean;
5569
5618
  shouldKeyboardActionStopPropagation?: boolean;
5570
5619
  shouldCloseOnSelect?: boolean;
@@ -5575,7 +5624,7 @@ export declare interface UiMenuProps<InteractiveItemData, StaticItemData = React
5575
5624
  /**
5576
5625
  * @internal
5577
5626
  */
5578
- export declare interface UiMenuStaticItemProps<T> {
5627
+ export declare interface UiMenuStaticItemProps<T extends IUiMenuItemData = object> {
5579
5628
  item: IUiMenuStaticItem<T>;
5580
5629
  }
5581
5630
 
@@ -7,6 +7,7 @@ export interface IAccessibilityConfigBase {
7
7
  ariaLabelledBy?: React.AriaAttributes["aria-labelledby"];
8
8
  ariaDescribedBy?: React.AriaAttributes["aria-describedby"];
9
9
  role?: React.HTMLAttributes<HTMLElement>["role"];
10
+ ariaExpanded?: "true" | "false";
10
11
  }
11
12
  /**
12
13
  * @internal
@@ -16,7 +17,6 @@ export interface IMenuAccessibilityConfig extends IAccessibilityConfigBase {
16
17
  role?: "menu" | "menuitem" | "separator" | "presentation";
17
18
  ariaDisabled?: "true" | "false";
18
19
  ariaHaspopup?: "true" | "false" | "menu" | "listbox" | "tree" | "grid" | "dialog";
19
- ariaExpanded?: "true" | "false";
20
20
  ariaControls?: string;
21
21
  }
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/typings/accessibility.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACtE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClF,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAkC,SAAQ,wBAAwB;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/typings/accessibility.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACtE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAkC,SAAQ,wBAAwB;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "10.27.0-alpha.22",
3
+ "version": "10.27.0-alpha.24",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -70,11 +70,11 @@
70
70
  "tslib": "^2.5.0",
71
71
  "uuid": "^8.3.2",
72
72
  "unified": "^11.0.5",
73
- "@gooddata/sdk-model": "10.27.0-alpha.22",
74
- "@gooddata/sdk-backend-spi": "10.27.0-alpha.22",
75
- "@gooddata/sdk-ui": "10.27.0-alpha.22",
76
- "@gooddata/sdk-ui-theme-provider": "10.27.0-alpha.22",
77
- "@gooddata/util": "10.27.0-alpha.22"
73
+ "@gooddata/sdk-backend-spi": "10.27.0-alpha.24",
74
+ "@gooddata/sdk-model": "10.27.0-alpha.24",
75
+ "@gooddata/sdk-ui-theme-provider": "10.27.0-alpha.24",
76
+ "@gooddata/sdk-ui": "10.27.0-alpha.24",
77
+ "@gooddata/util": "10.27.0-alpha.24"
78
78
  },
79
79
  "peerDependencies": {
80
80
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -133,8 +133,8 @@
133
133
  "typescript": "5.3.3",
134
134
  "vitest": "3.0.8",
135
135
  "vitest-dom": "0.1.1",
136
- "@gooddata/reference-workspace": "10.27.0-alpha.22",
137
- "@gooddata/sdk-backend-mockingbird": "10.27.0-alpha.22"
136
+ "@gooddata/reference-workspace": "10.27.0-alpha.24",
137
+ "@gooddata/sdk-backend-mockingbird": "10.27.0-alpha.24"
138
138
  },
139
139
  "scripts": {
140
140
  "clean": "rm -rf ci dist esm coverage styles/css *.log tsconfig.tsbuildinfo",
@@ -26,6 +26,7 @@ $action-box-shadow: var(--gd-button-dropShadow, 0 -1px 0 0) var(--gd-palette-err
26
26
 
27
27
  border-radius: $border-radius;
28
28
  border: 1px solid $border-color;
29
+ background-color: $background-color;
29
30
 
30
31
  &:has(#{$root}__trigger:hover) {
31
32
  border-color: $border-color;
@@ -1,6 +1,7 @@
1
1
  // (C) 2025 GoodData Corporation
2
2
 
3
3
  @use "../../../styles/scss/variables";
4
+ @use "../../../styles/scss/mixins";
4
5
 
5
6
  .gd-ui-kit-listbox {
6
7
  $root: &;
@@ -26,10 +27,7 @@
26
27
  outline: none;
27
28
 
28
29
  &:focus-visible #{$root}__item--isFocused {
29
- outline-offset: -2px;
30
- outline: auto 5px Highlight; /* For Firefox */
31
- // stylelint-disable-next-line declaration-block-no-duplicate-properties
32
- outline: auto 5px -webkit-focus-ring-color; /* For Chrome */
30
+ @include mixins.focus-ring;
33
31
  }
34
32
  }
35
33
 
@@ -1,6 +1,7 @@
1
1
  // (C) 2025 GoodData Corporation
2
2
 
3
3
  @use "../../../styles/scss/variables";
4
+ @use "../../../styles/scss/mixins";
4
5
 
5
6
  .gd-ui-kit-menu {
6
7
  $root: &;
@@ -62,18 +63,29 @@
62
63
  }
63
64
  }
64
65
 
66
+ &__group {
67
+ list-style: none;
68
+ margin: 0;
69
+ padding: 0;
70
+ }
71
+
72
+ &__group-title-container {
73
+ padding: 4px 10px;
74
+ }
75
+
76
+ &__group-title {
77
+ text-transform: uppercase;
78
+ color: variables.$gd-color-text-dimmed;
79
+ font-size: 10px;
80
+ font-weight: normal;
81
+ margin: 0;
82
+ }
83
+
65
84
  &__items {
66
85
  list-style: none;
67
86
  margin: 0;
68
87
  padding: 0;
69
88
  outline: none;
70
-
71
- &:focus-visible #{$root}__item--isFocused {
72
- outline-offset: -2px;
73
- outline: auto 5px Highlight; /* For Firefox */
74
- // stylelint-disable-next-line declaration-block-no-duplicate-properties
75
- outline: auto 5px -webkit-focus-ring-color; /* For Chrome */
76
- }
77
89
  }
78
90
 
79
91
  &__item {
@@ -96,10 +108,14 @@
96
108
  #{$root}--controlType-keyboard #{$root}__items:focus &--isFocused:not(&--isDisabled) {
97
109
  background-color: variables.$is-focused-background;
98
110
  color: variables.$is-focused-color;
111
+
112
+ @include mixins.focus-ring;
99
113
  }
100
114
  // Controlled by keyboard and has focus, disabled
101
115
  #{$root}--controlType-keyboard #{$root}__items:focus &--isFocused#{&}--isDisabled {
102
116
  background-color: variables.$is-focused-background;
117
+
118
+ @include mixins.focus-ring;
103
119
  }
104
120
 
105
121
  &--isDisabled {
@@ -632,6 +632,7 @@
632
632
  position: relative;
633
633
  border-radius: 20px;
634
634
  border: 1px solid var(--gd-palette-complementary-4);
635
+ background-color: var(--gd-palette-complementary-0);
635
636
  }
636
637
  .gd-ui-kit-chip:has(.gd-ui-kit-chip__trigger:hover) {
637
638
  border-color: var(--gd-palette-complementary-4);
@@ -793,6 +794,8 @@
793
794
  transition: var(--gd-transition-all);
794
795
  }
795
796
 
797
+ /* allow vendor prefixes and disable max length */
798
+ /* allow vendor prefixes and disable max length */
796
799
  .gd-ui-kit-listbox {
797
800
  max-height: 300px;
798
801
  overflow-y: auto;
@@ -910,17 +913,27 @@
910
913
  .gd-ui-kit-menu__menu-header-close-icon {
911
914
  flex-shrink: 0;
912
915
  }
916
+ .gd-ui-kit-menu__group {
917
+ list-style: none;
918
+ margin: 0;
919
+ padding: 0;
920
+ }
921
+ .gd-ui-kit-menu__group-title-container {
922
+ padding: 4px 10px;
923
+ }
924
+ .gd-ui-kit-menu__group-title {
925
+ text-transform: uppercase;
926
+ color: var(--gd-palette-complementary-5, #b0beca);
927
+ font-size: 10px;
928
+ font-weight: normal;
929
+ margin: 0;
930
+ }
913
931
  .gd-ui-kit-menu__items {
914
932
  list-style: none;
915
933
  margin: 0;
916
934
  padding: 0;
917
935
  outline: none;
918
936
  }
919
- .gd-ui-kit-menu__items:focus-visible .gd-ui-kit-menu__item--isFocused {
920
- outline-offset: -2px;
921
- outline: auto 5px Highlight; /* For Firefox */
922
- outline: auto 5px -webkit-focus-ring-color; /* For Chrome */
923
- }
924
937
  .gd-ui-kit-menu__item {
925
938
  padding: 8px 10px;
926
939
  cursor: pointer;
@@ -938,9 +951,15 @@
938
951
  .gd-ui-kit-menu--controlType-keyboard .gd-ui-kit-menu__items:focus .gd-ui-kit-menu__item--isFocused:not(.gd-ui-kit-menu__item--isDisabled) {
939
952
  background-color: var(--gd-palette-complementary-2, #ebeff4);
940
953
  color: var(--gd-palette-complementary-9, #000);
954
+ outline-offset: -2px;
955
+ outline: auto 5px Highlight; /* For Firefox */
956
+ outline: auto 5px -webkit-focus-ring-color; /* For Chrome */
941
957
  }
942
958
  .gd-ui-kit-menu--controlType-keyboard .gd-ui-kit-menu__items:focus .gd-ui-kit-menu__item--isFocused.gd-ui-kit-menu__item--isDisabled {
943
959
  background-color: var(--gd-palette-complementary-2, #ebeff4);
960
+ outline-offset: -2px;
961
+ outline: auto 5px Highlight; /* For Firefox */
962
+ outline: auto 5px -webkit-focus-ring-color; /* For Chrome */
944
963
  }
945
964
  .gd-ui-kit-menu__item--isDisabled {
946
965
  color: var(--gd-palette-complementary-5, #b0beca);
@@ -1428,8 +1447,6 @@
1428
1447
  content: "\e642";
1429
1448
  }
1430
1449
 
1431
- /* allow vendor prefixes and disable max length */
1432
- /* allow vendor prefixes and disable max length */
1433
1450
  /* ==========================================================================
1434
1451
  Variables, mixins, silent classes etc.
1435
1452
  ========================================================================== */