@koine/react 1.0.13 → 1.0.16

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 +2 -1
  197. package/styles/theme--vanilla.d.ts +1 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteMenuItem = exports.AutocompleteMenu = exports.AutocompleteInputArrow = exports.AutocompleteInput = exports.AutocompleteInputWrap = exports.AutocompleteItemRemove = exports.AutocompleteItemLabel = exports.AutocompleteItem = exports.AutocompleteInner = exports.AutocompleteWrap = exports.AutocompleteLabel = exports.AutocompleteRoot = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
6
+ var Label_1 = require("../Forms/Label/Label");
7
+ var Input_1 = require("../Forms/Input/Input");
8
+ var components_1 = require("../Select/components");
9
+ var Menu_1 = require("../Menu/Menu");
10
+ var MenuItem_1 = require("../MenuItem/MenuItem");
11
+ var Buttons_1 = require("../Buttons");
12
+ var styles_1 = require("../Forms/styles");
13
+ var styled_1 = require("../styles/styled");
14
+ var AUTOCOMPLETE_ITEM_GUTTER = 3;
15
+ /**
16
+ * Space between one selected item and the other
17
+ */
18
+ var AUTOCOMPLETE_ITEM_SPACER = 6;
19
+ var AUTOCOMPLETE_ITEM_REMOVE_WIDTH = 20;
20
+ exports.AutocompleteRoot = styled_components_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
21
+ exports.AutocompleteLabel = (0, styled_components_1.default)(Label_1.Label)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject([""], [""])));
22
+ exports.AutocompleteWrap = (0, styled_components_1.default)(Input_1.InputWrap)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), styles_1.inputReset);
23
+ exports.AutocompleteInner = (0, styled_components_1.default)(Input_1.InputMain)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n display: inline-flex;\n flex-wrap: wrap;\n margin: -", "px;\n margin-right: 0;\n"], ["\n display: inline-flex;\n flex-wrap: wrap;\n margin: -", "px;\n margin-right: 0;\n"])), AUTOCOMPLETE_ITEM_SPACER);
24
+ exports.AutocompleteItem = styled_components_1.default.span(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n position: relative;\n display: inline-flex;\n margin: ", "px;\n max-width: calc(100% - 6px);\n user-select: none;\n align-items: center;\n padding: 0 ", "px 0 ", "px;\n font-size: 80%;\n background: var(--accent400);\n\n &:hover {\n background: var(--accent300);\n color: white;\n }\n\n &:focus {\n outline: 0px;\n background: var(--grey700);\n }\n"], ["\n position: relative;\n display: inline-flex;\n margin: ", "px;\n max-width: calc(100% - 6px);\n user-select: none;\n align-items: center;\n padding: 0 ", "px 0 ", "px;\n font-size: 80%;\n background: var(--accent400);\n\n &:hover {\n background: var(--accent300);\n color: white;\n }\n\n &:focus {\n outline: 0px;\n background: var(--grey700);\n }\n"])), AUTOCOMPLETE_ITEM_GUTTER, AUTOCOMPLETE_ITEM_REMOVE_WIDTH, AUTOCOMPLETE_ITEM_GUTTER);
25
+ exports.AutocompleteItemLabel = styled_components_1.default.span(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n padding: 0 ", "px;\n ", "\n"], ["\n padding: 0 ", "px;\n ", "\n"])), AUTOCOMPLETE_ITEM_GUTTER, styled_1.ellipsis);
26
+ exports.AutocompleteItemRemove = styled_components_1.default.span(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n ", "\n position: absolute;\n top: 0;\n right: 0;\n width: ", "px;\n border: 0;\n height: 100%;\n color: inherit;\n line-height: 1;\n"], ["\n ", "\n position: absolute;\n top: 0;\n right: 0;\n width: ", "px;\n border: 0;\n height: 100%;\n color: inherit;\n line-height: 1;\n"])), Buttons_1.btnStyleReset, AUTOCOMPLETE_ITEM_REMOVE_WIDTH);
27
+ exports.AutocompleteInputWrap = styled_components_1.default.div(templateObject_8 || (templateObject_8 = tslib_1.__makeTemplateObject(["\n display: flex;\n flex: 1;\n"], ["\n display: flex;\n flex: 1;\n"])));
28
+ exports.AutocompleteInput = styled_components_1.default.input(templateObject_9 || (templateObject_9 = tslib_1.__makeTemplateObject(["\n flex-grow: 1;\n width: 0;\n min-width: 30px;\n border: 0;\n padding: 0 ", "px;\n text-overflow: ellipsis;\n background: transparent;\n\n &:focus {\n outline: none;\n }\n"], ["\n flex-grow: 1;\n width: 0;\n min-width: 30px;\n border: 0;\n padding: 0 ", "px;\n text-overflow: ellipsis;\n background: transparent;\n\n &:focus {\n outline: none;\n }\n"])), AUTOCOMPLETE_ITEM_SPACER);
29
+ /**
30
+ * This cannot be a button otherwise on `Enter` the form would submit instead
31
+ * of opening the dropdown or adding the selection. There are too many events
32
+ * to prevent if we were using a standard HTML `<button>`
33
+ */
34
+ exports.AutocompleteInputArrow = (0, styled_components_1.default)(components_1.SelectArrow)(templateObject_10 || (templateObject_10 = tslib_1.__makeTemplateObject([""], [""])));
35
+ exports.AutocompleteMenu = (0, styled_components_1.default)(Menu_1.Menu)(templateObject_11 || (templateObject_11 = tslib_1.__makeTemplateObject([""], [""])));
36
+ exports.AutocompleteMenuItem = (0, styled_components_1.default)(MenuItem_1.MenuItem)(templateObject_12 || (templateObject_12 = tslib_1.__makeTemplateObject([""], [""])));
37
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normaliseAutocompleteValue = void 0;
4
+ var utils_1 = require("@koine/utils");
5
+ // export function normaliseAutocompleteValue(
6
+ // value?: AutocompleteValue,
7
+ // asArray?: true
8
+ // ): string[];
9
+ // export function normaliseAutocompleteValue(
10
+ // value?: AutocompleteValue,
11
+ // asArray?: false
12
+ // ): string;
13
+ // export function normaliseAutocompleteValue(
14
+ // value?: AutocompleteValue,
15
+ // asArray?: undefined
16
+ // ): string;
17
+ function normaliseAutocompleteValue(value, asArray) {
18
+ if (!value) {
19
+ return asArray ? [""] : "";
20
+ }
21
+ if ((0, utils_1.isString)(value)) {
22
+ return asArray ? [value] : value;
23
+ }
24
+ if ((0, utils_1.isArray)(value)) {
25
+ var values = value.map(function (valueItem) {
26
+ return (0, utils_1.isString)(valueItem) ? valueItem : valueItem.value;
27
+ });
28
+ return asArray ? values : values.join(",");
29
+ }
30
+ return asArray ? [value.value] : value.value;
31
+ }
32
+ exports.normaliseAutocompleteValue = normaliseAutocompleteValue;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Autocomplete = void 0;
4
+ var AutocompleteMui_1 = require("./AutocompleteMui");
5
+ Object.defineProperty(exports, "Autocomplete", { enumerable: true, get: function () { return AutocompleteMui_1.Autocomplete; } });
6
+ // export type { AutocompleteProps } from "./AutocompleteReach";
7
+ // export { Autocomplete } from "./AutocompleteReach";
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BgContainer = exports.BgColorSkewed = exports.BgColor = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
7
+ var styles_1 = require("../styles");
8
+ var Grid_1 = require("../Grid");
9
+ exports.BgColor = styled_components_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n background: ", ";\n"], ["\n background: ", ";\n"])), function (p) { return p.$bg; });
10
+ exports.BgColorSkewed = styled_components_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n position: relative;\n /* overflow: hidden; */\n\n &:before {\n z-index: -1;\n content: \"\";\n ", "\n }\n"], ["\n position: relative;\n /* overflow: hidden; */\n\n &:before {\n z-index: -1;\n content: \"\";\n ", "\n }\n"])), function (p) { return "\n ".concat(styles_1.overlay, "\n transform: ").concat(p.$transform, ";\n background: ").concat(p.$bg, ";\n "); });
11
+ var BgContainer = function (_a) {
12
+ var color = _a.color, _b = _a.skewY, skewY = _b === void 0 ? 0 : _b, _c = _a.rotate, rotate = _c === void 0 ? 0 : _c, _d = _a.scaleY, scaleY = _d === void 0 ? 1 : _d, // 0.85,
13
+ _e = _a.scaleX, // 0.85,
14
+ scaleX = _e === void 0 ? 1 : _e, // 4,
15
+ _f = _a.perspective, // 4,
16
+ perspective = _f === void 0 ? 0 : _f, //100,
17
+ containerProps = tslib_1.__rest(_a, ["color", "skewY", "rotate", "scaleY", "scaleX", "perspective"]);
18
+ var $transform = "";
19
+ if (skewY || rotate) {
20
+ $transform = "perspective(".concat(perspective, "vw) rotateY(").concat(rotate, "deg) skewY(").concat(skewY, "deg) scaleY(").concat(scaleY, ") scaleX(").concat(scaleX, ")");
21
+ }
22
+ return $transform ? ((0, jsx_runtime_1.jsx)(exports.BgColorSkewed, tslib_1.__assign({ "$bg": color, "$transform": $transform }, { children: (0, jsx_runtime_1.jsx)(Grid_1.Container, tslib_1.__assign({ style: { position: "relative" } }, containerProps)) }))) : ((0, jsx_runtime_1.jsx)(exports.BgColor, tslib_1.__assign({ "$bg": color }, { children: (0, jsx_runtime_1.jsx)(Grid_1.Container, tslib_1.__assign({}, containerProps)) })));
23
+ };
24
+ exports.BgContainer = BgContainer;
25
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BgPhoto = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
7
+ var Grid_1 = require("../Grid");
8
+ var Hidden_1 = require("../Hidden");
9
+ var BgPhotoWrap = (0, styled_components_1.default)(Hidden_1.Hidden)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n z-index: -10;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n background-repeat: no-repeat;\n background-position: top left;\n background-size: contain;\n filter: hue-rotate(-36deg);\n opacity: 0.8;\n"], ["\n z-index: -10;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n background-repeat: no-repeat;\n background-position: top left;\n background-size: contain;\n filter: hue-rotate(-36deg);\n opacity: 0.8;\n"])));
10
+ var BgPhotoMask = (0, styled_components_1.default)(Grid_1.Container)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n position: relative;\n min-height: 100%;\n\n &:before {\n content: \"\";\n position: absolute;\n top: 0;\n height: 100%;\n right: calc(100% - ", "px);\n width: ", ";\n background: linear-gradient(\n 90deg,\n rgba(var(--bodyBg-rgb, 0)) 0%,\n rgba(var(--bodyBg-rgb, 1)) 100%\n ),\n linear-gradient(\n 60deg,\n rgba(var(--bodyBg-rgb, 0)) 0%,\n rgba(var(--bodyBg-rgb, 1)) 70%\n );\n }\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0;\n height: 100%;\n left: ", "px;\n width: 100vw;\n background: var(--bodyBg);\n }\n"], ["\n position: relative;\n min-height: 100%;\n\n &:before {\n content: \"\";\n position: absolute;\n top: 0;\n height: 100%;\n right: calc(100% - ", "px);\n width: ", ";\n background: linear-gradient(\n 90deg,\n rgba(var(--bodyBg-rgb, 0)) 0%,\n rgba(var(--bodyBg-rgb, 1)) 100%\n ),\n linear-gradient(\n 60deg,\n rgba(var(--bodyBg-rgb, 0)) 0%,\n rgba(var(--bodyBg-rgb, 1)) 70%\n );\n }\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0;\n height: 100%;\n left: ", "px;\n width: 100vw;\n background: var(--bodyBg);\n }\n"])), function (p) { return p.$overlap + 2; }, function (p) {
11
+ var containerSizePx = p.theme.breakpoints[p.containerSize];
12
+ return "calc(((100vw - ".concat(containerSizePx, "px) / 2) + ").concat(p.$overlap + 2, "px)");
13
+ }, function (p) { return p.$overlap + 1; });
14
+ var BgPhoto = function (_a) {
15
+ var src = _a.src, _b = _a.containerSize, containerSize = _b === void 0 ? "xl" : _b, _c = _a.$overlap, $overlap = _c === void 0 ? 0 : _c;
16
+ var styledProps = { containerSize: containerSize, $overlap: $overlap };
17
+ return ((0, jsx_runtime_1.jsx)(BgPhotoWrap, tslib_1.__assign({ style: { backgroundImage: "url(".concat(src, ")") }, "$max": "xxl" }, { children: (0, jsx_runtime_1.jsx)(BgPhotoMask, tslib_1.__assign({ size: containerSize }, styledProps)) })));
18
+ };
19
+ exports.BgPhoto = BgPhoto;
20
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BgSvg = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
7
+ var Root = styled_components_1.default.svg(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n position: fixed;\n z-index: -2;\n bottom: 0;\n transform: rotate(180deg);\n opacity: 0.9;\n"], ["\n position: fixed;\n z-index: -2;\n bottom: 0;\n transform: rotate(180deg);\n opacity: 0.9;\n"])));
8
+ /**
9
+ * Centered triangle shape
10
+ */
11
+ var BgSvg = function (_a) {
12
+ var color = _a.color;
13
+ return ((0, jsx_runtime_1.jsx)(Root, tslib_1.__assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1200 120", preserveAspectRatio: "none" }, { children: (0, jsx_runtime_1.jsx)("path", { d: "M1200 0L0 0 598.97 114.72 1200 0z", fill: color }) })));
14
+ };
15
+ exports.BgSvg = BgSvg;
16
+ var templateObject_1;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./BgColor"), exports);
5
+ tslib_1.__exportStar(require("./BgPhoto"), exports);
6
+ tslib_1.__exportStar(require("./BgSvg"), exports);
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineBreadcrumbs = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var styled_components_1 = tslib_1.__importStar(require("styled-components"));
7
+ var framer_motion_1 = require("framer-motion");
8
+ var md_1 = require("react-icons/md");
9
+ var utils_1 = require("@koine/utils");
10
+ var media_1 = require("../styles/media");
11
+ var LINK_GUTTER_X = 10;
12
+ var Root = styled_components_1.default.nav(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n display: flex;\n position: relative;\n"], ["\n display: flex;\n position: relative;\n"])));
13
+ var Inner = styled_components_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n display: flex;\n font-size: 11px;\n color: var(--grey100);\n ", " {\n font-size: 12px;\n }\n ", " {\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n }\n"], ["\n display: flex;\n font-size: 11px;\n color: var(--grey100);\n ", " {\n font-size: 12px;\n }\n ", " {\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n }\n"])), media_1.min.sm, media_1.max.lg);
14
+ var Item = (0, styled_components_1.default)(framer_motion_1.m.div)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n display: flex;\n align-items: center;\n /* margin: 0 10px 0 0; */\n\n &:first-child {\n margin-left: -", "px;\n }\n ", " {\n &:first-child {\n margin-left: -", "px;\n }\n }\n"], ["\n display: flex;\n align-items: center;\n /* margin: 0 10px 0 0; */\n\n &:first-child {\n margin-left: -", "px;\n }\n ", " {\n &:first-child {\n margin-left: -", "px;\n }\n }\n"])), LINK_GUTTER_X / 2, media_1.min.sm, LINK_GUTTER_X);
15
+ var itemChild = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n display: block;\n padding: 10px ", "px;\n\n ", " {\n padding: 10px ", "px;\n }\n"], ["\n display: block;\n padding: 10px ", "px;\n\n ", " {\n padding: 10px ", "px;\n }\n"])), LINK_GUTTER_X / 2, media_1.min.sm, LINK_GUTTER_X);
16
+ var ItemLink = styled_components_1.default.a(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n ", "\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n"], ["\n ", "\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n"])), itemChild);
17
+ var ItemCurrent = styled_components_1.default.span(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), itemChild);
18
+ var ItemSeparator = (0, styled_components_1.default)(md_1.MdKeyboardArrowRight)(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject([""], [""])));
19
+ var KoineBreadcrumbs = function (_a) {
20
+ var _b = _a.items, items = _b === void 0 ? [] : _b, Link = _a.Link, props = tslib_1.__rest(_a, ["items", "Link"]);
21
+ if (!items.length) {
22
+ return null;
23
+ }
24
+ return ((0, jsx_runtime_1.jsx)(Root, tslib_1.__assign({}, props, { children: (0, jsx_runtime_1.jsx)(Inner, { children: items.map(function (item, idx) { return ((0, jsx_runtime_1.jsxs)(Item, tslib_1.__assign({ initial: { opacity: 0, x: 20 }, animate: {
25
+ opacity: 1,
26
+ x: 0,
27
+ transition: { delay: idx * 0.2 },
28
+ } }, { children: [item.url && ((0, jsx_runtime_1.jsx)(ItemLink, tslib_1.__assign({ as: Link, href: item.url }, { children: (0, utils_1.titleCase)(item.title) }))), !item.url && (0, jsx_runtime_1.jsx)(ItemCurrent, { children: (0, utils_1.titleCase)(item.title) }), idx < items.length - 1 && (0, jsx_runtime_1.jsx)(ItemSeparator, {})] }), idx)); }) }) })));
29
+ };
30
+ exports.KoineBreadcrumbs = KoineBreadcrumbs;
31
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -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("./Breadcrumbs"), exports);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineButton = exports.btnStyleOutlined = exports.btnStyleContained = exports.btnStyleBase = exports.btnStyleReset = exports.btnStyleUndo = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importStar(require("styled-components"));
6
+ var styled_1 = require("../styles/styled");
7
+ /**
8
+ * Prevent 300ms delay with `touch-action` performance optimization,
9
+ * @see https://twitter.com/argyleink/status/1405881231695302659
10
+ */
11
+ exports.btnStyleUndo = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n appearance: none;\n -webkit-appearance: none;\n -webkit-touch-callout: none;\n user-select: none;\n touch-action: manipulation;\n outline: 0px;\n color: var(--bodyColor);\n"], ["\n appearance: none;\n -webkit-appearance: none;\n -webkit-touch-callout: none;\n user-select: none;\n touch-action: manipulation;\n outline: 0px;\n color: var(--bodyColor);\n"])));
12
+ exports.btnStyleReset = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border-width: 1px;\n border-style: solid;\n border-color: transparent;\n cursor: pointer;\n ", "\n\n &[disabled] {\n cursor: default;\n opacity: 0.7;\n }\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border-width: 1px;\n border-style: solid;\n border-color: transparent;\n cursor: pointer;\n ", "\n\n &[disabled] {\n cursor: default;\n opacity: 0.7;\n }\n"])), exports.btnStyleUndo);
13
+ exports.btnStyleBase = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n ", "\n\n min-width: ", ";\n padding: ", ";\n border-radius: 0;\n text-align: center;\n text-transform: uppercase;\n font-weight: 600;\n ", "\n\n &:focus,\n &:active,\n &:visited {\n ", "\n }\n\n /* This targets icons within a button */\n & svg {\n margin: 0 1em 0 0;\n font-size: 1.25em;\n }\n"], ["\n ", "\n\n min-width: ", ";\n padding: ", ";\n border-radius: 0;\n text-align: center;\n text-transform: uppercase;\n font-weight: 600;\n ", "\n\n &:focus,\n &:active,\n &:visited {\n ", "\n }\n\n /* This targets icons within a button */\n & svg {\n margin: 0 1em 0 0;\n font-size: 1.25em;\n }\n"])), exports.btnStyleReset, function (p) { return (p.$noGutter ? "0" : "150px"); }, function (p) { return (p.$noGutter ? "0" : "10px 30px"); }, function (p) { return p.$block && "width: 100%; display: flex;"; }, styled_1.stateFocus);
14
+ exports.btnStyleContained = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n color: white;\n background: var(--accent200);\n border-color: var(--accent200);\n\n &:hover:not([disabled]) {\n background: var(--accent300);\n border-color: var(--accent300);\n }\n"], ["\n color: white;\n background: var(--accent200);\n border-color: var(--accent200);\n\n &:hover:not([disabled]) {\n background: var(--accent300);\n border-color: var(--accent300);\n }\n"])));
15
+ exports.btnStyleOutlined = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n color: var(--accent200);\n border-color: var(--accent200);\n\n &:hover:not([disabled]) {\n background: var(--accent300);\n border-color: var(--accent300);\n color: white;\n }\n"], ["\n color: var(--accent200);\n border-color: var(--accent200);\n\n &:hover:not([disabled]) {\n background: var(--accent300);\n border-color: var(--accent300);\n color: white;\n }\n"])));
16
+ exports.KoineButton = styled_components_1.default.button(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n ", "\n"], ["\n ", "\n ", "\n ", "\n"])), exports.btnStyleBase, function (p) { return p.$variant === "outlined" && exports.btnStyleOutlined; }, function (p) { return p.$variant === "contained" && exports.btnStyleContained; });
17
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineButtonComposite = 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 Root = styled_components_1.default.span(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", "\n min-width: 0;\n\n & svg {\n font-size: 2em !important;\n margin: 0 0.33em 0 0 !important;\n }\n"], ["\n ", "\n min-width: 0;\n\n & svg {\n font-size: 2em !important;\n margin: 0 0.33em 0 0 !important;\n }\n"])), function (p) {
9
+ return p.$icon ? "display: flex;" : "display: inline-block; text-align: left;";
10
+ });
11
+ var ButtonCompositeIcon = styled_components_1.default.svg(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n float: left;\n"], ["\n float: left;\n"])));
12
+ var BesidesIcon = styled_components_1.default.span(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n text-align: left;\n line-height: 1.2;\n"], ["\n text-align: left;\n line-height: 1.2;\n"])));
13
+ var Main = styled_components_1.default.span(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n display: block;\n font-size: 0.9em;\n\n &:last-child {\n margin-top: ", ";\n }\n"], ["\n display: block;\n font-size: 0.9em;\n\n &:last-child {\n margin-top: ", ";\n }\n"])), function (p) { return (p.$reverse && !p.$icon ? "0.5em" : "0"); });
14
+ var Sub = styled_components_1.default.span(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n display: block;\n text-transform: none;\n font-size: 0.7em;\n font-weight: 500;\n\n ", " + & {\n margin-top: ", ";\n }\n"], ["\n display: block;\n text-transform: none;\n font-size: 0.7em;\n font-weight: 500;\n\n ", " + & {\n margin-top: ", ";\n }\n"])), Main, function (p) { return (p.$reverse && !p.$icon ? "0.5em" : "0"); });
15
+ var Text = styled_components_1.default.span(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject([""], [""])));
16
+ var Inner = (0, react_1.memo)(function (_a) {
17
+ var textMain = _a.textMain, textSub = _a.textSub, text = _a.text, $reverse = _a.$reverse, $icon = _a.$icon;
18
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [$reverse ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textSub && ((0, jsx_runtime_1.jsx)(Sub, tslib_1.__assign({ "$icon": $icon, "$reverse": $reverse }, { children: textSub }))), textMain && ((0, jsx_runtime_1.jsx)(Main, tslib_1.__assign({ "$icon": $icon, "$reverse": $reverse }, { children: textMain })))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textMain && ((0, jsx_runtime_1.jsx)(Main, tslib_1.__assign({ "$icon": $icon, "$reverse": $reverse }, { children: textMain }))), textSub && ((0, jsx_runtime_1.jsx)(Sub, tslib_1.__assign({ "$icon": $icon, "$reverse": $reverse }, { children: textSub })))] })), text && (0, jsx_runtime_1.jsx)(Text, { children: text })] }));
19
+ });
20
+ var KoineButtonComposite = function (_a) {
21
+ var Icon = _a.Icon, _b = _a.iconProps, iconProps = _b === void 0 ? {} : _b, textMain = _a.textMain, textSub = _a.textSub, textReverse = _a.textReverse, text = _a.text, _c = _a.Button, Button = _c === void 0 ? "button" : _c, _d = _a.ButtonLink, ButtonLink = _d === void 0 ? "a" : _d, props = tslib_1.__rest(_a, ["Icon", "iconProps", "textMain", "textSub", "textReverse", "text", "Button", "ButtonLink"]);
22
+ var Btn = props.href ? ButtonLink : Button;
23
+ var styledProps = {
24
+ $icon: !!Icon,
25
+ $reverse: textReverse,
26
+ $twoLines: !!(textMain && textSub && !Icon),
27
+ };
28
+ var innerProps = tslib_1.__assign({ textMain: textMain, textSub: textSub, text: text }, styledProps);
29
+ return ((0, jsx_runtime_1.jsxs)(Root, tslib_1.__assign({ as: Btn }, props, styledProps, { children: [Icon && (0, jsx_runtime_1.jsx)(ButtonCompositeIcon, tslib_1.__assign({ as: Icon }, iconProps)), Icon ? ((0, jsx_runtime_1.jsx)(BesidesIcon, tslib_1.__assign({}, styledProps, { children: (0, jsx_runtime_1.jsx)(Inner, tslib_1.__assign({}, innerProps)) }))) : ((0, jsx_runtime_1.jsx)(Inner, tslib_1.__assign({}, innerProps)))] })));
30
+ };
31
+ exports.KoineButtonComposite = KoineButtonComposite;
32
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconButtonFab = exports.buttonFab = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importStar(require("styled-components"));
6
+ var IconButton_1 = require("./IconButton");
7
+ exports.buttonFab = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n box-shadow: 3px 3px 6px -4px rgb(0, 0, 0, 0.5);\n"], ["\n box-shadow: 3px 3px 6px -4px rgb(0, 0, 0, 0.5);\n"])));
8
+ exports.IconButtonFab = (0, styled_components_1.default)(IconButton_1.IconButton)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.buttonFab);
9
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineButtonLink = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var styled_components_1 = tslib_1.__importDefault(require("styled-components"));
7
+ var Button_1 = require("./Button");
8
+ var Root = (0, styled_components_1.default)(Button_1.KoineButton)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n text-decoration: none;\n"], ["\n text-decoration: none;\n"])));
9
+ var KoineButtonLink = function (_a) {
10
+ var href = _a.href, _b = _a.Link, Link = _b === void 0 ? "a" : _b, props = tslib_1.__rest(_a, ["href", "Link"]);
11
+ var isRelative = href && href.startsWith("/");
12
+ return isRelative ? ((0, jsx_runtime_1.jsx)(Root, tslib_1.__assign({ href: href }, props, { as: Link }))) : ((0, jsx_runtime_1.jsx)(Root, tslib_1.__assign({ href: href }, props, { as: "a" })));
13
+ };
14
+ exports.KoineButtonLink = KoineButtonLink;
15
+ var templateObject_1;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconButton = exports.iconBtnStyleBase = exports.iconBtnStyleReset = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styled_components_1 = tslib_1.__importStar(require("styled-components"));
6
+ var Button_1 = require("./Button");
7
+ exports.iconBtnStyleReset = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border-radius: 100%;\n ", "\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border-radius: 100%;\n ", "\n"])), Button_1.btnStyleReset);
8
+ exports.iconBtnStyleBase = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.iconBtnStyleReset);
9
+ exports.IconButton = styled_components_1.default.button(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n ", "\n"], ["\n ", "\n ", "\n ", "\n"])), exports.iconBtnStyleBase, function (p) { return p.$variant === "outlined" && Button_1.btnStyleOutlined; }, function (p) { return p.$variant === "contained" && Button_1.btnStyleContained; });
10
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Button"), exports);
5
+ tslib_1.__exportStar(require("./ButtonComposite"), exports);
6
+ tslib_1.__exportStar(require("./ButtonFab"), exports);
7
+ tslib_1.__exportStar(require("./ButtonLink"), exports);
8
+ tslib_1.__exportStar(require("./IconButton"), exports);
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarDaygridCell = 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 md_1 = require("react-icons/md");
8
+ var utils_1 = require("./utils");
9
+ /**
10
+ * Style for button within a event cell
11
+ *
12
+ * Here we might differentiate week/month view where the first does not get
13
+ * ellipsed btn texts, with `Start` as block element and underneath the `Title`
14
+ * on multiple lines, but that would mean that we loose the ability to interweave
15
+ * single-day events among the spaces left by wider multi-days events.
16
+ */
17
+ var styleBtn = {
18
+ overflow: "hidden",
19
+ whiteSpace: "nowrap",
20
+ textOverflow: "ellipsis",
21
+ };
22
+ var CalendarDaygridCell = function (_a) {
23
+ var eventClicked = _a.eventClicked, setEventClicked = _a.setEventClicked,
24
+ // eventHovered,
25
+ setEventHovered = _a.setEventHovered, view = _a.view, maxEvents = _a.maxEvents, events = _a.events, calendarsMap = _a.calendarsMap, _b = _a.Cell, Cell = _b === void 0 ? "div" : _b, _c = _a.CellOverflow, CellOverflow = _c === void 0 ? "div" : _c, _d = _a.CellEvent, CellEvent = _d === void 0 ? "div" : _d, _e = _a.CellEventBtn, CellEventBtn = _e === void 0 ? "div" : _e, _f = _a.CellEventTitle, CellEventTitle = _f === void 0 ? "span" : _f, _g = _a.CellEventStart, CellEventStart = _g === void 0 ? "span" : _g;
26
+ var _h = (0, react_1.useState)(false), isExpanded = _h[0], expand = _h[1];
27
+ var eventsWithoutPlaceholders = events.filter(function (event) { return !event.placeholder; });
28
+ return ((0, jsx_runtime_1.jsx)(Cell, { children: events.map(function (event, i) {
29
+ if (i === maxEvents && !isExpanded) {
30
+ return ((0, jsx_runtime_1.jsxs)(CellOverflow, tslib_1.__assign({ onClick: function () { return expand(true); } }, { children: [(0, jsx_runtime_1.jsx)(md_1.MdAdd, {}), eventsWithoutPlaceholders.length - maxEvents] }), "overflowMessage" + i));
31
+ }
32
+ if (i > maxEvents && !isExpanded)
33
+ return null;
34
+ if (event.placeholder) {
35
+ return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(CellEvent, tslib_1.__assign({ "$placeholder": true }, { children: (0, jsx_runtime_1.jsx)(CellEventBtn, tslib_1.__assign({ "aria-hidden": "true", style: { visibility: "hidden" }, "$placeholder": true }, { children: (0, jsx_runtime_1.jsx)(CellEventTitle, { children: "\u00A0" }) })) })) }, event.key));
36
+ }
37
+ var styleEvent = {
38
+ zIndex: event.firstOfMulti ? 1 : 0,
39
+ position: "relative",
40
+ width: event.firstOfMulti ? "".concat(100 * event.width, "%") : "100%",
41
+ };
42
+ if (!calendarsMap[event.calendar.id].on) {
43
+ // @ts-expect-error nevermind
44
+ styleBtn.display = "none";
45
+ }
46
+ var styledProps = {
47
+ $view: view,
48
+ $selected: (eventClicked === null || eventClicked === void 0 ? void 0 : eventClicked.uid) === event.uid,
49
+ $past: event.isPast,
50
+ $color: event.color,
51
+ $isOutOfRange: event.$isOutOfRange,
52
+ $isToday: event.$isToday,
53
+ };
54
+ return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(CellEvent, tslib_1.__assign({ style: styleEvent }, styledProps, { children: (0, jsx_runtime_1.jsx)(CellEventBtn, tslib_1.__assign({ role: "button", style: styleBtn }, styledProps, { onClick: function () {
55
+ return setEventClicked(function (prev) {
56
+ return (prev === null || prev === void 0 ? void 0 : prev.uid) === event.uid ? null : event;
57
+ });
58
+ }, onMouseEnter: function () { return setEventHovered(event); }, onMouseLeave: function () { return setEventHovered(null); } }, { children: event.allDay ? ((0, jsx_runtime_1.jsx)(CellEventTitle, { children: event.title })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(CellEventStart, { children: (0, utils_1.getDisplayTime)(event.start) }), (0, jsx_runtime_1.jsx)(CellEventTitle, { children: event.title })] })) })) })) }, event.key));
59
+ }) }));
60
+ };
61
+ exports.CalendarDaygridCell = CalendarDaygridCell;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineCalendarDaygridNav = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var format_1 = tslib_1.__importDefault(require("date-fns/format"));
7
+ var useDateLocale_1 = require("../hooks/useDateLocale");
8
+ var KoineCalendarDaygridNav = function (_a) {
9
+ var range = _a.range, view = _a.view, todayInView = _a.todayInView, handlePrev = _a.handlePrev, handleNext = _a.handleNext, handleToday = _a.handleToday, handleView = _a.handleView, localeCode = _a.locale, _b = _a.NavRoot, NavRoot = _b === void 0 ? "nav" : _b, _c = _a.NavTitle, NavTitle = _c === void 0 ? "div" : _c, _d = _a.NavBtns, NavBtns = _d === void 0 ? "div" : _d, _e = _a.NavBtnPrev, NavBtnPrev = _e === void 0 ? "button" : _e, _f = _a.NavBtnNext, NavBtnNext = _f === void 0 ? "button" : _f, _g = _a.NavBtnToday, NavBtnToday = _g === void 0 ? "button" : _g, _h = _a.NavBtnViewMonth, NavBtnViewMonth = _h === void 0 ? "button" : _h, _j = _a.NavBtnViewWeek, NavBtnViewWeek = _j === void 0 ? "button" : _j;
10
+ var start = range[0], end = range[1];
11
+ var locale = (0, useDateLocale_1.useDateLocale)(localeCode);
12
+ var opts = { locale: locale };
13
+ var formatted = "";
14
+ if (view === "month") {
15
+ formatted = (0, format_1.default)(start, "MMMM yyyy", opts);
16
+ }
17
+ if (view === "week") {
18
+ var inSameMonth = start.getMonth() === end.getMonth();
19
+ if (inSameMonth) {
20
+ formatted = (0, format_1.default)(start, "# MMMM yyyy", opts).replace("#", "".concat(start.getDate(), "-").concat(end.getDate()));
21
+ }
22
+ else {
23
+ formatted = "".concat((0, format_1.default)(start, "d MMMM", opts), " - ").concat((0, format_1.default)(end, "d MMMM yyyy", opts));
24
+ }
25
+ }
26
+ return ((0, jsx_runtime_1.jsxs)(NavRoot, { children: [(0, jsx_runtime_1.jsxs)(NavBtns, { children: [(0, jsx_runtime_1.jsx)(NavBtnPrev, { onClick: handlePrev }), (0, jsx_runtime_1.jsx)(NavBtnNext, { onClick: handleNext }), (0, jsx_runtime_1.jsx)(NavBtnToday, { onClick: handleToday, disabled: todayInView }), (0, jsx_runtime_1.jsx)(NavBtnViewMonth, { onClick: function () { return handleView("month"); }, disabled: view === "month" }), (0, jsx_runtime_1.jsx)(NavBtnViewWeek, { onClick: function () { return handleView("week"); }, disabled: view === "week" })] }), (0, jsx_runtime_1.jsx)(NavTitle, { range: range, formatted: formatted })] }));
27
+ };
28
+ exports.KoineCalendarDaygridNav = KoineCalendarDaygridNav;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineCalendarDaygridTable = 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 eachWeekOfInterval_1 = tslib_1.__importDefault(require("date-fns/eachWeekOfInterval"));
8
+ var react_swipeable_1 = require("react-swipeable");
9
+ var hooks_1 = require("../hooks");
10
+ var utils_1 = require("./utils");
11
+ var CalendarDaygridCell_1 = require("./CalendarDaygridCell");
12
+ function getView(range) {
13
+ var start = range[0], end = range[1];
14
+ var weeks = (0, eachWeekOfInterval_1.default)({ start: start, end: end }, { weekStartsOn: 1 });
15
+ return {
16
+ month: start.getMonth(),
17
+ weeks: weeks,
18
+ };
19
+ }
20
+ var KoineCalendarDaygridTable = function (_a) {
21
+ var localeCode = _a.locale, handlePrev = _a.handlePrev, handleNext = _a.handleNext, events = _a.events, dayLabels = _a.dayLabels, view = _a.view, range = _a.range, eventClicked = _a.eventClicked, setEventClicked = _a.setEventClicked, eventHovered = _a.eventHovered, setEventHovered = _a.setEventHovered, _b = _a.calendarsMap, calendarsMap = _b === void 0 ? {} : _b, _c = _a.maxEvents, maxEvents = _c === void 0 ? 5 : _c, _d = _a.Table, Table = _d === void 0 ? "table" : _d, _e = _a.TableHead, TableHead = _e === void 0 ? "thead" : _e, _f = _a.TableHeadCell, TableHeadCell = _f === void 0 ? "th" : _f, _g = _a.TableBody, TableBody = _g === void 0 ? "tbody" : _g, _h = _a.TableBodyRow, TableBodyRow = _h === void 0 ? "tr" : _h, _j = _a.TableBodyCell, TableBodyCell = _j === void 0 ? "td" : _j, _k = _a.TableBodyCellDate, TableBodyCellDate = _k === void 0 ? "div" : _k, Cell = _a.Cell, CellOverflow = _a.CellOverflow, CellEvent = _a.CellEvent, CellEventBtn = _a.CellEventBtn, CellEventTitle = _a.CellEventTitle, CellEventStart = _a.CellEventStart;
22
+ var restKoine = {
23
+ Cell: Cell,
24
+ CellOverflow: CellOverflow,
25
+ CellEvent: CellEvent,
26
+ CellEventBtn: CellEventBtn,
27
+ CellEventTitle: CellEventTitle,
28
+ CellEventStart: CellEventStart,
29
+ };
30
+ var _l = (0, react_1.useState)(dayLabels || [0, 1, 2, 3, 4, 5, 6]), days = _l[0], setDays = _l[1];
31
+ var _m = (0, react_1.useState)([]), weeksEvents = _m[0], setWeeksEvents = _m[1];
32
+ // const [days, setDays] = useState(dayLabels || [...Array(7).keys()]);
33
+ var locale = (0, hooks_1.useDateLocale)(localeCode);
34
+ var _o = (0, react_1.useMemo)(function () { return getView(range); }, [range]), month = _o.month, weeks = _o.weeks;
35
+ var swipeableHandlers = (0, react_swipeable_1.useSwipeable)({
36
+ onSwipedLeft: handleNext,
37
+ onSwipedRight: handlePrev,
38
+ });
39
+ (0, react_1.useEffect)(function () {
40
+ setWeeksEvents((0, utils_1.processEventsInView)(events, view, month, weeks));
41
+ }, [events, view, month, weeks]);
42
+ (0, react_1.useEffect)(function () {
43
+ if (locale && locale.localize && !dayLabels) {
44
+ setDays([1, 2, 3, 4, 5, 6, 0].map(
45
+ // @ts-expect-error nevermind
46
+ function (i) { return locale.localize.day(i, { width: "abbreviated" }); }));
47
+ }
48
+ }, [locale, dayLabels]);
49
+ return ((0, jsx_runtime_1.jsxs)(Table, tslib_1.__assign({}, swipeableHandlers, { children: [(0, jsx_runtime_1.jsx)(TableHead, { children: (0, jsx_runtime_1.jsx)("tr", { children: days.map(function (day) { return ((0, jsx_runtime_1.jsx)(TableHeadCell, tslib_1.__assign({ scope: "column" }, { children: day }), day)); }) }) }), (0, jsx_runtime_1.jsx)(TableBody, { children: weeksEvents.map(function (week, i) { return ((0, jsx_runtime_1.jsx)(TableBodyRow, tslib_1.__assign({}, week.props, { children: week.days.map(function (day) { return ((0, jsx_runtime_1.jsxs)(TableBodyCell, tslib_1.__assign({}, day.props, { children: [(0, jsx_runtime_1.jsx)(TableBodyCellDate, tslib_1.__assign({}, day.props, { children: day.label })), day.events.length > 0 && ((0, jsx_runtime_1.jsx)(CalendarDaygridCell_1.CalendarDaygridCell, tslib_1.__assign({}, {
50
+ eventClicked: eventClicked,
51
+ setEventClicked: setEventClicked,
52
+ eventHovered: eventHovered,
53
+ setEventHovered: setEventHovered,
54
+ view: view,
55
+ maxEvents: maxEvents,
56
+ events: day.events,
57
+ timestamp: day.timestamp,
58
+ calendarsMap: calendarsMap,
59
+ }, restKoine)))] }))); }) }))); }) })] })));
60
+ };
61
+ exports.KoineCalendarDaygridTable = KoineCalendarDaygridTable;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KoineCalendarLegend = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var KoineCalendarLegend = function (_a) {
7
+ // const sorted = Object.entries(calendarsMap).sort((a, b) => {
8
+ // const { name: nameA } = a[1];
9
+ // const { name: nameB } = b[1];
10
+ // if (nameA < nameB) return -1;
11
+ // else if (nameA > nameB) return 1;
12
+ // else return 0;
13
+ // });
14
+ var _b = _a.calendarsMap, calendarsMap = _b === void 0 ? {} : _b, toggleCalendarVisibility = _a.toggleCalendarVisibility, _c = _a.LegendItem, LegendItem = _c === void 0 ? "div" : _c, _d = _a.LegendItemStatus, LegendItemStatus = _d === void 0 ? "span" : _d, _e = _a.LegendItemLabel, LegendItemLabel = _e === void 0 ? "span" : _e, _f = _a.LegendItemEvents, LegendItemEvents = _f === void 0 ? "span" : _f;
15
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: Object.entries(calendarsMap).map(function (_a) {
16
+ var id = _a[0], calendar = _a[1];
17
+ return ((0, jsx_runtime_1.jsxs)(LegendItem, tslib_1.__assign({ onClick: function () { return toggleCalendarVisibility(id); }, "$color": calendar.color, "$empty": calendar.events === 0, disabled: calendar.events === 0 }, { children: [(0, jsx_runtime_1.jsx)(LegendItemStatus, { children: calendar.on ? "\u2b24" : "\u2b58" }), (0, jsx_runtime_1.jsx)(LegendItemLabel, { children: calendar.name }), (0, jsx_runtime_1.jsx)(LegendItemEvents, { children: calendar.events })] }), "CalendarLegend." + id));
18
+ }) }));
19
+ };
20
+ exports.KoineCalendarLegend = KoineCalendarLegend;