@db-ux/react-core-components 1.0.0-test-13b991d

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 (200) hide show
  1. package/README.md +76 -0
  2. package/dist/components/accordion/accordion.d.ts +3 -0
  3. package/dist/components/accordion/accordion.js +92 -0
  4. package/dist/components/accordion/index.d.ts +1 -0
  5. package/dist/components/accordion/index.js +1 -0
  6. package/dist/components/accordion/model.d.ts +41 -0
  7. package/dist/components/accordion/model.js +2 -0
  8. package/dist/components/accordion-item/accordion-item.d.ts +8 -0
  9. package/dist/components/accordion-item/accordion-item.js +34 -0
  10. package/dist/components/accordion-item/index.d.ts +1 -0
  11. package/dist/components/accordion-item/index.js +1 -0
  12. package/dist/components/accordion-item/model.d.ts +24 -0
  13. package/dist/components/accordion-item/model.js +1 -0
  14. package/dist/components/badge/badge.d.ts +3 -0
  15. package/dist/components/badge/badge.js +32 -0
  16. package/dist/components/badge/index.d.ts +1 -0
  17. package/dist/components/badge/index.js +1 -0
  18. package/dist/components/badge/model.d.ts +16 -0
  19. package/dist/components/badge/model.js +1 -0
  20. package/dist/components/brand/brand.d.ts +3 -0
  21. package/dist/components/brand/brand.js +13 -0
  22. package/dist/components/brand/index.d.ts +1 -0
  23. package/dist/components/brand/index.js +1 -0
  24. package/dist/components/brand/model.d.ts +10 -0
  25. package/dist/components/brand/model.js +1 -0
  26. package/dist/components/button/button.d.ts +3 -0
  27. package/dist/components/button/button.js +16 -0
  28. package/dist/components/button/index.d.ts +1 -0
  29. package/dist/components/button/index.js +1 -0
  30. package/dist/components/button/model.d.ts +52 -0
  31. package/dist/components/button/model.js +3 -0
  32. package/dist/components/card/card.d.ts +3 -0
  33. package/dist/components/card/card.js +16 -0
  34. package/dist/components/card/index.d.ts +1 -0
  35. package/dist/components/card/index.js +1 -0
  36. package/dist/components/card/model.d.ts +18 -0
  37. package/dist/components/card/model.js +2 -0
  38. package/dist/components/checkbox/checkbox.d.ts +3 -0
  39. package/dist/components/checkbox/checkbox.js +112 -0
  40. package/dist/components/checkbox/index.d.ts +1 -0
  41. package/dist/components/checkbox/index.js +1 -0
  42. package/dist/components/checkbox/model.d.ts +10 -0
  43. package/dist/components/checkbox/model.js +1 -0
  44. package/dist/components/divider/divider.d.ts +3 -0
  45. package/dist/components/divider/divider.js +11 -0
  46. package/dist/components/divider/index.d.ts +1 -0
  47. package/dist/components/divider/index.js +1 -0
  48. package/dist/components/divider/model.d.ts +18 -0
  49. package/dist/components/divider/model.js +2 -0
  50. package/dist/components/drawer/drawer.d.ts +3 -0
  51. package/dist/components/drawer/drawer.js +70 -0
  52. package/dist/components/drawer/index.d.ts +1 -0
  53. package/dist/components/drawer/index.js +1 -0
  54. package/dist/components/drawer/model.d.ts +41 -0
  55. package/dist/components/drawer/model.js +3 -0
  56. package/dist/components/header/header.d.ts +3 -0
  57. package/dist/components/header/header.js +68 -0
  58. package/dist/components/header/index.d.ts +1 -0
  59. package/dist/components/header/index.js +1 -0
  60. package/dist/components/header/model.d.ts +44 -0
  61. package/dist/components/header/model.js +1 -0
  62. package/dist/components/icon/icon.d.ts +3 -0
  63. package/dist/components/icon/icon.js +11 -0
  64. package/dist/components/icon/index.d.ts +1 -0
  65. package/dist/components/icon/index.js +1 -0
  66. package/dist/components/icon/model.d.ts +12 -0
  67. package/dist/components/icon/model.js +2 -0
  68. package/dist/components/infotext/index.d.ts +1 -0
  69. package/dist/components/infotext/index.js +1 -0
  70. package/dist/components/infotext/infotext.d.ts +3 -0
  71. package/dist/components/infotext/infotext.js +12 -0
  72. package/dist/components/infotext/model.d.ts +5 -0
  73. package/dist/components/infotext/model.js +1 -0
  74. package/dist/components/input/index.d.ts +1 -0
  75. package/dist/components/input/index.js +1 -0
  76. package/dist/components/input/input.d.ts +3 -0
  77. package/dist/components/input/input.js +119 -0
  78. package/dist/components/input/model.d.ts +39 -0
  79. package/dist/components/input/model.js +5 -0
  80. package/dist/components/link/index.d.ts +1 -0
  81. package/dist/components/link/index.js +1 -0
  82. package/dist/components/link/link.d.ts +3 -0
  83. package/dist/components/link/link.js +17 -0
  84. package/dist/components/link/model.d.ts +24 -0
  85. package/dist/components/link/model.js +3 -0
  86. package/dist/components/navigation/index.d.ts +1 -0
  87. package/dist/components/navigation/index.js +1 -0
  88. package/dist/components/navigation/model.d.ts +5 -0
  89. package/dist/components/navigation/model.js +1 -0
  90. package/dist/components/navigation/navigation.d.ts +3 -0
  91. package/dist/components/navigation/navigation.js +17 -0
  92. package/dist/components/navigation-item/index.d.ts +1 -0
  93. package/dist/components/navigation-item/index.js +1 -0
  94. package/dist/components/navigation-item/model.d.ts +34 -0
  95. package/dist/components/navigation-item/model.js +1 -0
  96. package/dist/components/navigation-item/navigation-item.d.ts +3 -0
  97. package/dist/components/navigation-item/navigation-item.js +68 -0
  98. package/dist/components/notification/index.d.ts +1 -0
  99. package/dist/components/notification/index.js +1 -0
  100. package/dist/components/notification/model.d.ts +57 -0
  101. package/dist/components/notification/model.js +3 -0
  102. package/dist/components/notification/notification.d.ts +3 -0
  103. package/dist/components/notification/notification.js +25 -0
  104. package/dist/components/page/index.d.ts +1 -0
  105. package/dist/components/page/index.js +1 -0
  106. package/dist/components/page/model.d.ts +32 -0
  107. package/dist/components/page/model.js +2 -0
  108. package/dist/components/page/page.d.ts +3 -0
  109. package/dist/components/page/page.js +47 -0
  110. package/dist/components/popover/index.d.ts +1 -0
  111. package/dist/components/popover/index.js +1 -0
  112. package/dist/components/popover/model.d.ts +18 -0
  113. package/dist/components/popover/model.js +1 -0
  114. package/dist/components/popover/popover.d.ts +3 -0
  115. package/dist/components/popover/popover.js +74 -0
  116. package/dist/components/radio/index.d.ts +1 -0
  117. package/dist/components/radio/index.js +1 -0
  118. package/dist/components/radio/model.d.ts +7 -0
  119. package/dist/components/radio/model.js +1 -0
  120. package/dist/components/radio/radio.d.ts +3 -0
  121. package/dist/components/radio/radio.js +54 -0
  122. package/dist/components/section/index.d.ts +1 -0
  123. package/dist/components/section/index.js +1 -0
  124. package/dist/components/section/model.d.ts +5 -0
  125. package/dist/components/section/model.js +1 -0
  126. package/dist/components/section/section.d.ts +3 -0
  127. package/dist/components/section/section.js +16 -0
  128. package/dist/components/select/index.d.ts +1 -0
  129. package/dist/components/select/index.js +1 -0
  130. package/dist/components/select/model.d.ts +43 -0
  131. package/dist/components/select/model.js +1 -0
  132. package/dist/components/select/select.d.ts +3 -0
  133. package/dist/components/select/select.js +132 -0
  134. package/dist/components/stack/index.d.ts +1 -0
  135. package/dist/components/stack/index.js +1 -0
  136. package/dist/components/stack/model.d.ts +34 -0
  137. package/dist/components/stack/model.js +4 -0
  138. package/dist/components/stack/stack.d.ts +3 -0
  139. package/dist/components/stack/stack.js +11 -0
  140. package/dist/components/switch/index.d.ts +1 -0
  141. package/dist/components/switch/index.js +1 -0
  142. package/dist/components/switch/model.d.ts +12 -0
  143. package/dist/components/switch/model.js +1 -0
  144. package/dist/components/switch/switch.d.ts +3 -0
  145. package/dist/components/switch/switch.js +47 -0
  146. package/dist/components/tab-item/index.d.ts +1 -0
  147. package/dist/components/tab-item/index.js +1 -0
  148. package/dist/components/tab-item/model.d.ts +24 -0
  149. package/dist/components/tab-item/model.js +1 -0
  150. package/dist/components/tab-item/tab-item.d.ts +3 -0
  151. package/dist/components/tab-item/tab-item.js +37 -0
  152. package/dist/components/tab-list/index.d.ts +1 -0
  153. package/dist/components/tab-list/index.js +1 -0
  154. package/dist/components/tab-list/model.d.ts +5 -0
  155. package/dist/components/tab-list/model.js +1 -0
  156. package/dist/components/tab-list/tab-list.d.ts +3 -0
  157. package/dist/components/tab-list/tab-list.js +17 -0
  158. package/dist/components/tab-panel/index.d.ts +1 -0
  159. package/dist/components/tab-panel/index.js +1 -0
  160. package/dist/components/tab-panel/model.d.ts +10 -0
  161. package/dist/components/tab-panel/model.js +1 -0
  162. package/dist/components/tab-panel/tab-panel.d.ts +3 -0
  163. package/dist/components/tab-panel/tab-panel.js +14 -0
  164. package/dist/components/tabs/index.d.ts +1 -0
  165. package/dist/components/tabs/index.js +1 -0
  166. package/dist/components/tabs/model.d.ts +47 -0
  167. package/dist/components/tabs/model.js +2 -0
  168. package/dist/components/tabs/tabs.d.ts +3 -0
  169. package/dist/components/tabs/tabs.js +138 -0
  170. package/dist/components/tag/index.d.ts +1 -0
  171. package/dist/components/tag/index.js +1 -0
  172. package/dist/components/tag/model.d.ts +45 -0
  173. package/dist/components/tag/model.js +1 -0
  174. package/dist/components/tag/tag.d.ts +3 -0
  175. package/dist/components/tag/tag.js +46 -0
  176. package/dist/components/textarea/index.d.ts +1 -0
  177. package/dist/components/textarea/index.js +1 -0
  178. package/dist/components/textarea/model.d.ts +30 -0
  179. package/dist/components/textarea/model.js +2 -0
  180. package/dist/components/textarea/textarea.d.ts +3 -0
  181. package/dist/components/textarea/textarea.js +105 -0
  182. package/dist/components/tooltip/index.d.ts +1 -0
  183. package/dist/components/tooltip/index.js +1 -0
  184. package/dist/components/tooltip/model.d.ts +7 -0
  185. package/dist/components/tooltip/model.js +1 -0
  186. package/dist/components/tooltip/tooltip.d.ts +3 -0
  187. package/dist/components/tooltip/tooltip.js +43 -0
  188. package/dist/index.d.ts +36 -0
  189. package/dist/index.js +36 -0
  190. package/dist/shared/constants.d.ts +83 -0
  191. package/dist/shared/constants.js +87 -0
  192. package/dist/shared/model.d.ts +446 -0
  193. package/dist/shared/model.js +20 -0
  194. package/dist/utils/form-components.d.ts +2 -0
  195. package/dist/utils/form-components.js +10 -0
  196. package/dist/utils/index.d.ts +61 -0
  197. package/dist/utils/index.js +166 -0
  198. package/dist/utils/navigation.d.ts +32 -0
  199. package/dist/utils/navigation.js +136 -0
  200. package/package.json +43 -0
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { cls, getHideProp, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBTabItemFn(props, component) {
6
+ const _ref = component || useRef(component);
7
+ const [initialized, setInitialized] = useState(() => false);
8
+ const [_selected, set_selected] = useState(() => false);
9
+ function handleChange(event) {
10
+ var _a;
11
+ if (props.onChange) {
12
+ props.onChange(event);
13
+ }
14
+ if (props.change) {
15
+ props.change(event);
16
+ }
17
+ // We have different ts types in different frameworks, so we need to use any here
18
+ set_selected((_a = event.target) === null || _a === void 0 ? void 0 : _a["checked"]);
19
+ }
20
+ useEffect(() => {
21
+ setInitialized(true);
22
+ }, []);
23
+ useEffect(() => {
24
+ if (props.active && initialized && _ref.current) {
25
+ _ref.current.click();
26
+ setInitialized(false);
27
+ }
28
+ }, [_ref.current, initialized]);
29
+ return (React.createElement("li", Object.assign({ role: "none" }, 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-tab-item", props.className) }),
30
+ React.createElement("label", { htmlFor: props.id, "data-icon": props.icon, "data-icon-after": props.iconAfter, "data-hide-icon": getHideProp(props.showIcon), "data-hide-icon-after": getHideProp(props.showIcon), "data-no-text": props.noText },
31
+ React.createElement("input", Object.assign({ type: "radio", role: "tab", disabled: props.disabled, "aria-selected": _selected, "aria-controls": props.controls, checked: props.checked, 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, onChange: (event) => handleChange(event) })),
32
+ props.label ? React.createElement(React.Fragment, null, props.label) : null,
33
+ props.children)));
34
+ }
35
+ const DBTabItem = forwardRef(DBTabItemFn);
36
+ DBTabItem.defaultProps = {};
37
+ export default DBTabItem;
@@ -0,0 +1 @@
1
+ export { default as DBTabList } from './tab-list';
@@ -0,0 +1 @@
1
+ export { default as DBTabList } from './tab-list';
@@ -0,0 +1,5 @@
1
+ import { GlobalProps, GlobalState } from '../../shared/model';
2
+ export type DBTabListDefaultProps = {};
3
+ export type DBTabListProps = DBTabListDefaultProps & GlobalProps;
4
+ export type DBTabListDefaultState = {};
5
+ export type DBTabListState = DBTabListDefaultState & GlobalState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTabList: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, keyof import("../..").GlobalProps> & import("../..").GlobalProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBTabList;
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { cls, uuid, filterPassingProps, getRootProps } from "../../utils";
5
+ import { DEFAULT_ID } from "../../shared/constants";
6
+ function DBTabListFn(props, component) {
7
+ const _ref = component || useRef(component);
8
+ const [_id, set_id] = useState(() => DEFAULT_ID);
9
+ useEffect(() => {
10
+ set_id(props.id || "tab-list-" + uuid());
11
+ }, []);
12
+ 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: _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-tab-list", props.className) }),
13
+ React.createElement("ul", { role: "tablist" }, props.children)));
14
+ }
15
+ const DBTabList = forwardRef(DBTabListFn);
16
+ DBTabList.defaultProps = {};
17
+ export default DBTabList;
@@ -0,0 +1 @@
1
+ export { default as DBTabPanel } from './tab-panel';
@@ -0,0 +1 @@
1
+ export { default as DBTabPanel } from './tab-panel';
@@ -0,0 +1,10 @@
1
+ import { AriaLabelledByProps, GlobalProps, GlobalState } from '../../shared/model';
2
+ export type DBTabPanelDefaultProps = {
3
+ /**
4
+ * The content if you don't want to use children.
5
+ */
6
+ content?: string;
7
+ };
8
+ export type DBTabPanelProps = DBTabPanelDefaultProps & GlobalProps & AriaLabelledByProps;
9
+ export type DBTabPanelDefaultState = {};
10
+ export type DBTabPanelState = DBTabPanelDefaultState & GlobalState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTabPanel: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "content" | keyof import("../..").GlobalProps | "labelledBy"> & import("./model").DBTabPanelDefaultProps & import("../..").GlobalProps & import("../..").AriaLabelledByProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBTabPanel;
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useRef, useEffect, forwardRef } from "react";
4
+ import { cls, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBTabPanelFn(props, component) {
6
+ const _ref = component || useRef(component);
7
+ useEffect(() => { }, []);
8
+ return (React.createElement("section", Object.assign({ role: "tabpanel", 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"]), 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-tab-panel", props.className), id: props.id, "aria-labelledby": props.labelledBy }),
9
+ props.content ? React.createElement(React.Fragment, null, props.content) : null,
10
+ props.children));
11
+ }
12
+ const DBTabPanel = forwardRef(DBTabPanelFn);
13
+ DBTabPanel.defaultProps = {};
14
+ export default DBTabPanel;
@@ -0,0 +1 @@
1
+ export { default as DBTabs } from './tabs';
@@ -0,0 +1 @@
1
+ export { default as DBTabs } from './tabs';
@@ -0,0 +1,47 @@
1
+ import { AlignmentProps, GlobalProps, GlobalState, InitializedState, OrientationProps, WidthProps } from '../../shared/model';
2
+ import { DBTabItemProps } from '../tab-item/model';
3
+ import { DBTabPanelProps } from '../tab-panel/model';
4
+ export declare const TabsBehaviorList: readonly ["scrollbar", "arrows"];
5
+ export type TabsBehaviorType = (typeof TabsBehaviorList)[number];
6
+ export declare const TabsInitialSelectedModeList: readonly ["auto", "manually"];
7
+ export type TabsInitialSelectedModeType = (typeof TabsInitialSelectedModeList)[number];
8
+ export type DBSimpleTabProps = DBTabItemProps & DBTabPanelProps;
9
+ export type DBTabsDefaultProps = {
10
+ /**
11
+ * Change amount of distance if you click on an arrow, only available with behavior="arrows"
12
+ */
13
+ arrowScrollDistance?: number;
14
+ /**
15
+ * Show a scrollbar or buttons with arrows to navigate for horizontal tabs with overflow visible
16
+ */
17
+ behavior?: TabsBehaviorType;
18
+ /**
19
+ * Default behavior is auto selecting the first tab, change selected tab by index
20
+ */
21
+ initialSelectedIndex?: number;
22
+ /**
23
+ * Default behavior is auto selecting the first tab, disable it with 'manually'
24
+ */
25
+ initialSelectedMode?: TabsInitialSelectedModeType;
26
+ /**
27
+ * The name of the tab bar, is required for grouping multiple tabs together. Will overwrite names from children.
28
+ */
29
+ name?: string;
30
+ /**
31
+ * Provide simple tabs with label + text as content
32
+ */
33
+ tabs?: DBSimpleTabProps[] | string;
34
+ };
35
+ export type DBTabsProps = DBTabsDefaultProps & GlobalProps & OrientationProps & WidthProps & AlignmentProps;
36
+ export type DBTabsDefaultState = {
37
+ _name: string;
38
+ scrollContainer?: Element | null;
39
+ scroll: (left?: boolean) => void;
40
+ showScrollLeft?: boolean;
41
+ showScrollRight?: boolean;
42
+ evaluateScrollButtons: (tabList: Element) => void;
43
+ convertTabs: (tabs?: unknown[] | string | undefined) => DBSimpleTabProps[];
44
+ initTabList: () => void;
45
+ initTabs: (init?: boolean) => void;
46
+ };
47
+ export type DBTabsState = DBTabsDefaultState & GlobalState & InitializedState;
@@ -0,0 +1,2 @@
1
+ export const TabsBehaviorList = ['scrollbar', 'arrows'];
2
+ export const TabsInitialSelectedModeList = ['auto', 'manually'];
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTabs: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "width" | "orientation" | keyof import("../..").GlobalProps | keyof import("./model").DBTabsDefaultProps | "alignment"> & import("./model").DBTabsDefaultProps & import("../..").GlobalProps & import("../..").OrientationProps & import("../..").WidthProps & import("../..").AlignmentProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBTabs;
@@ -0,0 +1,138 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { cls, uuid, filterPassingProps, getRootProps } from "../../utils";
5
+ import DBButton from "../button/button";
6
+ import DBTabList from "../tab-list/tab-list";
7
+ import DBTabItem from "../tab-item/tab-item";
8
+ import DBTabPanel from "../tab-panel/tab-panel";
9
+ function DBTabsFn(props, component) {
10
+ var _a, _b, _c, _d;
11
+ const _ref = component || useRef(component);
12
+ const [_id, set_id] = useState(() => "tabs-" + uuid());
13
+ const [_name, set_name] = useState(() => "");
14
+ const [initialized, setInitialized] = useState(() => false);
15
+ const [showScrollLeft, setShowScrollLeft] = useState(() => false);
16
+ const [showScrollRight, setShowScrollRight] = useState(() => false);
17
+ const [scrollContainer, setScrollContainer] = useState(() => null);
18
+ function convertTabs(tabs) {
19
+ try {
20
+ if (typeof tabs === "string") {
21
+ return JSON.parse(tabs);
22
+ }
23
+ return tabs;
24
+ }
25
+ catch (error) {
26
+ console.error(error);
27
+ }
28
+ return [];
29
+ }
30
+ function evaluateScrollButtons(tList) {
31
+ const needsScroll = tList.scrollWidth > tList.clientWidth;
32
+ setShowScrollLeft(needsScroll && tList.scrollLeft > 1);
33
+ setShowScrollRight(needsScroll && tList.scrollLeft < tList.scrollWidth - tList.clientWidth);
34
+ }
35
+ function scroll(left) {
36
+ let step = props.arrowScrollDistance || 100;
37
+ if (left) {
38
+ step *= -1;
39
+ }
40
+ scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.scrollBy({
41
+ top: 0,
42
+ left: step,
43
+ behavior: "smooth",
44
+ });
45
+ }
46
+ function initTabList() {
47
+ if (_ref.current) {
48
+ const tabList = _ref.current.querySelector(".db-tab-list");
49
+ if (tabList) {
50
+ const container = tabList.querySelector('[role="tablist"]');
51
+ if (container) {
52
+ container.setAttribute("aria-orientation", props.orientation || "horizontal");
53
+ if (props.behavior === "arrows") {
54
+ setScrollContainer(container);
55
+ evaluateScrollButtons(container);
56
+ container.addEventListener("scroll", () => {
57
+ evaluateScrollButtons(container);
58
+ });
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ function initTabs(init) {
65
+ if (_ref.current) {
66
+ const tabItems = Array.from(_ref.current.getElementsByClassName("db-tab-item"));
67
+ for (const tabItem of tabItems) {
68
+ const index = tabItems.indexOf(tabItem);
69
+ const label = tabItem.querySelector("label");
70
+ const input = tabItem.querySelector("input");
71
+ if (input && label) {
72
+ if (!input.id) {
73
+ const tabId = `${_name}-tab-${index}`;
74
+ label.setAttribute("for", tabId);
75
+ input.setAttribute("aria-controls", `${_name}-tab-panel-${index}`);
76
+ input.id = tabId;
77
+ input.setAttribute("name", _name);
78
+ }
79
+ if (init) {
80
+ // Auto select
81
+ const autoSelect = !props.initialSelectedMode ||
82
+ props.initialSelectedMode === "auto";
83
+ const shouldAutoSelect = (props.initialSelectedIndex == null && index === 0) ||
84
+ props.initialSelectedIndex === index;
85
+ if (autoSelect && shouldAutoSelect) {
86
+ input.click();
87
+ }
88
+ }
89
+ }
90
+ }
91
+ const tabPanels = Array.from(_ref.current.querySelectorAll(":is(:scope > .db-tab-panel, :scope > db-tab-panel > .db-tab-panel)"));
92
+ for (const panel of tabPanels) {
93
+ if (panel.id)
94
+ continue;
95
+ const index = tabPanels.indexOf(panel);
96
+ panel.id = `${_name}-tab-panel-${index}`;
97
+ panel.setAttribute("aria-labelledby", `${_name}-tab-${index}`);
98
+ }
99
+ }
100
+ }
101
+ useEffect(() => {
102
+ set_id(props.id || _id);
103
+ set_name(`tabs-${props.name || uuid()}`);
104
+ setInitialized(true);
105
+ }, []);
106
+ useEffect(() => {
107
+ if (_ref.current && initialized) {
108
+ initTabList();
109
+ initTabs(true);
110
+ const tabList = _ref.current.querySelector(".db-tab-list");
111
+ if (tabList) {
112
+ const observer = new MutationObserver((mutations) => {
113
+ mutations.forEach((mutation) => {
114
+ if (mutation.removedNodes.length || mutation.addedNodes.length) {
115
+ initTabList();
116
+ initTabs();
117
+ }
118
+ });
119
+ });
120
+ observer.observe(tabList, {
121
+ childList: true,
122
+ subtree: true,
123
+ });
124
+ }
125
+ setInitialized(false);
126
+ }
127
+ }, [_ref.current, initialized]);
128
+ 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: _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-tabs", props.className), "data-orientation": props.orientation, "data-scroll-behavior": props.behavior, "data-alignment": (_a = props.alignment) !== null && _a !== void 0 ? _a : "start", "data-width": (_b = props.width) !== null && _b !== void 0 ? _b : "auto" }),
129
+ showScrollLeft ? (React.createElement(DBButton, { className: "tabs-scroll-left", variant: "ghost", icon: "chevron_left", noText: true, onClick: (event) => scroll(true) }, "Scroll left")) : null,
130
+ props.tabs ? (React.createElement(React.Fragment, null,
131
+ React.createElement(DBTabList, null, (_c = convertTabs(props.tabs)) === null || _c === void 0 ? void 0 : _c.map((tab, index) => (React.createElement(DBTabItem, { key: props.name + "tab-item" + index, active: tab.active, label: tab.label, iconAfter: tab.iconAfter, icon: tab.icon, noText: tab.noText })))), (_d = convertTabs(props.tabs)) === null || _d === void 0 ? void 0 :
132
+ _d.map((tab, index) => (React.createElement(DBTabPanel, { key: props.name + "tab-panel" + index, content: tab.content }, tab.children))))) : null,
133
+ showScrollRight ? (React.createElement(DBButton, { className: "tabs-scroll-right", variant: "ghost", icon: "chevron_right", noText: true, onClick: (event) => scroll() }, "Scroll right")) : null,
134
+ props.children));
135
+ }
136
+ const DBTabs = forwardRef(DBTabsFn);
137
+ DBTabs.defaultProps = {};
138
+ export default DBTabs;
@@ -0,0 +1 @@
1
+ export { default as DBTag } from './tag';
@@ -0,0 +1 @@
1
+ export { default as DBTag } from './tag';
@@ -0,0 +1,45 @@
1
+ import { ContentSlotProps, GlobalProps, GlobalState, IconProps, InitializedState, OverflowProps, SemanticProps, ShowIconProps, TagEmphasisProps } from '../../shared/model';
2
+ export declare const TagBehaviorList: readonly ["static", "removable"];
3
+ export type TagBehaviorType = (typeof TagBehaviorList)[number];
4
+ export type DBTagDefaultProps = {
5
+ /**
6
+ * Defines the behavior of the component:
7
+ * - static: default behavior without remove button
8
+ * - removable: add a remove button at the end of the tag
9
+ */
10
+ behavior?: TagBehaviorType | string;
11
+ /**
12
+ * @deprecated Disable tag
13
+ */
14
+ disabled?: boolean;
15
+ /**
16
+ * Define the text next to the icon specified via the icon Property to get hidden.
17
+ */
18
+ noText?: boolean;
19
+ /**
20
+ * If "removeButton" attribute is set this function will be called when user clicks cancel button inside the tag.
21
+ */
22
+ onRemove?: () => void;
23
+ /**
24
+ * The removeButton attribute shows the cancel button.
25
+ */
26
+ removeButton?: string;
27
+ /**
28
+ * Enable/Disable icon for checkbox/radio inside tag.
29
+ */
30
+ showCheckState?: boolean;
31
+ /**
32
+ * Alternative for children to set content as property.
33
+ */
34
+ text?: string;
35
+ /**
36
+ * If "interactive" is set to true, you can pass a value to the underlying checkbox or radio input.
37
+ */
38
+ value?: string;
39
+ };
40
+ export type DBTagProps = DBTagDefaultProps & GlobalProps & IconProps & SemanticProps & OverflowProps & TagEmphasisProps & ShowIconProps & ContentSlotProps;
41
+ export type DBTagDefaultState = {
42
+ getRemoveButtonText: () => string;
43
+ handleRemove: () => void;
44
+ };
45
+ export type DBTagState = DBTagDefaultState & GlobalState & InitializedState;
@@ -0,0 +1 @@
1
+ export const TagBehaviorList = ['static', 'removable'];
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTag: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "content" | "overflow" | "icon" | keyof import("../..").GlobalProps | "showIcon" | "semantic" | "emphasis" | keyof import("./model").DBTagDefaultProps> & import("./model").DBTagDefaultProps & import("../..").GlobalProps & import("../..").IconProps & import("../..").SemanticProps & import("../..").OverflowProps & import("../..").TagEmphasisProps & import("../..").ShowIconProps & import("../..").ContentSlotProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBTag;
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { cls, getBooleanAsString, getHideProp, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBTagFn(props, component) {
6
+ var _a;
7
+ const _ref = component || useRef(component);
8
+ const [initialized, setInitialized] = useState(() => false);
9
+ function handleRemove() {
10
+ if (props.onRemove) {
11
+ props.onRemove();
12
+ }
13
+ }
14
+ function getRemoveButtonText() {
15
+ if (props.removeButton) {
16
+ return props.removeButton;
17
+ }
18
+ // TODO: We should think this through again, if we would really like to have default and especially english, instead of german labels in here
19
+ return "Remove tag";
20
+ }
21
+ const hasInitialized = useRef(false);
22
+ if (!hasInitialized.current) {
23
+ setInitialized(true);
24
+ hasInitialized.current = true;
25
+ }
26
+ useEffect(() => {
27
+ var _a, _b;
28
+ if (initialized && _ref.current && props.disabled !== undefined) {
29
+ const button = (_a = _ref.current) === null || _a === void 0 ? void 0 : _a.querySelector("button:not(.db-tab-remove-button)");
30
+ const input = (_b = _ref.current) === null || _b === void 0 ? void 0 : _b.querySelector("input");
31
+ for (const element of [button, input]) {
32
+ if (element) {
33
+ element.disabled = props.disabled;
34
+ }
35
+ }
36
+ }
37
+ }, [initialized, props.disabled, _ref.current]);
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: 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-tag", props.className), "data-disabled": getBooleanAsString(props.disabled), "data-semantic": props.semantic, "data-emphasis": props.emphasis, "data-icon": props.icon, "data-show-check-state": getBooleanAsString((_a = props.showCheckState) !== null && _a !== void 0 ? _a : true), "data-hide-icon": getHideProp(props.showIcon), "data-no-text": getBooleanAsString(props.noText), "data-overflow": getBooleanAsString(props.overflow) }),
39
+ React.createElement(React.Fragment, null, props.content),
40
+ props.children,
41
+ props.text ? React.createElement(React.Fragment, null, props.text) : null,
42
+ props.behavior === "removable" ? (React.createElement("button", { className: "db-button db-tab-remove-button", "data-icon": "cross", "data-size": "small", "data-no-text": "true", "data-variant": "ghost", onClick: (event) => handleRemove(), title: getRemoveButtonText() }, getRemoveButtonText())) : null));
43
+ }
44
+ const DBTag = forwardRef(DBTagFn);
45
+ DBTag.defaultProps = {};
46
+ export default DBTag;
@@ -0,0 +1 @@
1
+ export { default as DBTextarea } from './textarea';
@@ -0,0 +1 @@
1
+ export { default as DBTextarea } from './textarea';
@@ -0,0 +1,30 @@
1
+ import { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormMessageProps, FormProps, FormState, FormTextProps, GlobalProps, GlobalState, InputEventProps, InputEventState } from '../../shared/model';
2
+ export declare const TextareaResizeList: readonly ["none", "both", "horizontal", "vertical"];
3
+ export type TextareaResizeType = (typeof TextareaResizeList)[number];
4
+ export declare const TextareaWrapList: readonly ["hard", "soft", "off"];
5
+ export type TextareaWrapType = (typeof TextareaWrapList)[number];
6
+ export type DBTextareaDefaultProps = {
7
+ /**
8
+ * The visible width of the text control, in average character widths. If it is specified, it must be a positive integer
9
+ */
10
+ cols?: number;
11
+ /**
12
+ * In most browsers, textareas are resizable — you'll notice the drag handle in the right-hand corner, you can control it with this
13
+ */
14
+ resize?: TextareaResizeType;
15
+ /**
16
+ * The number of visible text lines for the control. If it is specified, it must be a positive integer
17
+ */
18
+ rows?: number;
19
+ /**
20
+ * Specifies whether the textarea is subject to spell checking by the underlying browser/OS
21
+ */
22
+ spellCheck?: boolean;
23
+ /**
24
+ * Indicates how the control should wrap the value for form submission.
25
+ */
26
+ wrap?: TextareaWrapType;
27
+ };
28
+ export type DBTextareaProps = DBTextareaDefaultProps & ChangeEventProps<HTMLTextAreaElement> & InputEventProps<HTMLTextAreaElement> & FocusEventProps<HTMLTextAreaElement> & FormProps & GlobalProps & FormTextProps & FormMessageProps;
29
+ export type DBTextareaDefaultState = {};
30
+ export type DBTextareaState = DBTextareaDefaultState & ChangeEventState<HTMLTextAreaElement> & InputEventState<HTMLTextAreaElement> & FocusEventState<HTMLTextAreaElement> & FormState & GlobalState;
@@ -0,0 +1,2 @@
1
+ export const TextareaResizeList = ['none', 'both', 'horizontal', 'vertical'];
2
+ export const TextareaWrapList = ['hard', 'soft', 'off'];
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTextarea: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTextAreaElement>, keyof import("../../shared/model").GlobalProps | keyof import("../../shared/model").FormProps | keyof import("../../shared/model").FormMessageProps | keyof import("../../shared/model").FormTextProps | keyof import("./model").DBTextareaDefaultProps | keyof import("../../shared/model").ChangeEventProps<HTMLTextAreaElement> | keyof import("../../shared/model").InputEventProps<HTMLTextAreaElement> | keyof import("../../shared/model").FocusEventProps<HTMLTextAreaElement>> & import("./model").DBTextareaDefaultProps & import("../../shared/model").ChangeEventProps<HTMLTextAreaElement> & import("../../shared/model").InputEventProps<HTMLTextAreaElement> & import("../../shared/model").FocusEventProps<HTMLTextAreaElement> & import("../../shared/model").FormProps & import("../../shared/model").GlobalProps & import("../../shared/model").FormTextProps & import("../../shared/model").FormMessageProps & React.RefAttributes<HTMLTextAreaElement>>;
3
+ export default DBTextarea;
@@ -0,0 +1,105 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import DBInfotext from "../infotext/infotext";
5
+ import { cls, delay, getHideProp, hasVoiceOver, stringPropVisible, uuid, filterPassingProps, getRootProps } from "../../utils";
6
+ import { DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_ROWS, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, } from "../../shared/constants";
7
+ function DBTextareaFn(props, component) {
8
+ var _a, _b, _c, _d, _e, _f, _g;
9
+ const _ref = component || useRef(component);
10
+ const [_id, set_id] = useState(() => undefined);
11
+ const [_messageId, set_messageId] = useState(() => undefined);
12
+ const [_validMessageId, set_validMessageId] = useState(() => undefined);
13
+ const [_invalidMessageId, set_invalidMessageId] = useState(() => undefined);
14
+ const [_descByIds, set_descByIds] = useState(() => "");
15
+ const [_value, set_value] = useState(() => "");
16
+ const [_voiceOverFallback, set_voiceOverFallback] = useState(() => "");
17
+ function handleInput(event) {
18
+ if (props.onInput) {
19
+ props.onInput(event);
20
+ }
21
+ if (props.input) {
22
+ props.input(event);
23
+ }
24
+ }
25
+ function handleChange(event) {
26
+ var _a, _b, _c, _d, _e, _f;
27
+ if (props.onChange) {
28
+ props.onChange(event);
29
+ }
30
+ if (props.change) {
31
+ props.change(event);
32
+ }
33
+ /* For a11y reasons we need to map the correct message with the textarea */
34
+ if (!((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validity.valid) || props.validation === "invalid") {
35
+ set_descByIds(_invalidMessageId);
36
+ if (hasVoiceOver()) {
37
+ set_voiceOverFallback((_d = (_b = props.invalidMessage) !== null && _b !== void 0 ? _b : (_c = _ref.current) === null || _c === void 0 ? void 0 : _c.validationMessage) !== null && _d !== void 0 ? _d : DEFAULT_INVALID_MESSAGE);
38
+ delay(() => set_voiceOverFallback(""), 1000);
39
+ }
40
+ }
41
+ else if (props.validation === "valid" ||
42
+ (((_e = _ref.current) === null || _e === void 0 ? void 0 : _e.validity.valid) &&
43
+ (props.required || props.minLength || props.maxLength))) {
44
+ set_descByIds(_validMessageId);
45
+ if (hasVoiceOver()) {
46
+ set_voiceOverFallback((_f = props.validMessage) !== null && _f !== void 0 ? _f : DEFAULT_VALID_MESSAGE);
47
+ delay(() => set_voiceOverFallback(""), 1000);
48
+ }
49
+ }
50
+ else if (stringPropVisible(props.message, props.showMessage)) {
51
+ set_descByIds(_messageId);
52
+ }
53
+ else {
54
+ set_descByIds("");
55
+ }
56
+ }
57
+ function handleBlur(event) {
58
+ if (props.onBlur) {
59
+ props.onBlur(event);
60
+ }
61
+ if (props.blur) {
62
+ props.blur(event);
63
+ }
64
+ }
65
+ function handleFocus(event) {
66
+ if (props.onFocus) {
67
+ props.onFocus(event);
68
+ }
69
+ if (props.focus) {
70
+ props.focus(event);
71
+ }
72
+ }
73
+ useEffect(() => {
74
+ var _a;
75
+ const mId = (_a = props.id) !== null && _a !== void 0 ? _a : `textarea-${uuid()}`;
76
+ set_id(mId);
77
+ set_messageId(mId + DEFAULT_MESSAGE_ID_SUFFIX);
78
+ set_validMessageId(mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
79
+ set_invalidMessageId(mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
80
+ }, []);
81
+ useEffect(() => {
82
+ if (_id) {
83
+ const messageId = _id + DEFAULT_MESSAGE_ID_SUFFIX;
84
+ set_messageId(messageId);
85
+ set_validMessageId(_id + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
86
+ set_invalidMessageId(_id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
87
+ if (stringPropVisible(props.message, props.showMessage)) {
88
+ set_descByIds(messageId);
89
+ }
90
+ }
91
+ }, [_id]);
92
+ useEffect(() => {
93
+ set_value(props.value);
94
+ }, [props.value]);
95
+ return (React.createElement("div", Object.assign({}, 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-textarea", props.className), "data-variant": props.variant, "data-hide-label": getHideProp(props.showLabel) }),
96
+ React.createElement("label", { htmlFor: _id }, (_a = props.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL),
97
+ React.createElement("textarea", Object.assign({ "aria-invalid": props.validation === "invalid", "data-custom-validity": props.validation, 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: _id, "data-resize": props.resize, disabled: props.disabled, required: props.required, readOnly: props.readOnly, form: props.form, maxLength: props.maxLength, minLength: props.minLength, name: props.name, wrap: props.wrap, spellCheck: props.spellCheck, autoComplete: props.autocomplete, onInput: (event) => handleInput(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), value: props.value, "aria-describedby": _descByIds, placeholder: (_b = props.placeholder) !== null && _b !== void 0 ? _b : DEFAULT_PLACEHOLDER, rows: (_c = props.rows) !== null && _c !== void 0 ? _c : DEFAULT_ROWS, cols: props.cols })),
98
+ stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
99
+ React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, (_d = props.validMessage) !== null && _d !== void 0 ? _d : DEFAULT_VALID_MESSAGE),
100
+ React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, (_g = (_e = props.invalidMessage) !== null && _e !== void 0 ? _e : (_f = _ref.current) === null || _f === void 0 ? void 0 : _f.validationMessage) !== null && _g !== void 0 ? _g : DEFAULT_INVALID_MESSAGE),
101
+ React.createElement("span", { "data-visually-hidden": "true", role: "status" }, _voiceOverFallback)));
102
+ }
103
+ const DBTextarea = forwardRef(DBTextareaFn);
104
+ DBTextarea.defaultProps = {};
105
+ export default DBTextarea;
@@ -0,0 +1 @@
1
+ export { default as DBTooltip } from './tooltip';
@@ -0,0 +1 @@
1
+ export { default as DBTooltip } from './tooltip';
@@ -0,0 +1,7 @@
1
+ import { ClickEventState, EmphasisProps, GlobalProps, GlobalState, InitializedState, PlacementProps, PopoverProps, PopoverState } from '../../shared/model';
2
+ export type DBTooltipDefaultProps = {
3
+ showArrow?: boolean;
4
+ };
5
+ export type DBTooltipProps = DBTooltipDefaultProps & GlobalProps & EmphasisProps & PlacementProps & PopoverProps;
6
+ export type DBTooltipDefaultState = {};
7
+ export type DBTooltipState = DBTooltipDefaultState & GlobalState & ClickEventState<HTMLElement> & PopoverState & InitializedState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBTooltip: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, keyof import("../../shared/model").GlobalProps | keyof import("../../shared/model").PopoverProps | "placement" | "emphasis" | "showArrow"> & import("./model").DBTooltipDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").EmphasisProps & import("../../shared/model").PlacementProps & import("../../shared/model").PopoverProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBTooltip;