ods-ant 0.1.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 (160) hide show
  1. package/README.md +62 -0
  2. package/dist-lib/index.cjs +5665 -0
  3. package/dist-lib/index.cjs.map +1 -0
  4. package/dist-lib/index.js +7433 -0
  5. package/dist-lib/index.js.map +1 -0
  6. package/dist-lib/theme.cjs +2 -0
  7. package/dist-lib/theme.cjs.map +1 -0
  8. package/dist-lib/theme.js +611 -0
  9. package/dist-lib/theme.js.map +1 -0
  10. package/dist-lib/types/ds/display/Collapse.d.ts +32 -0
  11. package/dist-lib/types/ds/display/Collapse.d.ts.map +1 -0
  12. package/dist-lib/types/ds/display/Popover.d.ts +12 -0
  13. package/dist-lib/types/ds/display/Popover.d.ts.map +1 -0
  14. package/dist-lib/types/ds/display/Segmented.d.ts +8 -0
  15. package/dist-lib/types/ds/display/Segmented.d.ts.map +1 -0
  16. package/dist-lib/types/ds/display/Table.d.ts +81 -0
  17. package/dist-lib/types/ds/display/Table.d.ts.map +1 -0
  18. package/dist-lib/types/ds/display/Tag.d.ts +37 -0
  19. package/dist-lib/types/ds/display/Tag.d.ts.map +1 -0
  20. package/dist-lib/types/ds/display/Tooltip.d.ts +12 -0
  21. package/dist-lib/types/ds/display/Tooltip.d.ts.map +1 -0
  22. package/dist-lib/types/ds/display/index.d.ts +7 -0
  23. package/dist-lib/types/ds/display/index.d.ts.map +1 -0
  24. package/dist-lib/types/ds/feedback/FloatButton.d.ts +12 -0
  25. package/dist-lib/types/ds/feedback/FloatButton.d.ts.map +1 -0
  26. package/dist-lib/types/ds/feedback/Message.d.ts +15 -0
  27. package/dist-lib/types/ds/feedback/Message.d.ts.map +1 -0
  28. package/dist-lib/types/ds/feedback/Modal.d.ts +30 -0
  29. package/dist-lib/types/ds/feedback/Modal.d.ts.map +1 -0
  30. package/dist-lib/types/ds/feedback/Notification.d.ts +11 -0
  31. package/dist-lib/types/ds/feedback/Notification.d.ts.map +1 -0
  32. package/dist-lib/types/ds/feedback/Popconfirm.d.ts +4 -0
  33. package/dist-lib/types/ds/feedback/Popconfirm.d.ts.map +1 -0
  34. package/dist-lib/types/ds/feedback/Spin.d.ts +6 -0
  35. package/dist-lib/types/ds/feedback/Spin.d.ts.map +1 -0
  36. package/dist-lib/types/ds/feedback/feedbackIcons.d.ts +13 -0
  37. package/dist-lib/types/ds/feedback/feedbackIcons.d.ts.map +1 -0
  38. package/dist-lib/types/ds/feedback/index.d.ts +7 -0
  39. package/dist-lib/types/ds/feedback/index.d.ts.map +1 -0
  40. package/dist-lib/types/ds/forms/AccessibleCheckboxGroup.d.ts +14 -0
  41. package/dist-lib/types/ds/forms/AccessibleCheckboxGroup.d.ts.map +1 -0
  42. package/dist-lib/types/ds/forms/AccessibleDatePicker.d.ts +15 -0
  43. package/dist-lib/types/ds/forms/AccessibleDatePicker.d.ts.map +1 -0
  44. package/dist-lib/types/ds/forms/AccessiblePasswordInput.d.ts +18 -0
  45. package/dist-lib/types/ds/forms/AccessiblePasswordInput.d.ts.map +1 -0
  46. package/dist-lib/types/ds/forms/AccessibleRadioGroup.d.ts +14 -0
  47. package/dist-lib/types/ds/forms/AccessibleRadioGroup.d.ts.map +1 -0
  48. package/dist-lib/types/ds/forms/AccessibleSelect.d.ts +14 -0
  49. package/dist-lib/types/ds/forms/AccessibleSelect.d.ts.map +1 -0
  50. package/dist-lib/types/ds/forms/AccessibleSwitch.d.ts +13 -0
  51. package/dist-lib/types/ds/forms/AccessibleSwitch.d.ts.map +1 -0
  52. package/dist-lib/types/ds/forms/AutoComplete.d.ts +8 -0
  53. package/dist-lib/types/ds/forms/AutoComplete.d.ts.map +1 -0
  54. package/dist-lib/types/ds/forms/Button.d.ts +30 -0
  55. package/dist-lib/types/ds/forms/Button.d.ts.map +1 -0
  56. package/dist-lib/types/ds/forms/Cascader.d.ts +7 -0
  57. package/dist-lib/types/ds/forms/Cascader.d.ts.map +1 -0
  58. package/dist-lib/types/ds/forms/Checkbox.d.ts +13 -0
  59. package/dist-lib/types/ds/forms/Checkbox.d.ts.map +1 -0
  60. package/dist-lib/types/ds/forms/ClearableAutoComplete.d.ts +19 -0
  61. package/dist-lib/types/ds/forms/ClearableAutoComplete.d.ts.map +1 -0
  62. package/dist-lib/types/ds/forms/ClearableCascader.d.ts +20 -0
  63. package/dist-lib/types/ds/forms/ClearableCascader.d.ts.map +1 -0
  64. package/dist-lib/types/ds/forms/ClearableCheckbox.d.ts +19 -0
  65. package/dist-lib/types/ds/forms/ClearableCheckbox.d.ts.map +1 -0
  66. package/dist-lib/types/ds/forms/ClearableColorPicker.d.ts +21 -0
  67. package/dist-lib/types/ds/forms/ClearableColorPicker.d.ts.map +1 -0
  68. package/dist-lib/types/ds/forms/ClearableDatePicker.d.ts +20 -0
  69. package/dist-lib/types/ds/forms/ClearableDatePicker.d.ts.map +1 -0
  70. package/dist-lib/types/ds/forms/ClearableInput.d.ts +19 -0
  71. package/dist-lib/types/ds/forms/ClearableInput.d.ts.map +1 -0
  72. package/dist-lib/types/ds/forms/ClearableInputNumber.d.ts +20 -0
  73. package/dist-lib/types/ds/forms/ClearableInputNumber.d.ts.map +1 -0
  74. package/dist-lib/types/ds/forms/ClearableMentions.d.ts +19 -0
  75. package/dist-lib/types/ds/forms/ClearableMentions.d.ts.map +1 -0
  76. package/dist-lib/types/ds/forms/ClearableRadio.d.ts +19 -0
  77. package/dist-lib/types/ds/forms/ClearableRadio.d.ts.map +1 -0
  78. package/dist-lib/types/ds/forms/ClearableRadioGroup.d.ts +20 -0
  79. package/dist-lib/types/ds/forms/ClearableRadioGroup.d.ts.map +1 -0
  80. package/dist-lib/types/ds/forms/ClearableRate.d.ts +20 -0
  81. package/dist-lib/types/ds/forms/ClearableRate.d.ts.map +1 -0
  82. package/dist-lib/types/ds/forms/ClearableSelect.d.ts +20 -0
  83. package/dist-lib/types/ds/forms/ClearableSelect.d.ts.map +1 -0
  84. package/dist-lib/types/ds/forms/ClearableSlider.d.ts +21 -0
  85. package/dist-lib/types/ds/forms/ClearableSlider.d.ts.map +1 -0
  86. package/dist-lib/types/ds/forms/ClearableSwitch.d.ts +20 -0
  87. package/dist-lib/types/ds/forms/ClearableSwitch.d.ts.map +1 -0
  88. package/dist-lib/types/ds/forms/ClearableTimePicker.d.ts +21 -0
  89. package/dist-lib/types/ds/forms/ClearableTimePicker.d.ts.map +1 -0
  90. package/dist-lib/types/ds/forms/ClearableTransfer.d.ts +21 -0
  91. package/dist-lib/types/ds/forms/ClearableTransfer.d.ts.map +1 -0
  92. package/dist-lib/types/ds/forms/ClearableTreeSelect.d.ts +20 -0
  93. package/dist-lib/types/ds/forms/ClearableTreeSelect.d.ts.map +1 -0
  94. package/dist-lib/types/ds/forms/ClearableUpload.d.ts +21 -0
  95. package/dist-lib/types/ds/forms/ClearableUpload.d.ts.map +1 -0
  96. package/dist-lib/types/ds/forms/DatePicker.d.ts +8 -0
  97. package/dist-lib/types/ds/forms/DatePicker.d.ts.map +1 -0
  98. package/dist-lib/types/ds/forms/FieldSetShell.d.ts +18 -0
  99. package/dist-lib/types/ds/forms/FieldSetShell.d.ts.map +1 -0
  100. package/dist-lib/types/ds/forms/FieldShell.d.ts +18 -0
  101. package/dist-lib/types/ds/forms/FieldShell.d.ts.map +1 -0
  102. package/dist-lib/types/ds/forms/FormError.d.ts +14 -0
  103. package/dist-lib/types/ds/forms/FormError.d.ts.map +1 -0
  104. package/dist-lib/types/ds/forms/FormSuccess.d.ts +11 -0
  105. package/dist-lib/types/ds/forms/FormSuccess.d.ts.map +1 -0
  106. package/dist-lib/types/ds/forms/FormWarning.d.ts +11 -0
  107. package/dist-lib/types/ds/forms/FormWarning.d.ts.map +1 -0
  108. package/dist-lib/types/ds/forms/Input.d.ts +7 -0
  109. package/dist-lib/types/ds/forms/Input.d.ts.map +1 -0
  110. package/dist-lib/types/ds/forms/Select.d.ts +11 -0
  111. package/dist-lib/types/ds/forms/Select.d.ts.map +1 -0
  112. package/dist-lib/types/ds/forms/Switch.d.ts +22 -0
  113. package/dist-lib/types/ds/forms/Switch.d.ts.map +1 -0
  114. package/dist-lib/types/ds/forms/TimePicker.d.ts +15 -0
  115. package/dist-lib/types/ds/forms/TimePicker.d.ts.map +1 -0
  116. package/dist-lib/types/ds/forms/autoCompleteStyles.d.ts +5 -0
  117. package/dist-lib/types/ds/forms/autoCompleteStyles.d.ts.map +1 -0
  118. package/dist-lib/types/ds/forms/clearUtils.d.ts +11 -0
  119. package/dist-lib/types/ds/forms/clearUtils.d.ts.map +1 -0
  120. package/dist-lib/types/ds/forms/datePickerStyles.d.ts +5 -0
  121. package/dist-lib/types/ds/forms/datePickerStyles.d.ts.map +1 -0
  122. package/dist-lib/types/ds/forms/index.d.ts +41 -0
  123. package/dist-lib/types/ds/forms/index.d.ts.map +1 -0
  124. package/dist-lib/types/ds/forms/inputNumberStyles.d.ts +2 -0
  125. package/dist-lib/types/ds/forms/inputNumberStyles.d.ts.map +1 -0
  126. package/dist-lib/types/ds/forms/selectStyles.d.ts +10 -0
  127. package/dist-lib/types/ds/forms/selectStyles.d.ts.map +1 -0
  128. package/dist-lib/types/ds/forms/timePickerStyles.d.ts +5 -0
  129. package/dist-lib/types/ds/forms/timePickerStyles.d.ts.map +1 -0
  130. package/dist-lib/types/ds/forms/validation.d.ts +33 -0
  131. package/dist-lib/types/ds/forms/validation.d.ts.map +1 -0
  132. package/dist-lib/types/ds/index.d.ts +5 -0
  133. package/dist-lib/types/ds/index.d.ts.map +1 -0
  134. package/dist-lib/types/ds/navigation/Anchor.d.ts +7 -0
  135. package/dist-lib/types/ds/navigation/Anchor.d.ts.map +1 -0
  136. package/dist-lib/types/ds/navigation/Breadcrumb.d.ts +19 -0
  137. package/dist-lib/types/ds/navigation/Breadcrumb.d.ts.map +1 -0
  138. package/dist-lib/types/ds/navigation/Pagination.d.ts +38 -0
  139. package/dist-lib/types/ds/navigation/Pagination.d.ts.map +1 -0
  140. package/dist-lib/types/ds/navigation/Steps.d.ts +11 -0
  141. package/dist-lib/types/ds/navigation/Steps.d.ts.map +1 -0
  142. package/dist-lib/types/ds/navigation/Tabs.d.ts +13 -0
  143. package/dist-lib/types/ds/navigation/Tabs.d.ts.map +1 -0
  144. package/dist-lib/types/ds/navigation/index.d.ts +6 -0
  145. package/dist-lib/types/ds/navigation/index.d.ts.map +1 -0
  146. package/dist-lib/types/ds/navigation/stepsStyles.d.ts +4 -0
  147. package/dist-lib/types/ds/navigation/stepsStyles.d.ts.map +1 -0
  148. package/dist-lib/types/theme/ontadaTheme.d.ts +595 -0
  149. package/dist-lib/types/theme/ontadaTheme.d.ts.map +1 -0
  150. package/dist-lib/types/utils/iconAdapters.d.ts +59 -0
  151. package/dist-lib/types/utils/iconAdapters.d.ts.map +1 -0
  152. package/dist-lib/types/utils/iconMapping.d.ts +14 -0
  153. package/dist-lib/types/utils/iconMapping.d.ts.map +1 -0
  154. package/dist-lib/types/utils/icons.d.ts +6 -0
  155. package/dist-lib/types/utils/icons.d.ts.map +1 -0
  156. package/dist-lib/types/utils/index.d.ts +5 -0
  157. package/dist-lib/types/utils/index.d.ts.map +1 -0
  158. package/dist-lib/types/utils/useCustomIcon.d.ts +63 -0
  159. package/dist-lib/types/utils/useCustomIcon.d.ts.map +1 -0
  160. package/package.json +108 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/utils/icons.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Utilities barrel export
3
+ */
4
+ export * from './icons';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Custom Icon Hook
3
+ * Provides unified access to custom SVG icons and Ant Design icons
4
+ * Maps icon names to components with fallback support
5
+ */
6
+ import React from 'react';
7
+ /**
8
+ * Custom SVG Icon Component
9
+ * Embeds SVG files so packaged consumers do not need to host source assets.
10
+ */
11
+ export declare const CustomSvgIcon: React.FC<{
12
+ fileName: string;
13
+ size?: number;
14
+ className?: string;
15
+ style?: React.CSSProperties;
16
+ }>;
17
+ /**
18
+ * useCustomIcon Hook
19
+ * Retrieves an icon by name, supporting both custom SVGs and Ant Design icons
20
+ *
21
+ * @param iconName - Name of the icon (e.g., 'smile', 'add', 'callBackRequest')
22
+ * @param options - Optional configuration
23
+ * @returns React component for the icon
24
+ *
25
+ * @example
26
+ * // Using Ant Design icon
27
+ * const icon = useCustomIcon('smile', { size: 24 });
28
+ *
29
+ * @example
30
+ * // Using custom SVG
31
+ * const icon = useCustomIcon('callBackRequest', { size: 32 });
32
+ */
33
+ export declare const useCustomIcon: (iconName: string, options?: {
34
+ size?: number;
35
+ className?: string;
36
+ style?: React.CSSProperties;
37
+ }) => import("react/jsx-runtime").JSX.Element;
38
+ /**
39
+ * Icon Component
40
+ * Stateless wrapper for easy use in JSX
41
+ *
42
+ * @example
43
+ * <Icon name="callBackRequest" size={32} />
44
+ * <Icon name="smile" size={24} className="my-icon" />
45
+ */
46
+ export declare const Icon: React.FC<{
47
+ name: string;
48
+ size?: number;
49
+ className?: string;
50
+ style?: React.CSSProperties;
51
+ }>;
52
+ /**
53
+ * Get list of all available icon names
54
+ */
55
+ export declare const getAvailableIcons: () => {
56
+ ant: string[];
57
+ custom: string[];
58
+ };
59
+ /**
60
+ * Check if an icon exists
61
+ */
62
+ export declare const iconExists: (iconName: string) => boolean;
63
+ //# sourceMappingURL=useCustomIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomIcon.d.ts","sourceRoot":"","sources":["../../../src/utils/useCustomIcon.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AA+L1B;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAuBA,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,EAChB,UAAU;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,4CA+BF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAEA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAK7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,KAAG,OAE7C,CAAC"}
package/package.json ADDED
@@ -0,0 +1,108 @@
1
+ {
2
+ "name": "ods-ant",
3
+ "private": false,
4
+ "version": "0.1.0",
5
+ "description": "Ontada design system wrappers and patterns built on Ant Design",
6
+ "license": "UNLICENSED",
7
+ "type": "module",
8
+ "sideEffects": false,
9
+ "main": "./dist-lib/index.cjs",
10
+ "module": "./dist-lib/index.js",
11
+ "types": "./dist-lib/types/ds/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist-lib/types/ds/index.d.ts",
15
+ "import": "./dist-lib/index.js",
16
+ "require": "./dist-lib/index.cjs"
17
+ },
18
+ "./theme": {
19
+ "types": "./dist-lib/types/theme/ontadaTheme.d.ts",
20
+ "import": "./dist-lib/theme.js",
21
+ "require": "./dist-lib/theme.cjs"
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "files": [
26
+ "dist-lib",
27
+ "README.md"
28
+ ],
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "scripts": {
33
+ "dev": "vite",
34
+ "build": "tsc -b && vite build",
35
+ "build:lib": "vite build -c vite.lib.config.ts && tsc -p tsconfig.lib.emit.json",
36
+ "build:lib:strict": "vite build -c vite.lib.config.ts && tsc -p tsconfig.lib.json",
37
+ "clean:lib": "rm -rf dist-lib",
38
+ "pack:check": "npm run clean:lib && npm run build:lib && npm pack --dry-run",
39
+ "lint": "eslint .",
40
+ "preview": "vite preview",
41
+ "storybook": "storybook dev -p 6006",
42
+ "build-storybook": "storybook build",
43
+ "prepublishOnly": "npm run clean:lib && npm run build:lib",
44
+ "audit:reassess": "node scripts/reassess-checklist.js",
45
+ "audit:html": "node scripts/generate-checklist-html.js",
46
+ "audit:html:watch": "node scripts/generate-checklist-html.js --watch",
47
+ "audit:phase2:html": "node scripts/generate-phase2-audit-html.js",
48
+ "audit:phase2:html:watch": "node scripts/generate-phase2-audit-html.js --watch",
49
+ "audit:refresh": "npm run audit:reassess && npm run audit:html",
50
+ "sync-docs": "node scripts/sync-docs.js",
51
+ "sync-docs:watch": "node scripts/sync-docs.js --watch",
52
+ "sync-docs:validate": "node scripts/sync-docs.js --pre-commit",
53
+ "mcp:server": "node mcp-server/index.mjs",
54
+ "mcp:server:inspect": "npx @modelcontextprotocol/inspector node mcp-server/index.mjs",
55
+ "mcp:test:golden": "node mcp-server/scripts/run-golden-tests.mjs",
56
+ "mcp:test:e2e": "node mcp-server/scripts/run-e2e-tests.mjs",
57
+ "mcp:test:blueprints": "node mcp-server/scripts/run-blueprint-snapshot-tests.mjs",
58
+ "mcp:test:data": "node mcp-server/scripts/check-pattern-data-integrity.mjs",
59
+ "mcp:test:all": "npm run mcp:test:data && npm run mcp:test:golden && npm run mcp:test:blueprints && npm run mcp:test:e2e"
60
+ },
61
+ "dependencies": {},
62
+ "peerDependencies": {
63
+ "@ant-design/icons": "^6.2.2",
64
+ "antd": "^6.3.7",
65
+ "dayjs": "^1.11.20",
66
+ "react": ">=18.0.0",
67
+ "react-dom": ">=18.0.0"
68
+ },
69
+ "devDependencies": {
70
+ "@fontsource/nunito": "^5.2.7",
71
+ "@modelcontextprotocol/sdk": "^1.17.5",
72
+ "@ant-design/icons": "^6.2.2",
73
+ "@chromatic-com/storybook": "^5.1.2",
74
+ "@eslint/js": "^10.0.1",
75
+ "@storybook/addon-a11y": "^10.3.6",
76
+ "@storybook/addon-docs": "^10.3.6",
77
+ "@storybook/addon-vitest": "^10.3.6",
78
+ "@storybook/react-vite": "^10.3.6",
79
+ "@types/node": "^24.12.2",
80
+ "@types/react": "^19.2.14",
81
+ "@types/react-dom": "^19.2.3",
82
+ "@vitejs/plugin-react": "^6.0.1",
83
+ "@tiptap/extension-character-count": "^3.23.1",
84
+ "@tiptap/extension-link": "^3.23.1",
85
+ "@tiptap/extension-placeholder": "^3.23.1",
86
+ "@tiptap/extension-text-align": "^3.23.1",
87
+ "@tiptap/extension-underline": "^3.23.1",
88
+ "@tiptap/pm": "^3.23.1",
89
+ "@tiptap/react": "^3.23.1",
90
+ "@tiptap/starter-kit": "^3.23.1",
91
+ "antd": "^6.3.7",
92
+ "dayjs": "^1.11.20",
93
+ "echarts": "^5.4.3",
94
+ "echarts-for-react": "^3.0.2",
95
+ "eslint": "^10.2.1",
96
+ "eslint-plugin-react-hooks": "^7.1.1",
97
+ "eslint-plugin-react-refresh": "^0.5.2",
98
+ "globals": "^17.5.0",
99
+ "marked": "^18.0.4",
100
+ "react": "^19.2.5",
101
+ "react-dom": "^19.2.5",
102
+ "storybook": "^10.3.6",
103
+ "typescript": "~6.0.2",
104
+ "typescript-eslint": "^8.58.2",
105
+ "vite": "^8.0.10",
106
+ "zod": "^4.1.12"
107
+ }
108
+ }