@koine/react 1.0.14 → 1.0.15

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 (197) hide show
  1. package/Details/Details.d.ts +6 -12
  2. package/hooks/useScrollPosition.d.ts +1 -1
  3. package/node/Alert/Alert.js +14 -0
  4. package/node/Alert/index.js +4 -0
  5. package/node/Animations/Reveal.js +21 -0
  6. package/node/Animations/Underline.js +8 -0
  7. package/node/Animations/index.js +6 -0
  8. package/node/Animations/useReveal.js +75 -0
  9. package/node/Autocomplete/AutocompleteDownshift.js +161 -0
  10. package/node/Autocomplete/AutocompleteDownshiftMultiselect.js +356 -0
  11. package/node/Autocomplete/AutocompleteMui.js +180 -0
  12. package/node/Autocomplete/AutocompleteReach.js +115 -0
  13. package/node/Autocomplete/components.js +37 -0
  14. package/node/Autocomplete/helpers.js +32 -0
  15. package/node/Autocomplete/index.js +7 -0
  16. package/node/Bg/BgColor.js +25 -0
  17. package/node/Bg/BgPhoto.js +20 -0
  18. package/node/Bg/BgSvg.js +16 -0
  19. package/node/Bg/index.js +6 -0
  20. package/node/Breadcrumbs/Breadcrumbs.js +31 -0
  21. package/node/Breadcrumbs/index.js +4 -0
  22. package/node/Buttons/Button.js +17 -0
  23. package/node/Buttons/ButtonComposite.js +32 -0
  24. package/node/Buttons/ButtonFab.js +9 -0
  25. package/node/Buttons/ButtonLink.js +15 -0
  26. package/node/Buttons/IconButton.js +10 -0
  27. package/node/Buttons/index.js +8 -0
  28. package/node/Calendar/CalendarDaygridCell.js +61 -0
  29. package/node/Calendar/CalendarDaygridNav.js +28 -0
  30. package/node/Calendar/CalendarDaygridTable.js +61 -0
  31. package/node/Calendar/CalendarLegend.js +20 -0
  32. package/node/Calendar/calendar-api-google.js +131 -0
  33. package/node/Calendar/index.js +9 -0
  34. package/node/Calendar/types.js +2 -0
  35. package/node/Calendar/useCalendar.js +187 -0
  36. package/node/Calendar/utils.js +215 -0
  37. package/node/Carousel/Carousel.js +381 -0
  38. package/node/Carousel/CarouselCss.js +27 -0
  39. package/node/Carousel/index.js +4 -0
  40. package/node/Collapsable/Collapsable.js +4 -0
  41. package/node/Collapsable/CollapsableReach.js +253 -0
  42. package/node/Collapsable/index.js +5 -0
  43. package/node/Debug/Debug.js +13 -0
  44. package/node/Debug/index.js +4 -0
  45. package/node/Details/Details.js +67 -0
  46. package/node/Details/index.js +4 -0
  47. package/node/Dialog/DialogMui.js +83 -0
  48. package/node/Dialog/css/bare.js +24 -0
  49. package/node/Dialog/index.js +5 -0
  50. package/node/Dialog/m/bare.js +55 -0
  51. package/node/Dialog/m/basic.js +35 -0
  52. package/node/Dialog/m/index.js +8 -0
  53. package/node/Dialog/sc/bare.js +46 -0
  54. package/node/Dialog/sc/framer.js +19 -0
  55. package/node/Dialog/sc/framerMaterial.js +19 -0
  56. package/node/Dialog/sc/material.js +24 -0
  57. package/node/Dialog/tw/bare.js +45 -0
  58. package/node/Dialog/tw/elegant.js +23 -0
  59. package/node/Dialog/tw/framer.js +19 -0
  60. package/node/Dialog/tw/framerMaterial.js +19 -0
  61. package/node/Dialog/tw/material.js +23 -0
  62. package/node/Editor/Editor--tiptap.js +31 -0
  63. package/node/Editor/components.js +15 -0
  64. package/node/Editor/index.js +4 -0
  65. package/node/Favicon/FaviconTags.js +19 -0
  66. package/node/Favicon/index.js +4 -0
  67. package/node/Form/Form.js +65 -0
  68. package/node/Form/index.js +4 -0
  69. package/node/Form/sc/bare.js +23 -0
  70. package/node/Forms/Checkbox/Checkbox.js +21 -0
  71. package/node/Forms/Checkbox/index.js +4 -0
  72. package/node/Forms/Feedback/Feedback.js +13 -0
  73. package/node/Forms/Feedback/index.js +4 -0
  74. package/node/Forms/Field/Field.js +52 -0
  75. package/node/Forms/Field/FieldControl.js +51 -0
  76. package/node/Forms/Field/FieldHint.js +7 -0
  77. package/node/Forms/Field/index.js +5 -0
  78. package/node/Forms/Input/Input.js +20 -0
  79. package/node/Forms/Input/index.js +4 -0
  80. package/node/Forms/InputGroup/InputGroup.js +19 -0
  81. package/node/Forms/InputGroup/index.js +4 -0
  82. package/node/Forms/Label/Label.js +9 -0
  83. package/node/Forms/Label/index.js +4 -0
  84. package/node/Forms/Password/Password.js +20 -0
  85. package/node/Forms/Password/index.js +4 -0
  86. package/node/Forms/Radio/Radio.js +28 -0
  87. package/node/Forms/Radio/index.js +4 -0
  88. package/node/Forms/Switch/Switch.js +23 -0
  89. package/node/Forms/Switch/index.js +4 -0
  90. package/node/Forms/Textarea/Textarea.js +15 -0
  91. package/node/Forms/Textarea/TextareaRich.js +31 -0
  92. package/node/Forms/Textarea/index.js +5 -0
  93. package/node/Forms/Toggle/Toggle.js +37 -0
  94. package/node/Forms/Toggle/index.js +4 -0
  95. package/node/Forms/Toggle/useToggle.js +149 -0
  96. package/node/Forms/antispam.js +61 -0
  97. package/node/Forms/helpers.js +52 -0
  98. package/node/Forms/index.js +19 -0
  99. package/node/Forms/styles.js +32 -0
  100. package/node/Gauge/Gauge.js +106 -0
  101. package/node/Grid/Grid.js +56 -0
  102. package/node/Grid/index.js +4 -0
  103. package/node/Hamburger/Hamburger.js +56 -0
  104. package/node/Hamburger/index.js +4 -0
  105. package/node/Header/index.js +4 -0
  106. package/node/Header/useHeader.js +34 -0
  107. package/node/Hidden/Hidden.js +13 -0
  108. package/node/Hidden/index.js +4 -0
  109. package/node/Img/index.js +4 -0
  110. package/node/Img/sc/bare.js +42 -0
  111. package/node/Img/types.js +2 -0
  112. package/node/Link/Link.js +7 -0
  113. package/node/Link/LinkBlank.js +21 -0
  114. package/node/Link/index.js +5 -0
  115. package/node/Menu/Menu.js +7 -0
  116. package/node/Menu/index.js +4 -0
  117. package/node/MenuItem/MenuItem.js +7 -0
  118. package/node/MenuItem/index.js +4 -0
  119. package/node/Meta/Meta.js +9 -0
  120. package/node/Meta/index.js +4 -0
  121. package/node/NoJs/NoJs.js +10 -0
  122. package/node/NoJs/index.js +4 -0
  123. package/node/Pagination/PaginationNav.js +65 -0
  124. package/node/Pagination/PaginationResults.js +15 -0
  125. package/node/Pagination/index.js +5 -0
  126. package/node/Pill/Pill.js +10 -0
  127. package/node/Pill/index.js +4 -0
  128. package/node/Progress/ProgressCircular.js +19 -0
  129. package/node/Progress/ProgressLinear.js +28 -0
  130. package/node/Progress/ProgressOverlay.js +28 -0
  131. package/node/Progress/index.js +6 -0
  132. package/node/Rating/Rating.js +76 -0
  133. package/node/Rating/index.js +57 -0
  134. package/node/Select/SelectDownshift.js +41 -0
  135. package/node/Select/components.js +15 -0
  136. package/node/Select/index.js +7 -0
  137. package/node/Sidebar/Sidebar.js +27 -0
  138. package/node/Sidebar/index.js +4 -0
  139. package/node/Spacing/Spacing.js +49 -0
  140. package/node/Spacing/index.js +4 -0
  141. package/node/Sticky/Sticky.js +222 -0
  142. package/node/Sticky/StickyCss.js +10 -0
  143. package/node/Sticky/index.js +4 -0
  144. package/node/Tabs/TabsMui.js +49 -0
  145. package/node/Tabs/index.js +4 -0
  146. package/node/Tabs/sc/bare.js +87 -0
  147. package/node/Tabs/tw/bare.js +20 -0
  148. package/node/Tabs/tw/material.js +21 -0
  149. package/node/Tabs/useTabs.js +48 -0
  150. package/node/Typography/CopyPasteVisible.js +7 -0
  151. package/node/Typography/Native.js +17 -0
  152. package/node/Typography/ReadMore.js +47 -0
  153. package/node/Typography/TextLoop.js +51 -0
  154. package/node/Typography/TypeStairs.js +53 -0
  155. package/node/Typography/index.js +8 -0
  156. package/node/css/index.js +36 -0
  157. package/node/helpers/classed.js +72 -0
  158. package/node/helpers/extend-component.js +16 -0
  159. package/node/helpers/index.js +5 -0
  160. package/node/hooks/index.js +18 -0
  161. package/node/hooks/types.js +2 -0
  162. package/node/hooks/useAsyncFn.js +40 -0
  163. package/node/hooks/useDateLocale.js +42 -0
  164. package/node/hooks/useEffectOnce.js +12 -0
  165. package/node/hooks/useFirstMountState.js +16 -0
  166. package/node/hooks/useFocus.js +15 -0
  167. package/node/hooks/useId.js +12 -0
  168. package/node/hooks/useIsomorphicLayoutEffect.js +11 -0
  169. package/node/hooks/useMount.js +13 -0
  170. package/node/hooks/useMountedState.js +19 -0
  171. package/node/hooks/usePrevious.js +12 -0
  172. package/node/hooks/useScrollPosition.js +84 -0
  173. package/node/hooks/useScrollTo.js +25 -0
  174. package/node/hooks/useTraceUpdate.js +25 -0
  175. package/node/hooks/useUpdateEffect.js +18 -0
  176. package/node/hooks/useWindowSize.js +17 -0
  177. package/node/index.js +8 -0
  178. package/node/m/MotionProvider.js +43 -0
  179. package/node/m/index.js +9 -0
  180. package/node/m/lite.js +4 -0
  181. package/node/m/max.js +4 -0
  182. package/node/sc/index.js +37 -0
  183. package/node/scm/index.js +36 -0
  184. package/node/shared/index.js +11 -0
  185. package/node/styles/Body.js +16 -0
  186. package/node/styles/Global.js +21 -0
  187. package/node/styles/index.js +10 -0
  188. package/node/styles/media.js +160 -0
  189. package/node/styles/spacing.js +52 -0
  190. package/node/styles/styled.js +17 -0
  191. package/node/styles/theme--vanilla.js +61 -0
  192. package/node/styles/theme.js +45 -0
  193. package/node/tw/index.js +36 -0
  194. package/node/twm/index.js +36 -0
  195. package/node/types.js +2 -0
  196. package/package.json +3 -3
  197. package/styles/theme--vanilla.d.ts +1 -1
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sticky = void 0;
4
+ exports.Sticky = null;
5
+ // import {
6
+ // Ref,
7
+ // CSSProperties,
8
+ // useState,
9
+ // useCallback,
10
+ // useEffect,
11
+ // useRef,
12
+ // } from "react";
13
+ // /**
14
+ // * Get current coordinates `left` and `top` of specific element.
15
+ // */
16
+ // const offsetRelative = (element: HTMLElement) => {
17
+ // var result = { l: 0, t: 0 };
18
+ // do {
19
+ // let offsetTop = element.offsetTop;
20
+ // let offsetLeft = element.offsetLeft;
21
+ // if (!isNaN(offsetTop)) result.t += offsetTop;
22
+ // if (!isNaN(offsetLeft)) result.l += offsetLeft;
23
+ // // @ts-expect-error just rething everyhting in this file
24
+ // element =
25
+ // "BODY" === element.tagName ? element.parentElement : element.offsetParent;
26
+ // } while (element);
27
+ // return result;
28
+ // };
29
+ // export type StickyElementProps = {
30
+ // ref: Ref<HTMLDivElement>;
31
+ // sticky?: boolean;
32
+ // style: CSSProperties;
33
+ // };
34
+ // /**
35
+ // * - `0`: "STATIC": Static position as nothing happened
36
+ // * - `1`: "VIEWPORT-TOP": Sticked to the top screen edge
37
+ // * - `2`: "VIEWPORT-BOTTOM": Sticked to the bottom screen edge
38
+ // * - `4`: "VIEWPORT-UNBOTTOM": ? Scrolling in the middle of the element, neither sticked nor static
39
+ // * - `3`: "CONTAINER-BOTTOM": ?
40
+ // */
41
+ // export type StickyStatus = 0 | 1 | 2 | 3;
42
+ // type DimensionsBasic = [
43
+ // /** containerTop */
44
+ // number,
45
+ // /** containerHeight */
46
+ // number,
47
+ // /** containerBottom */
48
+ // number,
49
+ // /** elementHeight */
50
+ // number,
51
+ // /** elementWidth */
52
+ // number,
53
+ // /** viewportHeight */
54
+ // number,
55
+ // /** maxTranslateY */
56
+ // number
57
+ // ];
58
+ // type DimensionsOnScroll = [
59
+ // /** elementLeft */
60
+ // number,
61
+ // /** viewportTop */
62
+ // number,
63
+ // /** viewportBottom */
64
+ // number,
65
+ // /** viewportLeft */
66
+ // number,
67
+ // /** topSpacing */
68
+ // number,
69
+ // /** bottomSpacing */
70
+ // number
71
+ // /** translateY */
72
+ // // number,
73
+ // /** lastTopSpacing */
74
+ // // number,
75
+ // /** lastBottomSpacing */
76
+ // // number,
77
+ // /** lastViewportTop */
78
+ // // number,
79
+ // ];
80
+ // type Dimensions = DimensionsBasic & DimensionsOnScroll;
81
+ // const getDimensionsBasic = (container: HTMLElement, inner: HTMLElement) => {
82
+ // const containerTop = offsetRelative(container).t;
83
+ // const containerHeight = container.clientHeight;
84
+ // const containerBottom = containerTop + containerHeight;
85
+ // const elementHeight = inner.offsetHeight;
86
+ // const elementWidth = inner.offsetWidth;
87
+ // const viewportHeight = window.innerHeight;
88
+ // const maxTranslateY = containerHeight - elementHeight;
89
+ // return [
90
+ // containerTop,
91
+ // containerHeight,
92
+ // containerBottom,
93
+ // elementHeight,
94
+ // elementWidth,
95
+ // viewportHeight,
96
+ // maxTranslateY,
97
+ // ] as DimensionsBasic;
98
+ // };
99
+ // const getDimensionsOnScroll = (
100
+ // wrapper: HTMLElement,
101
+ // container: HTMLElement,
102
+ // inner: HTMLElement
103
+ // ) => {
104
+ // const elementLeft = offsetRelative(wrapper).l;
105
+ // const viewportTop =
106
+ // document.documentElement.scrollTop || document.body.scrollTop;
107
+ // const viewportBottom = viewportTop + window.innerHeight;
108
+ // const viewportLeft =
109
+ // document.documentElement.scrollLeft || document.body.scrollLeft;
110
+ // const topSpacing = 0; // TODO: make it a prop?
111
+ // const bottomSpacing = 0; // TODO: make it a prop?
112
+ // // const lastTopSpacing = topSpacing;
113
+ // // const lastBottomSpacing = bottomSpacing;
114
+ // return [
115
+ // elementLeft,
116
+ // viewportTop,
117
+ // viewportBottom,
118
+ // viewportLeft,
119
+ // topSpacing,
120
+ // bottomSpacing,
121
+ // ] as DimensionsOnScroll;
122
+ // };
123
+ // // const getTranslateYonScroll = (dimensions: DimensionsOnScroll, status: StickyStatus) => {
124
+ // // if (status === 1) {
125
+ // // // Adjust translate Y in the case decrease top spacing value.
126
+ // // if (dimensions[5] < dims.lastTopSpacing) {
127
+ // // dims.translateY += dims.lastTopSpacing - dims.topSpacing;
128
+ // // this._reStyle = true;
129
+ // // }
130
+ // // } else if (status === 2) {
131
+ // // // Adjust translate Y in the case decrease bottom spacing value.
132
+ // // if (dims.bottomSpacing < dims.lastBottomSpacing) {
133
+ // // dims.translateY += dims.lastBottomSpacing - dims.bottomSpacing;
134
+ // // this._reStyle = true;
135
+ // // }
136
+ // // }
137
+ // // }
138
+ // export type StickyProps = {
139
+ // /** @default "div" */
140
+ // Wrapper?: FC<StickyElementProps>;
141
+ // /** @default "div" */
142
+ // Inner?: FC<StickyElementProps>;
143
+ // top: number;
144
+ // };
145
+ // export const Sticky: FC<StickyProps> = ({
146
+ // Wrapper = "div",
147
+ // Inner = "div",
148
+ // children,
149
+ // top,
150
+ // ...props
151
+ // }) => {
152
+ // const [sticky, setSticky] = useState(false);
153
+ // const [shouldRestyle, setShouldRestyle] = useState<boolean>();
154
+ // const stickyStatus = useRef<StickyStatus>(0);
155
+ // const [dimensionsBasic, setDimensionsBasic] = useState<DimensionsBasic>();
156
+ // const [dimensionsOnScroll, setDimensionsOnScroll] =
157
+ // useState<DimensionsOnScroll>();
158
+ // const [translateY, setTranslateY] = useState<number>(0);
159
+ // const [styleWrapper, setStyleWrapper] = useState({});
160
+ // const [styleInner, setStyleInner] = useState({});
161
+ // const [innerWidth, setInnerWidth] = useState<string>();
162
+ // const wrapperRef = useRef<HTMLDivElement>(null);
163
+ // const innerRef = useRef<HTMLDivElement>(null);
164
+ // const handleScroll = useCallback(() => {
165
+ // const wrapper = wrapperRef?.current;
166
+ // const container = wrapper?.parentElement || null;
167
+ // const inner = innerRef?.current;
168
+ // if (wrapper && inner && container) {
169
+ // const dimensions = getDimensionsOnScroll(wrapper, container, inner);
170
+ // setDimensionsOnScroll(dimensions);
171
+ // }
172
+ // }, []);
173
+ // const handleResize = useCallback(() => {
174
+ // const container = wrapperRef?.current?.parentElement || null;
175
+ // const inner = innerRef?.current;
176
+ // if (inner && container) {
177
+ // setDimensionsBasic(getDimensionsBasic(container, inner));
178
+ // // if (innerRef?.current) {
179
+ // // setInnerWidth(window.getComputedStyle(innerRef.current).width);
180
+ // // }
181
+ // // setSticky(wrapperRef.current.getBoundingClientRect().top <= top);
182
+ // }
183
+ // }, []);
184
+ // useEffect(() => {
185
+ // const container = wrapperRef?.current?.parentElement || null;
186
+ // const inner = innerRef?.current;
187
+ // if (inner && container) {
188
+ // setDimensionsBasic(getDimensionsBasic(container, inner));
189
+ // }
190
+ // window.addEventListener("scroll", handleScroll, { passive: true });
191
+ // window.addEventListener("resize", handleResize, { passive: true });
192
+ // return () => {
193
+ // window.removeEventListener("scroll", () => handleScroll);
194
+ // window.removeEventListener("resize", () => handleResize);
195
+ // };
196
+ // }, [wrapperRef, innerRef, handleScroll, handleResize]);
197
+ // // useEffect(() => {
198
+ // // if (sticky) {
199
+ // // setStyleInner({
200
+ // // position: "fixed",
201
+ // // zIndex: 1,
202
+ // // top,
203
+ // // width: innerWidth,
204
+ // // });
205
+ // // } else {
206
+ // // setStyleInner({});
207
+ // // }
208
+ // // }, [sticky, top, innerWidth]);
209
+ // return (
210
+ // <Wrapper
211
+ // ref={wrapperRef}
212
+ // sticky={Wrapper === "div" ? undefined : sticky}
213
+ // style={{
214
+ // position: "relative",
215
+ // }}
216
+ // >
217
+ // <Inner ref={innerRef} style={styleInner}>
218
+ // {children}
219
+ // </Inner>
220
+ // </Wrapper>
221
+ // );
222
+ // };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StickyCss = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var StickyCss = function (_a) {
7
+ var top = _a.top, props = tslib_1.__rest(_a, ["top"]);
8
+ return (0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ style: { position: "sticky", top: 100 } }, props));
9
+ };
10
+ exports.StickyCss = StickyCss;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./StickyCss"), exports);
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineTabs = exports.Tab = exports.Panel = exports.Indicator = exports.List = exports.Root = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var react_1 = require("react");
7
+ var TabsUnstyled_1 = tslib_1.__importDefault(require("@mui/base/TabsUnstyled"));
8
+ var TabsListUnstyled_1 = tslib_1.__importDefault(require("@mui/base/TabsListUnstyled"));
9
+ var TabUnstyled_1 = tslib_1.__importStar(require("@mui/base/TabUnstyled"));
10
+ var TabPanelUnstyled_1 = tslib_1.__importDefault(require("@mui/base/TabPanelUnstyled"));
11
+ var helpers_1 = require("../helpers");
12
+ exports.Root = TabsUnstyled_1.default;
13
+ exports.List = TabsListUnstyled_1.default;
14
+ // export const Tab = TabUnstyled as unknown as Props["Tab"];
15
+ exports.Indicator = "span";
16
+ exports.Panel = TabPanelUnstyled_1.default;
17
+ exports.Tab = (0, react_1.forwardRef)(function Tab(_a, ref) {
18
+ var children = _a.children, component = _a.component, componentsProps = _a.componentsProps, components = _a.components, Indicator = _a.Indicator, props = tslib_1.__rest(_a, ["children", "component", "componentsProps", "components", "Indicator"]);
19
+ var _b = (0, TabUnstyled_1.useTab)(tslib_1.__assign(tslib_1.__assign({}, props), { ref: ref })), active = _b.active, disabled = _b.disabled, selected = _b.selected;
20
+ var indicatorProps = { active: active, disabled: disabled, selected: selected };
21
+ return ((0, jsx_runtime_1.jsxs)(TabUnstyled_1.default /* ref={ref} */, tslib_1.__assign({}, props, { children: [children, Indicator && (0, jsx_runtime_1.jsx)(Indicator, tslib_1.__assign({}, indicatorProps))] })));
22
+ });
23
+ /**
24
+ *
25
+ * Main differences from [Mui Tabs](https://mui.com/material-ui/react-dialog):
26
+ *
27
+ * @resources
28
+ * - [WAI-ARIA](https://www.w3.org/TR/wai-aria-practices/#tabpanel)
29
+ * - [WAI-ARIA example](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html)
30
+ * - [[Proposal] New tags tabsection, tablist, tab, tabpanel](https://github.com/whatwg/html/issues/1809)
31
+ * - [Native <tab> elements](https://github.com/w3c/html/issues/1704)
32
+ * - [Let's talk about Native HTML Tabs](https://daverupert.com/2021/10/native-html-tabs/)
33
+ *
34
+ * @similar
35
+ * - [Zertz/react-headless-tabs](https://github.com/Zertz/react-headless-tabs)
36
+ *
37
+ * FIXME: it actually works even without forwardRef, check if we do need it
38
+ */
39
+ var TabsWithRef = (0, react_1.forwardRef)(function Tabs(_a, ref) {
40
+ var _Root = _a.Root, _List = _a.List, _Tab = _a.Tab, _Indicator = _a.Indicator, _Panel = _a.Panel, props = tslib_1.__rest(_a, ["Root", "List", "Tab", "Indicator", "Panel"]);
41
+ return (0, jsx_runtime_1.jsx)(exports.Root, tslib_1.__assign({}, props, { ref: ref }));
42
+ });
43
+ exports.KoineTabs = (0, helpers_1.extendComponent)(TabsWithRef, {
44
+ Root: exports.Root,
45
+ List: exports.List,
46
+ Tab: exports.Tab,
47
+ Indicator: exports.Indicator,
48
+ Panel: exports.Panel,
49
+ });
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./TabsMui"), exports);
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ // <reference types="@reach/utils/dist/declarations/src/polymorphic" />
3
+ /**
4
+ * @file
5
+ *
6
+ * Here we manage only "vertical" oriented tabs for now
7
+ */
8
+ // import styled from "styled-components";
9
+ // import {
10
+ // Tabs as _Tabs,
11
+ // TabList as _TabList,
12
+ // Tab as _Tab,
13
+ // TabPanels as _TabPanels,
14
+ // TabPanel as _TabPanel,
15
+ // TabProps as _TabProps,
16
+ // TabsProps as _TabsProps,
17
+ // useTabsContext,
18
+ // } from "@reach/tabs";
19
+ // import { min } from "../../styles/media";
20
+ // import { UnderlineSkewed } from "../../Animations/Underline";
21
+ // import { btnStyleReset } from "../../Buttons/Button";
22
+ // export const Tabs = styled(_Tabs)<TabsProps>`
23
+ // ${min.sm} {
24
+ // display: flex;
25
+ // ${(p) => p.$vertical && "flex-direction: column;"}
26
+ // }
27
+ // `;
28
+ // export type TabsProps = React.PropsWithChildren<_TabsProps> & {
29
+ // $vertical?: boolean;
30
+ // };
31
+ // export const TabList = styled(_TabList)`
32
+ // display: flex;
33
+ // flex-direction: column;
34
+ // ${min.sm} {
35
+ // border-right: 1px solid var(--grey800);
36
+ // }
37
+ // `;
38
+ // export const TabWrap = styled(_Tab)<TabProps & TabStyledProps>`
39
+ // ${btnStyleReset}
40
+ // position: relative;
41
+ // justify-content: flex-end;
42
+ // padding: 0.7em;
43
+ // margin-bottom: 1em;
44
+ // font-weight: bold;
45
+ // color: ${(p) => (p.$active ? "var(--accent200)" : "var(--grey300)")};
46
+ // ${min.sm} {
47
+ // padding-right: var(--gutter-half);
48
+ // }
49
+ // &:hover {
50
+ // color: ${(p) => (p.$active ? "var(--accent200)" : "var(--accent300)")};
51
+ // }
52
+ // `;
53
+ // export const TabText = styled.span<TabStyledProps>`
54
+ // position: relative;
55
+ // z-index: 1;
56
+ // `;
57
+ // export const TabUnderline = styled(UnderlineSkewed)<TabStyledProps>``;
58
+ // export type TabStyledProps = {
59
+ // $active: boolean;
60
+ // $focused: boolean;
61
+ // };
62
+ // export type TabProps = _TabProps & {
63
+ // idx: number;
64
+ // };
65
+ // export const Tab = ({ children, ...props }: TabProps) => {
66
+ // const { selectedIndex, focusedIndex } = useTabsContext();
67
+ // const styledProps = {
68
+ // $active: props.idx === selectedIndex,
69
+ // $focused: props.idx === focusedIndex,
70
+ // };
71
+ // return (
72
+ // <TabWrap {...props} {...styledProps}>
73
+ // {styledProps.$active && (
74
+ // <TabUnderline {...styledProps} layoutId="Tab-underline" />
75
+ // )}
76
+ // <TabText {...styledProps}>{children}</TabText>
77
+ // </TabWrap>
78
+ // );
79
+ // };
80
+ // export const TabPanels = styled(_TabPanels)`
81
+ // flex: 1;
82
+ // `;
83
+ // export const TabPanel = styled(_TabPanel)`
84
+ // ${min.sm} {
85
+ // padding-left: var(--gutter-half);
86
+ // }
87
+ // `;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineTabs = exports.Panel = exports.Indicator = exports.Tab = exports.List = exports.Root = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var helpers_1 = require("../../helpers");
6
+ // import type { ComponentsProps } from "../TabsMui";
7
+ var _ = tslib_1.__importStar(require("../TabsMui"));
8
+ exports.Root = (0, helpers_1.classed)(_.Root)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["< class=\"tabs"], ["< class=\"tabs"])));
9
+ exports.List = (0, helpers_1.classed)(_.List)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["< class=\"tabsList flex"], ["< class=\"tabsList flex"])));
10
+ exports.Tab = (0, helpers_1.classed)(_.Tab)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["< class=\"tabsTab inline-flex items-center justify-center [-webkit-tap-highlight-color:transparent] appearance-none select-none"], ["< class=\"tabsTab inline-flex items-center justify-center [-webkit-tap-highlight-color:transparent] appearance-none select-none"])));
11
+ exports.Indicator = (0, helpers_1.classed)(_.Indicator)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["< class=\"tabsIndicator"], ["< class=\"tabsIndicator"])));
12
+ exports.Panel = (0, helpers_1.classed)(_.Panel)(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["< class=\"tabsPanel"], ["< class=\"tabsPanel"])));
13
+ exports.KoineTabs = (0, helpers_1.extendComponent)(_.KoineTabs, {
14
+ Root: exports.Root,
15
+ List: exports.List,
16
+ Tab: exports.Tab,
17
+ Indicator: exports.Indicator,
18
+ Panel: exports.Panel,
19
+ });
20
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineTabs = exports.Panel = exports.Indicator = exports.Tab = exports.List = exports.Root = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var helpers_1 = require("../../helpers");
6
+ var bare_1 = require("./bare");
7
+ exports.Root = (0, helpers_1.classed)(bare_1.KoineTabs.Root)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["< class=\""], ["< class=\""])));
8
+ exports.List = (0, helpers_1.classed)(bare_1.KoineTabs.List)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["< class=\"border-b-gray-200 border-b border-solid"], ["< class=\"border-b-gray-200 border-b border-solid"])));
9
+ exports.Tab = (0, helpers_1.classed)(bare_1.KoineTabs.Tab)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["< class=\"flex-col relative py-3 px-4 uppercase"], ["< class=\"flex-col relative py-3 px-4 uppercase"]))); // ${p => p.selected ? "text-cyan-600" : ""}
10
+ exports.Indicator = (0, helpers_1.classed)(bare_1.KoineTabs.Indicator)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["< class=\"absolute bottom-0 w-full h-[2px] ", ""], ["< class=\"absolute bottom-0 w-full h-[2px] ", ""])), function (p) {
11
+ return p.selected ? "bg-current" : "";
12
+ });
13
+ exports.Panel = (0, helpers_1.classed)(bare_1.KoineTabs.Panel)(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["< class=\"tabsPanel"], ["< class=\"tabsPanel"])));
14
+ exports.KoineTabs = (0, helpers_1.extendComponent)(bare_1.KoineTabs, {
15
+ Root: exports.Root,
16
+ List: exports.List,
17
+ Tab: exports.Tab,
18
+ Indicator: exports.Indicator,
19
+ Panel: exports.Panel,
20
+ });
21
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTabs = void 0;
4
+ var react_1 = require("react");
5
+ var utils_1 = require("@mui/utils");
6
+ var useId_1 = require("../hooks/useId");
7
+ var useTabs = function (props) {
8
+ var valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, orientation = props.orientation, direction = props.direction, selectionFollowsFocus = props.selectionFollowsFocus;
9
+ var _a = (0, utils_1.unstable_useControlled)({
10
+ controlled: valueProp,
11
+ default: defaultValue,
12
+ name: "Tabs",
13
+ state: "value",
14
+ }), value = _a[0], setValue = _a[1];
15
+ var idPrefix = (0, useId_1.useId)();
16
+ var onSelected = (0, react_1.useCallback)(function (e, newValue) {
17
+ setValue(newValue);
18
+ if (onChange) {
19
+ onChange(e, newValue);
20
+ }
21
+ }, [onChange, setValue]);
22
+ var getRootProps = function () {
23
+ return {};
24
+ };
25
+ var tabsContextValue = (0, react_1.useMemo)(function () {
26
+ return {
27
+ idPrefix: idPrefix,
28
+ value: value,
29
+ onSelected: onSelected,
30
+ orientation: orientation,
31
+ direction: direction,
32
+ selectionFollowsFocus: selectionFollowsFocus,
33
+ };
34
+ }, [
35
+ idPrefix,
36
+ value,
37
+ onSelected,
38
+ orientation,
39
+ direction,
40
+ selectionFollowsFocus,
41
+ ]);
42
+ return {
43
+ getRootProps: getRootProps,
44
+ tabsContextValue: tabsContextValue,
45
+ };
46
+ };
47
+ exports.useTabs = useTabs;
48
+ exports.default = exports.useTabs;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CopyPasteVisible = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
6
+ exports.CopyPasteVisible = styled_components_1.default.span(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n color: transparent;\n opacity: 0;\n font-size: 0;\n"], ["\n color: transparent;\n opacity: 0;\n font-size: 0;\n"])));
7
+ var templateObject_1;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.P = exports.h4 = exports.h3 = exports.h2 = exports.h1 = exports.p = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
6
+ var media_1 = require("../styles/media");
7
+ exports.p = "\n margin: 0 0 1em 0;\n";
8
+ exports.h1 = "\n margin: 0 0 10px 0;\n font-size: 30px;\n font-weight: 800;\n line-height: var(--headingsLineHeight);\n ".concat(media_1.min.md, " {\n font-size: 50px;\n }\n");
9
+ exports.h2 = "\n margin: 0 0 1em 0;\n font-size: 24px;\n font-weight: 800;\n line-height: var(--headingsLineHeight);\n";
10
+ exports.h3 = "\n margin: 0 0 1em 0;\n font-size: 20px;\n font-weight: 600;\n line-height: var(--headingsLineHeight);\n";
11
+ exports.h4 = "\n margin: 0 0 1em 0;\n font-size: 13px;\n font-weight: 600;\n line-height: var(--headingsLineHeight);\n";
12
+ exports.P = styled_components_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.p);
13
+ exports.H1 = styled_components_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.h1);
14
+ exports.H2 = styled_components_1.default.div(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.h2);
15
+ exports.H3 = styled_components_1.default.div(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.h3);
16
+ exports.H4 = styled_components_1.default.div(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.h4);
17
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadMore = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var react_1 = require("react");
7
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
8
+ var framer_motion_1 = require("framer-motion");
9
+ // import { CgArrowsExpandDownRight as IconExpand } from "react-icons/cg";
10
+ var hooks_1 = require("../hooks");
11
+ var Root = styled_components_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject([""], [""])));
12
+ var Content = styled_components_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n & p:first-child {\n margin-top: 0;\n }\n"], ["\n & p:first-child {\n margin-top: 0;\n }\n"])));
13
+ var BtnWrap = styled_components_1.default.span(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n transition: transform 0.18s ease-in-out;\n text-align: right;\n transform: translateY(", ");\n opacity: ", ";\n"], ["\n display: flex;\n justify-content: flex-end;\n transition: transform 0.18s ease-in-out;\n text-align: right;\n transform: translateY(", ");\n opacity: ", ";\n"])), function (p) { return (p.$expanded ? "0" : "-100%"); }, function (p) { return (p.$expanded ? 0 : 1); });
14
+ var BtnFader = styled_components_1.default.div(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n width: 30%;\n transition: transform 0.18s ease-in-out;\n background: linear-gradient(45deg, transparent 50%, ", " 70%);\n"], ["\n width: 30%;\n transition: transform 0.18s ease-in-out;\n background: linear-gradient(45deg, transparent 50%, ", " 70%);\n"])), function (p) { return p.$bg; });
15
+ var Btn = styled_components_1.default.span(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n padding: 0 10px 0 10px;\n line-height: ", ";\n background: var(--bodyBg);\n color: var(--grey600);\n white-space: nowrap;\n font-size: ", "px;\n cursor: pointer;\n"], ["\n padding: 0 10px 0 10px;\n line-height: ", ";\n background: var(--bodyBg);\n color: var(--grey600);\n white-space: nowrap;\n font-size: ", "px;\n cursor: pointer;\n"])), function (p) { return (p.$lineHeight ? p.$lineHeight : "inherit"); }, function (p) { return p.$fontSize; });
16
+ var BtnIcon = styled_components_1.default.span(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n display: inline-block;\n margin: 0 0 0 4px;\n transition: transform 0.18s ease-in-out;\n ", ";\n font-size: ", "px;\n"], ["\n display: inline-block;\n margin: 0 0 0 4px;\n transition: transform 0.18s ease-in-out;\n ", ";\n font-size: ", "px;\n"])), function (p) { return (p.$expanded ? "transform: rotate(180deg);" : ""); }, function (p) { return p.$fontSize; });
17
+ var ReadMore = function (_a) {
18
+ var _b = _a.lines, lines = _b === void 0 ? 3 : _b, _c = _a.lineHeight, lineHeight = _c === void 0 ? 1.6 : _c, _d = _a.fontSize, fontSize = _d === void 0 ? 14 : _d, _e = _a.bg, bg = _e === void 0 ? "var(--bodyBg)" : _e, _f = _a.expand, expand = _f === void 0 ? "Expand" : _f, _g = _a.collapse, collapse = _g === void 0 ? "Collapse" : _g, props = tslib_1.__rest(_a, ["lines", "lineHeight", "fontSize", "bg", "expand", "collapse"]);
19
+ var defaultMaxHeight = lines * (lineHeight * fontSize);
20
+ var _h = (0, react_1.useState)(false), expanded = _h[0], setExpanded = _h[1];
21
+ var _j = (0, react_1.useState)(defaultMaxHeight), maxHeight = _j[0], setMaxHeight = _j[1];
22
+ var _k = (0, react_1.useState)(0), fullHeight = _k[0], setFullHeight = _k[1];
23
+ var _l = (0, react_1.useState)(false), exceeds = _l[0], setExceeds = _l[1];
24
+ var content = (0, react_1.useRef)(null);
25
+ var height = (0, framer_motion_1.useSpring)(defaultMaxHeight);
26
+ var styles = (0, react_1.useMemo)(function () { return (exceeds ? { height: height, overflow: "hidden" } : {}); }, [exceeds, height]);
27
+ var handleExpandClick = function () {
28
+ setExpanded(function (prevExpanded) { return !prevExpanded; });
29
+ };
30
+ (0, hooks_1.useIsomorphicLayoutEffect)(function () {
31
+ if (content.current) {
32
+ var elementHeight = content.current.offsetHeight;
33
+ var newExceeds = elementHeight > maxHeight;
34
+ if (!newExceeds) {
35
+ setMaxHeight(elementHeight);
36
+ }
37
+ setExceeds(newExceeds);
38
+ setFullHeight(elementHeight);
39
+ }
40
+ }, [content, maxHeight]);
41
+ (0, hooks_1.useIsomorphicLayoutEffect)(function () {
42
+ height.set(expanded ? fullHeight : maxHeight);
43
+ }, [expanded, height, fullHeight, maxHeight]);
44
+ return ((0, jsx_runtime_1.jsxs)(Root, { children: [(0, jsx_runtime_1.jsx)(framer_motion_1.m.div, tslib_1.__assign({ style: styles }, { children: (0, jsx_runtime_1.jsx)(Content, tslib_1.__assign({ ref: content }, props)) })), exceeds && ((0, jsx_runtime_1.jsxs)(BtnWrap, tslib_1.__assign({ "$expanded": expanded }, { children: [(0, jsx_runtime_1.jsx)(BtnFader, { "$bg": bg }), (0, jsx_runtime_1.jsxs)(Btn, tslib_1.__assign({ "$fontSize": fontSize, "$lineHeight": lineHeight, onClick: handleExpandClick, "aria-expanded": expanded, "aria-label": expanded ? collapse : expand }, { children: [expanded ? collapse : expand, (0, jsx_runtime_1.jsx)(BtnIcon, { "$expanded": expanded })] }))] })))] }));
45
+ };
46
+ exports.ReadMore = ReadMore;
47
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextLoop = exports.TextLoopPiece = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var react_1 = require("react");
7
+ var framer_motion_1 = require("framer-motion");
8
+ var TextLoopPiece = function (_a) {
9
+ var _b = _a.text, text = _b === void 0 ? "" : _b, _c = _a.style, style = _c === void 0 ? {} : _c, _d = _a.className, className = _d === void 0 ? "" : _d, _e = _a.direction, direction = _e === void 0 ? "up" : _e, _f = _a.inline, inline = _f === void 0 ? true : _f, _g = _a.noOverflow, noOverflow = _g === void 0 ? true : _g, _h = _a.delay, delay = _h === void 0 ? 400 : _h;
10
+ var placeholderRef = (0, react_1.useRef)(null);
11
+ var _j = (0, react_1.useState)({ data: "", key: "" }), content = _j[0], setContent = _j[1];
12
+ var _k = (0, react_1.useState)(inline ? 0 : "auto"), width = _k[0], setWidth = _k[1];
13
+ (0, react_1.useEffect)(function () {
14
+ var timeoutId = setTimeout(function () {
15
+ if (!placeholderRef.current)
16
+ return;
17
+ placeholderRef.current.innerHTML = text + "";
18
+ if (inline)
19
+ setWidth(placeholderRef.current.offsetWidth);
20
+ setContent({ data: text + "", key: new Date() + "" });
21
+ }, delay);
22
+ return function () { return clearTimeout(timeoutId); };
23
+ }, [text, delay, inline]);
24
+ return ((0, jsx_runtime_1.jsxs)("div", tslib_1.__assign({ className: className, style: tslib_1.__assign(tslib_1.__assign({}, style), { position: "relative", display: inline ? "inline-block" : "block", width: width, whiteSpace: inline ? "nowrap" : "normal" }) }, { children: [(0, jsx_runtime_1.jsx)("span", { ref: placeholderRef, style: { visibility: "hidden" } }), (0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ style: {
25
+ overflow: noOverflow ? "hidden" : "visible",
26
+ display: "block",
27
+ position: "absolute",
28
+ top: 0,
29
+ left: 0,
30
+ height: "100%",
31
+ width: "100%",
32
+ } }, { children: (0, jsx_runtime_1.jsx)(framer_motion_1.AnimatePresence, { children: (0, jsx_runtime_1.jsx)(framer_motion_1.m.div, tslib_1.__assign({ style: { position: "absolute" }, initial: {
33
+ opacity: 0,
34
+ y: direction === "down" ? "-100%" : "100%",
35
+ }, animate: { opacity: 1, y: 0 }, exit: {
36
+ opacity: 0,
37
+ y: direction === "down" ? "100%" : "-100%",
38
+ } }, { children: content.data }), content.key) }) }))] })));
39
+ };
40
+ exports.TextLoopPiece = TextLoopPiece;
41
+ var TextLoop = function (_a) {
42
+ var texts = _a.texts, _b = _a.interval, interval = _b === void 0 ? 3000 : _b, props = tslib_1.__rest(_a, ["texts", "interval"]);
43
+ var _c = (0, react_1.useState)(0), index = _c[0], setIndex = _c[1];
44
+ (0, react_1.useEffect)(function () {
45
+ var intervalId = setInterval(function () { return setIndex(function (index) { return index + 1; }); }, interval // every 3 seconds
46
+ );
47
+ return function () { return clearTimeout(intervalId); };
48
+ }, [interval]);
49
+ return (0, jsx_runtime_1.jsx)(exports.TextLoopPiece, tslib_1.__assign({}, props, { text: texts[index % texts.length] }));
50
+ };
51
+ exports.TextLoop = TextLoop;