@sats-group/ui-lib 85.6.1 → 86.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/react/chip/chip.js +1 -1
- package/react/chip/chip.js.map +2 -2
- package/react/chip/chip.scss +42 -5
- package/react/chip/chip.types.d.ts +13 -7
package/package.json
CHANGED
package/react/chip/chip.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var v=Object.defineProperty;var p=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var c=(i,e,s)=>e in i?v(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s,n=(i,e)=>{for(var s in e||(e={}))h.call(e,s)&&c(i,s,e[s]);if(p)for(var s of p(e))_.call(e,s)&&c(i,s,e[s]);return i};var f=(i,e)=>{var s={};for(var m in i)h.call(i,m)&&e.indexOf(m)<0&&(s[m]=i[m]);if(i!=null&&p)for(var m of p(i))e.indexOf(m)<0&&_.call(i,m)&&(s[m]=i[m]);return s};import*as t from"react";import o from"classnames";import x from"../icons/16/close";import r from"../text";const C=N=>{var l=N,{className:i,customIcon:e,elementName:s="button",icon:m=!1,isSelected:a=!1,text:d}=l,u=f(l,["className","customIcon","elementName","icon","isSelected","text"]);return t.createElement(s,n({className:o("chip",i,{"chip--selected":a})},u),t.createElement(t.Fragment,null,t.createElement("div",{className:"chip__wrapper"},m?t.createElement(x,null):null,e?t.createElement("div",{className:o("chip__custom-icon chip__custom-icon--animated",{"chip__custom-icon--visible":a})},e):null,t.createElement(r,{className:o("chip__text",{"chip__text--with-icon":m||e&&a}),size:r.sizes.small,theme:r.themes.emphasis},d))))};var T=C;export{T as default};
|
|
2
2
|
//# sourceMappingURL=chip.js.map
|
package/react/chip/chip.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/chip/chip.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport cn from 'classnames';\n\nimport Close from '../icons/16/close';\nimport Text from '../text';\n\nimport { Chip as Props } from './chip.types';\n\nconst Chip: React.FC<Props> = ({\n className,\n customIcon,\n elementName = 'button',\n icon =
|
|
5
|
-
"mappings": "2fAAA,UAAYA,MAAW,QACvB,OAAOC,MAAQ,aAEf,OAAOC,MAAW,oBAClB,OAAOC,MAAU,UAIjB,MAAMC,EAAyBC,GAQ5B,CAR4B,IAAAC,EAAAD,EAC7B,WAAAE,EACA,WAAAC,EACA,YAAAC,EAAc,SACd,KAAAC,EAAO,GACP,WAAAC,EAAa,GACb,KAAAC,CAdF,EAQ+BN,EAO1BO,EAAAC,EAP0BR,EAO1B,CANH,YACA,aACA,cACA,OACA,aACA,SAGA,OAAAN,EAAM,cACJS,EACAM,EAAA,CACE,UAAWd,EAAG,OAAQM,EAAW,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport cn from 'classnames';\n\nimport Close from '../icons/16/close';\nimport Text from '../text';\n\nimport { Chip as Props } from './chip.types';\n\nconst Chip: React.FC<Props> = ({\n className,\n customIcon,\n elementName = 'button',\n icon = false,\n isSelected = false,\n text,\n ...rest\n}) =>\n React.createElement(\n elementName,\n {\n className: cn('chip', className, {\n 'chip--selected': isSelected,\n }),\n ...rest,\n },\n <React.Fragment>\n <div className=\"chip__wrapper\">\n {icon ? <Close /> : null}\n {customIcon ? (\n <div\n className={cn('chip__custom-icon chip__custom-icon--animated', {\n 'chip__custom-icon--visible': isSelected,\n })}\n >\n {customIcon}\n </div>\n ) : null}\n <Text\n className={cn('chip__text', {\n 'chip__text--with-icon': icon || (customIcon && isSelected),\n })}\n size={Text.sizes.small}\n theme={Text.themes.emphasis}\n >\n {text}\n </Text>\n </div>\n </React.Fragment>,\n );\n\nexport default Chip;\n"],
|
|
5
|
+
"mappings": "2fAAA,UAAYA,MAAW,QACvB,OAAOC,MAAQ,aAEf,OAAOC,MAAW,oBAClB,OAAOC,MAAU,UAIjB,MAAMC,EAAyBC,GAQ5B,CAR4B,IAAAC,EAAAD,EAC7B,WAAAE,EACA,WAAAC,EACA,YAAAC,EAAc,SACd,KAAAC,EAAO,GACP,WAAAC,EAAa,GACb,KAAAC,CAdF,EAQ+BN,EAO1BO,EAAAC,EAP0BR,EAO1B,CANH,YACA,aACA,cACA,OACA,aACA,SAGA,OAAAN,EAAM,cACJS,EACAM,EAAA,CACE,UAAWd,EAAG,OAAQM,EAAW,CAC/B,iBAAkBI,CACpB,CAAC,GACEE,GAELb,EAAA,cAACA,EAAM,SAAN,KACCA,EAAA,cAAC,OAAI,UAAU,iBACZU,EAAOV,EAAA,cAACE,EAAA,IAAM,EAAK,KACnBM,EACCR,EAAA,cAAC,OACC,UAAWC,EAAG,gDAAiD,CAC7D,6BAA8BU,CAChC,CAAC,GAEAH,CACH,EACE,KACJR,EAAA,cAACG,EAAA,CACC,UAAWF,EAAG,aAAc,CAC1B,wBAAyBS,GAASF,GAAcG,CAClD,CAAC,EACD,KAAMR,EAAK,MAAM,MACjB,MAAOA,EAAK,OAAO,UAElBS,CACH,CACF,CACF,CACF,GAEF,IAAOI,EAAQZ",
|
|
6
6
|
"names": ["React", "cn", "Close", "Text", "Chip", "_a", "_b", "className", "customIcon", "elementName", "icon", "isSelected", "text", "rest", "__objRest", "__spreadValues", "chip_default"]
|
|
7
7
|
}
|
package/react/chip/chip.scss
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
@use '../../tokens/spacing';
|
|
3
3
|
|
|
4
4
|
.chip {
|
|
5
|
+
background-color: var(--background-secondary-default);
|
|
6
|
+
border-radius: 40px; // NOTE: Custom border radius by design
|
|
7
|
+
border: 1px solid var(--ge-chips-unselected-default);
|
|
5
8
|
box-sizing: border-box;
|
|
6
9
|
cursor: pointer;
|
|
10
|
+
display: inline-block;
|
|
7
11
|
outline: 0;
|
|
8
12
|
padding: 0;
|
|
9
13
|
text-decoration: none;
|
|
10
|
-
display: inline-block;
|
|
11
|
-
border-radius: 40px; // NOTE: Custom border radius by design
|
|
12
|
-
background-color: var(--background-secondary-default);
|
|
13
|
-
border: 1px solid var(--ge-chips-unselected-default);
|
|
14
14
|
|
|
15
15
|
@media (hover: hover) {
|
|
16
16
|
&:not([disabled]):hover {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
&__wrapper {
|
|
35
35
|
display: flex;
|
|
36
|
-
gap:
|
|
36
|
+
gap: 0; // NOTE: This is 0 because it can't be animated, wherase margin can, so margin is used on the text when an icon is present instead
|
|
37
37
|
align-items: center;
|
|
38
38
|
padding: spacing.$xs spacing.$m;
|
|
39
39
|
}
|
|
@@ -43,4 +43,41 @@
|
|
|
43
43
|
color: var(--on-ge-on-chips-selected-disabled);
|
|
44
44
|
cursor: not-allowed;
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
&__custom-icon {
|
|
48
|
+
align-items: center;
|
|
49
|
+
display: inline-flex;
|
|
50
|
+
flex: 0 0 auto;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
max-width: 0;
|
|
53
|
+
min-width: 0;
|
|
54
|
+
opacity: 0;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
transform: scale(0.85);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&__custom-icon--visible {
|
|
60
|
+
max-width: 999px; // NOTE: This is just so that the component can grow as much as it needs when the icon is shown
|
|
61
|
+
opacity: 1;
|
|
62
|
+
transform: scale(1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&__custom-icon--animated {
|
|
66
|
+
transition:
|
|
67
|
+
max-width 220ms ease,
|
|
68
|
+
opacity 160ms ease,
|
|
69
|
+
transform 200ms ease;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&__text {
|
|
73
|
+
margin-left: 0;
|
|
74
|
+
|
|
75
|
+
&--with-icon {
|
|
76
|
+
margin-left: spacing.$xs;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&__custom-icon--animated ~ .chip__text {
|
|
81
|
+
transition: margin-left 220ms ease;
|
|
82
|
+
}
|
|
46
83
|
}
|
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
import { ButtonHtmlProps, LinkHtmlProps } from '../types';
|
|
3
3
|
type BasicChipProps = {
|
|
4
|
-
className?: string;
|
|
5
|
-
customIcon?: ReactElement;
|
|
6
4
|
elementName: string;
|
|
7
|
-
icon?: boolean;
|
|
8
5
|
isSelected?: boolean;
|
|
9
6
|
text: string;
|
|
10
7
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
type ChipWithCustomicon = {
|
|
9
|
+
customIcon: ReactElement;
|
|
10
|
+
icon?: never;
|
|
11
|
+
};
|
|
12
|
+
type ChipWithDefaultIcon = {
|
|
13
|
+
customIcon?: never;
|
|
14
|
+
icon?: boolean;
|
|
15
|
+
};
|
|
16
|
+
type ChipWithIcon = ChipWithCustomicon | ChipWithDefaultIcon;
|
|
17
|
+
export type ChipButton = ButtonHtmlProps;
|
|
18
|
+
export type ChipLink = LinkHtmlProps;
|
|
19
|
+
export type Chip = ChipWithIcon & BasicChipProps & (({
|
|
14
20
|
elementName: 'button';
|
|
15
21
|
} & ChipButton) | ({
|
|
16
22
|
elementName: 'a';
|
|
17
23
|
} & ChipLink) | ({
|
|
18
24
|
elementName: string;
|
|
19
|
-
} & (ChipLink | ChipButton));
|
|
25
|
+
} & (ChipLink | ChipButton)));
|
|
20
26
|
export {};
|