@primer/react
Version:
An implementation of GitHub's Primer Design System using React
29 lines (22 loc) • 1.51 kB
JavaScript
;
var React = require('react');
var _VisuallyHidden = require('../../_VisuallyHidden.js');
var Chord = require('./Chord.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefault(React);
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
const splitSequence = sequence => sequence.split(' ');
const Sequence = ({
keys,
...chordProps
}) => splitSequence(keys).map((c, i) => /*#__PURE__*/React__default.default.createElement(React.Fragment, {
key: i
},
// Since we audibly separate individual keys in chord with space, we need some other separator for chords in a sequence
i > 0 && /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement(_VisuallyHidden, null, "then"), ' '), /*#__PURE__*/React__default.default.createElement(Chord.Chord, _extends({
keys: c
}, chordProps))));
/** Plain string version of `Sequence` for use in `aria` string attributes. */
const accessibleSequenceString = (sequence, isMacOS) => splitSequence(sequence).map(chord => Chord.accessibleChordString(chord, isMacOS)).join(' then ');
exports.Sequence = Sequence;
exports.accessibleSequenceString = accessibleSequenceString;