@db-ux/react-core-components 3.0.2-shell4-bdb351c → 3.0.3

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 (115) hide show
  1. package/dist/components/brand/brand.d.ts +3 -0
  2. package/dist/components/brand/brand.js +13 -0
  3. package/dist/components/brand/index.d.ts +1 -0
  4. package/dist/components/brand/index.js +1 -0
  5. package/dist/components/brand/model.d.ts +10 -0
  6. package/dist/components/button/button.d.ts +1 -1
  7. package/dist/components/checkbox/checkbox.d.ts +1 -4
  8. package/dist/components/checkbox/checkbox.js +2 -2
  9. package/dist/components/custom-select/custom-select.d.ts +1 -4
  10. package/dist/components/custom-select/custom-select.js +7 -7
  11. package/dist/components/custom-select/model.d.ts +1 -4
  12. package/dist/components/custom-select-list-item/custom-select-list-item.d.ts +1 -4
  13. package/dist/components/drawer/drawer.js +4 -4
  14. package/dist/components/drawer/model.d.ts +1 -5
  15. package/dist/components/drawer/model.js +1 -1
  16. package/dist/components/header/header.d.ts +3 -0
  17. package/dist/components/header/header.js +67 -0
  18. package/dist/components/header/index.d.ts +1 -0
  19. package/dist/components/header/index.js +1 -0
  20. package/dist/components/header/model.d.ts +44 -0
  21. package/dist/components/input/input.d.ts +1 -4
  22. package/dist/components/input/input.js +2 -2
  23. package/dist/components/navigation/model.d.ts +5 -14
  24. package/dist/components/navigation/navigation.d.ts +1 -1
  25. package/dist/components/navigation/navigation.js +6 -96
  26. package/dist/components/navigation-item/model.d.ts +24 -9
  27. package/dist/components/navigation-item/navigation-item.d.ts +1 -1
  28. package/dist/components/navigation-item/navigation-item.js +67 -8
  29. package/dist/components/page/index.d.ts +1 -0
  30. package/dist/components/page/index.js +1 -0
  31. package/dist/components/page/model.d.ts +36 -0
  32. package/dist/components/page/model.js +2 -0
  33. package/dist/components/page/page.d.ts +3 -0
  34. package/dist/components/{shell/shell.js → page/page.js} +28 -9
  35. package/dist/components/popover/popover.js +2 -1
  36. package/dist/components/radio/radio.d.ts +1 -4
  37. package/dist/components/select/select.d.ts +1 -4
  38. package/dist/components/select/select.js +2 -2
  39. package/dist/components/switch/switch.d.ts +1 -4
  40. package/dist/components/tabs/model.d.ts +11 -3
  41. package/dist/components/tabs/tabs.d.ts +1 -1
  42. package/dist/components/tabs/tabs.js +3 -3
  43. package/dist/components/textarea/textarea.d.ts +1 -4
  44. package/dist/components/textarea/textarea.js +2 -2
  45. package/dist/components/tooltip/tooltip.js +3 -2
  46. package/dist/index.d.ts +6 -19
  47. package/dist/index.js +6 -19
  48. package/dist/shared/constants.d.ts +0 -3
  49. package/dist/shared/constants.js +0 -3
  50. package/dist/shared/model.d.ts +3 -82
  51. package/dist/shared/model.js +0 -3
  52. package/dist/utils/floating-components.d.ts +1 -17
  53. package/dist/utils/floating-components.js +48 -76
  54. package/dist/utils/navigation.d.ts +6 -2
  55. package/dist/utils/navigation.js +22 -34
  56. package/package.json +4 -4
  57. package/dist/components/control-panel-brand/control-panel-brand.d.ts +0 -3
  58. package/dist/components/control-panel-brand/control-panel-brand.js +0 -15
  59. package/dist/components/control-panel-brand/index.d.ts +0 -1
  60. package/dist/components/control-panel-brand/index.js +0 -1
  61. package/dist/components/control-panel-brand/model.d.ts +0 -5
  62. package/dist/components/control-panel-desktop/control-panel-desktop.d.ts +0 -3
  63. package/dist/components/control-panel-desktop/control-panel-desktop.js +0 -62
  64. package/dist/components/control-panel-desktop/index.d.ts +0 -1
  65. package/dist/components/control-panel-desktop/index.js +0 -1
  66. package/dist/components/control-panel-desktop/model.d.ts +0 -7
  67. package/dist/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.d.ts +0 -3
  68. package/dist/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.js +0 -26
  69. package/dist/components/control-panel-flat-icon-navigation/index.d.ts +0 -1
  70. package/dist/components/control-panel-flat-icon-navigation/index.js +0 -1
  71. package/dist/components/control-panel-flat-icon-navigation/model.d.ts +0 -7
  72. package/dist/components/control-panel-flat-icon-navigation/model.js +0 -1
  73. package/dist/components/control-panel-meta-navigation/control-panel-meta-navigation.d.ts +0 -3
  74. package/dist/components/control-panel-meta-navigation/control-panel-meta-navigation.js +0 -11
  75. package/dist/components/control-panel-meta-navigation/index.d.ts +0 -1
  76. package/dist/components/control-panel-meta-navigation/index.js +0 -1
  77. package/dist/components/control-panel-meta-navigation/model.d.ts +0 -5
  78. package/dist/components/control-panel-meta-navigation/model.js +0 -1
  79. package/dist/components/control-panel-mobile/control-panel-mobile.d.ts +0 -3
  80. package/dist/components/control-panel-mobile/control-panel-mobile.js +0 -41
  81. package/dist/components/control-panel-mobile/index.d.ts +0 -1
  82. package/dist/components/control-panel-mobile/index.js +0 -1
  83. package/dist/components/control-panel-mobile/model.d.ts +0 -30
  84. package/dist/components/control-panel-mobile/model.js +0 -1
  85. package/dist/components/control-panel-primary-actions/control-panel-primary-actions.d.ts +0 -3
  86. package/dist/components/control-panel-primary-actions/control-panel-primary-actions.js +0 -11
  87. package/dist/components/control-panel-primary-actions/index.d.ts +0 -1
  88. package/dist/components/control-panel-primary-actions/index.js +0 -1
  89. package/dist/components/control-panel-primary-actions/model.d.ts +0 -5
  90. package/dist/components/control-panel-primary-actions/model.js +0 -1
  91. package/dist/components/control-panel-secondary-actions/control-panel-secondary-actions.d.ts +0 -3
  92. package/dist/components/control-panel-secondary-actions/control-panel-secondary-actions.js +0 -11
  93. package/dist/components/control-panel-secondary-actions/index.d.ts +0 -1
  94. package/dist/components/control-panel-secondary-actions/index.js +0 -1
  95. package/dist/components/control-panel-secondary-actions/model.d.ts +0 -5
  96. package/dist/components/control-panel-secondary-actions/model.js +0 -1
  97. package/dist/components/navigation-item-group/index.d.ts +0 -1
  98. package/dist/components/navigation-item-group/index.js +0 -1
  99. package/dist/components/navigation-item-group/model.d.ts +0 -26
  100. package/dist/components/navigation-item-group/model.js +0 -1
  101. package/dist/components/navigation-item-group/navigation-item-group.d.ts +0 -3
  102. package/dist/components/navigation-item-group/navigation-item-group.js +0 -100
  103. package/dist/components/shell/index.d.ts +0 -1
  104. package/dist/components/shell/index.js +0 -1
  105. package/dist/components/shell/model.d.ts +0 -50
  106. package/dist/components/shell/model.js +0 -1
  107. package/dist/components/shell/shell.d.ts +0 -3
  108. package/dist/components/shell-sub-navigation/index.d.ts +0 -1
  109. package/dist/components/shell-sub-navigation/index.js +0 -1
  110. package/dist/components/shell-sub-navigation/model.d.ts +0 -5
  111. package/dist/components/shell-sub-navigation/model.js +0 -1
  112. package/dist/components/shell-sub-navigation/shell-sub-navigation.d.ts +0 -3
  113. package/dist/components/shell-sub-navigation/shell-sub-navigation.js +0 -45
  114. /package/dist/components/{control-panel-brand → brand}/model.js +0 -0
  115. /package/dist/components/{control-panel-desktop → header}/model.js +0 -0
@@ -1 +0,0 @@
1
- export { default as DBControlPanelFlatIconNavigation } from "./control-panel-flat-icon-navigation";
@@ -1,7 +0,0 @@
1
- import { GlobalProps, GlobalState, InitializedState } from '../../shared/model';
2
- export type DBControlPanelFlatIconNavigationDefaultProps = {
3
- noText?: string | boolean;
4
- };
5
- export type DBControlPanelFlatIconNavigationProps = DBControlPanelFlatIconNavigationDefaultProps & GlobalProps;
6
- export type DBControlPanelFlatIconNavigationDefaultState = {};
7
- export type DBControlPanelFlatIconNavigationState = DBControlPanelFlatIconNavigationDefaultState & GlobalState & InitializedState;
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBControlPanelMetaNavigation: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps> & import("../..").GlobalProps & React.RefAttributes<any>>;
3
- export default DBControlPanelMetaNavigation;
@@ -1,11 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useRef, forwardRef } from "react";
5
- import { cls } from "../../utils";
6
- function DBControlPanelMetaNavigationFn(props, component) {
7
- const _ref = component || useRef(undefined);
8
- return (React.createElement("div", Object.assign({ ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: props.id }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-control-panel-meta-navigation", props.className) }), props.children));
9
- }
10
- const DBControlPanelMetaNavigation = forwardRef(DBControlPanelMetaNavigationFn);
11
- export default DBControlPanelMetaNavigation;
@@ -1 +0,0 @@
1
- export { default as DBControlPanelMetaNavigation } from './control-panel-meta-navigation';
@@ -1 +0,0 @@
1
- export { default as DBControlPanelMetaNavigation } from './control-panel-meta-navigation';
@@ -1,5 +0,0 @@
1
- import { GlobalProps, GlobalState } from '../../shared/model';
2
- export type DBControlPanelMetaNavigationDefaultProps = {};
3
- export type DBControlPanelMetaNavigationProps = DBControlPanelMetaNavigationDefaultProps & GlobalProps;
4
- export type DBControlPanelMetaNavigationDefaultState = {};
5
- export type DBControlPanelMetaNavigationState = DBControlPanelMetaNavigationDefaultState & GlobalState;
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBControlPanelMobile: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, "width" | keyof import("../..").GlobalProps | keyof import("../..").ToggleEventProps | keyof import("../..").ControlPanelProps | keyof import("./model").DBControlPanelMobileDefaultProps> & import("./model").DBControlPanelMobileDefaultProps & import("../..").GlobalProps & import("../..").ToggleEventProps & import("../..").ContainerWidthProps & import("../..").ControlPanelProps & React.RefAttributes<any>>;
3
- export default DBControlPanelMobile;
@@ -1,41 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useState, useRef, forwardRef } from "react";
5
- import { DEFAULT_BURGER_MENU } from "../../shared/constants";
6
- import { cls } from "../../utils";
7
- import { isEventTargetNavigationItem } from "../../utils/navigation";
8
- import DBButton from "../button/button";
9
- import DBDrawer from "../drawer/drawer";
10
- function DBControlPanelMobileFn(props, component) {
11
- var _a;
12
- const _ref = component || useRef(undefined);
13
- const [open, setOpen] = useState(() => false);
14
- function handleToggle(event) {
15
- if (event.stopPropagation) {
16
- event.stopPropagation();
17
- }
18
- const reverseOpen = !open;
19
- setOpen(reverseOpen);
20
- if (props.onToggle) {
21
- props.onToggle(reverseOpen);
22
- }
23
- }
24
- function handleNavigationItemClick(event) {
25
- if (isEventTargetNavigationItem(event)) {
26
- handleToggle(event);
27
- }
28
- }
29
- return (React.createElement("header", Object.assign({ "data-density": "regular", ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: props.id, "data-width": props.width, "data-position": props.position, "data-variant": props.variant }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-control-panel-mobile", props.className) }),
30
- React.createElement(DBDrawer, { direction: "custom", spacing: "small", drawerHeaderPlain: props.drawerHeadlinePlain, rounded: true, open: open, onClose: (event) => handleToggle(event) },
31
- React.createElement("div", { className: "db-control-panel-mobile-drawer-scroll-container", onClick: (event) => handleNavigationItemClick(event) },
32
- props.children,
33
- React.createElement(React.Fragment, null, props.metaNavigation)),
34
- React.createElement(React.Fragment, null, props.secondaryActions)),
35
- React.createElement(React.Fragment, null, props.flatIconNavigation),
36
- React.createElement(React.Fragment, null, props.brand),
37
- React.createElement(React.Fragment, null, props.primaryActions),
38
- React.createElement(DBButton, { className: "db-control-panel-mobile-button", icon: "menu", type: "button", variant: "ghost", noText: true, onClick: (event) => handleToggle(event) }, (_a = props.burgerMenuLabel) !== null && _a !== void 0 ? _a : DEFAULT_BURGER_MENU)));
39
- }
40
- const DBControlPanelMobile = forwardRef(DBControlPanelMobileFn);
41
- export default DBControlPanelMobile;
@@ -1 +0,0 @@
1
- export { default as DBControlPanelMobile } from './control-panel-mobile';
@@ -1 +0,0 @@
1
- export { default as DBControlPanelMobile } from './control-panel-mobile';
@@ -1,30 +0,0 @@
1
- import { ContainerWidthProps, ControlPanelProps, GlobalProps, GlobalState, NavigationBehaviorState, ShellControlPanelMobilePositionType, ToggleEventProps, ToggleEventState } from '../../shared/model';
2
- export declare const ShellControlPanelMobileVariant: readonly ["drawer", "flat-icon"];
3
- export type ShellControlPanelMobileVariantType = (typeof ShellControlPanelMobileVariant)[number];
4
- export type DBControlPanelMobileDefaultProps = {
5
- /**
6
- * Text to pass in a headline for the drawer header.
7
- */
8
- drawerHeadlinePlain?: string;
9
- /**
10
- * This attribute sets the label for the burger menu button for mobile control-panel-desktops.
11
- */
12
- burgerMenuLabel?: string;
13
- /**
14
- * Change the position of the mobile content panel
15
- */
16
- position?: ShellControlPanelMobilePositionType;
17
- /**
18
- * Change the variant of the mobile content panel
19
- */
20
- variant?: ShellControlPanelMobileVariantType;
21
- /**
22
- * Optional flat icon navigation for a mobile app look. Only visible by using variant="flat-icon" as well.
23
- */
24
- flatIconNavigation?: any;
25
- };
26
- export type DBControlPanelMobileProps = DBControlPanelMobileDefaultProps & GlobalProps & ToggleEventProps & ContainerWidthProps & ControlPanelProps;
27
- export type DBControlPanelMobileDefaultState = {
28
- open: boolean;
29
- };
30
- export type DBControlPanelMobileState = DBControlPanelMobileDefaultState & GlobalState & ToggleEventState<HTMLElement> & NavigationBehaviorState;
@@ -1 +0,0 @@
1
- export const ShellControlPanelMobileVariant = ['drawer', 'flat-icon'];
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBControlPanelPrimaryActions: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps> & import("../..").GlobalProps & React.RefAttributes<any>>;
3
- export default DBControlPanelPrimaryActions;
@@ -1,11 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useRef, forwardRef } from "react";
5
- import { cls } from "../../utils";
6
- function DBControlPanelPrimaryActionsFn(props, component) {
7
- const _ref = component || useRef(undefined);
8
- return (React.createElement("div", Object.assign({ ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: props.id }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-control-panel-primary-actions", props.className) }), props.children));
9
- }
10
- const DBControlPanelPrimaryActions = forwardRef(DBControlPanelPrimaryActionsFn);
11
- export default DBControlPanelPrimaryActions;
@@ -1 +0,0 @@
1
- export { default as DBControlPanelPrimaryActions } from './control-panel-primary-actions';
@@ -1 +0,0 @@
1
- export { default as DBControlPanelPrimaryActions } from './control-panel-primary-actions';
@@ -1,5 +0,0 @@
1
- import { GlobalProps, GlobalState } from '../../shared/model';
2
- export type DBControlPanelPrimaryActionsDefaultProps = {};
3
- export type DBControlPanelPrimaryActionsProps = DBControlPanelPrimaryActionsDefaultProps & GlobalProps;
4
- export type DBControlPanelPrimaryActionsDefaultState = {};
5
- export type DBControlPanelPrimaryActionsState = DBControlPanelPrimaryActionsDefaultState & GlobalState;
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBControlPanelSecondaryActions: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps> & import("../..").GlobalProps & React.RefAttributes<any>>;
3
- export default DBControlPanelSecondaryActions;
@@ -1,11 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useRef, forwardRef } from "react";
5
- import { cls } from "../../utils";
6
- function DBControlPanelSecondaryActionsFn(props, component) {
7
- const _ref = component || useRef(undefined);
8
- return (React.createElement("div", Object.assign({ ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: props.id }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-control-panel-secondary-actions", props.className) }), props.children));
9
- }
10
- const DBControlPanelSecondaryActions = forwardRef(DBControlPanelSecondaryActionsFn);
11
- export default DBControlPanelSecondaryActions;
@@ -1 +0,0 @@
1
- export { default as DBControlPanelSecondaryActions } from './control-panel-secondary-actions';
@@ -1 +0,0 @@
1
- export { default as DBControlPanelSecondaryActions } from './control-panel-secondary-actions';
@@ -1,5 +0,0 @@
1
- import { GlobalProps, GlobalState } from '../../shared/model';
2
- export type DBControlPanelSecondaryActionsDefaultProps = {};
3
- export type DBControlPanelSecondaryActionsProps = DBControlPanelSecondaryActionsDefaultProps & GlobalProps;
4
- export type DBControlPanelSecondaryActionsDefaultState = {};
5
- export type DBControlPanelSecondaryActionsState = DBControlPanelSecondaryActionsDefaultState & GlobalState;
@@ -1 +0,0 @@
1
- export { default as DBNavigationItemGroup } from './navigation-item-group';
@@ -1 +0,0 @@
1
- export { default as DBNavigationItemGroup } from './navigation-item-group';
@@ -1,26 +0,0 @@
1
- import { AdditionalInformationSlotProps, ClickEvent, ClickEventProps, ClickEventState, DisabledProps, GlobalProps, GlobalState, IconProps, InitializedState, NavigationBackButtonProps, NavigationBehaviorState, NavigationItemGroupVariant, ShowIconProps } from '../../shared/model';
2
- import { NavigationItemSafeTriangle } from '../../utils/navigation';
3
- import { DBNavigationItemDefaultProps } from '../navigation-item/model';
4
- export type DBNavigationItemGroupDefaultProps = {
5
- /**
6
- * This is for mobile navigation only, if it is set the sub-navigation is a static overlay
7
- */
8
- expanded?: boolean | string;
9
- };
10
- export type DBNavigationItemGroupProps = DBNavigationItemGroupDefaultProps & NavigationBackButtonProps & ClickEventProps<HTMLButtonElement> & GlobalProps & IconProps & ShowIconProps & DBNavigationItemDefaultProps & DisabledProps & NavigationItemGroupVariant & AdditionalInformationSlotProps;
11
- export type DBNavigationItemGroupDefaultState = {
12
- handleBackClick: (event: ClickEvent<HTMLButtonElement>) => void;
13
- isSubNavigationExpanded: boolean;
14
- subNavigationId: string;
15
- /**
16
- * Internal state property to show/hide sub-navigation button
17
- */
18
- hasSubNavigation?: boolean;
19
- hasPopup?: boolean;
20
- navigationItemSafeTriangle?: NavigationItemSafeTriangle;
21
- autoClose?: boolean;
22
- onScroll: () => void;
23
- handleEscape: (event: any) => void;
24
- forceClose: () => void;
25
- };
26
- export type DBNavigationItemGroupState = DBNavigationItemGroupDefaultState & ClickEventState<HTMLButtonElement> & GlobalState & NavigationBehaviorState & InitializedState;
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBNavigationItemGroup: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, "variant" | "expanded" | "disabled" | "icon" | "onClick" | keyof import("../../shared/model").GlobalProps | "showIcon" | "additionalInformation" | keyof import("../..").DBNavigationItemDefaultProps | keyof import("../../shared/model").NavigationBackButtonProps> & import("./model").DBNavigationItemGroupDefaultProps & import("../../shared/model").NavigationBackButtonProps & import("../../shared/model").ClickEventProps<HTMLButtonElement> & import("../../shared/model").GlobalProps & import("../../shared/model").IconProps & import("../../shared/model").ShowIconProps & import("../..").DBNavigationItemDefaultProps & import("../../shared/model").DisabledProps & import("../../shared/model").NavigationItemGroupVariant & import("../../shared/model").AdditionalInformationSlotProps & React.RefAttributes<any>>;
3
- export default DBNavigationItemGroup;
@@ -1,100 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useState, useRef, useEffect, forwardRef } from "react";
5
- import { DEFAULT_BACK } from "../../shared/constants";
6
- import { cls, delay, getBoolean, getBooleanAsString, getHideProp, uuid, } from "../../utils";
7
- import { handleSubNavigationPosition, NavigationItemSafeTriangle, } from "../../utils/navigation";
8
- import DBButton from "../button/button";
9
- function DBNavigationItemGroupFn(props, component) {
10
- var _a;
11
- const _ref = component || useRef(undefined);
12
- const _menuRef = useRef(undefined);
13
- const _buttonRef = useRef(undefined);
14
- const [hasSubNavigation, setHasSubNavigation] = useState(() => true);
15
- const [isSubNavigationExpanded, setIsSubNavigationExpanded] = useState(() => false);
16
- const [autoClose, setAutoClose] = useState(() => false);
17
- const [hasPopup, setHasPopup] = useState(() => false);
18
- const [initialized, setInitialized] = useState(() => false);
19
- const [subNavigationId, setSubNavigationId] = useState(() => "db-navigation-item-group-menu-" + uuid());
20
- const [navigationItemSafeTriangle, setNavigationItemSafeTriangle] = useState(() => undefined);
21
- function onScroll() {
22
- if (hasPopup) {
23
- handleSubNavigationPosition(_ref.current);
24
- }
25
- }
26
- function handleNavigationItemClick(event) {
27
- var _a;
28
- if (((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.nodeName) === "A") {
29
- forceClose();
30
- }
31
- }
32
- function forceClose() {
33
- setAutoClose(true);
34
- void delay(() => {
35
- setAutoClose(false);
36
- }, 300);
37
- }
38
- function handleClick(event) {
39
- if (props.onClick) {
40
- event.stopPropagation();
41
- props.onClick(event);
42
- }
43
- setIsSubNavigationExpanded(!isSubNavigationExpanded);
44
- }
45
- function handleBackClick(event) {
46
- event.stopPropagation();
47
- setIsSubNavigationExpanded(false);
48
- }
49
- function handleEscape(event) {
50
- if (!event || event.key === "Escape") {
51
- forceClose();
52
- _buttonRef.current.blur();
53
- }
54
- }
55
- useEffect(() => {
56
- setInitialized(true);
57
- }, []);
58
- useEffect(() => {
59
- if (props.expanded !== undefined) {
60
- setIsSubNavigationExpanded(!!getBoolean(props.expanded, "subNavigationExpanded"));
61
- }
62
- }, [props.expanded]);
63
- useEffect(() => {
64
- if (_ref.current && initialized) {
65
- setInitialized(false);
66
- // We delay this because the navigation variant check is delayed as well
67
- void delay(() => {
68
- const element = _ref.current;
69
- const nav = element.closest(".db-navigation");
70
- setHasPopup(!nav ||
71
- !nav.dataset["variant"] ||
72
- nav.dataset["variant"] === "popover");
73
- }, 200);
74
- }
75
- }, [_ref.current, initialized]);
76
- useEffect(() => {
77
- if (_ref.current &&
78
- _buttonRef.current &&
79
- _menuRef.current &&
80
- hasPopup &&
81
- !navigationItemSafeTriangle) {
82
- void delay(() => {
83
- setNavigationItemSafeTriangle(new NavigationItemSafeTriangle(_ref.current, _menuRef.current));
84
- }, 1);
85
- ["mouseenter", "focusin"].forEach((event) => {
86
- _ref.current.addEventListener(event, () => handleSubNavigationPosition(_menuRef.current));
87
- });
88
- }
89
- }, [_ref.current, _menuRef.current, _buttonRef.current, hasPopup]);
90
- return (React.createElement("li", Object.assign({ ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: props.id, onMouseOver: (event) => navigationItemSafeTriangle === null || navigationItemSafeTriangle === void 0 ? void 0 : navigationItemSafeTriangle.enableFollow(), onMouseLeave: (event) => navigationItemSafeTriangle === null || navigationItemSafeTriangle === void 0 ? void 0 : navigationItemSafeTriangle.disableFollow(), onMouseMove: (event) => navigationItemSafeTriangle === null || navigationItemSafeTriangle === void 0 ? void 0 : navigationItemSafeTriangle.followByMouseEvent(event), onKeyDown: (event) => handleEscape(event) }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-navigation-item-group", props.className), "data-icon": props.icon, "data-hide-icon": getHideProp(props.showIcon), "data-active": props.active, "aria-disabled": getBooleanAsString(props.disabled) }),
91
- React.createElement("button", { type: "button", className: "db-navigation-item-group-expand-button", ref: _buttonRef, "aria-haspopup": getBooleanAsString(hasPopup ? true : undefined), "aria-owns": hasPopup ? undefined : subNavigationId, "aria-expanded": getBooleanAsString(isSubNavigationExpanded), disabled: getBoolean(props.disabled, "disabled"), onClick: (event) => handleClick(event) },
92
- props.text,
93
- React.createElement(React.Fragment, null, props.additionalInformation)),
94
- React.createElement("menu", { className: "db-navigation-item-group-menu", role: "group", ref: _menuRef, "data-force-close": getBooleanAsString(autoClose), id: subNavigationId, onScroll: (event) => onScroll(), onClick: (event) => handleNavigationItemClick(event) },
95
- React.createElement("div", { className: "db-navigation-item-group-back-button" },
96
- React.createElement(DBButton, { icon: "arrow_left", variant: "ghost", id: props.backButtonId, onClick: (event) => handleBackClick(event) }, (_a = props.backButtonText) !== null && _a !== void 0 ? _a : DEFAULT_BACK)),
97
- props.children)));
98
- }
99
- const DBNavigationItemGroup = forwardRef(DBNavigationItemGroupFn);
100
- export default DBNavigationItemGroup;
@@ -1 +0,0 @@
1
- export { default as DBShell } from './shell';
@@ -1 +0,0 @@
1
- export { default as DBShell } from './shell';
@@ -1,50 +0,0 @@
1
- import { GlobalProps, GlobalState, ShellControlPanelDesktopPositionType, ShellControlPanelMobilePositionType } from '../../shared/model';
2
- export declare const ShellSubNavigationMobilePosition: readonly ["top", "bottom", "none"];
3
- export type ShellSubNavigationMobilePositionType = (typeof ShellSubNavigationMobilePosition)[number];
4
- export type DBShellDefaultProps = {
5
- /**
6
- * The slot can be used for React to set a desktopControlPanel.
7
- */
8
- controlPanelDesktop?: any;
9
- /**
10
- * Change the position of the desktop content panel
11
- */
12
- controlPanelDesktopPosition?: ShellControlPanelDesktopPositionType;
13
- /**
14
- * The slot can be used for React to set a mobileControlPanel.
15
- */
16
- controlPanelMobile?: any;
17
- /**
18
- * Change the position of the mobile content panel
19
- */
20
- controlPanelMobilePosition?: ShellControlPanelMobilePositionType;
21
- /**
22
- * Set this to have a transition with opacity to avoid layout-shifts https://simonhearne.com/2021/layout-shifts-webfonts/
23
- */
24
- fadeIn?: boolean | string;
25
- /**
26
- * Adds `class` to `<main>` element
27
- */
28
- mainClass?: string;
29
- /**
30
- * The slot can be used for React to set a subNavigation.
31
- */
32
- subNavigation?: any;
33
- /**
34
- * Change the position of the optional sub navigation for desktop
35
- */
36
- subNavigationDesktopPosition?: ShellControlPanelDesktopPositionType;
37
- /**
38
- * Change the position of the optional sub navigation for mobile
39
- */
40
- subNavigationMobilePosition?: ShellSubNavigationMobilePositionType;
41
- /**
42
- * Shows sub-navigation
43
- */
44
- showSubNavigation?: boolean | string;
45
- };
46
- export type DBShellProps = DBShellDefaultProps & GlobalProps;
47
- export type DBShellDefaultState = {
48
- fontsLoaded?: boolean;
49
- };
50
- export type DBShellState = DBShellDefaultState & GlobalState;
@@ -1 +0,0 @@
1
- export const ShellSubNavigationMobilePosition = ['top', 'bottom', 'none'];
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBShell: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | keyof import("./model").DBShellDefaultProps> & import("./model").DBShellDefaultProps & import("../..").GlobalProps & React.RefAttributes<any>>;
3
- export default DBShell;
@@ -1 +0,0 @@
1
- export { default as DBShellSubNavigation } from './shell-sub-navigation';
@@ -1 +0,0 @@
1
- export { default as DBShellSubNavigation } from './shell-sub-navigation';
@@ -1,5 +0,0 @@
1
- import { GlobalProps, GlobalState, SidebarProps, SidebarState, ToggleEventState } from '../../shared/model';
2
- export type DBShellSubNavigationDefaultProps = {};
3
- export type DBShellSubNavigationProps = DBShellSubNavigationDefaultProps & GlobalProps & SidebarProps;
4
- export type DBShellSubNavigationDefaultState = {};
5
- export type DBShellSubNavigationState = DBShellSubNavigationDefaultState & GlobalState & ToggleEventState<HTMLButtonElement> & SidebarState;
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const DBShellSubNavigation: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | keyof import("../..").SidebarProps> & import("../..").GlobalProps & import("../..").SidebarProps & React.RefAttributes<any>>;
3
- export default DBShellSubNavigation;
@@ -1,45 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useState, useRef, forwardRef } from "react";
5
- import { DEFAULT_COLLAPSE, DEFAULT_EXPAND } from "../../shared/constants";
6
- import { cls, getBoolean, getBooleanAsString, uuid } from "../../utils";
7
- import DBButton from "../button/button";
8
- import DBTooltip from "../tooltip/tooltip";
9
- function DBShellSubNavigationFn(props, component) {
10
- var _a, _b, _c;
11
- const _ref = component || useRef(undefined);
12
- const [_id, set_id] = useState(() => `db-shell-sub-navigation-${uuid()}`);
13
- const [_open, set_open] = useState(() => true);
14
- function handleToggle(event) {
15
- event.stopPropagation();
16
- set_open(!_open);
17
- }
18
- function getToggleButtonText() {
19
- var _a;
20
- if (props.expandButtonTooltip) {
21
- return props.expandButtonTooltip;
22
- }
23
- const fnOutput = () => {
24
- if (props.onExpandButtonTooltipFn) {
25
- const open = _open;
26
- return props.onExpandButtonTooltipFn(open);
27
- }
28
- };
29
- return (_a = fnOutput()) !== null && _a !== void 0 ? _a : (_open ? DEFAULT_COLLAPSE : DEFAULT_EXPAND);
30
- }
31
- const hasInitialized = useRef(false);
32
- if (!hasInitialized.current) {
33
- if (props.expanded !== undefined) {
34
- set_open((_a = getBoolean(props.expanded, "expanded")) !== null && _a !== void 0 ? _a : true);
35
- }
36
- hasInitialized.current = true;
37
- }
38
- return (React.createElement("div", Object.assign({ ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: (_b = props.id) !== null && _b !== void 0 ? _b : _id, "data-open": getBooleanAsString(_open) }, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-shell-sub-navigation", props.className) }),
39
- props.children,
40
- React.createElement("div", { className: "db-shell-sub-navigation-button" },
41
- React.createElement(DBButton, { variant: "ghost", icon: "double_chevron_left", onClick: (event) => handleToggle(event), "aria-controls": (_c = props.id) !== null && _c !== void 0 ? _c : _id, "aria-expanded": getBooleanAsString(_open), noText: true },
42
- React.createElement(DBTooltip, { variant: "label", placement: "right" }, getToggleButtonText())))));
43
- }
44
- const DBShellSubNavigation = forwardRef(DBShellSubNavigationFn);
45
- export default DBShellSubNavigation;