@bolio-ui/core 1.0.0
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/LICENSE +21 -0
- package/README.md +71 -0
- package/dist/avatar/index.js +901 -0
- package/dist/badge/index.js +899 -0
- package/dist/bolio-ui-provider/index.js +1883 -0
- package/dist/breadcrumbs/index.js +985 -0
- package/dist/button/index.js +1358 -0
- package/dist/button-dropdown/index.js +1111 -0
- package/dist/button-group/index.js +782 -0
- package/dist/capacity/index.js +780 -0
- package/dist/card/index.js +1275 -0
- package/dist/checkbox/index.js +1042 -0
- package/dist/code/index.js +803 -0
- package/dist/col/index.js +90 -0
- package/dist/collapse/index.js +1158 -0
- package/dist/container/index.js +444 -0
- package/dist/css-baseline/index.js +348 -0
- package/dist/description/index.js +741 -0
- package/dist/display/index.js +745 -0
- package/dist/divider/index.js +767 -0
- package/dist/dot/index.js +755 -0
- package/dist/drawer/index.js +1513 -0
- package/dist/fieldset/index.js +1089 -0
- package/dist/grid/index.js +870 -0
- package/dist/image/index.js +1094 -0
- package/dist/index.js +9970 -0
- package/dist/input/index.js +1275 -0
- package/dist/keyboard/index.js +711 -0
- package/dist/link/index.js +863 -0
- package/dist/loading/index.js +765 -0
- package/dist/mdx-widgets/index.js +438 -0
- package/dist/modal/index.js +2220 -0
- package/dist/note/index.js +773 -0
- package/dist/page/index.js +928 -0
- package/dist/pagination/index.js +1201 -0
- package/dist/popover/index.js +1502 -0
- package/dist/progress/index.js +804 -0
- package/dist/radio/index.js +1028 -0
- package/dist/rating/index.js +912 -0
- package/dist/row/index.js +442 -0
- package/dist/section/index.js +733 -0
- package/dist/select/index.js +1865 -0
- package/dist/slider/index.js +1097 -0
- package/dist/snippet/index.js +1207 -0
- package/dist/spacer/index.js +692 -0
- package/dist/spinner/index.js +763 -0
- package/dist/styled-jsx.cjs.js +766 -0
- package/dist/tabs/index.js +1125 -0
- package/dist/tag/index.js +749 -0
- package/dist/text/index.js +830 -0
- package/dist/textarea/index.js +915 -0
- package/dist/themes/index.js +319 -0
- package/dist/toggle/index.js +852 -0
- package/dist/tooltip/index.js +1353 -0
- package/dist/use-all-themes/index.js +335 -0
- package/dist/use-body-scroll/index.js +173 -0
- package/dist/use-classes/index.js +55 -0
- package/dist/use-click-away/index.js +28 -0
- package/dist/use-clipboard/index.js +188 -0
- package/dist/use-current-state/index.js +90 -0
- package/dist/use-input/index.js +129 -0
- package/dist/use-keyboard/index.js +214 -0
- package/dist/use-media-query/index.js +495 -0
- package/dist/use-modal/index.js +114 -0
- package/dist/use-scale/index.js +673 -0
- package/dist/use-tabs/index.js +112 -0
- package/dist/use-theme/index.js +333 -0
- package/dist/use-toasts/index.js +236 -0
- package/esm/avatar/avatar-group.js +29 -0
- package/esm/avatar/avatar.js +107 -0
- package/esm/avatar/avatar.skeleton.js +21 -0
- package/esm/avatar/helpers.js +16 -0
- package/esm/avatar/index.js +4 -0
- package/esm/avatar/stories.js +113 -0
- package/esm/badge/badge-anchor.js +70 -0
- package/esm/badge/badge.js +58 -0
- package/esm/badge/index.js +4 -0
- package/esm/badge/stories.js +92 -0
- package/esm/bolio-ui-provider/bolio-ui-provider.js +62 -0
- package/esm/bolio-ui-provider/index.js +2 -0
- package/esm/bolio-ui-provider/theme-provider.js +47 -0
- package/esm/breadcrumbs/breadcrumbs-item.js +49 -0
- package/esm/breadcrumbs/breadcrumbs-separator.js +25 -0
- package/esm/breadcrumbs/breadcrumbs.js +47 -0
- package/esm/breadcrumbs/index.js +6 -0
- package/esm/breadcrumbs/stories.js +51 -0
- package/esm/button/button-icon.js +29 -0
- package/esm/button/button-loading.js +17 -0
- package/esm/button/button.drip.js +57 -0
- package/esm/button/button.js +146 -0
- package/esm/button/index.js +2 -0
- package/esm/button/stories.js +221 -0
- package/esm/button/styles.js +232 -0
- package/esm/button/utils.js +46 -0
- package/esm/button-dropdown/button-dropdown-context.js +11 -0
- package/esm/button-dropdown/button-dropdown-item.js +52 -0
- package/esm/button-dropdown/button-dropdown.js +111 -0
- package/esm/button-dropdown/icon.js +30 -0
- package/esm/button-dropdown/index.js +4 -0
- package/esm/button-dropdown/stories.js +92 -0
- package/esm/button-dropdown/styles.js +60 -0
- package/esm/button-group/button-group-context.js +9 -0
- package/esm/button-group/button-group.js +75 -0
- package/esm/button-group/index.js +2 -0
- package/esm/button-group/stories.js +66 -0
- package/esm/capacity/capacity.js +52 -0
- package/esm/capacity/index.js +2 -0
- package/esm/capacity/stories.js +55 -0
- package/esm/card/card-content.js +28 -0
- package/esm/card/card-footer.js +36 -0
- package/esm/card/card.js +68 -0
- package/esm/card/index.js +8 -0
- package/esm/card/stories.js +126 -0
- package/esm/card/styles.js +45 -0
- package/esm/checkbox/checkbox-context.js +10 -0
- package/esm/checkbox/checkbox-group.js +70 -0
- package/esm/checkbox/checkbox.icon.js +50 -0
- package/esm/checkbox/checkbox.js +114 -0
- package/esm/checkbox/index.js +4 -0
- package/esm/checkbox/stories.js +84 -0
- package/esm/checkbox/styles.js +34 -0
- package/esm/code/code.js +57 -0
- package/esm/code/index.js +2 -0
- package/esm/code/stories.js +53 -0
- package/esm/col/col.js +29 -0
- package/esm/col/index.js +2 -0
- package/esm/collapse/collapse-context.js +8 -0
- package/esm/collapse/collapse-group.js +75 -0
- package/esm/collapse/collapse-icon.js +28 -0
- package/esm/collapse/collapse.js +93 -0
- package/esm/collapse/index.js +4 -0
- package/esm/collapse/stories.js +48 -0
- package/esm/container/container.js +62 -0
- package/esm/container/index.js +2 -0
- package/esm/css-baseline/css-baseline.js +18 -0
- package/esm/css-baseline/index.js +1 -0
- package/esm/description/description.js +39 -0
- package/esm/description/index.js +2 -0
- package/esm/description/stories.js +23 -0
- package/esm/display/display.js +43 -0
- package/esm/display/index.js +2 -0
- package/esm/divider/divider.js +65 -0
- package/esm/divider/index.js +2 -0
- package/esm/divider/stories.js +41 -0
- package/esm/dot/dot.js +53 -0
- package/esm/dot/index.js +2 -0
- package/esm/dot/stories.js +40 -0
- package/esm/drawer/drawer-wrapper.js +86 -0
- package/esm/drawer/drawer.js +77 -0
- package/esm/drawer/helper.js +27 -0
- package/esm/drawer/index.js +8 -0
- package/esm/drawer/stories.js +79 -0
- package/esm/fieldset/fieldset-content.js +29 -0
- package/esm/fieldset/fieldset-context.js +9 -0
- package/esm/fieldset/fieldset-footer.js +30 -0
- package/esm/fieldset/fieldset-group.js +88 -0
- package/esm/fieldset/fieldset-subtitle.js +21 -0
- package/esm/fieldset/fieldset-title.js +23 -0
- package/esm/fieldset/fieldset.js +96 -0
- package/esm/fieldset/index.js +13 -0
- package/esm/fieldset/stories.js +72 -0
- package/esm/grid/basic-item.js +96 -0
- package/esm/grid/grid-container.js +46 -0
- package/esm/grid/grid-types.js +6 -0
- package/esm/grid/grid.js +37 -0
- package/esm/grid/index.js +4 -0
- package/esm/grid/stories.js +212 -0
- package/esm/icon/stories.js +36 -0
- package/esm/image/helpers.js +16 -0
- package/esm/image/image-browser-https-icon.js +23 -0
- package/esm/image/image-browser.js +86 -0
- package/esm/image/image.js +91 -0
- package/esm/image/image.skeleton.js +21 -0
- package/esm/image/index.js +4 -0
- package/esm/image/stories.js +73 -0
- package/esm/image/styles.js +15 -0
- package/esm/index.js +69 -0
- package/esm/input/index.js +6 -0
- package/esm/input/input-block-label.js +18 -0
- package/esm/input/input-icon-clear.js +47 -0
- package/esm/input/input-icon.js +19 -0
- package/esm/input/input-label.js +18 -0
- package/esm/input/input-props.js +12 -0
- package/esm/input/input.js +179 -0
- package/esm/input/password-icon.js +30 -0
- package/esm/input/password.js +66 -0
- package/esm/input/stories.js +113 -0
- package/esm/input/styles.js +41 -0
- package/esm/keyboard/index.js +2 -0
- package/esm/keyboard/keyboard.js +48 -0
- package/esm/keyboard/stories.js +43 -0
- package/esm/link/icon.js +30 -0
- package/esm/link/index.js +2 -0
- package/esm/link/link.js +50 -0
- package/esm/link/stories.js +59 -0
- package/esm/loading/index.js +2 -0
- package/esm/loading/loading.js +63 -0
- package/esm/loading/stories.js +75 -0
- package/esm/mdx-widgets/index.js +2 -0
- package/esm/mdx-widgets/mock-page.js +37 -0
- package/esm/mdx-widgets/parsed-codes/index.js +1 -0
- package/esm/mdx-widgets/parsed-codes/wait-time.js +13 -0
- package/esm/modal/index.js +10 -0
- package/esm/modal/modal-action.js +76 -0
- package/esm/modal/modal-actions.js +39 -0
- package/esm/modal/modal-content.js +28 -0
- package/esm/modal/modal-context.js +6 -0
- package/esm/modal/modal-subtitle.js +30 -0
- package/esm/modal/modal-title.js +30 -0
- package/esm/modal/modal-wrapper.js +80 -0
- package/esm/modal/modal.js +104 -0
- package/esm/modal/stories.js +165 -0
- package/esm/note/index.js +2 -0
- package/esm/note/note.js +71 -0
- package/esm/note/stories.js +68 -0
- package/esm/page/index.js +9 -0
- package/esm/page/page-content.js +26 -0
- package/esm/page/page-footer.js +25 -0
- package/esm/page/page-header.js +33 -0
- package/esm/page/page.js +88 -0
- package/esm/page/stories.js +54 -0
- package/esm/pagination/index.js +6 -0
- package/esm/pagination/pagination-context.js +8 -0
- package/esm/pagination/pagination-ellipsis.js +73 -0
- package/esm/pagination/pagination-item.js +50 -0
- package/esm/pagination/pagination-next.js +25 -0
- package/esm/pagination/pagination-pages.js +90 -0
- package/esm/pagination/pagination-previous.js +25 -0
- package/esm/pagination/pagination.js +105 -0
- package/esm/pagination/stories.js +49 -0
- package/esm/popover/index.js +5 -0
- package/esm/popover/popover-context.js +9 -0
- package/esm/popover/popover-item.js +65 -0
- package/esm/popover/popover.js +83 -0
- package/esm/popover/stories.js +84 -0
- package/esm/progress/index.js +2 -0
- package/esm/progress/progress.js +76 -0
- package/esm/progress/stories.js +114 -0
- package/esm/radio/index.js +7 -0
- package/esm/radio/radio-context.js +9 -0
- package/esm/radio/radio-description.js +30 -0
- package/esm/radio/radio-group.js +61 -0
- package/esm/radio/radio.js +123 -0
- package/esm/radio/stories.js +98 -0
- package/esm/radio/styles.js +41 -0
- package/esm/rating/index.js +2 -0
- package/esm/rating/rating-icon.js +20 -0
- package/esm/rating/rating.js +115 -0
- package/esm/rating/stories.js +72 -0
- package/esm/row/index.js +2 -0
- package/esm/row/row.js +60 -0
- package/esm/section/index.js +2 -0
- package/esm/section/section.js +30 -0
- package/esm/select/index.js +4 -0
- package/esm/select/select-context.js +9 -0
- package/esm/select/select-dropdown.js +41 -0
- package/esm/select/select-icon-clear.js +41 -0
- package/esm/select/select-icon.js +23 -0
- package/esm/select/select-input.js +34 -0
- package/esm/select/select-multiple-value.js +23 -0
- package/esm/select/select-option.js +100 -0
- package/esm/select/select.js +244 -0
- package/esm/select/stories.js +239 -0
- package/esm/select/styles.js +48 -0
- package/esm/shared/backdrop.js +77 -0
- package/esm/shared/css-transition.js +71 -0
- package/esm/shared/dropdown.js +109 -0
- package/esm/shared/ellipsis.js +15 -0
- package/esm/shared/expand.js +95 -0
- package/esm/shared/highlight.js +47 -0
- package/esm/slider/index.js +2 -0
- package/esm/slider/slider-dot.js +27 -0
- package/esm/slider/slider-mark.js +38 -0
- package/esm/slider/slider.js +163 -0
- package/esm/slider/stories.js +134 -0
- package/esm/slider/styles.js +27 -0
- package/esm/snippet/index.js +2 -0
- package/esm/snippet/snippet-icon.js +27 -0
- package/esm/snippet/snippet.js +100 -0
- package/esm/snippet/stories.js +133 -0
- package/esm/snippet/styles.js +58 -0
- package/esm/spacer/index.js +2 -0
- package/esm/spacer/spacer.js +28 -0
- package/esm/spacer/stories.js +54 -0
- package/esm/spinner/index.js +2 -0
- package/esm/spinner/spinner.js +46 -0
- package/esm/spinner/stories.js +13 -0
- package/esm/styled-jsx-server.es.js +5 -0
- package/esm/styled-jsx.es.js +757 -0
- package/esm/tabs/index.js +5 -0
- package/esm/tabs/stories.js +92 -0
- package/esm/tabs/tabs-context.js +8 -0
- package/esm/tabs/tabs-item.js +80 -0
- package/esm/tabs/tabs.js +151 -0
- package/esm/tag/index.js +2 -0
- package/esm/tag/stories.js +58 -0
- package/esm/tag/tag.js +86 -0
- package/esm/text/child.js +78 -0
- package/esm/text/index.js +2 -0
- package/esm/text/stories.js +104 -0
- package/esm/text/text.js +94 -0
- package/esm/textarea/index.js +2 -0
- package/esm/textarea/stories.js +104 -0
- package/esm/textarea/textarea.js +116 -0
- package/esm/themes/index.js +2 -0
- package/esm/themes/presets/dark.js +67 -0
- package/esm/themes/presets/default.js +67 -0
- package/esm/themes/presets/index.js +1 -0
- package/esm/themes/presets/shared.js +42 -0
- package/esm/themes/themes.js +89 -0
- package/esm/toggle/index.js +2 -0
- package/esm/toggle/stories.js +55 -0
- package/esm/toggle/styles.js +27 -0
- package/esm/toggle/toggle.js +82 -0
- package/esm/tooltip/helper.js +21 -0
- package/esm/tooltip/index.js +2 -0
- package/esm/tooltip/placement.js +160 -0
- package/esm/tooltip/stories.js +183 -0
- package/esm/tooltip/styles.js +18 -0
- package/esm/tooltip/tooltip-content.js +83 -0
- package/esm/tooltip/tooltip-icon.js +32 -0
- package/esm/tooltip/tooltip.js +132 -0
- package/esm/use-all-themes/all-themes-context.js +9 -0
- package/esm/use-all-themes/index.js +2 -0
- package/esm/use-body-scroll/index.js +2 -0
- package/esm/use-body-scroll/use-body-scroll.js +70 -0
- package/esm/use-classes/index.js +2 -0
- package/esm/use-classes/use-classes.js +41 -0
- package/esm/use-click-away/index.js +2 -0
- package/esm/use-click-away/use-click-away.js +22 -0
- package/esm/use-clipboard/index.js +2 -0
- package/esm/use-clipboard/use-clipboard.js +46 -0
- package/esm/use-current-state/index.js +2 -0
- package/esm/use-current-state/use-current-state.js +26 -0
- package/esm/use-input/index.js +2 -0
- package/esm/use-input/use-input.js +32 -0
- package/esm/use-keyboard/codes.js +97 -0
- package/esm/use-keyboard/helper.js +26 -0
- package/esm/use-keyboard/index.js +4 -0
- package/esm/use-keyboard/use-keyboard.js +79 -0
- package/esm/use-media-query/index.js +2 -0
- package/esm/use-media-query/use-media-query.js +90 -0
- package/esm/use-modal/index.js +2 -0
- package/esm/use-modal/use-modal.js +26 -0
- package/esm/use-scale/index.js +6 -0
- package/esm/use-scale/scale-context.js +37 -0
- package/esm/use-scale/utils.js +62 -0
- package/esm/use-scale/with-scale.js +114 -0
- package/esm/use-tabs/index.js +2 -0
- package/esm/use-tabs/use-tabs.js +24 -0
- package/esm/use-theme/index.js +2 -0
- package/esm/use-theme/theme-context.js +7 -0
- package/esm/use-toasts/helpers.js +72 -0
- package/esm/use-toasts/index.js +2 -0
- package/esm/use-toasts/toast-container.js +127 -0
- package/esm/use-toasts/toast-item.js +48 -0
- package/esm/use-toasts/use-toast.js +124 -0
- package/esm/utils/calculations.js +27 -0
- package/esm/utils/collections.js +138 -0
- package/esm/utils/color.js +43 -0
- package/esm/utils/layouts.js +82 -0
- package/esm/utils/prop-types.js +22 -0
- package/esm/utils/types.js +1 -0
- package/esm/utils/use-body-scroll.js +2 -0
- package/esm/utils/use-bolio-ui-context.js +27 -0
- package/esm/utils/use-click-anywhere.js +16 -0
- package/esm/utils/use-click-away.js +2 -0
- package/esm/utils/use-clipboard.js +2 -0
- package/esm/utils/use-context-state/create-bolio-ui-context.js +57 -0
- package/esm/utils/use-context-state/use-context-state.js +44 -0
- package/esm/utils/use-current-state.js +2 -0
- package/esm/utils/use-default-props.js +22 -0
- package/esm/utils/use-dom-observer.js +28 -0
- package/esm/utils/use-drag.js +75 -0
- package/esm/utils/use-portal.js +40 -0
- package/esm/utils/use-previous.js +11 -0
- package/esm/utils/use-real-shape.js +53 -0
- package/esm/utils/use-resize.js +21 -0
- package/esm/utils/use-ssr.js +20 -0
- package/esm/utils/use-warning.js +17 -0
- package/package.json +140 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import _JSXStyle from "../styled-jsx.es.js";
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import useTheme from '../use-theme';
|
|
4
|
+
import CssTransition from '../shared/css-transition';
|
|
5
|
+
import { makeToastActions, getColors, getTranslateByPlacement } from './helpers';
|
|
6
|
+
var ToastItem = /*#__PURE__*/React.memo(function (_ref) {
|
|
7
|
+
var toast = _ref.toast,
|
|
8
|
+
layout = _ref.layout;
|
|
9
|
+
var theme = useTheme();
|
|
10
|
+
|
|
11
|
+
var _useMemo = useMemo(function () {
|
|
12
|
+
return getColors(theme.palette, toast.type);
|
|
13
|
+
}, [theme.palette, toast.type]),
|
|
14
|
+
color = _useMemo.color,
|
|
15
|
+
bgColor = _useMemo.bgColor;
|
|
16
|
+
|
|
17
|
+
var isReactNode = typeof toast.text !== 'string';
|
|
18
|
+
var padding = layout.padding,
|
|
19
|
+
margin = layout.margin,
|
|
20
|
+
maxHeight = layout.maxHeight,
|
|
21
|
+
maxWidth = layout.maxWidth,
|
|
22
|
+
width = layout.width,
|
|
23
|
+
placement = layout.placement;
|
|
24
|
+
|
|
25
|
+
var _useMemo2 = useMemo(function () {
|
|
26
|
+
return getTranslateByPlacement(placement);
|
|
27
|
+
}, [placement]),
|
|
28
|
+
enter = _useMemo2.enter,
|
|
29
|
+
leave = _useMemo2.leave;
|
|
30
|
+
|
|
31
|
+
return /*#__PURE__*/React.createElement(CssTransition, {
|
|
32
|
+
name: "toast",
|
|
33
|
+
visible: toast.visible,
|
|
34
|
+
clearTime: 350
|
|
35
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
36
|
+
key: toast.id,
|
|
37
|
+
className: _JSXStyle.dynamic([["1059503143", [width, maxWidth, maxHeight, theme.palette.foreground, bgColor, color, theme.layout.radius, theme.expressiveness.shadowSmall, theme.layout.gapHalf, enter, margin, padding, margin, padding, leave]]]) + " " + "toast"
|
|
38
|
+
}, isReactNode ? toast.text : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: _JSXStyle.dynamic([["1059503143", [width, maxWidth, maxHeight, theme.palette.foreground, bgColor, color, theme.layout.radius, theme.expressiveness.shadowSmall, theme.layout.gapHalf, enter, margin, padding, margin, padding, leave]]]) + " " + "message"
|
|
40
|
+
}, toast.text), /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
className: _JSXStyle.dynamic([["1059503143", [width, maxWidth, maxHeight, theme.palette.foreground, bgColor, color, theme.layout.radius, theme.expressiveness.shadowSmall, theme.layout.gapHalf, enter, margin, padding, margin, padding, leave]]]) + " " + "action"
|
|
42
|
+
}, makeToastActions(toast.actions, toast.cancel))), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
43
|
+
id: "1059503143",
|
|
44
|
+
dynamic: [width, maxWidth, maxHeight, theme.palette.foreground, bgColor, color, theme.layout.radius, theme.expressiveness.shadowSmall, theme.layout.gapHalf, enter, margin, padding, margin, padding, leave]
|
|
45
|
+
}, ".toast.__jsx-style-dynamic-selector{max-height:".concat(maxHeight, ";display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:").concat(theme.palette.foreground, ";background-color:").concat(bgColor, ";color:").concat(color, ";border:0;border-radius:").concat(theme.layout.radius, ";opacity:1;box-shadow:").concat(theme.expressiveness.shadowSmall, ";-webkit-transition:all 350ms cubic-bezier(0.1,0.2,0.1,1);transition:all 350ms cubic-bezier(0.1,0.2,0.1,1);overflow:hidden;}.message.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;font-size:0.875em;display:-webkit-box;word-break:break-all;overflow:hidden;max-height:100%;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.1rem;}.toast-enter.__jsx-style-dynamic-selector{opacity:0;height:0;padding:0;margin:0;-webkit-transform:").concat(enter, ";-ms-transform:").concat(enter, ";transform:").concat(enter, ";}.toast-enter-active.__jsx-style-dynamic-selector{opacity:1;height:auto;margin:").concat(margin, ";padding:").concat(padding, ";-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);}.toast-leave.__jsx-style-dynamic-selector{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);height:auto;margin:").concat(margin, ";padding:").concat(padding, ";}.toast-leave-active.__jsx-style-dynamic-selector{opacity:0;-webkit-transform:").concat(leave, ";-ms-transform:").concat(leave, ";transform:").concat(leave, ";}"))));
|
|
46
|
+
});
|
|
47
|
+
ToastItem.displayName = 'BolioUIToastItem';
|
|
48
|
+
export default ToastItem;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import { defaultToastLayout, useBolioUIContext } from '../utils/use-bolio-ui-context';
|
|
5
|
+
import { getId } from '../utils/collections';
|
|
6
|
+
var defaultToast = {
|
|
7
|
+
delay: 2000,
|
|
8
|
+
type: 'default'
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
var useToasts = function useToasts(layout) {
|
|
12
|
+
var _useBolioUIContext = useBolioUIContext(),
|
|
13
|
+
updateToasts = _useBolioUIContext.updateToasts,
|
|
14
|
+
toasts = _useBolioUIContext.toasts,
|
|
15
|
+
updateToastLayout = _useBolioUIContext.updateToastLayout,
|
|
16
|
+
updateLastToastId = _useBolioUIContext.updateLastToastId;
|
|
17
|
+
|
|
18
|
+
useEffect(function () {
|
|
19
|
+
if (!layout) return;
|
|
20
|
+
updateToastLayout(function () {
|
|
21
|
+
return layout ? _extends({}, defaultToastLayout, layout) : defaultToastLayout;
|
|
22
|
+
});
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
var cancel = function cancel(internalId) {
|
|
26
|
+
updateToasts(function (currentToasts) {
|
|
27
|
+
return currentToasts.map(function (item) {
|
|
28
|
+
if (item._internalIdent !== internalId) return item;
|
|
29
|
+
return _extends({}, item, {
|
|
30
|
+
visible: false
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
updateLastToastId(function () {
|
|
35
|
+
return internalId;
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var removeAll = function removeAll() {
|
|
40
|
+
updateToasts(function (last) {
|
|
41
|
+
return last.map(function (toast) {
|
|
42
|
+
return _extends({}, toast, {
|
|
43
|
+
visible: false
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var findToastOneByID = function findToastOneByID(id) {
|
|
50
|
+
return toasts.find(function (t) {
|
|
51
|
+
return t.id === id;
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var removeToastOneByID = function removeToastOneByID(id) {
|
|
56
|
+
updateToasts(function (last) {
|
|
57
|
+
return last.map(function (toast) {
|
|
58
|
+
if (toast.id !== id) return toast;
|
|
59
|
+
return _extends({}, toast, {
|
|
60
|
+
visible: false
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
var setToast = function setToast(toast) {
|
|
67
|
+
var internalIdent = "toast-".concat(getId());
|
|
68
|
+
var delay = toast.delay || defaultToast.delay;
|
|
69
|
+
|
|
70
|
+
if (toast.id) {
|
|
71
|
+
var hasIdent = toasts.find(function (t) {
|
|
72
|
+
return t.id === toast.id;
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
if (hasIdent) {
|
|
76
|
+
throw new Error('Toast: Already have the same key: "ident"');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
updateToasts(function (last) {
|
|
81
|
+
var newToast = {
|
|
82
|
+
delay: delay,
|
|
83
|
+
text: toast.text,
|
|
84
|
+
visible: true,
|
|
85
|
+
type: toast.type || defaultToast.type,
|
|
86
|
+
id: toast.id || internalIdent,
|
|
87
|
+
actions: toast.actions || [],
|
|
88
|
+
_internalIdent: internalIdent,
|
|
89
|
+
_timeout: window.setTimeout(function () {
|
|
90
|
+
cancel(internalIdent);
|
|
91
|
+
|
|
92
|
+
if (newToast._timeout) {
|
|
93
|
+
window.clearTimeout(newToast._timeout);
|
|
94
|
+
newToast._timeout = null;
|
|
95
|
+
}
|
|
96
|
+
}, delay),
|
|
97
|
+
cancel: function (_cancel) {
|
|
98
|
+
function cancel() {
|
|
99
|
+
return _cancel.apply(this, arguments);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
cancel.toString = function () {
|
|
103
|
+
return _cancel.toString();
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return cancel;
|
|
107
|
+
}(function () {
|
|
108
|
+
return cancel(internalIdent);
|
|
109
|
+
})
|
|
110
|
+
};
|
|
111
|
+
return [].concat(_toConsumableArray(last), [newToast]);
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
toasts: toasts,
|
|
117
|
+
setToast: setToast,
|
|
118
|
+
removeAll: removeAll,
|
|
119
|
+
findToastOneByID: findToastOneByID,
|
|
120
|
+
removeToastOneByID: removeToastOneByID
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export default useToasts;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the ratio of two numbers, maximum decimal length can be specified.
|
|
4
|
+
*
|
|
5
|
+
* (0, 100) => 0
|
|
6
|
+
* (50, 100) => 50
|
|
7
|
+
* (11.22, 100) => 11.22
|
|
8
|
+
* (11.22, 100, 4) => 11.2200
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export var getProportions = function getProportions(value, max) {
|
|
12
|
+
var maxFixed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
13
|
+
var val = value / max;
|
|
14
|
+
var couldBeDecimalValue = (Number.isNaN(val) ? 0 : val) * 100;
|
|
15
|
+
if (couldBeDecimalValue > 100) return 100;
|
|
16
|
+
if (couldBeDecimalValue < 0) return 0;
|
|
17
|
+
if (!"".concat(couldBeDecimalValue).includes('.')) return couldBeDecimalValue;
|
|
18
|
+
var decimal = "".concat(couldBeDecimalValue).split('.')[1];
|
|
19
|
+
if (decimal.length < maxFixed) return couldBeDecimalValue;
|
|
20
|
+
return +couldBeDecimalValue.toFixed(maxFixed);
|
|
21
|
+
};
|
|
22
|
+
export var useProportions = function useProportions(value, max) {
|
|
23
|
+
var maxFixed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
24
|
+
return useMemo(function () {
|
|
25
|
+
return getProportions(value, max, maxFixed);
|
|
26
|
+
}, [value, max, maxFixed]);
|
|
27
|
+
};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var getId = function getId() {
|
|
3
|
+
return Math.random().toString(32).slice(2, 10);
|
|
4
|
+
};
|
|
5
|
+
export var capitalize = function capitalize(str) {
|
|
6
|
+
var safeStr = String(str).trim();
|
|
7
|
+
return safeStr.charAt(0).toUpperCase() + safeStr.slice(1);
|
|
8
|
+
};
|
|
9
|
+
export var hasChild = function hasChild(children, child) {
|
|
10
|
+
var types = React.Children.map(children, function (item) {
|
|
11
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return null;
|
|
12
|
+
return item.type;
|
|
13
|
+
});
|
|
14
|
+
return (types || []).includes(child);
|
|
15
|
+
};
|
|
16
|
+
export var pickChild = function pickChild(children, targetChild) {
|
|
17
|
+
var target = [];
|
|
18
|
+
var withoutTargetChildren = React.Children.map(children, function (item) {
|
|
19
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return item;
|
|
20
|
+
|
|
21
|
+
if (item.type === targetChild) {
|
|
22
|
+
target.push(item);
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return item;
|
|
27
|
+
});
|
|
28
|
+
var targetChildren = target.length >= 0 ? target : undefined;
|
|
29
|
+
return [withoutTargetChildren, targetChildren];
|
|
30
|
+
};
|
|
31
|
+
export var pickChildByProps = function pickChildByProps(children, key, value) {
|
|
32
|
+
var target = [];
|
|
33
|
+
var isArray = Array.isArray(value);
|
|
34
|
+
var withoutPropChildren = React.Children.map(children, function (item) {
|
|
35
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return null;
|
|
36
|
+
if (!item.props) return item;
|
|
37
|
+
|
|
38
|
+
if (isArray) {
|
|
39
|
+
if (value.includes(item.props[key])) {
|
|
40
|
+
target.push(item);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return item;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (item.props[key] === value) {
|
|
48
|
+
target.push(item);
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return item;
|
|
53
|
+
});
|
|
54
|
+
var targetChildren = target.length >= 0 ? target : undefined;
|
|
55
|
+
return [withoutPropChildren, targetChildren];
|
|
56
|
+
};
|
|
57
|
+
export var pickChildrenFirst = function pickChildrenFirst(children) {
|
|
58
|
+
return React.Children.toArray(children)[0];
|
|
59
|
+
};
|
|
60
|
+
export var setChildrenProps = function setChildrenProps(children, props) {
|
|
61
|
+
var targetComponents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
62
|
+
if (React.Children.count(children) === 0) return [];
|
|
63
|
+
var allowAll = targetComponents.length === 0;
|
|
64
|
+
|
|
65
|
+
var clone = function clone(child) {
|
|
66
|
+
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
67
|
+
return /*#__PURE__*/React.cloneElement(child, props);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
return React.Children.map(children, function (item) {
|
|
71
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return item;
|
|
72
|
+
if (allowAll) return clone(item, props);
|
|
73
|
+
var isAllowed = targetComponents.find(function (child) {
|
|
74
|
+
return child === item.type;
|
|
75
|
+
});
|
|
76
|
+
if (isAllowed) return clone(item, props);
|
|
77
|
+
return item;
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
export var setChildrenIndex = function setChildrenIndex(children) {
|
|
81
|
+
var targetComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
82
|
+
if (React.Children.count(children) === 0) return [];
|
|
83
|
+
var allowAll = targetComponents.length === 0;
|
|
84
|
+
|
|
85
|
+
var clone = function clone(child) {
|
|
86
|
+
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
87
|
+
return /*#__PURE__*/React.cloneElement(child, props);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
var index = 0;
|
|
91
|
+
return React.Children.map(children, function (item) {
|
|
92
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return item;
|
|
93
|
+
index = index + 1;
|
|
94
|
+
if (allowAll) return clone(item, {
|
|
95
|
+
index: index
|
|
96
|
+
});
|
|
97
|
+
var isAllowed = targetComponents.find(function (child) {
|
|
98
|
+
return child === item.type;
|
|
99
|
+
});
|
|
100
|
+
if (isAllowed) return clone(item, {
|
|
101
|
+
index: index
|
|
102
|
+
});
|
|
103
|
+
index = index - 1;
|
|
104
|
+
return item;
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
export var getReactNode = function getReactNode(node) {
|
|
108
|
+
if (!node) return null;
|
|
109
|
+
if (typeof node !== 'function') return node;
|
|
110
|
+
return node();
|
|
111
|
+
};
|
|
112
|
+
export var isChildElement = function isChildElement(parent, child) {
|
|
113
|
+
if (!parent || !child) return false;
|
|
114
|
+
var node = child;
|
|
115
|
+
|
|
116
|
+
while (node) {
|
|
117
|
+
if (node === parent) return true;
|
|
118
|
+
node = node.parentNode;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return false;
|
|
122
|
+
};
|
|
123
|
+
export var isBolioUIElement = function isBolioUIElement(el) {
|
|
124
|
+
if (!el) return false;
|
|
125
|
+
if (el !== null && el !== void 0 && el.dataset && el !== null && el !== void 0 && el.dataset['bolio-ui']) return true;
|
|
126
|
+
el.attributes.getNamedItem('data-bolio-ui');
|
|
127
|
+
return !!el.attributes.getNamedItem('data-bolio-ui');
|
|
128
|
+
};
|
|
129
|
+
export var isBrowser = function isBrowser() {
|
|
130
|
+
return Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);
|
|
131
|
+
};
|
|
132
|
+
export var isMac = function isMac() {
|
|
133
|
+
if (!isBrowser()) return false;
|
|
134
|
+
return navigator.platform.toUpperCase().indexOf('MAC') >= 0;
|
|
135
|
+
};
|
|
136
|
+
export var isCSSNumberValue = function isCSSNumberValue(value) {
|
|
137
|
+
return value !== undefined && !Number.isNaN(+value);
|
|
138
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
|
|
3
|
+
var hexToRgb = function hexToRgb(color) {
|
|
4
|
+
var fullReg = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
|
5
|
+
var full = color.replace(fullReg, function (_, r, g, b) {
|
|
6
|
+
return "".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
|
|
7
|
+
});
|
|
8
|
+
var values = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(full);
|
|
9
|
+
|
|
10
|
+
if (!values) {
|
|
11
|
+
throw new Error("Bolio UI: Unsupported ".concat(color, " color."));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return [Number.parseInt(values[1], 16), Number.parseInt(values[2], 16), Number.parseInt(values[3], 16)];
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export var colorToRgbValues = function colorToRgbValues(color) {
|
|
18
|
+
if (color.charAt(0) === '#') return hexToRgb(color);
|
|
19
|
+
var safeColor = color.replace(/ /g, '');
|
|
20
|
+
var colorType = color.substr(0, 4);
|
|
21
|
+
var regArray = safeColor.match(/\((.+)\)/);
|
|
22
|
+
|
|
23
|
+
if (!colorType.startsWith('rgb') || !regArray) {
|
|
24
|
+
console.log(color);
|
|
25
|
+
throw new Error("Bolio UI: Only support [\"RGB\", \"RGBA\", \"HEX\"] color.");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return regArray[1].split(',').map(function (str) {
|
|
29
|
+
return Number.parseFloat(str);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
export var addColorAlpha = function addColorAlpha(color, alpha) {
|
|
33
|
+
if (!/^#|rgb|RGB/.test(color)) return color;
|
|
34
|
+
|
|
35
|
+
var _colorToRgbValues = colorToRgbValues(color),
|
|
36
|
+
_colorToRgbValues2 = _slicedToArray(_colorToRgbValues, 3),
|
|
37
|
+
r = _colorToRgbValues2[0],
|
|
38
|
+
g = _colorToRgbValues2[1],
|
|
39
|
+
b = _colorToRgbValues2[2];
|
|
40
|
+
|
|
41
|
+
var safeAlpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;
|
|
42
|
+
return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(safeAlpha, ")");
|
|
43
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
export var getElementOffset = function getElementOffset(el) {
|
|
5
|
+
if (!el) return {
|
|
6
|
+
top: 0,
|
|
7
|
+
left: 0
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
var _el$getBoundingClient = el.getBoundingClientRect(),
|
|
11
|
+
top = _el$getBoundingClient.top,
|
|
12
|
+
left = _el$getBoundingClient.left;
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
top: top,
|
|
16
|
+
left: left
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
var defaultRect = {
|
|
20
|
+
top: -1000,
|
|
21
|
+
left: -1000,
|
|
22
|
+
right: -1000,
|
|
23
|
+
width: 0,
|
|
24
|
+
height: 0,
|
|
25
|
+
elementTop: -1000
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var getRectFromDOMWithContainer = function getRectFromDOMWithContainer(domRect, getContainer) {
|
|
29
|
+
if (!domRect) return defaultRect;
|
|
30
|
+
var container = getContainer ? getContainer() : null;
|
|
31
|
+
var scrollElement = container || document.documentElement;
|
|
32
|
+
|
|
33
|
+
var _getElementOffset = getElementOffset(container),
|
|
34
|
+
offsetTop = _getElementOffset.top,
|
|
35
|
+
offsetLeft = _getElementOffset.left;
|
|
36
|
+
|
|
37
|
+
return _extends({}, domRect, {
|
|
38
|
+
width: domRect.width || domRect.right - domRect.left,
|
|
39
|
+
height: domRect.height || domRect.top - domRect.bottom,
|
|
40
|
+
top: domRect.bottom + scrollElement.scrollTop - offsetTop,
|
|
41
|
+
left: domRect.left + scrollElement.scrollLeft - offsetLeft,
|
|
42
|
+
elementTop: domRect.top + scrollElement.scrollTop - offsetTop
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export var isUnplacedRect = function isUnplacedRect(rect) {
|
|
47
|
+
if (!rect) return true;
|
|
48
|
+
return rect.top === defaultRect.top && rect.left === defaultRect.left;
|
|
49
|
+
};
|
|
50
|
+
export var getRefRect = function getRefRect(ref, getContainer) {
|
|
51
|
+
if (!ref || !ref.current) return defaultRect;
|
|
52
|
+
var rect = ref.current.getBoundingClientRect();
|
|
53
|
+
return getRectFromDOMWithContainer(rect, getContainer);
|
|
54
|
+
};
|
|
55
|
+
export var getEventRect = function getEventRect(event, getContainer) {
|
|
56
|
+
var _event$target;
|
|
57
|
+
|
|
58
|
+
var rect = event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.getBoundingClientRect();
|
|
59
|
+
if (!rect) return defaultRect;
|
|
60
|
+
return getRectFromDOMWithContainer(rect, getContainer);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var isRefTarget = function isRefTarget(eventOrRef) {
|
|
64
|
+
return typeof (eventOrRef === null || eventOrRef === void 0 ? void 0 : eventOrRef.target) === 'undefined';
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export var useRect = function useRect(initialState) {
|
|
68
|
+
var _useState = useState(initialState || defaultRect),
|
|
69
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
70
|
+
rect = _useState2[0],
|
|
71
|
+
setRect = _useState2[1];
|
|
72
|
+
|
|
73
|
+
var updateRect = function updateRect(eventOrRef, getContainer) {
|
|
74
|
+
if (isRefTarget(eventOrRef)) return setRect(getRefRect(eventOrRef, getContainer));
|
|
75
|
+
setRect(getEventRect(eventOrRef, getContainer));
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
rect: rect,
|
|
80
|
+
setRect: updateRect
|
|
81
|
+
};
|
|
82
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export var tuple = function tuple() {
|
|
2
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
3
|
+
args[_key] = arguments[_key];
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
return args;
|
|
7
|
+
};
|
|
8
|
+
export var tupleNumber = function tupleNumber() {
|
|
9
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
10
|
+
args[_key2] = arguments[_key2];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return args;
|
|
14
|
+
};
|
|
15
|
+
var buttonTypes = tuple('default', 'primary', 'secondary', 'info', 'success', 'warning', 'error', 'abort', 'primary-light', 'secondary-light', 'info-light', 'success-light', 'warning-light', 'error-light');
|
|
16
|
+
var normalTypes = tuple('default', 'primary', 'secondary', 'success', 'warning', 'error', 'info');
|
|
17
|
+
var snippetTypes = tuple('default', 'primary', 'secondary', 'success', 'warning', 'error', 'info', 'dark', 'lite');
|
|
18
|
+
var cardTypes = tuple('default', 'primary', 'secondary', 'success', 'warning', 'error', 'dark', 'lite', 'info');
|
|
19
|
+
var copyTypes = tuple('default', 'silent', 'prevent');
|
|
20
|
+
var triggerTypes = tuple('hover', 'click');
|
|
21
|
+
var placement = tuple('top', 'topStart', 'topEnd', 'left', 'leftStart', 'leftEnd', 'bottom', 'bottomStart', 'bottomEnd', 'right', 'rightStart', 'rightEnd');
|
|
22
|
+
var dividerAlign = tuple('start', 'center', 'end', 'left', 'right');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var defaultToastLayout = {
|
|
3
|
+
padding: '12px 16px',
|
|
4
|
+
margin: '8px 0',
|
|
5
|
+
width: '420px',
|
|
6
|
+
maxWidth: '90vw',
|
|
7
|
+
maxHeight: '75px',
|
|
8
|
+
placement: 'bottomRight'
|
|
9
|
+
};
|
|
10
|
+
var defaultParams = {
|
|
11
|
+
toasts: [],
|
|
12
|
+
toastLayout: defaultToastLayout,
|
|
13
|
+
updateToastLayout: function updateToastLayout(t) {
|
|
14
|
+
return t;
|
|
15
|
+
},
|
|
16
|
+
updateToasts: function updateToasts(t) {
|
|
17
|
+
return t;
|
|
18
|
+
},
|
|
19
|
+
lastUpdateToastId: null,
|
|
20
|
+
updateLastToastId: function updateLastToastId() {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export var BolioUIContent = /*#__PURE__*/React.createContext(defaultParams);
|
|
25
|
+
export var useBolioUIContext = function useBolioUIContext() {
|
|
26
|
+
return React.useContext(BolioUIContent);
|
|
27
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
var useClickAnyWhere = function useClickAnyWhere(handler) {
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
var callback = function callback(event) {
|
|
6
|
+
return handler(event);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
document.addEventListener('click', callback);
|
|
10
|
+
return function () {
|
|
11
|
+
return document.removeEventListener('click', callback);
|
|
12
|
+
};
|
|
13
|
+
}, [handler]);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default useClickAnyWhere;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
import React, { useImperativeHandle } from 'react';
|
|
5
|
+
import useContextState from './use-context-state';
|
|
6
|
+
import { capitalize } from '../collections';
|
|
7
|
+
|
|
8
|
+
var makeVirtualValues = function makeVirtualValues(values) {
|
|
9
|
+
var keys = Object.keys(values);
|
|
10
|
+
var handlers = keys.reduce(function (pre, current) {
|
|
11
|
+
var updateHandler = _defineProperty({}, "set".concat(capitalize(current)), function set(_next) {});
|
|
12
|
+
|
|
13
|
+
return _extends({}, pre, updateHandler);
|
|
14
|
+
}, {}); // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
|
|
16
|
+
var update = function update(_key, _next) {};
|
|
17
|
+
|
|
18
|
+
return _extends({
|
|
19
|
+
update: update
|
|
20
|
+
}, values, handlers);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export var createBolioUIContext = function createBolioUIContext(name, initialStates) {
|
|
24
|
+
var _ref2;
|
|
25
|
+
|
|
26
|
+
var virtualValues = makeVirtualValues(initialStates);
|
|
27
|
+
var Context = /*#__PURE__*/React.createContext(virtualValues);
|
|
28
|
+
var BolioUIContext = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
29
|
+
var defaultValues = _ref.defaultValues,
|
|
30
|
+
children = _ref.children,
|
|
31
|
+
onChange = _ref.onChange,
|
|
32
|
+
onChangeBefore = _ref.onChangeBefore;
|
|
33
|
+
var initialValues = typeof defaultValues === 'function' ? defaultValues() : defaultValues;
|
|
34
|
+
|
|
35
|
+
var mergedValues = _extends({}, initialStates, initialValues);
|
|
36
|
+
|
|
37
|
+
var _useContextState = useContextState(mergedValues, {
|
|
38
|
+
onChange: onChange ? onChange : function () {},
|
|
39
|
+
filter: onChangeBefore ? onChangeBefore : function () {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}),
|
|
43
|
+
_useContextState2 = _slicedToArray(_useContextState, 3),
|
|
44
|
+
states = _useContextState2[0],
|
|
45
|
+
statesRef = _useContextState2[2];
|
|
46
|
+
|
|
47
|
+
useImperativeHandle(ref, function () {
|
|
48
|
+
return statesRef.current;
|
|
49
|
+
}, [statesRef.current]);
|
|
50
|
+
return /*#__PURE__*/React.createElement(Context.Provider, {
|
|
51
|
+
value: states
|
|
52
|
+
}, children);
|
|
53
|
+
});
|
|
54
|
+
return _ref2 = {}, _defineProperty(_ref2, "".concat(capitalize(name), "Provider"), BolioUIContext), _defineProperty(_ref2, "use".concat(capitalize(name), "Context"), function useContext() {
|
|
55
|
+
return React.useContext(Context);
|
|
56
|
+
}), _ref2;
|
|
57
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import useCurrentState from '../use-current-state';
|
|
6
|
+
import { capitalize } from '../collections';
|
|
7
|
+
|
|
8
|
+
var useContextState = function useContextState(initialState, options) {
|
|
9
|
+
var _useCurrentState = useCurrentState(initialState),
|
|
10
|
+
_useCurrentState2 = _slicedToArray(_useCurrentState, 3),
|
|
11
|
+
state = _useCurrentState2[0],
|
|
12
|
+
setState = _useCurrentState2[1],
|
|
13
|
+
stateRef = _useCurrentState2[2];
|
|
14
|
+
|
|
15
|
+
var update = function update(key, next) {
|
|
16
|
+
var allowChange = options !== null && options !== void 0 && options.filter ? options === null || options === void 0 ? void 0 : options.filter(key, next) : true;
|
|
17
|
+
if (!allowChange) return;
|
|
18
|
+
setState(function (last) {
|
|
19
|
+
return _extends({}, last, _defineProperty({}, key, next));
|
|
20
|
+
});
|
|
21
|
+
(options === null || options === void 0 ? void 0 : options.onChange) && (options === null || options === void 0 ? void 0 : options.onChange(key, next));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var makeUpdates = function makeUpdates() {
|
|
25
|
+
var keys = Object.keys(state);
|
|
26
|
+
return keys.reduce(function (pre, current) {
|
|
27
|
+
var updateHandler = _defineProperty({}, "set".concat(capitalize(current)), function set(nextValue) {
|
|
28
|
+
update(current, nextValue);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
return _extends({}, pre, updateHandler);
|
|
32
|
+
}, {});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var updates = makeUpdates();
|
|
36
|
+
var stateMemo = useMemo(function () {
|
|
37
|
+
return _extends({
|
|
38
|
+
update: update
|
|
39
|
+
}, state, updates);
|
|
40
|
+
}, [state]);
|
|
41
|
+
return [stateMemo, setState, stateRef];
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default useContextState;
|