@popmenu/common-ui 0.19.0 → 0.19.4

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.
@@ -1,4 +1,10 @@
1
+ declare type AudioPlayerClasses = 'root' | 'playbackToggle' | 'volumeToggle' | 'volumeSlider' | 'playbackSlider' | 'playbackText' | 'lengthText';
1
2
  export interface AudioPlayerProps {
2
3
  /** The URL of the audio to embed. */
3
4
  src?: string;
5
+ /** style classes */
6
+ classes?: {
7
+ [Key in AudioPlayerClasses]?: string;
8
+ };
4
9
  }
10
+ export {};
package/build/index.es.js CHANGED
@@ -199,42 +199,6 @@ function SvgVolumeUp(props) {
199
199
  })));
200
200
  }
201
201
 
202
- var useIconStyles = makeStyles(function (_a) {
203
- var spacing = _a.spacing, palette = _a.palette;
204
- var getFontSize = function (_a) {
205
- var size = _a.size;
206
- var sizes = {
207
- inherit: 'inherit',
208
- small: spacing(1.5),
209
- medium: spacing(2),
210
- large: spacing(2.5),
211
- 'extra-large': spacing(3),
212
- };
213
- return size ? sizes[size] : 'inherit';
214
- };
215
- var getColor = function (props) {
216
- var semanticColors = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];
217
- var value = 'inherit';
218
- if (props.color) {
219
- if (semanticColors.includes(props.color.split('.')[0])) {
220
- var _a = props.color.split('.'), color = _a[0], _b = _a[1], variant = _b === void 0 ? 'main' : _b;
221
- value = palette[color][variant];
222
- }
223
- else if (props.color.search(/^(rgb|hsla|#)/) !== -1) {
224
- value = props.color;
225
- }
226
- }
227
- return value;
228
- };
229
- return {
230
- root: {
231
- color: getColor,
232
- fontSize: getFontSize,
233
- strokeWidth: '1.3px',
234
- },
235
- };
236
- });
237
-
238
202
  var classnames = {exports: {}};
239
203
 
240
204
  /*!
@@ -295,6 +259,42 @@ var classnames = {exports: {}};
295
259
 
296
260
  var classNames = classnames.exports;
297
261
 
262
+ var useIconStyles = makeStyles(function (_a) {
263
+ var spacing = _a.spacing, palette = _a.palette;
264
+ var getFontSize = function (_a) {
265
+ var size = _a.size;
266
+ var sizes = {
267
+ inherit: 'inherit',
268
+ small: spacing(1.5),
269
+ medium: spacing(2),
270
+ large: spacing(2.5),
271
+ 'extra-large': spacing(3),
272
+ };
273
+ return size ? sizes[size] : 'inherit';
274
+ };
275
+ var getColor = function (props) {
276
+ var semanticColors = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];
277
+ var value = 'inherit';
278
+ if (props.color) {
279
+ if (semanticColors.includes(props.color.split('.')[0])) {
280
+ var _a = props.color.split('.'), color = _a[0], _b = _a[1], variant = _b === void 0 ? 'main' : _b;
281
+ value = palette[color][variant];
282
+ }
283
+ else if (props.color.search(/^(rgb|hsla|#)/) !== -1) {
284
+ value = props.color;
285
+ }
286
+ }
287
+ return value;
288
+ };
289
+ return {
290
+ root: {
291
+ color: getColor,
292
+ fontSize: getFontSize,
293
+ strokeWidth: '1.3px',
294
+ },
295
+ };
296
+ });
297
+
298
298
  var iconStaticClassName = 'pop-icon';
299
299
  var Icon = function (props) {
300
300
  var icon = props.icon, className = props.className, restProps = __rest(props, ["icon", "className"]);
@@ -566,12 +566,12 @@ var setupAudioRef = function (config) { return function () {
566
566
 
567
567
  var AudioPlayer = function (props) {
568
568
  var _a, _b, _c, _d, _f;
569
- var src = props.src;
569
+ var src = props.src, _g = props.classes, classes = _g === void 0 ? {} : _g;
570
570
  var volumeRef = useRef(null);
571
571
  var audioRef = useRef(null);
572
572
  var spacing = useTheme().spacing;
573
- var _g = useState(false), disableRipple = _g[0], setDisableRipple = _g[1];
574
- var _h = useReducer(audioPlayerReducer, __assign(__assign({}, initialAudioPlayerState), { context: __assign(__assign({}, initialAudioPlayerState.context), { audioRef: audioRef }) })), state = _h[0], send = _h[1];
573
+ var _h = useState(false), disableRipple = _h[0], setDisableRipple = _h[1];
574
+ var _j = useReducer(audioPlayerReducer, __assign(__assign({}, initialAudioPlayerState), { context: __assign(__assign({}, initialAudioPlayerState.context), { audioRef: audioRef }) })), state = _j[0], send = _j[1];
575
575
  useEffect(setupAudioRef({ audioRef: audioRef, send: send }), [audioRef]);
576
576
  var PlaybackIcon = state.playback !== PLAYBACK_STATES.PAUSED ? SvgPause : SvgPlay;
577
577
  var VolumeIcon = useMemo(function () { return useVolumeIcon(state); }, [state.context.volume, (_a = state.context.audioRef.current) === null || _a === void 0 ? void 0 : _a.muted]);
@@ -580,14 +580,14 @@ var AudioPlayer = function (props) {
580
580
  var toggleMute = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_MUTE }); };
581
581
  var setTime = function (_e, time) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.SET_TIME, context: { time: time } }); };
582
582
  var setVolume = function (_e, volume) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.VOLUME_CHANGE, context: { volume: volume } }); };
583
- return (React__default.createElement(Box, { display: "flex", alignItems: "center", gridGap: spacing(1) },
583
+ return (React__default.createElement(Box, { display: "flex", alignItems: "center", gridGap: spacing(1), className: classNames([classes.root]) },
584
584
  React__default.createElement("audio", { ref: audioRef, src: src }),
585
585
  React__default.createElement(Box, null,
586
- React__default.createElement(IconButton, { "aria-label": state.context.playbackButtonLabel, disabled: state.playback === PLAYBACK_STATES.NONE, onClick: togglePlayback },
586
+ React__default.createElement(IconButton, { classes: { root: classes.playbackToggle }, "aria-label": state.context.playbackButtonLabel, disabled: state.playback === PLAYBACK_STATES.NONE, onClick: togglePlayback },
587
587
  React__default.createElement(Icon, { icon: PlaybackIcon })),
588
- React__default.createElement(IconButton, { "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple },
588
+ React__default.createElement(IconButton, { classes: { root: classes.volumeToggle }, "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple },
589
589
  React__default.createElement(Icon, { icon: VolumeIcon }),
590
- React__default.createElement(Popper, { onClick: function (e) { return e.stopPropagation(); }, onMouseEnter: function () { return setDisableRipple(true); }, onMouseLeave: function () { return setDisableRipple(false); }, open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: function () { return volumeRef.current; }, transition: true, placement: "top" }, function (_a) {
590
+ React__default.createElement(Popper, { onClick: function (e) { return e.stopPropagation(); }, onMouseEnter: function () { return setDisableRipple(true); }, onMouseLeave: function () { return setDisableRipple(false); }, open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: function () { return volumeRef.current; }, transition: true, placement: "top", className: classNames([classes.volumeSlider]) }, function (_a) {
591
591
  var TransitionProps = _a.TransitionProps;
592
592
  return (React__default.createElement(Grow, __assign({}, TransitionProps),
593
593
  React__default.createElement(Paper, { elevation: 1 },
@@ -596,10 +596,10 @@ var AudioPlayer = function (props) {
596
596
  }))),
597
597
  React__default.createElement(Box, { display: "flex", flexGrow: 1, alignItems: "center", gridGap: spacing(1) },
598
598
  React__default.createElement(Box, { flexBasis: 60, flexShrink: 0 },
599
- React__default.createElement(Typography, null, formatTime(((_b = state.context.audioRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0))),
600
- React__default.createElement(Slider, { color: "secondary", value: ((_c = state.context.audioRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) || 0, max: ((_d = state.context.audioRef.current) === null || _d === void 0 ? void 0 : _d.duration) || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE }),
599
+ React__default.createElement(Typography, { classes: { root: classes.playbackText } }, formatTime(((_b = state.context.audioRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0))),
600
+ React__default.createElement(Slider, { classes: { root: classes.playbackSlider }, color: "secondary", value: ((_c = state.context.audioRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) || 0, max: ((_d = state.context.audioRef.current) === null || _d === void 0 ? void 0 : _d.duration) || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE }),
601
601
  React__default.createElement(Box, { flexBasis: 60, flexShrink: 0, textAlign: "end" },
602
- React__default.createElement(Typography, null, formatTime(((_f = state.context.audioRef.current) === null || _f === void 0 ? void 0 : _f.duration) || 0))))));
602
+ React__default.createElement(Typography, { classes: { root: classes.lengthText } }, formatTime(((_f = state.context.audioRef.current) === null || _f === void 0 ? void 0 : _f.duration) || 0))))));
603
603
  };
604
604
 
605
605
  var LoadingStatus;