@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.
Files changed (277) hide show
  1. package/bodynarf-react.components-1.9.3.tgz +0 -0
  2. package/common.scss +3 -2
  3. package/components/accordion/component/index.d.ts +2 -3
  4. package/components/accordion/component/index.d.ts.map +1 -1
  5. package/components/accordion/component/index.js +4 -4
  6. package/components/accordion/types.d.ts +1 -1
  7. package/components/accordion/types.d.ts.map +1 -1
  8. package/components/anchor/component/index.d.ts +1 -1
  9. package/components/anchor/component/index.d.ts.map +1 -1
  10. package/components/anchor/component/index.js +6 -6
  11. package/components/anchor/components/anchorWithIcon/index.d.ts +3 -3
  12. package/components/anchor/components/anchorWithIcon/index.d.ts.map +1 -1
  13. package/components/anchor/components/anchorWithIcon/index.js +14 -9
  14. package/components/anchor/components/simpleAnchor/index.d.ts +3 -3
  15. package/components/anchor/components/simpleAnchor/index.d.ts.map +1 -1
  16. package/components/anchor/components/simpleAnchor/index.js +8 -2
  17. package/components/anchor/types.d.ts +2 -6
  18. package/components/anchor/types.d.ts.map +1 -1
  19. package/components/breadcrumbs/component/index.d.ts +34 -0
  20. package/components/breadcrumbs/component/index.d.ts.map +1 -0
  21. package/components/breadcrumbs/component/index.js +21 -0
  22. package/components/breadcrumbs/index.d.ts +3 -0
  23. package/components/breadcrumbs/index.d.ts.map +1 -0
  24. package/components/breadcrumbs/index.js +2 -0
  25. package/components/breadcrumbs/types.d.ts +13 -0
  26. package/components/breadcrumbs/types.d.ts.map +1 -0
  27. package/components/button/component/index.d.ts +1 -1
  28. package/components/button/component/index.d.ts.map +1 -1
  29. package/components/button/component/index.js +4 -8
  30. package/components/button/components/buttonWithIcon/index.d.ts +3 -2
  31. package/components/button/components/buttonWithIcon/index.d.ts.map +1 -1
  32. package/components/button/components/buttonWithIcon/index.js +14 -9
  33. package/components/button/components/simpleButton/index.d.ts +3 -2
  34. package/components/button/components/simpleButton/index.d.ts.map +1 -1
  35. package/components/button/components/simpleButton/index.js +8 -2
  36. package/components/button/types.d.ts +1 -1
  37. package/components/button/types.d.ts.map +1 -1
  38. package/components/button/types.js +0 -3
  39. package/components/dropdown/component/index.d.ts +1 -1
  40. package/components/dropdown/component/index.d.ts.map +1 -1
  41. package/components/dropdown/component/index.js +5 -8
  42. package/components/dropdown/component/style.scss +5 -1
  43. package/components/dropdown/components/compact/index.d.ts +2 -3
  44. package/components/dropdown/components/compact/index.d.ts.map +1 -1
  45. package/components/dropdown/components/compact/index.js +12 -9
  46. package/components/dropdown/components/item/index.d.ts +1 -1
  47. package/components/dropdown/components/item/index.d.ts.map +1 -1
  48. package/components/dropdown/components/item/index.js +34 -2
  49. package/components/dropdown/components/label/component/index.d.ts +27 -0
  50. package/components/dropdown/components/label/component/index.d.ts.map +1 -0
  51. package/components/dropdown/components/label/component/index.js +16 -0
  52. package/components/dropdown/components/label/components/empty/index.d.ts +8 -0
  53. package/components/dropdown/components/label/components/empty/index.d.ts.map +1 -0
  54. package/components/dropdown/components/label/components/empty/index.js +16 -0
  55. package/components/dropdown/components/label/components/selected/index.d.ts +8 -0
  56. package/components/dropdown/components/label/components/selected/index.d.ts.map +1 -0
  57. package/components/dropdown/components/label/components/selected/index.js +20 -0
  58. package/components/dropdown/components/label/components/selectedWithIcon/index.d.ts +8 -0
  59. package/components/dropdown/components/label/components/selectedWithIcon/index.d.ts.map +1 -0
  60. package/components/dropdown/components/label/components/selectedWithIcon/index.js +28 -0
  61. package/components/dropdown/components/label/components/withSearch/index.d.ts +16 -0
  62. package/components/dropdown/components/label/components/withSearch/index.d.ts.map +1 -0
  63. package/components/dropdown/components/label/components/withSearch/index.js +33 -0
  64. package/components/dropdown/components/label/components/withSearch/style.scss +29 -0
  65. package/components/dropdown/components/label/index.d.ts +1 -1
  66. package/components/dropdown/components/label/index.d.ts.map +1 -1
  67. package/components/dropdown/components/label/index.js +41 -9
  68. package/components/dropdown/components/withLabel/index.d.ts +2 -3
  69. package/components/dropdown/components/withLabel/index.d.ts.map +1 -1
  70. package/components/dropdown/components/withLabel/index.js +14 -12
  71. package/components/dropdown/types.d.ts +13 -2
  72. package/components/dropdown/types.d.ts.map +1 -1
  73. package/components/icon/component/index.d.ts +2 -2
  74. package/components/icon/component/index.d.ts.map +1 -1
  75. package/components/icon/component/index.js +9 -5
  76. package/components/icon/types.d.ts +2 -4
  77. package/components/icon/types.d.ts.map +1 -1
  78. package/components/index.d.ts +0 -1
  79. package/components/index.d.ts.map +1 -1
  80. package/components/index.js +0 -1
  81. package/components/paginator/component/index.d.ts +2 -2
  82. package/components/paginator/component/index.d.ts.map +1 -1
  83. package/components/paginator/component/index.js +19 -14
  84. package/components/paginator/types.d.ts +3 -5
  85. package/components/paginator/types.d.ts.map +1 -1
  86. package/components/primitives/checkbox/component/index.d.ts +2 -3
  87. package/components/primitives/checkbox/component/index.d.ts.map +1 -1
  88. package/components/primitives/checkbox/component/index.js +15 -17
  89. package/components/primitives/checkbox/types.d.ts +2 -2
  90. package/components/primitives/checkbox/types.d.ts.map +1 -1
  91. package/components/primitives/color/component/index.d.ts.map +1 -1
  92. package/components/primitives/color/components/picker/index.d.ts +11 -29
  93. package/components/primitives/color/components/picker/index.d.ts.map +1 -1
  94. package/components/primitives/color/components/picker/index.js +15 -12
  95. package/components/primitives/color/components/withLabel/index.d.ts +1 -1
  96. package/components/primitives/color/components/withLabel/index.d.ts.map +1 -1
  97. package/components/primitives/color/components/withLabel/index.js +8 -30
  98. package/components/primitives/color/components/withoutLabel/index.d.ts +1 -1
  99. package/components/primitives/color/components/withoutLabel/index.d.ts.map +1 -1
  100. package/components/primitives/color/components/withoutLabel/index.js +3 -13
  101. package/components/primitives/color/types.d.ts +1 -1
  102. package/components/primitives/color/types.d.ts.map +1 -1
  103. package/components/primitives/date/component/index.d.ts +2 -3
  104. package/components/primitives/date/component/index.d.ts.map +1 -1
  105. package/components/primitives/date/component/index.js +12 -27
  106. package/components/primitives/date/types.d.ts +2 -2
  107. package/components/primitives/date/types.d.ts.map +1 -1
  108. package/components/primitives/index.d.ts +0 -1
  109. package/components/primitives/index.d.ts.map +1 -1
  110. package/components/primitives/index.js +0 -1
  111. package/components/primitives/internal/componentWithLabel/index.d.ts +17 -0
  112. package/components/primitives/internal/componentWithLabel/index.d.ts.map +1 -0
  113. package/components/primitives/internal/componentWithLabel/index.js +26 -0
  114. package/components/primitives/internal/hint/index.d.ts +12 -0
  115. package/components/primitives/internal/hint/index.d.ts.map +1 -0
  116. package/components/primitives/internal/hint/index.js +47 -0
  117. package/components/primitives/multiline/component/index.d.ts +1 -1
  118. package/components/primitives/multiline/component/index.d.ts.map +1 -1
  119. package/components/primitives/multiline/component/index.js +5 -8
  120. package/components/primitives/multiline/components/withLabel/index.d.ts +5 -0
  121. package/components/primitives/multiline/components/withLabel/index.d.ts.map +1 -0
  122. package/components/primitives/multiline/components/withLabel/index.js +29 -0
  123. package/components/primitives/multiline/components/withoutLabel/index.d.ts +5 -0
  124. package/components/primitives/multiline/components/withoutLabel/index.d.ts.map +1 -0
  125. package/components/primitives/multiline/components/withoutLabel/index.js +28 -0
  126. package/components/primitives/multiline/types.d.ts +1 -1
  127. package/components/primitives/multiline/types.d.ts.map +1 -1
  128. package/components/primitives/number/component/index.d.ts +1 -1
  129. package/components/primitives/number/component/index.d.ts.map +1 -1
  130. package/components/primitives/number/component/index.js +5 -8
  131. package/components/primitives/number/components/withLabel/index.d.ts +2 -3
  132. package/components/primitives/number/components/withLabel/index.d.ts.map +1 -1
  133. package/components/primitives/number/components/withLabel/index.js +12 -27
  134. package/components/primitives/number/components/withoutLabel/index.d.ts +2 -3
  135. package/components/primitives/number/components/withoutLabel/index.d.ts.map +1 -1
  136. package/components/primitives/number/components/withoutLabel/index.js +11 -9
  137. package/components/primitives/number/types.d.ts +1 -1
  138. package/components/primitives/number/types.d.ts.map +1 -1
  139. package/components/primitives/password/component/index.d.ts +1 -1
  140. package/components/primitives/password/component/index.d.ts.map +1 -1
  141. package/components/primitives/password/component/index.js +5 -6
  142. package/components/primitives/password/components/withLabel/index.d.ts +2 -3
  143. package/components/primitives/password/components/withLabel/index.d.ts.map +1 -1
  144. package/components/primitives/password/components/withLabel/index.js +14 -30
  145. package/components/primitives/password/components/withoutLabel/index.d.ts +2 -3
  146. package/components/primitives/password/components/withoutLabel/index.d.ts.map +1 -1
  147. package/components/primitives/password/components/withoutLabel/index.js +13 -11
  148. package/components/primitives/password/types.d.ts +1 -1
  149. package/components/primitives/password/types.d.ts.map +1 -1
  150. package/components/primitives/text/component/index.d.ts +1 -1
  151. package/components/primitives/text/component/index.d.ts.map +1 -1
  152. package/components/primitives/text/component/index.js +5 -8
  153. package/components/primitives/text/components/withLabel/index.d.ts +5 -0
  154. package/components/primitives/text/components/withLabel/index.d.ts.map +1 -0
  155. package/components/primitives/text/components/withLabel/index.js +29 -0
  156. package/components/primitives/text/components/withoutLabel/index.d.ts +5 -0
  157. package/components/primitives/text/components/withoutLabel/index.d.ts.map +1 -0
  158. package/components/primitives/text/components/withoutLabel/index.js +28 -0
  159. package/components/primitives/text/types.d.ts +1 -1
  160. package/components/primitives/text/types.d.ts.map +1 -1
  161. package/components/search/component/index.d.ts +2 -2
  162. package/components/search/component/index.d.ts.map +1 -1
  163. package/components/search/component/index.js +16 -10
  164. package/components/search/types.d.ts +2 -2
  165. package/components/search/types.d.ts.map +1 -1
  166. package/components/table/component/index.d.ts +44 -0
  167. package/components/table/component/index.d.ts.map +1 -0
  168. package/components/table/component/index.js +29 -0
  169. package/components/table/component/style.scss +21 -0
  170. package/components/table/components/heading/index.d.ts +13 -0
  171. package/components/table/components/heading/index.d.ts.map +1 -0
  172. package/components/table/components/heading/index.js +21 -0
  173. package/components/table/index.d.ts +3 -0
  174. package/components/table/index.d.ts.map +1 -0
  175. package/components/table/index.js +2 -0
  176. package/components/table/types.d.ts +18 -0
  177. package/components/table/types.d.ts.map +1 -0
  178. package/components/tabs/component/index.d.ts +3 -4
  179. package/components/tabs/component/index.d.ts.map +1 -1
  180. package/components/tabs/component/index.js +14 -8
  181. package/components/tabs/components/item/index.d.ts +1 -1
  182. package/components/tabs/components/item/index.d.ts.map +1 -1
  183. package/components/tabs/components/item/index.js +4 -3
  184. package/components/tabs/types.d.ts +1 -12
  185. package/components/tabs/types.d.ts.map +1 -1
  186. package/components/tabs/types.js +0 -12
  187. package/components/tag/component/index.d.ts +2 -3
  188. package/components/tag/component/index.d.ts.map +1 -1
  189. package/components/tag/component/index.js +13 -7
  190. package/components/tag/types.d.ts +1 -1
  191. package/components/tag/types.d.ts.map +1 -1
  192. package/hooks/usePagination.d.ts.map +1 -1
  193. package/hooks/usePagination.js +11 -2
  194. package/hooks/useUnmount.d.ts +8 -0
  195. package/hooks/useUnmount.d.ts.map +1 -0
  196. package/hooks/useUnmount.js +22 -0
  197. package/index.d.ts +1 -0
  198. package/index.d.ts.map +1 -1
  199. package/index.js +1 -0
  200. package/package.json +11 -4
  201. package/readme.md +2 -0
  202. package/tsconfig.tsbuildinfo +1 -1
  203. package/types/baseElementProps.d.ts +11 -0
  204. package/types/baseElementProps.d.ts.map +1 -0
  205. package/types/baseElementProps.js +1 -0
  206. package/{components/primitives/types/baseProps.d.ts → types/baseInputElementProps.d.ts} +10 -4
  207. package/types/baseInputElementProps.d.ts.map +1 -0
  208. package/types/baseInputElementProps.js +1 -0
  209. package/types/dataAttributes.d.ts +9 -0
  210. package/types/dataAttributes.d.ts.map +1 -0
  211. package/types/dataAttributes.js +1 -0
  212. package/types/elementColor.d.ts +18 -0
  213. package/types/elementColor.d.ts.map +1 -0
  214. package/types/elementColor.js +18 -0
  215. package/types/elementIcon.d.ts +22 -0
  216. package/types/elementIcon.d.ts.map +1 -0
  217. package/types/elementIcon.js +1 -0
  218. package/types/elementPosition.d.ts +12 -0
  219. package/types/elementPosition.d.ts.map +1 -0
  220. package/types/elementPosition.js +10 -0
  221. package/types/elementSize.d.ts +12 -0
  222. package/types/elementSize.d.ts.map +1 -0
  223. package/types/elementSize.js +12 -0
  224. package/types/hintConfiguration.d.ts +13 -0
  225. package/types/hintConfiguration.d.ts.map +1 -0
  226. package/types/hintConfiguration.js +1 -0
  227. package/types/index.d.ts +11 -0
  228. package/types/index.d.ts.map +1 -0
  229. package/types/index.js +10 -0
  230. package/{components/primitives/types/label.d.ts → types/labelConfiguration.d.ts} +3 -3
  231. package/types/labelConfiguration.d.ts.map +1 -0
  232. package/types/labelConfiguration.js +1 -0
  233. package/{components/primitives/types → types}/validation/index.d.ts +1 -1
  234. package/types/validation/index.d.ts.map +1 -0
  235. package/{components/primitives/types → types}/validation/index.js +1 -1
  236. package/{components/primitives/types → types}/validation/state.d.ts +2 -2
  237. package/types/validation/state.d.ts.map +1 -0
  238. package/{components/primitives/types → types}/validation/state.js +0 -1
  239. package/{components/primitives/types → types}/validation/status.d.ts +1 -1
  240. package/types/validation/status.d.ts.map +1 -0
  241. package/{components/primitives/types → types}/validation/status.js +1 -2
  242. package/utils/dataAttributes.d.ts +1 -1
  243. package/utils/dataAttributes.d.ts.map +1 -1
  244. package/utils/index.d.ts +1 -1
  245. package/utils/index.d.ts.map +1 -1
  246. package/utils/index.js +1 -1
  247. package/utils/validation.d.ts +11 -0
  248. package/utils/validation.d.ts.map +1 -0
  249. package/utils/validation.js +20 -0
  250. package/components/primitives/multiline/components/multilineWithLabel/index.d.ts +0 -6
  251. package/components/primitives/multiline/components/multilineWithLabel/index.d.ts.map +0 -1
  252. package/components/primitives/multiline/components/multilineWithLabel/index.js +0 -44
  253. package/components/primitives/multiline/components/multilineWithoutLabel/index.d.ts +0 -6
  254. package/components/primitives/multiline/components/multilineWithoutLabel/index.d.ts.map +0 -1
  255. package/components/primitives/multiline/components/multilineWithoutLabel/index.js +0 -26
  256. package/components/primitives/text/components/textWithLabel/index.d.ts +0 -6
  257. package/components/primitives/text/components/textWithLabel/index.d.ts.map +0 -1
  258. package/components/primitives/text/components/textWithLabel/index.js +0 -44
  259. package/components/primitives/text/components/textWithoutLabel/index.d.ts +0 -6
  260. package/components/primitives/text/components/textWithoutLabel/index.d.ts.map +0 -1
  261. package/components/primitives/text/components/textWithoutLabel/index.js +0 -26
  262. package/components/primitives/types/baseProps.d.ts.map +0 -1
  263. package/components/primitives/types/index.d.ts +0 -4
  264. package/components/primitives/types/index.d.ts.map +0 -1
  265. package/components/primitives/types/index.js +0 -3
  266. package/components/primitives/types/label.d.ts.map +0 -1
  267. package/components/primitives/types/validation/index.d.ts.map +0 -1
  268. package/components/primitives/types/validation/state.d.ts.map +0 -1
  269. package/components/primitives/types/validation/status.d.ts.map +0 -1
  270. package/components/types.d.ts +0 -78
  271. package/components/types.d.ts.map +0 -1
  272. package/components/types.js +0 -41
  273. package/utils/formValidation.d.ts +0 -16
  274. package/utils/formValidation.d.ts.map +0 -1
  275. package/utils/formValidation.js +0 -35
  276. /package/components/{primitives/types/baseProps.js → breadcrumbs/types.js} +0 -0
  277. /package/components/{primitives/types/label.js → table/types.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import "../../../../common.scss";
3
- import { TextProps } from "../../..";
3
+ import { TextProps } from "..";
4
4
  /** Textual input component */
5
5
  declare const Text: (props: TextProps) => JSX.Element;
6
6
  export default Text;
@@ -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,iBAAiB,CAAC;AAK5C,8BAA8B;AAC9B,QAAA,MAAM,IAAI,UAAW,SAAS,KAAG,WAOhC,CAAC;AAEF,eAAe,IAAI,CAAC"}
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 "../../text/components/textWithLabel";
5
- import TextWithoutLabel from "../../text/components/textWithoutLabel";
4
+ import TextWithLabel from "../components/withLabel";
5
+ import TextWithoutLabel from "../components/withoutLabel";
6
6
  /** Textual input component */
7
7
  const Text = (props) => {
8
- if (isNullOrUndefined(props.label)) {
9
- return (_jsx(TextWithoutLabel, { ...props }));
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,4 +1,4 @@
1
- import { BaseInputElementProps } from "../..";
1
+ import { BaseInputElementProps } from "../../../types";
2
2
  /** Text input component props type */
3
3
  export interface TextProps extends BaseInputElementProps<string> {
4
4
  /** Focus out event handler */
@@ -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,iBAAiB,CAAC;AAExD,sCAAsC;AACtC,MAAM,WAAW,SAAU,SAAQ,qBAAqB,CAAC,MAAM,CAAC;IAC5D,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
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 "../../search";
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":";AAIA,OAAO,cAAc,CAAC;AAItB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,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,GAC/C,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAyE3B"}
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 "./style.scss";
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 || generateGuid());
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 className = getClassName([
20
+ const elClassName = getClassName([
19
21
  "bbr-search",
20
22
  "control",
21
- `is-${(size || "normal")}`,
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 || "normal")}`,
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: className, children: _jsx("input", { type: "search", name: elementName, defaultValue: searchValue, className: inputClassName, disabled: disabled, onChange: onChange, placeholder: caption }) }), _jsx("div", { className: "control", children: _jsx(Button, { caption: "Search", type: "info", onClick: onSearchButtonClick, isLoading: isLoading, size: size }) })] }));
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: className, children: _jsx("input", { type: "search", name: elementName, defaultValue: searchValue, className: inputClassName, disabled: disabled, onChange: onChange, placeholder: caption }) }));
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,iBAAiB,CAAC;AAE9C,kCAAkC;AAClC,MAAM,WAAW,WAAW;IACxB;;;;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"}
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,3 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
@@ -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
- /// <reference types="react" />
1
+ import { BaseElementProps, ElementPosition, ElementSize } from "../../../types";
2
2
  import "./style.scss";
3
- import { BaseElementProps, ElementSize } from "../..";
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?: TabsPosition;
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":";AAIA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGxE,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,YAAY,CAAC;IAExB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,QAAA,MAAM,IAAI,4GAMP,SAAS,KAAG,WA6Ed,CAAC;AAEF,eAAe,IAAI,CAAC"}
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 "./style.scss";
5
- import { ElementSize } from "../..";
4
+ import { ElementPosition, ElementSize } from "../../../types";
6
5
  import { mapDataAttributes } from "../../../utils";
7
- import { TabsPosition, TabsStyle } from "../../tabs";
8
- import TabItemComponent from "../../tabs/components/item";
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 = TabsPosition.left, style = TabsStyle.default, fullWidth = false, className, title, data, }) => {
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
- position,
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", { className: elClassName, onClick: onTabsClick, title: title, ...dataAttributes, children: _jsx("ul", { children: items.map(item => _jsx(TabItemComponent, { item: item, activeItem: activeItem.id }, item.id)) }) }));
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,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { TabItem as Item } from "../../../tabs";
2
+ import { TabItem as Item } from "../..";
3
3
  /** Tabs panel single tab item component props type */
4
4
  export interface TabItemProps {
5
5
  /** Tab item */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/components/item/index.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvD,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
+ {"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 === "left") {
24
- return (_jsx("li", { className: className, "data-item-id": item.id, children: _jsxs("a", { children: [_jsx(Icon, { ...iconConfig }), _jsx("span", { children: item.caption })] }) }, item.id));
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("span", { children: item.caption }), _jsx(Icon, { ...iconConfig })] }) }, item.id));
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,iBAAiB,CAAC;AAE9C,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;;GAEG;AACH,oBAAY,YAAY;IACpB,sCAAsC;IACtC,MAAM,KAAK;IAEX,YAAY;IACZ,QAAQ,gBAAgB;IAExB,sBAAsB;IACtB,OAAO,aAAa;CACvB;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"}
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"}
@@ -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
- /// <reference types="react" />
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":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,cAAc,CAAC;AAEtB,sBAAsB;AACtB,QAAA,MAAM,GAAG,2FAQN,QAAQ,KAAG,WA+Bb,CAAC;AAEF,eAAe,GAAG,CAAC"}
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
- return (_jsx("span", { className: elClassName, onClick: onClick, title: title, color: customColor?.color, style: {
22
- color: customColor?.color,
23
- backgroundColor: customColor?.backgroundColor,
24
- }, children: content }));
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;