@weing-dev/ui-kit-primitive 0.1.2 → 0.2.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.
Files changed (91) hide show
  1. package/README.md +9 -0
  2. package/dist/components/Accordion/Accordion.d.ts +3 -3
  3. package/dist/components/Avatar/Avatar.d.ts +2 -2
  4. package/dist/components/Badge/Badge.d.ts +2 -2
  5. package/dist/components/Breadcrumb/Breadcrumb.d.ts +5 -5
  6. package/dist/components/Button/Button.d.ts +4 -4
  7. package/dist/components/Button/button.augment.d.ts +17 -0
  8. package/dist/components/Calendar/Calendar.d.ts +6 -6
  9. package/dist/components/Cascader/Cascader.d.ts +4 -4
  10. package/dist/components/Chips/Chips.d.ts +2 -2
  11. package/dist/components/Comment/Comment.d.ts +2 -2
  12. package/dist/components/Editor/Editor.context.d.ts +2 -0
  13. package/dist/components/Editor/Editor.d.ts +17 -1
  14. package/dist/components/Editor/constants/editor.constants.d.ts +73 -24
  15. package/dist/components/Form/CheckBox/CheckBox.d.ts +4 -4
  16. package/dist/components/Form/Dropdown/Dropdown.d.ts +4 -4
  17. package/dist/components/Form/OTPInput/OTPInput.d.ts +2 -2
  18. package/dist/components/Form/Radio/Radio.d.ts +4 -4
  19. package/dist/components/Form/Switch/Switch.d.ts +3 -3
  20. package/dist/components/Form/TextArea/TextArea.d.ts +6 -6
  21. package/dist/components/Form/TextInput/TextInput.d.ts +5 -5
  22. package/dist/components/GlobalStyle/GlobalStyle.d.ts +2 -0
  23. package/dist/components/HelperText/HelperText.d.ts +3 -2
  24. package/dist/components/Icon/Icon.constant.d.ts +6 -0
  25. package/dist/components/Icon/Icon.d.ts +12 -9
  26. package/dist/components/Icon/context/icon.context.d.ts +5 -0
  27. package/dist/components/Icon/context/icon.provider.d.ts +8 -0
  28. package/dist/components/Icon/context/icon.store.d.ts +16 -0
  29. package/dist/components/Icon/context/index.d.ts +3 -0
  30. package/dist/components/Icon/icon.augment.d.ts +17 -0
  31. package/dist/components/Icons/BackButton.d.ts +3 -0
  32. package/dist/components/Icons/FullScreen.d.ts +3 -0
  33. package/dist/components/Icons/FullScreenClose.d.ts +3 -0
  34. package/dist/components/Icons/Pause.d.ts +3 -0
  35. package/dist/components/Icons/Play.d.ts +3 -0
  36. package/dist/components/Icons/Share.d.ts +3 -0
  37. package/dist/components/Icons/VolumeOff.d.ts +3 -0
  38. package/dist/components/Icons/VolumeUp.d.ts +3 -0
  39. package/dist/components/Icons/index.d.ts +8 -0
  40. package/dist/components/LNB/LNB.d.ts +4 -4
  41. package/dist/components/Label/Label.d.ts +2 -2
  42. package/dist/components/List/List.d.ts +3 -3
  43. package/dist/components/Pagination/Pagination.d.ts +5 -5
  44. package/dist/components/Tab/Tab.d.ts +5 -5
  45. package/dist/components/Table/Table.d.ts +6 -6
  46. package/dist/components/TimeInput/TimeInput.d.ts +8 -8
  47. package/dist/components/VideoPlayer/VideoPlayer.d.ts +118 -0
  48. package/dist/components/VideoPlayer/components/Error/Error.d.ts +18 -0
  49. package/dist/components/VideoPlayer/components/Error/index.d.ts +1 -0
  50. package/dist/components/VideoPlayer/components/Frame/Frame.d.ts +34 -0
  51. package/dist/components/VideoPlayer/components/Frame/index.d.ts +2 -0
  52. package/dist/components/VideoPlayer/components/Loading/Loading.d.ts +12 -0
  53. package/dist/components/VideoPlayer/components/Loading/index.d.ts +1 -0
  54. package/dist/components/VideoPlayer/components/VideoOverlay/VideoOverlay.d.ts +37 -0
  55. package/dist/components/VideoPlayer/components/VideoOverlay/index.d.ts +2 -0
  56. package/dist/components/VideoPlayer/components/Widgets/Button/Button.d.ts +11 -0
  57. package/dist/components/VideoPlayer/components/Widgets/Button/index.d.ts +2 -0
  58. package/dist/components/VideoPlayer/components/Widgets/ProgressBar/ProgressBar.d.ts +18 -0
  59. package/dist/components/VideoPlayer/components/Widgets/ProgressBar/index.d.ts +2 -0
  60. package/dist/components/VideoPlayer/components/Widgets/SpeedControl/SpeedControl.d.ts +22 -0
  61. package/dist/components/VideoPlayer/components/Widgets/SpeedControl/index.d.ts +1 -0
  62. package/dist/components/VideoPlayer/components/Widgets/Time/Time.d.ts +15 -0
  63. package/dist/components/VideoPlayer/components/Widgets/Time/index.d.ts +2 -0
  64. package/dist/components/VideoPlayer/components/Widgets/VolumeControl/VolumeControl.d.ts +34 -0
  65. package/dist/components/VideoPlayer/components/Widgets/VolumeControl/index.d.ts +2 -0
  66. package/dist/components/VideoPlayer/components/Widgets/index.d.ts +30 -0
  67. package/dist/components/VideoPlayer/components/index.d.ts +6 -0
  68. package/dist/components/VideoPlayer/context/index.d.ts +3 -0
  69. package/dist/components/VideoPlayer/context/videoPlayer.context.d.ts +18 -0
  70. package/dist/components/VideoPlayer/context/videoPlayer.provider.d.ts +8 -0
  71. package/dist/components/VideoPlayer/context/videoPlayer.store.d.ts +45 -0
  72. package/dist/components/VideoPlayer/index.d.ts +4 -0
  73. package/dist/components/VideoPlayer/videoPlayer.constants.d.ts +48 -0
  74. package/dist/entry/augmentations.d.ts +4 -0
  75. package/dist/entry/components.d.ts +89 -0
  76. package/dist/entry/types.d.ts +36 -0
  77. package/dist/{index-BL3MWQXq.js → index-CsNmTnCb.js} +29 -38
  78. package/dist/index.css +2 -2
  79. package/dist/index.d.ts +3 -47
  80. package/dist/index.js +14270 -12912
  81. package/dist/index.umd.cjs +43 -15
  82. package/dist/static/icon/back_button.svg +8 -0
  83. package/dist/static/icon/full_screen.svg +3 -0
  84. package/dist/static/icon/full_screen_close.svg +1 -0
  85. package/dist/static/icon/pause.svg +1 -0
  86. package/dist/static/icon/play.svg +3 -0
  87. package/dist/static/icon/share.svg +1 -0
  88. package/dist/static/icon/volume_off.svg +1 -0
  89. package/dist/static/icon/volume_up.svg +1 -0
  90. package/dist/utils/common.utill.d.ts +1 -1
  91. package/package.json +20 -19
@@ -0,0 +1,16 @@
1
+ import { JSX } from 'react';
2
+ import * as DefaultIcons from "../../Icons";
3
+ export type IconComponent = (props: React.SVGProps<SVGSVGElement>) => JSX.Element | React.ReactNode;
4
+ export type IconRegistry = Partial<Record<string, IconComponent>>;
5
+ export type DefaultIconName = keyof typeof DefaultIcons;
6
+ export type IconStoreState = {
7
+ icons: IconRegistry;
8
+ };
9
+ export type IconStoreActions = {
10
+ registerIcons: (icons: IconRegistry) => void;
11
+ };
12
+ export type IconStore = IconStoreState & IconStoreActions;
13
+ export type IconStoreConfig = {
14
+ icons?: IconRegistry;
15
+ };
16
+ export declare const createIconStore: (config?: IconStoreConfig) => import('zustand').UseBoundStore<import('zustand').StoreApi<IconStore>>;
@@ -0,0 +1,3 @@
1
+ export { IconStoreContext, useIconStore, type IconStoreApi, } from './icon.context';
2
+ export { default as IconProvider, type IconProviderProps } from './icon.provider';
3
+ export { createIconStore, type IconStore, type IconStoreState, type IconStoreActions, type IconStoreConfig, type DefaultIconName, type IconComponent, type IconRegistry, } from './icon.store';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `@weing-dev/ui-kit-primitive` 모듈 확장 포인트 (Icon name).
3
+ *
4
+ * 소비자 프로젝트에서 아래처럼 확장하면 `Icon`/`Button.Icon`의 `name` 자동완성에 반영됩니다.
5
+ *
6
+ * declare module "@weing-dev/ui-kit-primitive" {
7
+ * interface IconNameOverrides {
8
+ * Sigma: true;
9
+ * }
10
+ * }
11
+ */
12
+ declare module "@weing-dev/ui-kit-primitive" {
13
+ interface IconNameOverrides {
14
+ }
15
+ }
16
+ export type __UiKitIconAugmentMarker = true;
17
+ export {};
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgBackButton: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgBackButton;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgFullScreen: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgFullScreen;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgFullScreenClose: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgFullScreenClose;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgPause: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgPause;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgPlay: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgPlay;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgShare: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgShare;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgVolumeOff: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgVolumeOff;
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+ declare const SvgVolumeUp: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default SvgVolumeUp;
@@ -8,6 +8,7 @@ export { default as ArrowUp } from './ArrowUp';
8
8
  export { default as ArrowDropDown } from './ArrowDropDown';
9
9
  export { default as ArticleOutlined } from './ArticleOutlined';
10
10
  export { default as AttachFile } from './AttachFile';
11
+ export { default as BackButton } from './BackButton';
11
12
  export { default as CalendarMonth } from './CalendarMonth';
12
13
  export { default as CalendarToday } from './CalendarToday';
13
14
  export { default as CancleFilled } from './CancleFilled';
@@ -47,6 +48,8 @@ export { default as FileUpload } from './FileUpload';
47
48
  export { default as FilecheckInactive } from './FilecheckInactive';
48
49
  export { default as FileDownloadDoneFilled } from './FileDownloadDoneFilled';
49
50
  export { default as FileDownloadOutlined } from './FileDownloadOutlined';
51
+ export { default as FullScreen } from './FullScreen';
52
+ export { default as FullScreenClose } from './FullScreenClose';
50
53
  export { default as GoBefore } from './GoBefore';
51
54
  export { default as GoNext } from './GoNext';
52
55
  export { default as HamburgerMenu } from './HamburgerMenu';
@@ -74,6 +77,7 @@ export { default as OrderApprove } from './OrderApprove';
74
77
  export { default as OrderInactive } from './OrderInactive';
75
78
  export { default as OrderPlay } from './OrderPlay';
76
79
  export { default as Outward } from './Outward';
80
+ export { default as Pause } from './Pause';
77
81
  export { default as PayApprove } from './PayApprove';
78
82
  export { default as PayInactive } from './PayInactive';
79
83
  export { default as Payment } from './Payment';
@@ -81,6 +85,7 @@ export { default as PersonAddAlt } from './PersonAddAlt';
81
85
  export { default as Personcard } from './Personcard';
82
86
  export { default as PersonFilled } from './PersonFilled';
83
87
  export { default as PersonOutline } from './PersonOutline';
88
+ export { default as Play } from './Play';
84
89
  export { default as PrintInactive } from './PrintInactive';
85
90
  export { default as PrintPlay } from './PrintPlay';
86
91
  export { default as Product } from './Product';
@@ -89,6 +94,7 @@ export { default as Search } from './Search';
89
94
  export { default as Search2 } from './Search2';
90
95
  export { default as SettingFilled } from './SettingFilled';
91
96
  export { default as Settings } from './Settings';
97
+ export { default as Share } from './Share';
92
98
  export { default as ShippingDone } from './ShippingDone';
93
99
  export { default as SupportAgent } from './SupportAgent';
94
100
  export { default as SwapVert } from './SwapVert';
@@ -96,6 +102,8 @@ export { default as Task } from './Task';
96
102
  export { default as TrashOutlined } from './TrashOutlined';
97
103
  export { default as Upload } from './Upload';
98
104
  export { default as User } from './User';
105
+ export { default as VolumeOff } from './VolumeOff';
106
+ export { default as VolumeUp } from './VolumeUp';
99
107
  export { default as WarningFilled } from './WarningFilled';
100
108
  export { default as Warning } from './Warning';
101
109
  export { default as WarningAmber } from './WarningAmber';
@@ -5,7 +5,7 @@ type LNBLogoProps = React.PropsWithChildren<{
5
5
  className?: string;
6
6
  src: string;
7
7
  }>;
8
- declare const Logo: React.MemoExoticComponent<(props: LNBLogoProps) => import("react/jsx-runtime").JSX.Element>;
8
+ declare const Logo: (props: LNBLogoProps) => import("react/jsx-runtime").JSX.Element;
9
9
  type LNBItemProps = React.PropsWithChildren<{
10
10
  className?: string;
11
11
  label: string;
@@ -18,12 +18,12 @@ type LNBItemProps = React.PropsWithChildren<{
18
18
  isOpen?: boolean;
19
19
  isActive?: boolean;
20
20
  }>;
21
- declare const Item: React.MemoExoticComponent<(props: LNBItemProps) => import("react/jsx-runtime").JSX.Element>;
21
+ declare const Item: (props: LNBItemProps) => import("react/jsx-runtime").JSX.Element;
22
22
  type LNBListProps = React.PropsWithChildren<{
23
23
  className?: string;
24
24
  }>;
25
- declare const List: React.MemoExoticComponent<(props: LNBListProps) => import("react/jsx-runtime").JSX.Element>;
26
- declare const Root: React.MemoExoticComponent<(props: LNBProviderProps) => import("react/jsx-runtime").JSX.Element>;
25
+ declare const List: (props: LNBListProps) => import("react/jsx-runtime").JSX.Element;
26
+ declare const Root: (props: LNBProviderProps) => import("react/jsx-runtime").JSX.Element;
27
27
  export type Navigation<T = never> = {
28
28
  label: string;
29
29
  subtitle?: string;
@@ -6,5 +6,5 @@ interface LabelRootProps {
6
6
  size?: "medium" | "small" | "xSmall";
7
7
  onClick?: () => void;
8
8
  }
9
- declare const _default: React.MemoExoticComponent<(props: LabelRootProps & React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element>;
10
- export default _default;
9
+ declare const Label: (props: LabelRootProps & React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
10
+ export default Label;
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { Icon } from '../Icon/Icon';
3
3
  type TextProps = {
4
- value: string;
4
+ value?: string;
5
5
  } & React.JSX.IntrinsicElements["div"];
6
6
  type BaseListProps = {
7
7
  label: TextProps;
@@ -17,6 +17,6 @@ type ListProps = ({
17
17
  title?: TextProps;
18
18
  icon?: never;
19
19
  } & BaseListProps);
20
+ declare const List: (props: ListProps) => import("react/jsx-runtime").JSX.Element;
20
21
  export type { ListProps };
21
- declare const _default: React.MemoExoticComponent<(props: ListProps) => import("react/jsx-runtime").JSX.Element>;
22
- export default _default;
22
+ export default List;
@@ -1,13 +1,13 @@
1
1
  import { default as React } from 'react';
2
2
  import { PaginationContextType } from './Pagination.context';
3
- declare const Next: React.MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
4
- declare const Prev: React.MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
3
+ declare const Next: () => import("react/jsx-runtime").JSX.Element;
4
+ declare const Prev: () => import("react/jsx-runtime").JSX.Element;
5
5
  type PageItemProps = {
6
6
  active: boolean;
7
7
  onClick: (page: number) => void;
8
8
  page: number;
9
9
  };
10
- declare const PageItem: React.MemoExoticComponent<(props: PageItemProps) => import("react/jsx-runtime").JSX.Element>;
10
+ declare const PageItem: (props: PageItemProps) => import("react/jsx-runtime").JSX.Element;
11
11
  type PageListProps = {
12
12
  itemAs?: ({ page, active, onClick, }: {
13
13
  page: number;
@@ -15,9 +15,9 @@ type PageListProps = {
15
15
  onClick: (page: number) => void;
16
16
  }) => React.ReactNode;
17
17
  };
18
- declare const PageList: React.MemoExoticComponent<(props: PageListProps) => import("react/jsx-runtime").JSX.Element | null>;
18
+ declare const PageList: (props: PageListProps) => import("react/jsx-runtime").JSX.Element | null;
19
19
  type RootProps = {} & Omit<PaginationContextType, "currentPage">;
20
- declare const Root: React.MemoExoticComponent<(props: React.PropsWithChildren<RootProps>) => import("react/jsx-runtime").JSX.Element>;
20
+ declare const Root: (props: React.PropsWithChildren<RootProps>) => import("react/jsx-runtime").JSX.Element;
21
21
  interface IPagination {
22
22
  Root: typeof Root;
23
23
  Next: typeof Next;
@@ -5,15 +5,15 @@ type PanelProps = React.PropsWithChildren<{
5
5
  id?: string;
6
6
  index: number;
7
7
  }>;
8
- declare const Panel: React.MemoExoticComponent<(props: PanelProps) => import("react/jsx-runtime").JSX.Element>;
8
+ declare const Panel: (props: PanelProps) => import("react/jsx-runtime").JSX.Element;
9
9
  type PanelsProps = React.PropsWithChildren<{
10
10
  className?: string;
11
11
  }>;
12
- declare const Panels: React.MemoExoticComponent<(props: PanelsProps) => import("react/jsx-runtime").JSX.Element>;
12
+ declare const Panels: (props: PanelsProps) => import("react/jsx-runtime").JSX.Element;
13
13
  type TabListProps = React.PropsWithChildren<{
14
14
  className?: string;
15
15
  }>;
16
- declare const List: React.MemoExoticComponent<(props: TabListProps) => import("react/jsx-runtime").JSX.Element>;
16
+ declare const List: (props: TabListProps) => import("react/jsx-runtime").JSX.Element;
17
17
  type TabProps = React.PropsWithChildren<{
18
18
  className?: string;
19
19
  id?: string;
@@ -21,8 +21,8 @@ type TabProps = React.PropsWithChildren<{
21
21
  onClick?: (...args: any) => void;
22
22
  isActive?: boolean;
23
23
  }>;
24
- declare const Item: React.MemoExoticComponent<(props: TabProps) => import("react/jsx-runtime").JSX.Element>;
25
- declare const Root: React.MemoExoticComponent<(props: TabsProviderProps) => import("react/jsx-runtime").JSX.Element>;
24
+ declare const Item: (props: TabProps) => import("react/jsx-runtime").JSX.Element;
25
+ declare const Root: (props: TabsProviderProps) => import("react/jsx-runtime").JSX.Element;
26
26
  interface ITab {
27
27
  Root: typeof Root;
28
28
  List: typeof List;
@@ -2,22 +2,22 @@ import { default as React } from 'react';
2
2
  import { TableProviderProps } from './Table.context';
3
3
  import { useRowResize } from './Table.hook';
4
4
  type TableRowProps = React.PropsWithChildren<React.JSX.IntrinsicElements["tr"]>;
5
- declare const Row: React.MemoExoticComponent<(props: TableRowProps) => import("react/jsx-runtime").JSX.Element>;
5
+ declare const Row: (props: TableRowProps) => import("react/jsx-runtime").JSX.Element;
6
6
  type TableCellProps = React.PropsWithChildren<{
7
7
  size?: number;
8
8
  isSelected?: boolean;
9
9
  } & React.JSX.IntrinsicElements["td"]>;
10
- declare const Cell: React.MemoExoticComponent<(props: TableCellProps) => import("react/jsx-runtime").JSX.Element>;
10
+ declare const Cell: (props: TableCellProps) => import("react/jsx-runtime").JSX.Element;
11
11
  type TableBodyProps = React.PropsWithChildren<React.JSX.IntrinsicElements["tbody"]>;
12
- declare const Body: React.MemoExoticComponent<(props: TableBodyProps) => import("react/jsx-runtime").JSX.Element>;
12
+ declare const Body: (props: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
13
13
  type TableHeaderCellProps = React.PropsWithChildren<{
14
14
  size?: number;
15
15
  } & React.JSX.IntrinsicElements["th"]>;
16
- declare const HeaderCell: React.MemoExoticComponent<(props: TableHeaderCellProps) => import("react/jsx-runtime").JSX.Element>;
16
+ declare const HeaderCell: (props: TableHeaderCellProps) => import("react/jsx-runtime").JSX.Element;
17
17
  type TableHeaderProps = React.PropsWithChildren<React.JSX.IntrinsicElements["thead"]>;
18
- declare const Header: React.MemoExoticComponent<(props: TableHeaderProps) => import("react/jsx-runtime").JSX.Element>;
18
+ declare const Header: (props: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
19
19
  type TableRootProps = TableProviderProps & React.JSX.IntrinsicElements["table"];
20
- declare const Root: React.MemoExoticComponent<(props: TableRootProps) => import("react/jsx-runtime").JSX.Element>;
20
+ declare const Root: (props: TableRootProps) => import("react/jsx-runtime").JSX.Element;
21
21
  interface ITable {
22
22
  Root: typeof Root;
23
23
  Header: typeof Header;
@@ -4,13 +4,13 @@ type InputProps = {
4
4
  index: number;
5
5
  placeholder: string;
6
6
  } & React.JSX.IntrinsicElements["input"];
7
- declare const Input: React.MemoExoticComponent<(props: InputProps) => import("react/jsx-runtime").JSX.Element>;
7
+ declare const Input: (props: InputProps) => import("react/jsx-runtime").JSX.Element;
8
8
  type TimeRangeProps = React.PropsWithChildren<React.JSX.IntrinsicElements["div"]>;
9
- declare const TimeRange: React.MemoExoticComponent<(props: TimeRangeProps) => import("react/jsx-runtime").JSX.Element>;
9
+ declare const TimeRange: (props: TimeRangeProps) => import("react/jsx-runtime").JSX.Element;
10
10
  type ColonProps = React.JSX.IntrinsicElements["span"];
11
- declare const Colon: React.MemoExoticComponent<(props: ColonProps) => import("react/jsx-runtime").JSX.Element>;
11
+ declare const Colon: (props: ColonProps) => import("react/jsx-runtime").JSX.Element;
12
12
  type SeparatorProps = React.JSX.IntrinsicElements["span"];
13
- declare const Separator: React.MemoExoticComponent<(props: SeparatorProps) => import("react/jsx-runtime").JSX.Element>;
13
+ declare const Separator: (props: SeparatorProps) => import("react/jsx-runtime").JSX.Element;
14
14
  type HelperTextProps = React.PropsWithChildren<{
15
15
  className?: string;
16
16
  warningColor?: string;
@@ -21,18 +21,18 @@ type HelperTextProps = React.PropsWithChildren<{
21
21
  size?: number;
22
22
  iconVisible?: boolean;
23
23
  }>;
24
- declare const HelperText: React.MemoExoticComponent<(props: HelperTextProps) => import("react/jsx-runtime").JSX.Element | null>;
24
+ declare const HelperText: (props: HelperTextProps) => import("react/jsx-runtime").JSX.Element | null;
25
25
  type InputWrapperProps = React.PropsWithChildren<React.JSX.IntrinsicElements["div"]>;
26
- declare const InputWrapper: React.MemoExoticComponent<(props: InputWrapperProps) => import("react/jsx-runtime").JSX.Element>;
26
+ declare const InputWrapper: (props: InputWrapperProps) => import("react/jsx-runtime").JSX.Element;
27
27
  type LabelProps = React.PropsWithChildren<{
28
28
  className?: string;
29
29
  focusedColor?: string;
30
30
  }>;
31
- declare const Label: React.MemoExoticComponent<(props: LabelProps) => import("react/jsx-runtime").JSX.Element>;
31
+ declare const Label: (props: LabelProps) => import("react/jsx-runtime").JSX.Element;
32
32
  type RootProps = React.PropsWithChildren<Omit<TimeInputContextType, "inputRefs" | "handleChange" | "handleBlur" | "handleKeyDown"> & {
33
33
  className?: string;
34
34
  }>;
35
- declare const Root: React.MemoExoticComponent<(props: RootProps) => import("react/jsx-runtime").JSX.Element>;
35
+ declare const Root: (props: RootProps) => import("react/jsx-runtime").JSX.Element;
36
36
  interface ITimeInput {
37
37
  Root: typeof Root;
38
38
  Label: typeof Label;
@@ -0,0 +1,118 @@
1
+ import { default as React } from 'react';
2
+ import { default as videojs } from 'video.js';
3
+ import { VideoOverlay, Loading, Error, Frame, Widgets } from './components';
4
+ import { VideoPlayerStoreContext, VideoPlayerImageContext, VideoPlayerProvider, useVideoPlayerStore, useVideoPlayerShallow, useVideoPlayerImage, createVideoPlayerStore, resolveVideoPlayerStoreConfig, VideoPlayerImageComponent, VideoPlayerStoreConfig } from './context';
5
+ import { IconName } from '../Icon/Icon';
6
+ type VideoJsPlayer = ReturnType<typeof videojs>;
7
+ type VideoJsOptions = Parameters<typeof videojs>[1];
8
+ export type VideoPlayerControls = {
9
+ back?: boolean;
10
+ share?: boolean;
11
+ playPause?: boolean;
12
+ progress?: boolean;
13
+ time?: boolean;
14
+ volume?: boolean;
15
+ speed?: boolean;
16
+ fullscreen?: boolean;
17
+ };
18
+ export type VideoPlayerTexts = {
19
+ loading?: string;
20
+ errorTitle?: string;
21
+ errorDescription?: string;
22
+ errorRetry?: string;
23
+ };
24
+ export type VideoPlayerAria = {
25
+ progress?: string;
26
+ play?: string;
27
+ pause?: string;
28
+ fullscreenEnter?: string;
29
+ fullscreenExit?: string;
30
+ speed?: string;
31
+ mute?: string;
32
+ unmute?: string;
33
+ back?: string;
34
+ share?: string;
35
+ };
36
+ export type VideoPlayerIcons = {
37
+ play?: IconName | string;
38
+ pause?: IconName | string;
39
+ back?: IconName | string;
40
+ share?: IconName | string;
41
+ volumeOn?: IconName | string;
42
+ volumeOff?: IconName | string;
43
+ fullscreenEnter?: IconName | string;
44
+ fullscreenExit?: IconName | string;
45
+ };
46
+ export type VideoPlayerEvents = {
47
+ onReady?: (player: VideoJsPlayer) => void;
48
+ onLoadStart?: () => void;
49
+ onCanPlay?: () => void;
50
+ onPlay?: () => void;
51
+ onPause?: () => void;
52
+ onTimeUpdate?: (currentTime: number) => void;
53
+ onProgress?: (buffered: number) => void;
54
+ onVolumeChange?: (volume: number) => void;
55
+ onRateChange?: (rate: number) => void;
56
+ onFullscreenChange?: (isFullscreen: boolean) => void;
57
+ onDurationChange?: (duration: number) => void;
58
+ onError?: (error: unknown) => void;
59
+ };
60
+ export type VideoPlayerProps = {
61
+ src: string;
62
+ poster?: string;
63
+ className?: string;
64
+ width?: string | number;
65
+ height?: string | number;
66
+ onBack?: () => void;
67
+ onShare?: () => void;
68
+ onRetry?: () => void;
69
+ controls?: VideoPlayerControls;
70
+ texts?: VideoPlayerTexts;
71
+ aria?: VideoPlayerAria;
72
+ icons?: VideoPlayerIcons;
73
+ events?: VideoPlayerEvents;
74
+ overlayClassName?: string;
75
+ overlay?: {
76
+ autoHide?: boolean;
77
+ autoHideDelayMs?: number;
78
+ overlayClickAction?: "toggle-play" | "none";
79
+ onOverlayClick?: () => void;
80
+ };
81
+ playerOptions?: VideoJsOptions;
82
+ sources?: {
83
+ src: string;
84
+ type: string;
85
+ }[];
86
+ speedOptions?: number[];
87
+ disableVideoJsStyles?: boolean;
88
+ controlVariants?: {
89
+ speed?: "menu" | "cycle";
90
+ };
91
+ children?: React.ReactNode;
92
+ storeConfig?: VideoPlayerStoreConfig;
93
+ Image?: VideoPlayerImageComponent;
94
+ };
95
+ export type RootProps = VideoPlayerProps & React.JSX.IntrinsicElements["div"];
96
+ declare const Root: {
97
+ (props: RootProps): import("react/jsx-runtime").JSX.Element;
98
+ displayName: string;
99
+ };
100
+ interface IVideoPlayer {
101
+ Root: typeof Root;
102
+ Frame: typeof Frame;
103
+ Overlay: typeof VideoOverlay;
104
+ Loading: typeof Loading;
105
+ Error: typeof Error;
106
+ Widgets: typeof Widgets;
107
+ useVideoPlayerStore: typeof useVideoPlayerStore;
108
+ useVideoPlayerShallow: typeof useVideoPlayerShallow;
109
+ useVideoPlayerImage: typeof useVideoPlayerImage;
110
+ VideoPlayerStoreContext: typeof VideoPlayerStoreContext;
111
+ VideoPlayerImageContext: typeof VideoPlayerImageContext;
112
+ VideoPlayerProvider: typeof VideoPlayerProvider;
113
+ createVideoPlayerStore: typeof createVideoPlayerStore;
114
+ resolveVideoPlayerStoreConfig: typeof resolveVideoPlayerStoreConfig;
115
+ }
116
+ export type { RootProps as VideoPlayerRootProps };
117
+ declare const VideoPlayer: IVideoPlayer;
118
+ export default VideoPlayer;
@@ -0,0 +1,18 @@
1
+ import { default as React } from 'react';
2
+ type ErrorAsProps = {
3
+ defaultClassName: string;
4
+ errorTitle: string;
5
+ errorDescription: string;
6
+ errorRetry: string;
7
+ onRetry: () => void;
8
+ };
9
+ type ErrorProps = {
10
+ className?: string;
11
+ errorTitle?: string;
12
+ errorDescription?: string;
13
+ errorRetry?: string;
14
+ onRetry?: () => void;
15
+ as?: (props: ErrorAsProps) => React.ReactNode;
16
+ };
17
+ declare const Error: (props: ErrorProps) => import("react/jsx-runtime").JSX.Element | null;
18
+ export default Error;
@@ -0,0 +1 @@
1
+ export { default } from './Error';
@@ -0,0 +1,34 @@
1
+ import { default as React } from 'react';
2
+ import { default as videojs } from 'video.js';
3
+ type VideoJsPlayer = ReturnType<typeof videojs>;
4
+ type VideoJsOptions = Parameters<typeof videojs>[1];
5
+ export type FrameProps = {
6
+ src: string;
7
+ poster?: string;
8
+ className?: string;
9
+ width?: string | number;
10
+ height?: string | number;
11
+ playerOptions?: VideoJsOptions;
12
+ sources?: {
13
+ src: string;
14
+ type: string;
15
+ }[];
16
+ speedOptions?: number[];
17
+ disableVideoJsStyles?: boolean;
18
+ events?: {
19
+ onReady?: (player: VideoJsPlayer) => void;
20
+ onLoadStart?: () => void;
21
+ onCanPlay?: () => void;
22
+ onPlay?: () => void;
23
+ onPause?: () => void;
24
+ onTimeUpdate?: (currentTime: number) => void;
25
+ onProgress?: (buffered: number) => void;
26
+ onVolumeChange?: (volume: number) => void;
27
+ onRateChange?: (rate: number) => void;
28
+ onFullscreenChange?: (isFullscreen: boolean) => void;
29
+ onDurationChange?: (duration: number) => void;
30
+ onError?: (error: unknown) => void;
31
+ };
32
+ } & React.JSX.IntrinsicElements["div"];
33
+ declare const Frame: (props: FrameProps) => import("react/jsx-runtime").JSX.Element;
34
+ export default Frame;
@@ -0,0 +1,2 @@
1
+ export { default } from './Frame';
2
+ export type { FrameProps } from './Frame';
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ type LoadingAsProps = {
3
+ defaultClassName: string;
4
+ loadingText: string;
5
+ };
6
+ type LoadingProps = {
7
+ className?: string;
8
+ loadingText?: string;
9
+ as?: (props: LoadingAsProps) => React.ReactNode;
10
+ };
11
+ declare const Loading: (props: LoadingProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ export default Loading;
@@ -0,0 +1 @@
1
+ export { default } from './Loading';
@@ -0,0 +1,37 @@
1
+ import { default as React } from 'react';
2
+ type GridProps = {
3
+ className?: string;
4
+ children?: React.ReactNode;
5
+ } & React.JSX.IntrinsicElements["div"];
6
+ type SlotProps = {
7
+ className?: string;
8
+ children?: React.ReactNode;
9
+ } & React.JSX.IntrinsicElements["div"];
10
+ export type VideoOverlayRenderProps = {
11
+ showControls: boolean;
12
+ onMouseMove: () => void;
13
+ onMouseLeave: () => void;
14
+ onClick: (event: React.MouseEvent<Element>) => void;
15
+ isFullscreen: boolean;
16
+ };
17
+ export type VideoOverlayProps = {
18
+ className?: string;
19
+ autoHide?: boolean;
20
+ autoHideDelayMs?: number;
21
+ overlayClickAction?: "toggle-play" | "none";
22
+ onOverlayClick?: () => void;
23
+ children: (props: VideoOverlayRenderProps) => React.ReactNode;
24
+ };
25
+ declare const VideoOverlay: ((props: VideoOverlayProps) => import("react/jsx-runtime").JSX.Element) & {
26
+ Grid: (props: GridProps) => import("react/jsx-runtime").JSX.Element;
27
+ TopLeft: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
28
+ TopCenter: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
29
+ TopRight: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
30
+ MiddleLeft: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
31
+ MiddleCenter: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
32
+ MiddleRight: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
33
+ BottomLeft: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
34
+ BottomCenter: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
35
+ BottomRight: (props: SlotProps) => import("react/jsx-runtime").JSX.Element;
36
+ };
37
+ export default VideoOverlay;
@@ -0,0 +1,2 @@
1
+ export { default } from './VideoOverlay';
2
+ export type { VideoOverlayRenderProps } from './VideoOverlay';
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { Icon } from '../../../../Icon/Icon';
3
+ export type ButtonProps = {
4
+ /** Icon 컴포넌트에 전달할 props (name 필수, size·color 등 선택) */
5
+ icon: React.ComponentProps<typeof Icon>;
6
+ onClick?: () => void;
7
+ ariaLabel?: string;
8
+ className?: string;
9
+ } & Omit<React.JSX.IntrinsicElements["button"], "onClick">;
10
+ declare const Button: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default Button;
@@ -0,0 +1,2 @@
1
+ export { default } from './Button';
2
+ export type { ButtonProps } from './Button';
@@ -0,0 +1,18 @@
1
+ import { default as React } from 'react';
2
+ type ProgressBarAsProps = {
3
+ defaultClassName: string;
4
+ progress: number;
5
+ buffered: number;
6
+ ariaLabel: string;
7
+ onPointerDown: (event: React.PointerEvent<HTMLDivElement>) => void;
8
+ onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void;
9
+ trackRef: React.RefObject<HTMLDivElement | null>;
10
+ };
11
+ export type ProgressBarProps = {
12
+ className?: string;
13
+ onInteractionChange?: (isActive: boolean) => void;
14
+ ariaLabel?: string;
15
+ as?: (props: ProgressBarAsProps) => React.ReactNode;
16
+ };
17
+ declare const ProgressBar: (props: ProgressBarProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default ProgressBar;
@@ -0,0 +1,2 @@
1
+ export { default } from './ProgressBar';
2
+ export type { ProgressBarProps } from './ProgressBar';
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ type SpeedControlAsProps = {
3
+ defaultClassName: string;
4
+ playbackRate: number;
5
+ speedOptions: readonly number[];
6
+ variant: "menu" | "cycle";
7
+ isOpen: boolean;
8
+ ariaLabel: string;
9
+ onButtonClick: () => void;
10
+ onSpeedSelect: (speed: number) => void;
11
+ onMouseEnter: () => void;
12
+ onMouseLeave: () => void;
13
+ };
14
+ type SpeedControlProps = {
15
+ className?: string;
16
+ variant?: "menu" | "cycle";
17
+ speedOptions?: number[];
18
+ ariaLabel?: string;
19
+ as?: (props: SpeedControlAsProps) => React.ReactNode;
20
+ };
21
+ declare const SpeedControl: (props: SpeedControlProps) => import("react/jsx-runtime").JSX.Element;
22
+ export default SpeedControl;
@@ -0,0 +1 @@
1
+ export { default } from './SpeedControl';
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ type TimeAsProps = {
3
+ defaultClassName: string;
4
+ currentTime: number;
5
+ duration: number;
6
+ formattedCurrentTime: string;
7
+ formattedDuration: string;
8
+ };
9
+ export type TimeProps = {
10
+ className?: string;
11
+ formatTime?: (time: number) => string;
12
+ as?: (props: TimeAsProps) => React.ReactNode;
13
+ };
14
+ declare const Time: (props: TimeProps) => import("react/jsx-runtime").JSX.Element;
15
+ export default Time;