@koine/react 1.0.14 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Details/Details.d.ts +6 -12
- package/hooks/useScrollPosition.d.ts +1 -1
- package/node/Alert/Alert.js +14 -0
- package/node/Alert/index.js +4 -0
- package/node/Animations/Reveal.js +21 -0
- package/node/Animations/Underline.js +8 -0
- package/node/Animations/index.js +6 -0
- package/node/Animations/useReveal.js +75 -0
- package/node/Autocomplete/AutocompleteDownshift.js +161 -0
- package/node/Autocomplete/AutocompleteDownshiftMultiselect.js +356 -0
- package/node/Autocomplete/AutocompleteMui.js +180 -0
- package/node/Autocomplete/AutocompleteReach.js +115 -0
- package/node/Autocomplete/components.js +37 -0
- package/node/Autocomplete/helpers.js +32 -0
- package/node/Autocomplete/index.js +7 -0
- package/node/Bg/BgColor.js +25 -0
- package/node/Bg/BgPhoto.js +20 -0
- package/node/Bg/BgSvg.js +16 -0
- package/node/Bg/index.js +6 -0
- package/node/Breadcrumbs/Breadcrumbs.js +31 -0
- package/node/Breadcrumbs/index.js +4 -0
- package/node/Buttons/Button.js +17 -0
- package/node/Buttons/ButtonComposite.js +32 -0
- package/node/Buttons/ButtonFab.js +9 -0
- package/node/Buttons/ButtonLink.js +15 -0
- package/node/Buttons/IconButton.js +10 -0
- package/node/Buttons/index.js +8 -0
- package/node/Calendar/CalendarDaygridCell.js +61 -0
- package/node/Calendar/CalendarDaygridNav.js +28 -0
- package/node/Calendar/CalendarDaygridTable.js +61 -0
- package/node/Calendar/CalendarLegend.js +20 -0
- package/node/Calendar/calendar-api-google.js +131 -0
- package/node/Calendar/index.js +9 -0
- package/node/Calendar/types.js +2 -0
- package/node/Calendar/useCalendar.js +187 -0
- package/node/Calendar/utils.js +215 -0
- package/node/Carousel/Carousel.js +381 -0
- package/node/Carousel/CarouselCss.js +27 -0
- package/node/Carousel/index.js +4 -0
- package/node/Collapsable/Collapsable.js +4 -0
- package/node/Collapsable/CollapsableReach.js +253 -0
- package/node/Collapsable/index.js +5 -0
- package/node/Debug/Debug.js +13 -0
- package/node/Debug/index.js +4 -0
- package/node/Details/Details.js +67 -0
- package/node/Details/index.js +4 -0
- package/node/Dialog/DialogMui.js +83 -0
- package/node/Dialog/css/bare.js +24 -0
- package/node/Dialog/index.js +5 -0
- package/node/Dialog/m/bare.js +55 -0
- package/node/Dialog/m/basic.js +35 -0
- package/node/Dialog/m/index.js +8 -0
- package/node/Dialog/sc/bare.js +46 -0
- package/node/Dialog/sc/framer.js +19 -0
- package/node/Dialog/sc/framerMaterial.js +19 -0
- package/node/Dialog/sc/material.js +24 -0
- package/node/Dialog/tw/bare.js +45 -0
- package/node/Dialog/tw/elegant.js +23 -0
- package/node/Dialog/tw/framer.js +19 -0
- package/node/Dialog/tw/framerMaterial.js +19 -0
- package/node/Dialog/tw/material.js +23 -0
- package/node/Editor/Editor--tiptap.js +31 -0
- package/node/Editor/components.js +15 -0
- package/node/Editor/index.js +4 -0
- package/node/Favicon/FaviconTags.js +19 -0
- package/node/Favicon/index.js +4 -0
- package/node/Form/Form.js +65 -0
- package/node/Form/index.js +4 -0
- package/node/Form/sc/bare.js +23 -0
- package/node/Forms/Checkbox/Checkbox.js +21 -0
- package/node/Forms/Checkbox/index.js +4 -0
- package/node/Forms/Feedback/Feedback.js +13 -0
- package/node/Forms/Feedback/index.js +4 -0
- package/node/Forms/Field/Field.js +52 -0
- package/node/Forms/Field/FieldControl.js +51 -0
- package/node/Forms/Field/FieldHint.js +7 -0
- package/node/Forms/Field/index.js +5 -0
- package/node/Forms/Input/Input.js +20 -0
- package/node/Forms/Input/index.js +4 -0
- package/node/Forms/InputGroup/InputGroup.js +19 -0
- package/node/Forms/InputGroup/index.js +4 -0
- package/node/Forms/Label/Label.js +9 -0
- package/node/Forms/Label/index.js +4 -0
- package/node/Forms/Password/Password.js +20 -0
- package/node/Forms/Password/index.js +4 -0
- package/node/Forms/Radio/Radio.js +28 -0
- package/node/Forms/Radio/index.js +4 -0
- package/node/Forms/Switch/Switch.js +23 -0
- package/node/Forms/Switch/index.js +4 -0
- package/node/Forms/Textarea/Textarea.js +15 -0
- package/node/Forms/Textarea/TextareaRich.js +31 -0
- package/node/Forms/Textarea/index.js +5 -0
- package/node/Forms/Toggle/Toggle.js +37 -0
- package/node/Forms/Toggle/index.js +4 -0
- package/node/Forms/Toggle/useToggle.js +149 -0
- package/node/Forms/antispam.js +61 -0
- package/node/Forms/helpers.js +52 -0
- package/node/Forms/index.js +19 -0
- package/node/Forms/styles.js +32 -0
- package/node/Gauge/Gauge.js +106 -0
- package/node/Grid/Grid.js +56 -0
- package/node/Grid/index.js +4 -0
- package/node/Hamburger/Hamburger.js +56 -0
- package/node/Hamburger/index.js +4 -0
- package/node/Header/index.js +4 -0
- package/node/Header/useHeader.js +34 -0
- package/node/Hidden/Hidden.js +13 -0
- package/node/Hidden/index.js +4 -0
- package/node/Img/index.js +4 -0
- package/node/Img/sc/bare.js +42 -0
- package/node/Img/types.js +2 -0
- package/node/Link/Link.js +7 -0
- package/node/Link/LinkBlank.js +21 -0
- package/node/Link/index.js +5 -0
- package/node/Menu/Menu.js +7 -0
- package/node/Menu/index.js +4 -0
- package/node/MenuItem/MenuItem.js +7 -0
- package/node/MenuItem/index.js +4 -0
- package/node/Meta/Meta.js +9 -0
- package/node/Meta/index.js +4 -0
- package/node/NoJs/NoJs.js +10 -0
- package/node/NoJs/index.js +4 -0
- package/node/Pagination/PaginationNav.js +65 -0
- package/node/Pagination/PaginationResults.js +15 -0
- package/node/Pagination/index.js +5 -0
- package/node/Pill/Pill.js +10 -0
- package/node/Pill/index.js +4 -0
- package/node/Progress/ProgressCircular.js +19 -0
- package/node/Progress/ProgressLinear.js +28 -0
- package/node/Progress/ProgressOverlay.js +28 -0
- package/node/Progress/index.js +6 -0
- package/node/Rating/Rating.js +76 -0
- package/node/Rating/index.js +57 -0
- package/node/Select/SelectDownshift.js +41 -0
- package/node/Select/components.js +15 -0
- package/node/Select/index.js +7 -0
- package/node/Sidebar/Sidebar.js +27 -0
- package/node/Sidebar/index.js +4 -0
- package/node/Spacing/Spacing.js +49 -0
- package/node/Spacing/index.js +4 -0
- package/node/Sticky/Sticky.js +222 -0
- package/node/Sticky/StickyCss.js +10 -0
- package/node/Sticky/index.js +4 -0
- package/node/Tabs/TabsMui.js +49 -0
- package/node/Tabs/index.js +4 -0
- package/node/Tabs/sc/bare.js +87 -0
- package/node/Tabs/tw/bare.js +20 -0
- package/node/Tabs/tw/material.js +21 -0
- package/node/Tabs/useTabs.js +48 -0
- package/node/Typography/CopyPasteVisible.js +7 -0
- package/node/Typography/Native.js +17 -0
- package/node/Typography/ReadMore.js +47 -0
- package/node/Typography/TextLoop.js +51 -0
- package/node/Typography/TypeStairs.js +53 -0
- package/node/Typography/index.js +8 -0
- package/node/css/index.js +36 -0
- package/node/helpers/classed.js +72 -0
- package/node/helpers/extend-component.js +16 -0
- package/node/helpers/index.js +5 -0
- package/node/hooks/index.js +18 -0
- package/node/hooks/types.js +2 -0
- package/node/hooks/useAsyncFn.js +40 -0
- package/node/hooks/useDateLocale.js +42 -0
- package/node/hooks/useEffectOnce.js +12 -0
- package/node/hooks/useFirstMountState.js +16 -0
- package/node/hooks/useFocus.js +15 -0
- package/node/hooks/useId.js +12 -0
- package/node/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/node/hooks/useMount.js +13 -0
- package/node/hooks/useMountedState.js +19 -0
- package/node/hooks/usePrevious.js +12 -0
- package/node/hooks/useScrollPosition.js +84 -0
- package/node/hooks/useScrollTo.js +25 -0
- package/node/hooks/useTraceUpdate.js +25 -0
- package/node/hooks/useUpdateEffect.js +18 -0
- package/node/hooks/useWindowSize.js +17 -0
- package/node/index.js +8 -0
- package/node/m/MotionProvider.js +43 -0
- package/node/m/index.js +9 -0
- package/node/m/lite.js +4 -0
- package/node/m/max.js +4 -0
- package/node/sc/index.js +37 -0
- package/node/scm/index.js +36 -0
- package/node/shared/index.js +11 -0
- package/node/styles/Body.js +16 -0
- package/node/styles/Global.js +21 -0
- package/node/styles/index.js +10 -0
- package/node/styles/media.js +160 -0
- package/node/styles/spacing.js +52 -0
- package/node/styles/styled.js +17 -0
- package/node/styles/theme--vanilla.js +61 -0
- package/node/styles/theme.js +45 -0
- package/node/tw/index.js +36 -0
- package/node/twm/index.js +36 -0
- package/node/types.js +2 -0
- package/package.json +3 -3
- 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;
|
package/node/Bg/BgSvg.js
ADDED
|
@@ -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;
|
package/node/Bg/index.js
ADDED
|
@@ -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,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;
|