@sats-group/ui-lib 86.2.2 → 87.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/checkbox/checkbox.d.ts +2 -1
- package/react/checkbox/checkbox.js +1 -1
- package/react/checkbox/checkbox.js.map +3 -3
- package/react/checkbox/checkbox.scss +27 -10
- package/react/checkbox/checkbox.types.d.ts +2 -1
- package/react/checkbox/checkbox.types.js +1 -1
- package/react/checkbox/checkbox.types.js.map +1 -1
- package/react/chip/chip.scss +19 -9
- package/react/form-content/checkbox-category.js +1 -1
- package/react/form-content/checkbox-category.js.map +2 -2
- package/react/form-content/form-content.radio-list.js +1 -1
- package/react/form-content/form-content.radio-list.js.map +2 -2
- package/react/radio/radio.d.ts +2 -1
- package/react/radio/radio.js +1 -1
- package/react/radio/radio.js.map +3 -3
- package/react/radio/radio.scss +21 -13
- package/react/radio/radio.types.d.ts +2 -1
- package/react/radio/radio.types.js.map +1 -1
- package/tokens/dark.scss +16 -2
- package/tokens/darkmode.css +16 -2
- package/tokens/default-colours.css +21 -7
- package/tokens/light.scss +21 -7
- package/tokens/lightmode.css +21 -7
package/package.json
CHANGED
|
@@ -10,7 +10,8 @@ declare const RefCheckbox: React.ForwardRefExoticComponent<Omit<import("../types
|
|
|
10
10
|
value: string;
|
|
11
11
|
showCustomError?: boolean;
|
|
12
12
|
theme?: import("../types").ObjectValues<typeof themes>;
|
|
13
|
-
|
|
13
|
+
hasHover?: boolean;
|
|
14
|
+
isWide?: boolean;
|
|
14
15
|
} & {
|
|
15
16
|
children?: React.ReactNode | undefined;
|
|
16
17
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";var
|
|
1
|
+
"use client";var B=Object.defineProperty;var b=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var m=(c,e,i)=>e in c?B(c,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):c[e]=i,u=(c,e)=>{for(var i in e||(e={}))p.call(e,i)&&m(c,i,e[i]);if(b)for(var i of b(e))f.call(e,i)&&m(c,i,e[i]);return c};var g=(c,e)=>{var i={};for(var l in c)p.call(c,l)&&e.indexOf(l)<0&&(i[l]=c[l]);if(c!=null&&b)for(var l of b(c))e.indexOf(l)<0&&f.call(c,l)&&(i[l]=c[l]);return i};import s from"classnames";import*as o from"react";import M from"../use-input-validation";import x from"../text";import{themes as W}from"./checkbox.types";const N=o.forwardRef((E,L)=>{var t=E,{children:c,disabled:e,description:i,extra:l,intermediate:k,isLabelVisible:d=!0,label:h,name:w,showCustomError:C=!0,theme:n,value:$="",required:v,hasHover:y=!1,isWide:I=!0}=t,a=g(t,["children","disabled","description","extra","intermediate","isLabelVisible","label","name","showCustomError","theme","value","required","hasHover","isWide"]);const[z,T,r]=M();return o.createElement("div",{className:s("checkbox",{"checkbox--error":r,"checkbox--intermediate":k,"checkbox--wide":I,[`checkbox--${n}`]:n})},o.createElement("label",{className:s("checkbox__content",{"checkbox__content--hover":y,[`checkbox__content--${n}`]:n})},o.createElement("div",{className:"checkbox__main"},o.createElement("div",{className:"checkbox__main-top"},o.createElement("div",null,o.createElement("input",u({"aria-label":d?void 0:h,className:"checkbox__input",type:"checkbox",name:w,onChange:_=>{a.onChange&&a.onChange(_),z(_)},onInvalid:_=>{a.onInvalid&&a.onInvalid(_),T(_)},ref:L,value:$,disabled:e,required:v},a)),o.createElement("div",{className:s("checkbox__icon",{"checkbox__icon--intermediate":k,[`checkbox__icon--${n}`]:n})},o.createElement("svg",{className:"checkbox__intermediate",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o.createElement("line",{x1:"0",y1:"5",x2:"10",y2:"5",stroke:"currentColor",strokeWidth:"2"})),o.createElement("svg",{className:"checkbox__check",width:"12",height:"10",viewBox:"0 0 12 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o.createElement("path",{d:"M4.76123 9.0605L0.700729 5L1.76123 3.9395L4.76123 6.9395L10.7612 0.939501L11.8217 2L4.76123 9.0605Z",fill:"currentColor"})))),d?o.createElement(o.Fragment,null,h?o.createElement(x,{className:s("checkbox__label",{[`checkbox__label--${n}`]:n,"checkbox__label--disabled":e}),size:x.sizes.basic},h):o.createElement("div",{className:s("checkbox__label",{[`checkbox__label--${n}`]:n,"checkbox__label--disabled":e})},c)):null,v?o.createElement("span",{className:"checkbox__asterisk"},"*"):null),i&&o.createElement(x,{className:s("checkbox__description",{[`checkbox__label--${n}`]:n,"checkbox__label--disabled":e}),size:x.sizes.small},i))),r&&C&&o.createElement("div",{"aria-hidden":"true",className:s("checkbox__error",{[`checkbox__error--${n}`]:n})},r),l&&o.createElement("span",{className:"checkbox__extra"},l))});N.displayName="Checkbox";const j=Object.assign(N,{themes:W});var F=j;export{F as default};
|
|
2
2
|
//# sourceMappingURL=checkbox.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/checkbox/checkbox.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\nimport Text from '../text';\n\nimport { Checkbox as Props, themes } from './checkbox.types';\n\nconst RefCheckbox = React.forwardRef<\n HTMLInputElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n disabled,\n description,\n extra,\n intermediate,\n isLabelVisible = true,\n label,\n name,\n showCustomError = true,\n theme,\n value = '',\n
|
|
5
|
-
"mappings": "wgBAEA,OAAOA,MAAQ,aACf,UAAYC,MAAW,QAEvB,OAAOC,MAAwB,0BAC/B,OAAOC,MAAU,UAEjB,OAA4B,UAAAC,MAAc,mBAE1C,MAAMC,EAAcJ,EAAM,WAIxB,CACEK,
|
|
6
|
-
"names": ["cn", "React", "useInputValidation", "Text", "themes", "RefCheckbox", "_a", "ref", "_b", "children", "disabled", "description", "extra", "intermediate", "isLabelVisible", "label", "name", "showCustomError", "theme", "value", "
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\nimport Text from '../text';\n\nimport { Checkbox as Props, themes } from './checkbox.types';\n\nconst RefCheckbox = React.forwardRef<\n HTMLInputElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n disabled,\n description,\n extra,\n intermediate,\n isLabelVisible = true,\n label,\n name,\n showCustomError = true,\n theme,\n value = '',\n required,\n hasHover = false,\n isWide = true,\n ...restProps\n },\n ref,\n ) => {\n const [onChange, onInvalid, error] = useInputValidation();\n\n return (\n <div\n className={cn('checkbox', {\n 'checkbox--error': error,\n 'checkbox--intermediate': intermediate,\n 'checkbox--wide': isWide,\n [`checkbox--${theme}`]: theme,\n })}\n >\n <label\n className={cn('checkbox__content', {\n 'checkbox__content--hover': hasHover,\n [`checkbox__content--${theme}`]: theme,\n })}\n >\n <div className=\"checkbox__main\">\n <div className=\"checkbox__main-top\">\n <div>\n <input\n aria-label={isLabelVisible ? undefined : label}\n className=\"checkbox__input\"\n type=\"checkbox\"\n name={name}\n onChange={e => {\n // NOTE: If props specify an `onChange`, we need to call that too\n if (restProps.onChange) restProps.onChange(e);\n onChange(e);\n }}\n onInvalid={e => {\n // NOTE: If props specify an `onInvalid`, we need to call that too\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n ref={ref}\n value={value}\n disabled={disabled}\n required={required}\n {...restProps}\n />\n\n <div\n className={cn('checkbox__icon', {\n 'checkbox__icon--intermediate': intermediate,\n [`checkbox__icon--${theme}`]: theme,\n })}\n >\n <svg\n className=\"checkbox__intermediate\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n x1=\"0\"\n y1=\"5\"\n x2=\"10\"\n y2=\"5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n </svg>\n <svg\n className=\"checkbox__check\"\n width=\"12\"\n height=\"10\"\n viewBox=\"0 0 12 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.76123 9.0605L0.700729 5L1.76123 3.9395L4.76123 6.9395L10.7612 0.939501L11.8217 2L4.76123 9.0605Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n </div>\n {isLabelVisible ? (\n <>\n {label ? (\n <Text\n className={cn('checkbox__label', {\n [`checkbox__label--${theme}`]: theme,\n 'checkbox__label--disabled': disabled,\n })}\n size={Text.sizes.basic}\n >\n {label}\n </Text>\n ) : (\n <div\n className={cn('checkbox__label', {\n [`checkbox__label--${theme}`]: theme,\n 'checkbox__label--disabled': disabled,\n })}\n >\n {children}\n </div>\n )}\n </>\n ) : null}\n {required ? <span className=\"checkbox__asterisk\">*</span> : null}\n </div>\n {description && (\n <Text\n className={cn('checkbox__description', {\n [`checkbox__label--${theme}`]: theme,\n 'checkbox__label--disabled': disabled,\n })}\n size={Text.sizes.small}\n >\n {description}\n </Text>\n )}\n </div>\n </label>\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error && showCustomError && (\n <div\n aria-hidden=\"true\"\n className={cn('checkbox__error', {\n [`checkbox__error--${theme}`]: theme,\n })}\n >\n {error}\n </div>\n )}\n\n {extra && <span className=\"checkbox__extra\">{extra}</span>}\n </div>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"Checkbox\"\nRefCheckbox.displayName = 'Checkbox';\n\n// NOTE: The component is redeclared here because TypeScript doesn't accept assigning extra properties to `RefComponent` when it's declared\nconst Checkbox: typeof RefCheckbox & {\n themes: typeof themes;\n} = Object.assign(RefCheckbox, { themes });\n\nexport default Checkbox;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["cn", "React", "useInputValidation", "Text", "themes", "RefCheckbox", "_a", "ref", "_b", "children", "disabled", "description", "extra", "intermediate", "isLabelVisible", "label", "name", "showCustomError", "theme", "value", "required", "hasHover", "isWide", "restProps", "__objRest", "onChange", "onInvalid", "error", "__spreadValues", "e", "Checkbox", "checkbox_default"]
|
|
7
7
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
@use '../../tokens/colours';
|
|
2
2
|
@use '../../tokens/spacing';
|
|
3
|
+
@use '../../tokens/corner-radius';
|
|
3
4
|
|
|
4
5
|
.checkbox {
|
|
5
6
|
$block: &;
|
|
6
7
|
$size: 20px;
|
|
8
|
+
display: flex;
|
|
7
9
|
|
|
8
10
|
&__asterisk {
|
|
9
11
|
color: var(--on-surface-featured);
|
|
10
|
-
margin-left: spacing.$
|
|
12
|
+
margin-left: spacing.$xxs;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
&:focus-within {
|
|
@@ -21,13 +23,8 @@
|
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
&--
|
|
25
|
-
|
|
26
|
-
border-bottom: 1px solid var(--ge-divider-default);
|
|
27
|
-
|
|
28
|
-
&--light {
|
|
29
|
-
border-color: var(--ge-divider-default);
|
|
30
|
-
}
|
|
26
|
+
&--wide {
|
|
27
|
+
display: block;
|
|
31
28
|
}
|
|
32
29
|
|
|
33
30
|
&--intermediate {
|
|
@@ -86,7 +83,6 @@
|
|
|
86
83
|
&__main-top {
|
|
87
84
|
display: flex;
|
|
88
85
|
align-items: center;
|
|
89
|
-
gap: spacing.$xs;
|
|
90
86
|
}
|
|
91
87
|
|
|
92
88
|
&__input {
|
|
@@ -153,6 +149,27 @@
|
|
|
153
149
|
|
|
154
150
|
&__content {
|
|
155
151
|
display: flex;
|
|
152
|
+
cursor: pointer;
|
|
153
|
+
|
|
154
|
+
&--hover {
|
|
155
|
+
padding: spacing.$xs;
|
|
156
|
+
border-radius: corner-radius.$s;
|
|
157
|
+
&:hover {
|
|
158
|
+
background: var(--background-secondary-hover);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
&.checkbox__content--light {
|
|
162
|
+
&:hover {
|
|
163
|
+
background: var(--fixed-background-secondary-hover);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&.checkbox__content--blue {
|
|
168
|
+
&:hover {
|
|
169
|
+
background: var(--surface-primary-hover);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
156
173
|
}
|
|
157
174
|
|
|
158
175
|
&__icon {
|
|
@@ -162,7 +179,6 @@
|
|
|
162
179
|
height: $size;
|
|
163
180
|
position: relative;
|
|
164
181
|
width: $size;
|
|
165
|
-
margin-top: 2px;
|
|
166
182
|
flex-shrink: 0;
|
|
167
183
|
|
|
168
184
|
svg {
|
|
@@ -192,6 +208,7 @@
|
|
|
192
208
|
|
|
193
209
|
&__label {
|
|
194
210
|
color: var(--on-surface-primary-default);
|
|
211
|
+
margin-left: spacing.$xs;
|
|
195
212
|
|
|
196
213
|
&--light {
|
|
197
214
|
color: var(--on-fixed-surface-primary-default);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const s={light:"light",blue:"blue"};export{s as themes};
|
|
2
2
|
//# sourceMappingURL=checkbox.types.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/checkbox/checkbox.types.ts"],
|
|
4
|
-
"sourcesContent": ["import { ObjectValues, InputHtmlProps } from '../types';\n\nexport const themes = {\n light: 'light',\n blue: 'blue',\n} as const;\n\nexport type Checkbox = Omit<InputHtmlProps, 'value'> & {\n intermediate?: boolean;\n description?: string;\n extra?: React.ReactNode;\n isLabelVisible?: boolean;\n label?: string;\n name: string;\n value: string;\n showCustomError?: boolean;\n theme?: ObjectValues<typeof themes>;\n
|
|
4
|
+
"sourcesContent": ["import { ObjectValues, InputHtmlProps } from '../types';\n\nexport const themes = {\n light: 'light',\n blue: 'blue',\n} as const;\n\nexport type Checkbox = Omit<InputHtmlProps, 'value'> & {\n intermediate?: boolean;\n description?: string;\n extra?: React.ReactNode;\n isLabelVisible?: boolean;\n label?: string;\n name: string;\n value: string;\n showCustomError?: boolean;\n theme?: ObjectValues<typeof themes>;\n hasHover?: boolean;\n isWide?: boolean;\n};\n"],
|
|
5
5
|
"mappings": "AAEO,MAAMA,EAAS,CACpB,MAAO,QACP,KAAM,MACR",
|
|
6
6
|
"names": ["themes"]
|
|
7
7
|
}
|
package/react/chip/chip.scss
CHANGED
|
@@ -53,20 +53,28 @@
|
|
|
53
53
|
min-width: 0;
|
|
54
54
|
opacity: 0;
|
|
55
55
|
overflow: hidden;
|
|
56
|
-
|
|
56
|
+
|
|
57
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
58
|
+
transform: scale(0.85);
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
&__custom-icon--visible {
|
|
60
63
|
max-width: 999px; // NOTE: This is just so that the component can grow as much as it needs when the icon is shown
|
|
61
64
|
opacity: 1;
|
|
62
|
-
|
|
65
|
+
|
|
66
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
67
|
+
transform: scale(1);
|
|
68
|
+
}
|
|
63
69
|
}
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
72
|
+
&__custom-icon--animated {
|
|
73
|
+
transition:
|
|
74
|
+
max-width 220ms ease,
|
|
75
|
+
opacity 160ms ease,
|
|
76
|
+
transform 200ms ease;
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
&__text {
|
|
@@ -77,7 +85,9 @@
|
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
87
|
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
89
|
+
&__custom-icon--animated ~ .chip__text {
|
|
90
|
+
transition: margin-left 220ms ease;
|
|
91
|
+
}
|
|
82
92
|
}
|
|
83
93
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";var H=Object.defineProperty,I=Object.defineProperties;var
|
|
1
|
+
"use client";var H=Object.defineProperty,I=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var g=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var N=(n,o,t)=>o in n?H(n,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[o]=t,p=(n,o)=>{for(var t in o||(o={}))M.call(o,t)&&N(n,t,o[t]);if(g)for(var t of g(o))U.call(o,t)&&N(n,t,o[t]);return n},k=(n,o)=>I(n,F(o));import*as e from"react";import m from"../text";import y from"../checkbox";import W from"../icons/24/arrow-right";import j from"../icons/24/arrow-up";import q from"../visually-hidden";import{mod as v}from"../add-bem-modifiers";import B from"../collapse";const D=({currentlySelectedValues:n=[],id:o,isSearching:t,options:f,searchResults:b=[],selectAll:l,selectAllLabel:x,setMultipleSelectedValues:w=()=>{},setSelectedValue:z=()=>{},shouldShowItems:O=!0,removeAllValues:L=()=>{}})=>{const a=e.useMemo(()=>!!l,[l]),[r]=e.useState(f.filter(s=>!s.disabled)),[h,i]=e.useState(!!a),P=s=>{z(o,s)},T=()=>{n.length!==r.length?w(o,r.map(s=>s.value)):L(o)};e.useEffect(()=>i(t?!0:!a),[a,t,b]);const _=f.every(s=>s.disabled),E=n.length>0;return e.createElement("fieldset",{className:"form-content__fieldset"},a&&e.createElement("div",{className:v("form-content__chevron-button-wrapper",{hidden:t})},l?e.createElement("div",{className:"form-content__select-all"},e.createElement(y,k(p({},l),{isLabelVisible:!1,checked:r.length>0&&n.length===r.length,onChange:T,"data-test-select-all":!0,disabled:_}))):null,e.createElement("button",{className:"form-content__chevron-button",onClick:()=>i(s=>!s),type:"button"},e.createElement(m,{elementName:"span",className:v("form-content__select-all-label",{disabled:_}),size:m.sizes.basic},x),e.createElement("div",{className:"form-content__checkbox-category-info-wrapper"},E?e.createElement(m,{className:"form-content__checkbox-category-number",size:m.sizes.interface},n.length):void 0,h?e.createElement("div",{className:"form-content__checkbox-category-icon"},e.createElement(j,null)):e.createElement("div",{className:"form-content__checkbox-category-icon"},e.createElement(W,null))))),e.createElement(B,{duration:300,animateChildren:!!a,isOpen:h},e.createElement("fieldset",{className:"form-content__fieldset"},f.map(s=>{const c=t?b.find(u=>u.key.toLowerCase()===s.value.toLowerCase()):void 0,d=n.includes(s.value),C=e.createElement("div",{key:s.value,className:v("form-content__checkbox-button",{nested:!t&&a})},e.createElement(y,p({onChange:u=>P(u.target.value),checked:d},s)));if(!(!d&&!c&&!O)){if(d&&t&&!c)return e.createElement(q,{key:s.value},C);if(!(!d&&t&&!c))return C}}))))};var S=D;export{S as default};
|
|
2
2
|
//# sourceMappingURL=checkbox-category.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/form-content/checkbox-category.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport Text from '../text';\nimport Checkbox from '../checkbox';\n\nimport ChevronRight from '../icons/24/arrow-right';\nimport ChevronUp from '../icons/24/arrow-up';\n\nimport { CheckboxCategory as Props } from './form-content.checkbox-list.types';\nimport VisuallyHidden from '../visually-hidden';\nimport { mod } from '../add-bem-modifiers';\nimport Collapse from '../collapse';\n\nconst CheckboxCategory: React.FC<React.PropsWithChildren<Props>> = ({\n currentlySelectedValues = [],\n id,\n isSearching,\n options,\n searchResults = [],\n selectAll,\n selectAllLabel,\n setMultipleSelectedValues = () => {},\n setSelectedValue = () => {},\n shouldShowItems = true,\n removeAllValues = () => {},\n}) => {\n const isExpandable = React.useMemo(\n () => (selectAll ? true : false),\n [selectAll],\n );\n const [availableOptions] = React.useState(\n options.filter(button => !button.disabled),\n );\n\n const [isOpen, setIsOpen] = React.useState(isExpandable ? true : false);\n\n const handleChange = (value: string) => {\n setSelectedValue(id, value);\n };\n\n const handleSelectAll = () => {\n if (currentlySelectedValues.length !== availableOptions.length) {\n setMultipleSelectedValues(\n id,\n availableOptions.map(button => button.value),\n );\n } else {\n removeAllValues(id);\n }\n };\n\n React.useEffect(\n () =>\n isSearching\n ? setIsOpen(true)\n : isExpandable\n ? setIsOpen(false)\n : setIsOpen(true),\n [isExpandable, isSearching, searchResults],\n );\n\n const disableCategory = options.every(checkbox => checkbox.disabled);\n\n const hasSelectedValues = currentlySelectedValues.length > 0;\n\n return (\n <fieldset className=\"form-content__fieldset\">\n {isExpandable && (\n <div\n className={mod('form-content__chevron-button-wrapper', {\n hidden: isSearching,\n })}\n >\n {selectAll ? (\n <div className=\"form-content__select-all\">\n <Checkbox\n {...selectAll}\n isLabelVisible={false}\n checked={\n availableOptions.length > 0 &&\n currentlySelectedValues.length === availableOptions.length\n }\n onChange={handleSelectAll}\n data-test-select-all\n disabled={disableCategory}\n />\n </div>\n ) : null}\n <button\n className=\"form-content__chevron-button\"\n onClick={() => setIsOpen(currentState => !currentState)}\n type=\"button\"\n >\n <Text\n elementName=\"span\"\n className={mod('form-content__select-all-label', {\n disabled: disableCategory,\n })}\n size={Text.sizes.basic}\n >\n {selectAllLabel}\n </Text>\n <div className=\"form-content__checkbox-category-info-wrapper\">\n {hasSelectedValues ? (\n <Text\n className=\"form-content__checkbox-category-number\"\n size={Text.sizes.interface}\n >\n {currentlySelectedValues.length}\n </Text>\n ) : undefined}\n {isOpen ? (\n <div className=\"form-content__checkbox-category-icon\">\n <ChevronUp />\n </div>\n ) : (\n <div className=\"form-content__checkbox-category-icon\">\n <ChevronRight />\n </div>\n )}\n </div>\n </button>\n </div>\n )}\n\n <Collapse\n duration={300}\n animateChildren={isExpandable ? true : false}\n isOpen={isOpen}\n >\n {\n <fieldset className=\"form-content__fieldset\">\n {options.map(checkbox => {\n const isInSearchResults = isSearching\n ? searchResults.find(\n item =>\n item.key.toLowerCase() === checkbox.value.toLowerCase(),\n )\n : undefined;\n\n const isSelected = currentlySelectedValues.includes(\n checkbox.value,\n );\n\n const node = (\n <div\n key={checkbox.value}\n className={mod('form-content__checkbox-button', {\n nested: !isSearching && isExpandable,\n })}\n >\n <Checkbox\n onChange={e => handleChange(e.target.value)}\n checked={isSelected}\n
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport Text from '../text';\nimport Checkbox from '../checkbox';\n\nimport ChevronRight from '../icons/24/arrow-right';\nimport ChevronUp from '../icons/24/arrow-up';\n\nimport { CheckboxCategory as Props } from './form-content.checkbox-list.types';\nimport VisuallyHidden from '../visually-hidden';\nimport { mod } from '../add-bem-modifiers';\nimport Collapse from '../collapse';\n\nconst CheckboxCategory: React.FC<React.PropsWithChildren<Props>> = ({\n currentlySelectedValues = [],\n id,\n isSearching,\n options,\n searchResults = [],\n selectAll,\n selectAllLabel,\n setMultipleSelectedValues = () => {},\n setSelectedValue = () => {},\n shouldShowItems = true,\n removeAllValues = () => {},\n}) => {\n const isExpandable = React.useMemo(\n () => (selectAll ? true : false),\n [selectAll],\n );\n const [availableOptions] = React.useState(\n options.filter(button => !button.disabled),\n );\n\n const [isOpen, setIsOpen] = React.useState(isExpandable ? true : false);\n\n const handleChange = (value: string) => {\n setSelectedValue(id, value);\n };\n\n const handleSelectAll = () => {\n if (currentlySelectedValues.length !== availableOptions.length) {\n setMultipleSelectedValues(\n id,\n availableOptions.map(button => button.value),\n );\n } else {\n removeAllValues(id);\n }\n };\n\n React.useEffect(\n () =>\n isSearching\n ? setIsOpen(true)\n : isExpandable\n ? setIsOpen(false)\n : setIsOpen(true),\n [isExpandable, isSearching, searchResults],\n );\n\n const disableCategory = options.every(checkbox => checkbox.disabled);\n\n const hasSelectedValues = currentlySelectedValues.length > 0;\n\n return (\n <fieldset className=\"form-content__fieldset\">\n {isExpandable && (\n <div\n className={mod('form-content__chevron-button-wrapper', {\n hidden: isSearching,\n })}\n >\n {selectAll ? (\n <div className=\"form-content__select-all\">\n <Checkbox\n {...selectAll}\n isLabelVisible={false}\n checked={\n availableOptions.length > 0 &&\n currentlySelectedValues.length === availableOptions.length\n }\n onChange={handleSelectAll}\n data-test-select-all\n disabled={disableCategory}\n />\n </div>\n ) : null}\n <button\n className=\"form-content__chevron-button\"\n onClick={() => setIsOpen(currentState => !currentState)}\n type=\"button\"\n >\n <Text\n elementName=\"span\"\n className={mod('form-content__select-all-label', {\n disabled: disableCategory,\n })}\n size={Text.sizes.basic}\n >\n {selectAllLabel}\n </Text>\n <div className=\"form-content__checkbox-category-info-wrapper\">\n {hasSelectedValues ? (\n <Text\n className=\"form-content__checkbox-category-number\"\n size={Text.sizes.interface}\n >\n {currentlySelectedValues.length}\n </Text>\n ) : undefined}\n {isOpen ? (\n <div className=\"form-content__checkbox-category-icon\">\n <ChevronUp />\n </div>\n ) : (\n <div className=\"form-content__checkbox-category-icon\">\n <ChevronRight />\n </div>\n )}\n </div>\n </button>\n </div>\n )}\n\n <Collapse\n duration={300}\n animateChildren={isExpandable ? true : false}\n isOpen={isOpen}\n >\n {\n <fieldset className=\"form-content__fieldset\">\n {options.map(checkbox => {\n const isInSearchResults = isSearching\n ? searchResults.find(\n item =>\n item.key.toLowerCase() === checkbox.value.toLowerCase(),\n )\n : undefined;\n\n const isSelected = currentlySelectedValues.includes(\n checkbox.value,\n );\n\n const node = (\n <div\n key={checkbox.value}\n className={mod('form-content__checkbox-button', {\n nested: !isSearching && isExpandable,\n })}\n >\n <Checkbox\n onChange={e => handleChange(e.target.value)}\n checked={isSelected}\n {...checkbox}\n />\n </div>\n );\n\n if (!isSelected && !isInSearchResults && !shouldShowItems) {\n return;\n }\n\n if (isSelected && isSearching && !isInSearchResults) {\n return (\n <VisuallyHidden key={checkbox.value}>{node}</VisuallyHidden>\n );\n }\n\n if (!isSelected && isSearching && !isInSearchResults) {\n return;\n }\n\n return node;\n })}\n </fieldset>\n }\n </Collapse>\n </fieldset>\n );\n};\n\nexport default CheckboxCategory;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React", "Text", "Checkbox", "ChevronRight", "ChevronUp", "VisuallyHidden", "mod", "Collapse", "CheckboxCategory", "currentlySelectedValues", "id", "isSearching", "options", "searchResults", "selectAll", "selectAllLabel", "setMultipleSelectedValues", "setSelectedValue", "shouldShowItems", "removeAllValues", "isExpandable", "availableOptions", "button", "isOpen", "setIsOpen", "handleChange", "value", "handleSelectAll", "disableCategory", "checkbox", "hasSelectedValues", "__spreadProps", "__spreadValues", "currentState", "isInSearchResults", "item", "isSelected", "node", "e", "checkbox_category_default"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";var v=Object.defineProperty,T=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var
|
|
1
|
+
"use client";var v=Object.defineProperty,T=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var a=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var d=(t,e,r)=>e in t?v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,i=(t,e)=>{for(var r in e||(e={}))C.call(e,r)&&d(t,r,e[r]);if(a)for(var r of a(e))L.call(e,r)&&d(t,r,e[r]);return t},h=(t,e)=>T(t,g(e));import*as s from"react";import P from"../radio";import u from"../text";import _ from"./form-content.search";import k from"classnames";const x=t=>{const[e,r]=s.useState(""),[n,c]=s.useState();return s.createElement("div",null,"searchProps"in t?s.createElement(_,h(i({},t.searchProps),{searchResult:c,searchTerm:r})):void 0,t.categories.map((o,f)=>s.createElement("div",{key:f},o.header&&o.options.length>0&&e.length===0?s.createElement(u,{className:k("form-content__group-title",{hidden:e.length>0}),theme:u.themes.emphasis},o.header):void 0,o.options.map((m,l)=>{const p=e.length>0?n==null?void 0:n.find(S=>S.key.toLowerCase()===m.value.toLowerCase()):void 0;if(!(e.length>0&&!p))return s.createElement("div",{key:l,className:"form-content__radio-button"},s.createElement(P,i({},m)))}))))};var y=x;export{y as default};
|
|
2
2
|
//# sourceMappingURL=form-content.radio-list.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/form-content/form-content.radio-list.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport Radio from '../radio';\nimport Text from '../text';\nimport FormContentSearch from './form-content.search';\n\nimport { RadioList as Props, SearchItem } from './form-content.types';\nimport classNames from 'classnames';\n\nconst RadioList: React.FC<Props> = props => {\n const [searchTerm, setSearchTerm] = React.useState('');\n const [searchResult, setSearchResult] = React.useState<SearchItem[]>();\n return (\n <div>\n {'searchProps' in props ? (\n <FormContentSearch\n {...props.searchProps}\n searchResult={setSearchResult}\n searchTerm={setSearchTerm}\n />\n ) : undefined}\n {props.categories.map((category, categoryIndex) => (\n <div key={categoryIndex}>\n {category.header &&\n category.options.length > 0 &&\n searchTerm.length === 0 ? (\n <Text\n className={classNames('form-content__group-title', {\n hidden: searchTerm.length > 0,\n })}\n theme={Text.themes.emphasis}\n >\n {category.header}\n </Text>\n ) : undefined}\n {category.options.map((radio, i) => {\n const isInSearchResults =\n searchTerm.length > 0\n ? searchResult?.find(\n item =>\n item.key.toLowerCase() === radio.value.toLowerCase(),\n )\n : undefined;\n\n if (searchTerm.length > 0 && !isInSearchResults) return;\n\n return (\n <div key={i} className=\"form-content__radio-button\">\n <Radio {...radio}
|
|
5
|
-
"mappings": "0bAEA,UAAYA,MAAW,QACvB,OAAOC,MAAW,WAClB,OAAOC,MAAU,UACjB,OAAOC,MAAuB,wBAG9B,OAAOC,MAAgB,aAEvB,MAAMC,EAA6BC,GAAS,CAC1C,KAAM,CAACC,EAAYC,CAAa,EAAIR,EAAM,SAAS,EAAE,EAC/C,CAACS,EAAcC,CAAe,EAAIV,EAAM,SAAuB,EACrE,OACEA,EAAA,cAAC,WACE,gBAAiBM,EAChBN,EAAA,cAACG,EAAAQ,EAAAC,EAAA,GACKN,EAAM,aADX,CAEC,aAAcI,EACd,WAAYF,GACd,EACE,OACHF,EAAM,WAAW,IAAI,CAACO,EAAUC,IAC/Bd,EAAA,cAAC,OAAI,IAAKc,GACPD,EAAS,QACVA,EAAS,QAAQ,OAAS,GAC1BN,EAAW,SAAW,EACpBP,EAAA,cAACE,EAAA,CACC,UAAWE,EAAW,4BAA6B,CACjD,OAAQG,EAAW,OAAS,CAC9B,CAAC,EACD,MAAOL,EAAK,OAAO,UAElBW,EAAS,MACZ,EACE,OACHA,EAAS,QAAQ,IAAI,CAACE,EAAOC,IAAM,CAClC,MAAMC,EACJV,EAAW,OAAS,EAChBE,GAAA,YAAAA,EAAc,KACZS,GACEA,EAAK,IAAI,YAAY,IAAMH,EAAM,MAAM,YAAY,GAEvD,OAEN,GAAI,EAAAR,EAAW,OAAS,GAAK,CAACU,GAE9B,OACEjB,EAAA,cAAC,OAAI,IAAKgB,EAAG,UAAU,8BACrBhB,EAAA,cAACC,
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport Radio from '../radio';\nimport Text from '../text';\nimport FormContentSearch from './form-content.search';\n\nimport { RadioList as Props, SearchItem } from './form-content.types';\nimport classNames from 'classnames';\n\nconst RadioList: React.FC<Props> = props => {\n const [searchTerm, setSearchTerm] = React.useState('');\n const [searchResult, setSearchResult] = React.useState<SearchItem[]>();\n return (\n <div>\n {'searchProps' in props ? (\n <FormContentSearch\n {...props.searchProps}\n searchResult={setSearchResult}\n searchTerm={setSearchTerm}\n />\n ) : undefined}\n {props.categories.map((category, categoryIndex) => (\n <div key={categoryIndex}>\n {category.header &&\n category.options.length > 0 &&\n searchTerm.length === 0 ? (\n <Text\n className={classNames('form-content__group-title', {\n hidden: searchTerm.length > 0,\n })}\n theme={Text.themes.emphasis}\n >\n {category.header}\n </Text>\n ) : undefined}\n {category.options.map((radio, i) => {\n const isInSearchResults =\n searchTerm.length > 0\n ? searchResult?.find(\n item =>\n item.key.toLowerCase() === radio.value.toLowerCase(),\n )\n : undefined;\n\n if (searchTerm.length > 0 && !isInSearchResults) return;\n\n return (\n <div key={i} className=\"form-content__radio-button\">\n <Radio {...radio} />\n </div>\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\nexport default RadioList;\n"],
|
|
5
|
+
"mappings": "0bAEA,UAAYA,MAAW,QACvB,OAAOC,MAAW,WAClB,OAAOC,MAAU,UACjB,OAAOC,MAAuB,wBAG9B,OAAOC,MAAgB,aAEvB,MAAMC,EAA6BC,GAAS,CAC1C,KAAM,CAACC,EAAYC,CAAa,EAAIR,EAAM,SAAS,EAAE,EAC/C,CAACS,EAAcC,CAAe,EAAIV,EAAM,SAAuB,EACrE,OACEA,EAAA,cAAC,WACE,gBAAiBM,EAChBN,EAAA,cAACG,EAAAQ,EAAAC,EAAA,GACKN,EAAM,aADX,CAEC,aAAcI,EACd,WAAYF,GACd,EACE,OACHF,EAAM,WAAW,IAAI,CAACO,EAAUC,IAC/Bd,EAAA,cAAC,OAAI,IAAKc,GACPD,EAAS,QACVA,EAAS,QAAQ,OAAS,GAC1BN,EAAW,SAAW,EACpBP,EAAA,cAACE,EAAA,CACC,UAAWE,EAAW,4BAA6B,CACjD,OAAQG,EAAW,OAAS,CAC9B,CAAC,EACD,MAAOL,EAAK,OAAO,UAElBW,EAAS,MACZ,EACE,OACHA,EAAS,QAAQ,IAAI,CAACE,EAAOC,IAAM,CAClC,MAAMC,EACJV,EAAW,OAAS,EAChBE,GAAA,YAAAA,EAAc,KACZS,GACEA,EAAK,IAAI,YAAY,IAAMH,EAAM,MAAM,YAAY,GAEvD,OAEN,GAAI,EAAAR,EAAW,OAAS,GAAK,CAACU,GAE9B,OACEjB,EAAA,cAAC,OAAI,IAAKgB,EAAG,UAAU,8BACrBhB,EAAA,cAACC,EAAAW,EAAA,GAAUG,EAAO,CACpB,CAEJ,CAAC,CACH,CACD,CACH,CAEJ,EAEA,IAAOI,EAAQd",
|
|
6
6
|
"names": ["React", "Radio", "Text", "FormContentSearch", "classNames", "RadioList", "props", "searchTerm", "setSearchTerm", "searchResult", "setSearchResult", "__spreadProps", "__spreadValues", "category", "categoryIndex", "radio", "i", "isInSearchResults", "item", "form_content_radio_list_default"]
|
|
7
7
|
}
|
package/react/radio/radio.d.ts
CHANGED
|
@@ -3,11 +3,12 @@ import { colors } from './radio.types';
|
|
|
3
3
|
declare const RefRadio: React.ForwardRefExoticComponent<{
|
|
4
4
|
color?: import("../types").ObjectValues<typeof colors>;
|
|
5
5
|
description?: string;
|
|
6
|
-
isUnderline?: boolean;
|
|
7
6
|
label?: string;
|
|
8
7
|
name: string;
|
|
9
8
|
showCustomError?: boolean;
|
|
10
9
|
value: string;
|
|
10
|
+
hasHover?: boolean;
|
|
11
|
+
isWide?: boolean;
|
|
11
12
|
} & import("../types").InputHtmlProps & {
|
|
12
13
|
children?: React.ReactNode | undefined;
|
|
13
14
|
} & React.RefAttributes<HTMLInputElement>>;
|
package/react/radio/radio.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";var
|
|
1
|
+
"use client";var R=Object.defineProperty;var l=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable;var t=(a,i,o)=>i in a?R(a,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[i]=o,u=(a,i)=>{for(var o in i||(i={}))f.call(i,o)&&t(a,o,i[o]);if(l)for(var o of l(i))p.call(i,o)&&t(a,o,i[o]);return a};var v=(a,i)=>{var o={};for(var e in a)f.call(a,e)&&i.indexOf(e)<0&&(o[e]=a[e]);if(a!=null&&l)for(var e of l(a))i.indexOf(e)<0&&p.call(a,e)&&(o[e]=a[e]);return o};import T from"classnames";import*as r from"react";import w from"../use-input-validation";import c from"../text";import{colors as z}from"./radio.types";const h=r.forwardRef((k,b)=>{var m=k,{children:a,color:i,description:o,label:e,name:_,showCustomError:I=!0,value:N,isWide:g=!0,hasHover:C=!1}=m,n=v(m,["children","color","description","label","name","showCustomError","value","isWide","hasHover"]);const[y,x,s]=w();return r.createElement("label",{className:T("radio",{"radio--error":s,"radio--wide":g,"radio--hover":C},i)},r.createElement("input",u({name:_,value:N,ref:b,type:"radio",onChange:d=>{n.onChange&&n.onChange(d),y(d)},onInvalid:d=>{n.onInvalid&&n.onInvalid(d),x(d)}},n)),r.createElement("div",{className:"radio__label"},r.createElement("span",{className:"radio__fake-element"}),r.createElement("span",null,e,a)),s&&I&&r.createElement("div",{"aria-hidden":"true",className:"radio__error"},s),o&&r.createElement(c,{className:"radio__description",size:c.sizes.small},o))});h.displayName="Radio";const j=Object.assign(h,{colors:z});var W=j;export{W as default};
|
|
2
2
|
//# sourceMappingURL=radio.js.map
|
package/react/radio/radio.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/radio/radio.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\nimport Text from '../text';\n\nimport { colors, Radio as Props } from './radio.types';\n\nconst RefRadio = React.forwardRef<\n HTMLInputElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n color,\n description,\n
|
|
5
|
-
"mappings": "wgBAEA,OAAOA,MAAQ,aACf,UAAYC,MAAW,QAEvB,OAAOC,MAAwB,0BAC/B,OAAOC,MAAU,UAEjB,OAAS,UAAAC,MAA8B,gBAEvC,MAAMC,EAAWJ,EAAM,WAIrB,CACEK,
|
|
6
|
-
"names": ["cn", "React", "useInputValidation", "Text", "colors", "RefRadio", "_a", "ref", "_b", "children", "color", "description", "
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\nimport Text from '../text';\n\nimport { colors, Radio as Props } from './radio.types';\n\nconst RefRadio = React.forwardRef<\n HTMLInputElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n color,\n description,\n label,\n name,\n showCustomError = true,\n value,\n isWide = true,\n hasHover = false,\n ...restProps\n },\n ref,\n ) => {\n const [onChange, onInvalid, error] = useInputValidation();\n\n return (\n <label\n className={cn(\n 'radio',\n {\n 'radio--error': error,\n 'radio--wide': isWide,\n 'radio--hover': hasHover,\n },\n color,\n )}\n >\n <input\n name={name}\n value={value}\n ref={ref}\n type=\"radio\"\n onChange={e => {\n // NOTE: To not break compatibility\n if (restProps.onChange) restProps.onChange(e);\n onChange(e);\n }}\n onInvalid={e => {\n // NOTE: To not break compatibility\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n {...restProps}\n />\n <div className=\"radio__label\">\n <span className=\"radio__fake-element\"></span>\n <span>\n {label}\n {children}\n </span>\n </div>\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error && showCustomError && (\n <div aria-hidden=\"true\" className=\"radio__error\">\n {error}\n </div>\n )}\n\n {description && (\n <Text className=\"radio__description\" size={Text.sizes.small}>\n {description}\n </Text>\n )}\n </label>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"Radio\"\nRefRadio.displayName = 'Radio';\n\n// NOTE: The component is redeclared here because TypeScript doesn't accept assigning extra properties to `RefComponent` when it's declared\nconst Radio: typeof RefRadio & {\n colors: typeof colors;\n} = Object.assign(RefRadio, { colors });\n\nexport default Radio;\n"],
|
|
5
|
+
"mappings": "wgBAEA,OAAOA,MAAQ,aACf,UAAYC,MAAW,QAEvB,OAAOC,MAAwB,0BAC/B,OAAOC,MAAU,UAEjB,OAAS,UAAAC,MAA8B,gBAEvC,MAAMC,EAAWJ,EAAM,WAIrB,CACEK,EAYAC,IACG,CAbH,IAAAC,EAAAF,EACE,UAAAG,EACA,MAAAC,EACA,YAAAC,EACA,MAAAC,EACA,KAAAC,EACA,gBAAAC,EAAkB,GAClB,MAAAC,EACA,OAAAC,EAAS,GACT,SAAAC,EAAW,EAxBjB,EAeIT,EAUKU,EAAAC,EAVLX,EAUK,CATH,WACA,QACA,cACA,QACA,OACA,kBACA,QACA,SACA,aAKF,KAAM,CAACY,EAAUC,EAAWC,CAAK,EAAIpB,EAAmB,EAExD,OACED,EAAA,cAAC,SACC,UAAWD,EACT,QACA,CACE,eAAgBsB,EAChB,cAAeN,EACf,eAAgBC,CAClB,EACAP,CACF,GAEAT,EAAA,cAAC,QAAAsB,EAAA,CACC,KAAMV,EACN,MAAOE,EACP,IAAKR,EACL,KAAK,QACL,SAAUiB,GAAK,CAETN,EAAU,UAAUA,EAAU,SAASM,CAAC,EAC5CJ,EAASI,CAAC,CACZ,EACA,UAAWA,GAAK,CAEVN,EAAU,WAAWA,EAAU,UAAUM,CAAC,EAC9CH,EAAUG,CAAC,CACb,GACIN,EACN,EACAjB,EAAA,cAAC,OAAI,UAAU,gBACbA,EAAA,cAAC,QAAK,UAAU,sBAAsB,EACtCA,EAAA,cAAC,YACEW,EACAH,CACH,CACF,EAGCa,GAASR,GACRb,EAAA,cAAC,OAAI,cAAY,OAAO,UAAU,gBAC/BqB,CACH,EAGDX,GACCV,EAAA,cAACE,EAAA,CAAK,UAAU,qBAAqB,KAAMA,EAAK,MAAM,OACnDQ,CACH,CAEJ,CAEJ,CACF,EAGAN,EAAS,YAAc,QAGvB,MAAMoB,EAEF,OAAO,OAAOpB,EAAU,CAAE,OAAAD,CAAO,CAAC,EAEtC,IAAOsB,EAAQD",
|
|
6
|
+
"names": ["cn", "React", "useInputValidation", "Text", "colors", "RefRadio", "_a", "ref", "_b", "children", "color", "description", "label", "name", "showCustomError", "value", "isWide", "hasHover", "restProps", "__objRest", "onChange", "onInvalid", "error", "__spreadValues", "e", "Radio", "radio_default"]
|
|
7
7
|
}
|
package/react/radio/radio.scss
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
@use '../../tokens/colours';
|
|
2
2
|
@use '../../tokens/spacing';
|
|
3
|
+
@use '../../tokens/corner-radius';
|
|
3
4
|
|
|
4
5
|
.radio {
|
|
5
6
|
$root: &;
|
|
6
7
|
$size: 22px;
|
|
7
8
|
|
|
8
9
|
position: relative;
|
|
9
|
-
display:
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
10
12
|
|
|
11
13
|
&:focus-within {
|
|
12
14
|
.radio__fake-element {
|
|
@@ -31,6 +33,24 @@
|
|
|
31
33
|
opacity: 0;
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
&--wide {
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&--hover {
|
|
41
|
+
padding: spacing.$xs;
|
|
42
|
+
border-radius: corner-radius.$s;
|
|
43
|
+
&:hover {
|
|
44
|
+
background: var(--background-secondary-hover);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&.radio--light {
|
|
48
|
+
&:hover {
|
|
49
|
+
background: var(--fixed-background-secondary-hover);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
34
54
|
// NOTE: size these together to ensure the native input
|
|
35
55
|
// is the same size as the fake one
|
|
36
56
|
input,
|
|
@@ -39,17 +59,6 @@
|
|
|
39
59
|
width: $size;
|
|
40
60
|
}
|
|
41
61
|
|
|
42
|
-
&--underline {
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: column;
|
|
45
|
-
padding-bottom: spacing.$s;
|
|
46
|
-
border-bottom: 1px solid var(--ge-border-default);
|
|
47
|
-
|
|
48
|
-
&--light {
|
|
49
|
-
border-color: var(--ge-fixed-selector-unselected-default);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
62
|
&__fake-element {
|
|
54
63
|
position: relative;
|
|
55
64
|
display: block;
|
|
@@ -61,7 +70,6 @@
|
|
|
61
70
|
}
|
|
62
71
|
|
|
63
72
|
&__description {
|
|
64
|
-
margin-top: spacing.$xxs;
|
|
65
73
|
margin-left: 31px;
|
|
66
74
|
color: var(--on-surface-primary-alternate);
|
|
67
75
|
|
|
@@ -5,9 +5,10 @@ export declare const colors: {
|
|
|
5
5
|
export type Radio = {
|
|
6
6
|
color?: ObjectValues<typeof colors>;
|
|
7
7
|
description?: string;
|
|
8
|
-
isUnderline?: boolean;
|
|
9
8
|
label?: string;
|
|
10
9
|
name: string;
|
|
11
10
|
showCustomError?: boolean;
|
|
12
11
|
value: string;
|
|
12
|
+
hasHover?: boolean;
|
|
13
|
+
isWide?: boolean;
|
|
13
14
|
} & InputHtmlProps;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../react/radio/radio.types.ts"],
|
|
4
|
-
"sourcesContent": ["import { InputHtmlProps, ObjectValues } from '../types';\n\nexport const colors = {\n light: 'radio--light',\n} as const;\n\nexport type Radio = {\n color?: ObjectValues<typeof colors>;\n description?: string;\n
|
|
4
|
+
"sourcesContent": ["import { InputHtmlProps, ObjectValues } from '../types';\n\nexport const colors = {\n light: 'radio--light',\n} as const;\n\nexport type Radio = {\n color?: ObjectValues<typeof colors>;\n description?: string;\n label?: string;\n name: string;\n showCustomError?: boolean;\n value: string;\n hasHover?: boolean;\n isWide?: boolean;\n} & InputHtmlProps;\n"],
|
|
5
5
|
"mappings": "AAEO,MAAMA,EAAS,CACpB,MAAO,cACT",
|
|
6
6
|
"names": ["colors"]
|
|
7
7
|
}
|
package/tokens/dark.scss
CHANGED
|
@@ -73,7 +73,9 @@ $ge-tabs: primitives.$black-90;
|
|
|
73
73
|
$ge-badge-primary: primitives.$coral-90;
|
|
74
74
|
$ge-badge-secondary: primitives.$blue-10;
|
|
75
75
|
$ge-badge-tertiary: primitives.$black-80;
|
|
76
|
-
$ge-border-default: primitives.$
|
|
76
|
+
$ge-border-default: primitives.$blue-grey-80;
|
|
77
|
+
$ge-border-fixed: primitives.$white-20;
|
|
78
|
+
$ge-border-fixed-alternate: primitives.$white-40;
|
|
77
79
|
$ge-border-focused: primitives.$white-40;
|
|
78
80
|
$ge-chips-selected-default: primitives.$white-100;
|
|
79
81
|
$ge-chips-selected-disabled: primitives.$black-80;
|
|
@@ -94,6 +96,12 @@ $ge-fixed-chips-selected-hover: primitives.$coral-130;
|
|
|
94
96
|
$ge-fixed-chips-unselected-default: primitives.$white-100;
|
|
95
97
|
$ge-fixed-chips-unselected-disabled: primitives.$white-50;
|
|
96
98
|
$ge-fixed-chips-unselected-hover: primitives.$black-o20;
|
|
99
|
+
$ge-fixed-indicator-tags-attention: primitives.$tangerine-160;
|
|
100
|
+
$ge-fixed-indicator-tags-featured: primitives.$coral-120;
|
|
101
|
+
$ge-fixed-indicator-tags-information: primitives.$bright-blue-160;
|
|
102
|
+
$ge-fixed-indicator-tags-negative: primitives.$cardinal-170;
|
|
103
|
+
$ge-fixed-indicator-tags-neutral: primitives.$black-85;
|
|
104
|
+
$ge-fixed-indicator-tags-positive: primitives.$celadon-160;
|
|
97
105
|
$ge-fixed-progress-bar-background: primitives.$white-40;
|
|
98
106
|
$ge-fixed-progress-bar-indicator-alternate: primitives.$blue-10;
|
|
99
107
|
$ge-fixed-progress-bar-indicator-default: primitives.$coral-90;
|
|
@@ -270,6 +278,12 @@ $on-ge-on-fixed-chips-selected-default: primitives.$white-100;
|
|
|
270
278
|
$on-ge-on-fixed-chips-selected-disabled: primitives.$blue-40;
|
|
271
279
|
$on-ge-on-fixed-chips-unselected-default: primitives.$white-100;
|
|
272
280
|
$on-ge-on-fixed-chips-unselected-disabled: primitives.$white-50;
|
|
281
|
+
$on-ge-on-fixed-indicator-tags-attention: primitives.$tangerine-60;
|
|
282
|
+
$on-ge-on-fixed-indicator-tags-featured: primitives.$white-100;
|
|
283
|
+
$on-ge-on-fixed-indicator-tags-information: primitives.$bright-blue-60;
|
|
284
|
+
$on-ge-on-fixed-indicator-tags-negative: primitives.$cardinal-60;
|
|
285
|
+
$on-ge-on-fixed-indicator-tags-neutral: primitives.$black-40;
|
|
286
|
+
$on-ge-on-fixed-indicator-tags-positive: primitives.$celadon-60;
|
|
273
287
|
$on-ge-on-fixed-selector-selected-default: primitives.$blue-100;
|
|
274
288
|
$on-ge-on-fixed-selector-selected-disabled: primitives.$coral-170;
|
|
275
289
|
$on-ge-on-fixed-selector-unselected-default: primitives.$white-100;
|
|
@@ -402,7 +416,7 @@ $surface-secondary-default: primitives.$blue-100;
|
|
|
402
416
|
$surface-secondary-disabled: primitives.$blue-100;
|
|
403
417
|
$surface-secondary-hover: primitives.$blue-95;
|
|
404
418
|
$surface-secondary-selected: primitives.$blue-90;
|
|
405
|
-
$workout-surface-availability: primitives.$black-
|
|
419
|
+
$workout-surface-availability: primitives.$black-70;
|
|
406
420
|
$workout-surface-availability-hover: primitives.$black-80;
|
|
407
421
|
$workout-surface-bootcamp: primitives.$tropical-indigo-140;
|
|
408
422
|
$workout-surface-bootcamp-hover: primitives.$tropical-indigo-160;
|
package/tokens/darkmode.css
CHANGED
|
@@ -72,7 +72,9 @@
|
|
|
72
72
|
--ge-badge-primary: #fb6447;
|
|
73
73
|
--ge-badge-secondary: #e7e9eb;
|
|
74
74
|
--ge-badge-tertiary: #333333;
|
|
75
|
-
--ge-border-default: #
|
|
75
|
+
--ge-border-default: #404d5b;
|
|
76
|
+
--ge-border-fixed: #ffffff33;
|
|
77
|
+
--ge-border-fixed-alternate: #ffffff66;
|
|
76
78
|
--ge-border-focused: #ffffff66;
|
|
77
79
|
--ge-chips-selected-default: #ffffff;
|
|
78
80
|
--ge-chips-selected-disabled: #333333;
|
|
@@ -93,6 +95,12 @@
|
|
|
93
95
|
--ge-fixed-chips-unselected-default: #ffffff;
|
|
94
96
|
--ge-fixed-chips-unselected-disabled: #ffffff80;
|
|
95
97
|
--ge-fixed-chips-unselected-hover: #00000033;
|
|
98
|
+
--ge-fixed-indicator-tags-attention: #644000;
|
|
99
|
+
--ge-fixed-indicator-tags-featured: #c84229;
|
|
100
|
+
--ge-fixed-indicator-tags-information: #0f2f46;
|
|
101
|
+
--ge-fixed-indicator-tags-negative: #4a171c;
|
|
102
|
+
--ge-fixed-indicator-tags-neutral: #262626;
|
|
103
|
+
--ge-fixed-indicator-tags-positive: #184629;
|
|
96
104
|
--ge-fixed-progress-bar-background: #ffffff66;
|
|
97
105
|
--ge-fixed-progress-bar-indicator-alternate: #e7e9eb;
|
|
98
106
|
--ge-fixed-progress-bar-indicator-default: #fb6447;
|
|
@@ -269,6 +277,12 @@
|
|
|
269
277
|
--on-ge-on-fixed-chips-selected-disabled: #9ea6ae;
|
|
270
278
|
--on-ge-on-fixed-chips-unselected-default: #ffffff;
|
|
271
279
|
--on-ge-on-fixed-chips-unselected-disabled: #ffffff80;
|
|
280
|
+
--on-ge-on-fixed-indicator-tags-attention: #fdc666;
|
|
281
|
+
--on-ge-on-fixed-indicator-tags-featured: #ffffff;
|
|
282
|
+
--on-ge-on-fixed-indicator-tags-information: #7dadd0;
|
|
283
|
+
--on-ge-on-fixed-indicator-tags-negative: #d58891;
|
|
284
|
+
--on-ge-on-fixed-indicator-tags-neutral: #999999;
|
|
285
|
+
--on-ge-on-fixed-indicator-tags-positive: #a3f0bf;
|
|
272
286
|
--on-ge-on-fixed-selector-selected-default: #0d2134;
|
|
273
287
|
--on-ge-on-fixed-selector-selected-disabled: #4b190f;
|
|
274
288
|
--on-ge-on-fixed-selector-unselected-default: #ffffff;
|
|
@@ -401,7 +415,7 @@
|
|
|
401
415
|
--surface-secondary-disabled: #0d2134;
|
|
402
416
|
--surface-secondary-hover: #192c3e;
|
|
403
417
|
--surface-secondary-selected: #253748;
|
|
404
|
-
--workout-surface-availability: #
|
|
418
|
+
--workout-surface-availability: #4c4c4c;
|
|
405
419
|
--workout-surface-availability-hover: #333333;
|
|
406
420
|
--workout-surface-bootcamp: #644399;
|
|
407
421
|
--workout-surface-bootcamp-hover: #422d66;
|
|
@@ -36,7 +36,7 @@ html:not([data-theme]) {
|
|
|
36
36
|
--buttons-fixed-link-hover: #0f2f46;
|
|
37
37
|
--buttons-link-default: #ffffff00;
|
|
38
38
|
--buttons-link-disabled: #ffffff00;
|
|
39
|
-
--buttons-link-hover: #
|
|
39
|
+
--buttons-link-hover: #f4f8fb;
|
|
40
40
|
--buttons-primary-default: #0d2134;
|
|
41
41
|
--buttons-primary-disabled: #e5e5e5;
|
|
42
42
|
--buttons-primary-hover: #404d5b;
|
|
@@ -73,6 +73,8 @@ html:not([data-theme]) {
|
|
|
73
73
|
--ge-badge-secondary: #0d2134;
|
|
74
74
|
--ge-badge-tertiary: #f3f4f5;
|
|
75
75
|
--ge-border-default: #dcdee0;
|
|
76
|
+
--ge-border-fixed: #ffffff33;
|
|
77
|
+
--ge-border-fixed-alternate: #ffffff66;
|
|
76
78
|
--ge-border-focused: #9ea6ae;
|
|
77
79
|
--ge-chips-selected-default: #0d2134;
|
|
78
80
|
--ge-chips-selected-disabled: #dcdee0;
|
|
@@ -93,6 +95,12 @@ html:not([data-theme]) {
|
|
|
93
95
|
--ge-fixed-chips-unselected-default: #ffffff;
|
|
94
96
|
--ge-fixed-chips-unselected-disabled: #ffffff80;
|
|
95
97
|
--ge-fixed-chips-unselected-hover: #00000033;
|
|
98
|
+
--ge-fixed-indicator-tags-attention: #644000;
|
|
99
|
+
--ge-fixed-indicator-tags-featured: #c84229;
|
|
100
|
+
--ge-fixed-indicator-tags-information: #0f2f46;
|
|
101
|
+
--ge-fixed-indicator-tags-negative: #4a171c;
|
|
102
|
+
--ge-fixed-indicator-tags-neutral: #262626;
|
|
103
|
+
--ge-fixed-indicator-tags-positive: #184629;
|
|
96
104
|
--ge-fixed-progress-bar-background: #ffffff66;
|
|
97
105
|
--ge-fixed-progress-bar-indicator-alternate: #e7e9eb;
|
|
98
106
|
--ge-fixed-progress-bar-indicator-default: #fb6447;
|
|
@@ -164,17 +172,17 @@ html:not([data-theme]) {
|
|
|
164
172
|
--ge-selector-primary-selected-hover: #c84229;
|
|
165
173
|
--ge-selector-primary-selected-bg-default: #ffeeeb;
|
|
166
174
|
--ge-selector-primary-selected-bg-disabled: #fff6f5;
|
|
167
|
-
--ge-selector-primary-unselected-default: #
|
|
168
|
-
--ge-selector-primary-unselected-disabled: #
|
|
175
|
+
--ge-selector-primary-unselected-default: #dcdee0;
|
|
176
|
+
--ge-selector-primary-unselected-disabled: #e7e9eb;
|
|
169
177
|
--ge-selector-primary-unselected-hover: #ffeeeb;
|
|
170
178
|
--ge-selector-primary-unselected-bg-default: #ffffff00;
|
|
171
179
|
--ge-selector-primary-unselected-bg-disabled: #ffffff00;
|
|
172
180
|
--ge-selector-secondary-selected-default: #0d2134;
|
|
173
|
-
--ge-selector-secondary-selected-disabled: #
|
|
181
|
+
--ge-selector-secondary-selected-disabled: #e7e9eb;
|
|
174
182
|
--ge-selector-secondary-selected-bg-default: #e7e9eb;
|
|
175
183
|
--ge-selector-secondary-selected-bg-disabled: #f3f4f5;
|
|
176
|
-
--ge-selector-secondary-unselected-default: #
|
|
177
|
-
--ge-selector-secondary-unselected-disabled: #
|
|
184
|
+
--ge-selector-secondary-unselected-default: #dcdee0;
|
|
185
|
+
--ge-selector-secondary-unselected-disabled: #e7e9eb;
|
|
178
186
|
--ge-selector-secondary-unselected-bg-default: #ffffff00;
|
|
179
187
|
--ge-selector-secondary-unselected-bg-disabled: #ffffff00;
|
|
180
188
|
--ge-signal-error: #b93947;
|
|
@@ -269,6 +277,12 @@ html:not([data-theme]) {
|
|
|
269
277
|
--on-ge-on-fixed-chips-selected-disabled: #9ea6ae;
|
|
270
278
|
--on-ge-on-fixed-chips-unselected-default: #ffffff;
|
|
271
279
|
--on-ge-on-fixed-chips-unselected-disabled: #ffffff80;
|
|
280
|
+
--on-ge-on-fixed-indicator-tags-attention: #fdc666;
|
|
281
|
+
--on-ge-on-fixed-indicator-tags-featured: #ffffff;
|
|
282
|
+
--on-ge-on-fixed-indicator-tags-information: #7dadd0;
|
|
283
|
+
--on-ge-on-fixed-indicator-tags-negative: #d58891;
|
|
284
|
+
--on-ge-on-fixed-indicator-tags-neutral: #999999;
|
|
285
|
+
--on-ge-on-fixed-indicator-tags-positive: #a3f0bf;
|
|
272
286
|
--on-ge-on-fixed-selector-selected-default: #0d2134;
|
|
273
287
|
--on-ge-on-fixed-selector-selected-disabled: #4b190f;
|
|
274
288
|
--on-ge-on-fixed-selector-unselected-default: #ffffff;
|
|
@@ -279,7 +293,7 @@ html:not([data-theme]) {
|
|
|
279
293
|
--on-ge-on-indicator-tags-attention-default: #443716;
|
|
280
294
|
--on-ge-on-indicator-tags-featured-alternate: #c84229;
|
|
281
295
|
--on-ge-on-indicator-tags-featured-default: #ffffff;
|
|
282
|
-
--on-ge-on-indicator-tags-information-alternate: #
|
|
296
|
+
--on-ge-on-indicator-tags-information-alternate: #1b537b;
|
|
283
297
|
--on-ge-on-indicator-tags-information-default: #ffffff;
|
|
284
298
|
--on-ge-on-indicator-tags-negative-alternate: #942e39;
|
|
285
299
|
--on-ge-on-indicator-tags-negative-default: #ffffff;
|
package/tokens/light.scss
CHANGED
|
@@ -37,7 +37,7 @@ $buttons-fixed-link-disabled: primitives.$white-0;
|
|
|
37
37
|
$buttons-fixed-link-hover: primitives.$bright-blue-160;
|
|
38
38
|
$buttons-link-default: primitives.$white-0;
|
|
39
39
|
$buttons-link-disabled: primitives.$white-0;
|
|
40
|
-
$buttons-link-hover: primitives.$bright-blue-
|
|
40
|
+
$buttons-link-hover: primitives.$bright-blue-5;
|
|
41
41
|
$buttons-primary-default: primitives.$blue-100;
|
|
42
42
|
$buttons-primary-disabled: primitives.$black-10;
|
|
43
43
|
$buttons-primary-hover: primitives.$blue-grey-80;
|
|
@@ -74,6 +74,8 @@ $ge-badge-primary: primitives.$coral-120;
|
|
|
74
74
|
$ge-badge-secondary: primitives.$blue-100;
|
|
75
75
|
$ge-badge-tertiary: primitives.$blue-5;
|
|
76
76
|
$ge-border-default: primitives.$light-grey-15;
|
|
77
|
+
$ge-border-fixed: primitives.$white-20;
|
|
78
|
+
$ge-border-fixed-alternate: primitives.$white-40;
|
|
77
79
|
$ge-border-focused: primitives.$blue-40;
|
|
78
80
|
$ge-chips-selected-default: primitives.$blue-100;
|
|
79
81
|
$ge-chips-selected-disabled: primitives.$light-grey-15;
|
|
@@ -94,6 +96,12 @@ $ge-fixed-chips-selected-hover: primitives.$coral-130;
|
|
|
94
96
|
$ge-fixed-chips-unselected-default: primitives.$white-100;
|
|
95
97
|
$ge-fixed-chips-unselected-disabled: primitives.$white-50;
|
|
96
98
|
$ge-fixed-chips-unselected-hover: primitives.$black-o20;
|
|
99
|
+
$ge-fixed-indicator-tags-attention: primitives.$tangerine-160;
|
|
100
|
+
$ge-fixed-indicator-tags-featured: primitives.$coral-120;
|
|
101
|
+
$ge-fixed-indicator-tags-information: primitives.$bright-blue-160;
|
|
102
|
+
$ge-fixed-indicator-tags-negative: primitives.$cardinal-170;
|
|
103
|
+
$ge-fixed-indicator-tags-neutral: primitives.$black-85;
|
|
104
|
+
$ge-fixed-indicator-tags-positive: primitives.$celadon-160;
|
|
97
105
|
$ge-fixed-progress-bar-background: primitives.$white-40;
|
|
98
106
|
$ge-fixed-progress-bar-indicator-alternate: primitives.$blue-10;
|
|
99
107
|
$ge-fixed-progress-bar-indicator-default: primitives.$coral-90;
|
|
@@ -165,17 +173,17 @@ $ge-selector-primary-selected-disabled: primitives.$coral-40;
|
|
|
165
173
|
$ge-selector-primary-selected-hover: primitives.$coral-120;
|
|
166
174
|
$ge-selector-primary-selected-bg-default: primitives.$coral-10;
|
|
167
175
|
$ge-selector-primary-selected-bg-disabled: primitives.$coral-5;
|
|
168
|
-
$ge-selector-primary-unselected-default: primitives.$
|
|
169
|
-
$ge-selector-primary-unselected-disabled: primitives.$
|
|
176
|
+
$ge-selector-primary-unselected-default: primitives.$light-grey-15;
|
|
177
|
+
$ge-selector-primary-unselected-disabled: primitives.$blue-10;
|
|
170
178
|
$ge-selector-primary-unselected-hover: primitives.$coral-10;
|
|
171
179
|
$ge-selector-primary-unselected-bg-default: primitives.$white-0;
|
|
172
180
|
$ge-selector-primary-unselected-bg-disabled: primitives.$white-0;
|
|
173
181
|
$ge-selector-secondary-selected-default: primitives.$blue-100;
|
|
174
|
-
$ge-selector-secondary-selected-disabled: primitives.$
|
|
182
|
+
$ge-selector-secondary-selected-disabled: primitives.$blue-10;
|
|
175
183
|
$ge-selector-secondary-selected-bg-default: primitives.$blue-10;
|
|
176
184
|
$ge-selector-secondary-selected-bg-disabled: primitives.$blue-5;
|
|
177
|
-
$ge-selector-secondary-unselected-default: primitives.$
|
|
178
|
-
$ge-selector-secondary-unselected-disabled: primitives.$
|
|
185
|
+
$ge-selector-secondary-unselected-default: primitives.$light-grey-15;
|
|
186
|
+
$ge-selector-secondary-unselected-disabled: primitives.$blue-10;
|
|
179
187
|
$ge-selector-secondary-unselected-bg-default: primitives.$white-0;
|
|
180
188
|
$ge-selector-secondary-unselected-bg-disabled: primitives.$white-0;
|
|
181
189
|
$ge-signal-error: primitives.$cardinal-100;
|
|
@@ -270,6 +278,12 @@ $on-ge-on-fixed-chips-selected-default: primitives.$white-100;
|
|
|
270
278
|
$on-ge-on-fixed-chips-selected-disabled: primitives.$blue-40;
|
|
271
279
|
$on-ge-on-fixed-chips-unselected-default: primitives.$white-100;
|
|
272
280
|
$on-ge-on-fixed-chips-unselected-disabled: primitives.$white-50;
|
|
281
|
+
$on-ge-on-fixed-indicator-tags-attention: primitives.$tangerine-60;
|
|
282
|
+
$on-ge-on-fixed-indicator-tags-featured: primitives.$white-100;
|
|
283
|
+
$on-ge-on-fixed-indicator-tags-information: primitives.$bright-blue-60;
|
|
284
|
+
$on-ge-on-fixed-indicator-tags-negative: primitives.$cardinal-60;
|
|
285
|
+
$on-ge-on-fixed-indicator-tags-neutral: primitives.$black-40;
|
|
286
|
+
$on-ge-on-fixed-indicator-tags-positive: primitives.$celadon-60;
|
|
273
287
|
$on-ge-on-fixed-selector-selected-default: primitives.$blue-100;
|
|
274
288
|
$on-ge-on-fixed-selector-selected-disabled: primitives.$coral-170;
|
|
275
289
|
$on-ge-on-fixed-selector-unselected-default: primitives.$white-100;
|
|
@@ -280,7 +294,7 @@ $on-ge-on-indicator-tags-attention-alternate: primitives.$gold-140;
|
|
|
280
294
|
$on-ge-on-indicator-tags-attention-default: primitives.$gold-170;
|
|
281
295
|
$on-ge-on-indicator-tags-featured-alternate: primitives.$coral-120;
|
|
282
296
|
$on-ge-on-indicator-tags-featured-default: primitives.$white-100;
|
|
283
|
-
$on-ge-on-indicator-tags-information-alternate: primitives.$blue-
|
|
297
|
+
$on-ge-on-indicator-tags-information-alternate: primitives.$bright-blue-130;
|
|
284
298
|
$on-ge-on-indicator-tags-information-default: primitives.$white-100;
|
|
285
299
|
$on-ge-on-indicator-tags-negative-alternate: primitives.$cardinal-120;
|
|
286
300
|
$on-ge-on-indicator-tags-negative-default: primitives.$white-100;
|
package/tokens/lightmode.css
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
--buttons-fixed-link-hover: #0f2f46;
|
|
37
37
|
--buttons-link-default: #ffffff00;
|
|
38
38
|
--buttons-link-disabled: #ffffff00;
|
|
39
|
-
--buttons-link-hover: #
|
|
39
|
+
--buttons-link-hover: #f4f8fb;
|
|
40
40
|
--buttons-primary-default: #0d2134;
|
|
41
41
|
--buttons-primary-disabled: #e5e5e5;
|
|
42
42
|
--buttons-primary-hover: #404d5b;
|
|
@@ -73,6 +73,8 @@
|
|
|
73
73
|
--ge-badge-secondary: #0d2134;
|
|
74
74
|
--ge-badge-tertiary: #f3f4f5;
|
|
75
75
|
--ge-border-default: #dcdee0;
|
|
76
|
+
--ge-border-fixed: #ffffff33;
|
|
77
|
+
--ge-border-fixed-alternate: #ffffff66;
|
|
76
78
|
--ge-border-focused: #9ea6ae;
|
|
77
79
|
--ge-chips-selected-default: #0d2134;
|
|
78
80
|
--ge-chips-selected-disabled: #dcdee0;
|
|
@@ -93,6 +95,12 @@
|
|
|
93
95
|
--ge-fixed-chips-unselected-default: #ffffff;
|
|
94
96
|
--ge-fixed-chips-unselected-disabled: #ffffff80;
|
|
95
97
|
--ge-fixed-chips-unselected-hover: #00000033;
|
|
98
|
+
--ge-fixed-indicator-tags-attention: #644000;
|
|
99
|
+
--ge-fixed-indicator-tags-featured: #c84229;
|
|
100
|
+
--ge-fixed-indicator-tags-information: #0f2f46;
|
|
101
|
+
--ge-fixed-indicator-tags-negative: #4a171c;
|
|
102
|
+
--ge-fixed-indicator-tags-neutral: #262626;
|
|
103
|
+
--ge-fixed-indicator-tags-positive: #184629;
|
|
96
104
|
--ge-fixed-progress-bar-background: #ffffff66;
|
|
97
105
|
--ge-fixed-progress-bar-indicator-alternate: #e7e9eb;
|
|
98
106
|
--ge-fixed-progress-bar-indicator-default: #fb6447;
|
|
@@ -164,17 +172,17 @@
|
|
|
164
172
|
--ge-selector-primary-selected-hover: #c84229;
|
|
165
173
|
--ge-selector-primary-selected-bg-default: #ffeeeb;
|
|
166
174
|
--ge-selector-primary-selected-bg-disabled: #fff6f5;
|
|
167
|
-
--ge-selector-primary-unselected-default: #
|
|
168
|
-
--ge-selector-primary-unselected-disabled: #
|
|
175
|
+
--ge-selector-primary-unselected-default: #dcdee0;
|
|
176
|
+
--ge-selector-primary-unselected-disabled: #e7e9eb;
|
|
169
177
|
--ge-selector-primary-unselected-hover: #ffeeeb;
|
|
170
178
|
--ge-selector-primary-unselected-bg-default: #ffffff00;
|
|
171
179
|
--ge-selector-primary-unselected-bg-disabled: #ffffff00;
|
|
172
180
|
--ge-selector-secondary-selected-default: #0d2134;
|
|
173
|
-
--ge-selector-secondary-selected-disabled: #
|
|
181
|
+
--ge-selector-secondary-selected-disabled: #e7e9eb;
|
|
174
182
|
--ge-selector-secondary-selected-bg-default: #e7e9eb;
|
|
175
183
|
--ge-selector-secondary-selected-bg-disabled: #f3f4f5;
|
|
176
|
-
--ge-selector-secondary-unselected-default: #
|
|
177
|
-
--ge-selector-secondary-unselected-disabled: #
|
|
184
|
+
--ge-selector-secondary-unselected-default: #dcdee0;
|
|
185
|
+
--ge-selector-secondary-unselected-disabled: #e7e9eb;
|
|
178
186
|
--ge-selector-secondary-unselected-bg-default: #ffffff00;
|
|
179
187
|
--ge-selector-secondary-unselected-bg-disabled: #ffffff00;
|
|
180
188
|
--ge-signal-error: #b93947;
|
|
@@ -269,6 +277,12 @@
|
|
|
269
277
|
--on-ge-on-fixed-chips-selected-disabled: #9ea6ae;
|
|
270
278
|
--on-ge-on-fixed-chips-unselected-default: #ffffff;
|
|
271
279
|
--on-ge-on-fixed-chips-unselected-disabled: #ffffff80;
|
|
280
|
+
--on-ge-on-fixed-indicator-tags-attention: #fdc666;
|
|
281
|
+
--on-ge-on-fixed-indicator-tags-featured: #ffffff;
|
|
282
|
+
--on-ge-on-fixed-indicator-tags-information: #7dadd0;
|
|
283
|
+
--on-ge-on-fixed-indicator-tags-negative: #d58891;
|
|
284
|
+
--on-ge-on-fixed-indicator-tags-neutral: #999999;
|
|
285
|
+
--on-ge-on-fixed-indicator-tags-positive: #a3f0bf;
|
|
272
286
|
--on-ge-on-fixed-selector-selected-default: #0d2134;
|
|
273
287
|
--on-ge-on-fixed-selector-selected-disabled: #4b190f;
|
|
274
288
|
--on-ge-on-fixed-selector-unselected-default: #ffffff;
|
|
@@ -279,7 +293,7 @@
|
|
|
279
293
|
--on-ge-on-indicator-tags-attention-default: #443716;
|
|
280
294
|
--on-ge-on-indicator-tags-featured-alternate: #c84229;
|
|
281
295
|
--on-ge-on-indicator-tags-featured-default: #ffffff;
|
|
282
|
-
--on-ge-on-indicator-tags-information-alternate: #
|
|
296
|
+
--on-ge-on-indicator-tags-information-alternate: #1b537b;
|
|
283
297
|
--on-ge-on-indicator-tags-information-default: #ffffff;
|
|
284
298
|
--on-ge-on-indicator-tags-negative-alternate: #942e39;
|
|
285
299
|
--on-ge-on-indicator-tags-negative-default: #ffffff;
|