@frontify/fondue 12.0.0-beta.295 → 12.0.0-beta.296
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/dist/components/Badge/Badge.d.ts +1 -1
- package/dist/components/Badge/Badge.es.js +19 -18
- package/dist/components/Badge/Badge.es.js.map +1 -1
- package/dist/components/Badge/types.d.ts +2 -0
- package/dist/components/Badge/types.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
import { BadgeProps } from './types';
|
|
3
3
|
export declare const Badge: {
|
|
4
|
-
({ children, status, icon, style, size, emphasis, disabled, onClick, onDismiss, "data-test-id": dataTestId, }: BadgeProps): Nullable<ReactElement>;
|
|
4
|
+
({ children, status, icon, style, size, emphasis, disabled, onClick, onDismiss, "data-test-id": dataTestId, withTitleAttribute, }: BadgeProps): Nullable<ReactElement>;
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
@@ -1,49 +1,50 @@
|
|
|
1
1
|
import { IconSize as p } from "../../foundation/Icon/IconSize.es.js";
|
|
2
2
|
import { FOCUS_VISIBLE_STYLE as u } from "../../utilities/focusStyle.es.js";
|
|
3
3
|
import { merge as s } from "../../utilities/merge.es.js";
|
|
4
|
-
import r, { cloneElement as
|
|
5
|
-
import { BadgeStatusIcon as
|
|
6
|
-
import { getStyleClasses as
|
|
4
|
+
import r, { cloneElement as y } from "react";
|
|
5
|
+
import { BadgeStatusIcon as N } from "./BadgeStatusIcon.es.js";
|
|
6
|
+
import { getStyleClasses as B, getCircularSizeClasses as C, getSizeClasses as v } from "./helpers.es.js";
|
|
7
7
|
import { BadgeEmphasis as g, BadgeStyle as z } from "./types.es.js";
|
|
8
|
-
import
|
|
9
|
-
const
|
|
8
|
+
import $ from "../../foundation/Icon/Generated/IconCross.es.js";
|
|
9
|
+
const j = ({
|
|
10
10
|
children: e,
|
|
11
11
|
status: a,
|
|
12
12
|
icon: n,
|
|
13
|
-
style:
|
|
13
|
+
style: d = z.Primary,
|
|
14
14
|
size: w = "medium",
|
|
15
|
-
emphasis:
|
|
15
|
+
emphasis: x = g.None,
|
|
16
16
|
disabled: l = !1,
|
|
17
17
|
onClick: i,
|
|
18
18
|
onDismiss: m,
|
|
19
|
-
"data-test-id": o = "badge"
|
|
19
|
+
"data-test-id": o = "badge",
|
|
20
|
+
withTitleAttribute: b = !0
|
|
20
21
|
}) => {
|
|
21
22
|
if (!e && !n && !a)
|
|
22
23
|
return null;
|
|
23
|
-
const
|
|
24
|
+
const S = i ? "button" : "span", c = (t) => ["string", "number"].includes(typeof t) ? t : t instanceof Array ? t.map(c).join("") : t && typeof t == "object" && "props" in t ? c(t.props.children) : "", f = c(e), E = !e && !m && Boolean(a || n);
|
|
24
25
|
return /* @__PURE__ */ r.createElement(
|
|
25
26
|
"div",
|
|
26
27
|
{
|
|
27
28
|
className: s([
|
|
28
29
|
"tw-relative tw-rounded-full tw-inline-flex tw-items-center tw-align-top tw-min-w-0 tw-flex-initial tw-transition-color",
|
|
29
|
-
l ? "tw-bg-box-disabled tw-text-box-disabled-inverse" :
|
|
30
|
+
l ? "tw-bg-box-disabled tw-text-box-disabled-inverse" : B(d, !!i, x === g.Strong)
|
|
30
31
|
]),
|
|
31
32
|
"data-test-id": o
|
|
32
33
|
},
|
|
33
34
|
/* @__PURE__ */ r.createElement(
|
|
34
|
-
|
|
35
|
+
S,
|
|
35
36
|
{
|
|
36
37
|
onClick: () => i && i(),
|
|
37
38
|
className: s([
|
|
38
39
|
"tw-inline-flex tw-items-center tw-justify-center tw-rounded-full tw-select-none tw-flex-initial tw-min-w-0",
|
|
39
40
|
i && !l ? "hover:tw-cursor-pointer" : "tw-cursor-default",
|
|
40
|
-
|
|
41
|
+
E ? C(w) : v(e, a, n, w, !!m),
|
|
41
42
|
u
|
|
42
43
|
]),
|
|
43
44
|
"data-test-id": `${o}-button`,
|
|
44
|
-
title: f
|
|
45
|
+
title: b ? f : void 0
|
|
45
46
|
},
|
|
46
|
-
a && /* @__PURE__ */ r.createElement(
|
|
47
|
+
a && /* @__PURE__ */ r.createElement(N, { status: a, disabled: l, "data-test-id": o }),
|
|
47
48
|
n && /* @__PURE__ */ r.createElement(
|
|
48
49
|
"span",
|
|
49
50
|
{
|
|
@@ -54,7 +55,7 @@ const $ = ({
|
|
|
54
55
|
!!e && "tw-pr-1"
|
|
55
56
|
])
|
|
56
57
|
},
|
|
57
|
-
|
|
58
|
+
y(n, { size: p.Size16 })
|
|
58
59
|
),
|
|
59
60
|
e && /* @__PURE__ */ r.createElement("span", { className: "tw-text-center tw-text-xxs tw-font-sans tw-font-normal tw-truncate tw-px-0.5" }, e)
|
|
60
61
|
),
|
|
@@ -71,12 +72,12 @@ const $ = ({
|
|
|
71
72
|
onClick: () => m(),
|
|
72
73
|
"aria-label": `Dismiss ${f}`
|
|
73
74
|
},
|
|
74
|
-
/* @__PURE__ */ r.createElement(
|
|
75
|
+
/* @__PURE__ */ r.createElement($, { size: p.Size16 })
|
|
75
76
|
)
|
|
76
77
|
);
|
|
77
78
|
};
|
|
78
|
-
|
|
79
|
+
j.displayName = "FondueBadge";
|
|
79
80
|
export {
|
|
80
|
-
|
|
81
|
+
j as Badge
|
|
81
82
|
};
|
|
82
83
|
//# sourceMappingURL=Badge.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.es.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross } from '@foundation/Icon/Generated';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { FOCUS_VISIBLE_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\nimport React, { ReactElement, ReactNode, cloneElement } from 'react';\nimport { BadgeStatusIcon } from './BadgeStatusIcon';\nimport { getCircularSizeClasses, getSizeClasses, getStyleClasses } from './helpers';\nimport { BadgeEmphasis, BadgeProps, BadgeStyle } from './types';\n\nexport const Badge = ({\n children,\n status,\n icon,\n style = BadgeStyle.Primary,\n size = 'medium',\n emphasis = BadgeEmphasis.None,\n disabled = false,\n onClick,\n onDismiss,\n 'data-test-id': dataTestId = 'badge',\n}: BadgeProps): Nullable<ReactElement> => {\n if (!children && !icon && !status) {\n return null;\n }\n\n const Container = onClick ? 'button' : 'span';\n\n const getNodeText = (node: ReactNode): string => {\n if (['string', 'number'].includes(typeof node)) {\n return node as string;\n }\n if (node instanceof Array) {\n return node.map(getNodeText).join('');\n }\n if (node && typeof node === 'object' && 'props' in node) {\n return getNodeText(node.props.children);\n }\n return '';\n };\n\n const badgeTitle = getNodeText(children);\n const isCircular = !children && !onDismiss && Boolean(status || icon);\n\n return (\n <div\n className={merge([\n 'tw-relative tw-rounded-full tw-inline-flex tw-items-center tw-align-top tw-min-w-0 tw-flex-initial tw-transition-color',\n disabled\n ? 'tw-bg-box-disabled tw-text-box-disabled-inverse'\n : getStyleClasses(style, !!onClick, emphasis === BadgeEmphasis.Strong),\n ])}\n data-test-id={dataTestId}\n >\n <Container\n onClick={() => onClick && onClick()}\n className={merge([\n 'tw-inline-flex tw-items-center tw-justify-center tw-rounded-full tw-select-none tw-flex-initial tw-min-w-0',\n onClick && !disabled ? 'hover:tw-cursor-pointer' : 'tw-cursor-default',\n isCircular\n ? getCircularSizeClasses(size)\n : getSizeClasses(children, status, icon, size, !!onDismiss),\n FOCUS_VISIBLE_STYLE,\n ])}\n data-test-id={`${dataTestId}-button`}\n title={badgeTitle}\n >\n {status && <BadgeStatusIcon status={status} disabled={disabled} data-test-id={dataTestId} />}\n {icon && (\n <span\n data-test-id={`${dataTestId}-icon`}\n className={merge([\n 'tw-flex-none tw-leading-none',\n disabled && 'tw-opacity-30',\n !!children && 'tw-pr-1',\n ])}\n >\n {cloneElement(icon, { size: IconSize.Size16 })}\n </span>\n )}\n {children && (\n <span className=\"tw-text-center tw-text-xxs tw-font-sans tw-font-normal tw-truncate tw-px-0.5\">\n {children}\n </span>\n )}\n </Container>\n {onDismiss && (\n <button\n type=\"button\"\n data-test-id={`${dataTestId}-dismiss`}\n className={merge([\n 'tw-absolute tw-rounded tw-leading-4',\n FOCUS_VISIBLE_STYLE,\n size === 'medium' ? 'tw-right-1.5' : 'tw-right-1',\n ])}\n onClick={() => onDismiss()}\n aria-label={`Dismiss ${badgeTitle}`}\n >\n <IconCross size={IconSize.Size16} />\n </button>\n )}\n </div>\n );\n};\nBadge.displayName = 'FondueBadge';\n"],"names":["Badge","children","status","icon","style","BadgeStyle","size","emphasis","BadgeEmphasis","disabled","onClick","onDismiss","dataTestId","Container","getNodeText","node","badgeTitle","isCircular","React","merge","getStyleClasses","getCircularSizeClasses","getSizeClasses","FOCUS_VISIBLE_STYLE","BadgeStatusIcon","cloneElement","IconSize","IconCross"],"mappings":";;;;;;;;AAWO,MAAMA,IAAQ,CAAC;AAAA,EAClB,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC,IAAQC,EAAW;AAAA,EACnB,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAWC,EAAc;AAAA,EACzB,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAgBC,IAAa;
|
|
1
|
+
{"version":3,"file":"Badge.es.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross } from '@foundation/Icon/Generated';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { FOCUS_VISIBLE_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\nimport React, { ReactElement, ReactNode, cloneElement } from 'react';\nimport { BadgeStatusIcon } from './BadgeStatusIcon';\nimport { getCircularSizeClasses, getSizeClasses, getStyleClasses } from './helpers';\nimport { BadgeEmphasis, BadgeProps, BadgeStyle } from './types';\n\nexport const Badge = ({\n children,\n status,\n icon,\n style = BadgeStyle.Primary,\n size = 'medium',\n emphasis = BadgeEmphasis.None,\n disabled = false,\n onClick,\n onDismiss,\n 'data-test-id': dataTestId = 'badge',\n withTitleAttribute = true,\n}: BadgeProps): Nullable<ReactElement> => {\n if (!children && !icon && !status) {\n return null;\n }\n\n const Container = onClick ? 'button' : 'span';\n\n const getNodeText = (node: ReactNode): string => {\n if (['string', 'number'].includes(typeof node)) {\n return node as string;\n }\n if (node instanceof Array) {\n return node.map(getNodeText).join('');\n }\n if (node && typeof node === 'object' && 'props' in node) {\n return getNodeText(node.props.children);\n }\n return '';\n };\n\n const badgeTitle = getNodeText(children);\n const isCircular = !children && !onDismiss && Boolean(status || icon);\n\n return (\n <div\n className={merge([\n 'tw-relative tw-rounded-full tw-inline-flex tw-items-center tw-align-top tw-min-w-0 tw-flex-initial tw-transition-color',\n disabled\n ? 'tw-bg-box-disabled tw-text-box-disabled-inverse'\n : getStyleClasses(style, !!onClick, emphasis === BadgeEmphasis.Strong),\n ])}\n data-test-id={dataTestId}\n >\n <Container\n onClick={() => onClick && onClick()}\n className={merge([\n 'tw-inline-flex tw-items-center tw-justify-center tw-rounded-full tw-select-none tw-flex-initial tw-min-w-0',\n onClick && !disabled ? 'hover:tw-cursor-pointer' : 'tw-cursor-default',\n isCircular\n ? getCircularSizeClasses(size)\n : getSizeClasses(children, status, icon, size, !!onDismiss),\n FOCUS_VISIBLE_STYLE,\n ])}\n data-test-id={`${dataTestId}-button`}\n title={withTitleAttribute ? badgeTitle : undefined}\n >\n {status && <BadgeStatusIcon status={status} disabled={disabled} data-test-id={dataTestId} />}\n {icon && (\n <span\n data-test-id={`${dataTestId}-icon`}\n className={merge([\n 'tw-flex-none tw-leading-none',\n disabled && 'tw-opacity-30',\n !!children && 'tw-pr-1',\n ])}\n >\n {cloneElement(icon, { size: IconSize.Size16 })}\n </span>\n )}\n {children && (\n <span className=\"tw-text-center tw-text-xxs tw-font-sans tw-font-normal tw-truncate tw-px-0.5\">\n {children}\n </span>\n )}\n </Container>\n {onDismiss && (\n <button\n type=\"button\"\n data-test-id={`${dataTestId}-dismiss`}\n className={merge([\n 'tw-absolute tw-rounded tw-leading-4',\n FOCUS_VISIBLE_STYLE,\n size === 'medium' ? 'tw-right-1.5' : 'tw-right-1',\n ])}\n onClick={() => onDismiss()}\n aria-label={`Dismiss ${badgeTitle}`}\n >\n <IconCross size={IconSize.Size16} />\n </button>\n )}\n </div>\n );\n};\nBadge.displayName = 'FondueBadge';\n"],"names":["Badge","children","status","icon","style","BadgeStyle","size","emphasis","BadgeEmphasis","disabled","onClick","onDismiss","dataTestId","withTitleAttribute","Container","getNodeText","node","badgeTitle","isCircular","React","merge","getStyleClasses","getCircularSizeClasses","getSizeClasses","FOCUS_VISIBLE_STYLE","BadgeStatusIcon","cloneElement","IconSize","IconCross"],"mappings":";;;;;;;;AAWO,MAAMA,IAAQ,CAAC;AAAA,EAClB,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC,IAAQC,EAAW;AAAA,EACnB,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAWC,EAAc;AAAA,EACzB,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,oBAAAC,IAAqB;AACzB,MAA0C;AACtC,MAAI,CAACZ,KAAY,CAACE,KAAQ,CAACD;AAChB,WAAA;AAGL,QAAAY,IAAYJ,IAAU,WAAW,QAEjCK,IAAc,CAACC,MACb,CAAC,UAAU,QAAQ,EAAE,SAAS,OAAOA,CAAI,IAClCA,IAEPA,aAAgB,QACTA,EAAK,IAAID,CAAW,EAAE,KAAK,EAAE,IAEpCC,KAAQ,OAAOA,KAAS,YAAY,WAAWA,IACxCD,EAAYC,EAAK,MAAM,QAAQ,IAEnC,IAGLC,IAAaF,EAAYd,CAAQ,GACjCiB,IAAa,CAACjB,KAAY,CAACU,KAAa,QAAQT,KAAUC,CAAI;AAGhE,SAAA,gBAAAgB,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWC,EAAM;AAAA,QACb;AAAA,QACAX,IACM,oDACAY,EAAgBjB,GAAO,CAAC,CAACM,GAASH,MAAaC,EAAc,MAAM;AAAA,MAAA,CAC5E;AAAA,MACD,gBAAcI;AAAA,IAAA;AAAA,IAEd,gBAAAO,EAAA;AAAA,MAACL;AAAA,MAAA;AAAA,QACG,SAAS,MAAMJ,KAAWA,EAAQ;AAAA,QAClC,WAAWU,EAAM;AAAA,UACb;AAAA,UACAV,KAAW,CAACD,IAAW,4BAA4B;AAAA,UACnDS,IACMI,EAAuBhB,CAAI,IAC3BiB,EAAetB,GAAUC,GAAQC,GAAMG,GAAM,CAAC,CAACK,CAAS;AAAA,UAC9Da;AAAA,QAAA,CACH;AAAA,QACD,gBAAc,GAAGZ;AAAA,QACjB,OAAOC,IAAqBI,IAAa;AAAA,MAAA;AAAA,MAExCf,KAAW,gBAAAiB,EAAA,cAAAM,GAAA,EAAgB,QAAAvB,GAAgB,UAAAO,GAAoB,gBAAcG,GAAY;AAAA,MACzFT,KACG,gBAAAgB,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,gBAAc,GAAGP;AAAA,UACjB,WAAWQ,EAAM;AAAA,YACb;AAAA,YACAX,KAAY;AAAA,YACZ,CAAC,CAACR,KAAY;AAAA,UAAA,CACjB;AAAA,QAAA;AAAA,QAEAyB,EAAavB,GAAM,EAAE,MAAMwB,EAAS,QAAQ;AAAA,MACjD;AAAA,MAEH1B,KACG,gBAAAkB,EAAA,cAAC,QAAK,EAAA,WAAU,kFACXlB,CACL;AAAA,IAER;AAAA,IACCU,KACG,gBAAAQ,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,gBAAc,GAAGP;AAAA,QACjB,WAAWQ,EAAM;AAAA,UACb;AAAA,UACAI;AAAA,UACAlB,MAAS,WAAW,iBAAiB;AAAA,QAAA,CACxC;AAAA,QACD,SAAS,MAAMK,EAAU;AAAA,QACzB,cAAY,WAAWM;AAAA,MAAA;AAAA,MAEtB,gBAAAE,EAAA,cAAAS,GAAA,EAAU,MAAMD,EAAS,QAAQ;AAAA,IACtC;AAAA,EAAA;AAIhB;AACA3B,EAAM,cAAc;"}
|
|
@@ -13,6 +13,8 @@ export type BadgeProps = {
|
|
|
13
13
|
size?: BadgeSize;
|
|
14
14
|
children?: ReactNode;
|
|
15
15
|
'data-test-id'?: string;
|
|
16
|
+
/** @description withTitle could be disabled only in the case another overlay is present, ex Tooltip */
|
|
17
|
+
withTitleAttribute?: boolean;
|
|
16
18
|
};
|
|
17
19
|
export type BadgeStatusIconProps = {
|
|
18
20
|
status: BadgeStatus | Color | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.es.js","sources":["../../../src/components/Badge/types.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconProps } from '@foundation/Icon/IconProps';\nimport { ReactElement, ReactNode } from 'react';\nimport { Color } from '../../types';\n\nexport type BadgeSize = 'small' | 'medium';\n\nexport type BadgeProps = {\n style?: BadgeStyle;\n icon?: ReactElement<IconProps>;\n status?: BadgeStatusIconProps['status'];\n onClick?: () => void;\n onDismiss?: () => void;\n disabled?: boolean;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type BadgeStatusIconProps = { status: BadgeStatus | Color | string; disabled: boolean; 'data-test-id'?: string };\n\nexport enum BadgeStatus {\n Positive = 'Positive',\n Progress = 'Progress',\n Warning = 'Warning',\n Danger = 'Danger',\n}\n\nexport enum BadgeStyle {\n Primary = 'Primary',\n Positive = 'Positive',\n Progress = 'Progress',\n Warning = 'Warning',\n Danger = 'Danger',\n}\n\nexport enum BadgeEmphasis {\n Strong = 'Strong',\n None = 'None',\n}\n"],"names":["BadgeStatus","BadgeStyle","BadgeEmphasis"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.es.js","sources":["../../../src/components/Badge/types.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconProps } from '@foundation/Icon/IconProps';\nimport { ReactElement, ReactNode } from 'react';\nimport { Color } from '../../types';\n\nexport type BadgeSize = 'small' | 'medium';\n\nexport type BadgeProps = {\n style?: BadgeStyle;\n icon?: ReactElement<IconProps>;\n status?: BadgeStatusIconProps['status'];\n onClick?: () => void;\n onDismiss?: () => void;\n disabled?: boolean;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n 'data-test-id'?: string;\n /** @description withTitle could be disabled only in the case another overlay is present, ex Tooltip */\n withTitleAttribute?: boolean;\n};\n\nexport type BadgeStatusIconProps = { status: BadgeStatus | Color | string; disabled: boolean; 'data-test-id'?: string };\n\nexport enum BadgeStatus {\n Positive = 'Positive',\n Progress = 'Progress',\n Warning = 'Warning',\n Danger = 'Danger',\n}\n\nexport enum BadgeStyle {\n Primary = 'Primary',\n Positive = 'Positive',\n Progress = 'Progress',\n Warning = 'Warning',\n Danger = 'Danger',\n}\n\nexport enum BadgeEmphasis {\n Strong = 'Strong',\n None = 'None',\n}\n"],"names":["BadgeStatus","BadgeStyle","BadgeEmphasis"],"mappings":"AAyBY,IAAAA,sBAAAA,OACRA,EAAA,WAAW,YACXA,EAAA,WAAW,YACXA,EAAA,UAAU,WACVA,EAAA,SAAS,UAJDA,IAAAA,KAAA,CAAA,CAAA,GAOAC,sBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,WAAW,YACXA,EAAA,UAAU,WACVA,EAAA,SAAS,UALDA,IAAAA,KAAA,CAAA,CAAA,GAQAC,sBAAAA,OACRA,EAAA,SAAS,UACTA,EAAA,OAAO,QAFCA,IAAAA,KAAA,CAAA,CAAA;"}
|