@sudobility/healthcare-components 1.0.7

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/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # @sudobility/healthcare-components
2
+
3
+ Healthcare and medical UI components for React
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @sudobility/healthcare-components
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```tsx
14
+ import { ComponentName } from '@sudobility/healthcare-components';
15
+
16
+ function App() {
17
+ return <ComponentName />;
18
+ }
19
+ ```
20
+
21
+ ## License
22
+
23
+ MIT
@@ -0,0 +1,34 @@
1
+ /**
2
+ * UallergenUfilter Component
3
+ *
4
+ * A reusable UallergenUfilter component with full dark mode support.
5
+ * Optimized for accessibility and AI-assisted development.
6
+ *
7
+ * @component
8
+ * @example
9
+ * ```tsx
10
+ * <UallergenUfilter className="custom-class" />
11
+ * ```
12
+ *
13
+ * @remarks
14
+ * This component supports:
15
+ * - Light and dark themes automatically
16
+ * - Responsive design
17
+ * - Accessibility features
18
+ * - TypeScript type safety
19
+ *
20
+ * @see {@link https://docs.example.com/components/allergen-filter}
21
+ */
22
+ export interface UallergenUfilterProps {
23
+ /** Additional CSS classes */
24
+ className?: string;
25
+ /** Component children */
26
+ children?: React.ReactNode;
27
+ /** Disabled state */
28
+ disabled?: boolean;
29
+ /** Callback when component is interacted with */
30
+ onClick?: () => void;
31
+ }
32
+ export declare const UallergenUfilter: ({ className, children, disabled, onClick, }: UallergenUfilterProps) => import("react/jsx-runtime").JSX.Element;
33
+ export default UallergenUfilter;
34
+ //# sourceMappingURL=allergen-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allergen-filter.d.ts","sourceRoot":"","sources":["../src/allergen-filter.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAAI,6CAK9B,qBAAqB,4CAmBvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * AppointmentBooking Component
3
+ *
4
+ * Healthcare component with full dark mode support.
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <AppointmentBooking className="custom-class" />
10
+ * ```
11
+ */
12
+ export interface AppointmentBookingProps {
13
+ className?: string;
14
+ children?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const AppointmentBooking: ({ className, children, disabled, }: AppointmentBookingProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default AppointmentBooking;
19
+ //# sourceMappingURL=appointment-booking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appointment-booking.d.ts","sourceRoot":"","sources":["../src/appointment-booking.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,kBAAkB,GAAI,oCAIhC,uBAAuB,4CAiBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * UappointmentUslot Component
3
+ *
4
+ * A reusable UappointmentUslot component with full dark mode support.
5
+ * Optimized for accessibility and AI-assisted development.
6
+ *
7
+ * @component
8
+ * @example
9
+ * ```tsx
10
+ * <UappointmentUslot className="custom-class" />
11
+ * ```
12
+ *
13
+ * @remarks
14
+ * This component supports:
15
+ * - Light and dark themes automatically
16
+ * - Responsive design
17
+ * - Accessibility features
18
+ * - TypeScript type safety
19
+ *
20
+ * @see {@link https://docs.example.com/components/appointment-slot}
21
+ */
22
+ export interface UappointmentUslotProps {
23
+ /** Additional CSS classes */
24
+ className?: string;
25
+ /** Component children */
26
+ children?: React.ReactNode;
27
+ /** Disabled state */
28
+ disabled?: boolean;
29
+ /** Callback when component is interacted with */
30
+ onClick?: () => void;
31
+ }
32
+ export declare const UappointmentUslot: ({ className, children, disabled, onClick, }: UappointmentUslotProps) => import("react/jsx-runtime").JSX.Element;
33
+ export default UappointmentUslot;
34
+ //# sourceMappingURL=appointment-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appointment-slot.d.ts","sourceRoot":"","sources":["../src/appointment-slot.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,GAAI,6CAK/B,sBAAsB,4CAmBxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ComplianceChecker Component
3
+ *
4
+ * Legal & compliance component with full dark mode support.
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <ComplianceChecker className="custom-class" />
10
+ * ```
11
+ */
12
+ export interface ComplianceCheckerProps {
13
+ className?: string;
14
+ children?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const ComplianceChecker: ({ className, children, disabled, }: ComplianceCheckerProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default ComplianceChecker;
19
+ //# sourceMappingURL=compliance-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-checker.d.ts","sourceRoot":"","sources":["../src/compliance-checker.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,GAAI,oCAI/B,sBAAsB,4CAiBxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * healthcare-components
3
+ *
4
+ * Specialized components for the healthcare domain
5
+ *
6
+ * @package @sudobility/healthcare-components
7
+ */
8
+ export * from './allergen-filter';
9
+ export * from './appointment-booking';
10
+ export * from './appointment-slot';
11
+ export * from './compliance-checker';
12
+ export * from './patient-record';
13
+ export * from './prescription-manager';
14
+ export * from './vital-signs';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { cn as t } from "@sudobility/components";
3
+ const d = ({
4
+ className: e,
5
+ children: o,
6
+ disabled: r = !1,
7
+ onClick: n
8
+ }) => /* @__PURE__ */ a(
9
+ "div",
10
+ {
11
+ className: t(
12
+ "p-4 rounded-lg border transition-colors",
13
+ "bg-white dark:bg-gray-900",
14
+ "border-gray-200 dark:border-gray-700",
15
+ "text-gray-900 dark:text-white",
16
+ r && "opacity-50 cursor-not-allowed",
17
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
18
+ e
19
+ ),
20
+ onClick: r ? void 0 : n,
21
+ role: "region",
22
+ "aria-label": "UallergenUfilter",
23
+ children: o || "UallergenUfilter Component"
24
+ }
25
+ ), g = ({
26
+ className: e,
27
+ children: o,
28
+ disabled: r
29
+ }) => /* @__PURE__ */ a(
30
+ "div",
31
+ {
32
+ className: t(
33
+ "p-4 rounded-lg border transition-colors",
34
+ "bg-white dark:bg-gray-900",
35
+ "border-gray-200 dark:border-gray-700",
36
+ "text-gray-900 dark:text-white",
37
+ r && "opacity-50 cursor-not-allowed",
38
+ e
39
+ ),
40
+ role: "region",
41
+ "aria-label": "AppointmentBooking",
42
+ children: o || "AppointmentBooking Component"
43
+ }
44
+ ), c = ({
45
+ className: e,
46
+ children: o,
47
+ disabled: r = !1,
48
+ onClick: n
49
+ }) => /* @__PURE__ */ a(
50
+ "div",
51
+ {
52
+ className: t(
53
+ "p-4 rounded-lg border transition-colors",
54
+ "bg-white dark:bg-gray-900",
55
+ "border-gray-200 dark:border-gray-700",
56
+ "text-gray-900 dark:text-white",
57
+ r && "opacity-50 cursor-not-allowed",
58
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
59
+ e
60
+ ),
61
+ onClick: r ? void 0 : n,
62
+ role: "region",
63
+ "aria-label": "UappointmentUslot",
64
+ children: o || "UappointmentUslot Component"
65
+ }
66
+ ), s = ({
67
+ className: e,
68
+ children: o,
69
+ disabled: r
70
+ }) => /* @__PURE__ */ a(
71
+ "div",
72
+ {
73
+ className: t(
74
+ "p-4 rounded-lg border transition-colors",
75
+ "bg-white dark:bg-gray-900",
76
+ "border-gray-200 dark:border-gray-700",
77
+ "text-gray-900 dark:text-white",
78
+ r && "opacity-50 cursor-not-allowed",
79
+ e
80
+ ),
81
+ role: "region",
82
+ "aria-label": "ComplianceChecker",
83
+ children: o || "ComplianceChecker Component"
84
+ }
85
+ ), b = ({
86
+ className: e,
87
+ children: o,
88
+ disabled: r
89
+ }) => /* @__PURE__ */ a(
90
+ "div",
91
+ {
92
+ className: t(
93
+ "p-4 rounded-lg border transition-colors",
94
+ "bg-white dark:bg-gray-900",
95
+ "border-gray-200 dark:border-gray-700",
96
+ "text-gray-900 dark:text-white",
97
+ r && "opacity-50 cursor-not-allowed",
98
+ e
99
+ ),
100
+ role: "region",
101
+ "aria-label": "PatientRecord",
102
+ children: o || "PatientRecord Component"
103
+ }
104
+ ), p = ({
105
+ className: e,
106
+ children: o,
107
+ disabled: r
108
+ }) => /* @__PURE__ */ a(
109
+ "div",
110
+ {
111
+ className: t(
112
+ "p-4 rounded-lg border transition-colors",
113
+ "bg-white dark:bg-gray-900",
114
+ "border-gray-200 dark:border-gray-700",
115
+ "text-gray-900 dark:text-white",
116
+ r && "opacity-50 cursor-not-allowed",
117
+ e
118
+ ),
119
+ role: "region",
120
+ "aria-label": "PrescriptionManager",
121
+ children: o || "PrescriptionManager Component"
122
+ }
123
+ ), y = ({
124
+ className: e,
125
+ children: o,
126
+ disabled: r
127
+ }) => /* @__PURE__ */ a(
128
+ "div",
129
+ {
130
+ className: t(
131
+ "p-4 rounded-lg border transition-colors",
132
+ "bg-white dark:bg-gray-900",
133
+ "border-gray-200 dark:border-gray-700",
134
+ "text-gray-900 dark:text-white",
135
+ r && "opacity-50 cursor-not-allowed",
136
+ e
137
+ ),
138
+ role: "region",
139
+ "aria-label": "VitalSigns",
140
+ children: o || "VitalSigns Component"
141
+ }
142
+ );
143
+ export {
144
+ g as AppointmentBooking,
145
+ s as ComplianceChecker,
146
+ b as PatientRecord,
147
+ p as PrescriptionManager,
148
+ d as UallergenUfilter,
149
+ c as UappointmentUslot,
150
+ y as VitalSigns
151
+ };
@@ -0,0 +1 @@
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react/jsx-runtime"),require("@sudobility/components")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@sudobility/components"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.Web3Components={},e.ReactJSXRuntime,e.SudobilityComponents))})(this,(function(e,t,n){"use strict";const d=({className:o,children:a,disabled:r=!1,onClick:i})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:r?void 0:i,role:"region","aria-label":"UallergenUfilter",children:a||"UallergenUfilter Component"}),l=({className:o,children:a,disabled:r})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"AppointmentBooking",children:a||"AppointmentBooking Component"}),g=({className:o,children:a,disabled:r=!1,onClick:i})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:r?void 0:i,role:"region","aria-label":"UappointmentUslot",children:a||"UappointmentUslot Component"}),c=({className:o,children:a,disabled:r})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"ComplianceChecker",children:a||"ComplianceChecker Component"}),s=({className:o,children:a,disabled:r})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"PatientRecord",children:a||"PatientRecord Component"}),b=({className:o,children:a,disabled:r})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"PrescriptionManager",children:a||"PrescriptionManager Component"}),y=({className:o,children:a,disabled:r})=>t.jsx("div",{className:n.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"VitalSigns",children:a||"VitalSigns Component"});e.AppointmentBooking=l,e.ComplianceChecker=c,e.PatientRecord=s,e.PrescriptionManager=b,e.UallergenUfilter=d,e.UappointmentUslot=g,e.VitalSigns=y,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,3 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * PatientRecord Component
3
+ *
4
+ * Healthcare component with full dark mode support.
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <PatientRecord className="custom-class" />
10
+ * ```
11
+ */
12
+ export interface PatientRecordProps {
13
+ className?: string;
14
+ children?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const PatientRecord: ({ className, children, disabled, }: PatientRecordProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default PatientRecord;
19
+ //# sourceMappingURL=patient-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-record.d.ts","sourceRoot":"","sources":["../src/patient-record.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,oCAI3B,kBAAkB,4CAiBpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * PrescriptionManager Component
3
+ *
4
+ * Healthcare component with full dark mode support.
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <PrescriptionManager className="custom-class" />
10
+ * ```
11
+ */
12
+ export interface PrescriptionManagerProps {
13
+ className?: string;
14
+ children?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const PrescriptionManager: ({ className, children, disabled, }: PrescriptionManagerProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default PrescriptionManager;
19
+ //# sourceMappingURL=prescription-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prescription-manager.d.ts","sourceRoot":"","sources":["../src/prescription-manager.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,GAAI,oCAIjC,wBAAwB,4CAiB1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * VitalSigns Component
3
+ *
4
+ * Healthcare component with full dark mode support.
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <VitalSigns className="custom-class" />
10
+ * ```
11
+ */
12
+ export interface VitalSignsProps {
13
+ className?: string;
14
+ children?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const VitalSigns: ({ className, children, disabled, }: VitalSignsProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default VitalSigns;
19
+ //# sourceMappingURL=vital-signs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vital-signs.d.ts","sourceRoot":"","sources":["../src/vital-signs.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,GAAI,oCAIxB,eAAe,4CAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@sudobility/healthcare-components",
3
+ "version": "1.0.7",
4
+ "description": "Healthcare and medical UI components for React",
5
+ "type": "module",
6
+ "main": "dist/index.umd.js",
7
+ "module": "dist/index.esm.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.esm.js",
13
+ "require": "./dist/index.umd.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc && vite build",
22
+ "dev": "vite build --watch",
23
+ "type-check": "tsc --noEmit",
24
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
25
+ },
26
+ "keywords": [
27
+ "react",
28
+ "components",
29
+ "healthcare",
30
+ "typescript"
31
+ ],
32
+ "author": "John Q Huang",
33
+ "license": "MIT",
34
+ "peerDependencies": {
35
+ "@heroicons/react": "^2.2.0",
36
+ "@sudobility/design": "^1.1.3",
37
+ "react": "^18.0.0 || ^19.0.0",
38
+ "react-dom": "^18.0.0 || ^19.0.0"
39
+ },
40
+ "devDependencies": {
41
+ "@sudobility/components": "^3.0.0",
42
+ "@heroicons/react": "^2.2.0",
43
+ "@sudobility/design": "^1.1.3",
44
+ "@types/react": "^19.2.2",
45
+ "@types/react-dom": "^19.2.2",
46
+ "@vitejs/plugin-react": "^5.1.0",
47
+ "clsx": "^2.1.1",
48
+ "tailwind-merge": "^3.3.1",
49
+ "typescript": "^5.9.3",
50
+ "vite": "^7.1.12",
51
+ "vite-plugin-dts": "^4.5.4"
52
+ }
53
+ }