funuicss 2.0.25 → 2.5.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 (72) hide show
  1. package/css/fun.css +1002 -3749
  2. package/js/Fun.js +2 -2
  3. package/js/Fun.tsx +9 -8
  4. package/package.json +2 -1
  5. package/tsconfig.tsbuildinfo +1 -1
  6. package/ui/alert/Alert.d.ts +1 -1
  7. package/ui/aos/AOS.d.ts +1 -1
  8. package/ui/appbar/AppBar.d.ts +1 -1
  9. package/ui/avatar/Avatar.d.ts +2 -1
  10. package/ui/breadcrumb/BreadCrumb.d.ts +2 -1
  11. package/ui/button/Button.d.ts +1 -1
  12. package/ui/card/Card.d.ts +1 -1
  13. package/ui/card/CardBody.d.ts +2 -2
  14. package/ui/card/CardFab.d.ts +2 -2
  15. package/ui/card/CardFooter.d.ts +2 -2
  16. package/ui/card/CardHeader.d.ts +2 -2
  17. package/ui/div/Div.d.ts +1 -1
  18. package/ui/drop/Action.d.ts +1 -1
  19. package/ui/drop/Down.d.ts +1 -1
  20. package/ui/drop/Item.d.ts +1 -1
  21. package/ui/drop/Menu.d.ts +1 -1
  22. package/ui/drop/Up.d.ts +1 -1
  23. package/ui/grid/Col.d.ts +2 -1
  24. package/ui/grid/Grid.d.ts +2 -1
  25. package/ui/input/Iconic.d.ts +2 -2
  26. package/ui/input/Input.d.ts +2 -0
  27. package/ui/input/Input.js +50 -9
  28. package/ui/input/Input.tsx +34 -7
  29. package/ui/list/Item.d.ts +1 -1
  30. package/ui/list/List.d.ts +1 -1
  31. package/ui/loader/Loader.d.ts +2 -1
  32. package/ui/modal/Action.d.ts +1 -1
  33. package/ui/modal/Close.d.ts +2 -1
  34. package/ui/modal/Content.d.ts +1 -1
  35. package/ui/modal/Header.d.ts +2 -2
  36. package/ui/modal/Header.tsx +1 -1
  37. package/ui/modal/Modal.d.ts +1 -1
  38. package/ui/notification/Content.d.ts +1 -1
  39. package/ui/notification/Footer.d.ts +1 -1
  40. package/ui/notification/Header.d.ts +1 -1
  41. package/ui/notification/Notification.d.ts +1 -1
  42. package/ui/page/NotFound.d.ts +1 -1
  43. package/ui/page/UnAuthorized.d.ts +1 -1
  44. package/ui/progress/Bar.d.ts +1 -1
  45. package/ui/sidebar/SideBar.d.ts +2 -1
  46. package/ui/sidebar/SideContent.d.ts +1 -1
  47. package/ui/specials/Circle.d.ts +3 -2
  48. package/ui/specials/Circle.js +2 -2
  49. package/ui/specials/Circle.tsx +4 -2
  50. package/ui/specials/FullCenteredPage.d.ts +1 -1
  51. package/ui/specials/Hr.d.ts +1 -1
  52. package/ui/specials/RowFlex.d.ts +1 -1
  53. package/ui/specials/Section.d.ts +1 -1
  54. package/ui/table/Body.d.ts +1 -1
  55. package/ui/table/Data.d.ts +1 -1
  56. package/ui/table/Head.d.ts +1 -1
  57. package/ui/table/Row.d.ts +1 -1
  58. package/ui/table/Table.d.ts +1 -1
  59. package/ui/table/Table.js +11 -7
  60. package/ui/table/Table.tsx +20 -8
  61. package/ui/text/Text.d.ts +5 -5
  62. package/ui/text/Text.js +20 -11
  63. package/ui/text/Text.tsx +62 -33
  64. package/ui/tooltip/Tip.d.ts +2 -1
  65. package/ui/tooltip/Tip.js +9 -5
  66. package/ui/tooltip/Tip.tsx +12 -2
  67. package/ui/tooltip/ToolTip.d.ts +1 -1
  68. package/ui/tooltip/ToolTip.js +1 -1
  69. package/ui/tooltip/ToolTip.tsx +7 -1
  70. package/ui/video/FunPlayer.d.ts +0 -7
  71. package/ui/video/FunPlayer.js +202 -179
  72. package/ui/video/FunPlayer.tsx +218 -218
@@ -1,179 +1,202 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- var react_1 = __importStar(require("react"));
30
- var pi_1 = require("react-icons/pi");
31
- var ToolTip_1 = __importDefault(require("../tooltip/ToolTip"));
32
- var RowFlex_1 = __importDefault(require("../specials/RowFlex"));
33
- var Text_1 = __importDefault(require("../text/Text"));
34
- var Tip_1 = __importDefault(require("../tooltip/Tip"));
35
- function Video(_a) {
36
- var src = _a.src, autoPlay = _a.autoPlay, onDuration = _a.onDuration;
37
- var videoRef = (0, react_1.useRef)(null);
38
- var _b = (0, react_1.useState)(autoPlay), isPlaying = _b[0], setIsPlaying = _b[1];
39
- var _c = (0, react_1.useState)(0), currentTime = _c[0], setCurrentTime = _c[1];
40
- var _d = (0, react_1.useState)(0), duration = _d[0], setDuration = _d[1];
41
- var _e = (0, react_1.useState)(1), volume = _e[0], setVolume = _e[1];
42
- var _f = (0, react_1.useState)(false), isFullScreen = _f[0], setIsFullScreen = _f[1];
43
- var _g = (0, react_1.useState)(false), showVolume = _g[0], setShowVolume = _g[1];
44
- (0, react_1.useEffect)(function () {
45
- if (!videoRef.current)
46
- return;
47
- var handleTimeUpdate = function () {
48
- setCurrentTime(videoRef.current.currentTime);
49
- };
50
- var handleDurationChange = function () {
51
- var newDuration = videoRef.current.duration;
52
- setDuration(newDuration);
53
- onDuration && onDuration(newDuration);
54
- };
55
- videoRef.current.addEventListener('timeupdate', handleTimeUpdate);
56
- videoRef.current.addEventListener('durationchange', handleDurationChange);
57
- return function () {
58
- var _a, _b;
59
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('timeupdate', handleTimeUpdate);
60
- (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('durationchange', handleDurationChange);
61
- };
62
- }, [onDuration]);
63
- var formatTime = function (time) {
64
- var minutes = Math.floor(time / 60);
65
- var seconds = Math.floor(time % 60);
66
- return "".concat(String(minutes).padStart(2, '0'), ":").concat(String(seconds).padStart(2, '0'));
67
- };
68
- var handlePlay = function () {
69
- var _a;
70
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
71
- setIsPlaying(true);
72
- };
73
- var handlePause = function () {
74
- var _a;
75
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.pause();
76
- setIsPlaying(false);
77
- };
78
- var handleStop = function () {
79
- var _a;
80
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.pause();
81
- videoRef.current.currentTime = 0;
82
- setIsPlaying(false);
83
- };
84
- var handleRewind = function () {
85
- if (videoRef.current)
86
- videoRef.current.currentTime -= 10; // Rewind 10 seconds
87
- };
88
- var handleForward = function () {
89
- if (videoRef.current)
90
- videoRef.current.currentTime += 10; // Forward 10 seconds
91
- };
92
- var handleToggleFullScreen = function () {
93
- if (videoRef.current) {
94
- if (videoRef.current.requestFullscreen) {
95
- videoRef.current.requestFullscreen();
96
- }
97
- else if (videoRef.current.mozRequestFullScreen) {
98
- videoRef.current.mozRequestFullScreen();
99
- }
100
- else if (videoRef.current.webkitRequestFullscreen) {
101
- videoRef.current.webkitRequestFullscreen();
102
- }
103
- else if (videoRef.current.msRequestFullscreen) {
104
- videoRef.current.msRequestFullscreen();
105
- }
106
- setIsFullScreen(true);
107
- }
108
- };
109
- // const handleExitFullScreen = () => {
110
- // if (document.exitFullscreen) {
111
- // document.exitFullscreen();
112
- // } else if (document.mozCancelFullScreen) {
113
- // document.mozCancelFullScreen();
114
- // } else if (document.webkitExitFullscreen) {
115
- // document.webkitExitFullscreen();
116
- // } else if (document.msExitFullscreen) {
117
- // document.msExitFullscreen();
118
- // }
119
- // setIsFullScreen(false);
120
- // };
121
- var handleProgressBarChange = function (e) {
122
- var newTime = parseFloat(e.target.value);
123
- setCurrentTime(newTime);
124
- if (videoRef.current)
125
- videoRef.current.currentTime = newTime;
126
- };
127
- var handleVolumeChange = function (e) {
128
- var newVolume = parseFloat(e.target.value);
129
- setVolume(newVolume);
130
- if (videoRef.current)
131
- videoRef.current.volume = newVolume;
132
- };
133
- var timePlayed = formatTime(currentTime);
134
- var timeLeft = formatTime(duration - currentTime);
135
- return (react_1.default.createElement("div", { className: "vide_container" },
136
- react_1.default.createElement("video", { ref: videoRef, autoPlay: autoPlay, src: src, className: "fit" }),
137
- react_1.default.createElement("div", { className: "video_controls", onDoubleClick: isPlaying ? handlePause : handlePlay },
138
- react_1.default.createElement(RowFlex_1.default, { gap: 0.3, funcss: "padding-5" },
139
- react_1.default.createElement("div", null,
140
- react_1.default.createElement(Text_1.default, { text: timePlayed, size: "small", bold: true })),
141
- react_1.default.createElement("div", { className: "col width-100-p" },
142
- react_1.default.createElement("input", { type: "range", min: 0, max: duration, value: currentTime, className: "width-100-p", style: { height: "3px" }, onChange: handleProgressBarChange })),
143
- react_1.default.createElement("div", null,
144
- react_1.default.createElement(Text_1.default, { text: timeLeft, size: "small", bold: true }))),
145
- react_1.default.createElement("div", { className: "margin-top-5" }),
146
- react_1.default.createElement(RowFlex_1.default, { gap: 1, justify: "space-between" },
147
- react_1.default.createElement("div", null,
148
- react_1.default.createElement(RowFlex_1.default, { gap: 0.5 },
149
- react_1.default.createElement(ToolTip_1.default, null,
150
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5", onClick: isPlaying ? handlePause : handlePlay }, isPlaying ? react_1.default.createElement(pi_1.PiPause, null) : react_1.default.createElement(pi_1.PiPlay, null)),
151
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: isPlaying ? "Pause" : "Play" })),
152
- react_1.default.createElement(ToolTip_1.default, null,
153
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5", onClick: handleRewind },
154
- react_1.default.createElement(pi_1.PiRewind, null)),
155
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: "10 sec Back" })),
156
- react_1.default.createElement(ToolTip_1.default, null,
157
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5", onClick: handleForward },
158
- react_1.default.createElement(pi_1.PiFastForward, null)),
159
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: "10 sec Forward" })),
160
- react_1.default.createElement("div", { onMouseEnter: function () { return setShowVolume(true); }, onMouseLeave: function () { return setShowVolume(false); } },
161
- react_1.default.createElement(RowFlex_1.default, null,
162
- react_1.default.createElement(ToolTip_1.default, null,
163
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5" },
164
- react_1.default.createElement(pi_1.PiSpeakerLow, null)),
165
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: "Volume" })),
166
- showVolume &&
167
- react_1.default.createElement("input", { type: "range", min: 0, max: 1, step: 0.01, value: volume, className: "width-100", style: { height: "3px" }, onChange: handleVolumeChange }))))),
168
- react_1.default.createElement("div", null,
169
- react_1.default.createElement(RowFlex_1.default, { gap: 0.3 },
170
- react_1.default.createElement(ToolTip_1.default, null,
171
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5", onClick: handleToggleFullScreen },
172
- react_1.default.createElement(pi_1.PiCornersOut, null)),
173
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: "Expand" })),
174
- react_1.default.createElement(ToolTip_1.default, null,
175
- react_1.default.createElement("div", { className: "width-30 height-30 pointer padding-5", onClick: function () { window.open(src || "", '_blank'); } },
176
- react_1.default.createElement(pi_1.PiDownload, null)),
177
- react_1.default.createElement(Tip_1.default, { tip: "top", animation: "ScaleUp", duration: 0.5, content: "Download" }))))))));
178
- }
179
- exports.default = Video;
1
+ // import React, { useState, useRef, useEffect } from 'react';
2
+ // import { PiCornersOut, PiDownload, PiFastForward, PiFileAudio, PiPause, PiPlay, PiRewind, PiSpeakerHifi, PiSpeakerLow } from 'react-icons/pi';
3
+ // import ToolTip from "../tooltip/ToolTip"
4
+ // import RowFlex from '../specials/RowFlex';
5
+ // import Button from '../button/Button'
6
+ // import Text from '../text/Text'
7
+ // import Tip from '../tooltip/Tip'
8
+ // interface VideoProps {
9
+ // src: string;
10
+ // autoPlay: boolean;
11
+ // onDuration?: (duration: number) => void;
12
+ // }
13
+ // export default function Video({ src, autoPlay, onDuration }: VideoProps) {
14
+ // const videoRef = useRef<HTMLVideoElement>(null);
15
+ // const [isPlaying, setIsPlaying] = useState<boolean>(autoPlay);
16
+ // const [currentTime, setCurrentTime] = useState<number>(0);
17
+ // const [duration, setDuration] = useState<number>(0);
18
+ // const [volume, setVolume] = useState<number>(1);
19
+ // const [isFullScreen, setIsFullScreen] = useState<boolean>(false);
20
+ // const [showVolume, setShowVolume] = useState<boolean>(false);
21
+ // useEffect(() => {
22
+ // if (!videoRef.current) return;
23
+ // const handleTimeUpdate = () => {
24
+ // setCurrentTime(videoRef.current.currentTime);
25
+ // };
26
+ // const handleDurationChange = () => {
27
+ // const newDuration = videoRef.current.duration;
28
+ // setDuration(newDuration);
29
+ // onDuration && onDuration(newDuration);
30
+ // };
31
+ // videoRef.current.addEventListener('timeupdate', handleTimeUpdate);
32
+ // videoRef.current.addEventListener('durationchange', handleDurationChange);
33
+ // return () => {
34
+ // videoRef.current?.removeEventListener('timeupdate', handleTimeUpdate);
35
+ // videoRef.current?.removeEventListener('durationchange', handleDurationChange);
36
+ // };
37
+ // }, [onDuration]);
38
+ // const formatTime = (time: number) => {
39
+ // const minutes = Math.floor(time / 60);
40
+ // const seconds = Math.floor(time % 60);
41
+ // return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
42
+ // };
43
+ // const handlePlay = () => {
44
+ // videoRef.current?.play();
45
+ // setIsPlaying(true);
46
+ // };
47
+ // const handlePause = () => {
48
+ // videoRef.current?.pause();
49
+ // setIsPlaying(false);
50
+ // };
51
+ // const handleStop = () => {
52
+ // videoRef.current?.pause();
53
+ // videoRef.current.currentTime = 0;
54
+ // setIsPlaying(false);
55
+ // };
56
+ // const handleRewind = () => {
57
+ // if (videoRef.current) videoRef.current.currentTime -= 10; // Rewind 10 seconds
58
+ // };
59
+ // const handleForward = () => {
60
+ // if (videoRef.current) videoRef.current.currentTime += 10; // Forward 10 seconds
61
+ // };
62
+ // const handleToggleFullScreen = () => {
63
+ // if (videoRef.current) {
64
+ // if (videoRef.current.requestFullscreen) {
65
+ // videoRef.current.requestFullscreen();
66
+ // } else if (videoRef.current.mozRequestFullScreen) {
67
+ // videoRef.current.mozRequestFullScreen();
68
+ // } else if (videoRef.current.webkitRequestFullscreen) {
69
+ // videoRef.current.webkitRequestFullscreen();
70
+ // } else if (videoRef.current.msRequestFullscreen) {
71
+ // videoRef.current.msRequestFullscreen();
72
+ // }
73
+ // setIsFullScreen(true);
74
+ // }
75
+ // };
76
+ // // const handleExitFullScreen = () => {
77
+ // // if (document.exitFullscreen) {
78
+ // // document.exitFullscreen();
79
+ // // } else if (document.mozCancelFullScreen) {
80
+ // // document.mozCancelFullScreen();
81
+ // // } else if (document.webkitExitFullscreen) {
82
+ // // document.webkitExitFullscreen();
83
+ // // } else if (document.msExitFullscreen) {
84
+ // // document.msExitFullscreen();
85
+ // // }
86
+ // // setIsFullScreen(false);
87
+ // // };
88
+ // const handleProgressBarChange = (e: React.ChangeEvent<HTMLInputElement>) => {
89
+ // const newTime = parseFloat(e.target.value);
90
+ // setCurrentTime(newTime);
91
+ // if (videoRef.current) videoRef.current.currentTime = newTime;
92
+ // };
93
+ // const handleVolumeChange = (e: React.ChangeEvent<HTMLInputElement>) => {
94
+ // const newVolume = parseFloat(e.target.value);
95
+ // setVolume(newVolume);
96
+ // if (videoRef.current) videoRef.current.volume = newVolume;
97
+ // };
98
+ // const timePlayed = formatTime(currentTime);
99
+ // const timeLeft = formatTime(duration - currentTime);
100
+ // return (
101
+ // <div className="vide_container">
102
+ // <video
103
+ // ref={videoRef}
104
+ // autoPlay={autoPlay}
105
+ // src={src}
106
+ // className="fit"
107
+ // ></video>
108
+ // <div className="video_controls" onDoubleClick={isPlaying ? handlePause : handlePlay}>
109
+ // <RowFlex gap={0.3} funcss="padding-5">
110
+ // <div>
111
+ // <Text
112
+ // text={timePlayed}
113
+ // size="small"
114
+ // bold
115
+ // />
116
+ // </div>
117
+ // <div className="col width-100-p">
118
+ // <input
119
+ // type="range"
120
+ // min={0}
121
+ // max={duration}
122
+ // value={currentTime}
123
+ // className="width-100-p"
124
+ // style={{ height: "3px" }}
125
+ // onChange={handleProgressBarChange}
126
+ // />
127
+ // </div>
128
+ // <div>
129
+ // <Text
130
+ // text={timeLeft}
131
+ // size="small"
132
+ // bold
133
+ // />
134
+ // </div>
135
+ // </RowFlex>
136
+ // <div className="margin-top-5"></div>
137
+ // <RowFlex gap={1} justify="space-between">
138
+ // <div>
139
+ // <RowFlex gap={0.5}>
140
+ // <ToolTip>
141
+ // <div className="width-30 height-30 pointer padding-5" onClick={isPlaying ? handlePause : handlePlay}>
142
+ // {isPlaying ? <PiPause /> : <PiPlay />}
143
+ // </div>
144
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={isPlaying ? "Pause" : "Play"} />
145
+ // </ToolTip>
146
+ // <ToolTip>
147
+ // <div className="width-30 height-30 pointer padding-5" onClick={handleRewind}>
148
+ // <PiRewind />
149
+ // </div>
150
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={"10 sec Back"} />
151
+ // </ToolTip>
152
+ // <ToolTip>
153
+ // <div className="width-30 height-30 pointer padding-5" onClick={handleForward}>
154
+ // <PiFastForward />
155
+ // </div>
156
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={"10 sec Forward"} />
157
+ // </ToolTip>
158
+ // <div onMouseEnter={() => setShowVolume(true)} onMouseLeave={() => setShowVolume(false)}>
159
+ // <RowFlex >
160
+ // <ToolTip>
161
+ // <div className="width-30 height-30 pointer padding-5">
162
+ // <PiSpeakerLow />
163
+ // </div>
164
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={"Volume"} />
165
+ // </ToolTip>
166
+ // {showVolume &&
167
+ // <input
168
+ // type="range"
169
+ // min={0}
170
+ // max={1}
171
+ // step={0.01}
172
+ // value={volume}
173
+ // className="width-100"
174
+ // style={{ height: "3px" }}
175
+ // onChange={handleVolumeChange}
176
+ // />
177
+ // }
178
+ // </RowFlex>
179
+ // </div>
180
+ // </RowFlex>
181
+ // </div>
182
+ // <div>
183
+ // <RowFlex gap={0.3}>
184
+ // <ToolTip>
185
+ // <div className="width-30 height-30 pointer padding-5" onClick={handleToggleFullScreen}>
186
+ // <PiCornersOut />
187
+ // </div>
188
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={"Expand"} />
189
+ // </ToolTip>
190
+ // <ToolTip>
191
+ // <div className="width-30 height-30 pointer padding-5" onClick={() => { window.open(src || "", '_blank'); }}>
192
+ // <PiDownload />
193
+ // </div>
194
+ // <Tip tip="top" animation="ScaleUp" duration={0.5} content={"Download"} />
195
+ // </ToolTip>
196
+ // </RowFlex>
197
+ // </div>
198
+ // </RowFlex>
199
+ // </div>
200
+ // </div>
201
+ // );
202
+ // }