@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,112 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { cls, delay, getHideProp, hasVoiceOver, stringPropVisible, uuid, filterPassingProps, getRootProps } from "../../utils";
5
+ import { DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, } from "../../shared/constants";
6
+ import DBInfotext from "../infotext/infotext";
7
+ function DBCheckboxFn(props, component) {
8
+ var _a, _b, _c, _d;
9
+ const _ref = component || useRef(component);
10
+ const [initialized, setInitialized] = useState(() => false);
11
+ const [_id, set_id] = useState(() => undefined);
12
+ const [_messageId, set_messageId] = useState(() => undefined);
13
+ const [_validMessageId, set_validMessageId] = useState(() => undefined);
14
+ const [_invalidMessageId, set_invalidMessageId] = useState(() => undefined);
15
+ const [_descByIds, set_descByIds] = useState(() => "");
16
+ const [_voiceOverFallback, set_voiceOverFallback] = useState(() => "");
17
+ function handleChange(event) {
18
+ var _a, _b, _c, _d, _e, _f;
19
+ if (props.onChange) {
20
+ props.onChange(event);
21
+ }
22
+ if (props.change) {
23
+ props.change(event);
24
+ }
25
+ /* For a11y reasons we need to map the correct message with the checkbox */
26
+ if (!((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validity.valid) || props.validation === "invalid") {
27
+ set_descByIds(_invalidMessageId);
28
+ if (hasVoiceOver()) {
29
+ 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);
30
+ delay(() => set_voiceOverFallback(""), 1000);
31
+ }
32
+ }
33
+ else if (props.validation === "valid" ||
34
+ (((_e = _ref.current) === null || _e === void 0 ? void 0 : _e.validity.valid) && props.required)) {
35
+ set_descByIds(_validMessageId);
36
+ if (hasVoiceOver()) {
37
+ set_voiceOverFallback((_f = props.validMessage) !== null && _f !== void 0 ? _f : DEFAULT_VALID_MESSAGE);
38
+ delay(() => set_voiceOverFallback(""), 1000);
39
+ }
40
+ }
41
+ else if (stringPropVisible(props.message, props.showMessage)) {
42
+ set_descByIds(_messageId);
43
+ }
44
+ else {
45
+ set_descByIds("");
46
+ }
47
+ }
48
+ function handleBlur(event) {
49
+ if (props.onBlur) {
50
+ props.onBlur(event);
51
+ }
52
+ if (props.blur) {
53
+ props.blur(event);
54
+ }
55
+ }
56
+ function handleFocus(event) {
57
+ if (props.onFocus) {
58
+ props.onFocus(event);
59
+ }
60
+ if (props.focus) {
61
+ props.focus(event);
62
+ }
63
+ }
64
+ useEffect(() => {
65
+ var _a;
66
+ setInitialized(true);
67
+ const mId = (_a = props.id) !== null && _a !== void 0 ? _a : `checkbox-${uuid()}`;
68
+ set_id(mId);
69
+ set_messageId(mId + DEFAULT_MESSAGE_ID_SUFFIX);
70
+ set_validMessageId(mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
71
+ set_invalidMessageId(mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
72
+ }, []);
73
+ useEffect(() => {
74
+ if (_id) {
75
+ const messageId = _id + DEFAULT_MESSAGE_ID_SUFFIX;
76
+ set_messageId(messageId);
77
+ set_validMessageId(_id + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
78
+ set_invalidMessageId(_id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
79
+ if (stringPropVisible(props.message, props.showMessage)) {
80
+ set_descByIds(messageId);
81
+ }
82
+ }
83
+ }, [_id]);
84
+ useEffect(() => {
85
+ if (initialized && document && _id) {
86
+ const checkboxElement = document === null || document === void 0 ? void 0 : document.getElementById(_id);
87
+ if (checkboxElement) {
88
+ // in angular this must be set via native element
89
+ if (props.checked != undefined) {
90
+ checkboxElement.checked = props.checked;
91
+ }
92
+ if (props.indeterminate !== undefined) {
93
+ // When indeterminate is set, the value of the checked prop only impacts the form submitted values.
94
+ // It has no accessibility or UX implications. (https://mui.com/material-ui/react-checkbox/)
95
+ checkboxElement.indeterminate = props.indeterminate;
96
+ }
97
+ setInitialized(false);
98
+ }
99
+ }
100
+ }, [initialized, props.indeterminate, props.checked]);
101
+ 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-checkbox", props.className), "data-size": props.size, "data-hide-label": getHideProp(props.showLabel) }),
102
+ React.createElement("label", { htmlFor: _id },
103
+ React.createElement("input", Object.assign({ type: "checkbox", "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, name: props.name, checked: props.checked, disabled: props.disabled, value: props.value, required: props.required, onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), "aria-describedby": _descByIds })),
104
+ props.label ? React.createElement(React.Fragment, null, props.label) : React.createElement(React.Fragment, null, props.children)),
105
+ stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
106
+ React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, (_a = props.validMessage) !== null && _a !== void 0 ? _a : DEFAULT_VALID_MESSAGE),
107
+ React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, (_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),
108
+ React.createElement("span", { "data-visually-hidden": "true", role: "status" }, _voiceOverFallback)));
109
+ }
110
+ const DBCheckbox = forwardRef(DBCheckboxFn);
111
+ DBCheckbox.defaultProps = {};
112
+ export default DBCheckbox;
@@ -0,0 +1 @@
1
+ export { default as DBCheckbox } from './checkbox';
@@ -0,0 +1 @@
1
+ export { default as DBCheckbox } from './checkbox';
@@ -0,0 +1,10 @@
1
+ import { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormCheckProps, FormMessageProps, FormProps, FormState, GlobalProps, GlobalState, InitializedState, SizeProps } from '../../shared/model';
2
+ export type DBCheckboxDefaultProps = {
3
+ /**
4
+ * Define an [indeterminate](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement#indeterminate) state of a checkbox
5
+ */
6
+ indeterminate?: boolean;
7
+ };
8
+ export type DBCheckboxProps = DBCheckboxDefaultProps & GlobalProps & ChangeEventProps<HTMLInputElement> & FocusEventProps<HTMLInputElement> & FormProps & FormCheckProps & FormMessageProps & SizeProps;
9
+ export type DBCheckboxDefaultState = {};
10
+ export type DBCheckboxState = DBCheckboxDefaultState & GlobalState & ChangeEventState<HTMLInputElement> & FocusEventState<HTMLInputElement> & FormState & InitializedState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBDivider: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "width" | keyof import("../..").GlobalProps | "emphasis" | keyof import("./model").DBDividerDefaultProps> & import("./model").DBDividerDefaultProps & import("../..").GlobalProps & import("../..").EmphasisProps & import("../..").MarginProps & import("../..").WidthProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBDivider;
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useRef, forwardRef } from "react";
4
+ import { cls, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBDividerFn(props, component) {
6
+ const _ref = component || useRef(component);
7
+ 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, "data-margin": props.margin, "data-variant": props.variant, "data-emphasis": props.emphasis, "data-width": props.width }, 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-divider", props.className) })));
8
+ }
9
+ const DBDivider = forwardRef(DBDividerFn);
10
+ DBDivider.defaultProps = {};
11
+ export default DBDivider;
@@ -0,0 +1 @@
1
+ export { default as DBDivider } from './divider';
@@ -0,0 +1 @@
1
+ export { default as DBDivider } from './divider';
@@ -0,0 +1,18 @@
1
+ import { EmphasisProps, GlobalProps, GlobalState, MarginProps, WidthProps } from '../../shared/model';
2
+ export declare const DividerMarginList: readonly ["none", "_"];
3
+ export type DividerMarginType = (typeof DividerMarginList)[number];
4
+ export declare const DividerVariantList: readonly ["horizontal", "vertical"];
5
+ export type DividerVariantType = (typeof DividerVariantList)[number];
6
+ export type DBDividerDefaultProps = {
7
+ /**
8
+ * Removes the margin of the divider.
9
+ */
10
+ margin?: DividerMarginType;
11
+ /**
12
+ * Changes the orientation of the divider.
13
+ */
14
+ variant?: DividerVariantType;
15
+ };
16
+ export type DBDividerProps = DBDividerDefaultProps & GlobalProps & EmphasisProps & MarginProps & WidthProps;
17
+ export type DBDividerDefaultState = {};
18
+ export type DBDividerState = DBDividerDefaultState & GlobalState;
@@ -0,0 +1,2 @@
1
+ export const DividerMarginList = ['none', '_'];
2
+ export const DividerVariantList = ['horizontal', 'vertical'];
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBDrawer: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDialogElement>, "width" | "spacing" | "onClose" | keyof import("../..").GlobalProps | keyof import("../..").InnerCloseButtonProps | keyof import("./model").DBDrawerDefaultProps> & import("./model").DBDrawerDefaultProps & import("../..").GlobalProps & import("../..").CloseEventProps & import("../..").InnerCloseButtonProps & import("../..").WidthProps & import("../..").SpacingProps & React.RefAttributes<HTMLDialogElement>>;
3
+ export default DBDrawer;
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useRef, useEffect, forwardRef } from "react";
4
+ import DBButton from "../button/button";
5
+ import { DEFAULT_CLOSE_BUTTON } from "../../shared/constants";
6
+ import { cls, delay, filterPassingProps, getRootProps } from "../../utils";
7
+ function DBDrawerFn(props, component) {
8
+ var _a;
9
+ const _ref = component || useRef(component);
10
+ const dialogContainerRef = useRef(null);
11
+ function handleClose(event) {
12
+ if (event.key === "Escape") {
13
+ event.preventDefault();
14
+ }
15
+ if (event === "close" ||
16
+ event.key === "Escape" ||
17
+ (event.target.nodeName === "DIALOG" &&
18
+ event.type === "click" &&
19
+ props.backdrop !== "none")) {
20
+ if (props.onClose) {
21
+ props.onClose(event);
22
+ }
23
+ }
24
+ }
25
+ function handleDialogOpen() {
26
+ if (_ref.current) {
27
+ if (props.open && !_ref.current.open) {
28
+ if (dialogContainerRef.current) {
29
+ dialogContainerRef.current.hidden = false;
30
+ }
31
+ if (props.backdrop === "none" || props.variant === "inside") {
32
+ _ref.current.show();
33
+ }
34
+ else {
35
+ _ref.current.showModal();
36
+ }
37
+ }
38
+ if (!props.open && _ref.current.open) {
39
+ if (dialogContainerRef.current) {
40
+ dialogContainerRef.current.hidden = true;
41
+ }
42
+ delay(() => {
43
+ var _a;
44
+ if (dialogContainerRef.current) {
45
+ dialogContainerRef.current.hidden = false;
46
+ }
47
+ (_a = _ref.current) === null || _a === void 0 ? void 0 : _a.close();
48
+ }, 401);
49
+ }
50
+ }
51
+ }
52
+ useEffect(() => {
53
+ handleDialogOpen();
54
+ }, []);
55
+ useEffect(() => {
56
+ handleDialogOpen();
57
+ }, [props.open]);
58
+ return (React.createElement("dialog", Object.assign({ className: "db-drawer", id: props.id, 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", "onClose"]), { onClick: (event) => {
59
+ handleClose(event);
60
+ }, onKeyDown: (event) => handleClose(event), "data-backdrop": props.backdrop, "data-variant": props.variant }),
61
+ React.createElement("article", Object.assign({ ref: dialogContainerRef }, 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-drawer-container", props.className), "data-spacing": props.spacing, "data-width": props.width, "data-direction": props.direction, "data-rounded": props.rounded }),
62
+ React.createElement("header", { className: "db-drawer-header" },
63
+ React.createElement("div", { className: "db-drawer-header-text" },
64
+ React.createElement(React.Fragment, null, props.drawerHeader)),
65
+ React.createElement(DBButton, { className: "button-close-drawer", icon: "cross", variant: "ghost", id: props.closeButtonId, noText: true, onClick: (event) => handleClose("close") }, (_a = props.closeButtonText) !== null && _a !== void 0 ? _a : DEFAULT_CLOSE_BUTTON)),
66
+ React.createElement("div", { className: "db-drawer-content" }, props.children))));
67
+ }
68
+ const DBDrawer = forwardRef(DBDrawerFn);
69
+ DBDrawer.defaultProps = {};
70
+ export default DBDrawer;
@@ -0,0 +1 @@
1
+ export { default as DBDrawer } from './drawer';
@@ -0,0 +1 @@
1
+ export { default as DBDrawer } from './drawer';
@@ -0,0 +1,41 @@
1
+ import { CloseEventProps, CloseEventState, GlobalProps, GlobalState, InnerCloseButtonProps, SpacingProps, WidthProps } from '../../shared/model';
2
+ export declare const DrawerBackdropList: readonly ["none", "strong", "weak", "invisible"];
3
+ export type DrawerBackdropType = (typeof DrawerBackdropList)[number];
4
+ export declare const DrawerDirectionList: readonly ["left", "right", "up", "down"];
5
+ export type DrawerDirectionType = (typeof DrawerDirectionList)[number];
6
+ export declare const DrawerVariantList: readonly ["modal", "inside"];
7
+ export type DrawerVariantType = (typeof DrawerVariantList)[number];
8
+ export type DBDrawerDefaultProps = {
9
+ /**
10
+ * The backdrop attribute changes the opacity of the backdrop.
11
+ * The backdrop 'none' will use `dialog.show()` instead of `dialog.showModal()`
12
+ */
13
+ backdrop?: DrawerBackdropType;
14
+ /**
15
+ * The direction attribute changes the position & animation of the drawer.
16
+ * E.g. "left" slides from left screen border to the right.
17
+ */
18
+ direction?: DrawerDirectionType;
19
+ /**
20
+ * Slot for changing the header of the drawer.
21
+ */
22
+ drawerHeader?: any;
23
+ /**
24
+ * The open attribute opens or closes the drawer based on the state.
25
+ */
26
+ open?: boolean;
27
+ /**
28
+ * The rounded attribute changes the border radius of the corners on the "end" of the drawer.
29
+ * The "end" depends on which direction you use.
30
+ */
31
+ rounded?: boolean;
32
+ /**
33
+ * Set the variant modal|inside. Defaults to modal.
34
+ */
35
+ variant?: DrawerVariantType;
36
+ };
37
+ export type DBDrawerProps = DBDrawerDefaultProps & GlobalProps & CloseEventProps & InnerCloseButtonProps & WidthProps & SpacingProps;
38
+ export type DBDrawerDefaultState = {
39
+ handleDialogOpen: () => void;
40
+ };
41
+ export type DBDrawerState = DBDrawerDefaultState & GlobalState & CloseEventState;
@@ -0,0 +1,3 @@
1
+ export const DrawerBackdropList = ['none', 'strong', 'weak', 'invisible'];
2
+ export const DrawerDirectionList = ['left', 'right', 'up', 'down'];
3
+ export const DrawerVariantList = ['modal', 'inside'];
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBHeader: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "width" | "onToggle" | keyof import("../..").GlobalProps | keyof import("./model").DBHeaderDefaultProps> & import("./model").DBHeaderDefaultProps & import("../..").GlobalProps & import("../..").ToggleEventProps & import("../..").ContainerWidthProps & React.RefAttributes<HTMLDivElement>>;
3
+ export default DBHeader;
@@ -0,0 +1,68 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useState, useRef, useEffect, forwardRef } from "react";
4
+ import { addAttributeToChildren, cls, uuid, filterPassingProps, getRootProps } from "../../utils";
5
+ import DBButton from "../button/button";
6
+ import DBDrawer from "../drawer/drawer";
7
+ import { DEFAULT_BURGER_MENU, DEFAULT_ID } from "../../shared/constants";
8
+ import { isEventTargetNavigationItem } from "../../utils/navigation";
9
+ function DBHeaderFn(props, component) {
10
+ var _a;
11
+ const _ref = component || useRef(component);
12
+ const [_id, set_id] = useState(() => DEFAULT_ID);
13
+ const [initialized, setInitialized] = useState(() => false);
14
+ const [forcedToMobile, setForcedToMobile] = useState(() => false);
15
+ function toggle() {
16
+ if (props.onToggle) {
17
+ props.onToggle(!props.drawerOpen);
18
+ }
19
+ }
20
+ function handleNavigationItemClick(event) {
21
+ if (isEventTargetNavigationItem(event)) {
22
+ toggle();
23
+ }
24
+ }
25
+ useEffect(() => {
26
+ setInitialized(true);
27
+ set_id(props.id || "header-" + uuid());
28
+ }, []);
29
+ useEffect(() => {
30
+ if (initialized && document && _id && props.forceMobile) {
31
+ const headerElement = document.getElementById(_id);
32
+ if (headerElement) {
33
+ // Adds this attribute to the header to enable all styling which would have
34
+ // @media screen and (min-width: $db-screens-m) to show mobile navigation on a desktop device
35
+ addAttributeToChildren(headerElement, {
36
+ key: "data-force-mobile",
37
+ value: "true",
38
+ });
39
+ }
40
+ setForcedToMobile(true);
41
+ }
42
+ }, [initialized]);
43
+ return (React.createElement("header", 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"]), 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-header", props.className), id: _id, "data-width": props.width, "data-on-forcing-mobile": props.forceMobile && !forcedToMobile }),
44
+ React.createElement(DBDrawer, { className: "db-header-drawer", spacing: "small", rounded: true, open: props.drawerOpen, onClose: () => toggle() },
45
+ React.createElement("div", { className: "db-header-drawer-navigation" },
46
+ React.createElement("div", { className: "db-header-navigation", onClick: (event) => handleNavigationItemClick(event) }, props.children),
47
+ React.createElement("div", { className: "db-header-meta-navigation" },
48
+ React.createElement(React.Fragment, null, props.metaNavigation))),
49
+ React.createElement("div", { className: "db-header-secondary-action" },
50
+ React.createElement(React.Fragment, null, props.secondaryAction))),
51
+ React.createElement("div", { className: "db-header-meta-navigation" },
52
+ React.createElement(React.Fragment, null, props.metaNavigation)),
53
+ React.createElement("div", { className: "db-header-navigation-bar" },
54
+ React.createElement("div", { className: "db-header-brand-container" },
55
+ React.createElement(React.Fragment, null, props.brand)),
56
+ React.createElement("div", { className: "db-header-navigation-container" },
57
+ React.createElement("div", { className: "db-header-navigation" }, props.children),
58
+ React.createElement("div", { className: "db-header-primary-action" },
59
+ React.createElement(React.Fragment, null, props.primaryAction))),
60
+ React.createElement("div", { className: "db-header-action-container" },
61
+ React.createElement("div", { className: "db-header-burger-menu-container" },
62
+ React.createElement(DBButton, { icon: "menu", variant: "ghost", id: _id + "-burger-menu", noText: true, onClick: () => toggle() }, (_a = props.burgerMenuLabel) !== null && _a !== void 0 ? _a : DEFAULT_BURGER_MENU)),
63
+ React.createElement("div", { className: "db-header-secondary-action" },
64
+ React.createElement(React.Fragment, null, props.secondaryAction))))));
65
+ }
66
+ const DBHeader = forwardRef(DBHeaderFn);
67
+ DBHeader.defaultProps = {};
68
+ export default DBHeader;
@@ -0,0 +1 @@
1
+ export { default as DBHeader } from './header';
@@ -0,0 +1 @@
1
+ export { default as DBHeader } from './header';
@@ -0,0 +1,44 @@
1
+ import { ContainerWidthProps, GlobalProps, GlobalState, InitializedState, NavigationBehaviorState, ToggleEventProps, ToggleEventState } from '../../shared/model';
2
+ export type DBHeaderDefaultProps = {
3
+ /**
4
+ * Slot to pass in the DBBrand component
5
+ */
6
+ brand?: any;
7
+ /**
8
+ * Slot to pass in a meta navigation.
9
+ * Desktop: Above the regular header
10
+ * Mobile: Inside the drawer
11
+ */
12
+ metaNavigation?: any;
13
+ /**
14
+ * Slot to pass one or more elements like DBButton (e.g. search) as primary action.
15
+ * Desktop: Shown next to the main-navigation
16
+ * Mobile: Shown next to the brand
17
+ */
18
+ primaryAction?: any;
19
+ /**
20
+ * Slot to pass one or more elements like DBButton (e.g. profile, language, etc.) as secondary action.
21
+ * Desktop: Shown seperated by divider at the end of the header
22
+ * Mobile: Shown inside the drawer at the bottom.
23
+ */
24
+ secondaryAction?: any;
25
+ /**
26
+ * Open/closes the drawer for mobile header or if `forceMobile` is true.
27
+ */
28
+ drawerOpen?: boolean;
29
+ /**
30
+ * Forces the header to use mobile layout for desktop as well.
31
+ * You should only use this setting if you really can't provide a smaller navigation.
32
+ * Overwrite size of the drawer with '--db-drawer-max-width: xxx'
33
+ */
34
+ forceMobile?: boolean;
35
+ /**
36
+ * This attribute sets the label for the burger menu button for mobile headers.
37
+ */
38
+ burgerMenuLabel?: string;
39
+ };
40
+ export type DBHeaderProps = DBHeaderDefaultProps & GlobalProps & ToggleEventProps & ContainerWidthProps;
41
+ export type DBHeaderDefaultState = {
42
+ forcedToMobile?: boolean;
43
+ };
44
+ export type DBHeaderState = DBHeaderDefaultState & GlobalState & ToggleEventState<HTMLElement> & InitializedState & NavigationBehaviorState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBIcon: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLSpanElement>, "text" | "icon" | keyof import("../..").GlobalProps | keyof import("./model").DBIconDefaultProps> & import("./model").DBIconDefaultProps & import("../..").GlobalProps & import("../..").IconProps & import("../..").TextProps & React.RefAttributes<HTMLSpanElement>>;
3
+ export default DBIcon;
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useRef, forwardRef } from "react";
4
+ import { cls, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBIconFn(props, component) {
6
+ const _ref = component || useRef(component);
7
+ return (React.createElement("span", Object.assign({ "aria-hidden": "true", 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-icon", props.className), "data-icon": props.icon, "data-icon-weight": props.weight, "data-icon-variant": props.variant }), props.text ? React.createElement(React.Fragment, null, props.text) : React.createElement(React.Fragment, null, props.children)));
8
+ }
9
+ const DBIcon = forwardRef(DBIconFn);
10
+ DBIcon.defaultProps = {};
11
+ export default DBIcon;
@@ -0,0 +1 @@
1
+ export { default as DBIcon } from './icon';
@@ -0,0 +1 @@
1
+ export { default as DBIcon } from './icon';
@@ -0,0 +1,12 @@
1
+ import { GlobalProps, GlobalState, IconProps, TextProps } from '../../shared/model';
2
+ export declare const IconVariantList: readonly ["default", "inverted", "filled"];
3
+ export type IconVariantType = (typeof IconVariantList)[number];
4
+ export declare const IconWeightList: readonly ["16", "20", "24", "32", "48", "64"];
5
+ export type IconWeightType = (typeof IconWeightList)[number];
6
+ export type DBIconDefaultProps = {
7
+ variant?: IconVariantType;
8
+ weight?: IconWeightType;
9
+ };
10
+ export type DBIconProps = DBIconDefaultProps & GlobalProps & IconProps & TextProps;
11
+ export type DBIconDefaultState = {};
12
+ export type DBIconState = DBIconDefaultState & GlobalState;
@@ -0,0 +1,2 @@
1
+ export const IconVariantList = ['default', 'inverted', 'filled'];
2
+ export const IconWeightList = ['16', '20', '24', '32', '48', '64'];
@@ -0,0 +1 @@
1
+ export { default as DBInfotext } from './infotext';
@@ -0,0 +1 @@
1
+ export { default as DBInfotext } from './infotext';
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBInfotext: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLSpanElement>, "text" | "size" | "icon" | keyof import("../..").GlobalProps | "showIcon" | "semantic"> & import("../..").GlobalProps & import("../..").SemanticProps & import("../..").IconProps & import("../..").SizeProps & import("../..").ShowIconProps & import("../..").TextProps & React.RefAttributes<HTMLSpanElement>>;
3
+ export default DBInfotext;
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { useRef, forwardRef } from "react";
4
+ import { cls, getHideProp, filterPassingProps, getRootProps } from "../../utils";
5
+ function DBInfotextFn(props, component) {
6
+ var _a;
7
+ const _ref = component || useRef(component);
8
+ return (React.createElement("span", 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-infotext", props.className), "data-icon": props.icon, "data-semantic": props.semantic, "data-size": props.size, "data-hide-icon-before": getHideProp((_a = props.showIcon) !== null && _a !== void 0 ? _a : true) }), props.text ? React.createElement(React.Fragment, null, props.text) : React.createElement(React.Fragment, null, props.children)));
9
+ }
10
+ const DBInfotext = forwardRef(DBInfotextFn);
11
+ DBInfotext.defaultProps = {};
12
+ export default DBInfotext;
@@ -0,0 +1,5 @@
1
+ import { GlobalProps, GlobalState, IconProps, SemanticProps, ShowIconProps, SizeProps, TextProps } from '../../shared/model';
2
+ export type DBInfotextDefaultProps = {};
3
+ export type DBInfotextProps = DBInfotextDefaultProps & GlobalProps & SemanticProps & IconProps & SizeProps & ShowIconProps & TextProps;
4
+ export type DBInfotextDefaultState = {};
5
+ export type DBInfotextState = DBInfotextDefaultState & GlobalState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export { default as DBInput } from './input';
@@ -0,0 +1 @@
1
+ export { default as DBInput } from './input';
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare const DBInput: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLInputElement>, "icon" | keyof import("../../shared/model").GlobalProps | "showIcon" | keyof import("../../shared/model").ChangeEventProps<HTMLInputElement> | keyof import("../../shared/model").FocusEventProps<HTMLInputElement> | keyof import("../../shared/model").FormProps | keyof import("../../shared/model").FormMessageProps | keyof import("./model").DBInputDefaultProps | keyof import("../../shared/model").FormTextProps | keyof import("../../shared/model").InputEventProps<HTMLInputElement> | "iconAfter"> & import("./model").DBInputDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").FormTextProps & import("../../shared/model").InputEventProps<HTMLInputElement> & import("../../shared/model").ChangeEventProps<HTMLInputElement> & import("../../shared/model").FocusEventProps<HTMLInputElement> & import("../../shared/model").FormProps & import("../../shared/model").IconProps & import("../../shared/model").IconAfterProps & import("../../shared/model").FormMessageProps & import("../../shared/model").ShowIconProps & React.RefAttributes<HTMLInputElement>>;
3
+ export default DBInput;