@arkyn/components 3.0.1-beta.146 → 3.0.1-beta.148
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.
- package/dist/bundle.css +1 -1
- package/dist/bundle.js +234 -188
- package/dist/components/calendar/_calendarProvider.d.ts +6 -0
- package/dist/components/calendar/_calendarProvider.d.ts.map +1 -1
- package/dist/components/calendar/_calendarProvider.js +20 -14
- package/dist/components/calendar/index.d.ts +12 -0
- package/dist/components/calendar/index.d.ts.map +1 -1
- package/dist/components/calendar/index.js +2 -2
- package/dist/components/fullCalendar/_fullCalendarProvider.d.ts +11 -2
- package/dist/components/fullCalendar/_fullCalendarProvider.d.ts.map +1 -1
- package/dist/components/fullCalendar/_fullCalendarProvider.js +9 -6
- package/dist/components/fullCalendar/dayCalendar/dayCalendarEvent/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/dayCalendar/dayCalendarEvent/index.js +16 -12
- package/dist/components/fullCalendar/dayCalendar/dayCalendarRow/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/dayCalendar/dayCalendarRow/index.js +16 -1
- package/dist/components/fullCalendar/fullCalendarHeader/index.js +3 -3
- package/dist/components/fullCalendar/index.d.ts +65 -49
- package/dist/components/fullCalendar/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/index.js +26 -36
- package/dist/components/fullCalendar/monthlyCalendar/monthlyCalendarEvent/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/monthlyCalendar/monthlyCalendarEvent/index.js +8 -4
- package/dist/components/fullCalendar/monthlyCalendar/monthlyCalendarTableTd/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/monthlyCalendar/monthlyCalendarTableTd/index.js +17 -1
- package/dist/components/fullCalendar/weekCalendar/weekCalendarEvent/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/weekCalendar/weekCalendarEvent/index.js +16 -12
- package/dist/components/fullCalendar/weekCalendar/weekCalendarTableTd/index.d.ts.map +1 -1
- package/dist/components/fullCalendar/weekCalendar/weekCalendarTableTd/index.js +17 -6
- package/dist/components/imageUpload/index.js +1 -1
- package/dist/components/input/index.d.ts.map +1 -1
- package/dist/components/multiSelect/index.js +1 -1
- package/dist/components/radio/radioGroup/index.js +1 -1
- package/dist/components/richText/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/package.json +7 -7
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFullCalendar } from "../../_fullCalendarProvider";
|
|
2
3
|
import { MonthlyCalendarEvent } from "../monthlyCalendarEvent";
|
|
3
4
|
import "./styles.css";
|
|
4
5
|
function MonthlyCalendarTableTd(props) {
|
|
5
6
|
const { day, month, year, dayOwner } = props;
|
|
7
|
+
const { blockedTimestamps, onClickDate } = useFullCalendar();
|
|
6
8
|
function isToday() {
|
|
7
9
|
const today = new Date();
|
|
8
10
|
return (day === today.getDate() &&
|
|
9
11
|
month === today.getMonth() &&
|
|
10
12
|
year === today.getFullYear());
|
|
11
13
|
}
|
|
12
|
-
|
|
14
|
+
function isBlocked() {
|
|
15
|
+
const currentDate = new Date(year, month, day);
|
|
16
|
+
return blockedTimestamps.some((timestamp) => currentDate >= timestamp.initialDate &&
|
|
17
|
+
currentDate <= timestamp.endDate);
|
|
18
|
+
}
|
|
19
|
+
function handleClick(event) {
|
|
20
|
+
event.stopPropagation();
|
|
21
|
+
if (isBlocked())
|
|
22
|
+
return;
|
|
23
|
+
if (onClickDate) {
|
|
24
|
+
const date = new Date(year, month, day);
|
|
25
|
+
onClickDate(date);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("td", { className: `arkynMonthlyCalendarTableTd ${dayOwner} ${isBlocked() ? "blocked" : ""}`, onClick: handleClick, children: [_jsx("p", { className: isToday() ? "today" : "", children: day }), _jsx("div", { className: "arkynMonthlyCalendarEventContainer", children: _jsx(MonthlyCalendarEvent, { day: day, month: month, year: year }) })] }));
|
|
13
29
|
}
|
|
14
30
|
export { MonthlyCalendarTableTd };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/fullCalendar/weekCalendar/weekCalendarEvent/index.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAEtB,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAKF,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/fullCalendar/weekCalendar/weekCalendarEvent/index.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAEtB,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAKF,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,uFAgJvD;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -8,13 +8,13 @@ function WeekCalendarEvent(props) {
|
|
|
8
8
|
const dayEvents = events
|
|
9
9
|
.map((event, sourceIndex) => ({ event, sourceIndex }))
|
|
10
10
|
.filter(({ event }) => {
|
|
11
|
-
return (event.
|
|
12
|
-
event.
|
|
13
|
-
event.
|
|
11
|
+
return (event.initialDate.getDate() === props.day &&
|
|
12
|
+
event.initialDate.getMonth() === props.month &&
|
|
13
|
+
event.initialDate.getFullYear() === props.year);
|
|
14
14
|
})
|
|
15
15
|
.sort((a, b) => {
|
|
16
|
-
const startA = a.event.
|
|
17
|
-
const startB = b.event.
|
|
16
|
+
const startA = a.event.initialDate.getTime();
|
|
17
|
+
const startB = b.event.initialDate.getTime();
|
|
18
18
|
if (startA !== startB)
|
|
19
19
|
return startA - startB;
|
|
20
20
|
const endA = a.event.endDate?.getTime() ?? startA + SLOT_DURATION_MINUTES * 60_000;
|
|
@@ -28,8 +28,8 @@ function WeekCalendarEvent(props) {
|
|
|
28
28
|
const dayHour = Math.floor(props.timeInMinutes / 60);
|
|
29
29
|
const dayMinute = props.timeInMinutes % 60;
|
|
30
30
|
function isEventInInterval() {
|
|
31
|
-
const eventHour = event.
|
|
32
|
-
const eventMinute = event.
|
|
31
|
+
const eventHour = event.initialDate.getHours();
|
|
32
|
+
const eventMinute = event.initialDate.getMinutes();
|
|
33
33
|
if (eventHour !== dayHour)
|
|
34
34
|
return false;
|
|
35
35
|
if (dayMinute === 0)
|
|
@@ -38,9 +38,9 @@ function WeekCalendarEvent(props) {
|
|
|
38
38
|
return eventMinute >= 30 && eventMinute < 60;
|
|
39
39
|
}
|
|
40
40
|
return (isEventInInterval() &&
|
|
41
|
-
event.
|
|
42
|
-
event.
|
|
43
|
-
event.
|
|
41
|
+
event.initialDate.getDate() === props.day &&
|
|
42
|
+
event.initialDate.getMonth() === props.month &&
|
|
43
|
+
event.initialDate.getFullYear() === props.year);
|
|
44
44
|
});
|
|
45
45
|
if (filteredEvents.length === 0)
|
|
46
46
|
return _jsx(_Fragment, {});
|
|
@@ -55,7 +55,7 @@ function WeekCalendarEvent(props) {
|
|
|
55
55
|
return `${hours}h${minutes}`;
|
|
56
56
|
}
|
|
57
57
|
function getEventRangeInMinutes(event) {
|
|
58
|
-
const startMinutes = event.
|
|
58
|
+
const startMinutes = event.initialDate.getHours() * 60 + event.initialDate.getMinutes();
|
|
59
59
|
const endMinutes = event.endDate
|
|
60
60
|
? event.endDate.getHours() * 60 + event.endDate.getMinutes()
|
|
61
61
|
: startMinutes + SLOT_DURATION_MINUTES;
|
|
@@ -93,6 +93,10 @@ function WeekCalendarEvent(props) {
|
|
|
93
93
|
left: `${overlapOffset}px`,
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
function handleEventClick(event, eventData) {
|
|
97
|
+
event.stopPropagation();
|
|
98
|
+
eventData.onClick?.(eventData.data);
|
|
99
|
+
}
|
|
100
|
+
return filteredEvents.map(({ event, sourceIndex }, index) => (_jsxs("div", { className: `arkynWeekCalendarEvent ${event?.scheme || "primary"}`, style: getEventStyle(event, sourceIndex), onClick: (e) => handleEventClick(e, event), children: [_jsxs("strong", { children: [makeHour(event.initialDate), " ", event?.endDate && `- ${makeHour(event.endDate)}`] }), _jsx("p", { children: event.title })] }, makeEventKey(index, sourceIndex))));
|
|
97
101
|
}
|
|
98
102
|
export { WeekCalendarEvent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/fullCalendar/weekCalendar/weekCalendarTableTd/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/fullCalendar/weekCalendar/weekCalendarTableTd/index.tsx"],"names":[],"mappings":"AAEA,OAAO,cAAc,CAAC;AAEtB,KAAK,wBAAwB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iBAAS,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA0C3D;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useFullCalendar } from "../../_fullCalendarProvider";
|
|
2
3
|
import { WeekCalendarEvent } from "../weekCalendarEvent";
|
|
3
4
|
import "./styles.css";
|
|
4
5
|
function WeekCalendarTableTd(props) {
|
|
5
6
|
const { day, month, year, dayOwner, timeInMinutes } = props;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const { blockedTimestamps, onClickDate } = useFullCalendar();
|
|
8
|
+
function isBlocked() {
|
|
9
|
+
const currentDate = new Date(year, month, day);
|
|
10
|
+
return blockedTimestamps.some((timestamp) => currentDate >= timestamp.initialDate &&
|
|
11
|
+
currentDate <= timestamp.endDate);
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
function handleClick(event) {
|
|
14
|
+
event.stopPropagation();
|
|
15
|
+
if (isBlocked())
|
|
16
|
+
return;
|
|
17
|
+
if (onClickDate) {
|
|
18
|
+
const date = new Date(year, month, day);
|
|
19
|
+
date.setHours(0, timeInMinutes, 0, 0);
|
|
20
|
+
onClickDate(date);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return (_jsx("td", { className: `arkynWeekCalendarTableTd ${dayOwner} ${isBlocked() ? "blocked" : ""}`, "data-day": day, "data-time": timeInMinutes, onClick: handleClick, children: _jsx("div", { className: "arkynWeekCalendarTableTdContent", children: _jsx(WeekCalendarEvent, { day: day, month: month, year: year, timeInMinutes: timeInMinutes }) }) }));
|
|
13
24
|
}
|
|
14
25
|
export { WeekCalendarTableTd };
|
|
@@ -55,7 +55,7 @@ import "./styles.css";
|
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
57
|
function ImageUpload(props) {
|
|
58
|
-
const { name, defaultValue = "", label, showAsterisk = false, action, fileName = "file", className: wrapperClassName = "", method = "POST", acceptImage = "image/*", fileResponseName = "url", changeImageButtonText = "Alterar imagem", selectImageButtonText = "Selecionar imagem", dropImageText = "Ou arraste e solte a imagem aqui", onChange, disabled = false, unShowFieldTemplate = false, orientation = "
|
|
58
|
+
const { name, defaultValue = "", label, showAsterisk = false, action, fileName = "file", className: wrapperClassName = "", method = "POST", acceptImage = "image/*", fileResponseName = "url", changeImageButtonText = "Alterar imagem", selectImageButtonText = "Selecionar imagem", dropImageText = "Ou arraste e solte a imagem aqui", onChange, disabled = false, unShowFieldTemplate = false, orientation = "vertical", } = props;
|
|
59
59
|
const { fieldErrors } = useForm();
|
|
60
60
|
const fieldError = fieldErrors?.[name];
|
|
61
61
|
const [value, setValue] = useState(defaultValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/input/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/input/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAEL,mBAAmB,EAKpB,MAAM,OAAO,CAAC;AAMf,OAAO,aAAa,CAAC;AAErB,KAAK,UAAU,GAAG,IAAI,CACpB,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CACtD,GAAG;IACF,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,mBAAmB,CAAC;IAC9D,yDAAyD;IACzD,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,2CAyI/B;AAED,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,CAAC"}
|
|
@@ -70,7 +70,7 @@ import { MultiSelectSpinner } from "./multiSelectSpinner";
|
|
|
70
70
|
* ```
|
|
71
71
|
*/
|
|
72
72
|
function MultiSelect(props) {
|
|
73
|
-
const { name, options, className: wrapperClassName = "", placeholder = "Selecione...", closeOnSelect = false, defaultValue = [], errorMessage: baseErrorMessage, isLoading = false, readOnly = false, isSearchable = false, id, label, optionMaxHeight, showAsterisk, leftIcon: LeftIcon, onSearch, onChange, onBlur, notFoundText = "Sem opções disponíveis", onFocus, disabled: baseDisabled = false, prefix, size = "md", value, variant = "solid", unShowFieldTemplate = false, orientation = "
|
|
73
|
+
const { name, options, className: wrapperClassName = "", placeholder = "Selecione...", closeOnSelect = false, defaultValue = [], errorMessage: baseErrorMessage, isLoading = false, readOnly = false, isSearchable = false, id, label, optionMaxHeight, showAsterisk, leftIcon: LeftIcon, onSearch, onChange, onBlur, notFoundText = "Sem opções disponíveis", onFocus, disabled: baseDisabled = false, prefix, size = "md", value, variant = "solid", unShowFieldTemplate = false, orientation = "vertical", } = props;
|
|
74
74
|
const { fieldErrors } = useForm();
|
|
75
75
|
const multiSelectRef = useRef(null);
|
|
76
76
|
const multiSelectId = id || useId();
|
|
@@ -42,7 +42,7 @@ import "./styles.css";
|
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
44
|
function RadioGroup(props) {
|
|
45
|
-
const { defaultValue = "", name, label, showAsterisk, errorMessage: baseErrorMessage, value: forceValue, onChange, size = "md", className: wrapperClassName = "", disabled = false, unShowFieldTemplate = false, orientation = "
|
|
45
|
+
const { defaultValue = "", name, label, showAsterisk, errorMessage: baseErrorMessage, value: forceValue, onChange, size = "md", className: wrapperClassName = "", disabled = false, unShowFieldTemplate = false, orientation = "vertical", ...rest } = props;
|
|
46
46
|
const [value, setValue] = useState(defaultValue);
|
|
47
47
|
const { fieldErrors } = useForm();
|
|
48
48
|
function handleChange(value) {
|
|
@@ -68,7 +68,7 @@ import "./styles.css";
|
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
70
|
function RichText(props) {
|
|
71
|
-
const { name, hiddenButtons, imageConfig, videoConfig, className: wrapperClassName = "", defaultValue = "[]", enforceCharacterLimit = false, onChangeCharactersCount, baseErrorMessage, maxLimit = 10000, onChange, isError: baseIsError, label, showAsterisk, id, orientation = "
|
|
71
|
+
const { name, hiddenButtons, imageConfig, videoConfig, className: wrapperClassName = "", defaultValue = "[]", enforceCharacterLimit = false, onChangeCharactersCount, baseErrorMessage, maxLimit = 10000, onChange, isError: baseIsError, label, showAsterisk, id, orientation = "vertical", unShowFieldTemplate = false, } = props;
|
|
72
72
|
const editor = useMemo(() => withHistory(withReact(createEditor())), []);
|
|
73
73
|
const { fieldErrors } = useForm();
|
|
74
74
|
function getDefaultNodes() {
|
|
@@ -69,7 +69,7 @@ import { SelectSpinner } from "./selectSpinner";
|
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
71
71
|
function Select(props) {
|
|
72
|
-
const { name, options, className: wrapperClassName = "", placeholder = "Selecione...", closeOnSelect = true, defaultValue = "", errorMessage: baseErrorMessage, isLoading = false, readOnly = false, isSearchable = false, id, label, optionMaxHeight, showAsterisk, leftIcon: LeftIcon, onSearch, onChange, onBlur, notFoundText = "Sem opções disponíveis", onFocus, disabled: baseDisabled = false, prefix, size = "md", value, variant = "solid", orientation = "
|
|
72
|
+
const { name, options, className: wrapperClassName = "", placeholder = "Selecione...", closeOnSelect = true, defaultValue = "", errorMessage: baseErrorMessage, isLoading = false, readOnly = false, isSearchable = false, id, label, optionMaxHeight, showAsterisk, leftIcon: LeftIcon, onSearch, onChange, onBlur, notFoundText = "Sem opções disponíveis", onFocus, disabled: baseDisabled = false, prefix, size = "md", value, variant = "solid", orientation = "vertical", unShowFieldTemplate = false, } = props;
|
|
73
73
|
const { fieldErrors } = useForm();
|
|
74
74
|
const selectRef = useRef(null);
|
|
75
75
|
const selectId = id || useId();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arkyn/components",
|
|
3
|
-
"version": "3.0.1-beta.
|
|
3
|
+
"version": "3.0.1-beta.148",
|
|
4
4
|
"main": "./dist/bundle.js",
|
|
5
5
|
"module": "./dist/bundle.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -36,12 +36,9 @@
|
|
|
36
36
|
"typecheck": "bunx tsc --project tsconfig.json --noEmit"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@arkyn/shared": "^3.0.1-beta.136",
|
|
40
|
-
"@arkyn/templates": "^3.0.1-beta.136",
|
|
41
39
|
"@react-google-maps/api": "^2.20.8",
|
|
42
40
|
"@react-input/mask": "^2.0.4",
|
|
43
41
|
"@types/react-scroll": "^1.8.10",
|
|
44
|
-
"@vitejs/plugin-react": "^6.0.1",
|
|
45
42
|
"framer-motion": "^12.38.0",
|
|
46
43
|
"html-react-parser": "^6.1.0",
|
|
47
44
|
"mapbox-gl": "^3.23.1",
|
|
@@ -52,9 +49,11 @@
|
|
|
52
49
|
"slate-react": "^0.124.0"
|
|
53
50
|
},
|
|
54
51
|
"peerDependencies": {
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
52
|
+
"@arkyn/shared": ">=3.0.1-beta.145",
|
|
53
|
+
"@arkyn/templates": ">=3.0.1-beta.145",
|
|
54
|
+
"react": ">=19.2.6",
|
|
55
|
+
"react-dom": ">=19.2.6",
|
|
56
|
+
"lucide-react": ">=1.14.0"
|
|
58
57
|
},
|
|
59
58
|
"devDependencies": {
|
|
60
59
|
"@testing-library/jest-dom": "^6.9.1",
|
|
@@ -64,6 +63,7 @@
|
|
|
64
63
|
"@types/node": "^25.7.0",
|
|
65
64
|
"@types/react": "^19.2.14",
|
|
66
65
|
"@types/react-dom": "^19.2.3",
|
|
66
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
67
67
|
"bun-types": "^1.3.13",
|
|
68
68
|
"globals": "^17.6.0",
|
|
69
69
|
"jsdom": "^29.1.1",
|