npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kinxcdn/commerce-player

v1.7.2

Published

React 기반 미디버스 커머스 플레이어 컴포넌트입니다.

Readme

midibus commerce 플레이어 컴포넌트

React 기반 미디버스 커머스 플레이어 컴포넌트입니다.

Installation

npm i @kinxcdn/commerce-player

# 또는

yarn add @kinxcdn/commerce-player

# alpha 버전 확인이 필요한 경우
npm i @kinxcdn/commerce-player@alpha

Usage

ShoppingPlayer

숏폼 1개 또는 컬렉션 데이터를 받아 커머스 플레이어 UI를 렌더링합니다. 컬렉션 모드에서는 컬렉션 내부 숏폼을 세로로 탐색할 수 있고, PLATFORM, GRID, VERTICAL, HORIZONTAL 레이아웃의 상품 캐러셀 UI를 함께 렌더링합니다.

ShoppingPlayer는 React 컴포넌트와 CDN Web Component(mc-shopping-player)로 사용할 수 있습니다.

Props

| Prop | 타입 | 기본값 | 설명 | | ------------ | ------------ | ------- | ------------------------------------------------------- | | shortform | Shortform | — | 단일 숏폼 플레이어로 렌더링할 데이터 | | collection | Collection | — | 컬렉션 플레이어로 렌더링할 데이터 | | isMobile | boolean | false | 모바일 플레이어 UI 렌더링 여부 | | isPreview | boolean | true | 미리보기 모드 여부. true일 때 통계 호출을 보내지 않음 |

shortformcollection 중 하나를 전달합니다. collection 전달 시 collection.contents의 첫 번째 숏폼부터 재생 대상으로 사용합니다.

지원 레이아웃

| 값 | 레이아웃 | 설명 | | --- | ------------ | --------------------------------------- | | 1 | PLATFORM | 플랫폼형 플레이어와 우측 상품/정보 패널 | | 2 | GRID | 플레이어와 2행 상품 그리드 캐러셀 | | 3 | VERTICAL | 플레이어와 세로 상품 캐러셀 | | 4 | HORIZONTAL | 플레이어와 가로 상품 캐러셀 |

사용 예시

import { ShoppingPlayer } from "@kinxcdn/commerce-player";

<ShoppingPlayer shortform={shortform} />;

<ShoppingPlayer collection={collection} />;

<ShoppingPlayer collection={collection} isMobile />;
  • JS (Web Component)
<script src="https://unpkg.com/@kinxcdn/commerce-player/dist/commerce-player.min.js"></script>

<mc-shopping-player
  collection='{"count":1,"contents":[...],"player":{"layout":2,"shoppingPlayer":{"controlbar":true,"autopass":false,"comment":false}}}'
></mc-shopping-player>

WidgetPlayer

Props

| Prop | 타입 | 기본값 | 설명 | | --------------- | --------- | -------------------- | -------------------------------------------------------------- | | collectionId | string | — | 불러올 미디어 컬렉션의 고유 ID | | isPreview | string | false | 프리뷰 모드 렌더링 여부 (true/false) | | iconForm | string | INSTA | YOUTUBE | 아이콘 형태 | | iconShape | string | MANY | ONE | 아이콘 레이아웃 | | iconSize | string | 120 | 아이콘 크기(px) | | borderLine | string | ALWAYS | 아이콘 테두리 유무 | | exposeTitle | string | true | 컬렉션 제목 노출 여부 (true/false) | | player | string | POPUP | INLINE | 위젯 플레이어 유형 | | rounded | string | true | 아이콘 모서리 둥글기 여부 (true/false) | | titlePosition | string | BOTTOM | TOP | 제목 위치 (BOTTOM/TOP) | | hoverPlay | boolean | false | 유튜브형 재생 아이콘 사용 시 마우스 오버 재생 기능 활성화 여부 |


사용 예시

  • React
import WidgetPlayer from "@kinxcdn/commerce-player";

<WidgetPlayer
  collectionId="abc123"
  iconForm="YOUTUBE"
  iconShape="MANY"
  iconSize={80}
  borderLine="ALWAYS"
  exposeTitle={true}
  player="POPUP"
  rounded={false}
  titlePosition="inner"
/>;

LiveWidget

Props

| Prop | 타입 | 기본값 | 설명 | | ----------------------- | --------------------------------------------------------------------------------------- | ------- | --------------------------------------- | | userId | string | — | 라이브 목록을 불러올 미디버스 사용자 ID | | liveType | "upcoming" | "past" | — | 예정 라이브/지난 라이브 구분 값 | | widgetType | "ONE" | "MULTIPLE" | — | 카드 표시 형태 (단일/여러개) | | videoAlign | "left" | "right" | "only" | — | 썸네일/버튼 정렬 및 표시 방식 | | aspectRatio | "9/16" | "1/1" | — | 썸네일 비율 | | playback | "autoplay" | "hover" | — | 재생 동작 모드 | | title | string | — | 리스트 타이틀 문구 | | titleFontSize | number | — | 타이틀 폰트 크기(px) | | isPreview | boolean | false | 프리뷰 모드 렌더링 여부 | | includeRepresentative | boolean | — | 대표 라이브 포함 여부 | | theme | { backgroundColor?, textColor? } | — | 컴포넌트 색상 테마 | | layout | { paddingTop?, paddingBottom?, paddingLeft?, paddingRight? } | — | 바깥 패딩 설정 | | card | { layout?, visibleCount?, gap?, sliderPerView?, gridColumns?, width?, borderRadius? } | — | 카드/슬라이더 레이아웃 설정 | | sorting (past 전용) | "latest" | "views" | "likes" | — | 지난 라이브 정렬 기준 |


사용 예시

  • React
import { LiveWidget } from "@kinxcdn/commerce-player";

<LiveWidget
  userId="3"
  liveType="upcoming"
  widgetType="MULTIPLE"
  title="예정된 라이브"
  aspectRatio="1/1"
  includeRepresentative={true}
  theme={{ backgroundColor: "#fff", textColor: "#111" }}
  layout={{ paddingTop: 16, paddingBottom: 16 }}
  card={{
    layout: "scroll",
    visibleCount: 8,
    gridColumns: 2,
    gap: 12,
    borderRadius: 12,
  }}
/>;
  • JS (Web Component)
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0, minimum-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>LiveWidget 예제</title>
    <!-- CDN에서 commerce-player 로더 불러오기 -->
    <script src="https://unpkg.com/@kinxcdn/commerce-player/dist/commerce-player.min.js"></script>
  </head>
  <body>
    <div style="height: 600px; width: 100%">
      <mc-live-widget
        userId="3"
        liveType="upcoming"
        widgetType="MULTIPLE"
        title="예정된 라이브"
        aspectRatio="1/1"
        includeRepresentative="true"
        theme='{"backgroundColor":"#fff","textColor":"#111"}'
        layout='{"paddingTop":16,"paddingBottom":16}'
        card='{"layout":"scroll","visibleCount":8,"gridColumns":2,"gap":12,"borderRadius":12}'
      ></mc-live-widget>
    </div>
  </body>
</html>
  • JS
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0, minimum-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>WidgetPlayer 예제</title>
    <!-- CDN에서 commerce-player 로더 불러오기 -->
    <script src="https://unpkg.com/@kinxcdn/commerce-player/dist/commerce-player.min.js"></script>
  </head>
  <body>
    <div style="height: 600px; width: 100%;">
      <!-- 최소 설정: collectionId만 -->
      <mc-widget-player collectionId="6j7d3T4OG"></mc-widget-player>

      <!-- 모든 옵션 설정 예시 -->
      <mc-widget-player
        collectionId="6j7d3T4OG"
        isPreview="true"
        iconForm="YOUTUBE"
        iconShape="ONE"
        iconSize="80"
        borderLine="NIGHT"
        exposeTitle="false"
        player="INLINE"
        rounded="false"
        titlePosition="TOP"
      ></mc-widget-player>
    </div>
  </body>
</html>