@simplybusiness/mobius 10.3.0 → 10.3.2
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/CHANGELOG.md +12 -0
- package/dist/cjs/components/AddressLookup/AddressLookup.js +224 -198
- package/dist/cjs/components/AddressLookup/AddressLookup.js.map +3 -3
- package/dist/cjs/components/AddressLookup/index.js +224 -198
- package/dist/cjs/components/AddressLookup/index.js.map +3 -3
- package/dist/cjs/components/Alert/Alert.js +37 -11
- package/dist/cjs/components/Alert/Alert.js.map +3 -3
- package/dist/cjs/components/Alert/index.js +37 -11
- package/dist/cjs/components/Alert/index.js.map +3 -3
- package/dist/cjs/components/Checkbox/Checkbox.js +199 -173
- package/dist/cjs/components/Checkbox/Checkbox.js.map +3 -3
- package/dist/cjs/components/Checkbox/CheckboxGroup.js +199 -173
- package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +3 -3
- package/dist/cjs/components/Checkbox/index.js +199 -173
- package/dist/cjs/components/Checkbox/index.js.map +3 -3
- package/dist/cjs/components/Combobox/Combobox.js +224 -198
- package/dist/cjs/components/Combobox/Combobox.js.map +3 -3
- package/dist/cjs/components/Combobox/index.js +224 -198
- package/dist/cjs/components/Combobox/index.js.map +3 -3
- package/dist/cjs/components/DateField/DateField.js +215 -189
- package/dist/cjs/components/DateField/DateField.js.map +3 -3
- package/dist/cjs/components/DateField/index.js +215 -189
- package/dist/cjs/components/DateField/index.js.map +3 -3
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js +199 -173
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js.map +3 -3
- package/dist/cjs/components/ErrorMessage/index.js +199 -173
- package/dist/cjs/components/ErrorMessage/index.js.map +3 -3
- package/dist/cjs/components/ExpandableText/ExpandableText.js +196 -170
- package/dist/cjs/components/ExpandableText/ExpandableText.js.map +3 -3
- package/dist/cjs/components/ExpandableText/index.js +196 -170
- package/dist/cjs/components/ExpandableText/index.js.map +3 -3
- package/dist/cjs/components/MaskedField/MaskedField.js +215 -189
- package/dist/cjs/components/MaskedField/MaskedField.js.map +3 -3
- package/dist/cjs/components/MaskedField/index.js +215 -189
- package/dist/cjs/components/MaskedField/index.js.map +3 -3
- package/dist/cjs/components/NumberField/NumberField.js +215 -189
- package/dist/cjs/components/NumberField/NumberField.js.map +3 -3
- package/dist/cjs/components/NumberField/index.js +215 -189
- package/dist/cjs/components/NumberField/index.js.map +3 -3
- package/dist/cjs/components/PasswordField/PasswordField.js +215 -189
- package/dist/cjs/components/PasswordField/PasswordField.js.map +3 -3
- package/dist/cjs/components/PasswordField/ShowHideButton.js +196 -170
- package/dist/cjs/components/PasswordField/ShowHideButton.js.map +3 -3
- package/dist/cjs/components/PasswordField/index.js +215 -189
- package/dist/cjs/components/PasswordField/index.js.map +3 -3
- package/dist/cjs/components/Radio/Radio.js +199 -173
- package/dist/cjs/components/Radio/Radio.js.map +3 -3
- package/dist/cjs/components/Radio/RadioGroup.js +199 -173
- package/dist/cjs/components/Radio/RadioGroup.js.map +3 -3
- package/dist/cjs/components/Radio/index.js +199 -173
- package/dist/cjs/components/Radio/index.js.map +3 -3
- package/dist/cjs/components/Select/Select.js +199 -173
- package/dist/cjs/components/Select/Select.js.map +3 -3
- package/dist/cjs/components/Select/index.js +199 -173
- package/dist/cjs/components/Select/index.js.map +3 -3
- package/dist/cjs/components/Text/Text.js +2 -1
- package/dist/cjs/components/Text/Text.js.map +2 -2
- package/dist/cjs/components/Text/index.js +2 -1
- package/dist/cjs/components/Text/index.js.map +2 -2
- package/dist/cjs/components/TextArea/TextArea.js +199 -173
- package/dist/cjs/components/TextArea/TextArea.js.map +3 -3
- package/dist/cjs/components/TextArea/index.js +199 -173
- package/dist/cjs/components/TextArea/index.js.map +3 -3
- package/dist/cjs/components/TextField/TextField.js +215 -189
- package/dist/cjs/components/TextField/TextField.js.map +3 -3
- package/dist/cjs/components/TextField/index.js +215 -189
- package/dist/cjs/components/TextField/index.js.map +3 -3
- package/dist/cjs/components/TextOrHTML/TextOrHTML.js +32 -6
- package/dist/cjs/components/TextOrHTML/TextOrHTML.js.map +3 -3
- package/dist/cjs/components/TextOrHTML/index.js +32 -6
- package/dist/cjs/components/TextOrHTML/index.js.map +3 -3
- package/dist/cjs/components/index.js +205 -178
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/index.js +205 -178
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/meta.json +299 -119
- package/dist/esm/{chunk-ZS5MFZHD.js → chunk-A66R42LG.js} +2 -1
- package/dist/esm/{chunk-ZS5MFZHD.js.map → chunk-A66R42LG.js.map} +2 -2
- package/dist/esm/chunk-DYTHXKMX.js +67 -0
- package/dist/esm/chunk-DYTHXKMX.js.map +7 -0
- package/dist/esm/{chunk-QWD72EVP.js → chunk-JNAQ76CR.js} +2 -2
- package/dist/esm/{chunk-I6EUIFUJ.js → chunk-W2RQH4WS.js} +2 -2
- package/dist/esm/components/AddressLookup/AddressLookup.js +4 -4
- package/dist/esm/components/AddressLookup/index.js +4 -4
- package/dist/esm/components/Alert/Alert.js +3 -3
- package/dist/esm/components/Alert/index.js +3 -3
- package/dist/esm/components/Checkbox/Checkbox.js +4 -4
- package/dist/esm/components/Checkbox/CheckboxGroup.js +4 -4
- package/dist/esm/components/Checkbox/index.js +4 -4
- package/dist/esm/components/Combobox/Combobox.js +4 -4
- package/dist/esm/components/Combobox/index.js +4 -4
- package/dist/esm/components/DateField/DateField.js +4 -4
- package/dist/esm/components/DateField/index.js +4 -4
- package/dist/esm/components/ErrorMessage/ErrorMessage.js +4 -4
- package/dist/esm/components/ErrorMessage/index.js +4 -4
- package/dist/esm/components/ExpandableText/ExpandableText.js +4 -4
- package/dist/esm/components/ExpandableText/index.js +4 -4
- package/dist/esm/components/MaskedField/MaskedField.js +4 -4
- package/dist/esm/components/MaskedField/index.js +4 -4
- package/dist/esm/components/NumberField/NumberField.js +4 -4
- package/dist/esm/components/NumberField/index.js +4 -4
- package/dist/esm/components/PasswordField/PasswordField.js +4 -4
- package/dist/esm/components/PasswordField/ShowHideButton.js +4 -4
- package/dist/esm/components/PasswordField/index.js +4 -4
- package/dist/esm/components/Radio/Radio.js +4 -4
- package/dist/esm/components/Radio/RadioGroup.js +4 -4
- package/dist/esm/components/Radio/index.js +4 -4
- package/dist/esm/components/Select/Select.js +4 -4
- package/dist/esm/components/Select/index.js +4 -4
- package/dist/esm/components/Text/Text.js +5 -3
- package/dist/esm/components/Text/index.js +5 -3
- package/dist/esm/components/TextArea/TextArea.js +4 -4
- package/dist/esm/components/TextArea/index.js +4 -4
- package/dist/esm/components/TextField/TextField.js +4 -4
- package/dist/esm/components/TextField/index.js +4 -4
- package/dist/esm/components/TextOrHTML/TextOrHTML.js +2 -2
- package/dist/esm/components/TextOrHTML/index.js +2 -2
- package/dist/esm/components/index.js +7 -5
- package/dist/esm/index.js +7 -5
- package/dist/esm/meta.json +176 -161
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Text/Text.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/Table/Table.test.tsx +2 -5
- package/src/components/Text/Text.test.tsx +3 -4
- package/src/components/Text/Text.tsx +1 -1
- package/src/components/TextOrHTML/TextOrHTML.test.tsx +54 -3
- package/src/components/TextOrHTML/TextOrHTML.tsx +46 -9
- package/dist/esm/chunk-VIDKIVA6.js +0 -40
- package/dist/esm/chunk-VIDKIVA6.js.map +0 -7
- /package/dist/esm/{chunk-QWD72EVP.js.map → chunk-JNAQ76CR.js.map} +0 -0
- /package/dist/esm/{chunk-I6EUIFUJ.js.map → chunk-W2RQH4WS.js.map} +0 -0
|
@@ -34,7 +34,7 @@ __export(Alert_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(Alert_exports);
|
|
36
36
|
var import_icons = require("@simplybusiness/icons");
|
|
37
|
-
var
|
|
37
|
+
var import_dedupe4 = __toESM(require("classnames/dedupe"));
|
|
38
38
|
|
|
39
39
|
// src/components/Icon/Icon.tsx
|
|
40
40
|
var import_dedupe = __toESM(require("classnames/dedupe"));
|
|
@@ -94,6 +94,7 @@ function Icon({
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
// src/components/TextOrHTML/TextOrHTML.tsx
|
|
97
|
+
var import_dedupe3 = __toESM(require("classnames/dedupe"));
|
|
97
98
|
var import_react = require("react");
|
|
98
99
|
|
|
99
100
|
// src/components/Text/Text.tsx
|
|
@@ -126,7 +127,20 @@ Text.displayName = "Text";
|
|
|
126
127
|
|
|
127
128
|
// src/components/TextOrHTML/TextOrHTML.tsx
|
|
128
129
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
129
|
-
var
|
|
130
|
+
var isBlockHTML = (text) => /^\s*<[a-z]/i.test(text);
|
|
131
|
+
var containsHTML = (text) => /<[a-z/]/i.test(text) || /&(?:#\d+|#x[\da-f]+|[a-z]\w*);/i.test(text);
|
|
132
|
+
var buildTextClasses = (textProps, htmlClassName) => {
|
|
133
|
+
const { variant, elementType, spacing, className } = textProps;
|
|
134
|
+
const variantType = variant || getElementType(variant, elementType);
|
|
135
|
+
return (0, import_dedupe3.default)(
|
|
136
|
+
"mobius",
|
|
137
|
+
"mobius-text",
|
|
138
|
+
{ [`--is-${variantType}`]: variantType },
|
|
139
|
+
{ [`--has-line-height-${spacing}`]: spacing },
|
|
140
|
+
className,
|
|
141
|
+
htmlClassName
|
|
142
|
+
);
|
|
143
|
+
};
|
|
130
144
|
var TextOrHTML = ({
|
|
131
145
|
ref,
|
|
132
146
|
text,
|
|
@@ -136,11 +150,23 @@ var TextOrHTML = ({
|
|
|
136
150
|
autoDetect = false,
|
|
137
151
|
...textProps
|
|
138
152
|
}) => {
|
|
139
|
-
const
|
|
140
|
-
const shouldWrapInText = autoDetect ? textWrapper || !textIsHTML : textWrapper;
|
|
141
|
-
const resolvedElementType = htmlElementType ?? (textIsHTML ? "div" : "span");
|
|
142
|
-
const DangerousComponent = resolvedElementType;
|
|
153
|
+
const textIsBlockHTML = autoDetect && isBlockHTML(text);
|
|
143
154
|
const dangerousHTML = (0, import_react.useMemo)(() => ({ __html: text }), [text]);
|
|
155
|
+
if (autoDetect && !textIsBlockHTML) {
|
|
156
|
+
const { variant, spacing, elementType, className, ...domProps } = textProps;
|
|
157
|
+
const Element = getElementType(variant, elementType);
|
|
158
|
+
const classes = buildTextClasses(textProps, htmlClassName);
|
|
159
|
+
return containsHTML(text) ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
160
|
+
Element,
|
|
161
|
+
{
|
|
162
|
+
ref,
|
|
163
|
+
...domProps,
|
|
164
|
+
className: classes,
|
|
165
|
+
dangerouslySetInnerHTML: dangerousHTML
|
|
166
|
+
}
|
|
167
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Element, { ref, ...domProps, className: classes, children: text });
|
|
168
|
+
}
|
|
169
|
+
const DangerousComponent = htmlElementType ?? (textIsBlockHTML ? "div" : "span");
|
|
144
170
|
const dangerousElement = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
145
171
|
DangerousComponent,
|
|
146
172
|
{
|
|
@@ -148,7 +174,7 @@ var TextOrHTML = ({
|
|
|
148
174
|
dangerouslySetInnerHTML: dangerousHTML
|
|
149
175
|
}
|
|
150
176
|
);
|
|
151
|
-
if (
|
|
177
|
+
if (textWrapper) {
|
|
152
178
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Text, { ref, ...textProps, children: dangerousElement });
|
|
153
179
|
}
|
|
154
180
|
return dangerousElement;
|
|
@@ -173,7 +199,7 @@ var Alert = ({ ref, ...props }) => {
|
|
|
173
199
|
if (!show) return null;
|
|
174
200
|
const variant = variantProp && isAlertVariant(variantProp) ? variantProp : "info";
|
|
175
201
|
const colorValue = variant === "success" ? `var(--color-valid)` : `var(--color-${variant})`;
|
|
176
|
-
const classes = (0,
|
|
202
|
+
const classes = (0, import_dedupe4.default)(
|
|
177
203
|
"mobius",
|
|
178
204
|
"mobius-alert",
|
|
179
205
|
{
|
|
@@ -191,9 +217,9 @@ var Alert = ({ ref, ...props }) => {
|
|
|
191
217
|
warning: import_icons.warning,
|
|
192
218
|
error: import_icons.error
|
|
193
219
|
};
|
|
194
|
-
const headerClasses = (0,
|
|
195
|
-
const iconClasses = (0,
|
|
196
|
-
const contentClasses = (0,
|
|
220
|
+
const headerClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__header");
|
|
221
|
+
const iconClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__icon");
|
|
222
|
+
const contentClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__content");
|
|
197
223
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Element, { ref, role: "alert", ...otherProps, className: classes, children: [
|
|
198
224
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: iconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { icon: icon[variant], color: colorValue }) }),
|
|
199
225
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/Alert/Alert.tsx", "../../../../src/components/Icon/Icon.tsx", "../../../../src/components/TextOrHTML/TextOrHTML.tsx", "../../../../src/components/Text/Text.tsx"],
|
|
4
|
-
"sourcesContent": ["import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuD;AACvD,IAAAA,iBAAuB;;;ACDvB,oBAAuB;AAEvB,kBAAO;AA2CH;AAzCJ,IAAM,cAAc;AAEpB,IAAM,wBAAwB,CAAC,QAC7B,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAEpC,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAc;AACZ,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AAEA,QAAM,cAAU,cAAAC;AAAA,IACd;AAAA,IACA;AAAA,IACA,eAAe,WAAW;AAAA,IAC1B,UAAU,IAAI;AAAA,IACd;AAAA,IACA;AAAA,MACE,CAAC,GAAG,WAAW,KAAK,GAAG;AAAA,MACvB,CAAC,GAAG,WAAW,OAAO,GAAG,QAAQ;AAAA,MACjC,CAAC,GAAG,WAAW,eAAe,GAAG;AAAA,IACnC;AAAA,EACF;AAEA,QAAM,EAAE,UAAU,OAAO,QAAQ,YAAY,IAAI;AACjD,QAAM,oBAAoB,SAAS,MAAM,GAAG,EAAE,KAAK,GAAG;AAEtD,QAAM,eAAe,GAAG,sBAAsB,iBAAiB,CAAC;AAChE,QAAM,YAAY,SAAS;AAE3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,MACX,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAAS,OAAO,KAAK,IAAI,MAAM;AAAA,MAC/B,OAAO,EAAE,MAAM;AAAA,MACd,GAAG;AAAA,MAEJ;AAAA,oDAAC,WAAO,qBAAU;AAAA,QAClB,4CAAC,UAAK,MAAK,gBAAe,GAAG,aAAa;AAAA;AAAA;AAAA,EAC5C;AAEJ;;;
|
|
6
|
-
"names": ["import_dedupe", "classNames", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "import_jsx_runtime", "classNames"]
|
|
4
|
+
"sourcesContent": ["import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import classNames from \"classnames/dedupe\";\nimport type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text, getElementType } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isBlockHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\nconst containsHTML = (text: string) =>\n /<[a-z/]/i.test(text) || /&(?:#\\d+|#x[\\da-f]+|[a-z]\\w*);/i.test(text); // tag or entity\n\nconst buildTextClasses = (\n textProps: Omit<TextProps, \"children\">,\n htmlClassName?: string,\n) => {\n const { variant, elementType, spacing, className } = textProps;\n const variantType = variant || getElementType(variant, elementType);\n return classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n htmlClassName,\n );\n};\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsBlockHTML = autoDetect && isBlockHTML(text);\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n // Non-block text with autoDetect: render directly on a Text-equivalent element,\n // avoiding unnecessary <span> nesting inside <p>.\n if (autoDetect && !textIsBlockHTML) {\n const { variant, spacing, elementType, className, ...domProps } = textProps;\n const Element = getElementType(variant, elementType);\n const classes = buildTextClasses(textProps, htmlClassName);\n\n return containsHTML(text) ? (\n <Element\n ref={ref}\n {...domProps}\n className={classes}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n ) : (\n <Element ref={ref} {...domProps} className={classes}>\n {text}\n </Element>\n );\n }\n\n const DangerousComponent =\n htmlElementType ?? (textIsBlockHTML ? \"div\" : \"span\");\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (textWrapper) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n): ElementType => {\n // Explicit elementType always wins\n if (elementType) {\n return elementType;\n }\n // Infer element from variant\n if (variant && [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant)) {\n return variant as ElementType;\n }\n return \"p\";\n};\n\nconst Text = ({ ref, elementType, ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const Element: ElementType = getElementType(variant, elementType);\n const variantType = variant || Element;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Element ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_dedupe", "classNames", "import_dedupe", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "classNames", "import_jsx_runtime", "classNames"]
|
|
7
7
|
}
|
|
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(Alert_exports);
|
|
|
36
36
|
|
|
37
37
|
// src/components/Alert/Alert.tsx
|
|
38
38
|
var import_icons = require("@simplybusiness/icons");
|
|
39
|
-
var
|
|
39
|
+
var import_dedupe4 = __toESM(require("classnames/dedupe"));
|
|
40
40
|
|
|
41
41
|
// src/components/Icon/Icon.tsx
|
|
42
42
|
var import_dedupe = __toESM(require("classnames/dedupe"));
|
|
@@ -96,6 +96,7 @@ function Icon({
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
// src/components/TextOrHTML/TextOrHTML.tsx
|
|
99
|
+
var import_dedupe3 = __toESM(require("classnames/dedupe"));
|
|
99
100
|
var import_react = require("react");
|
|
100
101
|
|
|
101
102
|
// src/components/Text/Text.tsx
|
|
@@ -128,7 +129,20 @@ Text.displayName = "Text";
|
|
|
128
129
|
|
|
129
130
|
// src/components/TextOrHTML/TextOrHTML.tsx
|
|
130
131
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
131
|
-
var
|
|
132
|
+
var isBlockHTML = (text) => /^\s*<[a-z]/i.test(text);
|
|
133
|
+
var containsHTML = (text) => /<[a-z/]/i.test(text) || /&(?:#\d+|#x[\da-f]+|[a-z]\w*);/i.test(text);
|
|
134
|
+
var buildTextClasses = (textProps, htmlClassName) => {
|
|
135
|
+
const { variant, elementType, spacing, className } = textProps;
|
|
136
|
+
const variantType = variant || getElementType(variant, elementType);
|
|
137
|
+
return (0, import_dedupe3.default)(
|
|
138
|
+
"mobius",
|
|
139
|
+
"mobius-text",
|
|
140
|
+
{ [`--is-${variantType}`]: variantType },
|
|
141
|
+
{ [`--has-line-height-${spacing}`]: spacing },
|
|
142
|
+
className,
|
|
143
|
+
htmlClassName
|
|
144
|
+
);
|
|
145
|
+
};
|
|
132
146
|
var TextOrHTML = ({
|
|
133
147
|
ref,
|
|
134
148
|
text,
|
|
@@ -138,11 +152,23 @@ var TextOrHTML = ({
|
|
|
138
152
|
autoDetect = false,
|
|
139
153
|
...textProps
|
|
140
154
|
}) => {
|
|
141
|
-
const
|
|
142
|
-
const shouldWrapInText = autoDetect ? textWrapper || !textIsHTML : textWrapper;
|
|
143
|
-
const resolvedElementType = htmlElementType ?? (textIsHTML ? "div" : "span");
|
|
144
|
-
const DangerousComponent = resolvedElementType;
|
|
155
|
+
const textIsBlockHTML = autoDetect && isBlockHTML(text);
|
|
145
156
|
const dangerousHTML = (0, import_react.useMemo)(() => ({ __html: text }), [text]);
|
|
157
|
+
if (autoDetect && !textIsBlockHTML) {
|
|
158
|
+
const { variant, spacing, elementType, className, ...domProps } = textProps;
|
|
159
|
+
const Element = getElementType(variant, elementType);
|
|
160
|
+
const classes = buildTextClasses(textProps, htmlClassName);
|
|
161
|
+
return containsHTML(text) ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
162
|
+
Element,
|
|
163
|
+
{
|
|
164
|
+
ref,
|
|
165
|
+
...domProps,
|
|
166
|
+
className: classes,
|
|
167
|
+
dangerouslySetInnerHTML: dangerousHTML
|
|
168
|
+
}
|
|
169
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Element, { ref, ...domProps, className: classes, children: text });
|
|
170
|
+
}
|
|
171
|
+
const DangerousComponent = htmlElementType ?? (textIsBlockHTML ? "div" : "span");
|
|
146
172
|
const dangerousElement = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
147
173
|
DangerousComponent,
|
|
148
174
|
{
|
|
@@ -150,7 +176,7 @@ var TextOrHTML = ({
|
|
|
150
176
|
dangerouslySetInnerHTML: dangerousHTML
|
|
151
177
|
}
|
|
152
178
|
);
|
|
153
|
-
if (
|
|
179
|
+
if (textWrapper) {
|
|
154
180
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Text, { ref, ...textProps, children: dangerousElement });
|
|
155
181
|
}
|
|
156
182
|
return dangerousElement;
|
|
@@ -175,7 +201,7 @@ var Alert = ({ ref, ...props }) => {
|
|
|
175
201
|
if (!show) return null;
|
|
176
202
|
const variant = variantProp && isAlertVariant(variantProp) ? variantProp : "info";
|
|
177
203
|
const colorValue = variant === "success" ? `var(--color-valid)` : `var(--color-${variant})`;
|
|
178
|
-
const classes = (0,
|
|
204
|
+
const classes = (0, import_dedupe4.default)(
|
|
179
205
|
"mobius",
|
|
180
206
|
"mobius-alert",
|
|
181
207
|
{
|
|
@@ -193,9 +219,9 @@ var Alert = ({ ref, ...props }) => {
|
|
|
193
219
|
warning: import_icons.warning,
|
|
194
220
|
error: import_icons.error
|
|
195
221
|
};
|
|
196
|
-
const headerClasses = (0,
|
|
197
|
-
const iconClasses = (0,
|
|
198
|
-
const contentClasses = (0,
|
|
222
|
+
const headerClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__header");
|
|
223
|
+
const iconClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__icon");
|
|
224
|
+
const contentClasses = (0, import_dedupe4.default)("mobius", "mobius-alert__content");
|
|
199
225
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Element, { ref, role: "alert", ...otherProps, className: classes, children: [
|
|
200
226
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: iconClasses, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { icon: icon[variant], color: colorValue }) }),
|
|
201
227
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/Alert/index.tsx", "../../../../src/components/Alert/Alert.tsx", "../../../../src/components/Icon/Icon.tsx", "../../../../src/components/TextOrHTML/TextOrHTML.tsx", "../../../../src/components/Text/Text.tsx"],
|
|
4
|
-
"sourcesContent": ["export * from \"./Alert\";\n", "import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAuD;AACvD,IAAAA,iBAAuB;;;ACDvB,oBAAuB;AAEvB,kBAAO;AA2CH;AAzCJ,IAAM,cAAc;AAEpB,IAAM,wBAAwB,CAAC,QAC7B,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAEpC,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAc;AACZ,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AAEA,QAAM,cAAU,cAAAC;AAAA,IACd;AAAA,IACA;AAAA,IACA,eAAe,WAAW;AAAA,IAC1B,UAAU,IAAI;AAAA,IACd;AAAA,IACA;AAAA,MACE,CAAC,GAAG,WAAW,KAAK,GAAG;AAAA,MACvB,CAAC,GAAG,WAAW,OAAO,GAAG,QAAQ;AAAA,MACjC,CAAC,GAAG,WAAW,eAAe,GAAG;AAAA,IACnC;AAAA,EACF;AAEA,QAAM,EAAE,UAAU,OAAO,QAAQ,YAAY,IAAI;AACjD,QAAM,oBAAoB,SAAS,MAAM,GAAG,EAAE,KAAK,GAAG;AAEtD,QAAM,eAAe,GAAG,sBAAsB,iBAAiB,CAAC;AAChE,QAAM,YAAY,SAAS;AAE3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,MACX,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAAS,OAAO,KAAK,IAAI,MAAM;AAAA,MAC/B,OAAO,EAAE,MAAM;AAAA,MACd,GAAG;AAAA,MAEJ;AAAA,oDAAC,WAAO,qBAAU;AAAA,QAClB,4CAAC,UAAK,MAAK,gBAAe,GAAG,aAAa;AAAA;AAAA;AAAA,EAC5C;AAEJ;;;
|
|
6
|
-
"names": ["import_dedupe", "classNames", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "import_jsx_runtime", "classNames"]
|
|
4
|
+
"sourcesContent": ["export * from \"./Alert\";\n", "import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import classNames from \"classnames/dedupe\";\nimport type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text, getElementType } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isBlockHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\nconst containsHTML = (text: string) =>\n /<[a-z/]/i.test(text) || /&(?:#\\d+|#x[\\da-f]+|[a-z]\\w*);/i.test(text); // tag or entity\n\nconst buildTextClasses = (\n textProps: Omit<TextProps, \"children\">,\n htmlClassName?: string,\n) => {\n const { variant, elementType, spacing, className } = textProps;\n const variantType = variant || getElementType(variant, elementType);\n return classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n htmlClassName,\n );\n};\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsBlockHTML = autoDetect && isBlockHTML(text);\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n // Non-block text with autoDetect: render directly on a Text-equivalent element,\n // avoiding unnecessary <span> nesting inside <p>.\n if (autoDetect && !textIsBlockHTML) {\n const { variant, spacing, elementType, className, ...domProps } = textProps;\n const Element = getElementType(variant, elementType);\n const classes = buildTextClasses(textProps, htmlClassName);\n\n return containsHTML(text) ? (\n <Element\n ref={ref}\n {...domProps}\n className={classes}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n ) : (\n <Element ref={ref} {...domProps} className={classes}>\n {text}\n </Element>\n );\n }\n\n const DangerousComponent =\n htmlElementType ?? (textIsBlockHTML ? \"div\" : \"span\");\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (textWrapper) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n): ElementType => {\n // Explicit elementType always wins\n if (elementType) {\n return elementType;\n }\n // Infer element from variant\n if (variant && [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant)) {\n return variant as ElementType;\n }\n return \"p\";\n};\n\nconst Text = ({ ref, elementType, ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const Element: ElementType = getElementType(variant, elementType);\n const variantType = variant || Element;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Element ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_dedupe", "classNames", "import_dedupe", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "classNames", "import_jsx_runtime", "classNames"]
|
|
7
7
|
}
|