@sydsoft/base 1.58.0 → 2.0.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 (81) hide show
  1. package/dist/esm/_lib/baseFunctions.d.ts +16 -0
  2. package/dist/esm/_lib/baseFunctions.js +102 -0
  3. package/dist/esm/_lib/inputMask.d.ts +12 -0
  4. package/dist/esm/_lib/inputMask.js +234 -0
  5. package/dist/esm/_lib/listFunctions.d.ts +7 -0
  6. package/dist/esm/_lib/listFunctions.js +119 -0
  7. package/dist/esm/_lib/storage/cookies.d.ts +9 -0
  8. package/dist/esm/_lib/storage/cookies.js +39 -0
  9. package/dist/esm/_lib/storage/encData.d.ts +7 -0
  10. package/dist/esm/_lib/storage/encData.js +48 -0
  11. package/dist/esm/_lib/storage/localStorage.d.ts +11 -0
  12. package/dist/esm/_lib/storage/localStorage.js +74 -0
  13. package/dist/esm/_lib/storage/sessionStorage.d.ts +11 -0
  14. package/dist/esm/_lib/storage/sessionStorage.js +74 -0
  15. package/dist/esm/_lib/useInterval.d.ts +6 -0
  16. package/dist/esm/_lib/useInterval.js +24 -0
  17. package/dist/esm/alert/index.d.ts +23 -0
  18. package/dist/esm/alert/index.js +112 -0
  19. package/dist/esm/alert/index.module.css +125 -0
  20. package/dist/esm/box/Box.d.ts +14 -0
  21. package/dist/esm/box/Box.js +20 -0
  22. package/dist/esm/box/Box.module.css +159 -0
  23. package/dist/esm/box/BoxContent.d.ts +14 -0
  24. package/dist/esm/box/BoxContent.js +7 -0
  25. package/dist/esm/box/BoxFooter.d.ts +15 -0
  26. package/dist/esm/box/BoxFooter.js +13 -0
  27. package/dist/esm/box/BoxHeader.d.ts +21 -0
  28. package/dist/esm/box/BoxHeader.js +14 -0
  29. package/dist/esm/box/index.d.ts +9 -0
  30. package/dist/esm/box/index.js +9 -0
  31. package/dist/esm/countDown/index.d.ts +27 -0
  32. package/dist/esm/countDown/index.js +102 -0
  33. package/dist/esm/dateTime/index.d.ts +17 -0
  34. package/dist/esm/dateTime/index.js +81 -0
  35. package/dist/esm/form/Button.d.ts +32 -0
  36. package/dist/esm/form/Button.js +81 -0
  37. package/dist/esm/form/Checkbox.d.ts +28 -0
  38. package/dist/esm/form/Checkbox.js +28 -0
  39. package/dist/esm/form/Dialog.d.ts +25 -0
  40. package/dist/esm/form/Dialog.js +40 -0
  41. package/dist/esm/form/Form.d.ts +15 -0
  42. package/dist/esm/form/Form.js +17 -0
  43. package/dist/esm/form/FormOlustur.d.ts +44 -0
  44. package/dist/esm/form/FormOlustur.js +57 -0
  45. package/dist/esm/form/Input.d.ts +66 -0
  46. package/dist/esm/form/Input.js +196 -0
  47. package/dist/esm/form/Label.d.ts +12 -0
  48. package/dist/esm/form/Label.js +14 -0
  49. package/dist/esm/form/SearchableInput.d.ts +42 -0
  50. package/dist/esm/form/SearchableInput.js +277 -0
  51. package/dist/esm/form/UploadBase.d.ts +25 -0
  52. package/dist/esm/form/UploadBase.js +86 -0
  53. package/dist/esm/form/index.d.ts +14 -0
  54. package/dist/esm/form/index.js +14 -0
  55. package/dist/esm/form/styles/Button.module.css +151 -0
  56. package/dist/esm/form/styles/Input.module.css +227 -0
  57. package/dist/esm/form/styles/Label.module.css +37 -0
  58. package/dist/esm/form/styles/SearchableInput.module.css +86 -0
  59. package/dist/esm/grid/index.d.ts +43 -0
  60. package/dist/esm/grid/index.js +102 -0
  61. package/dist/esm/grid/index.module.css +812 -0
  62. package/dist/esm/icon/icons.d.ts +27 -0
  63. package/dist/esm/icon/icons.js +28 -0
  64. package/dist/esm/icon/index.d.ts +38 -0
  65. package/dist/esm/icon/index.js +25 -0
  66. package/dist/esm/icon/mui.d.ts +6 -0
  67. package/dist/esm/icon/mui.js +6 -0
  68. package/dist/esm/index.d.ts +24 -0
  69. package/dist/esm/index.js +24 -0
  70. package/dist/esm/menu/index.d.ts +75 -0
  71. package/dist/esm/menu/index.js +59 -0
  72. package/dist/esm/menu/index.module.css +106 -0
  73. package/dist/esm/modal/index.d.ts +23 -0
  74. package/dist/esm/modal/index.js +66 -0
  75. package/dist/esm/modal/index.module.css +83 -0
  76. package/dist/esm/popover/index.d.ts +26 -0
  77. package/dist/esm/popover/index.js +343 -0
  78. package/dist/esm/popover/index.module.css +95 -0
  79. package/dist/esm/tooltip/index.d.ts +16 -0
  80. package/dist/esm/tooltip/index.js +124 -0
  81. package/package.json +12 -8
@@ -0,0 +1,343 @@
1
+ /**
2
+ * @author : izzetseydaoglu
3
+ * @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
4
+ * @version : 2026-02-11 18:50:06
5
+ */
6
+ import { __assign, __rest } from "tslib";
7
+ import { cloneElement, memo, useEffect, useRef } from 'react';
8
+ import { createRoot } from 'react-dom/client';
9
+ import styles from './index.module.css';
10
+ export var Popover = memo(function MemoFunction(_a) {
11
+ var children = _a.children, component = _a.component, _b = _a.position, position = _b === void 0 ? 'top' : _b, _c = _a.arrow, arrow = _c === void 0 ? false : _c, _d = _a.distance, distance = _d === void 0 ? 5 : _d, _e = _a.removeWhenClickInside, removeWhenClickInside = _e === void 0 ? false : _e, _f = _a.hideBackdrop, hideBackdrop = _f === void 0 ? true : _f, _g = _a.fade, fade = _g === void 0 ? true : _g, _h = _a.arrowColor, arrowColor = _h === void 0 ? 'auto' : _h, _j = _a.hover, hover = _j === void 0 ? false : _j, _k = _a.hoverCloseDelay, hoverCloseDelay = _k === void 0 ? 120 : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, other = __rest(_a, ["children", "component", "position", "arrow", "distance", "removeWhenClickInside", "hideBackdrop", "fade", "arrowColor", "hover", "hoverCloseDelay", "keepMounted"]);
12
+ var refComponent = useRef(null);
13
+ var closeTimer = useRef(null);
14
+ var hoverCloseTimer = useRef(null);
15
+ var popoverRef = useRef(null);
16
+ var rootRef = useRef(null);
17
+ var zIndexRef = useRef(null);
18
+ useEffect(function () {
19
+ if (typeof window === 'undefined')
20
+ return;
21
+ return function () {
22
+ popoverSil(false);
23
+ };
24
+ }, []);
25
+ var checkHideBackDrop = function (e) {
26
+ var spopover = popoverRef.current;
27
+ if (!spopover)
28
+ return;
29
+ if (!((e === null || e === void 0 ? void 0 : e.target) instanceof Node)) {
30
+ popoverSil();
31
+ return;
32
+ }
33
+ if (!spopover.contains(e.target))
34
+ popoverSil();
35
+ };
36
+ var popoverEkle = function (e) {
37
+ var _a, _b;
38
+ if (popoverRef.current && keepMounted) {
39
+ var popover_1 = popoverRef.current;
40
+ var target_1 = e.currentTarget;
41
+ var wasVisible = popover_1.classList.contains(styles.visible);
42
+ (_b = (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.call(_a, children);
43
+ applyArrowColor(popover_1);
44
+ popoverPosition({ target: target_1, position: position });
45
+ popover_1.style.zIndex = String(nextPopoverZIndex());
46
+ popover_1.classList.remove(styles.closing);
47
+ popover_1.classList.add(styles.visible);
48
+ if (!wasVisible) {
49
+ if (hideBackdrop) {
50
+ window.addEventListener('mousedown', checkHideBackDrop);
51
+ window.addEventListener('blur', checkHideBackDrop);
52
+ }
53
+ if (removeWhenClickInside)
54
+ popover_1.addEventListener('mouseup', popoverGecikmeliSil);
55
+ if (hover) {
56
+ popover_1.addEventListener('mouseenter', clearHoverClose);
57
+ popover_1.addEventListener('mouseleave', scheduleHoverClose);
58
+ }
59
+ incrementBodyPopover();
60
+ }
61
+ return;
62
+ }
63
+ popoverSil(false);
64
+ var popover = document.createElement('div');
65
+ popover.classList.add('spopover', styles.popover);
66
+ var zIndex = nextPopoverZIndex();
67
+ zIndexRef.current = zIndex;
68
+ document.body.appendChild(popover);
69
+ // ReactDOM.render(children, popover)
70
+ var root = createRoot(popover);
71
+ root.render(children);
72
+ popoverRef.current = popover;
73
+ rootRef.current = root;
74
+ var target = e.currentTarget;
75
+ refComponent.current && refComponent.current.classList.add('spopover_active');
76
+ setTimeout(function () {
77
+ var _a;
78
+ applyArrowColor(popover);
79
+ popoverPosition({ target: target, position: position });
80
+ popover.style.zIndex = String((_a = zIndexRef.current) !== null && _a !== void 0 ? _a : zIndex);
81
+ popover.classList.add(styles.visible);
82
+ }, 100);
83
+ if (hideBackdrop) {
84
+ window.addEventListener('mousedown', checkHideBackDrop);
85
+ window.addEventListener('blur', checkHideBackDrop);
86
+ }
87
+ if (removeWhenClickInside)
88
+ popover.addEventListener('mouseup', popoverGecikmeliSil);
89
+ if (hover) {
90
+ popover.addEventListener('mouseenter', clearHoverClose);
91
+ popover.addEventListener('mouseleave', scheduleHoverClose);
92
+ }
93
+ incrementBodyPopover();
94
+ };
95
+ var popoverSil = function (animate) {
96
+ if (animate === void 0) { animate = true; }
97
+ refComponent.current && refComponent.current.classList.remove('spopover_active');
98
+ var check = popoverRef.current;
99
+ var wasVisible = !!(check === null || check === void 0 ? void 0 : check.classList.contains(styles.visible));
100
+ if (check) {
101
+ if (removeWhenClickInside)
102
+ check.removeEventListener('mouseup', popoverGecikmeliSil);
103
+ if (hover) {
104
+ check.removeEventListener('mouseenter', clearHoverClose);
105
+ check.removeEventListener('mouseleave', scheduleHoverClose);
106
+ }
107
+ if (closeTimer.current)
108
+ window.clearTimeout(closeTimer.current);
109
+ if (hoverCloseTimer.current)
110
+ window.clearTimeout(hoverCloseTimer.current);
111
+ if (!fade || !animate) {
112
+ if (!keepMounted) {
113
+ var root_1 = rootRef.current;
114
+ window.setTimeout(function () {
115
+ var _a;
116
+ (_a = root_1 === null || root_1 === void 0 ? void 0 : root_1.unmount) === null || _a === void 0 ? void 0 : _a.call(root_1);
117
+ }, 0);
118
+ check.remove();
119
+ popoverRef.current = null;
120
+ rootRef.current = null;
121
+ }
122
+ else {
123
+ check.classList.remove(styles.visible);
124
+ check.classList.remove(styles.closing);
125
+ }
126
+ }
127
+ else if (!check.classList.contains(styles.closing)) {
128
+ check.classList.add(styles.closing);
129
+ closeTimer.current = window.setTimeout(function () {
130
+ var _a;
131
+ if (!keepMounted) {
132
+ var root = rootRef.current;
133
+ (_a = root === null || root === void 0 ? void 0 : root.unmount) === null || _a === void 0 ? void 0 : _a.call(root);
134
+ check.remove();
135
+ popoverRef.current = null;
136
+ rootRef.current = null;
137
+ }
138
+ else {
139
+ check.classList.remove(styles.visible);
140
+ check.classList.remove(styles.closing);
141
+ }
142
+ }, FADE_DURATION);
143
+ }
144
+ }
145
+ if (hideBackdrop) {
146
+ window.removeEventListener('mousedown', checkHideBackDrop);
147
+ window.removeEventListener('blur', checkHideBackDrop);
148
+ }
149
+ if (wasVisible)
150
+ decrementBodyPopover();
151
+ };
152
+ var popoverGecikmeliSil = function () { return setTimeout(function () { return popoverSil(); }, 100); };
153
+ var clearHoverClose = function () {
154
+ if (hoverCloseTimer.current)
155
+ window.clearTimeout(hoverCloseTimer.current);
156
+ hoverCloseTimer.current = null;
157
+ };
158
+ var scheduleHoverClose = function () {
159
+ clearHoverClose();
160
+ hoverCloseTimer.current = window.setTimeout(function () { return popoverSil(); }, hoverCloseDelay);
161
+ };
162
+ var popoverPosition = function (_a) {
163
+ var target = _a.target, position = _a.position;
164
+ var popover = popoverRef.current;
165
+ if (popover) {
166
+ var arrowMargin = arrow ? 5 : 0;
167
+ var margin = distance + arrowMargin;
168
+ var _b = normalizePosition(position), preferredSide = _b.side, preferredAlign = _b.align;
169
+ var targetPosition = target.getBoundingClientRect();
170
+ var popoverPosition_1 = popover.getBoundingClientRect();
171
+ var style = [];
172
+ var side = preferredSide;
173
+ if (side === 'top' && targetPosition.top - popoverPosition_1.height - margin < 0)
174
+ side = 'bottom';
175
+ if (side === 'bottom' && targetPosition.bottom + popoverPosition_1.height + margin > window.innerHeight)
176
+ side = 'top';
177
+ if (side === 'left' && targetPosition.left - popoverPosition_1.width - margin < 0)
178
+ side = 'right';
179
+ if (side === 'right' && targetPosition.right + popoverPosition_1.width + margin > window.innerWidth)
180
+ side = 'left';
181
+ if (side === 'top')
182
+ style.push('top:' + (targetPosition.top - popoverPosition_1.height - margin) + 'px');
183
+ if (side === 'bottom')
184
+ style.push('top:' + (targetPosition.bottom + margin) + 'px');
185
+ if (side === 'left')
186
+ style.push('left:' + (targetPosition.left - popoverPosition_1.width - margin) + 'px');
187
+ if (side === 'right')
188
+ style.push('left:' + (targetPosition.right + margin) + 'px');
189
+ var alignClass = 'center';
190
+ if (side === 'top' || side === 'bottom') {
191
+ var _c = resolveHorizontalAlign(preferredAlign, targetPosition, popoverPosition_1), left = _c.left, resolvedAlign = _c.alignClass;
192
+ alignClass = resolvedAlign;
193
+ style.push('left:' + left + 'px');
194
+ }
195
+ else {
196
+ var _d = resolveVerticalAlign(preferredAlign, targetPosition, popoverPosition_1), top_1 = _d.top, resolvedAlign = _d.alignClass;
197
+ alignClass = resolvedAlign;
198
+ style.push('top:' + top_1 + 'px');
199
+ }
200
+ var classNames = ['spopover', styles.popover, arrow ? styles.arrow : '', fade ? '' : styles.noFade, sideClass[side], alignClassMap[alignClass]].filter(Boolean);
201
+ popover.className = classNames.join(' ');
202
+ popover.setAttribute('style', style.join(';'));
203
+ applyArrowColor(popover);
204
+ }
205
+ };
206
+ function applyArrowColor(popoverEl) {
207
+ var _a;
208
+ if (!arrowColor) {
209
+ popoverEl.style.removeProperty('--popover-arrow-color');
210
+ return;
211
+ }
212
+ if (arrowColor === 'auto') {
213
+ var targetEl = (_a = popoverEl.firstElementChild) !== null && _a !== void 0 ? _a : popoverEl;
214
+ var bg = window.getComputedStyle(targetEl).backgroundColor;
215
+ if (bg === 'rgba(0, 0, 0, 0)' || bg === 'transparent') {
216
+ var parent_1 = targetEl.parentElement;
217
+ if (parent_1)
218
+ bg = window.getComputedStyle(parent_1).backgroundColor;
219
+ }
220
+ if (bg)
221
+ popoverEl.style.setProperty('--popover-arrow-color', bg);
222
+ return;
223
+ }
224
+ popoverEl.style.setProperty('--popover-arrow-color', arrowColor);
225
+ }
226
+ function incrementBodyPopover() {
227
+ var body = document.body;
228
+ var count = Number(body.dataset.spopoverCount || '0') + 1;
229
+ body.dataset.spopoverCount = String(count);
230
+ if (count > 0)
231
+ body.classList.add('spopover_open');
232
+ }
233
+ function decrementBodyPopover() {
234
+ var body = document.body;
235
+ var count = Math.max(0, Number(body.dataset.spopoverCount || '0') - 1);
236
+ if (count === 0) {
237
+ delete body.dataset.spopoverCount;
238
+ body.classList.remove('spopover_open');
239
+ }
240
+ else {
241
+ body.dataset.spopoverCount = String(count);
242
+ }
243
+ }
244
+ function nextPopoverZIndex() {
245
+ var body = document.body;
246
+ var current = Number(body.dataset.spopoverZIndex || '10000');
247
+ var next = current + 1;
248
+ body.dataset.spopoverZIndex = String(next);
249
+ return next;
250
+ }
251
+ var componentProps = __assign({ ref: refComponent, onClick: function (e) {
252
+ var _a, _b;
253
+ (_b = (_a = component.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
254
+ popoverEkle(e);
255
+ } }, other);
256
+ if (hover) {
257
+ componentProps.onMouseEnter = function (e) {
258
+ var _a, _b;
259
+ (_b = (_a = component.props) === null || _a === void 0 ? void 0 : _a.onMouseEnter) === null || _b === void 0 ? void 0 : _b.call(_a, e);
260
+ clearHoverClose();
261
+ popoverEkle(e);
262
+ };
263
+ componentProps.onMouseLeave = function (e) {
264
+ var _a, _b;
265
+ (_b = (_a = component.props) === null || _a === void 0 ? void 0 : _a.onMouseLeave) === null || _b === void 0 ? void 0 : _b.call(_a, e);
266
+ scheduleHoverClose();
267
+ };
268
+ }
269
+ return cloneElement(component, componentProps);
270
+ });
271
+ var sideClass = {
272
+ top: styles.top,
273
+ bottom: styles.bottom,
274
+ left: styles.left,
275
+ right: styles.right
276
+ };
277
+ var alignClassMap = {
278
+ start: styles.alignStart,
279
+ center: styles.alignCenter,
280
+ end: styles.alignEnd
281
+ };
282
+ var FADE_DURATION = 160;
283
+ var normalizePosition = function (position) {
284
+ var _a = position.split('-'), side = _a[0], rawAlign = _a[1];
285
+ if (side === 'top' || side === 'bottom') {
286
+ var align_1 = rawAlign === 'left' || rawAlign === 'right' ? rawAlign : 'center';
287
+ return { side: side, align: align_1 };
288
+ }
289
+ var align = rawAlign === 'top' || rawAlign === 'bottom' ? rawAlign : 'center';
290
+ return { side: side, align: align };
291
+ };
292
+ var resolveHorizontalAlign = function (align, target, popover) {
293
+ var clamp = 2;
294
+ var left = 0;
295
+ var alignClass = 'center';
296
+ if (align === 'left') {
297
+ left = target.left;
298
+ alignClass = 'start';
299
+ }
300
+ else if (align === 'right') {
301
+ left = target.right - popover.width;
302
+ alignClass = 'end';
303
+ }
304
+ else {
305
+ left = target.left + target.width / 2 - popover.width / 2;
306
+ alignClass = 'center';
307
+ }
308
+ if (left < clamp) {
309
+ left = clamp;
310
+ alignClass = 'start';
311
+ }
312
+ else if (left + popover.width > window.innerWidth - clamp) {
313
+ left = window.innerWidth - popover.width - clamp;
314
+ alignClass = 'end';
315
+ }
316
+ return { left: left, alignClass: alignClass };
317
+ };
318
+ var resolveVerticalAlign = function (align, target, popover) {
319
+ var clamp = 2;
320
+ var top = 0;
321
+ var alignClass = 'center';
322
+ if (align === 'top') {
323
+ top = target.top;
324
+ alignClass = 'start';
325
+ }
326
+ else if (align === 'bottom') {
327
+ top = target.bottom - popover.height;
328
+ alignClass = 'end';
329
+ }
330
+ else {
331
+ top = target.top + target.height / 2 - popover.height / 2;
332
+ alignClass = 'center';
333
+ }
334
+ if (top < clamp) {
335
+ top = clamp;
336
+ alignClass = 'start';
337
+ }
338
+ else if (top + popover.height > window.innerHeight - clamp) {
339
+ top = window.innerHeight - popover.height - clamp;
340
+ alignClass = 'end';
341
+ }
342
+ return { top: top, alignClass: alignClass };
343
+ };
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @author : izzetseydaoglu
3
+ * @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
4
+ * @version : 2026-02-11 18:49:45
5
+ */
6
+
7
+ .popover {
8
+ position: fixed;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ z-index: 10000;
13
+ opacity: 0;
14
+ visibility: hidden;
15
+ pointer-events: none;
16
+ transition: opacity 160ms ease;
17
+ }
18
+
19
+ .noFade {
20
+ transition: none;
21
+ }
22
+
23
+ .visible {
24
+ opacity: 1;
25
+ visibility: visible;
26
+ pointer-events: auto;
27
+ }
28
+
29
+ .closing {
30
+ opacity: 0;
31
+ }
32
+
33
+ .arrow::after {
34
+ content: "";
35
+ position: absolute;
36
+ border-width: 5px;
37
+ border-style: solid;
38
+ width: 0;
39
+ height: 0;
40
+ border-color: var(--popover-arrow-color, #757575);
41
+ }
42
+
43
+ .arrow.top::after {
44
+ top: 100%;
45
+ border-color: var(--popover-arrow-color, #757575) transparent transparent transparent;
46
+ }
47
+
48
+ .arrow.bottom::after {
49
+ bottom: 100%;
50
+ border-color: transparent transparent var(--popover-arrow-color, #757575) transparent;
51
+ }
52
+
53
+ .arrow.left::after {
54
+ left: 100%;
55
+ margin-left: -1px;
56
+ border-color: transparent transparent transparent var(--popover-arrow-color, #757575);
57
+ }
58
+
59
+ .arrow.right::after {
60
+ right: 100%;
61
+ margin-right: -1px;
62
+ border-color: transparent var(--popover-arrow-color, #757575) transparent transparent;
63
+ }
64
+
65
+ .arrow.top.alignStart::after,
66
+ .arrow.bottom.alignStart::after {
67
+ left: 12px;
68
+ }
69
+
70
+ .arrow.top.alignCenter::after,
71
+ .arrow.bottom.alignCenter::after {
72
+ left: 50%;
73
+ transform: translateX(-50%);
74
+ }
75
+
76
+ .arrow.top.alignEnd::after,
77
+ .arrow.bottom.alignEnd::after {
78
+ right: 12px;
79
+ }
80
+
81
+ .arrow.left.alignStart::after,
82
+ .arrow.right.alignStart::after {
83
+ top: 12px;
84
+ }
85
+
86
+ .arrow.left.alignCenter::after,
87
+ .arrow.right.alignCenter::after {
88
+ top: 50%;
89
+ transform: translateY(-50%);
90
+ }
91
+
92
+ .arrow.left.alignEnd::after,
93
+ .arrow.right.alignEnd::after {
94
+ bottom: 12px;
95
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author : izzetseydaoglu
3
+ * @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
4
+ * @version : 2026-02-10 20:23:07
5
+ */
6
+ import React, { ReactElement } from "react";
7
+ export type typeTooltipPosition = "top" | "bottom" | "left" | "right";
8
+ interface Props {
9
+ children: ReactElement;
10
+ title: string;
11
+ position?: typeTooltipPosition;
12
+ arrow?: boolean;
13
+ distance?: number;
14
+ }
15
+ export declare const Tooltip: React.NamedExoticComponent<Props>;
16
+ export {};
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @author : izzetseydaoglu
3
+ * @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
4
+ * @version : 2026-02-10 20:23:07
5
+ */
6
+ import { __assign, __rest } from "tslib";
7
+ import React, { memo, useEffect } from "react";
8
+ export var Tooltip = memo(function MemoFunction(_a) {
9
+ var children = _a.children, title = _a.title, _b = _a.position, position = _b === void 0 ? "top" : _b, _c = _a.arrow, arrow = _c === void 0 ? false : _c, _d = _a.distance, distance = _d === void 0 ? 5 : _d, other = __rest(_a, ["children", "title", "position", "arrow", "distance"]);
10
+ useEffect(function () {
11
+ if (typeof window === "undefined")
12
+ return null;
13
+ var cssCheck = document.getElementsByClassName("stooltip_css")[0];
14
+ if (!cssCheck) {
15
+ var head = document.getElementsByTagName('head')[0];
16
+ var s = document.createElement('style');
17
+ s.setAttribute('type', 'text/css');
18
+ s.classList.add("stooltip_css");
19
+ s.appendChild(document.createTextNode(tooltipCss));
20
+ head.appendChild(s);
21
+ }
22
+ return function () { return tooltipSil(); };
23
+ }, []);
24
+ var tooltipEkle = function (e) {
25
+ tooltipSil();
26
+ var tooltip = document.createElement("div");
27
+ tooltip.innerHTML = title;
28
+ tooltip.classList.add("stooltip");
29
+ document.body.appendChild(tooltip);
30
+ tooltipPosition({ target: e.currentTarget, position: position });
31
+ };
32
+ var tooltipSil = function () {
33
+ var check = document.body.getElementsByClassName("stooltip")[0];
34
+ if (check)
35
+ check.remove();
36
+ };
37
+ var tooltipPosition = function (_a) {
38
+ var target = _a.target, position = _a.position;
39
+ var tooltip = document.body.getElementsByClassName("stooltip")[0];
40
+ if (tooltip) {
41
+ var arrowMargin = (arrow) ? 5 : 0;
42
+ var margin = distance + arrowMargin;
43
+ if (arrow)
44
+ tooltip.classList.add("arrow");
45
+ var targetPosition = target.getBoundingClientRect();
46
+ var tooltipPosition_1 = tooltip.getBoundingClientRect();
47
+ var style = [];
48
+ if (position === "top" || position === "bottom") {
49
+ if (position === "top") {
50
+ if ((targetPosition.top - tooltipPosition_1.height - margin) < 0) {
51
+ style.push("top:" + (targetPosition.bottom + margin) + "px");
52
+ tooltip.classList.add("bottom");
53
+ }
54
+ else {
55
+ style.push("top:" + (targetPosition.top - tooltipPosition_1.height - margin) + "px");
56
+ tooltip.classList.add("top");
57
+ }
58
+ }
59
+ if (position === "bottom") {
60
+ if ((targetPosition.bottom + tooltipPosition_1.height + margin) > window.innerHeight) {
61
+ style.push("top:" + (targetPosition.top - tooltipPosition_1.height - margin) + "px");
62
+ tooltip.classList.add("top");
63
+ }
64
+ else {
65
+ style.push("top:" + (targetPosition.bottom + margin) + "px");
66
+ tooltip.classList.add("bottom");
67
+ }
68
+ }
69
+ // if ((targetPosition.left - tooltipPosition.width) < 0) {
70
+ if ((targetPosition.left + (targetPosition.width / 2) - (tooltipPosition_1.width / 2)) < 0) {
71
+ style.push("left:2px");
72
+ tooltip.classList.add("start");
73
+ }
74
+ else if ((targetPosition.left + (targetPosition.width / 2) + tooltipPosition_1.width) > window.innerWidth) {
75
+ style.push("right:2px");
76
+ tooltip.classList.add("end");
77
+ }
78
+ else {
79
+ style.push("left:" + (targetPosition.left + (targetPosition.width / 2)) + "px");
80
+ style.push("transform:translate(-50%,0)");
81
+ tooltip.classList.add("center");
82
+ }
83
+ }
84
+ if (position === "left" || position === "right") {
85
+ if (position === "left") {
86
+ if ((targetPosition.left - tooltipPosition_1.width - margin) < 0) {
87
+ style.push("left:" + (targetPosition.right + margin) + "px");
88
+ tooltip.classList.add("right");
89
+ }
90
+ else {
91
+ style.push("left:" + (targetPosition.left - tooltipPosition_1.width - margin) + "px");
92
+ tooltip.classList.add("left");
93
+ }
94
+ }
95
+ if (position === "right") {
96
+ if ((targetPosition.left + (targetPosition.width / 2) + tooltipPosition_1.width + margin) > window.innerWidth) {
97
+ style.push("left:" + (targetPosition.left - tooltipPosition_1.width - margin) + "px");
98
+ tooltip.classList.add("left");
99
+ }
100
+ else {
101
+ style.push("left:" + (targetPosition.right + margin) + "px");
102
+ tooltip.classList.add("right");
103
+ }
104
+ }
105
+ if ((targetPosition.top + (targetPosition.height / 2) - (tooltipPosition_1.height / 2)) < 0) {
106
+ style.push("top:2px");
107
+ tooltip.classList.add("start");
108
+ }
109
+ else if ((targetPosition.top + (targetPosition.height / 2) + (tooltipPosition_1.height / 2)) > window.innerHeight) {
110
+ style.push("bottom:2px");
111
+ tooltip.classList.add("end");
112
+ }
113
+ else {
114
+ style.push("top:" + (targetPosition.top + (targetPosition.height / 2)) + "px");
115
+ style.push("transform:translate(0,-50%)");
116
+ tooltip.classList.add("center");
117
+ }
118
+ }
119
+ tooltip.setAttribute("style", style.join(";"));
120
+ }
121
+ };
122
+ return React.cloneElement(children, __assign({ onMouseEnter: tooltipEkle, onMouseLeave: tooltipSil, onMouseDown: tooltipSil }, other));
123
+ });
124
+ var tooltipCss = "\n.stooltip {\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #1a1a1a;\n color: rgba(255,255,255,0.9);\n text-align: center;\n font-size: 0.9rem;\n font-weight:400;\n padding: 5px 10px;\n border-radius: 8px;\n z-index: 1000000;\n opacity: 0.9;\n pointer-events: none;\n /*transition: all 0.1s;*/\n white-space:pre-line;\n max-width: 300px;\n animation: stooltip_fadein 0.7s;\n}\n\n.stooltip.arrow:after {\n content: \"\";\n position: absolute;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n}\n\n.stooltip.arrow.top:after {\n top: 100%;\n border-color: #1a1a1a transparent transparent transparent;\n}\n\n.stooltip.arrow.top.start:after { left: 15px;}\n\n.stooltip.arrow.top.center:after { left: 50%;}\n\n.stooltip.arrow.top.end:after { right: 15px;}\n\n\n.stooltip.arrow.bottom:after {\n bottom: 100%;\n border-color: transparent transparent #1a1a1a transparent;\n}\n\n.stooltip.arrow.bottom.start:after { left: 15px;}\n\n.stooltip.arrow.bottom.center:after { left: 50%;}\n\n.stooltip.bottom.end:after { right: 15px;}\n\n.stooltip.arrow.left:after {\n margin-left: -1px;\n left: 100%;\n border-color: transparent transparent transparent #1a1a1a;\n}\n\n.stooltip.arrow.left.start:after { top: 5px;}\n\n.stooltip.arrow.left.center:after { top: 50%; margin-top: -5px;}\n\n.stooltip.arrow.left.end:after { bottom: 15px;}\n\n.stooltip.arrow.right:after {\n margin-right: -1px;\n right: 100%;\n border-color: transparent #1a1a1a transparent transparent;\n}\n\n.stooltip.arrow.right.start:after { top: 5px;}\n\n.stooltip.arrow.right.center:after { top: 50%; margin-top: -5px;}\n\n.stooltip.arrow.right.end:after { bottom: 15px;}\n\n@keyframes stooltip_fadein {\n from { opacity: 0; }\n to { opacity: 0.85; }\n}\n";
package/package.json CHANGED
@@ -1,20 +1,23 @@
1
1
  {
2
2
  "name": "@sydsoft/base",
3
3
  "private": false,
4
- "version": "1.58.0",
5
- "main": "../dist/cjs/index.js",
6
- "module": "../dist/esm/index.js",
7
- "types": "../dist/esm/index.d.ts",
4
+ "version": "2.0.0",
5
+ "main": "./dist/esm/index.js",
6
+ "module": "./dist/esm/index.js",
7
+ "types": "./dist/esm/index.d.ts",
8
8
  "files": [
9
- "../dist/",
9
+ "./dist/",
10
10
  "README.md"
11
11
  ],
12
12
  "scripts": {
13
- "clean": "rm -rf ../dist",
13
+ "clean": "rm -rf ./dist",
14
14
  "test": "rm -rf ../*.tgz && rm -rf ../.next && npm run build && npm pack --pack-destination ../ && cd ../ && npm uninstall @sydsoft/base && npm install *.tgz && npm run dev",
15
- "copyFiles": "find . -name \"*.css\" -not -path \"../dist/*\" -exec sh -c 'for f do mkdir -p \"../dist/esm/$(dirname \"$f\")\"; cp \"$f\" \"../dist/esm/$f\"; done' sh {} +",
15
+ "copyFiles": "find . -name \"*.css\" -not -path \"./dist/*\" -exec sh -c 'for f do mkdir -p \"./dist/esm/$(dirname \"$f\")\"; cp \"$f\" \"./dist/esm/$f\"; done' sh {} +",
16
16
  "build": "npm run clean && tsc && npm run copyFiles",
17
- "publishNPM": "npm run build && npm version patch && npm version minor && npm publish --dry-run && npm publish --access public && npm run clean"
17
+ "publish:patch": "npm run build && npm version patch && npm publish --access public && npm run clean",
18
+ "publish:minor": "npm run build && npm version minor && npm publish --access public && npm run clean",
19
+ "publish:major": "npm run build && npm version major && npm publish --access public && npm run clean",
20
+ "publish:test": "npm run build && npm publish --dry-run && npm run clean"
18
21
  },
19
22
  "publishConfig": {
20
23
  "access": "public"
@@ -30,6 +33,7 @@
30
33
  "peerDependencies": {
31
34
  "react": ">=18",
32
35
  "react-dom": ">=18",
36
+ "next": ">=13",
33
37
  "nookies": "^2.5.2"
34
38
  },
35
39
  "devDependencies": {