@sats-group/ui-lib 81.0.1 → 81.2.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.
Files changed (78) hide show
  1. package/package.json +1 -1
  2. package/react/badge/badge.scss +13 -13
  3. package/react/banner/banner.js +1 -1
  4. package/react/banner/banner.js.map +2 -2
  5. package/react/banner/banner.scss +17 -17
  6. package/react/bomb/bomb.scss +4 -4
  7. package/react/checkbox/checkbox.js +1 -1
  8. package/react/checkbox/checkbox.js.map +2 -2
  9. package/react/checkbox/checkbox.scss +36 -36
  10. package/react/chip/chip.scss +10 -10
  11. package/react/chip-selected/chip-selected.js +1 -1
  12. package/react/chip-selected/chip-selected.js.map +2 -2
  13. package/react/chip-selected/chip-selected.scss +3 -3
  14. package/react/collapse/collapse.js +1 -1
  15. package/react/collapse/collapse.js.map +2 -2
  16. package/react/confirmation/confirmation.js +1 -1
  17. package/react/confirmation/confirmation.js.map +2 -2
  18. package/react/confirmation/confirmation.scss +4 -4
  19. package/react/context-menu/context-menu.js +1 -1
  20. package/react/context-menu/context-menu.js.map +2 -2
  21. package/react/context-menu/context-menu.scss +14 -14
  22. package/react/dropdown-list/dropdown-list.js +1 -1
  23. package/react/dropdown-list/dropdown-list.js.map +2 -2
  24. package/react/dropdown-list/dropdown-list.scss +33 -33
  25. package/react/expander/expander.js +1 -1
  26. package/react/expander/expander.js.map +2 -2
  27. package/react/expander/expander.scss +9 -9
  28. package/react/filter/filter.js +1 -1
  29. package/react/filter/filter.js.map +2 -2
  30. package/react/filter/filter.scss +11 -11
  31. package/react/flag/flag.scss +4 -4
  32. package/react/form-content/checkbox-category.js +1 -1
  33. package/react/form-content/checkbox-category.js.map +2 -2
  34. package/react/form-content/form-content.checkbox-list.js +1 -1
  35. package/react/form-content/form-content.checkbox-list.js.map +2 -2
  36. package/react/form-content/form-content.radio-list.js +1 -1
  37. package/react/form-content/form-content.radio-list.js.map +2 -2
  38. package/react/form-content/form-content.scss +11 -11
  39. package/react/form-content/form-content.search.js +1 -1
  40. package/react/form-content/form-content.search.js.map +2 -2
  41. package/react/link/link.scss +9 -9
  42. package/react/link-card/link-card.scss +5 -5
  43. package/react/message/message.scss +10 -10
  44. package/react/message-field/message-field.js +1 -1
  45. package/react/message-field/message-field.js.map +2 -2
  46. package/react/message-field/message-field.scss +2 -2
  47. package/react/modal/modal.js +1 -1
  48. package/react/modal/modal.js.map +2 -2
  49. package/react/modal/modal.scss +9 -9
  50. package/react/modal/tab-trapper.js +1 -1
  51. package/react/modal/tab-trapper.js.map +2 -2
  52. package/react/progress-bar/progress-bar.scss +7 -7
  53. package/react/radio/radio.js +1 -1
  54. package/react/radio/radio.js.map +2 -2
  55. package/react/radio/radio.scss +19 -19
  56. package/react/scale-bar/scale-bar.scss +3 -3
  57. package/react/search/search.js +1 -1
  58. package/react/search/search.js.map +2 -2
  59. package/react/search/search.scss +17 -17
  60. package/react/select/select.js +1 -1
  61. package/react/select/select.js.map +2 -2
  62. package/react/select/select.scss +17 -17
  63. package/react/tag/tag.scss +39 -39
  64. package/react/text-area/text-area.js +1 -1
  65. package/react/text-area/text-area.js.map +2 -2
  66. package/react/text-area/text-area.scss +32 -32
  67. package/react/text-input/text-input.js +1 -1
  68. package/react/text-input/text-input.js.map +2 -2
  69. package/react/text-input/text-input.scss +37 -37
  70. package/react/toggle/toggle.js +1 -1
  71. package/react/toggle/toggle.js.map +2 -2
  72. package/react/toggle/toggle.scss +4 -4
  73. package/react/toolbox/toolbox.scss +6 -6
  74. package/react/visually-button/visually-button.scss +79 -79
  75. package/tokens/colours.scss +3 -0
  76. package/tokens/default-colours.css +414 -0
  77. /package/tokens/{dark-variables.css → darkmode.css} +0 -0
  78. /package/tokens/{light-variables.css → lightmode.css} +0 -0
@@ -1,6 +1,6 @@
1
1
  @use '../../tokens/corner-radius';
2
2
  @use '../../tokens/font-names';
3
- @use '../../tokens/light';
3
+ @use '../../tokens/colours';
4
4
  @use '../../tokens/spacing';
5
5
  @use '../../tokens/elevation';
6
6
 
@@ -35,11 +35,11 @@
35
35
  }
36
36
 
37
37
  &__loading-input {
38
- background-color: light.$ge-skeleton-default;
38
+ background-color: var(--ge-skeleton-default);
39
39
  border-radius: spacing.$m;
40
40
 
41
41
  &--fixed {
42
- background-color: light.$on-fixed-background-primary-disabled;
42
+ background-color: var(--on-fixed-background-primary-disabled);
43
43
  }
44
44
 
45
45
  &--small {
@@ -52,33 +52,33 @@
52
52
 
53
53
  &__loading-extra {
54
54
  border-radius: corner-radius.$s;
55
- color: light.$ge-skeleton-default;
56
- background-color: light.$ge-skeleton-default;
55
+ color: var(--ge-skeleton-default);
56
+ background-color: var(--ge-skeleton-default);
57
57
  width: fit-content;
58
58
 
59
59
  &--fixed {
60
- background-color: light.$on-fixed-background-primary-disabled;
60
+ background-color: var(--on-fixed-background-primary-disabled);
61
61
  }
62
62
  }
63
63
 
64
64
  &__header {
65
65
  &--variant-fixed {
66
- color: light.$on-fixed-surface-secondary-default;
66
+ color: var(--on-fixed-surface-secondary-default);
67
67
  }
68
68
  }
69
69
 
70
70
  &__input-wrapper {
71
71
  display: flex;
72
72
  justify-content: space-evenly;
73
- border: 1px solid light.$ge-border-default;
73
+ border: 1px solid var(--ge-border-default);
74
74
 
75
75
  &--variant-default {
76
- background-color: light.$surface-primary-default;
76
+ background-color: var(--surface-primary-default);
77
77
  }
78
78
 
79
79
  &--variant-fixed {
80
- color: light.$on-fixed-surface-secondary-default;
81
- background-color: light.$fixed-surface-secondary-default;
80
+ color: var(--on-fixed-surface-secondary-default);
81
+ background-color: var(--fixed-surface-secondary-default);
82
82
  }
83
83
 
84
84
  &--theme-floating {
@@ -91,7 +91,7 @@
91
91
 
92
92
  &--theme-inline {
93
93
  &:focus-within {
94
- border-color: light.$ge-border-focused;
94
+ border-color: var(--ge-border-focused);
95
95
  }
96
96
  }
97
97
 
@@ -159,7 +159,7 @@
159
159
 
160
160
  &--variant-fixed {
161
161
  &::placeholder {
162
- color: light.$on-fixed-surface-secondary-alternate;
162
+ color: var(--on-fixed-surface-secondary-alternate);
163
163
  }
164
164
  }
165
165
 
@@ -171,10 +171,10 @@
171
171
  &__icon {
172
172
  display: flex;
173
173
  background: transparent;
174
- color: light.$on-surface-primary-alternate;
174
+ color: var(--on-surface-primary-alternate);
175
175
 
176
176
  &--variant-fixed {
177
- color: light.$on-fixed-surface-secondary-alternate;
177
+ color: var(--on-fixed-surface-secondary-alternate);
178
178
  }
179
179
  }
180
180
 
@@ -204,10 +204,10 @@
204
204
  display: flex;
205
205
  gap: spacing.$xs;
206
206
  align-items: center;
207
- color: light.$on-background-primary-disabled;
207
+ color: var(--on-background-primary-disabled);
208
208
 
209
209
  &--variant-fixed {
210
- color: light.$on-fixed-background-primary-disabled;
210
+ color: var(--on-fixed-background-primary-disabled);
211
211
  }
212
212
  }
213
213
  }
@@ -1,2 +1,2 @@
1
- var L=Object.defineProperty;var o=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var g=(e,s,t)=>s in e?L(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,v=(e,s)=>{for(var t in s||(s={}))x.call(s,t)&&g(e,t,s[t]);if(o)for(var t of o(s))C.call(s,t)&&g(e,t,s[t]);return e};var E=(e,s)=>{var t={};for(var a in e)x.call(e,a)&&s.indexOf(a)<0&&(t[a]=e[a]);if(e!=null&&o)for(var a of o(e))s.indexOf(a)<0&&C.call(e,a)&&(t[a]=e[a]);return t};import i from"classnames";import*as l from"react";import $ from"../use-input-validation";import j from"../select-option/select-option";import r from"../text";import A from"../icons/18/arrow-down";import{labelPositions as b,variants as f}from"./select.types";const w=l.forwardRef((W,T)=>{var N=W,{children:e,className:s,id:t,isLabelVisible:a=!0,label:c,labelPosition:I=b.stacked,name:y,onChange:O=()=>{},onChangeOption:P=()=>{},options:u=[],required:m,variant:h=f.large,wide:p}=N,_=E(N,["children","className","id","isLabelVisible","label","labelPosition","name","onChange","onChangeOption","options","required","variant","wide"]);const[k,z,d]=$(),H=n=>{O(n),P(u.find(({value:M})=>M===n.target.value)),k(n)},S=m?l.createElement("span",{className:"select__asterisk"},"*"):null;return l.createElement("div",{className:i("select",s,{"select--error":d})},l.createElement("div",{className:i(`select__content select__content--position-${I}`,{"select__content--wide":p})},a?l.createElement("label",{className:"select__label",htmlFor:t},c||e?l.createElement("div",{className:"select__label-text"},l.createElement(r,{size:h===f.small?r.sizes.small:r.sizes.basic,theme:r.themes.emphasis},c),S,e):m?S:null):null,l.createElement("div",{className:i("select__native-wrapper",{"select__native-wrapper--wide":p})},l.createElement("select",v({"aria-label":a?void 0:c,className:i(`select__select select__select--variant-${h}`,{"select__select--wide":p}),id:t,name:y,onChange:H,onInvalid:n=>{_.onInvalid&&_.onInvalid(n),z(n)},ref:T,required:m},_),u.map(n=>l.createElement(j,v({key:n.value},n)))),l.createElement("span",{className:"select__chevron"},l.createElement(A,null))),d?l.createElement("div",{"aria-hidden":"true",className:"select__error"},d):null))});w.displayName="Select";const D=w,F=Object.assign(D,{labelPositions:b,variants:f});var Y=F;export{Y as default};
1
+ "use client";var L=Object.defineProperty;var o=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var g=(e,s,t)=>s in e?L(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,v=(e,s)=>{for(var t in s||(s={}))x.call(s,t)&&g(e,t,s[t]);if(o)for(var t of o(s))C.call(s,t)&&g(e,t,s[t]);return e};var E=(e,s)=>{var t={};for(var a in e)x.call(e,a)&&s.indexOf(a)<0&&(t[a]=e[a]);if(e!=null&&o)for(var a of o(e))s.indexOf(a)<0&&C.call(e,a)&&(t[a]=e[a]);return t};import i from"classnames";import*as l from"react";import $ from"../use-input-validation";import j from"../select-option/select-option";import r from"../text";import A from"../icons/18/arrow-down";import{labelPositions as b,variants as f}from"./select.types";const w=l.forwardRef((W,T)=>{var N=W,{children:e,className:s,id:t,isLabelVisible:a=!0,label:c,labelPosition:I=b.stacked,name:y,onChange:O=()=>{},onChangeOption:P=()=>{},options:u=[],required:m,variant:h=f.large,wide:p}=N,_=E(N,["children","className","id","isLabelVisible","label","labelPosition","name","onChange","onChangeOption","options","required","variant","wide"]);const[k,z,d]=$(),H=n=>{O(n),P(u.find(({value:M})=>M===n.target.value)),k(n)},S=m?l.createElement("span",{className:"select__asterisk"},"*"):null;return l.createElement("div",{className:i("select",s,{"select--error":d})},l.createElement("div",{className:i(`select__content select__content--position-${I}`,{"select__content--wide":p})},a?l.createElement("label",{className:"select__label",htmlFor:t},c||e?l.createElement("div",{className:"select__label-text"},l.createElement(r,{size:h===f.small?r.sizes.small:r.sizes.basic,theme:r.themes.emphasis},c),S,e):m?S:null):null,l.createElement("div",{className:i("select__native-wrapper",{"select__native-wrapper--wide":p})},l.createElement("select",v({"aria-label":a?void 0:c,className:i(`select__select select__select--variant-${h}`,{"select__select--wide":p}),id:t,name:y,onChange:H,onInvalid:n=>{_.onInvalid&&_.onInvalid(n),z(n)},ref:T,required:m},_),u.map(n=>l.createElement(j,v({key:n.value},n)))),l.createElement("span",{className:"select__chevron"},l.createElement(A,null))),d?l.createElement("div",{"aria-hidden":"true",className:"select__error"},d):null))});w.displayName="Select";const D=w,F=Object.assign(D,{labelPositions:b,variants:f});var Y=F;export{Y as default};
2
2
  //# sourceMappingURL=select.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../react/select/select.tsx"],
4
- "sourcesContent": ["import cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\n\nimport Option from '../select-option/select-option';\nimport Text from '../text';\nimport SvgArrowDown from '../icons/18/arrow-down';\n\nimport { labelPositions, Select as Props, variants } from './select.types';\n\n// NOTE: `onChangeOption` works like `onChange` but returns the props for that option instead of an event object.\nconst RefSelect = React.forwardRef<\n HTMLSelectElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n className,\n id,\n isLabelVisible = true,\n label,\n labelPosition = labelPositions.stacked,\n name,\n onChange = () => {},\n onChangeOption = () => {},\n options = [],\n required,\n variant = variants.large,\n wide,\n ...restProps\n },\n ref,\n ) => {\n const [validationOnChange, onInvalid, error] = useInputValidation();\n\n const onInputChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n onChange(e);\n onChangeOption(options.find(({ value }) => value === e.target.value));\n validationOnChange(e);\n };\n\n const asterix = required ? (\n <span className=\"select__asterisk\">*</span>\n ) : null;\n\n return (\n <div className={cn('select', className, { 'select--error': error })}>\n <div\n className={cn(\n `select__content select__content--position-${labelPosition}`,\n { 'select__content--wide': wide },\n )}\n >\n {isLabelVisible ? (\n <label className=\"select__label\" htmlFor={id}>\n {label || children ? (\n <div className=\"select__label-text\">\n <Text\n size={\n variant === variants.small\n ? Text.sizes.small\n : Text.sizes.basic\n }\n theme={Text.themes.emphasis}\n >\n {label}\n </Text>\n {asterix}\n {children}\n </div>\n ) : required ? (\n asterix\n ) : null}\n </label>\n ) : null}\n <div\n className={cn('select__native-wrapper', {\n 'select__native-wrapper--wide': wide,\n })}\n >\n <select\n aria-label={isLabelVisible ? undefined : label}\n className={cn(\n `select__select select__select--variant-${variant}`,\n {\n 'select__select--wide': wide,\n },\n )}\n id={id}\n name={name}\n onChange={onInputChange}\n onInvalid={e => {\n // NOTE: To not break compatibility\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n ref={ref}\n required={required}\n {...restProps}\n >\n {options.map(option => (\n <Option key={option.value} {...option} />\n ))}\n </select>\n <span className=\"select__chevron\">\n <SvgArrowDown />\n </span>\n </div>\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error ? (\n <div aria-hidden=\"true\" className=\"select__error\">\n {error}\n </div>\n ) : null}\n </div>\n </div>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"Select\"\nRefSelect.displayName = 'Select';\n\n// NOTE: Since `React.forwardRef` props aren't generic, the component is cast so that generics work as intended. See https://stackoverflow.com/a/58473012\nconst SelectComponent = RefSelect as <OptionExtra>(\n props: Props<OptionExtra> & {\n ref?: React.Ref<HTMLSelectElement>;\n },\n) => React.ReactElement;\n\nconst Select: typeof SelectComponent & {\n labelPositions: typeof labelPositions;\n variants: typeof variants;\n} = Object.assign(SelectComponent, { labelPositions, variants });\n\nexport default Select;\n"],
5
- "mappings": "2fAAA,OAAOA,MAAQ,aACf,UAAYC,MAAW,QAEvB,OAAOC,MAAwB,0BAE/B,OAAOC,MAAY,iCACnB,OAAOC,MAAU,UACjB,OAAOC,MAAkB,yBAEzB,OAAS,kBAAAC,EAAiC,YAAAC,MAAgB,iBAG1D,MAAMC,EAAYP,EAAM,WAItB,CACEQ,EAgBAC,IACG,CAjBH,IAAAC,EAAAF,EACE,UAAAG,EACA,UAAAC,EACA,GAAAC,EACA,eAAAC,EAAiB,GACjB,MAAAC,EACA,cAAAC,EAAgBX,EAAe,QAC/B,KAAAY,EACA,SAAAC,EAAW,IAAM,CAAC,EAClB,eAAAC,EAAiB,IAAM,CAAC,EACxB,QAAAC,EAAU,CAAC,EACX,SAAAC,EACA,QAAAC,EAAUhB,EAAS,MACnB,KAAAiB,CA9BN,EAiBIb,EAcKc,EAAAC,EAdLf,EAcK,CAbH,WACA,YACA,KACA,iBACA,QACA,gBACA,OACA,WACA,iBACA,UACA,WACA,UACA,SAKF,KAAM,CAACgB,EAAoBC,EAAWC,CAAK,EAAI3B,EAAmB,EAE5D4B,EAAiBC,GAA4C,CACjEZ,EAASY,CAAC,EACVX,EAAeC,EAAQ,KAAK,CAAC,CAAE,MAAAW,CAAM,IAAMA,IAAUD,EAAE,OAAO,KAAK,CAAC,EACpEJ,EAAmBI,CAAC,CACtB,EAEME,EAAUX,EACdrB,EAAA,cAAC,QAAK,UAAU,oBAAmB,GAAC,EAClC,KAEJ,OACEA,EAAA,cAAC,OAAI,UAAWD,EAAG,SAAUa,EAAW,CAAE,gBAAiBgB,CAAM,CAAC,GAChE5B,EAAA,cAAC,OACC,UAAWD,EACT,6CAA6CiB,CAAa,GAC1D,CAAE,wBAAyBO,CAAK,CAClC,GAECT,EACCd,EAAA,cAAC,SAAM,UAAU,gBAAgB,QAASa,GACvCE,GAASJ,EACRX,EAAA,cAAC,OAAI,UAAU,sBACbA,EAAA,cAACG,EAAA,CACC,KACEmB,IAAYhB,EAAS,MACjBH,EAAK,MAAM,MACXA,EAAK,MAAM,MAEjB,MAAOA,EAAK,OAAO,UAElBY,CACH,EACCiB,EACArB,CACH,EACEU,EACFW,EACE,IACN,EACE,KACJhC,EAAA,cAAC,OACC,UAAWD,EAAG,yBAA0B,CACtC,+BAAgCwB,CAClC,CAAC,GAEDvB,EAAA,cAAC,SAAAiC,EAAA,CACC,aAAYnB,EAAiB,OAAYC,EACzC,UAAWhB,EACT,0CAA0CuB,CAAO,GACjD,CACE,uBAAwBC,CAC1B,CACF,EACA,GAAIV,EACJ,KAAMI,EACN,SAAUY,EACV,UAAWC,GAAK,CAEVN,EAAU,WAAWA,EAAU,UAAUM,CAAC,EAC9CH,EAAUG,CAAC,CACb,EACA,IAAKrB,EACL,SAAUY,GACNG,GAEHJ,EAAQ,IAAIc,GACXlC,EAAA,cAACE,EAAA+B,EAAA,CAAO,IAAKC,EAAO,OAAWA,EAAQ,CACxC,CACH,EACAlC,EAAA,cAAC,QAAK,UAAU,mBACdA,EAAA,cAACI,EAAA,IAAa,CAChB,CACF,EAGCwB,EACC5B,EAAA,cAAC,OAAI,cAAY,OAAO,UAAU,iBAC/B4B,CACH,EACE,IACN,CACF,CAEJ,CACF,EAGArB,EAAU,YAAc,SAGxB,MAAM4B,EAAkB5B,EAMlB6B,EAGF,OAAO,OAAOD,EAAiB,CAAE,eAAA9B,EAAgB,SAAAC,CAAS,CAAC,EAE/D,IAAO+B,EAAQD",
4
+ "sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport useInputValidation from '../use-input-validation';\n\nimport Option from '../select-option/select-option';\nimport Text from '../text';\nimport SvgArrowDown from '../icons/18/arrow-down';\n\nimport { labelPositions, Select as Props, variants } from './select.types';\n\n// NOTE: `onChangeOption` works like `onChange` but returns the props for that option instead of an event object.\nconst RefSelect = React.forwardRef<\n HTMLSelectElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n className,\n id,\n isLabelVisible = true,\n label,\n labelPosition = labelPositions.stacked,\n name,\n onChange = () => {},\n onChangeOption = () => {},\n options = [],\n required,\n variant = variants.large,\n wide,\n ...restProps\n },\n ref,\n ) => {\n const [validationOnChange, onInvalid, error] = useInputValidation();\n\n const onInputChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n onChange(e);\n onChangeOption(options.find(({ value }) => value === e.target.value));\n validationOnChange(e);\n };\n\n const asterix = required ? (\n <span className=\"select__asterisk\">*</span>\n ) : null;\n\n return (\n <div className={cn('select', className, { 'select--error': error })}>\n <div\n className={cn(\n `select__content select__content--position-${labelPosition}`,\n { 'select__content--wide': wide },\n )}\n >\n {isLabelVisible ? (\n <label className=\"select__label\" htmlFor={id}>\n {label || children ? (\n <div className=\"select__label-text\">\n <Text\n size={\n variant === variants.small\n ? Text.sizes.small\n : Text.sizes.basic\n }\n theme={Text.themes.emphasis}\n >\n {label}\n </Text>\n {asterix}\n {children}\n </div>\n ) : required ? (\n asterix\n ) : null}\n </label>\n ) : null}\n <div\n className={cn('select__native-wrapper', {\n 'select__native-wrapper--wide': wide,\n })}\n >\n <select\n aria-label={isLabelVisible ? undefined : label}\n className={cn(\n `select__select select__select--variant-${variant}`,\n {\n 'select__select--wide': wide,\n },\n )}\n id={id}\n name={name}\n onChange={onInputChange}\n onInvalid={e => {\n // NOTE: To not break compatibility\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n ref={ref}\n required={required}\n {...restProps}\n >\n {options.map(option => (\n <Option key={option.value} {...option} />\n ))}\n </select>\n <span className=\"select__chevron\">\n <SvgArrowDown />\n </span>\n </div>\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error ? (\n <div aria-hidden=\"true\" className=\"select__error\">\n {error}\n </div>\n ) : null}\n </div>\n </div>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"Select\"\nRefSelect.displayName = 'Select';\n\n// NOTE: Since `React.forwardRef` props aren't generic, the component is cast so that generics work as intended. See https://stackoverflow.com/a/58473012\nconst SelectComponent = RefSelect as <OptionExtra>(\n props: Props<OptionExtra> & {\n ref?: React.Ref<HTMLSelectElement>;\n },\n) => React.ReactElement;\n\nconst Select: typeof SelectComponent & {\n labelPositions: typeof labelPositions;\n variants: typeof variants;\n} = Object.assign(SelectComponent, { labelPositions, variants });\n\nexport default Select;\n"],
5
+ "mappings": "wgBAEA,OAAOA,MAAQ,aACf,UAAYC,MAAW,QAEvB,OAAOC,MAAwB,0BAE/B,OAAOC,MAAY,iCACnB,OAAOC,MAAU,UACjB,OAAOC,MAAkB,yBAEzB,OAAS,kBAAAC,EAAiC,YAAAC,MAAgB,iBAG1D,MAAMC,EAAYP,EAAM,WAItB,CACEQ,EAgBAC,IACG,CAjBH,IAAAC,EAAAF,EACE,UAAAG,EACA,UAAAC,EACA,GAAAC,EACA,eAAAC,EAAiB,GACjB,MAAAC,EACA,cAAAC,EAAgBX,EAAe,QAC/B,KAAAY,EACA,SAAAC,EAAW,IAAM,CAAC,EAClB,eAAAC,EAAiB,IAAM,CAAC,EACxB,QAAAC,EAAU,CAAC,EACX,SAAAC,EACA,QAAAC,EAAUhB,EAAS,MACnB,KAAAiB,CAhCN,EAmBIb,EAcKc,EAAAC,EAdLf,EAcK,CAbH,WACA,YACA,KACA,iBACA,QACA,gBACA,OACA,WACA,iBACA,UACA,WACA,UACA,SAKF,KAAM,CAACgB,EAAoBC,EAAWC,CAAK,EAAI3B,EAAmB,EAE5D4B,EAAiBC,GAA4C,CACjEZ,EAASY,CAAC,EACVX,EAAeC,EAAQ,KAAK,CAAC,CAAE,MAAAW,CAAM,IAAMA,IAAUD,EAAE,OAAO,KAAK,CAAC,EACpEJ,EAAmBI,CAAC,CACtB,EAEME,EAAUX,EACdrB,EAAA,cAAC,QAAK,UAAU,oBAAmB,GAAC,EAClC,KAEJ,OACEA,EAAA,cAAC,OAAI,UAAWD,EAAG,SAAUa,EAAW,CAAE,gBAAiBgB,CAAM,CAAC,GAChE5B,EAAA,cAAC,OACC,UAAWD,EACT,6CAA6CiB,CAAa,GAC1D,CAAE,wBAAyBO,CAAK,CAClC,GAECT,EACCd,EAAA,cAAC,SAAM,UAAU,gBAAgB,QAASa,GACvCE,GAASJ,EACRX,EAAA,cAAC,OAAI,UAAU,sBACbA,EAAA,cAACG,EAAA,CACC,KACEmB,IAAYhB,EAAS,MACjBH,EAAK,MAAM,MACXA,EAAK,MAAM,MAEjB,MAAOA,EAAK,OAAO,UAElBY,CACH,EACCiB,EACArB,CACH,EACEU,EACFW,EACE,IACN,EACE,KACJhC,EAAA,cAAC,OACC,UAAWD,EAAG,yBAA0B,CACtC,+BAAgCwB,CAClC,CAAC,GAEDvB,EAAA,cAAC,SAAAiC,EAAA,CACC,aAAYnB,EAAiB,OAAYC,EACzC,UAAWhB,EACT,0CAA0CuB,CAAO,GACjD,CACE,uBAAwBC,CAC1B,CACF,EACA,GAAIV,EACJ,KAAMI,EACN,SAAUY,EACV,UAAWC,GAAK,CAEVN,EAAU,WAAWA,EAAU,UAAUM,CAAC,EAC9CH,EAAUG,CAAC,CACb,EACA,IAAKrB,EACL,SAAUY,GACNG,GAEHJ,EAAQ,IAAIc,GACXlC,EAAA,cAACE,EAAA+B,EAAA,CAAO,IAAKC,EAAO,OAAWA,EAAQ,CACxC,CACH,EACAlC,EAAA,cAAC,QAAK,UAAU,mBACdA,EAAA,cAACI,EAAA,IAAa,CAChB,CACF,EAGCwB,EACC5B,EAAA,cAAC,OAAI,cAAY,OAAO,UAAU,iBAC/B4B,CACH,EACE,IACN,CACF,CAEJ,CACF,EAGArB,EAAU,YAAc,SAGxB,MAAM4B,EAAkB5B,EAMlB6B,EAGF,OAAO,OAAOD,EAAiB,CAAE,eAAA9B,EAAgB,SAAAC,CAAS,CAAC,EAE/D,IAAO+B,EAAQD",
6
6
  "names": ["cn", "React", "useInputValidation", "Option", "Text", "SvgArrowDown", "labelPositions", "variants", "RefSelect", "_a", "ref", "_b", "children", "className", "id", "isLabelVisible", "label", "labelPosition", "name", "onChange", "onChangeOption", "options", "required", "variant", "wide", "restProps", "__objRest", "validationOnChange", "onInvalid", "error", "onInputChange", "e", "value", "asterix", "__spreadValues", "option", "SelectComponent", "Select", "select_default"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  @use '../../tokens/corner-radius';
2
- @use '../../tokens/light';
2
+ @use '../../tokens/colours';
3
3
  @use '../../tokens/spacing';
4
4
  @use '../../tokens/font-sizes';
5
5
 
@@ -27,15 +27,15 @@
27
27
  // NOTE: Specificity hack
28
28
  :root &--error {
29
29
  select {
30
- background-color: rgba(light.$signal-surface-error, 0.07);
31
- border-color: light.$ge-signal-border-error;
32
- color: light.$on-signal-surface-error-default;
30
+ background-color: rgba(var(--signal-surface-error), 0.07);
31
+ border-color: var(--ge-signal-border-error);
32
+ color: var(--on-signal-surface-error-default);
33
33
  }
34
34
  }
35
35
 
36
36
  &__native-wrapper {
37
- color: light.$on-surface-primary-default;
38
- background-color: light.$surface-primary-default;
37
+ color: var(--on-surface-primary-default);
38
+ background-color: var(--surface-primary-default);
39
39
  border-radius: corner-radius.$s;
40
40
  position: relative;
41
41
  width: min-content;
@@ -46,7 +46,7 @@
46
46
  }
47
47
 
48
48
  &__chevron {
49
- color: light.$on-surface-primary-default;
49
+ color: var(--on-surface-primary-default);
50
50
  position: absolute;
51
51
  right: clamp(spacing.$s, 2vw, spacing.$m);
52
52
  top: 50%;
@@ -58,10 +58,10 @@
58
58
 
59
59
  &__select {
60
60
  @include font-sizes.normal(input);
61
- color: light.$on-surface-primary-default;
61
+ color: var(--on-surface-primary-default);
62
62
  appearance: none;
63
63
  background-color: transparent;
64
- border: 1px solid light.$ge-border-default;
64
+ border: 1px solid var(--ge-border-default);
65
65
  display: block;
66
66
  position: relative;
67
67
  border-radius: corner-radius.$s;
@@ -87,16 +87,16 @@
87
87
  @media (hover: hover) {
88
88
  &:hover {
89
89
  &:not(:disabled) {
90
- background-color: light.$surface-primary-hover;
91
- border-color: light.$surface-primary-hover;
90
+ background-color: var(--surface-primary-hover);
91
+ border-color: var(--surface-primary-hover);
92
92
  }
93
93
  }
94
94
  }
95
95
 
96
96
  &:active {
97
97
  &:not(:disabled) {
98
- background-color: light.$surface-primary-default;
99
- border-color: light.$ge-border-focused;
98
+ background-color: var(--surface-primary-default);
99
+ border-color: var(--ge-border-focused);
100
100
  }
101
101
  }
102
102
 
@@ -106,21 +106,21 @@
106
106
  }
107
107
 
108
108
  &:disabled {
109
- color: light.$on-surface-primary-disabled;
109
+ color: var(--on-surface-primary-disabled);
110
110
 
111
111
  ~ .select__native-wrapper {
112
- color: light.$on-surface-primary-disabled;
112
+ color: var(--on-surface-primary-disabled);
113
113
  }
114
114
  }
115
115
  }
116
116
 
117
117
  &__error {
118
- color: light.$ge-signal-error;
118
+ color: var(--ge-signal-error);
119
119
  margin-top: 4px;
120
120
  }
121
121
 
122
122
  &__asterisk {
123
- color: light.$on-surface-featured;
123
+ color: var(--on-surface-featured);
124
124
  margin-left: spacing.$xs;
125
125
  }
126
126
 
@@ -1,5 +1,5 @@
1
1
  @use '../../tokens/corner-radius';
2
- @use '../../tokens/light';
2
+ @use '../../tokens/colours';
3
3
  @use '../../tokens/spacing';
4
4
 
5
5
  .tag {
@@ -11,97 +11,97 @@
11
11
  border: 1px solid;
12
12
 
13
13
  &--variant-primary {
14
- background: light.$ge-tags-primary;
15
- border-color: light.$ge-tags-primary;
16
- color: light.$on-ge-on-tags-primary-default;
14
+ background: var(--ge-tags-primary);
15
+ border-color: var(--ge-tags-primary);
16
+ color: var(--on-ge-on-tags-primary-default);
17
17
 
18
18
  &-border {
19
19
  background: transparent;
20
- color: light.$ge-tags-primary;
20
+ color: var(--ge-tags-primary);
21
21
  }
22
22
  }
23
23
 
24
24
  &--variant-secondary {
25
- background: light.$ge-tags-secondary;
26
- border-color: light.$ge-tags-secondary;
27
- color: light.$on-ge-on-tags-secondary-default;
25
+ background: var(--ge-tags-secondary);
26
+ border-color: var(--ge-tags-secondary);
27
+ color: var(--on-ge-on-tags-secondary-default);
28
28
 
29
29
  &-border {
30
30
  background: transparent;
31
- border-color: light.$ge-tags-secondary;
32
- color: light.$on-ge-on-tags-secondary-default;
31
+ border-color: var(--ge-tags-secondary);
32
+ color: var(--on-ge-on-tags-secondary-default);
33
33
  }
34
34
  }
35
35
 
36
36
  &--variant-tertiary {
37
- background: light.$ge-tags-featured;
38
- border-color: light.$ge-tags-featured;
39
- color: light.$on-ge-on-tags-featured-default;
37
+ background: var(--ge-tags-featured);
38
+ border-color: var(--ge-tags-featured);
39
+ color: var(--on-ge-on-tags-featured-default);
40
40
 
41
41
  &-border {
42
42
  background: transparent;
43
- border-color: light.$ge-tags-featured;
44
- color: light.$ge-tags-featured;
43
+ border-color: var(--ge-tags-featured);
44
+ color: var(--ge-tags-featured);
45
45
  }
46
46
  }
47
47
 
48
48
  &--variant-positive {
49
- background: light.$ge-indicator-tags-positive-alternate;
50
- border-color: light.$ge-indicator-tags-positive-alternate;
51
- color: light.$on-ge-on-indicator-tags-positive-alternate;
49
+ background: var(--ge-indicator-tags-positive-alternate);
50
+ border-color: var(--ge-indicator-tags-positive-alternate);
51
+ color: var(--on-ge-on-indicator-tags-positive-alternate);
52
52
 
53
53
  &-border {
54
- border-color: light.$on-ge-on-indicator-tags-positive-alternate;
54
+ border-color: var(--on-ge-on-indicator-tags-positive-alternate);
55
55
  }
56
56
  }
57
57
 
58
58
  &--variant-attention {
59
- background: light.$ge-indicator-tags-attention-alternate;
60
- border-color: light.$ge-indicator-tags-attention-alternate;
61
- color: light.$on-ge-on-indicator-tags-attention-alternate;
59
+ background: var(--ge-indicator-tags-attention-alternate);
60
+ border-color: var(--ge-indicator-tags-attention-alternate);
61
+ color: var(--on-ge-on-indicator-tags-attention-alternate);
62
62
 
63
63
  &-border {
64
- border-color: light.$on-ge-on-indicator-tags-attention-alternate;
64
+ border-color: var(--on-ge-on-indicator-tags-attention-alternate);
65
65
  }
66
66
  }
67
67
 
68
68
  &--variant-negative {
69
- background: light.$ge-indicator-tags-negative-alternate;
70
- border-color: light.$ge-indicator-tags-negative-alternate;
71
- color: light.$on-ge-on-indicator-tags-negative-alternate;
69
+ background: var(--ge-indicator-tags-negative-alternate);
70
+ border-color: var(--ge-indicator-tags-negative-alternate);
71
+ color: var(--on-ge-on-indicator-tags-negative-alternate);
72
72
 
73
73
  &-border {
74
- border-color: light.$on-ge-on-indicator-tags-negative-alternate;
74
+ border-color: var(--on-ge-on-indicator-tags-negative-alternate);
75
75
  }
76
76
  }
77
77
 
78
78
  &--variant-neutral {
79
- background: light.$ge-indicator-tags-neutral-alternate;
80
- border-color: light.$ge-indicator-tags-neutral-alternate;
81
- color: light.$on-ge-on-indicator-tags-neutral-alternate;
79
+ background: var(--ge-indicator-tags-neutral-alternate);
80
+ border-color: var(--ge-indicator-tags-neutral-alternate);
81
+ color: var(--on-ge-on-indicator-tags-neutral-alternate);
82
82
 
83
83
  &-border {
84
- border-color: light.$on-ge-on-indicator-tags-neutral-alternate;
84
+ border-color: var(--on-ge-on-indicator-tags-neutral-alternate);
85
85
  }
86
86
  }
87
87
 
88
88
  &--variant-information {
89
- background: light.$ge-indicator-tags-information-alternate;
90
- border-color: light.$ge-indicator-tags-information-alternate;
91
- color: light.$on-ge-on-indicator-tags-information-alternate;
89
+ background: var(--ge-indicator-tags-information-alternate);
90
+ border-color: var(--ge-indicator-tags-information-alternate);
91
+ color: var(--on-ge-on-indicator-tags-information-alternate);
92
92
 
93
93
  &-border {
94
- border-color: light.$on-ge-on-indicator-tags-information-alternate;
94
+ border-color: var(--on-ge-on-indicator-tags-information-alternate);
95
95
  }
96
96
  }
97
97
 
98
98
  &--variant-featured {
99
- background: light.$ge-indicator-tags-featured-alternate;
100
- border-color: light.$ge-indicator-tags-featured-alternate;
101
- color: light.$on-ge-on-indicator-tags-featured-alternate;
99
+ background: var(--ge-indicator-tags-featured-alternate);
100
+ border-color: var(--ge-indicator-tags-featured-alternate);
101
+ color: var(--on-ge-on-indicator-tags-featured-alternate);
102
102
 
103
103
  &-border {
104
- border-color: light.$on-ge-on-indicator-tags-featured-alternate;
104
+ border-color: var(--on-ge-on-indicator-tags-featured-alternate);
105
105
  }
106
106
  }
107
107
  }
@@ -1,2 +1,2 @@
1
- var O=Object.defineProperty;var p=Object.getOwnPropertySymbols;var b=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var g=(e,t,a)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,A=(e,t)=>{for(var a in t||(t={}))b.call(t,a)&&g(e,a,t[a]);if(p)for(var a of p(t))y.call(t,a)&&g(e,a,t[a]);return e};var C=(e,t)=>{var a={};for(var i in e)b.call(e,i)&&t.indexOf(i)<0&&(a[i]=e[i]);if(e!=null&&p)for(var i of p(e))t.indexOf(i)<0&&y.call(e,i)&&(a[i]=e[i]);return a};import d from"classnames";import*as r from"react";import n from"../text";import W from"../use-input-validation";import{themes as I,sizes as v}from"./text-area.types";const k=r.forwardRef((B,E)=>{var z=B,{children:e,helpText:t,label:a,name:i,placeholder:w,disabled:u,required:c,isLabelVisible:N=!0,helpIcon:T,size:x=v.default,theme:s=I.light,isShort:$,maxLength:m,defaultValue:l}=z,_=C(z,["children","helpText","label","name","placeholder","disabled","required","isLabelVisible","helpIcon","size","theme","isShort","maxLength","defaultValue"]);const[j,H,f]=W(),[M,h]=r.useState(0);return r.useEffect(()=>{l&&(typeof l=="string"?h(l.length):typeof l=="number"&&h(l))},[_]),r.createElement("label",{className:"text-area"},r.createElement("div",{className:"text-area__wrapper"},N?r.createElement("div",{className:"text-area__header"},r.createElement(n,{theme:n.themes.emphasis,size:x===v.default?n.sizes.basic:n.sizes.small,className:d("text-area__label",{[`text-area__label--theme-${s}-disabled`]:u,[`text-area__label--theme-${s}`]:s})},a,c?r.createElement("span",{className:d("text-area__asterisk",{[`text-area__asterisk--theme-${s}-disabled`]:u,[`text-area__asterisk--theme-${s}`]:s})},"*"):null,e),m?r.createElement(n,{className:"text-area__max",size:n.sizes.small},M,"/",m):null):null,r.createElement("textarea",A({className:d("text-area__input",{[`text-area__input--theme-${s}`]:s,[`text-area__input--theme-${s}-error`]:f,[`text-area__input--size-${x}-short`]:$,[`text-area__input--size-${x}`]:x}),"aria-label":N?a:void 0,name:i,maxLength:m,ref:E,cols:1,required:c,defaultValue:l,rows:$?1:2,onChange:o=>{_.onChange&&_.onChange(o),j(o),m&&h(o.target.value.length)},onInvalid:o=>{_.onInvalid&&_.onInvalid(o),H(o)},placeholder:w,disabled:u},_))),t?r.createElement("div",{className:"text-area__help"},r.createElement(n,{size:n.sizes.interface,className:d("text-area__help-text",{[`text-area__help-text--theme-${s}-error`]:f,[`text-area__help-text--theme-${s}`]:s})},T||null,t)):null,f&&r.createElement("div",{"aria-hidden":"true",className:"text-area__error"},r.createElement(n,null,f)))});k.displayName="TextArea";const q=Object.assign(k,{themes:I,sizes:v});var S=q;export{S as default};
1
+ "use client";var O=Object.defineProperty;var p=Object.getOwnPropertySymbols;var b=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var g=(e,t,a)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,A=(e,t)=>{for(var a in t||(t={}))b.call(t,a)&&g(e,a,t[a]);if(p)for(var a of p(t))y.call(t,a)&&g(e,a,t[a]);return e};var C=(e,t)=>{var a={};for(var i in e)b.call(e,i)&&t.indexOf(i)<0&&(a[i]=e[i]);if(e!=null&&p)for(var i of p(e))t.indexOf(i)<0&&y.call(e,i)&&(a[i]=e[i]);return a};import d from"classnames";import*as r from"react";import n from"../text";import W from"../use-input-validation";import{themes as I,sizes as c}from"./text-area.types";const k=r.forwardRef((B,E)=>{var z=B,{children:e,helpText:t,label:a,name:i,placeholder:w,disabled:u,required:v,isLabelVisible:N=!0,helpIcon:T,size:x=c.default,theme:s=I.light,isShort:$,maxLength:m,defaultValue:l}=z,_=C(z,["children","helpText","label","name","placeholder","disabled","required","isLabelVisible","helpIcon","size","theme","isShort","maxLength","defaultValue"]);const[j,H,f]=W(),[M,h]=r.useState(0);return r.useEffect(()=>{l&&(typeof l=="string"?h(l.length):typeof l=="number"&&h(l))},[_]),r.createElement("label",{className:"text-area"},r.createElement("div",{className:"text-area__wrapper"},N?r.createElement("div",{className:"text-area__header"},r.createElement(n,{theme:n.themes.emphasis,size:x===c.default?n.sizes.basic:n.sizes.small,className:d("text-area__label",{[`text-area__label--theme-${s}-disabled`]:u,[`text-area__label--theme-${s}`]:s})},a,v?r.createElement("span",{className:d("text-area__asterisk",{[`text-area__asterisk--theme-${s}-disabled`]:u,[`text-area__asterisk--theme-${s}`]:s})},"*"):null,e),m?r.createElement(n,{className:"text-area__max",size:n.sizes.small},M,"/",m):null):null,r.createElement("textarea",A({className:d("text-area__input",{[`text-area__input--theme-${s}`]:s,[`text-area__input--theme-${s}-error`]:f,[`text-area__input--size-${x}-short`]:$,[`text-area__input--size-${x}`]:x}),"aria-label":N?a:void 0,name:i,maxLength:m,ref:E,cols:1,required:v,defaultValue:l,rows:$?1:2,onChange:o=>{_.onChange&&_.onChange(o),j(o),m&&h(o.target.value.length)},onInvalid:o=>{_.onInvalid&&_.onInvalid(o),H(o)},placeholder:w,disabled:u},_))),t?r.createElement("div",{className:"text-area__help"},r.createElement(n,{size:n.sizes.interface,className:d("text-area__help-text",{[`text-area__help-text--theme-${s}-error`]:f,[`text-area__help-text--theme-${s}`]:s})},T||null,t)):null,f&&r.createElement("div",{"aria-hidden":"true",className:"text-area__error"},r.createElement(n,null,f)))});k.displayName="TextArea";const q=Object.assign(k,{themes:I,sizes:c});var S=q;export{S as default};
2
2
  //# sourceMappingURL=text-area.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../react/text-area/text-area.tsx"],
4
- "sourcesContent": ["import cn from 'classnames';\nimport * as React from 'react';\n\nimport Text from '../text';\nimport useInputValidation from '../use-input-validation';\n\nimport { TextArea as Props, themes, sizes } from './text-area.types';\n\nconst RefTextArea = React.forwardRef<\n HTMLTextAreaElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n helpText,\n label,\n name,\n placeholder,\n disabled,\n required,\n isLabelVisible = true,\n helpIcon,\n size = sizes.default,\n theme = themes.light,\n isShort,\n maxLength,\n defaultValue,\n ...restProps\n },\n ref,\n ) => {\n const [onChange, onInvalid, error] = useInputValidation();\n const [count, setCount] = React.useState(0);\n\n React.useEffect(() => {\n if (defaultValue) {\n if (typeof defaultValue === 'string') {\n setCount(defaultValue.length);\n } else if (typeof defaultValue === 'number') {\n setCount(defaultValue);\n }\n }\n }, [restProps]);\n\n return (\n <label className=\"text-area\">\n <div className=\"text-area__wrapper\">\n {isLabelVisible ? (\n <div className=\"text-area__header\">\n <Text\n theme={Text.themes.emphasis}\n size={\n size === sizes.default ? Text.sizes.basic : Text.sizes.small\n }\n className={cn('text-area__label', {\n [`text-area__label--theme-${theme}-disabled`]: disabled,\n [`text-area__label--theme-${theme}`]: theme,\n })}\n >\n {label}\n {required ? (\n <span\n className={cn('text-area__asterisk', {\n [`text-area__asterisk--theme-${theme}-disabled`]:\n disabled,\n [`text-area__asterisk--theme-${theme}`]: theme,\n })}\n >\n *\n </span>\n ) : null}\n {children}\n </Text>\n {maxLength ? (\n <Text className=\"text-area__max\" size={Text.sizes.small}>\n {count}/{maxLength}\n </Text>\n ) : null}\n </div>\n ) : null}\n <textarea\n className={cn('text-area__input', {\n [`text-area__input--theme-${theme}`]: theme,\n [`text-area__input--theme-${theme}-error`]: error,\n [`text-area__input--size-${size}-short`]: isShort,\n [`text-area__input--size-${size}`]: size,\n })}\n aria-label={isLabelVisible ? label : undefined}\n name={name}\n maxLength={maxLength}\n ref={ref}\n cols={1}\n required={required}\n defaultValue={defaultValue}\n rows={isShort ? 1 : 2}\n onChange={e => {\n // NOTE: To not break compatibility\n if (restProps.onChange) {\n restProps.onChange(e);\n }\n onChange(e);\n if (maxLength) {\n setCount(e.target.value.length);\n }\n }}\n onInvalid={e => {\n // NOTE: To not break compatibility\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n placeholder={placeholder}\n disabled={disabled}\n {...restProps}\n />\n </div>\n\n {helpText ? (\n <div className=\"text-area__help\">\n <Text\n size={Text.sizes.interface}\n className={cn('text-area__help-text', {\n [`text-area__help-text--theme-${theme}-error`]: error,\n [`text-area__help-text--theme-${theme}`]: theme,\n })}\n >\n {helpIcon ? helpIcon : null}\n {helpText}\n </Text>\n </div>\n ) : null}\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error && (\n <div aria-hidden=\"true\" className=\"text-area__error\">\n <Text>{error}</Text>\n </div>\n )}\n </label>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"TextArea\"\nRefTextArea.displayName = 'TextArea';\n// NOTE: The component is redeclared here because TypeScript doesn't accept assigning extra properties to `RefComponent` when it's declared\n\nconst TextArea: typeof RefTextArea & {\n themes: typeof themes;\n sizes: typeof sizes;\n} = Object.assign(RefTextArea, { themes, sizes });\n\nexport default TextArea;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client';\n\nimport cn from 'classnames';\nimport * as React from 'react';\n\nimport Text from '../text';\nimport useInputValidation from '../use-input-validation';\n\nimport { TextArea as Props, themes, sizes } from './text-area.types';\n\nconst RefTextArea = React.forwardRef<\n HTMLTextAreaElement,\n React.PropsWithChildren<Props>\n>(\n (\n {\n children,\n helpText,\n label,\n name,\n placeholder,\n disabled,\n required,\n isLabelVisible = true,\n helpIcon,\n size = sizes.default,\n theme = themes.light,\n isShort,\n maxLength,\n defaultValue,\n ...restProps\n },\n ref,\n ) => {\n const [onChange, onInvalid, error] = useInputValidation();\n const [count, setCount] = React.useState(0);\n\n React.useEffect(() => {\n if (defaultValue) {\n if (typeof defaultValue === 'string') {\n setCount(defaultValue.length);\n } else if (typeof defaultValue === 'number') {\n setCount(defaultValue);\n }\n }\n }, [restProps]);\n\n return (\n <label className=\"text-area\">\n <div className=\"text-area__wrapper\">\n {isLabelVisible ? (\n <div className=\"text-area__header\">\n <Text\n theme={Text.themes.emphasis}\n size={\n size === sizes.default ? Text.sizes.basic : Text.sizes.small\n }\n className={cn('text-area__label', {\n [`text-area__label--theme-${theme}-disabled`]: disabled,\n [`text-area__label--theme-${theme}`]: theme,\n })}\n >\n {label}\n {required ? (\n <span\n className={cn('text-area__asterisk', {\n [`text-area__asterisk--theme-${theme}-disabled`]:\n disabled,\n [`text-area__asterisk--theme-${theme}`]: theme,\n })}\n >\n *\n </span>\n ) : null}\n {children}\n </Text>\n {maxLength ? (\n <Text className=\"text-area__max\" size={Text.sizes.small}>\n {count}/{maxLength}\n </Text>\n ) : null}\n </div>\n ) : null}\n <textarea\n className={cn('text-area__input', {\n [`text-area__input--theme-${theme}`]: theme,\n [`text-area__input--theme-${theme}-error`]: error,\n [`text-area__input--size-${size}-short`]: isShort,\n [`text-area__input--size-${size}`]: size,\n })}\n aria-label={isLabelVisible ? label : undefined}\n name={name}\n maxLength={maxLength}\n ref={ref}\n cols={1}\n required={required}\n defaultValue={defaultValue}\n rows={isShort ? 1 : 2}\n onChange={e => {\n // NOTE: To not break compatibility\n if (restProps.onChange) {\n restProps.onChange(e);\n }\n onChange(e);\n if (maxLength) {\n setCount(e.target.value.length);\n }\n }}\n onInvalid={e => {\n // NOTE: To not break compatibility\n if (restProps.onInvalid) restProps.onInvalid(e);\n onInvalid(e);\n }}\n placeholder={placeholder}\n disabled={disabled}\n {...restProps}\n />\n </div>\n\n {helpText ? (\n <div className=\"text-area__help\">\n <Text\n size={Text.sizes.interface}\n className={cn('text-area__help-text', {\n [`text-area__help-text--theme-${theme}-error`]: error,\n [`text-area__help-text--theme-${theme}`]: theme,\n })}\n >\n {helpIcon ? helpIcon : null}\n {helpText}\n </Text>\n </div>\n ) : null}\n\n {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}\n {error && (\n <div aria-hidden=\"true\" className=\"text-area__error\">\n <Text>{error}</Text>\n </div>\n )}\n </label>\n );\n },\n);\n\n// NOTE: If this isn't set, stack traces say \"forwardRef\" instead of \"TextArea\"\nRefTextArea.displayName = 'TextArea';\n// NOTE: The component is redeclared here because TypeScript doesn't accept assigning extra properties to `RefComponent` when it's declared\n\nconst TextArea: typeof RefTextArea & {\n themes: typeof themes;\n sizes: typeof sizes;\n} = Object.assign(RefTextArea, { themes, sizes });\n\nexport default TextArea;\n"],
5
+ "mappings": "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",
6
6
  "names": ["cn", "React", "Text", "useInputValidation", "themes", "sizes", "RefTextArea", "_a", "ref", "_b", "children", "helpText", "label", "name", "placeholder", "disabled", "required", "isLabelVisible", "helpIcon", "size", "theme", "isShort", "maxLength", "defaultValue", "restProps", "__objRest", "onChange", "onInvalid", "error", "count", "setCount", "__spreadValues", "e", "TextArea", "text_area_default"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  @use '../../tokens/corner-radius';
2
2
  @use '../../tokens/font-names';
3
- @use '../../tokens/light';
3
+ @use '../../tokens/colours';
4
4
  @use '../../tokens/dark';
5
5
  @use '../../tokens/spacing';
6
6
 
@@ -23,24 +23,24 @@
23
23
  &__label {
24
24
  &--theme-light {
25
25
  &-disabled {
26
- color: light.$on-background-primary-disabled;
26
+ color: var(--on-background-primary-disabled);
27
27
  }
28
28
  }
29
29
  &--theme-dark {
30
- color: light.$on-fixed-background-primary-default;
30
+ color: var(--on-fixed-background-primary-default);
31
31
  &-disabled {
32
- color: light.$on-fixed-background-primary-disabled;
32
+ color: var(--on-fixed-background-primary-disabled);
33
33
  }
34
34
  }
35
35
  }
36
36
 
37
37
  &__max {
38
- color: light.$on-background-primary-alternate;
38
+ color: var(--on-background-primary-alternate);
39
39
  }
40
40
 
41
41
  &__input {
42
42
  width: 100%;
43
- border: 0.5px solid light.$ge-border-default;
43
+ border: 0.5px solid var(--ge-border-default);
44
44
  border-radius: corner-radius.$s;
45
45
 
46
46
  font-family: font-names.$brand, sans-serif;
@@ -70,62 +70,62 @@
70
70
  }
71
71
 
72
72
  &--theme-light {
73
- background-color: light.$surface-primary-default;
74
- color: light.$on-surface-primary-default;
73
+ background-color: var(--surface-primary-default);
74
+ color: var(--on-surface-primary-default);
75
75
  &:focus {
76
- outline: 1px solid light.$ge-border-focused;
76
+ outline: 1px solid var(--ge-border-focused);
77
77
  outline-offset: -1px;
78
78
  }
79
79
 
80
80
  &:hover {
81
- background-color: light.$surface-primary-hover;
81
+ background-color: var(--surface-primary-hover);
82
82
  }
83
83
 
84
84
  &::placeholder {
85
- color: light.$on-surface-primary-alternate;
85
+ color: var(--on-surface-primary-alternate);
86
86
  opacity: 1;
87
87
  }
88
88
 
89
89
  &:disabled {
90
- background-color: light.$surface-primary-disabled;
90
+ background-color: var(--surface-primary-disabled);
91
91
  &::placeholder {
92
- color: light.$on-surface-primary-disabled;
92
+ color: var(--on-surface-primary-disabled);
93
93
  }
94
94
  }
95
95
 
96
96
  &-error {
97
- border-color: light.$ge-signal-border-error;
97
+ border-color: var(--ge-signal-border-error);
98
98
  }
99
99
  }
100
100
 
101
101
  &--theme-dark {
102
- background-color: light.$fixed-surface-secondary-default;
103
- color: light.$on-fixed-surface-primary-default;
102
+ background-color: var(--fixed-surface-secondary-default);
103
+ color: var(--on-fixed-surface-primary-default);
104
104
  &:focus {
105
- background: light.$fixed-surface-primary-hover;
106
- outline: 2px solid light.$ge-border-focused;
105
+ background: var(--fixed-surface-primary-hover);
106
+ outline: 2px solid var(--ge-border-focused);
107
107
  outline-offset: -2px;
108
108
  }
109
109
 
110
110
  &:hover {
111
- background-color: light.$fixed-surface-primary-hover;
111
+ background-color: var(--fixed-surface-primary-hover);
112
112
  }
113
113
 
114
114
  &::placeholder {
115
- color: light.$on-fixed-surface-primary-alternate;
115
+ color: var(--on-fixed-surface-primary-alternate);
116
116
  opacity: 1;
117
117
  }
118
118
 
119
119
  &:disabled {
120
- background-color: light.$fixed-surface-primary-selected;
120
+ background-color: var(--fixed-surface-primary-selected);
121
121
  border: 0;
122
122
  &::placeholder {
123
- color: light.$on-fixed-surface-secondary-disabled;
123
+ color: var(--on-fixed-surface-secondary-disabled);
124
124
  }
125
125
  }
126
126
 
127
127
  &-error {
128
- border-color: light.$on-fixed-surface-error;
128
+ border-color: var(--on-fixed-surface-error);
129
129
  }
130
130
  }
131
131
  }
@@ -134,23 +134,23 @@
134
134
  margin-left: spacing.$xs;
135
135
 
136
136
  &--theme-light {
137
- color: light.$on-surface-featured;
137
+ color: var(--on-surface-featured);
138
138
  &-disabled {
139
139
 
140
- color: light.$on-surface-primary-disabled;
140
+ color: var(--on-surface-primary-disabled);
141
141
  }
142
142
  }
143
143
  &--theme-dark {
144
- color: light.$on-fixed-surface-featured;
144
+ color: var(--on-fixed-surface-featured);
145
145
  &-disabled {
146
- color: light.$on-fixed-background-primary-disabled;
146
+ color: var(--on-fixed-background-primary-disabled);
147
147
  }
148
148
  }
149
149
 
150
150
  }
151
151
 
152
152
  &__error {
153
- color: light.$on-surface-error;
153
+ color: var(--on-surface-error);
154
154
  margin-top: spacing.$xxs;
155
155
  }
156
156
 
@@ -164,16 +164,16 @@
164
164
  gap: spacing.$xs;
165
165
 
166
166
  &--theme-light {
167
- color: light.$on-background-primary-disabled;
167
+ color: var(--on-background-primary-disabled);
168
168
  &--error {
169
- color: light.$on-surface-error;
169
+ color: var(--on-surface-error);
170
170
  }
171
171
  }
172
172
 
173
173
  &--theme-dark {
174
- color: light.$on-fixed-background-primary-disabled;
174
+ color: var(--on-fixed-background-primary-disabled);
175
175
  &--error {
176
- color: light.$on-fixed-surface-error;
176
+ color: var(--on-fixed-surface-error);
177
177
  }
178
178
  }
179
179
  }