@zuzjs/ui 0.7.7 → 0.7.8

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 (180) hide show
  1. package/dist/cjs/comps/Accordion/index.js +2 -1
  2. package/dist/cjs/comps/Actionbar/index.d.ts +1 -1
  3. package/dist/cjs/comps/Actionbar/index.js +3 -2
  4. package/dist/cjs/comps/Alert/index.d.ts +1 -1
  5. package/dist/cjs/comps/Alert/index.js +1 -0
  6. package/dist/cjs/comps/AutoComplete/index.js +1 -0
  7. package/dist/cjs/comps/Avatar/index.js +3 -2
  8. package/dist/cjs/comps/Box/index.js +1 -1
  9. package/dist/cjs/comps/Button/index.d.ts +1 -1
  10. package/dist/cjs/comps/Button/index.js +4 -3
  11. package/dist/cjs/comps/CheckBox/index.d.ts +2 -2
  12. package/dist/cjs/comps/CheckBox/index.js +2 -1
  13. package/dist/cjs/comps/ColorScheme/index.d.ts +1 -1
  14. package/dist/cjs/comps/ColorScheme/index.js +7 -2
  15. package/dist/cjs/comps/ContextMenu/index.js +3 -2
  16. package/dist/cjs/comps/CookiesConsent/index.js +3 -2
  17. package/dist/cjs/comps/Cover/index.d.ts +1 -1
  18. package/dist/cjs/comps/Cover/index.js +3 -2
  19. package/dist/cjs/comps/Drawer/index.js +1 -0
  20. package/dist/cjs/comps/Editor/Timeline/index.js +4 -3
  21. package/dist/cjs/comps/Editor/index.js +2 -1
  22. package/dist/cjs/comps/Fab/index.d.ts +1 -2
  23. package/dist/cjs/comps/Fab/index.js +2 -1
  24. package/dist/cjs/comps/Filters/index.d.ts +4 -1
  25. package/dist/cjs/comps/Filters/index.js +1 -0
  26. package/dist/cjs/comps/Form/index.d.ts +2 -2
  27. package/dist/cjs/comps/Form/index.js +5 -7
  28. package/dist/cjs/comps/Icon/index.d.ts +1 -1
  29. package/dist/cjs/comps/Icon/index.js +2 -1
  30. package/dist/cjs/comps/Image/index.js +1 -0
  31. package/dist/cjs/comps/Input/index.js +1 -0
  32. package/dist/cjs/comps/Label/index.js +1 -0
  33. package/dist/cjs/comps/List/index.d.ts +1 -1
  34. package/dist/cjs/comps/List/index.js +1 -0
  35. package/dist/cjs/comps/List/item.d.ts +6 -3
  36. package/dist/cjs/comps/List/item.js +1 -0
  37. package/dist/cjs/comps/Network/index.js +4 -3
  38. package/dist/cjs/comps/Overlay/index.js +2 -1
  39. package/dist/cjs/comps/Pagination/index.js +1 -0
  40. package/dist/cjs/comps/Password/index.js +2 -1
  41. package/dist/cjs/comps/PinInput/index.js +2 -1
  42. package/dist/cjs/comps/ProgressBar/index.js +1 -0
  43. package/dist/cjs/comps/Radio/index.js +1 -0
  44. package/dist/cjs/comps/Search/index.d.ts +1 -1
  45. package/dist/cjs/comps/Search/index.js +3 -2
  46. package/dist/cjs/comps/Segmented/index.js +2 -2
  47. package/dist/cjs/comps/Segmented/item.d.ts +4 -1
  48. package/dist/cjs/comps/Segmented/item.js +8 -15
  49. package/dist/cjs/comps/Select/index.d.ts +2 -4
  50. package/dist/cjs/comps/Select/index.js +4 -3
  51. package/dist/cjs/comps/Select/optionItem.d.ts +4 -1
  52. package/dist/cjs/comps/Select/optionItem.js +1 -0
  53. package/dist/cjs/comps/Sheet/index.d.ts +1 -1
  54. package/dist/cjs/comps/Sheet/index.js +4 -3
  55. package/dist/cjs/comps/Sidebar/index.js +1 -0
  56. package/dist/cjs/comps/Slider/index.d.ts +1 -1
  57. package/dist/cjs/comps/Slider/index.js +3 -2
  58. package/dist/cjs/comps/Span/index.js +1 -0
  59. package/dist/cjs/comps/Spinner/index.d.ts +1 -1
  60. package/dist/cjs/comps/Spinner/index.js +4 -6
  61. package/dist/cjs/comps/Switch/index.d.ts +1 -1
  62. package/dist/cjs/comps/Switch/index.js +2 -1
  63. package/dist/cjs/comps/TabView/body.js +1 -0
  64. package/dist/cjs/comps/TabView/index.js +1 -0
  65. package/dist/cjs/comps/TabView/tab.d.ts +4 -1
  66. package/dist/cjs/comps/TabView/tab.js +1 -0
  67. package/dist/cjs/comps/Table/col.d.ts +9 -6
  68. package/dist/cjs/comps/Table/col.js +1 -0
  69. package/dist/cjs/comps/Table/index.js +1 -0
  70. package/dist/cjs/comps/Table/row.d.ts +4 -1
  71. package/dist/cjs/comps/Table/row.js +2 -1
  72. package/dist/cjs/comps/Text/index.js +1 -1
  73. package/dist/cjs/comps/TextArea/index.js +1 -0
  74. package/dist/cjs/comps/TextWheel/index.js +1 -0
  75. package/dist/cjs/comps/Tooltip/index.d.ts +1 -2
  76. package/dist/cjs/comps/Tooltip/index.js +2 -1
  77. package/dist/cjs/comps/Treeview/index.d.ts +1 -2
  78. package/dist/cjs/comps/Treeview/index.js +2 -1
  79. package/dist/cjs/comps/Treeview/item.d.ts +3 -2
  80. package/dist/cjs/comps/Treeview/item.js +11 -7
  81. package/dist/cjs/comps/Treeview/types.d.ts +6 -2
  82. package/dist/cjs/funs/index.d.ts +2 -1
  83. package/dist/cjs/funs/index.js +4 -3
  84. package/dist/cjs/hooks/index.d.ts +4 -5
  85. package/dist/cjs/hooks/index.js +2 -2
  86. package/dist/cjs/hooks/useDelayed.d.ts +17 -0
  87. package/dist/cjs/hooks/useDelayed.js +25 -0
  88. package/dist/cjs/index.js +1 -0
  89. package/dist/css/styles.css +1 -1
  90. package/dist/esm/comps/Accordion/index.js +2 -1
  91. package/dist/esm/comps/Actionbar/index.d.ts +1 -1
  92. package/dist/esm/comps/Actionbar/index.js +3 -2
  93. package/dist/esm/comps/Alert/index.d.ts +1 -1
  94. package/dist/esm/comps/Alert/index.js +1 -0
  95. package/dist/esm/comps/AutoComplete/index.js +1 -0
  96. package/dist/esm/comps/Avatar/index.js +3 -2
  97. package/dist/esm/comps/Box/index.js +1 -1
  98. package/dist/esm/comps/Button/index.d.ts +1 -1
  99. package/dist/esm/comps/Button/index.js +4 -3
  100. package/dist/esm/comps/CheckBox/index.d.ts +2 -2
  101. package/dist/esm/comps/CheckBox/index.js +2 -1
  102. package/dist/esm/comps/ColorScheme/index.d.ts +1 -1
  103. package/dist/esm/comps/ColorScheme/index.js +7 -2
  104. package/dist/esm/comps/ContextMenu/index.js +3 -2
  105. package/dist/esm/comps/CookiesConsent/index.js +3 -2
  106. package/dist/esm/comps/Cover/index.d.ts +1 -1
  107. package/dist/esm/comps/Cover/index.js +3 -2
  108. package/dist/esm/comps/Drawer/index.js +1 -0
  109. package/dist/esm/comps/Editor/Timeline/index.js +4 -3
  110. package/dist/esm/comps/Editor/index.js +2 -1
  111. package/dist/esm/comps/Fab/index.d.ts +1 -2
  112. package/dist/esm/comps/Fab/index.js +2 -1
  113. package/dist/esm/comps/Filters/index.d.ts +4 -1
  114. package/dist/esm/comps/Filters/index.js +1 -0
  115. package/dist/esm/comps/Form/index.d.ts +2 -2
  116. package/dist/esm/comps/Form/index.js +5 -7
  117. package/dist/esm/comps/Icon/index.d.ts +1 -1
  118. package/dist/esm/comps/Icon/index.js +2 -1
  119. package/dist/esm/comps/Image/index.js +1 -0
  120. package/dist/esm/comps/Input/index.js +1 -0
  121. package/dist/esm/comps/Label/index.js +1 -0
  122. package/dist/esm/comps/List/index.d.ts +1 -1
  123. package/dist/esm/comps/List/index.js +1 -0
  124. package/dist/esm/comps/List/item.d.ts +6 -3
  125. package/dist/esm/comps/List/item.js +1 -0
  126. package/dist/esm/comps/Network/index.js +4 -3
  127. package/dist/esm/comps/Overlay/index.js +2 -1
  128. package/dist/esm/comps/Pagination/index.js +1 -0
  129. package/dist/esm/comps/Password/index.js +2 -1
  130. package/dist/esm/comps/PinInput/index.js +2 -1
  131. package/dist/esm/comps/ProgressBar/index.js +1 -0
  132. package/dist/esm/comps/Radio/index.js +1 -0
  133. package/dist/esm/comps/Search/index.d.ts +1 -1
  134. package/dist/esm/comps/Search/index.js +3 -2
  135. package/dist/esm/comps/Segmented/index.js +2 -2
  136. package/dist/esm/comps/Segmented/item.d.ts +4 -1
  137. package/dist/esm/comps/Segmented/item.js +8 -15
  138. package/dist/esm/comps/Select/index.d.ts +2 -4
  139. package/dist/esm/comps/Select/index.js +4 -3
  140. package/dist/esm/comps/Select/optionItem.d.ts +4 -1
  141. package/dist/esm/comps/Select/optionItem.js +1 -0
  142. package/dist/esm/comps/Sheet/index.d.ts +1 -1
  143. package/dist/esm/comps/Sheet/index.js +4 -3
  144. package/dist/esm/comps/Sidebar/index.js +1 -0
  145. package/dist/esm/comps/Slider/index.d.ts +1 -1
  146. package/dist/esm/comps/Slider/index.js +3 -2
  147. package/dist/esm/comps/Span/index.js +1 -0
  148. package/dist/esm/comps/Spinner/index.d.ts +1 -1
  149. package/dist/esm/comps/Spinner/index.js +4 -6
  150. package/dist/esm/comps/Switch/index.d.ts +1 -1
  151. package/dist/esm/comps/Switch/index.js +2 -1
  152. package/dist/esm/comps/TabView/body.js +1 -0
  153. package/dist/esm/comps/TabView/index.js +1 -0
  154. package/dist/esm/comps/TabView/tab.d.ts +4 -1
  155. package/dist/esm/comps/TabView/tab.js +1 -0
  156. package/dist/esm/comps/Table/col.d.ts +9 -6
  157. package/dist/esm/comps/Table/col.js +1 -0
  158. package/dist/esm/comps/Table/index.js +1 -0
  159. package/dist/esm/comps/Table/row.d.ts +4 -1
  160. package/dist/esm/comps/Table/row.js +2 -1
  161. package/dist/esm/comps/Text/index.js +1 -1
  162. package/dist/esm/comps/TextArea/index.js +1 -0
  163. package/dist/esm/comps/TextWheel/index.js +1 -0
  164. package/dist/esm/comps/Tooltip/index.d.ts +1 -2
  165. package/dist/esm/comps/Tooltip/index.js +2 -1
  166. package/dist/esm/comps/Treeview/index.d.ts +1 -2
  167. package/dist/esm/comps/Treeview/index.js +2 -1
  168. package/dist/esm/comps/Treeview/item.d.ts +3 -2
  169. package/dist/esm/comps/Treeview/item.js +11 -7
  170. package/dist/esm/comps/Treeview/types.d.ts +6 -2
  171. package/dist/esm/funs/index.d.ts +2 -1
  172. package/dist/esm/funs/index.js +4 -3
  173. package/dist/esm/hooks/index.d.ts +4 -5
  174. package/dist/esm/hooks/index.js +2 -2
  175. package/dist/esm/hooks/useDelayed.d.ts +17 -0
  176. package/dist/esm/hooks/useDelayed.js +25 -0
  177. package/dist/esm/index.js +1 -0
  178. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  179. package/dist/tsconfig.tsbuildinfo +1 -1
  180. package/package.json +1 -1
@@ -1,3 +1,6 @@
1
1
  import { SegmentItemProps } from "./types";
2
- declare const SegmentItem: ({ onSelect, meta, selected }: SegmentItemProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const SegmentItem: {
3
+ ({ onSelect, meta, selected }: SegmentItemProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
3
6
  export default SegmentItem;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
2
+ import { useEffect, useLayoutEffect, useRef, useState } from "react";
3
+ import { useDelayed } from "../..";
3
4
  import Box from "../Box";
4
5
  import Button from "../Button";
5
6
  import Icon from "../Icon";
@@ -7,32 +8,24 @@ const SegmentItem = ({ onSelect, meta, selected }) => {
7
8
  const ref = useRef(null);
8
9
  const { index, icon, label } = meta;
9
10
  const [pos, setPos] = useState({ x: 0, width: 0 });
10
- // const [ _selected, setSelected ] = useState(selected)
11
- useEffect(() => {
12
- if (ref.current) {
11
+ const hydrated = useDelayed();
12
+ useLayoutEffect(() => {
13
+ if (hydrated && ref.current) {
13
14
  const { width, x } = ref.current.getBoundingClientRect();
14
15
  setPos({ x, width });
15
16
  if (selected) {
16
17
  onSelect(index, width, x, meta, true);
17
- // setSelected(meta.index)
18
18
  }
19
- // if ( selected && !_initial ){
20
- // ref.current.click()
21
- // setInitial(true)
22
- // }
23
19
  }
24
- // else
25
- // setInitial(false)
26
- }, [ref.current]);
20
+ }, [hydrated, ref.current]);
27
21
  useEffect(() => {
28
22
  if (selected) {
29
23
  onSelect(index, pos.width, pos.x, meta, false);
30
24
  }
31
25
  }, [selected]);
32
- return _jsxs(Button, { onClick: () => onSelect(index, pos.width, pos.x, meta, false), ref: ref,
33
- // data-x={pos.x}
34
- suppressHydrationWarning: true, className: `--segment-item flex aic rel ${selected ? `--segement-active` : ``}`.trim(), children: [icon ?
26
+ return _jsxs(Button, { onClick: () => onSelect(index, pos.width, pos.x, meta, false), ref: ref, className: `--segment-item flex aic rel ${selected ? `--segement-active` : ``}`.trim(), children: [icon ?
35
27
  `string` == typeof icon ? _jsx(Icon, { name: icon, as: `--segment-icon` }) : _jsx(Box, { as: `--segment-icon flex aic jcc`, children: icon })
36
28
  : null, label && String(label).trim() != `` && _jsx(Box, { className: `--segment-label`, children: label || `Item ${index}` })] });
37
29
  };
30
+ SegmentItem.displayName = `SelectTabItem`;
38
31
  export default SegmentItem;
@@ -1,8 +1,6 @@
1
- import { FORMVALIDATION } from "../../types/enums";
2
- import { BoxProps } from "../Box";
3
1
  import { Option } from "./types";
4
- declare const Select: import("react").ForwardRefExoticComponent<BoxProps & {
5
- required?: FORMVALIDATION;
2
+ declare const Select: import("react").ForwardRefExoticComponent<import("..").BoxProps & {
3
+ required?: import("../..").FORMVALIDATION;
6
4
  options: Option[];
7
5
  label?: string;
8
6
  selected?: string | Option;
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useEffect, useId, useMemo, useRef, useState } from "react";
4
- import SVGIcons from "../svgicons";
5
- import Box from "../Box";
6
4
  import { useBase } from "../../hooks";
5
+ import Box from "../Box";
7
6
  import Button from "../Button";
8
- import Text from "../Text";
9
7
  import Input from "../Input";
8
+ import SVGIcons from "../svgicons";
9
+ import Text from "../Text";
10
10
  import OptionItem from "./optionItem";
11
11
  const Select = forwardRef((props, ref) => {
12
12
  const { selected, options, label, name, search: withSearch, searchPlaceholder, onChange, ...pops } = props;
@@ -58,4 +58,5 @@ const Select = forwardRef((props, ref) => {
58
58
  }))
59
59
  .map((o) => _jsx(OptionItem, { updateValue: updateValue, value: value, o: o }, `option-${(`string` == typeof o ? o : o.label).replace(/\s+/g, `-`)}-${`string` == typeof o ? o : o.value}`))] })] });
60
60
  });
61
+ Select.displayName = `Select`;
61
62
  export default Select;
@@ -1,3 +1,6 @@
1
1
  import { OptionItemProps } from "./types";
2
- declare const OptionItem: ({ value, updateValue, o }: OptionItemProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const OptionItem: {
3
+ ({ value, updateValue, o }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
3
6
  export default OptionItem;
@@ -3,4 +3,5 @@ import Button from "../Button";
3
3
  const OptionItem = ({ value, updateValue, o }) => {
4
4
  return _jsx(Button, { onClick: (e) => updateValue(o), className: value && (`string` == typeof o ? o : o.value) == (`string` == typeof value ? value : value.value) ? `selected` : ``, children: `string` == typeof o ? o : o.label });
5
5
  };
6
+ OptionItem.displayName = `Option`;
6
7
  export default OptionItem;
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from "react";
2
- import { SHEET, SHEET_ACTION_POSITION, SPINNER, TRANSITION_CURVES, TRANSITIONS } from "../../types/enums";
3
2
  import { ZuzProps } from "../../types";
3
+ import { SHEET, SHEET_ACTION_POSITION, SPINNER, TRANSITION_CURVES, TRANSITIONS } from "../../types/enums";
4
4
  export type SheetProps = ZuzProps & {
5
5
  title?: string;
6
6
  message?: string | ReactNode;
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
4
- import { SHEET, SHEET_ACTION_POSITION, TRANSITION_CURVES } from "../../types/enums";
5
- import Box from "../Box";
6
- import { useBase } from "../../hooks";
7
4
  import { uuid } from "../../funs";
8
5
  import { animationTransition } from "../../funs/css";
6
+ import { useBase } from "../../hooks";
7
+ import { SHEET, SHEET_ACTION_POSITION, TRANSITION_CURVES } from "../../types/enums";
8
+ import Box from "../Box";
9
9
  import Button from "../Button";
10
10
  import Cover from "../Cover";
11
11
  import Overlay from "../Overlay";
@@ -184,4 +184,5 @@ export const isSheetHandler = (src) => {
184
184
  && `success` in src
185
185
  && `error` in src;
186
186
  };
187
+ Sheet.displayName = `Sheet`;
187
188
  export default Sheet;
@@ -5,4 +5,5 @@ const Sidebar = forwardRef((props, ref) => {
5
5
  const { layout, logo } = props;
6
6
  return _jsxs(Box, { ref: ref, className: `--sidebar --${layout || `2-columns`} flex cols`, children: [_jsx(Box, { as: `--logo`, children: logo }), _jsx(Box, { as: `--nav flex cols` })] });
7
7
  });
8
+ Sidebar.displayName = `Sidebar`;
8
9
  export default Sidebar;
@@ -1,5 +1,5 @@
1
- import { BoxProps } from "../Box";
2
1
  import { SLIDER } from "../../types/enums";
2
+ import { BoxProps } from "../Box";
3
3
  export type SliderProps = BoxProps & {
4
4
  type?: SLIDER;
5
5
  value?: number;
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useEffect, useRef, useState } from "react";
4
- import Box from "../Box";
5
- import { SLIDER } from "../../types/enums";
6
4
  import { useBase } from "../../hooks";
5
+ import { SLIDER } from "../../types/enums";
6
+ import Box from "../Box";
7
7
  import Input from "../Input";
8
8
  import Text from "../Text";
9
9
  const Slider = forwardRef((props, ref) => {
@@ -78,4 +78,5 @@ const Slider = forwardRef((props, ref) => {
78
78
  }, [isDragging]);
79
79
  return _jsx(Box, { ref: slider, "data-value": value || 0, className: `--slider --${type || SLIDER.Default} flex rel ${className}`.trim(), style: { ...style }, children: SLIDER.Text === type ? _jsx(_Fragment, { children: _jsx(Text, { ref: text, onMouseDown: handleMouseDown, className: `--slider-text`, children: value || 0 }) }) : _jsxs(_Fragment, { children: [_jsx(Box, { ref: track, className: `--slider-track abs fill` }), _jsx(Box, { ref: knob, className: `--slider-knob abs` }), _jsx(Input, { ref: input, onInput: handleInput, className: `abs fill`, tabIndex: 0, type: type || SLIDER.Default, defaultValue: value || 0, step: step, max: max, min: min })] }) });
80
80
  });
81
+ Slider.displayName = `Slider`;
81
82
  export default Slider;
@@ -7,4 +7,5 @@ const Span = forwardRef((props, ref) => {
7
7
  const { style: _style, className, rest } = useBase(pops);
8
8
  return _jsx("span", { ref: ref, style: style, className: className, ...rest });
9
9
  });
10
+ Span.displayName = `Span`;
10
11
  export default Span;
@@ -1,5 +1,5 @@
1
- import { BoxProps } from "../Box";
2
1
  import { Size, SPINNER } from "../../types/enums";
2
+ import { BoxProps } from "../Box";
3
3
  export type SpinnerProps = BoxProps & {
4
4
  type?: SPINNER;
5
5
  size?: Size | number;
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import Box from "../Box";
5
- import { Size, SPINNER } from "../../types/enums";
6
- import { useBase } from "../../hooks";
7
4
  import { hexToRgba } from "../../funs";
5
+ import { useBase } from "../../hooks";
6
+ import { Size, SPINNER } from "../../types/enums";
7
+ import Box from "../Box";
8
8
  const Spinner = forwardRef((props, ref) => {
9
9
  const { type, size, width, speed, color, background, foreground, ...pops } = props;
10
10
  const defaultColor = `#000000`;
@@ -39,13 +39,10 @@ const Spinner = forwardRef((props, ref) => {
39
39
  switch (type || SPINNER.Simple) {
40
40
  case SPINNER.Simple:
41
41
  return null;
42
- break;
43
42
  case SPINNER.Wave:
44
43
  return _jsxs(_Fragment, { children: [_jsx(Box, { as: `--dot --dot-1` }), _jsx(Box, { as: `--dot --dot-2` }), _jsx(Box, { as: `--dot --dot-3` })] });
45
- break;
46
44
  case SPINNER.Roller:
47
45
  return null;
48
- break;
49
46
  }
50
47
  };
51
48
  return _jsx(Box, { className: `${className} --spinner --${(type || SPINNER.Simple).toLowerCase()} --${size || Size.Default}`.trim(), style: {
@@ -53,4 +50,5 @@ const Spinner = forwardRef((props, ref) => {
53
50
  ...build()
54
51
  }, ...rest, children: child() });
55
52
  });
53
+ Spinner.displayName = `Spinner`;
56
54
  export default Spinner;
@@ -1,5 +1,5 @@
1
- import { CheckboxHandler } from "../CheckBox/types";
2
1
  import { CHECKBOX } from "../../types/enums";
2
+ import { CheckboxHandler } from "../CheckBox/types";
3
3
  declare const Switch: import("react").ForwardRefExoticComponent<import("../..").ZuzProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, keyof import("../..").ZuzProps> & {
4
4
  type?: CHECKBOX;
5
5
  size?: import("../..").Size;
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import CheckBox from "../CheckBox";
4
3
  import { CHECKBOX } from "../../types/enums";
4
+ import CheckBox from "../CheckBox";
5
5
  const Switch = forwardRef((props, ref) => {
6
6
  return _jsx(CheckBox, { type: CHECKBOX.Switch, ...props, ref: ref });
7
7
  });
8
+ Switch.displayName = `Switch`;
8
9
  export default Switch;
@@ -21,4 +21,5 @@ const TabBody = ({ size, index, active, render, content }) => {
21
21
  ...style
22
22
  }, className: `--content`, children: (render || active) && content });
23
23
  };
24
+ TabBody.displayName = `TabBody`;
24
25
  export default TabBody;
@@ -46,4 +46,5 @@ const TabView = forwardRef((props, ref) => {
46
46
  transition: `all ${speed || 0.3}s ease-in-out 0s`, transform: `translate(-${activeTab * size.width}px, 0)`
47
47
  }, children: tabs.map((tab, index) => _jsx(TabBody, { index: index, active: index === activeTab, size: size, render: render, content: tab.body }, `tab-body-${tab.key || index}-${tabViewID}`)) }) })] });
48
48
  });
49
+ TabView.displayName = `TabView`;
49
50
  export default TabView;
@@ -1,3 +1,6 @@
1
1
  import { TabProps } from "./types";
2
- declare const TabItem: ({ tab, index, activeTab, onClick }: TabProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const TabItem: {
3
+ ({ tab, index, activeTab, onClick }: TabProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
3
6
  export default TabItem;
@@ -6,4 +6,5 @@ const TabItem = ({ tab, index, activeTab, onClick }) => {
6
6
  const { icon, label } = tab;
7
7
  return _jsxs(Button, { onClick: e => onClick(index), className: `--tab jcc ${index === activeTab ? '--active' : ''}`.trim(), children: [icon && (typeof icon === 'string' ? _jsx(Icon, { className: `--icon`, name: icon }) : icon), _jsx(Text, { className: `--label rel`, children: label })] });
8
8
  };
9
+ TabItem.displayName = `TabItem`;
9
10
  export default TabItem;
@@ -1,10 +1,13 @@
1
1
  import { CSSProperties } from "react";
2
2
  import { PubSub } from "../..";
3
3
  import type { Column } from "./types";
4
- declare const TColumn: <T>(props: Column<T> & {
5
- idx: number;
6
- style?: CSSProperties;
7
- pubsub: PubSub;
8
- sortBy?: string | null;
9
- }) => import("react/jsx-runtime").JSX.Element;
4
+ declare const TColumn: {
5
+ <T>(props: Column<T> & {
6
+ idx: number;
7
+ style?: CSSProperties;
8
+ pubsub: PubSub;
9
+ sortBy?: string | null;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
10
13
  export default TColumn;
@@ -19,4 +19,5 @@ const TColumn = (props) => {
19
19
  && sortBy == id
20
20
  && _jsx(Box, { as: `--arrow flex aib`, children: _sort == 1 ? SVGIcons.arrowUp : SVGIcons.arrowDown })] });
21
21
  };
22
+ TColumn.displayName = `Column`;
22
23
  export default TColumn;
@@ -36,5 +36,6 @@ const Table = (props, ref) => {
36
36
  };
37
37
  return _jsxs(Box, { as: `--table ${(hoverable ?? true) ? `--hoverable` : ``} flex cols ${className}`, ref: _tableRef, children: [_header == true && _jsx(TRow, { sortBy: _sortBy, onSort: handleSort, tableRef: _tableRef, pubsub: pubsub, selectable: selectableRows, index: -1, schema: schema, styles: _schemaParsed }), rows && rows.map((row, index) => _jsx(TRow, { tableRef: _tableRef, pubsub: pubsub, index: index, schema: schema, ids: _cols, styles: _schemaParsed, animate: animateRows, data: row, rowClassName: rowClassName, selectable: selectableRows, onSelect: onRowSelectToggle, onContextMenu: onRowContextMenu }, `--trow-${rowKeys[index]}-${schema[0].id}`)), pagination && _jsx(Box, { as: `--row flex aic --row-footer`, children: _jsx(Pagination, { hash: paginationHash, renderOnZeroPageCount: showPaginationOnZeroPageCount, onPageChange: onPageChange, paginationStyle: PaginationStyle.Table, startPage: currentPage, itemCount: rowCount || (rows ? rows.length : 0), itemsPerPage: rowsPerPage || 10 }) })] });
38
38
  };
39
+ Table.displayName = `Table`;
39
40
  const ForwardedTable = forwardRef(Table);
40
41
  export default ForwardedTable;
@@ -1,3 +1,6 @@
1
1
  import type { Row } from "./types";
2
- declare const TRow: <T>(props: Row<T>) => import("react/jsx-runtime").JSX.Element;
2
+ declare const TRow: {
3
+ <T>(props: Row<T>): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
3
6
  export default TRow;
@@ -73,7 +73,7 @@ const TRow = (props) => {
73
73
  };
74
74
  }
75
75
  }, []);
76
- return _jsxs(Box, { onContextMenu: e => onContextMenu ? onContextMenu(e, data) : null, "data-index": index, ...(animate ? { animate: { ..._animation, when: mounted } } : {}), as: `--row flex aic ${index == -1 ? `--row-head` : ``} ${rowClassName || ``}`, children: [index == -1 && schema.map((c, i) => {
76
+ return _jsxs(Box, { onContextMenu: e => onContextMenu ? onContextMenu(e, data) : null, ...(animate ? { animate: { ..._animation, when: mounted } } : {}), as: `--row flex aic ${index == -1 ? `--row-head` : ``} ${rowClassName || ``}`, children: [index == -1 && schema.map((c, i) => {
77
77
  const { renderWhenHeader, render, value, ...cc } = c;
78
78
  return _jsxs(Fragment, { children: [selectable && i == 0 && Selector(-1, `--selector-${c.id}`, `all`), _jsx(TColumn, { idx: -1, onSort: onSort, sortBy: sortBy,
79
79
  // value={renderWhenHeader && render ? render!(index == -1 ? c as dynamicObject : data as T, index) : value as string}
@@ -82,4 +82,5 @@ const TRow = (props) => {
82
82
  return _jsxs(Fragment, { children: [selectable && i == 0 && Selector(i, `--selector-${c.id}`, c.id.toString()), ids.includes(String(c.id)) ? _jsx(TColumn, { pubsub: pubsub, idx: i, id: String(c.id), style: styles[String(c.id)], value: c.render ? c.render(data, index) : data[String(c.id).includes(`.`) ? String(c.id).split(`.`).reverse()[0] : c.id] }) : null] }, `--${String(c.id)}-val-${i}`);
83
83
  })] });
84
84
  };
85
+ TRow.displayName = `Row`;
85
86
  export default TRow;
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsx as _jsx } from "react/jsx-runtime";
3
2
  import { forwardRef } from 'react';
4
3
  import { useBase } from '../../hooks';
@@ -9,4 +8,5 @@ const Text = forwardRef((props, ref) => {
9
8
  const Tag = `h${props.h || 1}`;
10
9
  return _jsx(Tag, { ref: ref, style: style, className: className, ...rest, children: html ? _jsx(Span, { dangerouslySetInnerHTML: { __html: html } }) : children });
11
10
  });
11
+ Text.displayName = `Text`;
12
12
  export default Text;
@@ -10,4 +10,5 @@ const TextArea = forwardRef((props, ref) => {
10
10
  };
11
11
  return _jsx("textarea", { className: `--input --textarea --${variant || Variant.Small} flex ${className}`.trim(), style: style, onInput: handleInput, ref: ref, ...rest });
12
12
  });
13
+ TextArea.displayName = `TextArea`;
13
14
  export default TextArea;
@@ -50,4 +50,5 @@ const TextWheel = forwardRef((props, ref) => {
50
50
  background: `linear-gradient(0deg, ${color}, transparent, transparent, transparent, ${color})`,
51
51
  } })] });
52
52
  });
53
+ TextWheel.displayName = `TextWheel`;
53
54
  export default TextWheel;
@@ -1,6 +1,5 @@
1
- import { BoxProps } from '../Box';
2
1
  import { Position } from '../../types/enums';
3
- declare const ToolTip: import("react").ForwardRefExoticComponent<BoxProps & {
2
+ declare const ToolTip: import("react").ForwardRefExoticComponent<import("..").BoxProps & {
4
3
  position?: Position;
5
4
  margin?: number;
6
5
  } & import("react").RefAttributes<HTMLDivElement>>;
@@ -2,9 +2,9 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { useBase, useDimensions } from '../../hooks';
5
+ import { Position, TRANSITION_CURVES } from '../../types/enums';
5
6
  import Box from '../Box';
6
7
  import Text from '../Text';
7
- import { Position, TRANSITION_CURVES } from '../../types/enums';
8
8
  const ToolTip = forwardRef((props, ref) => {
9
9
  const { title, position, margin, children, ...pops } = props;
10
10
  const { style, className, rest } = useBase(pops);
@@ -53,4 +53,5 @@ const ToolTip = forwardRef((props, ref) => {
53
53
  when: hovered
54
54
  }, children: _jsx(Text, { className: `--text rel`, children: title }) })] });
55
55
  });
56
+ ToolTip.displayName = `ToolTip`;
56
57
  export default ToolTip;
@@ -1,6 +1,5 @@
1
1
  import { TreeViewHandler } from "./types";
2
- import { BoxProps } from "../Box";
3
- declare const TreeView: import("react").ForwardRefExoticComponent<Omit<BoxProps, "tag"> & {
2
+ declare const TreeView: import("react").ForwardRefExoticComponent<Omit<import("..").BoxProps, "tag"> & {
4
3
  tag?: string;
5
4
  roots: string[];
6
5
  nodes: import("./types").TreeNode[];
@@ -19,6 +19,7 @@ const TreeView = forwardRef((props, ref) => {
19
19
  }, [_selected]);
20
20
  return _jsx(Box, { className: `--treeview flex cols`, children: nodes
21
21
  .filter(node => roots.includes(node.tag))
22
- .map(node => _jsx(TreeItem, { treeTag: treeViewTag ? `-${treeViewTag}` : ``, selected: selected, onSelect: e => handleSelect(e), icons: icons, meta: node, skeleton: rest.skeleton, nodes: nodes }, `--node-${node.tag}`)) });
22
+ .map(node => _jsx(TreeItem, { treeTag: treeViewTag ? `-${treeViewTag}` : ``, selected: selected, onSelect: e => handleSelect(e), icons: icons, meta: node, isRoot: true, expanded: node.expanded || false, skeleton: rest.skeleton, nodes: nodes }, `--node-${node.tag}`)) });
23
23
  });
24
+ TreeView.displayName = `TreeView`;
24
25
  export default TreeView;
@@ -1,9 +1,10 @@
1
1
  import { TreeItemHandler } from "./types";
2
- import { BoxProps } from "../Box";
3
- declare const TreeItem: import("react").ForwardRefExoticComponent<BoxProps & {
2
+ declare const TreeItem: import("react").ForwardRefExoticComponent<import("..").BoxProps & {
4
3
  treeTag: string;
5
4
  meta: import("./types").TreeNode;
6
5
  nodes: import("./types").TreeNode[];
6
+ isRoot: boolean;
7
+ expanded: boolean;
7
8
  onSelect: (tag: string) => void;
8
9
  selected?: String;
9
10
  icons?: import("./types").TreeNodeIcons;
@@ -1,28 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useEffect, useState } from "react";
2
+ import { forwardRef, useEffect, useMemo, useState } from "react";
3
3
  import Box from "../Box";
4
4
  import Button from "../Button";
5
5
  import Icon from "../Icon";
6
6
  import Text from "../Text";
7
7
  import SVGIcons from "../svgicons";
8
8
  const TreeItem = forwardRef((props, ref) => {
9
- const { as, meta, nodes, icons, onSelect, treeTag, selected, ...rest } = props;
9
+ const { as, meta, nodes, icons, onSelect, treeTag, selected, isRoot, expanded, ...rest } = props;
10
10
  const { tag, label, icon, under, isHead } = meta;
11
- const [isOpen, setIsOpen] = useState(tag == `root`);
11
+ const [isOpen, setIsOpen] = useState(expanded);
12
12
  const toggle = () => {
13
13
  localStorage.setItem(`--tn${treeTag}-${tag}`, isOpen ? `0` : `1`);
14
14
  setIsOpen(!isOpen);
15
15
  };
16
16
  useEffect(() => {
17
- if (tag == `root` && !localStorage.getItem(`--tn${treeTag}-${tag}`)) {
17
+ if (expanded || (isRoot && !localStorage.getItem(`--tn${treeTag}-${tag}`))) {
18
18
  localStorage.setItem(`--tn${treeTag}-${tag}`, `1`);
19
19
  setIsOpen(true);
20
20
  }
21
21
  else
22
22
  setIsOpen(localStorage.getItem(`--tn${treeTag}-${tag}`) == `1`);
23
23
  }, []);
24
- const _nodes = nodes.filter(x => x.under == tag);
25
- return _jsxs(Box, { className: `--treenode --treenode-${tag} flex cols`, children: [_jsxs(Box, { className: `--node --node-${tag} flex aic${selected == tag ? ` --selected` : ``}`, children: [_jsx(Button, { skeleton: rest.skeleton, onClick: toggle, className: `--node-aro-btn`, disabled: _nodes.length == 0, children: icons ? _jsx(Icon, { skeleton: rest.skeleton, className: `--node-aro-icon`, name: _nodes.length == 0 ? icons?.arrowDisabled || icons?.arrowClose : isOpen ? icons?.arrowOpen : icons?.arrowClose })
26
- : _nodes.length == 0 ? SVGIcons.chevronBottom : isOpen ? SVGIcons.chevronBottom : SVGIcons.chevronRight }), _jsxs(Button, { className: `--node-meta flex aic`, onClick: (e) => onSelect(tag), children: [icons?.nodeOpen && icons?.nodeClose && _jsx(Icon, { skeleton: rest.skeleton, className: `--node-icon`, name: icon || (isOpen ? icons?.nodeOpen : icons?.nodeClose) }), _jsx(Text, { ...{ className: `--node-label` }, skeleton: rest.skeleton, children: label })] })] }), isOpen && _nodes.length > 0 && _jsx(Box, { className: `--sub-node tree-sub-node-${tag} flex cols`, children: _nodes.map(node => _jsx(TreeItem, { treeTag: treeTag, selected: selected, onSelect: onSelect, icons: icons, meta: node, nodes: nodes }, `--node-${node.tag}`)) })] });
24
+ const _nodes = useMemo(() => nodes.filter(x => x.under == tag), [nodes, tag]);
25
+ return _jsxs(Box, { className: `--treenode --treenode-${tag} flex cols`, children: [_jsxs(Box, { className: `--node --node-${tag} flex aic ${isRoot ? `--node-root` : ``} ${selected == tag ? ` --selected` : ``}`, children: [_jsx(Button, { skeleton: rest.skeleton, onClick: toggle, className: `--node-aro-btn`, disabled: _nodes.length == 0, children: icons?.arrowClose && icons?.arrowOpen ? _jsx(Icon, { skeleton: rest.skeleton, className: `--node-aro-icon`, name: _nodes.length == 0 ? icons?.arrowDisabled || icons?.arrowClose : isOpen ? icons?.arrowOpen : icons?.arrowClose })
26
+ : _nodes.length == 0 ? SVGIcons.chevronBottom : isOpen ? SVGIcons.chevronBottom : SVGIcons.chevronRight }), _jsxs(Button, { className: `--node-meta flex aic`, onClick: (e) => onSelect(tag), children: [((icons?.nodeOpen && icons?.nodeClose) || (isRoot && icons?.rootOpen && icons?.rootClose)) &&
27
+ _jsx(Icon, { skeleton: rest.skeleton, className: `--node-icon`, name: icon || (isOpen ?
28
+ isRoot ? icons?.rootOpen || icons.nodeOpen : icons.nodeOpen
29
+ : isRoot ? icons?.rootClose || icons?.nodeClose : icons?.nodeClose) }), _jsx(Text, { ...{ className: `--node-label` }, skeleton: rest.skeleton, children: label })] })] }), isOpen && _nodes.length > 0 && _jsx(Box, { className: `--sub-node tree-sub-node-${tag} flex cols`, children: _nodes.map(node => _jsx(TreeItem, { treeTag: treeTag, selected: selected, onSelect: onSelect, icons: icons, isRoot: false, expanded: node.expanded || false, meta: node, nodes: nodes }, `--node-${node.tag}`)) })] });
27
30
  });
31
+ TreeItem.displayName = `TreeItem`;
28
32
  export default TreeItem;
@@ -1,10 +1,12 @@
1
1
  import { ReactNode } from "react";
2
2
  import { BoxProps } from "../Box";
3
3
  export interface TreeNodeIcons {
4
+ rootOpen?: ReactNode;
5
+ rootClose?: ReactNode;
4
6
  nodeOpen?: ReactNode;
5
7
  nodeClose?: ReactNode;
6
- arrowOpen: ReactNode;
7
- arrowClose: ReactNode;
8
+ arrowOpen?: ReactNode;
9
+ arrowClose?: ReactNode;
8
10
  arrowDisabled?: ReactNode;
9
11
  }
10
12
  export type TreeViewProps = Omit<BoxProps, `tag`> & {
@@ -31,6 +33,8 @@ export type TreeItemProps = BoxProps & {
31
33
  treeTag: string;
32
34
  meta: TreeNode;
33
35
  nodes: TreeNode[];
36
+ isRoot: boolean;
37
+ expanded: boolean;
34
38
  onSelect: (tag: string) => void;
35
39
  selected?: String;
36
40
  icons?: TreeNodeIcons;
@@ -63,7 +63,8 @@ export declare const formatSize: (bytes: number | string) => string;
63
63
  export declare const copyToClipboard: (text: string) => Promise<unknown>;
64
64
  export declare const natsort: (options?: sortOptions) => (a: string | number, b: string | number) => number;
65
65
  export declare const bindKey: (key: KeyCode, fun: () => void, element?: HTMLElement) => void;
66
- export declare const camelCase: (str: string) => string;
66
+ export declare const camelCase: (str: string, ucf?: boolean) => string;
67
+ export declare const camelCaseToDash: (str: string) => string;
67
68
  export declare const pluralize: (word: string, count: number) => string;
68
69
  export declare const addPropsToChildren: (children: ReactNode, conditions: (child: ReactElement<any>) => boolean, newProps: object) => ReactNode;
69
70
  export declare const getPositionAroundElement: (x: number, y: number, distance: number, childCount: number) => {
@@ -468,15 +468,16 @@ export const bindKey = (key, fun, element) => {
468
468
  };
469
469
  (element || document.documentElement).addEventListener('keydown', handleKeydown);
470
470
  };
471
- export const camelCase = (str) => {
471
+ export const camelCase = (str, ucf = false) => {
472
472
  return str
473
473
  .toLowerCase()
474
474
  .split(/[^a-zA-Z0-9]+/) // Split by any non-alphanumeric character
475
475
  .map((word, index) => index === 0
476
- ? word
477
- : word.charAt(0).toUpperCase() + word.slice(1))
476
+ ? ucf ? ucfirst(word) : word
477
+ : ucfirst(word))
478
478
  .join('');
479
479
  };
480
+ export const camelCaseToDash = (str) => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
480
481
  export const pluralize = (word, count) => `${word}${count !== 1 ? 's' : ''}`;
481
482
  export const addPropsToChildren = (children, conditions, newProps) => {
482
483
  return Children.map(children, (child) => {
@@ -3,19 +3,18 @@ export { default as useBase } from './useBase';
3
3
  export { default as useCalendar } from './useCalendar';
4
4
  export { useColorScheme } from './useColorScheme';
5
5
  export { default as useContextMenu } from './useContextMenu';
6
- export { type IDBOptions, type IDBSchema, default as useDB } from './useDB';
6
+ export { default as useDB, type IDBOptions, type IDBSchema } from './useDB';
7
7
  export { default as useDebounce } from './useDebounce';
8
8
  export { default as useDevice } from './useDevice';
9
9
  export { default as useDimensions } from './useDimensions';
10
- export { default as useDrag } from './useDrag';
11
- export { type DragOptions } from './useDrag';
10
+ export { default as useDrag, type DragOptions } from './useDrag';
12
11
  export { default as useImage } from './useImage';
13
12
  export { default as useIntersectionObserver } from './useIntersectionObserver';
14
13
  export { default as useKeyBind } from './useKeyBind';
15
14
  /**
16
15
  * @deprecated use useDelayed hook instead
17
16
  */
18
- export { default as useMounted } from './useMounted';
19
- export { default as useDelayed } from './useMounted';
17
+ export { default as useMounted } from './useDelayed';
18
+ export { default as useDelayed } from './useDelayed';
20
19
  export { default as useNetworkStatus } from './useNetworkStatus';
21
20
  export { default as useResizeObserver } from './useResizeObserver';
@@ -14,8 +14,8 @@ export { default as useKeyBind } from './useKeyBind';
14
14
  /**
15
15
  * @deprecated use useDelayed hook instead
16
16
  */
17
- export { default as useMounted } from './useMounted';
18
- export { default as useDelayed } from './useMounted';
17
+ export { default as useMounted } from './useDelayed';
18
+ export { default as useDelayed } from './useDelayed';
19
19
  export { default as useNetworkStatus } from './useNetworkStatus';
20
20
  export { default as useResizeObserver } from './useResizeObserver';
21
21
  // export { default as useDomSelector } from './useDomSelector';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Custom hook that sets a mounted state to true after a specified delay.
3
+ *
4
+ * @param {number} [delay=100] - The delay in milliseconds before setting the mounted state to true.
5
+ * @returns {boolean} - The mounted state.
6
+ *
7
+ * @example
8
+ * const isMounted = useMounted(200);
9
+ *
10
+ * useEffect(() => {
11
+ * if (isMounted) {
12
+ * // Component is mounted after 200ms
13
+ * }
14
+ * }, [isMounted]);
15
+ */
16
+ declare const useMounted: (delay?: number) => boolean;
17
+ export default useMounted;
@@ -0,0 +1,25 @@
1
+ import { useState, useEffect } from 'react';
2
+ /**
3
+ * Custom hook that sets a mounted state to true after a specified delay.
4
+ *
5
+ * @param {number} [delay=100] - The delay in milliseconds before setting the mounted state to true.
6
+ * @returns {boolean} - The mounted state.
7
+ *
8
+ * @example
9
+ * const isMounted = useMounted(200);
10
+ *
11
+ * useEffect(() => {
12
+ * if (isMounted) {
13
+ * // Component is mounted after 200ms
14
+ * }
15
+ * }, [isMounted]);
16
+ */
17
+ const useMounted = (delay = 100) => {
18
+ const [mounted, setMounted] = useState(false);
19
+ useEffect(() => {
20
+ const timer = setTimeout(() => setMounted(true), delay);
21
+ return () => clearTimeout(timer); // Cleanup the timer on unmount
22
+ }, [delay]);
23
+ return mounted;
24
+ };
25
+ export default useMounted;
package/dist/cjs/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' '); };
1
2
  export * from "./comps";
2
3
  export { withCSS as css } from "./funs";
3
4
  export * from "./funs";