@hitachivantara/uikit-react-core 3.73.1 → 3.74.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/BaseSwitch/BaseSwitch.d.ts +1 -1
  2. package/dist/BaseSwitch/BaseSwitch.js +6 -1
  3. package/dist/BaseSwitch/BaseSwitch.js.map +1 -1
  4. package/dist/BaseSwitch/styles.js +5 -1
  5. package/dist/BaseSwitch/styles.js.map +1 -1
  6. package/dist/ScrollTo/useScrollTo.js +2 -1
  7. package/dist/ScrollTo/useScrollTo.js.map +1 -1
  8. package/dist/ScrollTo/utils.js +39 -6
  9. package/dist/ScrollTo/utils.js.map +1 -1
  10. package/dist/SimpleGrid/SimpleGrid.d.ts +4 -5
  11. package/dist/Tag/Tag.js +1 -12
  12. package/dist/Tag/Tag.js.map +1 -1
  13. package/dist/Tag/styles.js +5 -3
  14. package/dist/Tag/styles.js.map +1 -1
  15. package/dist/legacy/BaseSwitch/BaseSwitch.d.ts +1 -1
  16. package/dist/legacy/BaseSwitch/BaseSwitch.js +6 -1
  17. package/dist/legacy/BaseSwitch/BaseSwitch.js.map +1 -1
  18. package/dist/legacy/BaseSwitch/styles.js +5 -1
  19. package/dist/legacy/BaseSwitch/styles.js.map +1 -1
  20. package/dist/legacy/ScrollTo/useScrollTo.js +2 -1
  21. package/dist/legacy/ScrollTo/useScrollTo.js.map +1 -1
  22. package/dist/legacy/ScrollTo/utils.js +35 -5
  23. package/dist/legacy/ScrollTo/utils.js.map +1 -1
  24. package/dist/legacy/SimpleGrid/SimpleGrid.d.ts +4 -5
  25. package/dist/legacy/Tag/Tag.js +3 -14
  26. package/dist/legacy/Tag/Tag.js.map +1 -1
  27. package/dist/legacy/Tag/styles.js +5 -3
  28. package/dist/legacy/Tag/styles.js.map +1 -1
  29. package/dist/modern/BaseSwitch/BaseSwitch.d.ts +1 -1
  30. package/dist/modern/BaseSwitch/BaseSwitch.js +6 -1
  31. package/dist/modern/BaseSwitch/BaseSwitch.js.map +1 -1
  32. package/dist/modern/BaseSwitch/styles.js +5 -1
  33. package/dist/modern/BaseSwitch/styles.js.map +1 -1
  34. package/dist/modern/ScrollTo/useScrollTo.js +2 -2
  35. package/dist/modern/ScrollTo/useScrollTo.js.map +1 -1
  36. package/dist/modern/ScrollTo/utils.js +32 -6
  37. package/dist/modern/ScrollTo/utils.js.map +1 -1
  38. package/dist/modern/SimpleGrid/SimpleGrid.d.ts +4 -5
  39. package/dist/modern/Tag/Tag.js +3 -14
  40. package/dist/modern/Tag/Tag.js.map +1 -1
  41. package/dist/modern/Tag/styles.js +5 -3
  42. package/dist/modern/Tag/styles.js.map +1 -1
  43. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { StandardProps, SwitchProps } from "@material-ui/core";
2
2
 
3
- export type HvBaseSwitchClassKey = "root" | "disabled";
3
+ export type HvBaseSwitchClassKey = "root" | "disabled" | "readOnly";
4
4
 
5
5
  export interface HvBaseSwitchProps
6
6
  extends StandardProps<SwitchProps, HvBaseSwitchClassKey, "onChange"> {
@@ -95,7 +95,7 @@ var HvBaseSwitch = function HvBaseSwitch(props) {
95
95
  return /*#__PURE__*/_react.default.createElement(_core.Switch, (0, _extends2.default)({
96
96
  id: id,
97
97
  name: name,
98
- className: (0, _clsx.default)(className, classes.root, disabled && classes.disabled, focusVisible && classes.focusVisible),
98
+ className: (0, _clsx.default)(className, classes.root, disabled && classes.disabled, readOnly && classes.readOnly, focusVisible && classes.focusVisible),
99
99
  color: "default",
100
100
  disabled: disabled,
101
101
  required: required,
@@ -139,6 +139,11 @@ process.env.NODE_ENV !== "production" ? HvBaseSwitch.propTypes = {
139
139
  */
140
140
  disabled: _propTypes.default.string,
141
141
 
142
+ /**
143
+ * Styles applied to the switch when it is in read only mode.
144
+ */
145
+ readOnly: _propTypes.default.string,
146
+
142
147
  /**
143
148
  * Styles applied to the internal Switch component's root class.
144
149
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSwitch.js","names":["HvBaseSwitch","props","classes","className","id","name","value","required","readOnly","disabled","checked","defaultChecked","onChange","inputProps","onFocusVisible","onBlur","others","useState","focusVisible","setFocusVisible","onFocusVisibleCallback","useCallback","evt","onBlurCallback","onLocalChange","target","clsx","root","switch","switchBase","track","thumb","propTypes","PropTypes","string","shape","isRequired","any","bool","func","instanceOf","Object","withStyles","styles"],"sources":["../../src/BaseSwitch/BaseSwitch.js"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { Switch, withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\n/**\n * A Switch is <b>binary</b> and work as a digital on/off button.\n *\n * The Base Switch is a building block of the Switch form element. Don't use unless\n * implementing a custom use case not covered by the Switch form element.\n */\nconst HvBaseSwitch = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n value = \"on\",\n\n required = false,\n readOnly = false,\n disabled = false,\n\n checked,\n defaultChecked,\n\n onChange,\n\n inputProps,\n\n onFocusVisible,\n onBlur,\n\n ...others\n } = props;\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const onLocalChange = useCallback(\n (evt) => {\n if (readOnly) {\n return;\n }\n\n onChange?.(evt, evt.target.checked, value);\n },\n [onChange, readOnly, value]\n );\n\n return (\n <Switch\n id={id}\n name={name}\n className={clsx(className, classes.root, {\n [classes.disabled]: disabled,\n [classes.focusVisible]: focusVisible,\n })}\n color=\"default\"\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n disableRipple\n onChange={onLocalChange}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n classes={{\n root: classes.switch,\n switchBase: classes.switchBase,\n checked: classes.checked,\n track: classes.track,\n thumb: classes.thumb,\n disabled: classes.disabled,\n }}\n inputProps={inputProps}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\n};\n\nHvBaseSwitch.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the switch.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the switch when it is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the internal Switch component's root class.\n */\n switch: PropTypes.string,\n /**\n * Styles applied to the internal SwitchBase component's root class.\n */\n switchBase: PropTypes.string,\n /**\n * Pseudo-class applied to the internal SwitchBase component's checked class.\n */\n checked: PropTypes.string,\n /**\n * Styles applied to the track element.\n */\n track: PropTypes.string,\n /**\n * Styles used to create the thumb passed to the internal SwitchBase component icon prop.\n */\n thumb: PropTypes.string,\n /**\n * Class applied to the root element if keyboard focused.\n */\n focusVisible: PropTypes.string,\n }).isRequired,\n\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * The input name.\n */\n name: PropTypes.string,\n /**\n * The value of the input.\n *\n * Is up to the application's logic when to consider the submission of this value.\n * Generally it should be used only when the switch is neither unchecked nor indeterminate.\n *\n * The default value is \"on\".\n */\n // eslint-disable-next-line react/forbid-prop-types\n value: PropTypes.any,\n\n /**\n * Indicates that user input is required.\n */\n required: PropTypes.bool,\n /**\n * Indicates that the input is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * Indicates that the input is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` the switch is selected, if set to `false` the switch is not selected.\n *\n * When defined the switch state becomes controlled.\n */\n checked: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * The callback fired when the switch is pressed.\n */\n onChange: PropTypes.func,\n\n /**\n * Properties passed on to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvBaseSwitch\" })(HvBaseSwitch);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAEA;;AAEA;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAW;EAC9B,IACEC,OADF,GAuBID,KAvBJ,CACEC,OADF;EAAA,IAEEC,SAFF,GAuBIF,KAvBJ,CAEEE,SAFF;EAAA,IAIEC,EAJF,GAuBIH,KAvBJ,CAIEG,EAJF;EAAA,IAKEC,IALF,GAuBIJ,KAvBJ,CAKEI,IALF;EAAA,mBAuBIJ,KAvBJ,CAMEK,KANF;EAAA,IAMEA,KANF,6BAMU,IANV;EAAA,sBAuBIL,KAvBJ,CAQEM,QARF;EAAA,IAQEA,QARF,gCAQa,KARb;EAAA,sBAuBIN,KAvBJ,CASEO,QATF;EAAA,IASEA,QATF,gCASa,KATb;EAAA,sBAuBIP,KAvBJ,CAUEQ,QAVF;EAAA,IAUEA,QAVF,gCAUa,KAVb;EAAA,IAYEC,OAZF,GAuBIT,KAvBJ,CAYES,OAZF;EAAA,IAaEC,cAbF,GAuBIV,KAvBJ,CAaEU,cAbF;EAAA,IAeEC,QAfF,GAuBIX,KAvBJ,CAeEW,QAfF;EAAA,IAiBEC,UAjBF,GAuBIZ,KAvBJ,CAiBEY,UAjBF;EAAA,IAmBEC,cAnBF,GAuBIb,KAvBJ,CAmBEa,cAnBF;EAAA,IAoBEC,MApBF,GAuBId,KAvBJ,CAoBEc,MApBF;EAAA,IAsBKC,MAtBL,0CAuBIf,KAvBJ;;EAyBA,gBAAwC,IAAAgB,eAAA,EAAS,KAAT,CAAxC;EAAA;EAAA,IAAOC,YAAP;EAAA,IAAqBC,eAArB;;EAEA,IAAMC,sBAAsB,GAAG,IAAAC,kBAAA,EAC7B,UAACC,GAAD,EAAS;IACPH,eAAe,CAAC,IAAD,CAAf;IACAL,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAGQ,GAAH,CAAd;EACD,CAJ4B,EAK7B,CAACR,cAAD,CAL6B,CAA/B;EAQA,IAAMS,cAAc,GAAG,IAAAF,kBAAA,EACrB,UAACC,GAAD,EAAS;IACPH,eAAe,CAAC,KAAD,CAAf;IACAJ,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAGO,GAAH,CAAN;EACD,CAJoB,EAKrB,CAACP,MAAD,CALqB,CAAvB;EAQA,IAAMS,aAAa,GAAG,IAAAH,kBAAA,EACpB,UAACC,GAAD,EAAS;IACP,IAAId,QAAJ,EAAc;MACZ;IACD;;IAEDI,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGU,GAAH,EAAQA,GAAG,CAACG,MAAJ,CAAWf,OAAnB,EAA4BJ,KAA5B,CAAR;EACD,CAPmB,EAQpB,CAACM,QAAD,EAAWJ,QAAX,EAAqBF,KAArB,CARoB,CAAtB;EAWA,oBACE,6BAAC,YAAD;IACE,EAAE,EAAEF,EADN;IAEE,IAAI,EAAEC,IAFR;IAGE,SAAS,EAAE,IAAAqB,aAAA,EAAKvB,SAAL,EAAgBD,OAAO,CAACyB,IAAxB,EACWlB,QADX,IACRP,OAAO,CAACO,QADA,EAEeS,YAFf,IAERhB,OAAO,CAACgB,YAFA,CAHb;IAOE,KAAK,EAAC,SAPR;IAQE,QAAQ,EAAET,QARZ;IASE,QAAQ,EAAEF,QATZ;IAUE,QAAQ,EAAEC,QAVZ;IAWE,aAAa,MAXf;IAYE,QAAQ,EAAEgB,aAZZ;IAaE,KAAK,EAAElB,KAbT;IAcE,OAAO,EAAEI,OAdX;IAeE,cAAc,EAAEC,cAflB;IAgBE,OAAO,EAAE;MACPgB,IAAI,EAAEzB,OAAO,CAAC0B,MADP;MAEPC,UAAU,EAAE3B,OAAO,CAAC2B,UAFb;MAGPnB,OAAO,EAAER,OAAO,CAACQ,OAHV;MAIPoB,KAAK,EAAE5B,OAAO,CAAC4B,KAJR;MAKPC,KAAK,EAAE7B,OAAO,CAAC6B,KALR;MAMPtB,QAAQ,EAAEP,OAAO,CAACO;IANX,CAhBX;IAwBE,UAAU,EAAEI,UAxBd;IAyBE,cAAc,EAAEO,sBAzBlB;IA0BE,MAAM,EAAEG;EA1BV,GA2BMP,MA3BN,EADF;AA+BD,CAtFD;;AAwFA,wCAAAhB,YAAY,CAACgC,SAAb,GAAyB;EACvB;AACF;AACA;EACE7B,SAAS,EAAE8B,kBAAA,CAAUC,MAJE;;EAKvB;AACF;AACA;EACEhC,OAAO,EAAE+B,kBAAA,CAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIR,IAAI,EAAEM,kBAAA,CAAUC,MAJO;;IAKvB;AACJ;AACA;IACIzB,QAAQ,EAAEwB,kBAAA,CAAUC,MARG;;IASvB;AACJ;AACA;IACIN,MAAM,EAAEK,kBAAA,CAAUC,MAZK;;IAavB;AACJ;AACA;IACIL,UAAU,EAAEI,kBAAA,CAAUC,MAhBC;;IAiBvB;AACJ;AACA;IACIxB,OAAO,EAAEuB,kBAAA,CAAUC,MApBI;;IAqBvB;AACJ;AACA;IACIJ,KAAK,EAAEG,kBAAA,CAAUC,MAxBM;;IAyBvB;AACJ;AACA;IACIH,KAAK,EAAEE,kBAAA,CAAUC,MA5BM;;IA6BvB;AACJ;AACA;IACIhB,YAAY,EAAEe,kBAAA,CAAUC;EAhCD,CAAhB,EAiCNE,UAzCoB;;EA2CvB;AACF;AACA;EACEhC,EAAE,EAAE6B,kBAAA,CAAUC,MA9CS;;EAgDvB;AACF;AACA;EACE7B,IAAI,EAAE4B,kBAAA,CAAUC,MAnDO;;EAoDvB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE;EACA5B,KAAK,EAAE2B,kBAAA,CAAUI,GA7DM;;EA+DvB;AACF;AACA;EACE9B,QAAQ,EAAE0B,kBAAA,CAAUK,IAlEG;;EAmEvB;AACF;AACA;EACE9B,QAAQ,EAAEyB,kBAAA,CAAUK,IAtEG;;EAuEvB;AACF;AACA;EACE7B,QAAQ,EAAEwB,kBAAA,CAAUK,IA1EG;;EA4EvB;AACF;AACA;AACA;AACA;EACE5B,OAAO,EAAEuB,kBAAA,CAAUK,IAjFI;;EAkFvB;AACF;AACA;EACE3B,cAAc,EAAEsB,kBAAA,CAAUK,IArFH;;EAuFvB;AACF;AACA;EACE1B,QAAQ,EAAEqB,kBAAA,CAAUM,IA1FG;;EA4FvB;AACF;AACA;EACE1B,UAAU,EAAEoB,kBAAA,CAAUO,UAAV,CAAqBC,MAArB,CA/FW;;EAiGvB;AACF;AACA;AACA;EACE3B,cAAc,EAAEmB,kBAAA,CAAUM,IArGH;;EAsGvB;AACF;AACA;EACExB,MAAM,EAAEkB,kBAAA,CAAUM;AAzGK,CAAzB;;eA4Ge,IAAAG,gBAAA,EAAWC,eAAX,EAAmB;EAAEtC,IAAI,EAAE;AAAR,CAAnB,EAA6CL,YAA7C,C"}
1
+ {"version":3,"file":"BaseSwitch.js","names":["HvBaseSwitch","props","classes","className","id","name","value","required","readOnly","disabled","checked","defaultChecked","onChange","inputProps","onFocusVisible","onBlur","others","useState","focusVisible","setFocusVisible","onFocusVisibleCallback","useCallback","evt","onBlurCallback","onLocalChange","target","clsx","root","switch","switchBase","track","thumb","propTypes","PropTypes","string","shape","isRequired","any","bool","func","instanceOf","Object","withStyles","styles"],"sources":["../../src/BaseSwitch/BaseSwitch.js"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { Switch, withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\n/**\n * A Switch is <b>binary</b> and work as a digital on/off button.\n *\n * The Base Switch is a building block of the Switch form element. Don't use unless\n * implementing a custom use case not covered by the Switch form element.\n */\nconst HvBaseSwitch = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n value = \"on\",\n\n required = false,\n readOnly = false,\n disabled = false,\n\n checked,\n defaultChecked,\n\n onChange,\n\n inputProps,\n\n onFocusVisible,\n onBlur,\n\n ...others\n } = props;\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const onLocalChange = useCallback(\n (evt) => {\n if (readOnly) {\n return;\n }\n\n onChange?.(evt, evt.target.checked, value);\n },\n [onChange, readOnly, value]\n );\n\n return (\n <Switch\n id={id}\n name={name}\n className={clsx(className, classes.root, {\n [classes.disabled]: disabled,\n [classes.readOnly]: readOnly,\n [classes.focusVisible]: focusVisible,\n })}\n color=\"default\"\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n disableRipple\n onChange={onLocalChange}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n classes={{\n root: classes.switch,\n switchBase: classes.switchBase,\n checked: classes.checked,\n track: classes.track,\n thumb: classes.thumb,\n disabled: classes.disabled,\n }}\n inputProps={inputProps}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\n};\n\nHvBaseSwitch.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the switch.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the switch when it is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the switch when it is in read only mode.\n */\n readOnly: PropTypes.string,\n /**\n * Styles applied to the internal Switch component's root class.\n */\n switch: PropTypes.string,\n /**\n * Styles applied to the internal SwitchBase component's root class.\n */\n switchBase: PropTypes.string,\n /**\n * Pseudo-class applied to the internal SwitchBase component's checked class.\n */\n checked: PropTypes.string,\n /**\n * Styles applied to the track element.\n */\n track: PropTypes.string,\n /**\n * Styles used to create the thumb passed to the internal SwitchBase component icon prop.\n */\n thumb: PropTypes.string,\n /**\n * Class applied to the root element if keyboard focused.\n */\n focusVisible: PropTypes.string,\n }).isRequired,\n\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * The input name.\n */\n name: PropTypes.string,\n /**\n * The value of the input.\n *\n * Is up to the application's logic when to consider the submission of this value.\n * Generally it should be used only when the switch is neither unchecked nor indeterminate.\n *\n * The default value is \"on\".\n */\n // eslint-disable-next-line react/forbid-prop-types\n value: PropTypes.any,\n\n /**\n * Indicates that user input is required.\n */\n required: PropTypes.bool,\n /**\n * Indicates that the input is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * Indicates that the input is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` the switch is selected, if set to `false` the switch is not selected.\n *\n * When defined the switch state becomes controlled.\n */\n checked: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * The callback fired when the switch is pressed.\n */\n onChange: PropTypes.func,\n\n /**\n * Properties passed on to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvBaseSwitch\" })(HvBaseSwitch);\n"],"mappings":"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"}
@@ -46,7 +46,10 @@ var styles = function styles(theme) {
46
46
  switch: {
47
47
  padding: 0,
48
48
  width: switchWidth,
49
- height: 16
49
+ height: 16,
50
+ "&$readOnly $switchBase": {
51
+ cursor: "default"
52
+ }
50
53
  },
51
54
  switchBase: {
52
55
  width: switchWidth,
@@ -97,6 +100,7 @@ var styles = function styles(theme) {
97
100
  opacity: 1
98
101
  }
99
102
  },
103
+ readOnly: {},
100
104
  focusVisible: _objectSpread({
101
105
  borderRadius: "8px"
102
106
  }, _styles.outlineStyles)
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["switchWidth","thumbPosition","position","left","width","height","styles","theme","root","padding","cursor","switch","switchBase","backgroundColor","transform","opacity","hv","palette","accent","acce1","track","borderRadius","border","atmosphere","atmo2","thumb","atmo1","marginLeft","marginTop","checked","disabled","atmo3","atmo5","focusVisible","outlineStyles"],"sources":["../../src/BaseSwitch/styles.js"],"sourcesContent":["import { outlineStyles } from \"../Focus/styles\";\n\nconst switchWidth = 32;\n\nconst thumbPosition = {\n position: \"relative\",\n left: -9,\n width: 12,\n height: 12,\n};\n\nconst styles = (theme) => ({\n root: {\n padding: 0,\n cursor: \"pointer\",\n },\n\n switch: {\n padding: 0,\n width: switchWidth,\n height: 16,\n },\n\n switchBase: {\n width: switchWidth,\n height: 16,\n padding: 0,\n\n // increase CSS specificity\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n \"&$checked\": {\n transform: \"translateX(16px)\",\n \"& + $track\": {\n opacity: 1,\n backgroundColor: theme.hv.palette.accent.acce1,\n },\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n },\n\n track: {\n opacity: 1,\n borderRadius: 15,\n left: 17,\n height: 16,\n border: `solid 1px ${theme.hv.palette.accent.acce1}`,\n backgroundColor: theme.hv.palette.atmosphere.atmo2,\n },\n\n thumb: {\n ...thumbPosition,\n border: `solid 1px ${theme.hv.palette.accent.acce1}`,\n backgroundColor: theme.hv.palette.atmosphere.atmo1,\n marginLeft: 2,\n marginTop: 0,\n },\n\n checked: {},\n\n disabled: {\n cursor: \"not-allowed\",\n\n \"& $switch\": {\n cursor: \"not-allowed\",\n },\n\n \"& $thumb\": {\n backgroundColor: `${theme.hv.palette.atmosphere.atmo3}`,\n border: `solid 1px ${theme.hv.palette.atmosphere.atmo5}`,\n },\n\n \"& $switchBase + $track\": {\n backgroundColor: `${theme.hv.palette.atmosphere.atmo3}`,\n border: `solid 1px ${theme.hv.palette.atmosphere.atmo5}`,\n opacity: 1,\n },\n },\n\n focusVisible: {\n borderRadius: \"8px\",\n ...outlineStyles,\n },\n});\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,WAAW,GAAG,EAApB;AAEA,IAAMC,aAAa,GAAG;EACpBC,QAAQ,EAAE,UADU;EAEpBC,IAAI,EAAE,CAAC,CAFa;EAGpBC,KAAK,EAAE,EAHa;EAIpBC,MAAM,EAAE;AAJY,CAAtB;;AAOA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;EAAA,OAAY;IACzBC,IAAI,EAAE;MACJC,OAAO,EAAE,CADL;MAEJC,MAAM,EAAE;IAFJ,CADmB;IAMzBC,MAAM,EAAE;MACNF,OAAO,EAAE,CADH;MAENL,KAAK,EAAEJ,WAFD;MAGNK,MAAM,EAAE;IAHF,CANiB;IAYzBO,UAAU,EAAE;MACVR,KAAK,EAAEJ,WADG;MAEVK,MAAM,EAAE,EAFE;MAGVI,OAAO,EAAE,CAHC;MAKV;MACA,WAAW;QACTI,eAAe,EAAE;MADR,CAND;MASV,aAAa;QACXC,SAAS,EAAE,kBADA;QAEX,cAAc;UACZC,OAAO,EAAE,CADG;UAEZF,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC;QAF7B,CAFH;QAMX,WAAW;UACTN,eAAe,EAAE;QADR;MANA;IATH,CAZa;IAiCzBO,KAAK,EAAE;MACLL,OAAO,EAAE,CADJ;MAELM,YAAY,EAAE,EAFT;MAGLlB,IAAI,EAAE,EAHD;MAILE,MAAM,EAAE,EAJH;MAKLiB,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC,KAAvC,CALD;MAMLN,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BC;IANxC,CAjCkB;IA0CzBC,KAAK,kCACAxB,aADA;MAEHqB,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC,KAAvC,CAFH;MAGHN,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BG,KAH1C;MAIHC,UAAU,EAAE,CAJT;MAKHC,SAAS,EAAE;IALR,EA1CoB;IAkDzBC,OAAO,EAAE,EAlDgB;IAoDzBC,QAAQ,EAAE;MACRpB,MAAM,EAAE,aADA;MAGR,aAAa;QACXA,MAAM,EAAE;MADG,CAHL;MAOR,YAAY;QACVG,eAAe,YAAKN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BQ,KAAjC,CADL;QAEVT,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BS,KAA3C;MAFI,CAPJ;MAYR,0BAA0B;QACxBnB,eAAe,YAAKN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BQ,KAAjC,CADS;QAExBT,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BS,KAA3C,CAFkB;QAGxBjB,OAAO,EAAE;MAHe;IAZlB,CApDe;IAuEzBkB,YAAY;MACVZ,YAAY,EAAE;IADJ,GAEPa,qBAFO;EAvEa,CAAZ;AAAA,CAAf;;eA6Ee5B,M"}
1
+ {"version":3,"file":"styles.js","names":["switchWidth","thumbPosition","position","left","width","height","styles","theme","root","padding","cursor","switch","switchBase","backgroundColor","transform","opacity","hv","palette","accent","acce1","track","borderRadius","border","atmosphere","atmo2","thumb","atmo1","marginLeft","marginTop","checked","disabled","atmo3","atmo5","readOnly","focusVisible","outlineStyles"],"sources":["../../src/BaseSwitch/styles.js"],"sourcesContent":["import { outlineStyles } from \"../Focus/styles\";\n\nconst switchWidth = 32;\n\nconst thumbPosition = {\n position: \"relative\",\n left: -9,\n width: 12,\n height: 12,\n};\n\nconst styles = (theme) => ({\n root: {\n padding: 0,\n cursor: \"pointer\",\n },\n\n switch: {\n padding: 0,\n width: switchWidth,\n height: 16,\n\n \"&$readOnly $switchBase\": {\n cursor: \"default\",\n },\n },\n\n switchBase: {\n width: switchWidth,\n height: 16,\n padding: 0,\n\n // increase CSS specificity\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n \"&$checked\": {\n transform: \"translateX(16px)\",\n \"& + $track\": {\n opacity: 1,\n backgroundColor: theme.hv.palette.accent.acce1,\n },\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n },\n\n track: {\n opacity: 1,\n borderRadius: 15,\n left: 17,\n height: 16,\n border: `solid 1px ${theme.hv.palette.accent.acce1}`,\n backgroundColor: theme.hv.palette.atmosphere.atmo2,\n },\n\n thumb: {\n ...thumbPosition,\n border: `solid 1px ${theme.hv.palette.accent.acce1}`,\n backgroundColor: theme.hv.palette.atmosphere.atmo1,\n marginLeft: 2,\n marginTop: 0,\n },\n\n checked: {},\n\n disabled: {\n cursor: \"not-allowed\",\n\n \"& $switch\": {\n cursor: \"not-allowed\",\n },\n\n \"& $thumb\": {\n backgroundColor: `${theme.hv.palette.atmosphere.atmo3}`,\n border: `solid 1px ${theme.hv.palette.atmosphere.atmo5}`,\n },\n\n \"& $switchBase + $track\": {\n backgroundColor: `${theme.hv.palette.atmosphere.atmo3}`,\n border: `solid 1px ${theme.hv.palette.atmosphere.atmo5}`,\n opacity: 1,\n },\n },\n\n readOnly: {},\n\n focusVisible: {\n borderRadius: \"8px\",\n ...outlineStyles,\n },\n});\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,WAAW,GAAG,EAApB;AAEA,IAAMC,aAAa,GAAG;EACpBC,QAAQ,EAAE,UADU;EAEpBC,IAAI,EAAE,CAAC,CAFa;EAGpBC,KAAK,EAAE,EAHa;EAIpBC,MAAM,EAAE;AAJY,CAAtB;;AAOA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;EAAA,OAAY;IACzBC,IAAI,EAAE;MACJC,OAAO,EAAE,CADL;MAEJC,MAAM,EAAE;IAFJ,CADmB;IAMzBC,MAAM,EAAE;MACNF,OAAO,EAAE,CADH;MAENL,KAAK,EAAEJ,WAFD;MAGNK,MAAM,EAAE,EAHF;MAKN,0BAA0B;QACxBK,MAAM,EAAE;MADgB;IALpB,CANiB;IAgBzBE,UAAU,EAAE;MACVR,KAAK,EAAEJ,WADG;MAEVK,MAAM,EAAE,EAFE;MAGVI,OAAO,EAAE,CAHC;MAKV;MACA,WAAW;QACTI,eAAe,EAAE;MADR,CAND;MASV,aAAa;QACXC,SAAS,EAAE,kBADA;QAEX,cAAc;UACZC,OAAO,EAAE,CADG;UAEZF,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC;QAF7B,CAFH;QAMX,WAAW;UACTN,eAAe,EAAE;QADR;MANA;IATH,CAhBa;IAqCzBO,KAAK,EAAE;MACLL,OAAO,EAAE,CADJ;MAELM,YAAY,EAAE,EAFT;MAGLlB,IAAI,EAAE,EAHD;MAILE,MAAM,EAAE,EAJH;MAKLiB,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC,KAAvC,CALD;MAMLN,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BC;IANxC,CArCkB;IA8CzBC,KAAK,kCACAxB,aADA;MAEHqB,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBC,MAAjB,CAAwBC,KAAvC,CAFH;MAGHN,eAAe,EAAEN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BG,KAH1C;MAIHC,UAAU,EAAE,CAJT;MAKHC,SAAS,EAAE;IALR,EA9CoB;IAsDzBC,OAAO,EAAE,EAtDgB;IAwDzBC,QAAQ,EAAE;MACRpB,MAAM,EAAE,aADA;MAGR,aAAa;QACXA,MAAM,EAAE;MADG,CAHL;MAOR,YAAY;QACVG,eAAe,YAAKN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BQ,KAAjC,CADL;QAEVT,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BS,KAA3C;MAFI,CAPJ;MAYR,0BAA0B;QACxBnB,eAAe,YAAKN,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BQ,KAAjC,CADS;QAExBT,MAAM,sBAAef,KAAK,CAACS,EAAN,CAASC,OAAT,CAAiBM,UAAjB,CAA4BS,KAA3C,CAFkB;QAGxBjB,OAAO,EAAE;MAHe;IAZlB,CAxDe;IA2EzBkB,QAAQ,EAAE,EA3Ee;IA6EzBC,YAAY;MACVb,YAAY,EAAE;IADJ,GAEPc,qBAFO;EA7Ea,CAAZ;AAAA,CAAf;;eAmFe7B,M"}
@@ -28,6 +28,7 @@ var useScrollTo = function useScrollTo() {
28
28
  var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
29
29
  var options = arguments.length > 4 ? arguments[4] : undefined;
30
30
  var onChange = arguments.length > 5 ? arguments[5] : undefined;
31
+ var direction = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : "column";
31
32
  var RETRY_MAX = 5;
32
33
 
33
34
  var _useState = (0, _react.useState)(selectedIndexProp),
@@ -148,7 +149,7 @@ var useScrollTo = function useScrollTo() {
148
149
  var ele = document.getElementById(id);
149
150
 
150
151
  if (ele) {
151
- (0, _utils.scrollElement)(ele, scrollEle.current, option.offset || offset);
152
+ (0, _utils.scrollElement)(ele, scrollEle.current, option.offset || offset, direction);
152
153
  }
153
154
 
154
155
  if (href) {
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollTo.js","names":["useScrollTo","selectedIndexProp","scrollElementId","href","offset","options","onChange","RETRY_MAX","useState","selectedIndex","setSelectedIndex","scrollEle","useRef","requestedAnimationFrame","lastContainerScrollTop","selectedIndexRef","useEffect","current","document","getElementById","window","verticalScrollOffset","checkScroll","useCallback","event","requestAnimationFrame","firstVisibleElementIndex","findFirstVisibleElement","newSelectedIndex","length","isScrolledToTheBottom","containerScrollTop","getScrollTop","isScrollingDown","addEventListener","removeEventListener","cancelAnimationFrame","checkRenderedInterval","hashValue","location","hash","split","option","find","o","value","retry","setInterval","ele","scrollElement","clearInterval","setScrollTo","id","index","wrappedOnChange","history","pushState"],"sources":["../../src/ScrollTo/useScrollTo.js"],"sourcesContent":["import { useEffect, useRef, useState, useCallback } from \"react\";\nimport {\n verticalScrollOffset,\n findFirstVisibleElement,\n isScrolledToTheBottom,\n getScrollTop,\n scrollElement,\n} from \"./utils\";\n\nconst useScrollTo = (\n selectedIndexProp = 0,\n scrollElementId,\n href,\n offset = 0,\n options,\n onChange\n) => {\n const RETRY_MAX = 5;\n const [selectedIndex, setSelectedIndex] = useState(selectedIndexProp);\n\n const scrollEle = useRef();\n const requestedAnimationFrame = useRef(0);\n const lastContainerScrollTop = useRef();\n\n // ref to use a often-changing value in useCallback, as recommended in\n // https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n const selectedIndexRef = useRef(selectedIndex);\n useEffect(() => {\n selectedIndexRef.current = selectedIndex;\n }, [selectedIndex]);\n\n useEffect(() => {\n scrollEle.current = (scrollElementId && document.getElementById(scrollElementId)) || window;\n lastContainerScrollTop.current = verticalScrollOffset(scrollEle.current);\n }, [scrollElementId]);\n\n const checkScroll = useCallback(\n (event) => {\n if (requestedAnimationFrame.current === 0 && window?.requestAnimationFrame) {\n requestedAnimationFrame.current = window.requestAnimationFrame(() => {\n requestedAnimationFrame.current = 0;\n\n const firstVisibleElementIndex = findFirstVisibleElement(\n scrollEle.current,\n options,\n offset\n );\n\n let newSelectedIndex = firstVisibleElementIndex;\n\n // select the first element when all elements are bellow the container's top\n if (firstVisibleElementIndex < 0) {\n newSelectedIndex = 0;\n }\n\n // if the user has reached the bottom of the container, select the first nav item still visible\n // (usually this selects the last nav item, when it can't reach the top the container)\n // in theory only needed when scrolling down, but no... because of the Safari bouncing behaviour\n if (newSelectedIndex < options.length - 1 && isScrolledToTheBottom(scrollEle.current)) {\n newSelectedIndex += 1;\n }\n\n const containerScrollTop = getScrollTop(scrollEle.current);\n const isScrollingDown = containerScrollTop > lastContainerScrollTop.current;\n lastContainerScrollTop.current = containerScrollTop;\n\n // only update the selected item if the scroll direction is moving away from it\n if (isScrollingDown) {\n if (newSelectedIndex < selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n } else if (newSelectedIndex > selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n\n setSelectedIndex(newSelectedIndex);\n onChange?.(event, newSelectedIndex);\n });\n }\n },\n [offset, options, onChange]\n );\n\n // registers and unregisters the scroll listener\n useEffect(() => {\n if (scrollEle.current) {\n scrollEle.current.addEventListener(\"scroll\", checkScroll, false);\n }\n\n return () => {\n if (scrollEle.current) {\n scrollEle.current.removeEventListener(\"scroll\", checkScroll);\n }\n\n if (requestedAnimationFrame.current !== 0) {\n window.cancelAnimationFrame(requestedAnimationFrame.current);\n requestedAnimationFrame.current = 0;\n }\n };\n }, [checkScroll]);\n\n // waits for the elements to be rendered and scrolls to the one referenced\n // in the URL hash, if any\n useEffect(() => {\n let checkRenderedInterval;\n\n if (href) {\n const hashValue = document.location.hash.split(\"#\")[1] || \"\";\n\n const option = options.find((o) => o.value === hashValue);\n\n if (option) {\n let retry = 0;\n checkRenderedInterval = setInterval(() => {\n const ele = document.getElementById(option.value);\n\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n clearInterval(checkRenderedInterval);\n } else {\n retry += 1;\n if (retry === RETRY_MAX) {\n clearInterval(checkRenderedInterval);\n }\n }\n }, 1000);\n }\n }\n\n return () => {\n clearInterval(checkRenderedInterval);\n };\n\n // we really want to run this just in the first load\n // in fact this doesn't even belong here, the logic should be external\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setScrollTo = (event, id, index, wrappedOnChange) => {\n const option = options.find((o) => o.value === id);\n\n if (option) {\n const ele = document.getElementById(id);\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n }\n\n if (href) {\n window.history.pushState({}, \"\", `#${options[index].value}`);\n }\n\n setSelectedIndex(index);\n wrappedOnChange?.(index);\n\n // Safari scrolls immediately (no smooth scroll support),\n // so this ref value must be updated asap\n selectedIndexRef.current = index;\n }\n };\n\n return [selectedIndex, setScrollTo];\n};\n\nexport default useScrollTo;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useScrollTo.js","names":["useScrollTo","selectedIndexProp","scrollElementId","href","offset","options","onChange","direction","RETRY_MAX","useState","selectedIndex","setSelectedIndex","scrollEle","useRef","requestedAnimationFrame","lastContainerScrollTop","selectedIndexRef","useEffect","current","document","getElementById","window","verticalScrollOffset","checkScroll","useCallback","event","requestAnimationFrame","firstVisibleElementIndex","findFirstVisibleElement","newSelectedIndex","length","isScrolledToTheBottom","containerScrollTop","getScrollTop","isScrollingDown","addEventListener","removeEventListener","cancelAnimationFrame","checkRenderedInterval","hashValue","location","hash","split","option","find","o","value","retry","setInterval","ele","scrollElement","clearInterval","setScrollTo","id","index","wrappedOnChange","history","pushState"],"sources":["../../src/ScrollTo/useScrollTo.js"],"sourcesContent":["import { useEffect, useRef, useState, useCallback } from \"react\";\nimport {\n verticalScrollOffset,\n findFirstVisibleElement,\n isScrolledToTheBottom,\n getScrollTop,\n scrollElement,\n} from \"./utils\";\n\nconst useScrollTo = (\n selectedIndexProp = 0,\n scrollElementId,\n href,\n offset = 0,\n options,\n onChange,\n direction = \"column\"\n) => {\n const RETRY_MAX = 5;\n const [selectedIndex, setSelectedIndex] = useState(selectedIndexProp);\n\n const scrollEle = useRef();\n const requestedAnimationFrame = useRef(0);\n const lastContainerScrollTop = useRef();\n\n // ref to use a often-changing value in useCallback, as recommended in\n // https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n const selectedIndexRef = useRef(selectedIndex);\n useEffect(() => {\n selectedIndexRef.current = selectedIndex;\n }, [selectedIndex]);\n\n useEffect(() => {\n scrollEle.current = (scrollElementId && document.getElementById(scrollElementId)) || window;\n lastContainerScrollTop.current = verticalScrollOffset(scrollEle.current);\n }, [scrollElementId]);\n\n const checkScroll = useCallback(\n (event) => {\n if (requestedAnimationFrame.current === 0 && window?.requestAnimationFrame) {\n requestedAnimationFrame.current = window.requestAnimationFrame(() => {\n requestedAnimationFrame.current = 0;\n\n const firstVisibleElementIndex = findFirstVisibleElement(\n scrollEle.current,\n options,\n offset\n );\n\n let newSelectedIndex = firstVisibleElementIndex;\n\n // select the first element when all elements are bellow the container's top\n if (firstVisibleElementIndex < 0) {\n newSelectedIndex = 0;\n }\n\n // if the user has reached the bottom of the container, select the first nav item still visible\n // (usually this selects the last nav item, when it can't reach the top the container)\n // in theory only needed when scrolling down, but no... because of the Safari bouncing behaviour\n if (newSelectedIndex < options.length - 1 && isScrolledToTheBottom(scrollEle.current)) {\n newSelectedIndex += 1;\n }\n\n const containerScrollTop = getScrollTop(scrollEle.current);\n const isScrollingDown = containerScrollTop > lastContainerScrollTop.current;\n lastContainerScrollTop.current = containerScrollTop;\n\n // only update the selected item if the scroll direction is moving away from it\n if (isScrollingDown) {\n if (newSelectedIndex < selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n } else if (newSelectedIndex > selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n\n setSelectedIndex(newSelectedIndex);\n onChange?.(event, newSelectedIndex);\n });\n }\n },\n [offset, options, onChange]\n );\n\n // registers and unregisters the scroll listener\n useEffect(() => {\n if (scrollEle.current) {\n scrollEle.current.addEventListener(\"scroll\", checkScroll, false);\n }\n\n return () => {\n if (scrollEle.current) {\n scrollEle.current.removeEventListener(\"scroll\", checkScroll);\n }\n\n if (requestedAnimationFrame.current !== 0) {\n window.cancelAnimationFrame(requestedAnimationFrame.current);\n requestedAnimationFrame.current = 0;\n }\n };\n }, [checkScroll]);\n\n // waits for the elements to be rendered and scrolls to the one referenced\n // in the URL hash, if any\n useEffect(() => {\n let checkRenderedInterval;\n\n if (href) {\n const hashValue = document.location.hash.split(\"#\")[1] || \"\";\n\n const option = options.find((o) => o.value === hashValue);\n\n if (option) {\n let retry = 0;\n checkRenderedInterval = setInterval(() => {\n const ele = document.getElementById(option.value);\n\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n clearInterval(checkRenderedInterval);\n } else {\n retry += 1;\n if (retry === RETRY_MAX) {\n clearInterval(checkRenderedInterval);\n }\n }\n }, 1000);\n }\n }\n\n return () => {\n clearInterval(checkRenderedInterval);\n };\n\n // we really want to run this just in the first load\n // in fact this doesn't even belong here, the logic should be external\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setScrollTo = (event, id, index, wrappedOnChange) => {\n const option = options.find((o) => o.value === id);\n\n if (option) {\n const ele = document.getElementById(id);\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset, direction);\n }\n\n if (href) {\n window.history.pushState({}, \"\", `#${options[index].value}`);\n }\n\n setSelectedIndex(index);\n wrappedOnChange?.(index);\n\n // Safari scrolls immediately (no smooth scroll support),\n // so this ref value must be updated asap\n selectedIndexRef.current = index;\n }\n };\n\n return [selectedIndex, setScrollTo];\n};\n\nexport default useScrollTo;\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.verticalScrollOffset = exports.scrollElement = exports.isScrolledToTheBottom = exports.getScrollTop = exports.findFirstVisibleElement = void 0;
6
+ exports.verticalScrollOffset = exports.scrollElement = exports.isScrolledToTheBottom = exports.horizontalScrollOffset = exports.getScrollTop = exports.findFirstVisibleElement = void 0;
7
7
 
8
8
  var getScrollTop = function getScrollTop() {
9
9
  var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
@@ -35,13 +35,46 @@ var verticalScrollOffset = function verticalScrollOffset(t) {
35
35
 
36
36
  exports.verticalScrollOffset = verticalScrollOffset;
37
37
 
38
+ var horizontalScrollOffset = function horizontalScrollOffset(t) {
39
+ var c = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
40
+
41
+ if (c === window) {
42
+ var _t$getBoundingClientR2;
43
+
44
+ return ((t === null || t === void 0 ? void 0 : (_t$getBoundingClientR2 = t.getBoundingClientRect) === null || _t$getBoundingClientR2 === void 0 ? void 0 : _t$getBoundingClientR2.call(t).left) || 0) + (window.scrollX || window.pageXOffset);
45
+ }
46
+
47
+ if (getComputedStyle(c).position !== "static") {
48
+ return t.offsetLeft;
49
+ }
50
+
51
+ return t.offsetLeft - c.offsetLeft;
52
+ };
53
+
54
+ exports.horizontalScrollOffset = horizontalScrollOffset;
55
+
38
56
  var scrollElement = function scrollElement(element, container) {
39
57
  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
40
- var elemTop = verticalScrollOffset(element, container);
41
- container.scrollTo({
42
- top: elemTop - offset,
43
- behavior: "smooth"
44
- });
58
+ var direction = arguments.length > 3 ? arguments[3] : undefined;
59
+
60
+ if (direction === "row") {
61
+ var _container$scrollTo;
62
+
63
+ var elemLeft = horizontalScrollOffset(element, container);
64
+ container === null || container === void 0 ? void 0 : (_container$scrollTo = container.scrollTo) === null || _container$scrollTo === void 0 ? void 0 : _container$scrollTo.call(container, {
65
+ left: elemLeft - offset,
66
+ behavior: "smooth"
67
+ });
68
+ } else {
69
+ var _container$scrollTo2;
70
+
71
+ var elemTop = verticalScrollOffset(element, container);
72
+ container === null || container === void 0 ? void 0 : (_container$scrollTo2 = container.scrollTo) === null || _container$scrollTo2 === void 0 ? void 0 : _container$scrollTo2.call(container, {
73
+ top: elemTop - offset,
74
+ behavior: "smooth"
75
+ });
76
+ }
77
+
45
78
  element.focus({
46
79
  preventScroll: true
47
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["getScrollTop","c","window","scrollY","pageYOffset","document","documentElement","scrollTop","body","verticalScrollOffset","t","getBoundingClientRect","top","getComputedStyle","position","offsetTop","scrollElement","element","container","offset","elemTop","scrollTo","behavior","focus","preventScroll","isScrolledToTheBottom","containerScrollTop","scrollHeight","innerHeight","offsetHeight","findFirstVisibleElement","options","boundsTop","i","length","ele","getElementById","value"],"sources":["../../src/ScrollTo/utils.js"],"sourcesContent":["export const getScrollTop = (c = window) => {\n if (c === window) {\n return (\n window.scrollY ||\n window.pageYOffset ||\n (document.documentElement && document.documentElement.scrollTop) ||\n document.body.scrollTop\n );\n }\n\n return c.scrollTop;\n};\n\nexport const verticalScrollOffset = (t, c = window) => {\n if (c === window) {\n return (t?.getBoundingClientRect?.().top || 0) + (window.scrollY || window.pageYOffset);\n }\n if (getComputedStyle(c).position !== \"static\") {\n return t.offsetTop;\n }\n\n return t.offsetTop - c.offsetTop;\n};\n\nexport const scrollElement = (element, container, offset = 0) => {\n const elemTop = verticalScrollOffset(element, container);\n container.scrollTo({\n top: elemTop - offset,\n behavior: \"smooth\",\n });\n element.focus({ preventScroll: true });\n};\n\nexport const isScrolledToTheBottom = (container) => {\n const containerScrollTop = getScrollTop(container);\n\n if (container === window) {\n // accounting for cases where html/body are set to height:100%\n const scrollHeight =\n (document.documentElement && document.documentElement.scrollHeight) ||\n document.body.scrollHeight;\n\n return containerScrollTop + window.innerHeight >= scrollHeight;\n }\n\n return containerScrollTop + container.offsetHeight >= container.scrollHeight;\n};\n\nexport const findFirstVisibleElement = (container, options, offset) => {\n const boundsTop = verticalScrollOffset(container);\n\n let i = 0;\n // find index of first element whose top is still visible inside the container\n for (; i < options.length; i += 1) {\n const ele = document.getElementById(options[i].value);\n\n if (ele) {\n const elemTop = verticalScrollOffset(ele) - (options[i].offset || offset);\n\n if (elemTop > boundsTop) {\n break;\n }\n }\n }\n\n // return the previous index, the element that last scrolled past the top\n return i - 1;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["getScrollTop","c","window","scrollY","pageYOffset","document","documentElement","scrollTop","body","verticalScrollOffset","t","getBoundingClientRect","top","getComputedStyle","position","offsetTop","horizontalScrollOffset","left","scrollX","pageXOffset","offsetLeft","scrollElement","element","container","offset","direction","elemLeft","scrollTo","behavior","elemTop","focus","preventScroll","isScrolledToTheBottom","containerScrollTop","scrollHeight","innerHeight","offsetHeight","findFirstVisibleElement","options","boundsTop","i","length","ele","getElementById","value"],"sources":["../../src/ScrollTo/utils.js"],"sourcesContent":["export const getScrollTop = (c = window) => {\n if (c === window) {\n return (\n window.scrollY ||\n window.pageYOffset ||\n (document.documentElement && document.documentElement.scrollTop) ||\n document.body.scrollTop\n );\n }\n\n return c.scrollTop;\n};\n\nexport const verticalScrollOffset = (t, c = window) => {\n if (c === window) {\n return (t?.getBoundingClientRect?.().top || 0) + (window.scrollY || window.pageYOffset);\n }\n if (getComputedStyle(c).position !== \"static\") {\n return t.offsetTop;\n }\n\n return t.offsetTop - c.offsetTop;\n};\n\nexport const horizontalScrollOffset = (t, c = window) => {\n if (c === window) {\n return (t?.getBoundingClientRect?.().left || 0) + (window.scrollX || window.pageXOffset);\n }\n if (getComputedStyle(c).position !== \"static\") {\n return t.offsetLeft;\n }\n\n return t.offsetLeft - c.offsetLeft;\n};\n\nexport const scrollElement = (element, container, offset = 0, direction) => {\n if (direction === \"row\") {\n const elemLeft = horizontalScrollOffset(element, container);\n container?.scrollTo?.({\n left: elemLeft - offset,\n behavior: \"smooth\",\n });\n } else {\n const elemTop = verticalScrollOffset(element, container);\n container?.scrollTo?.({\n top: elemTop - offset,\n behavior: \"smooth\",\n });\n }\n element.focus({ preventScroll: true });\n};\n\nexport const isScrolledToTheBottom = (container) => {\n const containerScrollTop = getScrollTop(container);\n\n if (container === window) {\n // accounting for cases where html/body are set to height:100%\n const scrollHeight =\n (document.documentElement && document.documentElement.scrollHeight) ||\n document.body.scrollHeight;\n\n return containerScrollTop + window.innerHeight >= scrollHeight;\n }\n\n return containerScrollTop + container.offsetHeight >= container.scrollHeight;\n};\n\nexport const findFirstVisibleElement = (container, options, offset) => {\n const boundsTop = verticalScrollOffset(container);\n\n let i = 0;\n // find index of first element whose top is still visible inside the container\n for (; i < options.length; i += 1) {\n const ele = document.getElementById(options[i].value);\n\n if (ele) {\n const elemTop = verticalScrollOffset(ele) - (options[i].offset || offset);\n\n if (elemTop > boundsTop) {\n break;\n }\n }\n }\n\n // return the previous index, the element that last scrolled past the top\n return i - 1;\n};\n"],"mappings":"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"}
@@ -1,17 +1,16 @@
1
- import { FunctionComponent } from "react";
2
-
3
1
  export type Spacing = "xs" | "sm" | "md" | "lg";
4
- export type Breakpoints = {
2
+ export type Breakpoint = {
5
3
  cols?: number;
6
4
  maxWidth?: number;
7
5
  minWidth?: number;
8
6
  spacing?: Spacing;
9
7
  };
10
8
 
11
- export interface SimpleGridProps extends FunctionComponent {
9
+ export interface SimpleGridProps {
10
+ children?: JSX.Element | JSX.Element[];
12
11
  spacing?: Spacing;
13
12
  cols?: number;
14
- breakpoints?: Breakpoints;
13
+ breakpoints?: Breakpoint[];
15
14
  }
16
15
 
17
16
  export default function HvSimpleGrid(props: SimpleGridProps): JSX.Element | null;
package/dist/Tag/Tag.js CHANGED
@@ -93,8 +93,6 @@ var getColor = function getColor(theme, customColor, type) {
93
93
 
94
94
 
95
95
  var HvTag = function HvTag(props) {
96
- var _HvTypography;
97
-
98
96
  var classes = props.classes,
99
97
  style = props.style,
100
98
  className = props.className,
@@ -154,17 +152,8 @@ var HvTag = function HvTag(props) {
154
152
  hover = _useState2[0],
155
153
  setHover = _useState2[1];
156
154
 
157
- var chipLabel = (0, _react.useMemo)(function () {
158
- if (typeof label === "string") {
159
- return _HvTypography || (_HvTypography = /*#__PURE__*/_react.default.createElement(_.HvTypography, {
160
- variant: "normalText"
161
- }, label));
162
- }
163
-
164
- return label;
165
- }, [label]);
166
155
  return /*#__PURE__*/_react.default.createElement(_core.Chip, (0, _extends2.default)({
167
- label: chipLabel,
156
+ label: label,
168
157
  className: (0, _clsx.default)(classes.root, className),
169
158
  onMouseEnter: function onMouseEnter() {
170
159
  setHover(!!onClick);
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","names":["getColor","theme","customColor","type","defaultSemanticColor","hv","palette","semantic","sema7","defaultCategoricalColor","viz","categorical","cviz1","backgroundColor","HvTag","props","classes","style","className","label","disabled","color","deleteIcon","onDelete","onClick","role","deleteButtonArialLabel","deleteButtonProps","others","getDeleteIcon","disabledSemanticColor","tabIndex","startIcon","tagButton","focusVisible","primary","primaryButton","cursor","undefined","height","useTheme","inlineStyle","categoricalBackgroundColor","fade","useState","hover","setHover","chipLabel","useMemo","clsx","root","boxShadow","chipRoot","clickable","categoricalDisabled","categoricalFocus","disabledDeleteIcon","hasDeleteAction","getOnDeleteCallback","hasClickAction","propTypes","PropTypes","shape","string","titleOverflow","semanticTextColor","categoricalTextColor","deletable","isRequired","instanceOf","Object","node","bool","oneOf","func","withStyles","styles","name"],"sources":["../../src/Tag/Tag.js"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\n\nimport { Chip, withStyles, useTheme } from \"@material-ui/core\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { CloseXS } from \"@hitachivantara/uikit-react-icons\";\nimport fade from \"../utils/hexToRgbA\";\n\nimport { HvButton, HvTypography } from \"..\";\n\nimport styles from \"./styles\";\n\nimport { getOnDeleteCallback, hasDeleteAction, hasClickAction } from \"./utils\";\n\nconst getColor = (theme, customColor, type) => {\n const defaultSemanticColor = theme.hv.palette.semantic.sema7;\n const defaultCategoricalColor = theme.hv.viz.palette.categorical.cviz1;\n\n let backgroundColor;\n\n if (type === \"semantic\") {\n backgroundColor = theme.palette[customColor] || customColor || defaultSemanticColor;\n }\n if (type === \"categorical\") {\n backgroundColor =\n theme.hv.viz.palette.categorical[customColor] || customColor || defaultCategoricalColor;\n }\n\n return backgroundColor;\n};\n\n/**\n * A Tag is one word that describes a specific aspect of an asset. A single asset can have\n * multiple tags.\n * Use tags to highlight an item's status for quick recognition and navigation\n * Use color to indicate meanings that users can learn and recognize across products\n *\n * It leverages the Chip component from Material UI\n */\nconst HvTag = (props) => {\n const {\n classes,\n style,\n className,\n label,\n disabled,\n type = \"semantic\",\n color,\n deleteIcon,\n onDelete,\n onClick,\n role,\n deleteButtonArialLabel = \"Delete tag\",\n deleteButtonProps = {},\n ...others\n } = props;\n\n const getDeleteIcon = () => {\n const disabledSemanticColor = type === \"semantic\" ? \"atmo5\" : \"base2\";\n const { tabIndex = 0 } = deleteButtonProps;\n\n return (\n <HvButton\n classes={{\n startIcon: classes.tagButton,\n focusVisible: classes.focusVisible,\n primary: classes.primaryButton,\n }}\n aria-label={deleteButtonArialLabel}\n tabIndex={tabIndex}\n {...deleteButtonProps}\n >\n <CloseXS\n iconSize=\"XS\"\n style={{\n ...(disabled ? { cursor: \"not-allowed\" } : undefined),\n height: 16,\n }}\n color={disabled ? disabledSemanticColor : \"base2\"}\n />\n </HvButton>\n );\n };\n\n const theme = useTheme();\n\n const inlineStyle = {\n ...style,\n };\n\n let categoricalBackgroundColor;\n\n if (type === \"semantic\") {\n inlineStyle.backgroundColor = getColor(theme, color, type);\n } else if (type === \"categorical\") {\n categoricalBackgroundColor = getColor(theme, color, type);\n\n inlineStyle.backgroundColor = fade(categoricalBackgroundColor, 0.3);\n }\n\n const [hover, setHover] = useState(false);\n\n const chipLabel = useMemo(() => {\n if (typeof label === \"string\") {\n return <HvTypography variant=\"normalText\">{label}</HvTypography>;\n }\n\n return label;\n }, [label]);\n\n return (\n <Chip\n label={chipLabel}\n className={clsx(classes.root, className)}\n onMouseEnter={() => {\n setHover(!!onClick);\n }}\n onMouseLeave={() => {\n setHover(false);\n }}\n style={{\n ...(disabled ? null : inlineStyle),\n ...(hover && !disabled ? { boxShadow: `0 0 0 1pt ${categoricalBackgroundColor}` } : null),\n }}\n classes={{\n root: clsx(classes.chipRoot, {\n [classes.disabled]: disabled,\n [classes.clickable]: !!onClick,\n [classes.categorical]: type === \"categorical\",\n [classes.categoricalFocus]: type === \"categorical\" && !disabled,\n [classes.categoricalDisabled]: type === \"categorical\" && disabled,\n }),\n label: classes.label,\n deleteIcon: clsx(classes.deleteIcon, {\n [classes.disabledDeleteIcon]: disabled,\n }),\n }}\n deleteIcon={(hasDeleteAction(onDelete) && deleteIcon) || getDeleteIcon()}\n onDelete={getOnDeleteCallback(disabled, onDelete)}\n onClick={disabled ? undefined : onClick}\n role={role || (hasClickAction(onClick) ? \"button\" : undefined)}\n tabIndex={hasDeleteAction(onDelete) ? undefined : 0}\n {...others}\n />\n );\n};\n\nHvTag.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the radio button.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n chipRoot: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n tagButton: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n deleteIcon: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n disabledDeleteIcon: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n titleOverflow: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categorical: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalDisabled: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n semanticTextColor: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalTextColor: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n deletable: PropTypes.string,\n /**\n * Styles applied to the component if has onClick.\n */\n clickable: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n focusVisible: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n primaryButton: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalFocus: PropTypes.string,\n }).isRequired,\n\n /**\n * Inline styles to be applied to the root element.\n */\n style: PropTypes.instanceOf(Object),\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * The label of the tag element.\n *\n */\n label: PropTypes.node,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The type of the tag element.\n *\n * A tag can be of semantic or categoric type\n */\n type: PropTypes.oneOf([\"semantic\", \"categorical\"]),\n\n /**\n * Background color to be applied to the tag\n */\n color: PropTypes.string,\n /**\n * Icon used to customize the delete icon in the Chip element\n */\n deleteIcon: PropTypes.node,\n\n /**\n * The callback fired when the delete icon is pressed.\n * This function has to be provided to the component,\n * in order to render the delete icon\n */\n onDelete: PropTypes.func,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n\n /**\n * The role of the element with an attributed event.\n */\n role: PropTypes.string,\n /**\n * Aria properties to apply to delete button in tag\n */\n deleteButtonArialLabel: PropTypes.string,\n /**\n * Props to apply to delete button\n */\n deleteButtonProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTag\" })(HvTag);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tag.js","names":["getColor","theme","customColor","type","defaultSemanticColor","hv","palette","semantic","sema7","defaultCategoricalColor","viz","categorical","cviz1","backgroundColor","HvTag","props","classes","style","className","label","disabled","color","deleteIcon","onDelete","onClick","role","deleteButtonArialLabel","deleteButtonProps","others","getDeleteIcon","disabledSemanticColor","tabIndex","startIcon","tagButton","focusVisible","primary","primaryButton","cursor","undefined","height","useTheme","inlineStyle","categoricalBackgroundColor","fade","useState","hover","setHover","clsx","root","boxShadow","chipRoot","clickable","categoricalDisabled","categoricalFocus","disabledDeleteIcon","hasDeleteAction","getOnDeleteCallback","hasClickAction","propTypes","PropTypes","shape","string","titleOverflow","semanticTextColor","categoricalTextColor","deletable","isRequired","instanceOf","Object","node","bool","oneOf","func","withStyles","styles","name"],"sources":["../../src/Tag/Tag.js"],"sourcesContent":["import React, { useState } from \"react\";\n\nimport { Chip, withStyles, useTheme } from \"@material-ui/core\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { CloseXS } from \"@hitachivantara/uikit-react-icons\";\nimport fade from \"../utils/hexToRgbA\";\n\nimport { HvButton } from \"..\";\n\nimport styles from \"./styles\";\n\nimport { getOnDeleteCallback, hasDeleteAction, hasClickAction } from \"./utils\";\n\nconst getColor = (theme, customColor, type) => {\n const defaultSemanticColor = theme.hv.palette.semantic.sema7;\n const defaultCategoricalColor = theme.hv.viz.palette.categorical.cviz1;\n\n let backgroundColor;\n\n if (type === \"semantic\") {\n backgroundColor = theme.palette[customColor] || customColor || defaultSemanticColor;\n }\n if (type === \"categorical\") {\n backgroundColor =\n theme.hv.viz.palette.categorical[customColor] || customColor || defaultCategoricalColor;\n }\n\n return backgroundColor;\n};\n\n/**\n * A Tag is one word that describes a specific aspect of an asset. A single asset can have\n * multiple tags.\n * Use tags to highlight an item's status for quick recognition and navigation\n * Use color to indicate meanings that users can learn and recognize across products\n *\n * It leverages the Chip component from Material UI\n */\nconst HvTag = (props) => {\n const {\n classes,\n style,\n className,\n label,\n disabled,\n type = \"semantic\",\n color,\n deleteIcon,\n onDelete,\n onClick,\n role,\n deleteButtonArialLabel = \"Delete tag\",\n deleteButtonProps = {},\n ...others\n } = props;\n\n const getDeleteIcon = () => {\n const disabledSemanticColor = type === \"semantic\" ? \"atmo5\" : \"base2\";\n const { tabIndex = 0 } = deleteButtonProps;\n\n return (\n <HvButton\n classes={{\n startIcon: classes.tagButton,\n focusVisible: classes.focusVisible,\n primary: classes.primaryButton,\n }}\n aria-label={deleteButtonArialLabel}\n tabIndex={tabIndex}\n {...deleteButtonProps}\n >\n <CloseXS\n iconSize=\"XS\"\n style={{\n ...(disabled ? { cursor: \"not-allowed\" } : undefined),\n height: 16,\n }}\n color={disabled ? disabledSemanticColor : \"base2\"}\n />\n </HvButton>\n );\n };\n\n const theme = useTheme();\n\n const inlineStyle = {\n ...style,\n };\n\n let categoricalBackgroundColor;\n\n if (type === \"semantic\") {\n inlineStyle.backgroundColor = getColor(theme, color, type);\n } else if (type === \"categorical\") {\n categoricalBackgroundColor = getColor(theme, color, type);\n\n inlineStyle.backgroundColor = fade(categoricalBackgroundColor, 0.3);\n }\n\n const [hover, setHover] = useState(false);\n\n return (\n <Chip\n label={label}\n className={clsx(classes.root, className)}\n onMouseEnter={() => {\n setHover(!!onClick);\n }}\n onMouseLeave={() => {\n setHover(false);\n }}\n style={{\n ...(disabled ? null : inlineStyle),\n ...(hover && !disabled ? { boxShadow: `0 0 0 1pt ${categoricalBackgroundColor}` } : null),\n }}\n classes={{\n root: clsx(classes.chipRoot, {\n [classes.disabled]: disabled,\n [classes.clickable]: !!onClick,\n [classes.categorical]: type === \"categorical\",\n [classes.categoricalFocus]: type === \"categorical\" && !disabled,\n [classes.categoricalDisabled]: type === \"categorical\" && disabled,\n }),\n label: classes.label,\n deleteIcon: clsx(classes.deleteIcon, {\n [classes.disabledDeleteIcon]: disabled,\n }),\n }}\n deleteIcon={(hasDeleteAction(onDelete) && deleteIcon) || getDeleteIcon()}\n onDelete={getOnDeleteCallback(disabled, onDelete)}\n onClick={disabled ? undefined : onClick}\n role={role || (hasClickAction(onClick) ? \"button\" : undefined)}\n tabIndex={hasDeleteAction(onDelete) ? undefined : 0}\n {...others}\n />\n );\n};\n\nHvTag.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the radio button.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n chipRoot: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n tagButton: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n deleteIcon: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n disabledDeleteIcon: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n titleOverflow: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categorical: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalDisabled: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n semanticTextColor: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalTextColor: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n deletable: PropTypes.string,\n /**\n * Styles applied to the component if has onClick.\n */\n clickable: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n focusVisible: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n primaryButton: PropTypes.string,\n /**\n * Styles applied to the component.\n */\n categoricalFocus: PropTypes.string,\n }).isRequired,\n\n /**\n * Inline styles to be applied to the root element.\n */\n style: PropTypes.instanceOf(Object),\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * The label of the tag element.\n *\n */\n label: PropTypes.node,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The type of the tag element.\n *\n * A tag can be of semantic or categoric type\n */\n type: PropTypes.oneOf([\"semantic\", \"categorical\"]),\n\n /**\n * Background color to be applied to the tag\n */\n color: PropTypes.string,\n /**\n * Icon used to customize the delete icon in the Chip element\n */\n deleteIcon: PropTypes.node,\n\n /**\n * The callback fired when the delete icon is pressed.\n * This function has to be provided to the component,\n * in order to render the delete icon\n */\n onDelete: PropTypes.func,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n\n /**\n * The role of the element with an attributed event.\n */\n role: PropTypes.string,\n /**\n * Aria properties to apply to delete button in tag\n */\n deleteButtonArialLabel: PropTypes.string,\n /**\n * Props to apply to delete button\n */\n deleteButtonProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTag\" })(HvTag);\n"],"mappings":"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"}
@@ -46,13 +46,15 @@ var styles = function styles(theme) {
46
46
  primaryButton: {
47
47
  background: "transparent"
48
48
  },
49
- label: {
49
+ label: _objectSpread(_objectSpread({
50
50
  paddingLeft: theme.hv.spacing.xs,
51
- paddingRight: theme.hv.spacing.xs,
51
+ paddingRight: theme.hv.spacing.xs
52
+ }, theme.hv.typography.normalText), {}, {
53
+ color: theme.palette.base2,
52
54
  "& p": {
53
55
  color: theme.hv.palette.base.base2
54
56
  }
55
- },
57
+ }),
56
58
  tagButton: {
57
59
  width: 16,
58
60
  height: 16,
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["styles","theme","root","chipRoot","height","borderRadius","maxWidth","backgroundColor","fade","palette","base1","focusVisible","primaryButton","background","label","paddingLeft","hv","spacing","xs","paddingRight","color","base","base2","tagButton","width","minWidth","minHeight","padding","margin","deleteIcon","marginRight","outlineStyles","outline","boxShadow","disabledDeleteIcon","atmosphere","atmo3","outlineOffset","titleOverflow","whiteSpace","overflow","textOverflow","categorical","cursor","accent","acce1","clickable","categoricalFocus","disabled","atmo5","categoricalDisabled","semanticTextColor","categoricalTextColor"],"sources":["../../src/Tag/styles.js"],"sourcesContent":["import fade from \"../utils/hexToRgbA\";\nimport { outlineStyles } from \"../Focus/styles\";\n\nconst styles = (theme) => ({\n root: {},\n\n chipRoot: {\n height: 16,\n borderRadius: 0,\n maxWidth: 180,\n \"& $focusVisible\": {\n backgroundColor: fade(theme.palette.base1, 0.3),\n },\n },\n\n focusVisible: {},\n\n primaryButton: {\n background: \"transparent\",\n },\n\n label: {\n paddingLeft: theme.hv.spacing.xs,\n paddingRight: theme.hv.spacing.xs,\n \"& p\": {\n color: theme.hv.palette.base.base2,\n },\n },\n\n tagButton: {\n width: 16,\n height: 16,\n minWidth: 16,\n minHeight: 16,\n padding: 0,\n margin: 0,\n },\n\n deleteIcon: {\n marginRight: 0,\n width: 16,\n height: 16,\n minWidth: 16,\n minHeight: 16,\n padding: 0,\n \"&:hover\": {\n backgroundColor: fade(theme.palette.base1, 0.3),\n },\n \"&:focus\": {\n ...outlineStyles,\n borderRadius: 0,\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n },\n },\n disabledDeleteIcon: {\n \"&:hover\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n },\n \"&:focus\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n outline: \"none\",\n boxShadow: \"none\",\n outlineOffset: 0,\n },\n },\n titleOverflow: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n categorical: {\n borderRadius: 8,\n \"&$clickable\": {\n cursor: \"pointer\",\n },\n \"&:hover\": {\n borderRadius: 8,\n },\n \"& $label > p\": {\n color: theme.hv.palette.accent.acce1,\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n },\n },\n clickable: {},\n\n categoricalFocus: {\n \"&:focus\": {\n ...outlineStyles,\n },\n },\n\n disabled: {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n cursor: \"not-allowed\",\n \"& $label > p\": {\n color: theme.hv.palette.atmosphere.atmo5,\n },\n },\n\n categoricalDisabled: {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n cursor: \"not-allowed\",\n \"& $label > p\": {\n color: theme.hv.palette.atmosphere.atmo5,\n },\n \"&:hover\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n },\n \"&:focus\": {\n outline: \"none\",\n },\n },\n\n semanticTextColor: {\n color: theme.hv.palette.base.base2,\n },\n categoricalTextColor: {\n color: theme.hv.palette.accent.acce1,\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","names":["styles","theme","root","chipRoot","height","borderRadius","maxWidth","backgroundColor","fade","palette","base1","focusVisible","primaryButton","background","label","paddingLeft","hv","spacing","xs","paddingRight","typography","normalText","color","base2","base","tagButton","width","minWidth","minHeight","padding","margin","deleteIcon","marginRight","outlineStyles","outline","boxShadow","disabledDeleteIcon","atmosphere","atmo3","outlineOffset","titleOverflow","whiteSpace","overflow","textOverflow","categorical","cursor","accent","acce1","clickable","categoricalFocus","disabled","atmo5","categoricalDisabled","semanticTextColor","categoricalTextColor"],"sources":["../../src/Tag/styles.js"],"sourcesContent":["import fade from \"../utils/hexToRgbA\";\nimport { outlineStyles } from \"../Focus/styles\";\n\nconst styles = (theme) => ({\n root: {},\n\n chipRoot: {\n height: 16,\n borderRadius: 0,\n maxWidth: 180,\n \"& $focusVisible\": {\n backgroundColor: fade(theme.palette.base1, 0.3),\n },\n },\n\n focusVisible: {},\n\n primaryButton: {\n background: \"transparent\",\n },\n\n label: {\n paddingLeft: theme.hv.spacing.xs,\n paddingRight: theme.hv.spacing.xs,\n ...theme.hv.typography.normalText,\n color: theme.palette.base2,\n \"& p\": {\n color: theme.hv.palette.base.base2,\n },\n },\n\n tagButton: {\n width: 16,\n height: 16,\n minWidth: 16,\n minHeight: 16,\n padding: 0,\n margin: 0,\n },\n\n deleteIcon: {\n marginRight: 0,\n width: 16,\n height: 16,\n minWidth: 16,\n minHeight: 16,\n padding: 0,\n \"&:hover\": {\n backgroundColor: fade(theme.palette.base1, 0.3),\n },\n \"&:focus\": {\n ...outlineStyles,\n borderRadius: 0,\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n },\n },\n disabledDeleteIcon: {\n \"&:hover\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n },\n \"&:focus\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n outline: \"none\",\n boxShadow: \"none\",\n outlineOffset: 0,\n },\n },\n titleOverflow: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n categorical: {\n borderRadius: 8,\n \"&$clickable\": {\n cursor: \"pointer\",\n },\n \"&:hover\": {\n borderRadius: 8,\n },\n \"& $label > p\": {\n color: theme.hv.palette.accent.acce1,\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n },\n },\n clickable: {},\n\n categoricalFocus: {\n \"&:focus\": {\n ...outlineStyles,\n },\n },\n\n disabled: {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n cursor: \"not-allowed\",\n \"& $label > p\": {\n color: theme.hv.palette.atmosphere.atmo5,\n },\n },\n\n categoricalDisabled: {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n cursor: \"not-allowed\",\n \"& $label > p\": {\n color: theme.hv.palette.atmosphere.atmo5,\n },\n \"&:hover\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n },\n \"&:focus\": {\n outline: \"none\",\n },\n },\n\n semanticTextColor: {\n color: theme.hv.palette.base.base2,\n },\n categoricalTextColor: {\n color: theme.hv.palette.accent.acce1,\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { StandardProps, SwitchProps } from "@material-ui/core";
2
2
 
3
- export type HvBaseSwitchClassKey = "root" | "disabled";
3
+ export type HvBaseSwitchClassKey = "root" | "disabled" | "readOnly";
4
4
 
5
5
  export interface HvBaseSwitchProps
6
6
  extends StandardProps<SwitchProps, HvBaseSwitchClassKey, "onChange"> {
@@ -59,7 +59,7 @@ var HvBaseSwitch = function HvBaseSwitch(props) {
59
59
  return /*#__PURE__*/React.createElement(Switch, _extends({
60
60
  id: id,
61
61
  name: name,
62
- className: clsx(className, classes.root, disabled && classes.disabled, focusVisible && classes.focusVisible),
62
+ className: clsx(className, classes.root, disabled && classes.disabled, readOnly && classes.readOnly, focusVisible && classes.focusVisible),
63
63
  color: "default",
64
64
  disabled: disabled,
65
65
  required: required,
@@ -103,6 +103,11 @@ process.env.NODE_ENV !== "production" ? HvBaseSwitch.propTypes = {
103
103
  */
104
104
  disabled: PropTypes.string,
105
105
 
106
+ /**
107
+ * Styles applied to the switch when it is in read only mode.
108
+ */
109
+ readOnly: PropTypes.string,
110
+
106
111
  /**
107
112
  * Styles applied to the internal Switch component's root class.
108
113
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSwitch.js","names":["React","useState","useCallback","PropTypes","clsx","Switch","withStyles","styles","HvBaseSwitch","props","classes","className","id","name","value","required","readOnly","disabled","checked","defaultChecked","onChange","inputProps","onFocusVisible","onBlur","others","focusVisible","setFocusVisible","onFocusVisibleCallback","evt","onBlurCallback","onLocalChange","target","root","switch","switchBase","track","thumb","propTypes","string","shape","isRequired","any","bool","func","instanceOf","Object"],"sources":["../../../src/BaseSwitch/BaseSwitch.js"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { Switch, withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\n/**\n * A Switch is <b>binary</b> and work as a digital on/off button.\n *\n * The Base Switch is a building block of the Switch form element. Don't use unless\n * implementing a custom use case not covered by the Switch form element.\n */\nconst HvBaseSwitch = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n value = \"on\",\n\n required = false,\n readOnly = false,\n disabled = false,\n\n checked,\n defaultChecked,\n\n onChange,\n\n inputProps,\n\n onFocusVisible,\n onBlur,\n\n ...others\n } = props;\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const onLocalChange = useCallback(\n (evt) => {\n if (readOnly) {\n return;\n }\n\n onChange?.(evt, evt.target.checked, value);\n },\n [onChange, readOnly, value]\n );\n\n return (\n <Switch\n id={id}\n name={name}\n className={clsx(className, classes.root, {\n [classes.disabled]: disabled,\n [classes.focusVisible]: focusVisible,\n })}\n color=\"default\"\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n disableRipple\n onChange={onLocalChange}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n classes={{\n root: classes.switch,\n switchBase: classes.switchBase,\n checked: classes.checked,\n track: classes.track,\n thumb: classes.thumb,\n disabled: classes.disabled,\n }}\n inputProps={inputProps}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\n};\n\nHvBaseSwitch.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the switch.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the switch when it is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the internal Switch component's root class.\n */\n switch: PropTypes.string,\n /**\n * Styles applied to the internal SwitchBase component's root class.\n */\n switchBase: PropTypes.string,\n /**\n * Pseudo-class applied to the internal SwitchBase component's checked class.\n */\n checked: PropTypes.string,\n /**\n * Styles applied to the track element.\n */\n track: PropTypes.string,\n /**\n * Styles used to create the thumb passed to the internal SwitchBase component icon prop.\n */\n thumb: PropTypes.string,\n /**\n * Class applied to the root element if keyboard focused.\n */\n focusVisible: PropTypes.string,\n }).isRequired,\n\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * The input name.\n */\n name: PropTypes.string,\n /**\n * The value of the input.\n *\n * Is up to the application's logic when to consider the submission of this value.\n * Generally it should be used only when the switch is neither unchecked nor indeterminate.\n *\n * The default value is \"on\".\n */\n // eslint-disable-next-line react/forbid-prop-types\n value: PropTypes.any,\n\n /**\n * Indicates that user input is required.\n */\n required: PropTypes.bool,\n /**\n * Indicates that the input is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * Indicates that the input is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` the switch is selected, if set to `false` the switch is not selected.\n *\n * When defined the switch state becomes controlled.\n */\n checked: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * The callback fired when the switch is pressed.\n */\n onChange: PropTypes.func,\n\n /**\n * Properties passed on to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvBaseSwitch\" })(HvBaseSwitch);\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseSwitch.js","names":["React","useState","useCallback","PropTypes","clsx","Switch","withStyles","styles","HvBaseSwitch","props","classes","className","id","name","value","required","readOnly","disabled","checked","defaultChecked","onChange","inputProps","onFocusVisible","onBlur","others","focusVisible","setFocusVisible","onFocusVisibleCallback","evt","onBlurCallback","onLocalChange","target","root","switch","switchBase","track","thumb","propTypes","string","shape","isRequired","any","bool","func","instanceOf","Object"],"sources":["../../../src/BaseSwitch/BaseSwitch.js"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { Switch, withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\n/**\n * A Switch is <b>binary</b> and work as a digital on/off button.\n *\n * The Base Switch is a building block of the Switch form element. Don't use unless\n * implementing a custom use case not covered by the Switch form element.\n */\nconst HvBaseSwitch = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n value = \"on\",\n\n required = false,\n readOnly = false,\n disabled = false,\n\n checked,\n defaultChecked,\n\n onChange,\n\n inputProps,\n\n onFocusVisible,\n onBlur,\n\n ...others\n } = props;\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const onLocalChange = useCallback(\n (evt) => {\n if (readOnly) {\n return;\n }\n\n onChange?.(evt, evt.target.checked, value);\n },\n [onChange, readOnly, value]\n );\n\n return (\n <Switch\n id={id}\n name={name}\n className={clsx(className, classes.root, {\n [classes.disabled]: disabled,\n [classes.readOnly]: readOnly,\n [classes.focusVisible]: focusVisible,\n })}\n color=\"default\"\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n disableRipple\n onChange={onLocalChange}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n classes={{\n root: classes.switch,\n switchBase: classes.switchBase,\n checked: classes.checked,\n track: classes.track,\n thumb: classes.thumb,\n disabled: classes.disabled,\n }}\n inputProps={inputProps}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\n};\n\nHvBaseSwitch.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the switch.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the switch when it is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to the switch when it is in read only mode.\n */\n readOnly: PropTypes.string,\n /**\n * Styles applied to the internal Switch component's root class.\n */\n switch: PropTypes.string,\n /**\n * Styles applied to the internal SwitchBase component's root class.\n */\n switchBase: PropTypes.string,\n /**\n * Pseudo-class applied to the internal SwitchBase component's checked class.\n */\n checked: PropTypes.string,\n /**\n * Styles applied to the track element.\n */\n track: PropTypes.string,\n /**\n * Styles used to create the thumb passed to the internal SwitchBase component icon prop.\n */\n thumb: PropTypes.string,\n /**\n * Class applied to the root element if keyboard focused.\n */\n focusVisible: PropTypes.string,\n }).isRequired,\n\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * The input name.\n */\n name: PropTypes.string,\n /**\n * The value of the input.\n *\n * Is up to the application's logic when to consider the submission of this value.\n * Generally it should be used only when the switch is neither unchecked nor indeterminate.\n *\n * The default value is \"on\".\n */\n // eslint-disable-next-line react/forbid-prop-types\n value: PropTypes.any,\n\n /**\n * Indicates that user input is required.\n */\n required: PropTypes.bool,\n /**\n * Indicates that the input is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * Indicates that the input is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` the switch is selected, if set to `false` the switch is not selected.\n *\n * When defined the switch state becomes controlled.\n */\n checked: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * The callback fired when the switch is pressed.\n */\n onChange: PropTypes.func,\n\n /**\n * Properties passed on to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvBaseSwitch\" })(HvBaseSwitch);\n"],"mappings":"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"}
@@ -29,7 +29,10 @@ var styles = function styles(theme) {
29
29
  switch: {
30
30
  padding: 0,
31
31
  width: switchWidth,
32
- height: 16
32
+ height: 16,
33
+ "&$readOnly $switchBase": {
34
+ cursor: "default"
35
+ }
33
36
  },
34
37
  switchBase: {
35
38
  width: switchWidth,
@@ -80,6 +83,7 @@ var styles = function styles(theme) {
80
83
  opacity: 1
81
84
  }
82
85
  },
86
+ readOnly: {},
83
87
  focusVisible: _objectSpread({
84
88
  borderRadius: "8px"
85
89
  }, outlineStyles)