From d4f3f4b75b2c94c47b18242f131ac7050eb54cfc Mon Sep 17 00:00:00 2001 From: Christian Pillsbury Date: Fri, 10 Oct 2025 12:59:26 -0700 Subject: [PATCH] fix: skin syntax usage cleanup (#48) --- examples/react-demo/package.json | 1 + examples/react-demo/src/App.tsx | 6 +- .../src/skins/frosted/MediaSkinDefault.tsx | 136 +++++++++++++ .../react-demo/src/skins/frosted/styles.ts | 171 +++++++++++++++++ .../react-demo/src/skins/frosted/types.ts | 32 ++++ .../src/skins/toasted/MediaSkinToasted.tsx | 75 ++++++++ .../react-demo/src/skins/toasted/index.ts | 1 + .../react-demo/src/skins/toasted/styles.ts | 121 ++++++++++++ .../react-demo/src/skins/toasted/types.ts | 27 +++ .../components/media-current-time-display.ts | 1 - .../html/html/src/components/media-tooltip.ts | 14 +- packages/html/html/src/index.ts | 6 +- packages/html/html/src/media-container.ts | 15 +- .../html/html/src/skins/media-skin-default.ts | 17 +- .../html/html/src/utils/component-factory.ts | 9 +- .../react/src/components/MediaContainer.tsx | 6 +- .../react/react/src/components/Tooltip.tsx | 2 +- packages/react/react/src/index.ts | 3 +- .../src/skins/default/MediaSkinDefault.tsx | 33 ++-- .../react/src/skins/default/styles.module.css | 180 ------------------ .../react/react/src/skins/default/styles.ts | 28 ++- .../react/react/src/skins/default/types.ts | 13 +- .../src/skins/toasted/MediaSkinToasted.tsx | 16 +- .../react/react/src/skins/toasted/styles.ts | 22 ++- .../react/react/src/skins/toasted/types.ts | 7 +- pnpm-lock.yaml | 3 + 26 files changed, 678 insertions(+), 267 deletions(-) create mode 100644 examples/react-demo/src/skins/frosted/MediaSkinDefault.tsx create mode 100644 examples/react-demo/src/skins/frosted/styles.ts create mode 100644 examples/react-demo/src/skins/frosted/types.ts create mode 100644 examples/react-demo/src/skins/toasted/MediaSkinToasted.tsx create mode 100644 examples/react-demo/src/skins/toasted/index.ts create mode 100644 examples/react-demo/src/skins/toasted/styles.ts create mode 100644 examples/react-demo/src/skins/toasted/types.ts delete mode 100644 packages/react/react/src/skins/default/styles.module.css diff --git a/examples/react-demo/package.json b/examples/react-demo/package.json index 643122a9..fad175f5 100644 --- a/examples/react-demo/package.json +++ b/examples/react-demo/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@vjs-10/react": "workspace:*", + "@vjs-10/react-icons": "workspace:*", "react": "^18.0.0", "react-dom": "^18.0.0", "tailwindcss": "^4.1.13" diff --git a/examples/react-demo/src/App.tsx b/examples/react-demo/src/App.tsx index 5f5c7064..6e11a9b2 100644 --- a/examples/react-demo/src/App.tsx +++ b/examples/react-demo/src/App.tsx @@ -1,9 +1,13 @@ import type { ChangeEventHandler } from 'react'; import { MediaProvider, MediaSkinDefault, MediaSkinToasted, Video } from '@vjs-10/react'; - +// NOTE: Commented out imports are for testing locally/externally defined skins. +// import { MediaProvider, Video } from '@vjs-10/react'; import { useCallback, useMemo, useState } from 'react'; +// import MediaSkinDefault from './skins/frosted/MediaSkinDefault'; +// import MediaSkinToasted from './skins/toasted/MediaSkinToasted'; + import './globals.css'; const skins = [ diff --git a/examples/react-demo/src/skins/frosted/MediaSkinDefault.tsx b/examples/react-demo/src/skins/frosted/MediaSkinDefault.tsx new file mode 100644 index 00000000..d1c70265 --- /dev/null +++ b/examples/react-demo/src/skins/frosted/MediaSkinDefault.tsx @@ -0,0 +1,136 @@ +import type { PropsWithChildren } from 'react'; + +import { + CurrentTimeDisplay, + DurationDisplay, + FullscreenButton, + MediaContainer, + MuteButton, + PlayButton, + Popover, + TimeSlider, + Tooltip, + VolumeSlider, +} from '@vjs-10/react'; + +import { + FullscreenEnterIcon, + FullscreenExitIcon, + PauseIcon, + PlayIcon, + VolumeHighIcon, + VolumeLowIcon, + VolumeOffIcon, +} from '@vjs-10/react-icons'; + +import styles from './styles'; + +type SkinProps = PropsWithChildren<{ + className?: string; +}>; + +export default function MediaSkinDefault({ children, className = '' }: SkinProps): JSX.Element { + return ( + + {children} + + {/* Background gradient to help with controls contrast. */} +