@bodynarf/react.components 1.8.22 → 1.9.1
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.
- package/bodynarf-react.components-1.9.3.tgz +0 -0
- package/common.scss +3 -2
- package/components/accordion/component/index.d.ts +2 -3
- package/components/accordion/component/index.d.ts.map +1 -1
- package/components/accordion/component/index.js +4 -4
- package/components/accordion/types.d.ts +1 -1
- package/components/accordion/types.d.ts.map +1 -1
- package/components/anchor/component/index.d.ts +1 -1
- package/components/anchor/component/index.d.ts.map +1 -1
- package/components/anchor/component/index.js +6 -6
- package/components/anchor/components/anchorWithIcon/index.d.ts +3 -3
- package/components/anchor/components/anchorWithIcon/index.d.ts.map +1 -1
- package/components/anchor/components/anchorWithIcon/index.js +14 -9
- package/components/anchor/components/simpleAnchor/index.d.ts +3 -3
- package/components/anchor/components/simpleAnchor/index.d.ts.map +1 -1
- package/components/anchor/components/simpleAnchor/index.js +8 -2
- package/components/anchor/types.d.ts +2 -6
- package/components/anchor/types.d.ts.map +1 -1
- package/components/breadcrumbs/component/index.d.ts +34 -0
- package/components/breadcrumbs/component/index.d.ts.map +1 -0
- package/components/breadcrumbs/component/index.js +21 -0
- package/components/breadcrumbs/index.d.ts +3 -0
- package/components/breadcrumbs/index.d.ts.map +1 -0
- package/components/breadcrumbs/index.js +2 -0
- package/components/breadcrumbs/types.d.ts +13 -0
- package/components/breadcrumbs/types.d.ts.map +1 -0
- package/components/button/component/index.d.ts +1 -1
- package/components/button/component/index.d.ts.map +1 -1
- package/components/button/component/index.js +4 -8
- package/components/button/components/buttonWithIcon/index.d.ts +3 -2
- package/components/button/components/buttonWithIcon/index.d.ts.map +1 -1
- package/components/button/components/buttonWithIcon/index.js +14 -9
- package/components/button/components/simpleButton/index.d.ts +3 -2
- package/components/button/components/simpleButton/index.d.ts.map +1 -1
- package/components/button/components/simpleButton/index.js +8 -2
- package/components/button/types.d.ts +1 -1
- package/components/button/types.d.ts.map +1 -1
- package/components/button/types.js +0 -3
- package/components/dropdown/component/index.d.ts +1 -1
- package/components/dropdown/component/index.d.ts.map +1 -1
- package/components/dropdown/component/index.js +5 -8
- package/components/dropdown/component/style.scss +5 -1
- package/components/dropdown/components/compact/index.d.ts +2 -3
- package/components/dropdown/components/compact/index.d.ts.map +1 -1
- package/components/dropdown/components/compact/index.js +12 -9
- package/components/dropdown/components/item/index.d.ts +1 -1
- package/components/dropdown/components/item/index.d.ts.map +1 -1
- package/components/dropdown/components/item/index.js +34 -2
- package/components/dropdown/components/label/component/index.d.ts +27 -0
- package/components/dropdown/components/label/component/index.d.ts.map +1 -0
- package/components/dropdown/components/label/component/index.js +16 -0
- package/components/dropdown/components/label/components/empty/index.d.ts +8 -0
- package/components/dropdown/components/label/components/empty/index.d.ts.map +1 -0
- package/components/dropdown/components/label/components/empty/index.js +16 -0
- package/components/dropdown/components/label/components/selected/index.d.ts +8 -0
- package/components/dropdown/components/label/components/selected/index.d.ts.map +1 -0
- package/components/dropdown/components/label/components/selected/index.js +20 -0
- package/components/dropdown/components/label/components/selectedWithIcon/index.d.ts +8 -0
- package/components/dropdown/components/label/components/selectedWithIcon/index.d.ts.map +1 -0
- package/components/dropdown/components/label/components/selectedWithIcon/index.js +28 -0
- package/components/dropdown/components/label/components/withSearch/index.d.ts +16 -0
- package/components/dropdown/components/label/components/withSearch/index.d.ts.map +1 -0
- package/components/dropdown/components/label/components/withSearch/index.js +33 -0
- package/components/dropdown/components/label/components/withSearch/style.scss +29 -0
- package/components/dropdown/components/label/index.d.ts +1 -1
- package/components/dropdown/components/label/index.d.ts.map +1 -1
- package/components/dropdown/components/label/index.js +41 -9
- package/components/dropdown/components/withLabel/index.d.ts +2 -3
- package/components/dropdown/components/withLabel/index.d.ts.map +1 -1
- package/components/dropdown/components/withLabel/index.js +14 -12
- package/components/dropdown/types.d.ts +13 -2
- package/components/dropdown/types.d.ts.map +1 -1
- package/components/icon/component/index.d.ts +2 -2
- package/components/icon/component/index.d.ts.map +1 -1
- package/components/icon/component/index.js +9 -5
- package/components/icon/types.d.ts +2 -4
- package/components/icon/types.d.ts.map +1 -1
- package/components/index.d.ts +0 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +0 -1
- package/components/paginator/component/index.d.ts +2 -2
- package/components/paginator/component/index.d.ts.map +1 -1
- package/components/paginator/component/index.js +19 -14
- package/components/paginator/types.d.ts +3 -5
- package/components/paginator/types.d.ts.map +1 -1
- package/components/primitives/checkbox/component/index.d.ts +2 -3
- package/components/primitives/checkbox/component/index.d.ts.map +1 -1
- package/components/primitives/checkbox/component/index.js +15 -17
- package/components/primitives/checkbox/types.d.ts +2 -2
- package/components/primitives/checkbox/types.d.ts.map +1 -1
- package/components/primitives/color/component/index.d.ts.map +1 -1
- package/components/primitives/color/components/picker/index.d.ts +11 -29
- package/components/primitives/color/components/picker/index.d.ts.map +1 -1
- package/components/primitives/color/components/picker/index.js +15 -12
- package/components/primitives/color/components/withLabel/index.d.ts +1 -1
- package/components/primitives/color/components/withLabel/index.d.ts.map +1 -1
- package/components/primitives/color/components/withLabel/index.js +8 -30
- package/components/primitives/color/components/withoutLabel/index.d.ts +1 -1
- package/components/primitives/color/components/withoutLabel/index.d.ts.map +1 -1
- package/components/primitives/color/components/withoutLabel/index.js +3 -13
- package/components/primitives/color/types.d.ts +1 -1
- package/components/primitives/color/types.d.ts.map +1 -1
- package/components/primitives/date/component/index.d.ts +2 -3
- package/components/primitives/date/component/index.d.ts.map +1 -1
- package/components/primitives/date/component/index.js +12 -27
- package/components/primitives/date/types.d.ts +2 -2
- package/components/primitives/date/types.d.ts.map +1 -1
- package/components/primitives/index.d.ts +0 -1
- package/components/primitives/index.d.ts.map +1 -1
- package/components/primitives/index.js +0 -1
- package/components/primitives/internal/componentWithLabel/index.d.ts +17 -0
- package/components/primitives/internal/componentWithLabel/index.d.ts.map +1 -0
- package/components/primitives/internal/componentWithLabel/index.js +26 -0
- package/components/primitives/internal/hint/index.d.ts +12 -0
- package/components/primitives/internal/hint/index.d.ts.map +1 -0
- package/components/primitives/internal/hint/index.js +47 -0
- package/components/primitives/multiline/component/index.d.ts +1 -1
- package/components/primitives/multiline/component/index.d.ts.map +1 -1
- package/components/primitives/multiline/component/index.js +5 -8
- package/components/primitives/multiline/components/withLabel/index.d.ts +5 -0
- package/components/primitives/multiline/components/withLabel/index.d.ts.map +1 -0
- package/components/primitives/multiline/components/withLabel/index.js +29 -0
- package/components/primitives/multiline/components/withoutLabel/index.d.ts +5 -0
- package/components/primitives/multiline/components/withoutLabel/index.d.ts.map +1 -0
- package/components/primitives/multiline/components/withoutLabel/index.js +28 -0
- package/components/primitives/multiline/types.d.ts +1 -1
- package/components/primitives/multiline/types.d.ts.map +1 -1
- package/components/primitives/number/component/index.d.ts +1 -1
- package/components/primitives/number/component/index.d.ts.map +1 -1
- package/components/primitives/number/component/index.js +5 -8
- package/components/primitives/number/components/withLabel/index.d.ts +2 -3
- package/components/primitives/number/components/withLabel/index.d.ts.map +1 -1
- package/components/primitives/number/components/withLabel/index.js +12 -27
- package/components/primitives/number/components/withoutLabel/index.d.ts +2 -3
- package/components/primitives/number/components/withoutLabel/index.d.ts.map +1 -1
- package/components/primitives/number/components/withoutLabel/index.js +11 -9
- package/components/primitives/number/types.d.ts +1 -1
- package/components/primitives/number/types.d.ts.map +1 -1
- package/components/primitives/password/component/index.d.ts +1 -1
- package/components/primitives/password/component/index.d.ts.map +1 -1
- package/components/primitives/password/component/index.js +5 -6
- package/components/primitives/password/components/withLabel/index.d.ts +2 -3
- package/components/primitives/password/components/withLabel/index.d.ts.map +1 -1
- package/components/primitives/password/components/withLabel/index.js +14 -30
- package/components/primitives/password/components/withoutLabel/index.d.ts +2 -3
- package/components/primitives/password/components/withoutLabel/index.d.ts.map +1 -1
- package/components/primitives/password/components/withoutLabel/index.js +13 -11
- package/components/primitives/password/types.d.ts +1 -1
- package/components/primitives/password/types.d.ts.map +1 -1
- package/components/primitives/text/component/index.d.ts +1 -1
- package/components/primitives/text/component/index.d.ts.map +1 -1
- package/components/primitives/text/component/index.js +5 -8
- package/components/primitives/text/components/withLabel/index.d.ts +5 -0
- package/components/primitives/text/components/withLabel/index.d.ts.map +1 -0
- package/components/primitives/text/components/withLabel/index.js +29 -0
- package/components/primitives/text/components/withoutLabel/index.d.ts +5 -0
- package/components/primitives/text/components/withoutLabel/index.d.ts.map +1 -0
- package/components/primitives/text/components/withoutLabel/index.js +28 -0
- package/components/primitives/text/types.d.ts +1 -1
- package/components/primitives/text/types.d.ts.map +1 -1
- package/components/search/component/index.d.ts +2 -2
- package/components/search/component/index.d.ts.map +1 -1
- package/components/search/component/index.js +16 -10
- package/components/search/types.d.ts +2 -2
- package/components/search/types.d.ts.map +1 -1
- package/components/table/component/index.d.ts +44 -0
- package/components/table/component/index.d.ts.map +1 -0
- package/components/table/component/index.js +29 -0
- package/components/table/component/style.scss +21 -0
- package/components/table/components/heading/index.d.ts +13 -0
- package/components/table/components/heading/index.d.ts.map +1 -0
- package/components/table/components/heading/index.js +21 -0
- package/components/table/index.d.ts +3 -0
- package/components/table/index.d.ts.map +1 -0
- package/components/table/index.js +2 -0
- package/components/table/types.d.ts +18 -0
- package/components/table/types.d.ts.map +1 -0
- package/components/tabs/component/index.d.ts +3 -4
- package/components/tabs/component/index.d.ts.map +1 -1
- package/components/tabs/component/index.js +14 -8
- package/components/tabs/components/item/index.d.ts +1 -1
- package/components/tabs/components/item/index.d.ts.map +1 -1
- package/components/tabs/components/item/index.js +4 -3
- package/components/tabs/types.d.ts +1 -12
- package/components/tabs/types.d.ts.map +1 -1
- package/components/tabs/types.js +0 -12
- package/components/tag/component/index.d.ts +2 -3
- package/components/tag/component/index.d.ts.map +1 -1
- package/components/tag/component/index.js +13 -7
- package/components/tag/types.d.ts +1 -1
- package/components/tag/types.d.ts.map +1 -1
- package/hooks/usePagination.d.ts.map +1 -1
- package/hooks/usePagination.js +11 -2
- package/hooks/useUnmount.d.ts +8 -0
- package/hooks/useUnmount.d.ts.map +1 -0
- package/hooks/useUnmount.js +22 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/package.json +11 -4
- package/readme.md +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/baseElementProps.d.ts +11 -0
- package/types/baseElementProps.d.ts.map +1 -0
- package/types/baseElementProps.js +1 -0
- package/{components/primitives/types/baseProps.d.ts → types/baseInputElementProps.d.ts} +10 -4
- package/types/baseInputElementProps.d.ts.map +1 -0
- package/types/baseInputElementProps.js +1 -0
- package/types/dataAttributes.d.ts +9 -0
- package/types/dataAttributes.d.ts.map +1 -0
- package/types/dataAttributes.js +1 -0
- package/types/elementColor.d.ts +18 -0
- package/types/elementColor.d.ts.map +1 -0
- package/types/elementColor.js +18 -0
- package/types/elementIcon.d.ts +22 -0
- package/types/elementIcon.d.ts.map +1 -0
- package/types/elementIcon.js +1 -0
- package/types/elementPosition.d.ts +12 -0
- package/types/elementPosition.d.ts.map +1 -0
- package/types/elementPosition.js +10 -0
- package/types/elementSize.d.ts +12 -0
- package/types/elementSize.d.ts.map +1 -0
- package/types/elementSize.js +12 -0
- package/types/hintConfiguration.d.ts +13 -0
- package/types/hintConfiguration.d.ts.map +1 -0
- package/types/hintConfiguration.js +1 -0
- package/types/index.d.ts +11 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +10 -0
- package/{components/primitives/types/label.d.ts → types/labelConfiguration.d.ts} +3 -3
- package/types/labelConfiguration.d.ts.map +1 -0
- package/types/labelConfiguration.js +1 -0
- package/{components/primitives/types → types}/validation/index.d.ts +1 -1
- package/types/validation/index.d.ts.map +1 -0
- package/{components/primitives/types → types}/validation/index.js +1 -1
- package/{components/primitives/types → types}/validation/state.d.ts +2 -2
- package/types/validation/state.d.ts.map +1 -0
- package/{components/primitives/types → types}/validation/state.js +0 -1
- package/{components/primitives/types → types}/validation/status.d.ts +1 -1
- package/types/validation/status.d.ts.map +1 -0
- package/{components/primitives/types → types}/validation/status.js +1 -2
- package/utils/dataAttributes.d.ts +1 -1
- package/utils/dataAttributes.d.ts.map +1 -1
- package/utils/index.d.ts +1 -1
- package/utils/index.d.ts.map +1 -1
- package/utils/index.js +1 -1
- package/utils/validation.d.ts +11 -0
- package/utils/validation.d.ts.map +1 -0
- package/utils/validation.js +20 -0
- package/components/primitives/multiline/components/multilineWithLabel/index.d.ts +0 -6
- package/components/primitives/multiline/components/multilineWithLabel/index.d.ts.map +0 -1
- package/components/primitives/multiline/components/multilineWithLabel/index.js +0 -44
- package/components/primitives/multiline/components/multilineWithoutLabel/index.d.ts +0 -6
- package/components/primitives/multiline/components/multilineWithoutLabel/index.d.ts.map +0 -1
- package/components/primitives/multiline/components/multilineWithoutLabel/index.js +0 -26
- package/components/primitives/text/components/textWithLabel/index.d.ts +0 -6
- package/components/primitives/text/components/textWithLabel/index.d.ts.map +0 -1
- package/components/primitives/text/components/textWithLabel/index.js +0 -44
- package/components/primitives/text/components/textWithoutLabel/index.d.ts +0 -6
- package/components/primitives/text/components/textWithoutLabel/index.d.ts.map +0 -1
- package/components/primitives/text/components/textWithoutLabel/index.js +0 -26
- package/components/primitives/types/baseProps.d.ts.map +0 -1
- package/components/primitives/types/index.d.ts +0 -4
- package/components/primitives/types/index.d.ts.map +0 -1
- package/components/primitives/types/index.js +0 -3
- package/components/primitives/types/label.d.ts.map +0 -1
- package/components/primitives/types/validation/index.d.ts.map +0 -1
- package/components/primitives/types/validation/state.d.ts.map +0 -1
- package/components/primitives/types/validation/status.d.ts.map +0 -1
- package/components/types.d.ts +0 -78
- package/components/types.d.ts.map +0 -1
- package/components/types.js +0 -41
- package/utils/formValidation.d.ts +0 -16
- package/utils/formValidation.d.ts.map +0 -1
- package/utils/formValidation.js +0 -35
- /package/components/{primitives/types/baseProps.js → breadcrumbs/types.js} +0 -0
- /package/components/{primitives/types/label.js → table/types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/primitives/text/component/index.tsx"],"names":[],"mappings":";AAEA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/primitives/text/component/index.tsx"],"names":[],"mappings":";AAEA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAI/B,8BAA8B;AAC9B,QAAA,MAAM,IAAI,UAAW,SAAS,KAAG,WAIhC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { isNullOrUndefined } from "@bodynarf/utils";
|
|
3
3
|
import "../../../../common.scss";
|
|
4
|
-
import TextWithLabel from "
|
|
5
|
-
import TextWithoutLabel from "
|
|
4
|
+
import TextWithLabel from "../components/withLabel";
|
|
5
|
+
import TextWithoutLabel from "../components/withoutLabel";
|
|
6
6
|
/** Textual input component */
|
|
7
7
|
const Text = (props) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
else {
|
|
12
|
-
return (_jsx(TextWithLabel, { ...props }));
|
|
13
|
-
}
|
|
8
|
+
return isNullOrUndefined(props.label)
|
|
9
|
+
? _jsx(TextWithoutLabel, { ...props })
|
|
10
|
+
: _jsx(TextWithLabel, { ...props });
|
|
14
11
|
};
|
|
15
12
|
export default Text;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TextProps } from "../..";
|
|
2
|
+
/** Textual input with describing label */
|
|
3
|
+
declare const TextWithLabel: ({ onValueChange, readonly, disabled, defaultValue, validationState, name, size, style, rounded, loading, label, placeholder, onBlur, className, title, data, hint, }: TextProps) => JSX.Element;
|
|
4
|
+
export default TextWithLabel;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/primitives/text/components/withLabel/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,0CAA0C;AAC1C,QAAA,MAAM,aAAa,yKAUhB,SAAS,KAAG,WAwDd,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { generateGuid, getClassName, getValueOrDefault, isNullOrUndefined, } from "@bodynarf/utils";
|
|
4
|
+
import { ElementSize } from "../../../../../types";
|
|
5
|
+
import { getStyleClassName, mapDataAttributes } from "../../../../../utils";
|
|
6
|
+
import InternalHint from "../../../internal/hint";
|
|
7
|
+
import ComponentWithLabel from "../../../internal/componentWithLabel";
|
|
8
|
+
/** Textual input with describing label */
|
|
9
|
+
const TextWithLabel = ({ onValueChange, readonly, disabled, defaultValue, validationState, name, size, style, rounded = false, loading = false, label, placeholder, onBlur, className, title, data, hint, }) => {
|
|
10
|
+
const onChange = useCallback((event) => onValueChange(event.target.value), [onValueChange]);
|
|
11
|
+
const id = name ?? generateGuid();
|
|
12
|
+
const elSizeClassName = "is-{0}".format(getValueOrDefault(size, ElementSize.Normal));
|
|
13
|
+
const elClassName = getClassName([
|
|
14
|
+
className,
|
|
15
|
+
elSizeClassName,
|
|
16
|
+
rounded ? "is-rounded" : "",
|
|
17
|
+
getStyleClassName(style, validationState),
|
|
18
|
+
"input",
|
|
19
|
+
]);
|
|
20
|
+
const inputContainerClassName = getClassName([
|
|
21
|
+
"control",
|
|
22
|
+
loading ? "is-loading" : "",
|
|
23
|
+
]);
|
|
24
|
+
const dataAttributes = isNullOrUndefined(data)
|
|
25
|
+
? undefined
|
|
26
|
+
: mapDataAttributes(data);
|
|
27
|
+
return (_jsxs(ComponentWithLabel, { id: id, label: label, size: getValueOrDefault(size, ElementSize.Normal), children: [_jsx("div", { className: inputContainerClassName, children: _jsx("input", { type: "text", id: id, name: id, onBlur: onBlur, readOnly: readonly, disabled: disabled, onChange: onChange, className: elClassName, placeholder: placeholder, defaultValue: defaultValue, title: title, ...dataAttributes }) }), _jsx(InternalHint, { hint: hint, validationState: validationState })] }));
|
|
28
|
+
};
|
|
29
|
+
export default TextWithLabel;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TextProps } from "../..";
|
|
2
|
+
/** Textual input without describing label */
|
|
3
|
+
declare const TextWithoutLabel: ({ onValueChange, readonly, disabled, defaultValue, validationState, name, size, style, rounded, loading, placeholder, onBlur, className, title, data, hint, }: TextProps) => JSX.Element;
|
|
4
|
+
export default TextWithoutLabel;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/primitives/text/components/withoutLabel/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,6CAA6C;AAC7C,QAAA,MAAM,gBAAgB,kKAUnB,SAAS,KAAG,WAoDd,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { generateGuid, getClassName, getValueOrDefault, isNullOrUndefined } from "@bodynarf/utils";
|
|
4
|
+
import { ElementSize } from "../../../../../types";
|
|
5
|
+
import { getStyleClassName, mapDataAttributes } from "../../../../../utils";
|
|
6
|
+
import InternalHint from "../../../internal/hint";
|
|
7
|
+
/** Textual input without describing label */
|
|
8
|
+
const TextWithoutLabel = ({ onValueChange, readonly, disabled, defaultValue, validationState, name, size, style, rounded = false, loading = false, placeholder, onBlur, className, title, data, hint, }) => {
|
|
9
|
+
const onChange = useCallback((event) => onValueChange(event.target.value), [onValueChange]);
|
|
10
|
+
const elClassName = getClassName([
|
|
11
|
+
className,
|
|
12
|
+
"is-{0}".format(getValueOrDefault(size, ElementSize.Normal)),
|
|
13
|
+
rounded ? "is-rounded" : "",
|
|
14
|
+
getStyleClassName(style, validationState),
|
|
15
|
+
"input",
|
|
16
|
+
]);
|
|
17
|
+
const containerClassName = getClassName([
|
|
18
|
+
"control",
|
|
19
|
+
"bbr-input",
|
|
20
|
+
loading ? "is-loading" : "",
|
|
21
|
+
]);
|
|
22
|
+
const id = name ?? generateGuid();
|
|
23
|
+
const dataAttributes = isNullOrUndefined(data)
|
|
24
|
+
? undefined
|
|
25
|
+
: mapDataAttributes(data);
|
|
26
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: containerClassName, children: _jsx("input", { type: "text", id: id, name: id, onBlur: onBlur, readOnly: readonly, disabled: disabled, onChange: onChange, className: elClassName, placeholder: placeholder, defaultValue: defaultValue, title: title, ...dataAttributes }) }), _jsx(InternalHint, { hint: hint, validationState: validationState })] }));
|
|
27
|
+
};
|
|
28
|
+
export default TextWithoutLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/text/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/text/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,sCAAsC;AACtC,MAAM,WAAW,SAAU,SAAQ,qBAAqB,CAAC,MAAM,CAAC;IAC5D,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import "./style.scss";
|
|
3
|
-
import { SearchProps } from "
|
|
3
|
+
import { SearchProps } from "..";
|
|
4
4
|
/** Search component */
|
|
5
|
-
export default function Search({ searchType, onSearch, caption, name, defaultValue, size, isLoading, rounded, disabled, }: SearchProps): JSX.Element;
|
|
5
|
+
export default function Search({ searchType, onSearch, caption, name, defaultValue, size, isLoading, rounded, disabled, className, title, data, }: SearchProps): JSX.Element;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/search/component/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/search/component/index.tsx"],"names":[],"mappings":";AAQA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,uBAAuB;AACvB,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC3B,UAAU,EAAE,QAAQ,EAAE,OAAO,EAC7B,IAAI,EAAE,YAAY,EAClB,IAAI,EACJ,SAAiB,EAAE,OAAe,EAAE,QAAQ,EAE5C,SAAS,EAAE,KAAK,EAAE,IAAI,GACzB,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAqF3B"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useState } from "react";
|
|
3
|
-
import { generateGuid, getClassName } from "@bodynarf/utils";
|
|
4
|
-
import "
|
|
3
|
+
import { generateGuid, getClassName, isNullOrUndefined } from "@bodynarf/utils";
|
|
4
|
+
import { ElementSize } from "../../../types";
|
|
5
|
+
import { mapDataAttributes } from "../../../utils";
|
|
5
6
|
import Button from "../../button";
|
|
7
|
+
import "./style.scss";
|
|
6
8
|
/** Search component */
|
|
7
|
-
export default function Search({ searchType, onSearch, caption, name, defaultValue, size, isLoading = false, rounded = false, disabled, }) {
|
|
8
|
-
const [elementName] = useState(name
|
|
9
|
-
const [searchValue, setSearchValue] = useState(defaultValue
|
|
9
|
+
export default function Search({ searchType, onSearch, caption, name, defaultValue, size, isLoading = false, rounded = false, disabled, className, title, data, }) {
|
|
10
|
+
const [elementName] = useState(name ?? generateGuid());
|
|
11
|
+
const [searchValue, setSearchValue] = useState(defaultValue ?? "");
|
|
10
12
|
const onChange = useCallback((event) => {
|
|
11
13
|
const elementValue = event.target.value;
|
|
12
14
|
if (searchType === "byTyping") {
|
|
@@ -15,23 +17,27 @@ export default function Search({ searchType, onSearch, caption, name, defaultVal
|
|
|
15
17
|
setSearchValue(elementValue);
|
|
16
18
|
}, [onSearch, searchType]);
|
|
17
19
|
const onSearchButtonClick = useCallback(() => onSearch(searchValue), [onSearch, searchValue]);
|
|
18
|
-
const
|
|
20
|
+
const elClassName = getClassName([
|
|
19
21
|
"bbr-search",
|
|
20
22
|
"control",
|
|
21
|
-
|
|
23
|
+
className,
|
|
24
|
+
`is-${(size ?? ElementSize.Normal)}`,
|
|
22
25
|
isLoading ? "is-loading" : "",
|
|
23
26
|
searchType === "byButton" ? "is-expanded" : "",
|
|
24
27
|
]);
|
|
25
28
|
const inputClassName = getClassName([
|
|
26
29
|
"input",
|
|
27
30
|
"is-unselectable",
|
|
28
|
-
`is-${(size
|
|
31
|
+
`is-${(size ?? ElementSize.Normal)}`,
|
|
29
32
|
rounded ? "is-rounded" : "",
|
|
30
33
|
]);
|
|
34
|
+
const dataAttributes = isNullOrUndefined(data)
|
|
35
|
+
? undefined
|
|
36
|
+
: mapDataAttributes(data);
|
|
31
37
|
if (searchType === "byButton") {
|
|
32
|
-
return (_jsxs("div", { className: "field has-addons", children: [_jsx("div", { className:
|
|
38
|
+
return (_jsxs("div", { className: "field has-addons", children: [_jsx("div", { className: elClassName, children: _jsx("input", { type: "search", name: elementName, disabled: disabled, onChange: onChange, placeholder: caption, defaultValue: searchValue, className: inputClassName, title: title, ...dataAttributes }) }), _jsx("div", { className: "control", children: _jsx(Button, { type: "info", size: size, caption: "Search", disabled: disabled, isLoading: isLoading, onClick: onSearchButtonClick }) })] }));
|
|
33
39
|
}
|
|
34
40
|
else {
|
|
35
|
-
return (_jsx("div", { className:
|
|
41
|
+
return (_jsx("div", { className: elClassName, children: _jsx("input", { type: "search", name: elementName, disabled: disabled, onChange: onChange, placeholder: caption, defaultValue: searchValue, className: inputClassName, title: title, ...dataAttributes }) }));
|
|
36
42
|
}
|
|
37
43
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ElementSize } from "
|
|
1
|
+
import { BaseElementProps, ElementSize } from "../../types";
|
|
2
2
|
/** Search component props type */
|
|
3
|
-
export interface SearchProps {
|
|
3
|
+
export interface SearchProps extends BaseElementProps {
|
|
4
4
|
/**
|
|
5
5
|
* Search type: by typing, starts from minimum characters to search
|
|
6
6
|
* or by clicking on button next to search bar.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,kCAAkC;AAClC,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACjD;;;;MAIE;IACF,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;IAEpC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,qBAAqB;IACrB,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yBAAyB;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseElementProps } from "../../../types";
|
|
3
|
+
import "./style.scss";
|
|
4
|
+
import { SortColumn, TableHeading } from "..";
|
|
5
|
+
/** Table props type */
|
|
6
|
+
export interface TableProps<TItem> extends BaseElementProps {
|
|
7
|
+
/** Header row */
|
|
8
|
+
headings: Array<TableHeading<TItem>>;
|
|
9
|
+
/** Table body */
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
/** Add border to all cells */
|
|
12
|
+
hasBorder?: boolean;
|
|
13
|
+
/** Is row hover effect active */
|
|
14
|
+
hoverable?: boolean;
|
|
15
|
+
/** Reduce space between cells */
|
|
16
|
+
narrow?: boolean;
|
|
17
|
+
/** Use all container width */
|
|
18
|
+
fullWidth?: boolean;
|
|
19
|
+
/** Is header sticks to page on scroll */
|
|
20
|
+
hasStickyHeader?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Header has border.
|
|
23
|
+
* @description Applied only with `hasStickyHeader` sets as `true`. Adds border effect
|
|
24
|
+
*/
|
|
25
|
+
headerWithBorder?: boolean;
|
|
26
|
+
/** Header has no borders */
|
|
27
|
+
headerBorderless?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Should rows be stripped.
|
|
30
|
+
* @description Even rows will have gray background
|
|
31
|
+
*/
|
|
32
|
+
zebra?: boolean;
|
|
33
|
+
/** Current sort column */
|
|
34
|
+
currentSortColumn?: SortColumn<TItem>;
|
|
35
|
+
/** Header click handler */
|
|
36
|
+
onHeaderClick?: (columnName: TableHeading<TItem>) => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Tiny table component.
|
|
40
|
+
* If no sorting is use - use `any` as generic param
|
|
41
|
+
*/
|
|
42
|
+
declare function Table<TItem>({ headings, hasBorder, hoverable, narrow, fullWidth, zebra, headerBorderless, hasStickyHeader, headerWithBorder, currentSortColumn, onHeaderClick, children, className, title, data, }: TableProps<TItem>): JSX.Element;
|
|
43
|
+
export default Table;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/component/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAG9C,uBAAuB;AACvB,MAAM,WAAW,UAAU,CAAC,KAAK,CAAE,SAAQ,gBAAgB;IACvD,iBAAiB;IACjB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;MAGE;IACF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;MAGE;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAEtC,2BAA2B;IAC3B,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;;GAGG;AACH,iBAAS,KAAK,CAAC,KAAK,EAAE,EAClB,QAAQ,EACR,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAChE,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,aAAa,EAChC,QAAQ,EAER,SAAS,EAAE,KAAK,EAAE,IAAI,GACzB,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CA4CjC;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getClassName, isNullOrUndefined } from "@bodynarf/utils";
|
|
3
|
+
import { mapDataAttributes } from "../../../utils";
|
|
4
|
+
import "./style.scss";
|
|
5
|
+
import TableHeader from "../components/heading";
|
|
6
|
+
/**
|
|
7
|
+
* Tiny table component.
|
|
8
|
+
* If no sorting is use - use `any` as generic param
|
|
9
|
+
*/
|
|
10
|
+
function Table({ headings, hasBorder, hoverable, narrow, fullWidth, zebra, headerBorderless, hasStickyHeader, headerWithBorder, currentSortColumn, onHeaderClick, children, className, title, data, }) {
|
|
11
|
+
const elClassName = getClassName([
|
|
12
|
+
"bbr-table",
|
|
13
|
+
"table",
|
|
14
|
+
className,
|
|
15
|
+
hasBorder ? "is-bordered" : "",
|
|
16
|
+
hoverable ? "is-hoverable" : "",
|
|
17
|
+
narrow ? "is-narrow" : "",
|
|
18
|
+
fullWidth ? "is-fullwidth" : "",
|
|
19
|
+
zebra ? "is-striped" : "",
|
|
20
|
+
hasStickyHeader ? "has-sticky-header" : "",
|
|
21
|
+
headerWithBorder ? "has-borderless-header has-shadow-bordered-header" : "",
|
|
22
|
+
headerBorderless ? "has-borderless-header" : "",
|
|
23
|
+
]);
|
|
24
|
+
const dataAttributes = isNullOrUndefined(data)
|
|
25
|
+
? undefined
|
|
26
|
+
: mapDataAttributes(data);
|
|
27
|
+
return (_jsxs("table", { className: elClassName, title: title, ...dataAttributes, children: [_jsx("thead", { children: _jsx("tr", { children: headings.map((heading, i) => _jsx(TableHeader, { ...heading, onClick: onHeaderClick, sortColumn: currentSortColumn }, i)) }) }), _jsx("tbody", { children: children })] }));
|
|
28
|
+
}
|
|
29
|
+
export default Table;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
table.bbr-table {
|
|
2
|
+
&.has-sticky-header thead th {
|
|
3
|
+
position: sticky;
|
|
4
|
+
top: 0.125rem;
|
|
5
|
+
z-index: 1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
&.has-shadow-bordered-header thead th {
|
|
9
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&.has-borderless-header {
|
|
13
|
+
thead th {
|
|
14
|
+
border: none !important;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
tbody tr:nth-child(1) td {
|
|
18
|
+
border-top: none !important;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SortColumn, TableHeading } from "../../types";
|
|
3
|
+
/** Table heading cell component props */
|
|
4
|
+
export interface TableHeaderProps<TItem> extends TableHeading<TItem> {
|
|
5
|
+
/** Current sort column */
|
|
6
|
+
sortColumn?: SortColumn<TItem>;
|
|
7
|
+
/** Cell click handler */
|
|
8
|
+
onClick?: (column: TableHeading<TItem>) => void;
|
|
9
|
+
}
|
|
10
|
+
/** Table heading cell */
|
|
11
|
+
declare function TableHeader<TItem>(props: TableHeaderProps<TItem>): JSX.Element;
|
|
12
|
+
export default TableHeader;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/components/heading/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,yCAAyC;AACzC,MAAM,WAAW,gBAAgB,CAAC,KAAK,CAAE,SAAQ,YAAY,CAAC,KAAK,CAAC;IAChE,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAE/B,yBAAyB;IACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,yBAAyB;AACzB,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAkCvE;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { getClassName, isNullOrUndefined } from "@bodynarf/utils";
|
|
4
|
+
import Icon from "../../../icon";
|
|
5
|
+
/** Table heading cell */
|
|
6
|
+
function TableHeader(props) {
|
|
7
|
+
const { className, caption, name, sortable, sortColumn, onClick } = props;
|
|
8
|
+
const onHeaderClick = useCallback(() => {
|
|
9
|
+
if (sortable && !isNullOrUndefined(onClick)) {
|
|
10
|
+
onClick(props);
|
|
11
|
+
}
|
|
12
|
+
}, [onClick, props, sortable]);
|
|
13
|
+
const containerClassName = getClassName([
|
|
14
|
+
className,
|
|
15
|
+
sortable ? "is-clickable" : "",
|
|
16
|
+
]);
|
|
17
|
+
return (_jsxs("th", { onClick: onHeaderClick, className: containerClassName, children: [_jsx("span", { children: caption }), sortable && sortColumn?.columnName === name
|
|
18
|
+
&&
|
|
19
|
+
_jsx(Icon, { className: "ml-1", name: `sort-alpha-down${sortColumn.ascending ? "" : "-alt"}` })] }));
|
|
20
|
+
}
|
|
21
|
+
export default TableHeader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface TableHeading<TItem> {
|
|
2
|
+
/** Caption to display */
|
|
3
|
+
caption: string;
|
|
4
|
+
/** Is column sortable */
|
|
5
|
+
sortable: boolean;
|
|
6
|
+
/** Class names */
|
|
7
|
+
className: string;
|
|
8
|
+
/** Name of model column*/
|
|
9
|
+
name?: keyof TItem;
|
|
10
|
+
}
|
|
11
|
+
/** Generic sort column model */
|
|
12
|
+
export interface SortColumn<TModel> {
|
|
13
|
+
/** Column name */
|
|
14
|
+
columnName: keyof TModel;
|
|
15
|
+
/** Is column sorted ascending */
|
|
16
|
+
ascending: boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/table/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,KAAK;IAC/B,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAElB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC;CACtB;AAED,gCAAgC;AAChC,MAAM,WAAW,UAAU,CAAC,MAAM;IAC9B,kBAAkB;IAClB,UAAU,EAAE,MAAM,MAAM,CAAC;IAEzB,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { BaseElementProps, ElementPosition, ElementSize } from "../../../types";
|
|
2
2
|
import "./style.scss";
|
|
3
|
-
import {
|
|
4
|
-
import { TabItem, TabsPosition, TabsStyle } from "../../tabs";
|
|
3
|
+
import { TabItem, TabsStyle } from "..";
|
|
5
4
|
/** Tabs component props type */
|
|
6
5
|
export interface TabsProps extends BaseElementProps {
|
|
7
6
|
/** Tabs */
|
|
@@ -19,7 +18,7 @@ export interface TabsProps extends BaseElementProps {
|
|
|
19
18
|
*/
|
|
20
19
|
size?: ElementSize;
|
|
21
20
|
/** Component position */
|
|
22
|
-
position?:
|
|
21
|
+
position?: ElementPosition;
|
|
23
22
|
/** Component style */
|
|
24
23
|
style?: TabsStyle;
|
|
25
24
|
/** Is component tabs should take all width of parent */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/component/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/component/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5E,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGxC,gCAAgC;AAChC,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IAC/C,WAAW;IACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtB,8CAA8C;IAC9C,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AASD;;;GAGG;AACH,QAAA,MAAM,IAAI,4GAQP,SAAS,KAAG,WA8Ed,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useState, useEffect, useRef } from "react";
|
|
3
3
|
import { getClassName, isNullOrEmpty, isNullOrUndefined } from "@bodynarf/utils";
|
|
4
|
-
import "
|
|
5
|
-
import { ElementSize } from "../..";
|
|
4
|
+
import { ElementPosition, ElementSize } from "../../../types";
|
|
6
5
|
import { mapDataAttributes } from "../../../utils";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import "./style.scss";
|
|
7
|
+
import { TabsStyle } from "..";
|
|
8
|
+
import TabItemComponent from "../components/item";
|
|
9
|
+
/** Tab position to element class name map */
|
|
10
|
+
const positionToClassNameMap = new Map([
|
|
11
|
+
[ElementPosition.Left, ""],
|
|
12
|
+
[ElementPosition.Center, "is-centered"],
|
|
13
|
+
[ElementPosition.Right, "is-right"],
|
|
14
|
+
]);
|
|
9
15
|
/**
|
|
10
16
|
* Tabs panel
|
|
11
17
|
* @throws Items are empty
|
|
12
18
|
*/
|
|
13
|
-
const Tabs = ({ items, onActiveItemChange, defaultActive = items[0], size, position =
|
|
19
|
+
const Tabs = ({ items, onActiveItemChange, defaultActive = items[0], size, position = ElementPosition.Left, style = TabsStyle.default, fullWidth = false, className, title, data, }) => {
|
|
14
20
|
if (items.length === 0) {
|
|
15
21
|
throw new Error("Invalid configuration. Tab items must be defined");
|
|
16
22
|
}
|
|
@@ -41,16 +47,16 @@ const Tabs = ({ items, onActiveItemChange, defaultActive = items[0], size, posit
|
|
|
41
47
|
const elClassName = getClassName([
|
|
42
48
|
"bbr-tabs",
|
|
43
49
|
"tabs",
|
|
44
|
-
|
|
50
|
+
className,
|
|
51
|
+
positionToClassNameMap.get(position),
|
|
45
52
|
getSizeClassName(size, [ElementSize.Normal]),
|
|
46
53
|
style,
|
|
47
54
|
fullWidth ? "is-fullwidth" : "",
|
|
48
|
-
className,
|
|
49
55
|
]);
|
|
50
56
|
const dataAttributes = isNullOrUndefined(data)
|
|
51
57
|
? undefined
|
|
52
58
|
: mapDataAttributes(data);
|
|
53
|
-
return (_jsx("nav", {
|
|
59
|
+
return (_jsx("nav", { onClick: onTabsClick, className: elClassName, title: title, ...dataAttributes, children: _jsx("ul", { children: items.map(item => _jsx(TabItemComponent, { item: item, activeItem: activeItem.id }, item.id)) }) }));
|
|
54
60
|
};
|
|
55
61
|
export default Tabs;
|
|
56
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/components/item/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/components/item/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,OAAO,CAAC;AAExC,sDAAsD;AACtD,MAAM,WAAW,YAAY;IACzB,eAAe;IACf,IAAI,EAAE,IAAI,CAAC;IAEX,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,2CAA2C;AAC3C,QAAA,MAAM,OAAO,yBAEV,YAAY,KAAG,WAqBjB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { getClassName, isNullOrUndefined } from "@bodynarf/utils";
|
|
3
|
+
import { ElementPosition } from "../../../../types";
|
|
3
4
|
import Icon from "../../../icon";
|
|
4
5
|
/** Tabs panel single tab item component */
|
|
5
6
|
const TabItem = ({ item, activeItem }) => {
|
|
@@ -20,8 +21,8 @@ const TabItemWithIcon = ({ item, activeItem }) => {
|
|
|
20
21
|
"bbr-tabs__tab",
|
|
21
22
|
activeItem === item.id ? "is-active" : undefined,
|
|
22
23
|
]);
|
|
23
|
-
if (iconConfig.position ===
|
|
24
|
-
return (_jsx("li", { className: className, "data-item-id": item.id, children: _jsxs("a", { children: [_jsx(
|
|
24
|
+
if (iconConfig.position === ElementPosition.Right) {
|
|
25
|
+
return (_jsx("li", { className: className, "data-item-id": item.id, children: _jsxs("a", { children: [_jsx("span", { children: item.caption }), _jsx(Icon, { ...iconConfig })] }) }, item.id));
|
|
25
26
|
}
|
|
26
|
-
return (_jsx("li", { className: className, "data-item-id": item.id, children: _jsxs("a", { children: [_jsx(
|
|
27
|
+
return (_jsx("li", { className: className, "data-item-id": item.id, children: _jsxs("a", { children: [_jsx(Icon, { ...iconConfig }), _jsx("span", { children: item.caption })] }) }, item.id));
|
|
27
28
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementIcon } from "
|
|
1
|
+
import { ElementIcon } from "../../types";
|
|
2
2
|
/** Tabs component style */
|
|
3
3
|
export declare enum TabsStyle {
|
|
4
4
|
/**
|
|
@@ -20,17 +20,6 @@ export declare enum TabsStyle {
|
|
|
20
20
|
*/
|
|
21
21
|
radioButtonRounded = "is-toggle is-toggle-rounded"
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Tabs items position on component
|
|
25
|
-
*/
|
|
26
|
-
export declare enum TabsPosition {
|
|
27
|
-
/** On the left side. Default value */
|
|
28
|
-
"left" = "",
|
|
29
|
-
/** Center*/
|
|
30
|
-
"center" = "is-centered",
|
|
31
|
-
/** Pulled to right */
|
|
32
|
-
"right" = "is-right"
|
|
33
|
-
}
|
|
34
23
|
/** Tab item */
|
|
35
24
|
export interface TabItem {
|
|
36
25
|
/** Unique identifier across all tab items */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,2BAA2B;AAC3B,oBAAY,SAAS;IACjB;;;OAGG;IACH,OAAO,KAAK;IAEZ;;;OAGG;IACH,KAAK,aAAa;IAElB;;OAEG;IACH,WAAW,cAAc;IAEzB;;OAEG;IACH,kBAAkB,gCAAgC;CACrD;AAED,eAAe;AACf,MAAM,WAAW,OAAO;IACpB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC;CACtB"}
|
package/components/tabs/types.js
CHANGED
|
@@ -20,15 +20,3 @@ export var TabsStyle;
|
|
|
20
20
|
*/
|
|
21
21
|
TabsStyle["radioButtonRounded"] = "is-toggle is-toggle-rounded";
|
|
22
22
|
})(TabsStyle || (TabsStyle = {}));
|
|
23
|
-
/**
|
|
24
|
-
* Tabs items position on component
|
|
25
|
-
*/
|
|
26
|
-
export var TabsPosition;
|
|
27
|
-
(function (TabsPosition) {
|
|
28
|
-
/** On the left side. Default value */
|
|
29
|
-
TabsPosition["left"] = "";
|
|
30
|
-
/** Center*/
|
|
31
|
-
TabsPosition["center"] = "is-centered";
|
|
32
|
-
/** Pulled to right */
|
|
33
|
-
TabsPosition["right"] = "is-right";
|
|
34
|
-
})(TabsPosition || (TabsPosition = {}));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import { TagProps } from "../../tag";
|
|
1
|
+
import { TagProps } from "..";
|
|
3
2
|
import "./style.scss";
|
|
4
3
|
/** Single tag item */
|
|
5
|
-
declare const Tag: ({ content, size, style, rounded, lightColor, customColor, onClick, className, title, }: TagProps) => JSX.Element;
|
|
4
|
+
declare const Tag: ({ content, size, style, rounded, lightColor, customColor, onClick, className, title, data, }: TagProps) => JSX.Element;
|
|
6
5
|
export default Tag;
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/tag/component/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/tag/component/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,OAAO,cAAc,CAAC;AAEtB,sBAAsB;AACtB,QAAA,MAAM,GAAG,iGAQN,QAAQ,KAAG,WAuCb,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { getClassName, isNullOrUndefined } from "@bodynarf/utils";
|
|
3
|
-
import { ElementColor, ElementSize } from "
|
|
3
|
+
import { ElementColor, ElementSize } from "../../../types";
|
|
4
|
+
import { mapDataAttributes } from "../../../utils";
|
|
4
5
|
import "./style.scss";
|
|
5
6
|
/** Single tag item */
|
|
6
|
-
const Tag = ({ content, size = ElementSize.Normal, style = ElementColor.Default, rounded = false, lightColor = false, customColor, onClick, className, title, }) => {
|
|
7
|
+
const Tag = ({ content, size = ElementSize.Normal, style = ElementColor.Default, rounded = false, lightColor = false, customColor, onClick, className, title, data, }) => {
|
|
7
8
|
if (!isNullOrUndefined(customColor)) {
|
|
8
9
|
style = ElementColor.Default;
|
|
9
10
|
}
|
|
10
11
|
const elClassName = getClassName([
|
|
11
12
|
"bbr-tag",
|
|
12
13
|
"tag",
|
|
14
|
+
className,
|
|
13
15
|
style === ElementColor.Default ? "" : `is-${style}`,
|
|
14
16
|
!isNullOrUndefined(customColor) ? "bbr-tag--custom" : "",
|
|
15
17
|
lightColor && isNullOrUndefined(customColor) ? "is-light" : "",
|
|
16
18
|
rounded ? "is-rounded" : "",
|
|
17
19
|
size === ElementSize.Normal || size === ElementSize.Small ? "" : `is-${size}`,
|
|
18
20
|
isNullOrUndefined(onClick) ? "" : "bbr-tag--clickable",
|
|
19
|
-
className,
|
|
20
21
|
]);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const dataAttributes = isNullOrUndefined(data)
|
|
23
|
+
? undefined
|
|
24
|
+
: mapDataAttributes(data);
|
|
25
|
+
return (_jsx("span", { onClick: onClick, className: elClassName, style: isNullOrUndefined(customColor)
|
|
26
|
+
? undefined
|
|
27
|
+
: {
|
|
28
|
+
color: customColor?.color,
|
|
29
|
+
backgroundColor: customColor?.backgroundColor,
|
|
30
|
+
}, title: title, ...dataAttributes, children: content }));
|
|
25
31
|
};
|
|
26
32
|
export default Tag;
|