@semcore/accordion 4.2.15 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [4.3.0] - 2023-02-20
6
+
7
+ ### Changed
8
+
9
+ - Animation duration now might be controlled with design tokens.
10
+
5
11
  ## [4.2.15] - 2023-02-13
6
12
 
7
13
  ### Changed
@@ -39,6 +39,8 @@ var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/e
39
39
 
40
40
  var _uniqueID = _interopRequireDefault(require("@semcore/utils/lib/uniqueID"));
41
41
 
42
+ var _useCssVariable = require("@semcore/utils/lib/useCssVariable");
43
+
42
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
45
 
44
46
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -56,16 +58,16 @@ var style = (
56
58
  /*__reshadow_css_start__*/
57
59
  _core.sstyled.insert(
58
60
  /*__inner_css_start__*/
59
- ".___SItemToggle_1l3fx_gg_{cursor:pointer;outline:0}.___SItemToggle_1l3fx_gg_.__keyboardFocused_1l3fx_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SItemToggle_1l3fx_gg_.__disabled_1l3fx_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default}.___SItemChevron_1l3fx_gg_{transform:rotate(0deg);transition:transform .25s ease-out}.___SItemChevron_1l3fx_gg_.__selected_1l3fx_gg_{transform:rotate(90deg)}@media (prefers-reduced-motion){.___SItemChevron_1l3fx_gg_{transition:none}}"
61
+ ".___SItemToggle_cxvs8_gg_{cursor:pointer;outline:0}.___SItemToggle_cxvs8_gg_.__keyboardFocused_cxvs8_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SItemToggle_cxvs8_gg_.__disabled_cxvs8_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default}.___SItemChevron_cxvs8_gg_{transform:rotate(0deg);transition:transform calc(var(--intergalactic-duration-accordion, 200)*1ms) ease-out}.___SItemChevron_cxvs8_gg_.__selected_cxvs8_gg_{transform:rotate(90deg)}@media (prefers-reduced-motion){.___SItemChevron_cxvs8_gg_{transition:none}}"
60
62
  /*__inner_css_end__*/
61
- , "1l3fx_gg_")
63
+ , "cxvs8_gg_")
62
64
  /*__reshadow_css_end__*/
63
65
  , {
64
- "__SItemToggle": "___SItemToggle_1l3fx_gg_",
65
- "_keyboardFocused": "__keyboardFocused_1l3fx_gg_",
66
- "_disabled": "__disabled_1l3fx_gg_",
67
- "__SItemChevron": "___SItemChevron_1l3fx_gg_",
68
- "_selected": "__selected_1l3fx_gg_"
66
+ "__SItemToggle": "___SItemToggle_cxvs8_gg_",
67
+ "_keyboardFocused": "__keyboardFocused_cxvs8_gg_",
68
+ "_disabled": "__disabled_cxvs8_gg_",
69
+ "__SItemChevron": "___SItemChevron_cxvs8_gg_",
70
+ "_selected": "__selected_cxvs8_gg_"
69
71
  });
70
72
 
71
73
  var RootAccordion = /*#__PURE__*/function (_Component) {
@@ -133,9 +135,14 @@ var RootAccordion = /*#__PURE__*/function (_Component) {
133
135
  (0, _defineProperty2["default"])(RootAccordion, "displayName", 'Accordion');
134
136
  (0, _defineProperty2["default"])(RootAccordion, "style", style);
135
137
  (0, _defineProperty2["default"])(RootAccordion, "defaultProps", {
136
- defaultValue: [],
137
- duration: 350
138
+ defaultValue: []
138
139
  });
140
+ (0, _defineProperty2["default"])(RootAccordion, "enhance", [(0, _useCssVariable.cssVariableEnhance)({
141
+ variable: '--intergalactic-duration-accordion',
142
+ fallback: '200',
143
+ map: Number.parseInt,
144
+ prop: 'duration'
145
+ })]);
139
146
 
140
147
  var RootItem = /*#__PURE__*/function (_Component2) {
141
148
  (0, _inherits2["default"])(RootItem, _Component2);
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["RootAccordion","newValue","value","asProps","Array","isArray","indexOfNewValue","indexOf","result","push","splice","handlers","selectedValue","duration","selected","includes","$handleInteraction","handleToggleInteraction","Children","Component","style","defaultValue","RootItem","uid","disabled","onClick","undefined","handleClick","id","role","uniqueIDEnhancement","Toggle","e","key","preventDefault","currentTarget","click","styles","SItemToggle","Box","sstyled","handleKeyDown","keyboardFocusEnhance","Chevron","props","SItemChevron","ChevronRight","Collapse","CollapseAnimate","Item","createComponent","Accordion"],"sources":["../../src/Accordion.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Collapse as CollapseAnimate } from '@semcore/animation';\nimport ChevronRight from '@semcore/icon/ChevronRight/m';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/accordion.shadow.css';\n\nclass RootAccordion extends Component {\n static displayName = 'Accordion';\n static style = style;\n static defaultProps = {\n defaultValue: [],\n duration: 350,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleToggleInteraction = (newValue) => {\n const { value } = this.asProps;\n\n if (Array.isArray(value)) {\n const indexOfNewValue = value.indexOf(newValue);\n const result = [...value];\n indexOfNewValue === -1 ? result.push(newValue) : result.splice(indexOfNewValue, 1);\n this.handlers.value(result);\n } else {\n this.handlers.value(value === newValue ? null : newValue);\n }\n };\n\n getItemProps({ value }) {\n const { value: selectedValue, duration } = this.asProps;\n const selected = Array.isArray(selectedValue)\n ? selectedValue.includes(value)\n : selectedValue === value;\n return {\n selected,\n duration,\n $handleInteraction: this.handleToggleInteraction,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nexport class RootItem extends Component {\n static displayName = 'Item';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n handleClick = () => {\n const { value, $handleInteraction } = this.asProps;\n\n $handleInteraction(value);\n };\n\n getToggleProps() {\n const { value, uid, selected, disabled } = this.asProps;\n return {\n disabled,\n onClick: disabled ? undefined : this.handleClick,\n id: `igc-${uid}-${value}-toggle`,\n role: 'button',\n 'aria-expanded': selected || undefined,\n 'aria-controls': selected ? `igc-${uid}-${value}-collapse` : undefined,\n };\n }\n\n getCollapseProps() {\n const { selected, uid, duration, value } = this.asProps;\n return {\n selected,\n duration,\n id: `igc-${uid}-${value}-collapse`,\n role: 'region',\n 'aria-labelledby': `igc-${uid}-${value}-toggle`,\n };\n }\n\n getChevronProps() {\n const { selected } = this.asProps;\n return {\n selected,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nclass Toggle extends Component {\n static enhance = [keyboardFocusEnhance()];\n\n handleKeyDown(e) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n e.currentTarget.click();\n }\n }\n\n render() {\n const { styles, disabled } = this.asProps;\n const SItemToggle = Root;\n\n return sstyled(styles)(\n <SItemToggle\n render={Box}\n onKeyDown={this.handleKeyDown}\n aria-disabled={disabled ? 'true' : undefined}\n />,\n );\n }\n}\n\nfunction Chevron(props) {\n const { styles } = props;\n const SItemChevron = Root;\n return sstyled(styles)(<SItemChevron render={ChevronRight} />);\n}\n\nfunction Collapse(props) {\n const { selected } = props;\n return <Root render={CollapseAnimate} visible={selected} interactive />;\n}\n\nconst Item = createComponent(RootItem, {\n Toggle,\n Chevron,\n Collapse,\n});\n\nconst Accordion = createComponent(RootAccordion, {\n Item,\n});\n\nexport default Accordion;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","names":["RootAccordion","newValue","value","asProps","Array","isArray","indexOfNewValue","indexOf","result","push","splice","handlers","selectedValue","duration","selected","includes","$handleInteraction","handleToggleInteraction","Children","Component","style","defaultValue","cssVariableEnhance","variable","fallback","map","Number","parseInt","prop","RootItem","uid","disabled","onClick","undefined","handleClick","id","role","uniqueIDEnhancement","Toggle","e","key","preventDefault","currentTarget","click","styles","SItemToggle","Box","sstyled","handleKeyDown","keyboardFocusEnhance","Chevron","props","SItemChevron","ChevronRight","Collapse","CollapseAnimate","Item","createComponent","Accordion"],"sources":["../../src/Accordion.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Collapse as CollapseAnimate } from '@semcore/animation';\nimport ChevronRight from '@semcore/icon/ChevronRight/m';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\n\nimport style from './style/accordion.shadow.css';\n\nclass RootAccordion extends Component {\n static displayName = 'Accordion';\n static style = style;\n static defaultProps = {\n defaultValue: [],\n };\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-accordion',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleToggleInteraction = (newValue) => {\n const { value } = this.asProps;\n\n if (Array.isArray(value)) {\n const indexOfNewValue = value.indexOf(newValue);\n const result = [...value];\n indexOfNewValue === -1 ? result.push(newValue) : result.splice(indexOfNewValue, 1);\n this.handlers.value(result);\n } else {\n this.handlers.value(value === newValue ? null : newValue);\n }\n };\n\n getItemProps({ value }) {\n const { value: selectedValue, duration } = this.asProps;\n const selected = Array.isArray(selectedValue)\n ? selectedValue.includes(value)\n : selectedValue === value;\n return {\n selected,\n duration,\n $handleInteraction: this.handleToggleInteraction,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nexport class RootItem extends Component {\n static displayName = 'Item';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n handleClick = () => {\n const { value, $handleInteraction } = this.asProps;\n\n $handleInteraction(value);\n };\n\n getToggleProps() {\n const { value, uid, selected, disabled } = this.asProps;\n return {\n disabled,\n onClick: disabled ? undefined : this.handleClick,\n id: `igc-${uid}-${value}-toggle`,\n role: 'button',\n 'aria-expanded': selected || undefined,\n 'aria-controls': selected ? `igc-${uid}-${value}-collapse` : undefined,\n };\n }\n\n getCollapseProps() {\n const { selected, uid, duration, value } = this.asProps;\n return {\n selected,\n duration,\n id: `igc-${uid}-${value}-collapse`,\n role: 'region',\n 'aria-labelledby': `igc-${uid}-${value}-toggle`,\n };\n }\n\n getChevronProps() {\n const { selected } = this.asProps;\n return {\n selected,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nclass Toggle extends Component {\n static enhance = [keyboardFocusEnhance()];\n\n handleKeyDown(e) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n e.currentTarget.click();\n }\n }\n\n render() {\n const { styles, disabled } = this.asProps;\n const SItemToggle = Root;\n\n return sstyled(styles)(\n <SItemToggle\n render={Box}\n onKeyDown={this.handleKeyDown}\n aria-disabled={disabled ? 'true' : undefined}\n />,\n );\n }\n}\n\nfunction Chevron(props) {\n const { styles } = props;\n const SItemChevron = Root;\n return sstyled(styles)(<SItemChevron render={ChevronRight} />);\n}\n\nfunction Collapse(props) {\n const { selected } = props;\n return <Root render={CollapseAnimate} visible={selected} interactive />;\n}\n\nconst Item = createComponent(RootItem, {\n Toggle,\n Chevron,\n Collapse,\n});\n\nconst Accordion = createComponent(RootAccordion, {\n Item,\n});\n\nexport default Accordion;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ SItemToggle[disabled] {
14
14
 
15
15
  SItemChevron {
16
16
  transform: rotate(0deg);
17
- transition: transform 250ms ease-out;
17
+ transition: transform calc(var(--intergalactic-duration-accordion, 200) * 1ms) ease-out;
18
18
 
19
19
  &[selected] {
20
20
  transform: rotate(90deg);
@@ -26,22 +26,23 @@ import { Collapse as CollapseAnimate } from '@semcore/animation';
26
26
  import ChevronRight from '@semcore/icon/ChevronRight/m';
27
27
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
28
28
  import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
29
+ import { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';
29
30
 
30
31
  /*__reshadow-styles__:"./style/accordion.shadow.css"*/
31
32
  var style = (
32
33
  /*__reshadow_css_start__*/
33
34
  _sstyled.insert(
34
35
  /*__inner_css_start__*/
35
- ".___SItemToggle_1l3fx_gg_{cursor:pointer;outline:0}.___SItemToggle_1l3fx_gg_.__keyboardFocused_1l3fx_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SItemToggle_1l3fx_gg_.__disabled_1l3fx_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default}.___SItemChevron_1l3fx_gg_{transform:rotate(0deg);transition:transform .25s ease-out}.___SItemChevron_1l3fx_gg_.__selected_1l3fx_gg_{transform:rotate(90deg)}@media (prefers-reduced-motion){.___SItemChevron_1l3fx_gg_{transition:none}}"
36
+ ".___SItemToggle_cxvs8_gg_{cursor:pointer;outline:0}.___SItemToggle_cxvs8_gg_.__keyboardFocused_cxvs8_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SItemToggle_cxvs8_gg_.__disabled_cxvs8_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default}.___SItemChevron_cxvs8_gg_{transform:rotate(0deg);transition:transform calc(var(--intergalactic-duration-accordion, 200)*1ms) ease-out}.___SItemChevron_cxvs8_gg_.__selected_cxvs8_gg_{transform:rotate(90deg)}@media (prefers-reduced-motion){.___SItemChevron_cxvs8_gg_{transition:none}}"
36
37
  /*__inner_css_end__*/
37
- , "1l3fx_gg_")
38
+ , "cxvs8_gg_")
38
39
  /*__reshadow_css_end__*/
39
40
  , {
40
- "__SItemToggle": "___SItemToggle_1l3fx_gg_",
41
- "_keyboardFocused": "__keyboardFocused_1l3fx_gg_",
42
- "_disabled": "__disabled_1l3fx_gg_",
43
- "__SItemChevron": "___SItemChevron_1l3fx_gg_",
44
- "_selected": "__selected_1l3fx_gg_"
41
+ "__SItemToggle": "___SItemToggle_cxvs8_gg_",
42
+ "_keyboardFocused": "__keyboardFocused_cxvs8_gg_",
43
+ "_disabled": "__disabled_cxvs8_gg_",
44
+ "__SItemChevron": "___SItemChevron_cxvs8_gg_",
45
+ "_selected": "__selected_cxvs8_gg_"
45
46
  });
46
47
 
47
48
  var RootAccordion = /*#__PURE__*/function (_Component) {
@@ -116,10 +117,16 @@ _defineProperty(RootAccordion, "displayName", 'Accordion');
116
117
  _defineProperty(RootAccordion, "style", style);
117
118
 
118
119
  _defineProperty(RootAccordion, "defaultProps", {
119
- defaultValue: [],
120
- duration: 350
120
+ defaultValue: []
121
121
  });
122
122
 
123
+ _defineProperty(RootAccordion, "enhance", [cssVariableEnhance({
124
+ variable: '--intergalactic-duration-accordion',
125
+ fallback: '200',
126
+ map: Number.parseInt,
127
+ prop: 'duration'
128
+ })]);
129
+
123
130
  export var RootItem = /*#__PURE__*/function (_Component2) {
124
131
  _inherits(RootItem, _Component2);
125
132
 
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["React","createComponent","Component","sstyled","Root","Box","Collapse","CollapseAnimate","ChevronRight","keyboardFocusEnhance","uniqueIDEnhancement","RootAccordion","newValue","value","asProps","Array","isArray","indexOfNewValue","indexOf","result","push","splice","handlers","selectedValue","duration","selected","includes","$handleInteraction","handleToggleInteraction","Children","style","defaultValue","RootItem","uid","disabled","onClick","undefined","handleClick","id","role","Toggle","e","key","preventDefault","currentTarget","click","styles","SItemToggle","handleKeyDown","Chevron","props","SItemChevron","Item","Accordion"],"sources":["../../src/Accordion.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Collapse as CollapseAnimate } from '@semcore/animation';\nimport ChevronRight from '@semcore/icon/ChevronRight/m';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/accordion.shadow.css';\n\nclass RootAccordion extends Component {\n static displayName = 'Accordion';\n static style = style;\n static defaultProps = {\n defaultValue: [],\n duration: 350,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleToggleInteraction = (newValue) => {\n const { value } = this.asProps;\n\n if (Array.isArray(value)) {\n const indexOfNewValue = value.indexOf(newValue);\n const result = [...value];\n indexOfNewValue === -1 ? result.push(newValue) : result.splice(indexOfNewValue, 1);\n this.handlers.value(result);\n } else {\n this.handlers.value(value === newValue ? null : newValue);\n }\n };\n\n getItemProps({ value }) {\n const { value: selectedValue, duration } = this.asProps;\n const selected = Array.isArray(selectedValue)\n ? selectedValue.includes(value)\n : selectedValue === value;\n return {\n selected,\n duration,\n $handleInteraction: this.handleToggleInteraction,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nexport class RootItem extends Component {\n static displayName = 'Item';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n handleClick = () => {\n const { value, $handleInteraction } = this.asProps;\n\n $handleInteraction(value);\n };\n\n getToggleProps() {\n const { value, uid, selected, disabled } = this.asProps;\n return {\n disabled,\n onClick: disabled ? undefined : this.handleClick,\n id: `igc-${uid}-${value}-toggle`,\n role: 'button',\n 'aria-expanded': selected || undefined,\n 'aria-controls': selected ? `igc-${uid}-${value}-collapse` : undefined,\n };\n }\n\n getCollapseProps() {\n const { selected, uid, duration, value } = this.asProps;\n return {\n selected,\n duration,\n id: `igc-${uid}-${value}-collapse`,\n role: 'region',\n 'aria-labelledby': `igc-${uid}-${value}-toggle`,\n };\n }\n\n getChevronProps() {\n const { selected } = this.asProps;\n return {\n selected,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nclass Toggle extends Component {\n static enhance = [keyboardFocusEnhance()];\n\n handleKeyDown(e) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n e.currentTarget.click();\n }\n }\n\n render() {\n const { styles, disabled } = this.asProps;\n const SItemToggle = Root;\n\n return sstyled(styles)(\n <SItemToggle\n render={Box}\n onKeyDown={this.handleKeyDown}\n aria-disabled={disabled ? 'true' : undefined}\n />,\n );\n }\n}\n\nfunction Chevron(props) {\n const { styles } = props;\n const SItemChevron = Root;\n return sstyled(styles)(<SItemChevron render={ChevronRight} />);\n}\n\nfunction Collapse(props) {\n const { selected } = props;\n return <Root render={CollapseAnimate} visible={selected} interactive />;\n}\n\nconst Item = createComponent(RootItem, {\n Toggle,\n Chevron,\n Collapse,\n});\n\nconst Accordion = createComponent(RootAccordion, {\n Item,\n});\n\nexport default Accordion;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,eAAP,IAA0BC,SAA1B,EAAqCC,OAArC,EAA8CC,IAA9C,QAA0D,eAA1D;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,SAASC,QAAQ,IAAIC,eAArB,QAA4C,oBAA5C;AACA,OAAOC,YAAP,MAAyB,8BAAzB;AACA,OAAOC,oBAAP,MAAiC,kDAAjC;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;;;;;;;;;;;;;;;;;;;IAIMC,a;;;;;;;;;;;;;;;;8EAcsB,UAACC,QAAD,EAAc;MACtC,IAAQC,KAAR,GAAkB,MAAKC,OAAvB,CAAQD,KAAR;;MAEA,IAAIE,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;QACxB,IAAMI,eAAe,GAAGJ,KAAK,CAACK,OAAN,CAAcN,QAAd,CAAxB;;QACA,IAAMO,MAAM,sBAAON,KAAP,CAAZ;;QACAI,eAAe,KAAK,CAAC,CAArB,GAAyBE,MAAM,CAACC,IAAP,CAAYR,QAAZ,CAAzB,GAAiDO,MAAM,CAACE,MAAP,CAAcJ,eAAd,EAA+B,CAA/B,CAAjD;;QACA,MAAKK,QAAL,CAAcT,KAAd,CAAoBM,MAApB;MACD,CALD,MAKO;QACL,MAAKG,QAAL,CAAcT,KAAd,CAAoBA,KAAK,KAAKD,QAAV,GAAqB,IAArB,GAA4BA,QAAhD;MACD;IACF,C;;;;;;;WAjBD,6BAAoB;MAClB,OAAO;QACLC,KAAK,EAAE;MADF,CAAP;IAGD;;;WAeD,6BAAwB;MAAA,IAATA,KAAS,SAATA,KAAS;MACtB,oBAA2C,KAAKC,OAAhD;MAAA,IAAeS,aAAf,iBAAQV,KAAR;MAAA,IAA8BW,QAA9B,iBAA8BA,QAA9B;MACA,IAAMC,QAAQ,GAAGV,KAAK,CAACC,OAAN,CAAcO,aAAd,IACbA,aAAa,CAACG,QAAd,CAAuBb,KAAvB,CADa,GAEbU,aAAa,KAAKV,KAFtB;MAGA,OAAO;QACLY,QAAQ,EAARA,QADK;QAELD,QAAQ,EAARA,QAFK;QAGLG,kBAAkB,EAAE,KAAKC;MAHpB,CAAP;IAKD;;;WAED,kBAAS;MACP,IAAQC,QAAR,GAAqB,KAAKf,OAA1B,CAAQe,QAAR;MACA,oBAAO,oBAAC,QAAD,OAAP;IACD;;;;EA1CyB3B,S;;gBAAtBS,a,iBACiB,W;;gBADjBA,a,WAEWmB,K;;gBAFXnB,a,kBAGkB;EACpBoB,YAAY,EAAE,EADM;EAEpBP,QAAQ,EAAE;AAFU,C;;AA0CxB,WAAaQ,QAAb;EAAA;;EAAA;;EAAA;IAAA;;IAAA;;IAAA;MAAA;IAAA;;IAAA;;IAAA,+DAKgB,YAAM;MAClB,qBAAsC,OAAKlB,OAA3C;MAAA,IAAQD,KAAR,kBAAQA,KAAR;MAAA,IAAec,kBAAf,kBAAeA,kBAAf;MAEAA,kBAAkB,CAACd,KAAD,CAAlB;IACD,CATH;;IAAA;EAAA;;EAAA;IAAA;IAAA,OAWE,0BAAiB;MACf,qBAA2C,KAAKC,OAAhD;MAAA,IAAQD,KAAR,kBAAQA,KAAR;MAAA,IAAeoB,GAAf,kBAAeA,GAAf;MAAA,IAAoBR,QAApB,kBAAoBA,QAApB;MAAA,IAA8BS,QAA9B,kBAA8BA,QAA9B;MACA,OAAO;QACLA,QAAQ,EAARA,QADK;QAELC,OAAO,EAAED,QAAQ,GAAGE,SAAH,GAAe,KAAKC,WAFhC;QAGLC,EAAE,gBAASL,GAAT,cAAgBpB,KAAhB,YAHG;QAIL0B,IAAI,EAAE,QAJD;QAKL,iBAAiBd,QAAQ,IAAIW,SALxB;QAML,iBAAiBX,QAAQ,iBAAUQ,GAAV,cAAiBpB,KAAjB,iBAAoCuB;MANxD,CAAP;IAQD;EArBH;IAAA;IAAA,OAuBE,4BAAmB;MACjB,qBAA2C,KAAKtB,OAAhD;MAAA,IAAQW,QAAR,kBAAQA,QAAR;MAAA,IAAkBQ,GAAlB,kBAAkBA,GAAlB;MAAA,IAAuBT,QAAvB,kBAAuBA,QAAvB;MAAA,IAAiCX,KAAjC,kBAAiCA,KAAjC;MACA,OAAO;QACLY,QAAQ,EAARA,QADK;QAELD,QAAQ,EAARA,QAFK;QAGLc,EAAE,gBAASL,GAAT,cAAgBpB,KAAhB,cAHG;QAIL0B,IAAI,EAAE,QAJD;QAKL,iCAA0BN,GAA1B,cAAiCpB,KAAjC;MALK,CAAP;IAOD;EAhCH;IAAA;IAAA,OAkCE,2BAAkB;MAChB,IAAQY,QAAR,GAAqB,KAAKX,OAA1B,CAAQW,QAAR;MACA,OAAO;QACLA,QAAQ,EAARA;MADK,CAAP;IAGD;EAvCH;IAAA;IAAA,OAyCE,kBAAS;MACP,IAAQI,QAAR,GAAqB,KAAKf,OAA1B,CAAQe,QAAR;MACA,oBAAO,oBAAC,QAAD,OAAP;IACD;EA5CH;;EAAA;AAAA,EAA8B3B,SAA9B;;gBAAa8B,Q,iBACU,M;;gBADVA,Q,WAEIF,K;;gBAFJE,Q,aAGM,CAACtB,mBAAmB,EAApB,C;;IA4Cb8B,M;;;;;;;;;;;;;WAGJ,uBAAcC,CAAd,EAAiB;MACf,QAAQA,CAAC,CAACC,GAAV;QACE,KAAK,OAAL;QACA,KAAK,GAAL;UACED,CAAC,CAACE,cAAF;UACAF,CAAC,CAACG,aAAF,CAAgBC,KAAhB;MAJJ;IAMD;;;WAED,kBAAS;MAAA;MAAA;;MACP,qBAA6B,KAAK/B,OAAlC;MAAA,IAAQgC,MAAR,kBAAQA,MAAR;MAAA,IAAgBZ,QAAhB,kBAAgBA,QAAhB;MACA,IAAMa,WAAW,GAIL1C,GAJZ;MAEA,eAAOF,OAAO,CAAC2C,MAAD,CAAd,eACE,oBAAC,WAAD;QAAA,aAEa,KAAKE,aAFlB;QAAA,iBAGiBd,QAAQ,GAAG,MAAH,GAAYE;MAHrC,WADF;IAOD;;;;EAvBkBlC,S;;gBAAfsC,M,aACa,CAAC/B,oBAAoB,EAArB,C;;AAyBnB,SAASwC,OAAT,CAAiBC,KAAjB,EAAwB;EAAA;EAAA;;EACtB,IAAQJ,MAAR,GAAmBI,KAAnB,CAAQJ,MAAR;EACA,IAAMK,YAAY,GAC2B3C,YAD7C;EACA,eAAOL,OAAO,CAAC2C,MAAD,CAAd,eAAuB,oBAAC,YAAD,wEAAvB;AACD;;AAED,SAASxC,QAAT,CAAkB4C,KAAlB,EAAyB;EAAA;EACvB,IAAQzB,QAAR,GAAqByB,KAArB,CAAQzB,QAAR;EACA,oBAAO,oBAAclB,eAAd;IAAA,WAAwCkB,QAAxC;IAAA;EAAA,UAAP;AACD;;AAED,IAAM2B,IAAI,GAAGnD,eAAe,CAAC+B,QAAD,EAAW;EACrCQ,MAAM,EAANA,MADqC;EAErCS,OAAO,EAAPA,OAFqC;EAGrC3C,QAAQ,EAARA;AAHqC,CAAX,CAA5B;AAMA,IAAM+C,SAAS,GAAGpD,eAAe,CAACU,aAAD,EAAgB;EAC/CyC,IAAI,EAAJA;AAD+C,CAAhB,CAAjC;AAIA,eAAeC,SAAf"}
1
+ {"version":3,"file":"Accordion.js","names":["React","createComponent","Component","sstyled","Root","Box","Collapse","CollapseAnimate","ChevronRight","keyboardFocusEnhance","uniqueIDEnhancement","cssVariableEnhance","RootAccordion","newValue","value","asProps","Array","isArray","indexOfNewValue","indexOf","result","push","splice","handlers","selectedValue","duration","selected","includes","$handleInteraction","handleToggleInteraction","Children","style","defaultValue","variable","fallback","map","Number","parseInt","prop","RootItem","uid","disabled","onClick","undefined","handleClick","id","role","Toggle","e","key","preventDefault","currentTarget","click","styles","SItemToggle","handleKeyDown","Chevron","props","SItemChevron","Item","Accordion"],"sources":["../../src/Accordion.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Collapse as CollapseAnimate } from '@semcore/animation';\nimport ChevronRight from '@semcore/icon/ChevronRight/m';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\n\nimport style from './style/accordion.shadow.css';\n\nclass RootAccordion extends Component {\n static displayName = 'Accordion';\n static style = style;\n static defaultProps = {\n defaultValue: [],\n };\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-accordion',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleToggleInteraction = (newValue) => {\n const { value } = this.asProps;\n\n if (Array.isArray(value)) {\n const indexOfNewValue = value.indexOf(newValue);\n const result = [...value];\n indexOfNewValue === -1 ? result.push(newValue) : result.splice(indexOfNewValue, 1);\n this.handlers.value(result);\n } else {\n this.handlers.value(value === newValue ? null : newValue);\n }\n };\n\n getItemProps({ value }) {\n const { value: selectedValue, duration } = this.asProps;\n const selected = Array.isArray(selectedValue)\n ? selectedValue.includes(value)\n : selectedValue === value;\n return {\n selected,\n duration,\n $handleInteraction: this.handleToggleInteraction,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nexport class RootItem extends Component {\n static displayName = 'Item';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n handleClick = () => {\n const { value, $handleInteraction } = this.asProps;\n\n $handleInteraction(value);\n };\n\n getToggleProps() {\n const { value, uid, selected, disabled } = this.asProps;\n return {\n disabled,\n onClick: disabled ? undefined : this.handleClick,\n id: `igc-${uid}-${value}-toggle`,\n role: 'button',\n 'aria-expanded': selected || undefined,\n 'aria-controls': selected ? `igc-${uid}-${value}-collapse` : undefined,\n };\n }\n\n getCollapseProps() {\n const { selected, uid, duration, value } = this.asProps;\n return {\n selected,\n duration,\n id: `igc-${uid}-${value}-collapse`,\n role: 'region',\n 'aria-labelledby': `igc-${uid}-${value}-toggle`,\n };\n }\n\n getChevronProps() {\n const { selected } = this.asProps;\n return {\n selected,\n };\n }\n\n render() {\n const { Children } = this.asProps;\n return <Children />;\n }\n}\n\nclass Toggle extends Component {\n static enhance = [keyboardFocusEnhance()];\n\n handleKeyDown(e) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n e.currentTarget.click();\n }\n }\n\n render() {\n const { styles, disabled } = this.asProps;\n const SItemToggle = Root;\n\n return sstyled(styles)(\n <SItemToggle\n render={Box}\n onKeyDown={this.handleKeyDown}\n aria-disabled={disabled ? 'true' : undefined}\n />,\n );\n }\n}\n\nfunction Chevron(props) {\n const { styles } = props;\n const SItemChevron = Root;\n return sstyled(styles)(<SItemChevron render={ChevronRight} />);\n}\n\nfunction Collapse(props) {\n const { selected } = props;\n return <Root render={CollapseAnimate} visible={selected} interactive />;\n}\n\nconst Item = createComponent(RootItem, {\n Toggle,\n Chevron,\n Collapse,\n});\n\nconst Accordion = createComponent(RootAccordion, {\n Item,\n});\n\nexport default Accordion;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ SItemToggle[disabled] {
14
14
 
15
15
  SItemChevron {
16
16
  transform: rotate(0deg);
17
- transition: transform 250ms ease-out;
17
+ transition: transform calc(var(--intergalactic-duration-accordion, 200) * 1ms) ease-out;
18
18
 
19
19
  &[selected] {
20
20
  transform: rotate(90deg);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/accordion",
3
3
  "description": "Semrush Accordion Component",
4
- "version": "4.2.15",
4
+ "version": "4.3.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",