px-react-ui-components 1.0.0 → 1.0.2

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 (41) hide show
  1. package/dist/components/MyFileUpload/MyFileUpload.js +16 -17
  2. package/dist/components/MyInput/MyInput.js +4 -7
  3. package/dist/components/MyTable/MyTable.js +9 -8
  4. package/package.json +13 -1
  5. package/.babelrc +0 -3
  6. package/src/components/MyAlert/MyAlert.css +0 -113
  7. package/src/components/MyAlert/MyAlert.jsx +0 -96
  8. package/src/components/MyContainer/MyContainer.jsx +0 -90
  9. package/src/components/MyContainer/MyContainer.module.css +0 -110
  10. package/src/components/MyContainer/MyContainerBody.jsx +0 -8
  11. package/src/components/MyContainer/MyContainerFooter.jsx +0 -8
  12. package/src/components/MyContainer/MyContainerRight.jsx +0 -11
  13. package/src/components/MyEditor/MyEditor.jsx +0 -252
  14. package/src/components/MyEditor/MyEditor.scss +0 -277
  15. package/src/components/MyFileUpload/MyFileUpload.jsx +0 -373
  16. package/src/components/MyFileUpload/MyFileUpload.module.css +0 -86
  17. package/src/components/MyImageCropper/MyImageCropper.jsx +0 -108
  18. package/src/components/MyInput/MyInput.jsx +0 -896
  19. package/src/components/MyInput/MyInput.module.css +0 -420
  20. package/src/components/MyMaps/YandexMaps.jsx +0 -186
  21. package/src/components/MyMenu/MenuItem.jsx +0 -62
  22. package/src/components/MyMenu/MyMenu.module.css +0 -102
  23. package/src/components/MyModal/MyModal.css +0 -83
  24. package/src/components/MyModal/MyModal.jsx +0 -78
  25. package/src/components/MyModal/MyModalBody.jsx +0 -8
  26. package/src/components/MyModal/MyModalFooter.jsx +0 -8
  27. package/src/components/MyNotFound/MyNotFound.css +0 -22
  28. package/src/components/MyNotFound/MyNotFound.jsx +0 -11
  29. package/src/components/MyScrollableCard/MyScrollableCard.jsx +0 -86
  30. package/src/components/MyTable/MyTable.jsx +0 -458
  31. package/src/components/MyTable/MyTable.module.css +0 -350
  32. package/src/components/MyTable/MyTableBody.jsx +0 -8
  33. package/src/components/MyTable/MyTableHead.jsx +0 -10
  34. package/src/components/MyTabs/MyTabPane.jsx +0 -9
  35. package/src/components/MyTabs/MyTabs.css +0 -105
  36. package/src/components/MyTabs/MyTabs.jsx +0 -63
  37. package/src/components/MyWaiting/MyWaiting.css +0 -28
  38. package/src/components/MyWaiting/MyWaiting.jsx +0 -27
  39. package/src/components/MyZoomImage/MyZoomImage.css +0 -0
  40. package/src/components/MyZoomImage/MyZoomImage.jsx +0 -139
  41. package/src/index.js +0 -15
@@ -1,420 +0,0 @@
1
- .container {
2
- display: block;
3
- /* width: 100%; */
4
- width: auto;
5
- font-size: 15px;
6
- }
7
-
8
- .container small {
9
- padding-left: 5px;
10
- font-size: 11px;
11
- }
12
-
13
- .inputblock {
14
- display: block;
15
- position: relative;
16
- /* width: 100%; */
17
- width: auto;
18
- background-color: #fff;
19
- border: 1px solid #e5e7eb;
20
- padding-right: 8px;
21
- padding-left: 15px;
22
- border-radius: 8px;
23
- }
24
-
25
- .inputblockdisabled{
26
- background-color: #f8fafd;
27
- border-color: #e5e7eb;
28
- }
29
-
30
- .disabledInput {
31
- width: 100%;
32
- min-height: 40px;
33
- display: flex;
34
- align-items: center;
35
- padding: 8px;
36
- overflow: auto;
37
- scrollbar-width: thin;
38
- }
39
-
40
- .caretdown {
41
- position: absolute;
42
- right: 10px;
43
- top: 50%;
44
- transform: translateY(-50%);
45
- font-size: 15px;
46
- }
47
-
48
- .fileinput,
49
- .css13cymwtControl,
50
- .inputblock select,
51
- .inputblock textarea,
52
- .inputblock input {
53
- display: block;
54
- width: 100%;
55
- min-height: 41px;
56
- background: rgba(243, 242, 247, 0.1);
57
- border: none;
58
- padding: 10px 0px;
59
- color: #0a0b0f;
60
- font-weight: normal;
61
- font-size: 14px;
62
- outline: none;
63
- z-index: 9;
64
- }
65
-
66
- .inputblock:focus-within {
67
- background-color: #ecf8ff;
68
- }
69
-
70
- .inputblock select {
71
- padding: 10px 0px 11px 0;
72
- }
73
-
74
- .fileinput::placeholder,
75
- .css13cymwtControl::placeholder,
76
- .inputblock select::placeholder,
77
- .inputblock textarea::placeholder,
78
- .inputblock input::placeholder {
79
- color: #73889d;
80
- opacity: 0.8;
81
- }
82
-
83
- .fileinput:-internal-autofill-selected,
84
- .css13cymwtControl:-internal-autofill-selected,
85
- .inputblock select:-internal-autofill-selected,
86
- .inputblock textarea:-internal-autofill-selected,
87
- .inputblock input:-internal-autofill-selected {
88
- background-color: rgba(243, 242, 247, 0.1) !important;
89
- }
90
-
91
- .inputblock input[type="color"] {
92
- height: 45px;
93
- padding: 5px 0;
94
- }
95
-
96
- .inputblock textarea {
97
- line-height: unset;
98
- }
99
-
100
- .placeholder {
101
- position: absolute;
102
- top: 50%;
103
- transform: translateY(-50%);
104
- color: #75899e;
105
- opacity: 0.8;
106
- z-index: 0;
107
- pointer-events: none;
108
- font-weight: 300;
109
- font-size: 14px;
110
- }
111
-
112
- .inputblock input.filterInput {
113
- position: absolute;
114
- display: none;
115
- left: 10px;
116
- top: 0px;
117
- width: calc(100% - 75px) !important;
118
- padding-left: 5px !important;
119
- z-index: 2 !important;
120
- background-color: #f3f2f7 !important;
121
- }
122
-
123
- .inputblockicon input.filterInput {
124
- left: 40px;
125
- }
126
-
127
- .filterInputSelected {
128
- display: block;
129
- width: 100%;
130
- height: 41px;
131
- padding: 10px 0;
132
- font-size: 14px;
133
- font-weight: 300;
134
- }
135
-
136
- .filterInputSelectedSelected {
137
- position: relative;
138
- padding-left: 30px;
139
- }
140
-
141
- .filterInputSelectedContainer {
142
- display: flex;
143
- align-items: center;
144
- justify-content: space-between;
145
- padding-left: 10px;
146
- }
147
-
148
- .filterInputSelectedContainerSelected {
149
- position: relative;
150
- }
151
-
152
- .filterInputSelectedX {
153
- position: absolute;
154
- right: 35px;
155
- top: 50%;
156
- transform: translateY(-50%);
157
- font-size: 15px;
158
- cursor: pointer;
159
- font-family: monospace;
160
- border-radius: 50%;
161
- width: 18px;
162
- height: 18px;
163
- background: #e4e4e4;
164
- text-align: center;
165
- padding: 0px;
166
- line-height: 15px;
167
- color: #000000;
168
- }
169
-
170
- .filterInputSelectedX:hover {
171
- background: #f0cdcd;
172
- color: #a34444;
173
- }
174
-
175
- .filterInputList {
176
- display: none;
177
- position: absolute;
178
- left: 5px;
179
- top: 41px;
180
- max-height: 300px;
181
- width: calc(100% - 10px);
182
- z-index: 99;
183
- background-color: #fff;
184
- padding: 0;
185
- border-radius: 8px;
186
- overflow: auto;
187
- scrollbar-width: thin;
188
- box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.5);
189
- font-size: 13px;
190
- font-weight: 300;
191
- }
192
-
193
- .filterInputList.opened {
194
- display: block;
195
- }
196
-
197
- .filterInputList li {
198
- cursor: default;
199
- padding: 6px 15px;
200
- display: flex;
201
- flex-direction: column;
202
- gap: 0px;
203
- }
204
-
205
- .filterInputList .subtextli {
206
- padding: 4px 15px;
207
- }
208
- .filterInputList li .subtext {
209
- font-size: 11px;
210
- font-style: italic;
211
- color: #73889d;
212
- opacity: 0.8;
213
- font-weight: 300;
214
- }
215
-
216
- .filterInputList li:hover {
217
- background-color: #1c61c9;
218
- color: #fff;
219
- }
220
-
221
- .filterInputList li:hover .subtext,
222
- .filterInputList li:hover i,
223
- .filterInputList li:hover span,
224
- .filterInputList li:hover small {
225
- color: #fff !important;
226
- }
227
-
228
- .inputblockicon {
229
- padding-left: 40px;
230
- }
231
-
232
- .inputblockicon .eye,
233
- .inputblockicon .icon {
234
- position: absolute;
235
- left: 5px;
236
- top: 50%;
237
- width: 30px;
238
- transform: translateY(-50%);
239
- color: #73889d;
240
- padding: 0px;
241
- font-size: 22px;
242
- display: flex;
243
- align-items: center;
244
- justify-content: center;
245
- }
246
-
247
- .inputblockicon .icontextarea {
248
- top: 13px;
249
- transform: unset;
250
- }
251
-
252
- .inputblockicon .icon {
253
- z-index: 0;
254
- pointer-events: none;
255
- }
256
-
257
- .inputblockicon .eye {
258
- left: unset;
259
- right: 10px;
260
- background: unset;
261
- border: none;
262
- }
263
-
264
- .inputblockicon .eye:hover {
265
- color: #a3a7ac;
266
- }
267
-
268
- .inputblockicon .placeholder {
269
- left: 45px;
270
- }
271
-
272
- .error .inputblock{
273
- border-color: #ff0000 !important;
274
- }
275
-
276
- .fileinput {
277
- position: relative;
278
- display: flex;
279
- flex-direction: row;
280
- align-items: center;
281
- justify-content: space-between;
282
- gap: 5px;
283
- width: 100%;
284
- padding: 0px;
285
- }
286
-
287
- .fileImagePreview {
288
- position: absolute;
289
- height: 35px;
290
- width: 35px;
291
- object-fit: cover;
292
- border-radius: 5px;
293
- left: -40px;
294
- top: 50%;
295
- transform: translateY(-50%);
296
- padding: 2px;
297
- background: #f3f3f3;
298
- }
299
-
300
- .fileImagePreview:hover {
301
- height: 180px;
302
- width: 180px;
303
- z-index: 9999;
304
- padding: 8px;
305
- cursor: pointer;
306
- -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.35);
307
- -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.35);
308
- box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.35);
309
- }
310
-
311
- .filename {
312
- display: block;
313
- position: relative;
314
- width: calc(100% - 110px);
315
- color: #b9bbbd;
316
- padding: 0 0 0 5px;
317
- }
318
-
319
- .filename small {
320
- position: absolute;
321
- right: 0px;
322
- top: 0px;
323
- height: 100%;
324
- font-weight: normal;
325
- background: #cdcdcd;
326
- padding: 5px;
327
- border-radius: 8px;
328
- line-height: 1;
329
- }
330
-
331
- .filename.selected {
332
- color: #000;
333
- }
334
-
335
- .filebutton {
336
- margin-left: auto;
337
- /* position: absolute;
338
- right: -2px;
339
- top: 5px; */
340
- min-width: 80px;
341
- /* height: calc(100% - 10px); */
342
- padding: 8px;
343
- border: none;
344
- background: #d0d6de;
345
- color: #464255;
346
- border-radius: 8px;
347
- flex-shrink: 0;
348
-
349
- }
350
-
351
- .filebutton:hover {
352
- background: #c7ced6;
353
- }
354
-
355
- .filebuttonremove {
356
- width: 20px;
357
- height: 20px;
358
- background: #c7ced6;
359
- color: #fff;
360
- border: none;
361
- padding: 0px;
362
- border-radius: 50%;
363
- font-size: 12px;
364
- cursor: pointer;
365
- margin-left: auto;
366
- flex-shrink: 0;
367
-
368
- /* position: absolute; */
369
- /* right: 10px;
370
- top: 50%;
371
- transform: translateY(-50%); */
372
- }
373
-
374
- .description {
375
- display: block;
376
- width: 100%;
377
- font-size: 10px;
378
- padding-top: 2px;
379
- color: #737a83;
380
- }
381
-
382
- @media screen and (max-width: 768px) {
383
- .container {
384
- font-size: 14px;
385
- }
386
-
387
- .inputblock {
388
- padding-right: 6px;
389
- }
390
-
391
- .filebutton {
392
- min-width: 70px;
393
- padding: 6px;
394
- }
395
-
396
- .inputblockicon .icon,
397
- .inputblockicon .eye {
398
- font-size: 22px;
399
- }
400
- }
401
-
402
- @media screen and (max-width: 480px) {
403
- .container {
404
- font-size: 11px;
405
- }
406
-
407
- .inputblock {
408
- padding-right: 4px;
409
- }
410
-
411
- .filebutton {
412
- min-width: 60px;
413
- padding: 4px;
414
- }
415
-
416
- .inputblockicon .icon,
417
- .inputblockicon .eye {
418
- font-size: 20px;
419
- }
420
- }
@@ -1,186 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
-
3
- // Global olarak ymaps yükleyicisi
4
- let ymapsLoader;
5
-
6
- const loadYandexMapsAPI = (APIKEY) => {
7
- if (ymapsLoader) {
8
- return ymapsLoader;
9
- }
10
-
11
- ymapsLoader = new Promise((resolve, reject) => {
12
- if (window.ymaps) {
13
- resolve(window.ymaps);
14
- } else {
15
- const script = document.getElementById("yandexmapapi");
16
-
17
- if (!script) {
18
- const newScript = document.createElement('script');
19
- newScript.id = "yandexmapapi";
20
- newScript.src = `https://api-maps.yandex.com/2.1/?apikey=${APIKEY}&lang=tr_TR`;
21
- newScript.async = true;
22
- document.head.appendChild(newScript);
23
-
24
- newScript.onload = () => {
25
- window.ymaps.ready(() => resolve(window.ymaps));
26
- };
27
-
28
- newScript.onerror = reject;
29
- } else {
30
- script.onload = () => {
31
- window.ymaps.ready(() => resolve(window.ymaps));
32
- };
33
- }
34
- }
35
- });
36
-
37
- return ymapsLoader;
38
- };
39
-
40
- const YandexMap = ({ className = "", value = null, address = null, addressSearch = false, onChange = null, onAddress = null, style = null, APIKEY = null }) => {
41
- const [loaded, setLoaded] = useState(false);
42
- const [position, setPosition] = useState(null);
43
- const [error, setError] = useState(null);
44
- const [componentKey] = useState(Date.now() + '' + (Math.floor(Math.random() * (10 - 1)) + 1));
45
- const markerRef = useRef(null); // Marker için referans
46
-
47
- const currentLocation = () => {
48
- if (value) {
49
- maps_load(parseFloat(value.coords[0]), parseFloat(value.coords[1]), parseInt(value.zoom));
50
- return;
51
- }
52
-
53
- if (navigator.geolocation) {
54
- navigator.geolocation.getCurrentPosition(
55
- (position) => {
56
- maps_load(position.coords.latitude, position.coords.longitude, 12);
57
- },
58
- (error) => {
59
- console.error(error.message);
60
- maps_load(40.32110315567054, 32.199745873178124, 8);
61
- }
62
- );
63
- } else {
64
- maps_load(40.32110315567054, 32.199745873178124, 8);
65
- setError("Geolocation is not supported by this browser.");
66
- }
67
- };
68
-
69
- const maps_load = (coorX, coorY, zoom = 10) => {
70
- document.getElementById("map" + componentKey).innerHTML = "";
71
-
72
- const myMap = new ymaps.Map("map" + componentKey, {
73
- center: [coorX, coorY],
74
- zoom: zoom,
75
- });
76
-
77
- createMarker(myMap, [coorX, coorY], zoom);
78
-
79
- myMap.events.add('click', (e) => {
80
- const coords = e.get('coords');
81
- let curzoom = myMap.getZoom();
82
- // if (curzoom < 17) {
83
- // curzoom = 17;
84
- // myMap.setZoom(curzoom);
85
- // }
86
-
87
- setPosition({ coords: coords, zoom: curzoom });
88
- getAddress(coords);
89
- createMarker(myMap, coords, curzoom);
90
- });
91
-
92
- };
93
-
94
- const createMarker = (myMap, coords, curzoom) => {
95
- if (markerRef.current) {
96
- myMap.geoObjects.remove(markerRef.current); // Önceki marker'ı kaldır
97
- }
98
- const newMarker = new ymaps.Placemark(coords, {
99
- balloonContent: `Yeni Koordinatlar: ${coords[0]}, ${coords[1]}`,
100
- });
101
-
102
- myMap.geoObjects.add(newMarker);
103
- markerRef.current = newMarker;
104
- // myMap.setCenter(coords, curzoom);
105
- };
106
-
107
- const getAddress = (coords) => {
108
- if (!onAddress) return;
109
-
110
- ymaps.geocode(coords).then((res) => {
111
- const firstGeoObject = res.geoObjects.get(0);
112
-
113
- if (firstGeoObject) {
114
- const address = firstGeoObject.getAddressLine();
115
- onAddress(address);
116
- }
117
- });
118
- };
119
-
120
- const getAddressCoor = () => {
121
- const geocodeUrl = `https://geocode-maps.yandex.ru/1.x/?geocode=${encodeURIComponent(address)}&format=json&apikey=${APIKEY}`;
122
-
123
- fetch(geocodeUrl)
124
- .then(response => response.json())
125
- .then(data => {
126
- if (data.response.GeoObjectCollection.featureMember.length > 0) {
127
- const firstResult = data.response.GeoObjectCollection.featureMember[0].GeoObject;
128
- const pos = firstResult.Point.pos.split(' ');
129
-
130
- maps_load(parseFloat(pos[1]), parseFloat(pos[0]), 17)
131
- }
132
- })
133
- .catch(err => {
134
- setError(`Hata: ${err.message}`);
135
- });
136
- }
137
-
138
- useEffect(() => {
139
- if (addressSearch && !markerRef.current && address && address != "") {
140
- getAddressCoor();
141
- }
142
- }, [addressSearch])
143
-
144
- useEffect(() => {
145
- if (onChange && loaded) {
146
- onChange(position);
147
- }
148
- }, [position]);
149
-
150
- const opened = () => {
151
- currentLocation();
152
-
153
- setTimeout(() => {
154
- setLoaded(true);
155
- }, 1000);
156
- };
157
-
158
- useEffect(() => {
159
- if (loaded && value) {
160
- maps_load(parseFloat(value.coords[0]), parseFloat(value.coords[1]), parseInt(value.zoom));
161
- }
162
- }, [value]);
163
-
164
- useEffect(() => {
165
- // if (loaded && value) {
166
- // maps_load(parseFloat(value.coords[0]), parseFloat(value.coords[1]), parseInt(value.zoom));
167
- // }
168
- }, [loaded]);
169
-
170
- useEffect(() => {
171
- if (!APIKEY) {
172
- APIKEY = "0d21dc94-68eb-4245-871f-a56081b703b3";
173
- }
174
-
175
- loadYandexMapsAPI(APIKEY)
176
- .then(() => {
177
- opened(); // Harita işlevselliğinizi başlatın
178
- })
179
- .catch((err) => console.error("Yandex Maps API yüklenemedi", err));
180
- }, []);
181
-
182
-
183
- return <div id={"map" + componentKey} className={"w-full h-72 " + className} style={style}></div>;
184
- };
185
-
186
- export default YandexMap;
@@ -1,62 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { Link } from 'react-router-dom';
3
- import styles from "./MyMenu.module.css"
4
- import { PiCaretDown, PiCaretUp } from 'react-icons/pi';
5
- import { GoDotFill } from 'react-icons/go';
6
-
7
- function MenuItem({ children = null, to = "", text = "", className = null, badge = null, icon = null, title = "", defaultOpen=false, defaultRoute = "", isShortMenu = false }) {
8
- // let selected = window.location.pathname == to || (window.location.pathname == defaultRoute);
9
-
10
-
11
- const [open, setOpen] = useState(defaultOpen);
12
- const [selected, setSelected] = useState(false);
13
-
14
- useEffect(() => {
15
- setSelected(children ? false : (window.location.pathname == to || (window.location.pathname == defaultRoute || window.location.pathname.includes(to))));
16
- }, [window.location.pathname]);
17
-
18
-
19
- return (
20
- <>
21
- {children &&
22
-
23
- <div className={styles.menuItemOwner}>
24
- <div
25
- className={
26
- styles.menuItem + " " +
27
- (className != null ? className : "") + " " +
28
- (selected ? styles.selected : '') + " " +
29
- (open ? styles.menuItemOpen : '') + " " +
30
- (isShortMenu ? styles.menuItemShortMenu : '')
31
- } title={title == "" ? text : title}
32
- onClick={() => setOpen(!open)}
33
- >
34
- {icon && <div className={styles.menuItemIcon}>{icon}</div>}
35
- <span className={styles.menuItemText + " " + (badge != null ? styles.menuItemTextBadge : '')}>
36
- {text}
37
- {badge != null && typeof badge !== 'object' ? <span className={styles.menuItemBadge}>{badge.toString()}</span> : badge}
38
- </span>
39
-
40
- {open &&
41
- <PiCaretUp className={`font-bold text-2xl ${styles.menuItemIconSubMenu} ${open ? styles.menuItemIconSubMenuOpen : ''}`} />
42
- ||
43
- <PiCaretDown className={`font-bold text-2xl ${styles.menuItemIconSubMenu} ${open ? styles.menuItemIconSubMenuOpen : ''}`} />}
44
- </div>
45
-
46
- <div className={styles.menuItemChildren + " " + (open ? styles.menuItemChildrenOpen : '')}>
47
- {children}
48
- </div>
49
- </div> ||
50
- <Link to={to} className={styles.menuItem + " " + (className != null ? className : "") + " " + (selected ? styles.selected : '') + " " + (isShortMenu ? styles.menuItemShortMenu : '')} title={title == "" ? text : title}>
51
- {icon && <div className={styles.menuItemIcon}>{icon}</div> || <GoDotFill />}
52
- <span className={styles.menuItemText + " " + (badge != null ? styles.menuItemTextBadge : '')}>
53
- {text}
54
- {badge != null && typeof badge !== 'object' ? <span className={styles.menuItemBadge}>{badge.toString()}</span> : badge}
55
- </span>
56
- </Link>
57
- }
58
- </>
59
- )
60
- }
61
-
62
- export default MenuItem