@mirai/ui 2.0.17 → 2.0.19
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/build/components/InputDate/InputDate.js +1 -1
- package/build/components/InputDate/InputDate.js.map +1 -1
- package/build/components/Modal/Modal.js +6 -4
- package/build/components/Modal/Modal.js.map +1 -1
- package/build/primitives/Text/Text.js +4 -2
- package/build/primitives/Text/Text.js.map +1 -1
- package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +31 -0
- package/build/primitives/Text/helpers/parseMarkdown.js +8 -3
- package/build/primitives/Text/helpers/parseMarkdown.js.map +1 -1
- package/package.json +1 -1
|
@@ -72,7 +72,7 @@ InputDate.propTypes = {
|
|
|
72
72
|
format: _propTypes.default.string,
|
|
73
73
|
max: _propTypes.default.string,
|
|
74
74
|
min: _propTypes.default.string,
|
|
75
|
-
placeholder: _propTypes.default.
|
|
75
|
+
placeholder: _propTypes.default.string,
|
|
76
76
|
value: _propTypes.default.string,
|
|
77
77
|
onChange: _propTypes.default.func,
|
|
78
78
|
onError: _propTypes.default.func
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputDate.js","names":["InputDate","format","DEFAULT_DATE_FORMAT","max","min","placeholder","value","propValue","onChange","onError","others","useState","setValue","useEffect","handleChange","nextValue","event","next","formatValue","errors","getInputDateErrors","required","Object","keys","length","displayName","propTypes","PropTypes","string","
|
|
1
|
+
{"version":3,"file":"InputDate.js","names":["InputDate","format","DEFAULT_DATE_FORMAT","max","min","placeholder","value","propValue","onChange","onError","others","useState","setValue","useEffect","handleChange","nextValue","event","next","formatValue","errors","getInputDateErrors","required","Object","keys","length","displayName","propTypes","PropTypes","string","func"],"sources":["../../../src/components/InputDate/InputDate.jsx"],"sourcesContent":["import { DEFAULT_DATE_FORMAT } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInputDateErrors } from '../../helpers';\nimport { InputText } from '../InputText';\nimport { formatValue } from './helpers';\n\nconst InputDate = ({\n format = DEFAULT_DATE_FORMAT,\n max,\n min,\n placeholder,\n value: propValue = '',\n onChange = () => {},\n onError = () => {},\n ...others\n}) => {\n const [value, setValue] = useState(propValue);\n\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n const handleChange = (nextValue, event) => {\n const next = formatValue(nextValue, format, value);\n if (next === value) return;\n\n setValue(next);\n onChange(next, event);\n\n const errors = getInputDateErrors({ format, max, min, value: next, required: others.required });\n if (Object.keys(errors || {}).length > 0) onError(errors);\n };\n\n return (\n <InputText\n {...others}\n maxLength={format.length}\n placeholder={placeholder || format}\n tag=\"input-date\"\n value={value}\n onChange={handleChange}\n />\n );\n};\n\nInputDate.displayName = 'Component:InputDate';\n\nInputDate.propTypes = {\n format: PropTypes.string,\n max: PropTypes.string,\n min: PropTypes.string,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n};\n\nexport { InputDate };\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAExC,IAAMA,SAAS,GAAG,SAAZA,SAAS,OAST;EAAA,uBARJC,MAAM;IAANA,MAAM,4BAAGC,2BAAmB;IAC5BC,GAAG,QAAHA,GAAG;IACHC,GAAG,QAAHA,GAAG;IACHC,WAAW,QAAXA,WAAW;IAAA,kBACXC,KAAK;IAAEC,SAAS,2BAAG,EAAE;IAAA,qBACrBC,QAAQ;IAARA,QAAQ,8BAAG,YAAM,CAAC,CAAC;IAAA,oBACnBC,OAAO;IAAPA,OAAO,6BAAG,YAAM,CAAC,CAAC;IACfC,MAAM;EAET,gBAA0B,IAAAC,eAAQ,EAACJ,SAAS,CAAC;IAAA;IAAtCD,KAAK;IAAEM,QAAQ;EAEtB,IAAAC,gBAAS,EAAC,YAAM;IACdD,QAAQ,CAACL,SAAS,CAAC;EACrB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,IAAMO,YAAY,GAAG,SAAfA,YAAY,CAAIC,SAAS,EAAEC,KAAK,EAAK;IACzC,IAAMC,IAAI,GAAG,IAAAC,qBAAW,EAACH,SAAS,EAAEd,MAAM,EAAEK,KAAK,CAAC;IAClD,IAAIW,IAAI,KAAKX,KAAK,EAAE;IAEpBM,QAAQ,CAACK,IAAI,CAAC;IACdT,QAAQ,CAACS,IAAI,EAAED,KAAK,CAAC;IAErB,IAAMG,MAAM,GAAG,IAAAC,2BAAkB,EAAC;MAAEnB,MAAM,EAANA,MAAM;MAAEE,GAAG,EAAHA,GAAG;MAAEC,GAAG,EAAHA,GAAG;MAAEE,KAAK,EAAEW,IAAI;MAAEI,QAAQ,EAAEX,MAAM,CAACW;IAAS,CAAC,CAAC;IAC/F,IAAIC,MAAM,CAACC,IAAI,CAACJ,MAAM,IAAI,CAAC,CAAC,CAAC,CAACK,MAAM,GAAG,CAAC,EAAEf,OAAO,CAACU,MAAM,CAAC;EAC3D,CAAC;EAED,oBACE,6BAAC,oBAAS,eACJT,MAAM;IACV,SAAS,EAAET,MAAM,CAACuB,MAAO;IACzB,WAAW,EAAEnB,WAAW,IAAIJ,MAAO;IACnC,GAAG,EAAC,YAAY;IAChB,KAAK,EAAEK,KAAM;IACb,QAAQ,EAAEQ;EAAa,GACvB;AAEN,CAAC;AAAC;AAEFd,SAAS,CAACyB,WAAW,GAAG,qBAAqB;AAE7CzB,SAAS,CAAC0B,SAAS,GAAG;EACpBzB,MAAM,EAAE0B,kBAAS,CAACC,MAAM;EACxBzB,GAAG,EAAEwB,kBAAS,CAACC,MAAM;EACrBxB,GAAG,EAAEuB,kBAAS,CAACC,MAAM;EACrBvB,WAAW,EAAEsB,kBAAS,CAACC,MAAM;EAC7BtB,KAAK,EAAEqB,kBAAS,CAACC,MAAM;EACvBpB,QAAQ,EAAEmB,kBAAS,CAACE,IAAI;EACxBpB,OAAO,EAAEkB,kBAAS,CAACE;AACrB,CAAC"}
|
|
@@ -15,7 +15,7 @@ var _primitives = require("../../primitives");
|
|
|
15
15
|
var _theme = require("../../theme");
|
|
16
16
|
var _Modal = require("./Modal.constants");
|
|
17
17
|
var _ModalModule = _interopRequireDefault(require("./Modal.module.css"));
|
|
18
|
-
var _excluded = ["blur", "children", "displayName", "fit", "mobileBehavior", "overflow", "portal", "preventDefault", "title", "visible", "onBack", "onClose", "onOverflow", "aria"];
|
|
18
|
+
var _excluded = ["blur", "children", "displayName", "fit", "mobileBehavior", "overflow", "portal", "preventDefault", "title", "visible", "withInstance", "onBack", "onClose", "onOverflow", "aria"];
|
|
19
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -55,6 +55,8 @@ var Modal = function Modal(_ref) {
|
|
|
55
55
|
preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,
|
|
56
56
|
title = _ref.title,
|
|
57
57
|
visible = _ref.visible,
|
|
58
|
+
_ref$withInstance = _ref.withInstance,
|
|
59
|
+
withInstance = _ref$withInstance === void 0 ? true : _ref$withInstance,
|
|
58
60
|
onBack = _ref.onBack,
|
|
59
61
|
onClose = _ref.onClose,
|
|
60
62
|
onOverflow = _ref.onOverflow,
|
|
@@ -79,7 +81,7 @@ var Modal = function Modal(_ref) {
|
|
|
79
81
|
instance = _useState4[0],
|
|
80
82
|
setInstance = _useState4[1];
|
|
81
83
|
(0, _react.useEffect)(function () {
|
|
82
|
-
if (_helpers.IS_JEST) return;
|
|
84
|
+
if (_helpers.IS_JEST || !withInstance) return;
|
|
83
85
|
!instance && visible ? setInstance(visible) : instance && !visible ? setTimeout(function () {
|
|
84
86
|
return setInstance(visible);
|
|
85
87
|
}, _Modal.UNLOAD_DELAY) : null;
|
|
@@ -140,7 +142,7 @@ var Modal = function Modal(_ref) {
|
|
|
140
142
|
preventDefault: preventDefault,
|
|
141
143
|
tag: "modal-overflow",
|
|
142
144
|
onPress: visible && overflow ? handleOverflow : undefined,
|
|
143
|
-
className: (0, _helpers.styles)(_ModalModule.default.container, isDesktop && mobileBehavior && _ModalModule.default.mobileBehavior, overflow && _ModalModule.default.overflow, overflow && blur && _ModalModule.default.blur, visible && instance && _ModalModule.default.visible, onOverflow && _ModalModule.default.onOverflow),
|
|
145
|
+
className: (0, _helpers.styles)(_ModalModule.default.container, isDesktop && mobileBehavior && _ModalModule.default.mobileBehavior, overflow && _ModalModule.default.overflow, overflow && blur && _ModalModule.default.blur, visible && (instance || !withInstance) && _ModalModule.default.visible, onOverflow && _ModalModule.default.onOverflow),
|
|
144
146
|
style: {
|
|
145
147
|
height: height
|
|
146
148
|
},
|
|
@@ -177,7 +179,7 @@ var Modal = function Modal(_ref) {
|
|
|
177
179
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
|
|
178
180
|
value: _primitives.ICON.CLOSE,
|
|
179
181
|
className: _ModalModule.default.icon
|
|
180
|
-
}))), instance && _react.default.Children.map(children, function (child, index) {
|
|
182
|
+
}))), (instance || !withInstance) && _react.default.Children.map(children, function (child, index) {
|
|
181
183
|
return !child || child === null ? null : /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
|
|
182
184
|
key: child.key || index
|
|
183
185
|
}, child.props), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["Event","publish","subscribe","Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","IS_JEST","instance","setInstance","useEffect","setTimeout","UNLOAD_DELAY","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","jsx","ReactDOM","createPortal","testId","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","CLOSE","React","Children","map","child","index","cloneElement","props","role","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["// import { Event } from '@mirai/data-sources';\nconst Event = {\n publish: () => {},\n subscribe: () => {},\n};\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE, UNLOAD_DELAY } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n const [instance, setInstance] = useState(IS_JEST);\n\n useEffect(() => {\n if (IS_JEST) return;\n\n !instance && visible\n ? setInstance(visible)\n : instance && !visible\n ? setTimeout(() => setInstance(visible), UNLOAD_DELAY)\n : null;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!instance, visible]);\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n tag=\"modal-overflow\"\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && instance && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId && overflow ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n tag=\"modal\"\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={ICON.CLOSE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {instance &&\n React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["Event","publish","subscribe","Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","withInstance","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","IS_JEST","instance","setInstance","useEffect","setTimeout","UNLOAD_DELAY","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","jsx","ReactDOM","createPortal","testId","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","CLOSE","React","Children","map","child","index","cloneElement","props","role","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["// import { Event } from '@mirai/data-sources';\nconst Event = {\n publish: () => {},\n subscribe: () => {},\n};\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE, UNLOAD_DELAY } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n withInstance = true,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n const [instance, setInstance] = useState(IS_JEST);\n\n useEffect(() => {\n if (IS_JEST || !withInstance) return;\n\n !instance && visible\n ? setInstance(visible)\n : instance && !visible\n ? setTimeout(() => setInstance(visible), UNLOAD_DELAY)\n : null;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!instance, visible]);\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n tag=\"modal-overflow\"\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && (instance || !withInstance) && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId && overflow ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n tag=\"modal\"\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={ICON.CLOSE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {(instance || !withInstance) &&\n React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}
|
|
@@ -63,7 +63,9 @@ var Text = function Text(_ref) {
|
|
|
63
63
|
success: success,
|
|
64
64
|
warning: warning
|
|
65
65
|
}), headline ? _TextModule.default["headline-".concat(level)] : action ? _TextModule.default.action : small ? _TextModule.default.small : tiny ? _TextModule.default.tiny : _TextModule.default.paragraph, underline && _TextModule.default.underline, upperCase && _TextModule.default.upperCase, wide && _TextModule.default.wide, others.className)
|
|
66
|
-
}), markdown ?
|
|
66
|
+
}), markdown ? Array.isArray(children) ? children.map(function (value) {
|
|
67
|
+
return (0, _helpers2.parseMarkdown)(value);
|
|
68
|
+
}) : (0, _helpers2.parseMarkdown)(children, tag) : children);
|
|
67
69
|
};
|
|
68
70
|
exports.Text = Text;
|
|
69
71
|
Text.displayName = 'Primitive:Text';
|
|
@@ -75,7 +77,7 @@ Text.propTypes = {
|
|
|
75
77
|
bold: _propTypes.default.bool,
|
|
76
78
|
brand: _propTypes.default.bool,
|
|
77
79
|
capitalize: _propTypes.default.bool,
|
|
78
|
-
children: _propTypes.default.
|
|
80
|
+
children: _propTypes.default.any,
|
|
79
81
|
dark: _propTypes.default.bool,
|
|
80
82
|
error: _propTypes.default.bool,
|
|
81
83
|
headline: _propTypes.default.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","names":["Text","accent","accentLight","accentDark","action","bold","brand","capitalize","children","dark","error","headline","info","level","light","markdown","medium","small","success","tag","tiny","underline","upperCase","warning","wide","others","React","createElement","Primitive","className","styles","style","text","color","paragraph","parseMarkdown","displayName","propTypes","PropTypes","bool","
|
|
1
|
+
{"version":3,"file":"Text.js","names":["Text","accent","accentLight","accentDark","action","bold","brand","capitalize","children","dark","error","headline","info","level","light","markdown","medium","small","success","tag","tiny","underline","upperCase","warning","wide","others","React","createElement","Primitive","className","styles","style","text","color","paragraph","Array","isArray","map","value","parseMarkdown","displayName","propTypes","PropTypes","bool","any","number","string"],"sources":["../../../src/primitives/Text/Text.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Primitive } from '../Primitive';\nimport { color, parseMarkdown } from './helpers';\nimport style from './Text.module.css';\n\nconst Text = ({\n accent,\n accentLight,\n accentDark,\n action,\n bold,\n brand,\n capitalize,\n children,\n dark,\n error,\n headline,\n info,\n level = 3,\n light,\n markdown = true,\n medium = false,\n small,\n success,\n tag = 'text',\n tiny,\n underline,\n upperCase,\n warning,\n wide,\n ...others\n}) =>\n React.createElement(\n Primitive,\n {\n ...others,\n tag,\n className: styles(\n style.text,\n bold && style.bold,\n medium && !bold && style.medium,\n brand && style.brand,\n capitalize && style.capitalize,\n color({ accent, accentDark, accentLight, dark, error, info, light, success, warning }),\n headline\n ? style[`headline-${level}`]\n : action\n ? style.action\n : small\n ? style.small\n : tiny\n ? style.tiny\n : style.paragraph,\n underline && style.underline,\n upperCase && style.upperCase,\n wide && style.wide,\n others.className,\n ),\n },\n markdown\n ? Array.isArray(children)\n ? children.map((value) => parseMarkdown(value))\n : parseMarkdown(children, tag)\n : children,\n );\n\nText.displayName = 'Primitive:Text';\n\nText.propTypes = {\n accent: PropTypes.bool,\n accentLight: PropTypes.bool,\n accentDark: PropTypes.bool,\n action: PropTypes.bool,\n bold: PropTypes.bool,\n brand: PropTypes.bool,\n capitalize: PropTypes.bool,\n children: PropTypes.any,\n dark: PropTypes.bool,\n error: PropTypes.bool,\n headline: PropTypes.bool,\n info: PropTypes.bool,\n level: PropTypes.number,\n light: PropTypes.bool,\n markdown: PropTypes.bool,\n medium: PropTypes.bool,\n small: PropTypes.bool,\n success: PropTypes.bool,\n tag: PropTypes.string,\n tiny: PropTypes.bool,\n underline: PropTypes.bool,\n upperCase: PropTypes.bool,\n warning: PropTypes.bool,\n wide: PropTypes.bool,\n};\n\nexport { Text };\n"],"mappings":"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"}
|
|
@@ -210,6 +210,37 @@ exports[`primitive:<Text> prop:markdown 1`] = `
|
|
|
210
210
|
</DocumentFragment>
|
|
211
211
|
`;
|
|
212
212
|
|
|
213
|
+
exports[`primitive:<Text> prop:markdown w/ array children 1`] = `
|
|
214
|
+
<DocumentFragment>
|
|
215
|
+
<ui-text
|
|
216
|
+
class="text paragraph"
|
|
217
|
+
>
|
|
218
|
+
<ui-text
|
|
219
|
+
style="font-style: italic;"
|
|
220
|
+
>
|
|
221
|
+
Lorem
|
|
222
|
+
</ui-text>
|
|
223
|
+
|
|
224
|
+
<ui-text
|
|
225
|
+
style="text-decoration: underline;"
|
|
226
|
+
>
|
|
227
|
+
Ipsum
|
|
228
|
+
</ui-text>
|
|
229
|
+
<ui-text
|
|
230
|
+
style="font-style: italic;"
|
|
231
|
+
>
|
|
232
|
+
Lorem
|
|
233
|
+
</ui-text>
|
|
234
|
+
|
|
235
|
+
<ui-text
|
|
236
|
+
style="text-decoration: underline;"
|
|
237
|
+
>
|
|
238
|
+
Ipsum
|
|
239
|
+
</ui-text>
|
|
240
|
+
</ui-text>
|
|
241
|
+
</DocumentFragment>
|
|
242
|
+
`;
|
|
243
|
+
|
|
213
244
|
exports[`primitive:<Text> prop:medium 1`] = `
|
|
214
245
|
<DocumentFragment>
|
|
215
246
|
<ui-text
|
|
@@ -24,6 +24,7 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
|
|
|
24
24
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
25
|
var LINK_REGEXP = /\[(.*?)\]\((.*?)\)/;
|
|
26
26
|
var MARKDOWN_REGEXP = /(\*\*|\*|_|~~|\[|\{)(.+?)(?:\1|\)|\})/g;
|
|
27
|
+
var SPACE_REGEXP = /\s/g;
|
|
27
28
|
var STYLE = {
|
|
28
29
|
BINDING: {
|
|
29
30
|
style: {
|
|
@@ -60,7 +61,9 @@ var STYLE = {
|
|
|
60
61
|
};
|
|
61
62
|
var parseMarkdown = function parseMarkdown(value) {
|
|
62
63
|
var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
|
|
63
|
-
if (!value || typeof value !== 'string' || value.match(MARKDOWN_REGEXP) === null)
|
|
64
|
+
if (!value || typeof value !== 'string' || value.match(SPACE_REGEXP) === null || value.match(MARKDOWN_REGEXP) === null) {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
64
67
|
var tokens = [];
|
|
65
68
|
var lastIndex = 0;
|
|
66
69
|
var match;
|
|
@@ -102,10 +105,12 @@ var parseMarkdown = function parseMarkdown(value) {
|
|
|
102
105
|
if (value.slice(lastIndex)) tokens.push({
|
|
103
106
|
text: value.slice(lastIndex)
|
|
104
107
|
});
|
|
105
|
-
return tokens.map(function (_ref) {
|
|
108
|
+
return tokens.map(function (_ref, index) {
|
|
106
109
|
var text = _ref.text,
|
|
107
110
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
108
|
-
return Object.keys(props).length ? /*#__PURE__*/_react.default.createElement(props.href ? 'a' : (0, _helpers.getTag)(tag),
|
|
111
|
+
return Object.keys(props).length ? /*#__PURE__*/_react.default.createElement(props.href ? 'a' : (0, _helpers.getTag)(tag), _objectSpread({
|
|
112
|
+
key: index
|
|
113
|
+
}, props), text) : text;
|
|
109
114
|
});
|
|
110
115
|
};
|
|
111
116
|
exports.parseMarkdown = parseMarkdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseMarkdown.js","names":["LINK_REGEXP","MARKDOWN_REGEXP","STYLE","BINDING","style","color","fontWeight","BOLD","ITALIC","fontStyle","LINE_THROUGH","textDecoration","LINK","UNDERLINE","parseMarkdown","value","tag","match","tokens","lastIndex","exec","raw","start","text","slice","index","push","title","href","map","props","Object","keys","length","React","createElement","getTag"],"sources":["../../../../src/primitives/Text/helpers/parseMarkdown.js"],"sourcesContent":["import React from 'react';\n\nimport { getTag } from '../../Primitive/helpers';\n\nconst LINK_REGEXP = /\\[(.*?)\\]\\((.*?)\\)/;\nconst MARKDOWN_REGEXP = /(\\*\\*|\\*|_|~~|\\[|\\{)(.+?)(?:\\1|\\)|\\})/g;\n\nconst STYLE = {\n BINDING: { style: { color: 'var(--mirai-ui-accent)', fontWeight: 'bold' } },\n BOLD: { style: { fontWeight: 'bold' } },\n ITALIC: { style: { fontStyle: 'italic' } },\n LINE_THROUGH: { style: { textDecoration: 'line-through' } },\n LINK: { style: { textDecoration: 'underline', color: 'var(--mirai-ui-accent)' } },\n UNDERLINE: { style: { textDecoration: 'underline' } },\n};\n\nexport const parseMarkdown = (value, tag = 'text') => {\n if (!value
|
|
1
|
+
{"version":3,"file":"parseMarkdown.js","names":["LINK_REGEXP","MARKDOWN_REGEXP","SPACE_REGEXP","STYLE","BINDING","style","color","fontWeight","BOLD","ITALIC","fontStyle","LINE_THROUGH","textDecoration","LINK","UNDERLINE","parseMarkdown","value","tag","match","tokens","lastIndex","exec","raw","start","text","slice","index","push","title","href","map","props","Object","keys","length","React","createElement","getTag","key"],"sources":["../../../../src/primitives/Text/helpers/parseMarkdown.js"],"sourcesContent":["import React from 'react';\n\nimport { getTag } from '../../Primitive/helpers';\n\nconst LINK_REGEXP = /\\[(.*?)\\]\\((.*?)\\)/;\nconst MARKDOWN_REGEXP = /(\\*\\*|\\*|_|~~|\\[|\\{)(.+?)(?:\\1|\\)|\\})/g;\nconst SPACE_REGEXP = /\\s/g;\n\nconst STYLE = {\n BINDING: { style: { color: 'var(--mirai-ui-accent)', fontWeight: 'bold' } },\n BOLD: { style: { fontWeight: 'bold' } },\n ITALIC: { style: { fontStyle: 'italic' } },\n LINE_THROUGH: { style: { textDecoration: 'line-through' } },\n LINK: { style: { textDecoration: 'underline', color: 'var(--mirai-ui-accent)' } },\n UNDERLINE: { style: { textDecoration: 'underline' } },\n};\n\nexport const parseMarkdown = (value, tag = 'text') => {\n if (\n !value ||\n typeof value !== 'string' ||\n value.match(SPACE_REGEXP) === null ||\n value.match(MARKDOWN_REGEXP) === null\n ) {\n return value;\n }\n\n const tokens = [];\n let lastIndex = 0;\n let match;\n\n while ((match = MARKDOWN_REGEXP.exec(value)) !== null) {\n const [raw, start, text] = match;\n\n if (value.slice(lastIndex, match.index)) tokens.push({ text: value.slice(lastIndex, match.index) });\n\n if (start === '**') tokens.push({ text, ...STYLE.BOLD });\n else if (start === '*') tokens.push({ text, ...STYLE.ITALIC });\n else if (start === '_') tokens.push({ text, ...STYLE.UNDERLINE });\n else if (start === '~~') tokens.push({ text, ...STYLE.LINE_THROUGH });\n else if (start === '{') tokens.push({ text: raw, ...STYLE.BINDING });\n else if (start === '[') {\n const [, title, href] = raw.match(LINK_REGEXP);\n tokens.push({ text: title, href, ...STYLE.LINK });\n } else {\n tokens.push({ text: raw });\n }\n\n lastIndex = MARKDOWN_REGEXP.lastIndex;\n }\n\n if (value.slice(lastIndex)) tokens.push({ text: value.slice(lastIndex) });\n\n return tokens.map(({ text, ...props }, index) =>\n Object.keys(props).length\n ? React.createElement(props.href ? 'a' : getTag(tag), { key: index, ...props }, text)\n : text,\n );\n};\n"],"mappings":"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"}
|