@definable/ui 0.1.13 → 0.1.15

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 (300) hide show
  1. package/README.md +0 -7
  2. package/dist/components/alert-dialog.js +55 -2
  3. package/dist/components/alert.js +63 -2
  4. package/dist/components/avatar.js +41 -2
  5. package/dist/components/badge.js +26 -2
  6. package/dist/components/button.d.ts +2 -2
  7. package/dist/components/button.js +49 -2
  8. package/dist/components/calendar.js +86 -2
  9. package/dist/components/card.js +61 -2
  10. package/dist/components/carousel.js +100 -2
  11. package/dist/components/checkbox.js +31 -2
  12. package/dist/components/collapse.js +49 -2
  13. package/dist/components/command-menu.js +89 -2
  14. package/dist/components/command.js +115 -2
  15. package/dist/components/confirmation-modal.js +44 -2
  16. package/dist/components/context-menu.js +185 -2
  17. package/dist/components/dialog.js +121 -2
  18. package/dist/components/dropdown-menu.js +48 -2
  19. package/dist/components/dropzone.js +44 -2
  20. package/dist/components/image-cropper-modal.js +250 -2
  21. package/dist/components/image-cropper.js +130 -2
  22. package/dist/components/input.js +21 -2
  23. package/dist/components/label.js +19 -2
  24. package/dist/components/loader.js +69 -2
  25. package/dist/components/loading-placeholder.js +24 -2
  26. package/dist/components/mention.js +153 -2
  27. package/dist/components/modal.js +135 -2
  28. package/dist/components/notification.js +25 -2
  29. package/dist/components/popover.js +23 -2
  30. package/dist/components/progress.js +34 -2
  31. package/dist/components/radio-group.js +47 -2
  32. package/dist/components/scroll-area.js +46 -2
  33. package/dist/components/select.js +130 -2
  34. package/dist/components/selection-bar.js +53 -2
  35. package/dist/components/separator.js +24 -2
  36. package/dist/components/sheet.js +128 -2
  37. package/dist/components/skeleton.js +17 -2
  38. package/dist/components/slider.js +32 -2
  39. package/dist/components/stepper/index.d.ts +4 -0
  40. package/dist/components/stepper/step-layout.d.ts +8 -0
  41. package/dist/components/stepper/stepper-modal.d.ts +26 -0
  42. package/dist/components/stepper/stepper.d.ts +7 -0
  43. package/dist/components/stepper/types.d.ts +6 -0
  44. package/dist/components/stepper.js +6 -2
  45. package/dist/components/switch.js +35 -2
  46. package/dist/components/table-empty.js +22 -2
  47. package/dist/components/table-mobile.js +91 -2
  48. package/dist/components/table.js +156 -2
  49. package/dist/components/tabs.js +46 -2
  50. package/dist/components/terminal.js +49 -2
  51. package/dist/components/textarea.js +20 -2
  52. package/dist/components/tooltip.js +75 -2
  53. package/dist/components/use-toast.js +64 -2
  54. package/dist/icons/icons.d.ts +8 -0
  55. package/dist/icons/index.d.ts +1 -0
  56. package/dist/icons/providers/anthropic.d.ts +2 -0
  57. package/dist/icons/providers/claude.d.ts +2 -0
  58. package/dist/icons/providers/deepseek.d.ts +2 -0
  59. package/dist/icons/providers/gemini.d.ts +2 -0
  60. package/dist/icons/providers/grok.d.ts +2 -0
  61. package/dist/icons/providers/index.d.ts +6 -0
  62. package/dist/icons/providers/openai.d.ts +2 -0
  63. package/dist/icons/providers/types.d.ts +4 -0
  64. package/dist/index.d.ts +48 -962
  65. package/dist/index.js +444 -2
  66. package/dist/lib/icons.d.ts +14 -0
  67. package/dist/lib/index.d.ts +2 -0
  68. package/dist/lib/utils.js +8 -2
  69. package/dist/{stepper-modal-SYU9mbXs.js → stepper-modal-JXpOXOV2.js} +90 -91
  70. package/dist/styles.css +1 -1
  71. package/package.json +180 -134
  72. package/dist/MonacoEditor-COZcVMEj.cjs +0 -8
  73. package/dist/MonacoEditor-COZcVMEj.cjs.map +0 -1
  74. package/dist/MonacoEditor-D3QSSKa4.js +0 -295
  75. package/dist/MonacoEditor-D3QSSKa4.js.map +0 -1
  76. package/dist/alert-dialog.d.ts +0 -18
  77. package/dist/alert.d.ts +0 -25
  78. package/dist/avatar.d.ts +0 -9
  79. package/dist/badge.d.ts +0 -15
  80. package/dist/button.d.ts +0 -16
  81. package/dist/calendar.d.ts +0 -21
  82. package/dist/card.d.ts +0 -15
  83. package/dist/carousel.d.ts +0 -18
  84. package/dist/charts.d.ts +0 -26
  85. package/dist/checkbox.d.ts +0 -6
  86. package/dist/collapse.d.ts +0 -15
  87. package/dist/command-menu.d.ts +0 -12
  88. package/dist/command.d.ts +0 -89
  89. package/dist/components/alert-dialog.esm.js +0 -59
  90. package/dist/components/alert-dialog.esm.js.map +0 -1
  91. package/dist/components/alert-dialog.js.map +0 -1
  92. package/dist/components/alert.esm.js +0 -64
  93. package/dist/components/alert.esm.js.map +0 -1
  94. package/dist/components/alert.js.map +0 -1
  95. package/dist/components/avatar.esm.js +0 -42
  96. package/dist/components/avatar.esm.js.map +0 -1
  97. package/dist/components/avatar.js.map +0 -1
  98. package/dist/components/badge.esm.js +0 -27
  99. package/dist/components/badge.esm.js.map +0 -1
  100. package/dist/components/badge.js.map +0 -1
  101. package/dist/components/button.esm.js +0 -48
  102. package/dist/components/button.esm.js.map +0 -1
  103. package/dist/components/button.js.map +0 -1
  104. package/dist/components/calendar.esm.js +0 -5562
  105. package/dist/components/calendar.esm.js.map +0 -1
  106. package/dist/components/calendar.js.map +0 -1
  107. package/dist/components/card.esm.js +0 -62
  108. package/dist/components/card.esm.js.map +0 -1
  109. package/dist/components/card.js.map +0 -1
  110. package/dist/components/carousel.esm.js +0 -101
  111. package/dist/components/carousel.esm.js.map +0 -1
  112. package/dist/components/carousel.js.map +0 -1
  113. package/dist/components/charts.d.ts +0 -17
  114. package/dist/components/charts.esm.js +0 -48
  115. package/dist/components/charts.esm.js.map +0 -1
  116. package/dist/components/charts.js +0 -2
  117. package/dist/components/charts.js.map +0 -1
  118. package/dist/components/checkbox.esm.js +0 -32
  119. package/dist/components/checkbox.esm.js.map +0 -1
  120. package/dist/components/checkbox.js.map +0 -1
  121. package/dist/components/collapse.esm.js +0 -50
  122. package/dist/components/collapse.esm.js.map +0 -1
  123. package/dist/components/collapse.js.map +0 -1
  124. package/dist/components/command-menu.esm.js +0 -90
  125. package/dist/components/command-menu.esm.js.map +0 -1
  126. package/dist/components/command-menu.js.map +0 -1
  127. package/dist/components/command.esm.js +0 -425
  128. package/dist/components/command.esm.js.map +0 -1
  129. package/dist/components/command.js.map +0 -1
  130. package/dist/components/confirmation-modal.esm.js +0 -46
  131. package/dist/components/confirmation-modal.esm.js.map +0 -1
  132. package/dist/components/confirmation-modal.js.map +0 -1
  133. package/dist/components/context-menu.esm.js +0 -186
  134. package/dist/components/context-menu.esm.js.map +0 -1
  135. package/dist/components/context-menu.js.map +0 -1
  136. package/dist/components/dialog.esm.js +0 -122
  137. package/dist/components/dialog.esm.js.map +0 -1
  138. package/dist/components/dialog.js.map +0 -1
  139. package/dist/components/dropdown-menu.esm.js +0 -49
  140. package/dist/components/dropdown-menu.esm.js.map +0 -1
  141. package/dist/components/dropdown-menu.js.map +0 -1
  142. package/dist/components/dropzone.esm.js +0 -45
  143. package/dist/components/dropzone.esm.js.map +0 -1
  144. package/dist/components/dropzone.js.map +0 -1
  145. package/dist/components/image-cropper-modal.esm.js +0 -251
  146. package/dist/components/image-cropper-modal.esm.js.map +0 -1
  147. package/dist/components/image-cropper-modal.js.map +0 -1
  148. package/dist/components/image-cropper.esm.js +0 -131
  149. package/dist/components/image-cropper.esm.js.map +0 -1
  150. package/dist/components/image-cropper.js.map +0 -1
  151. package/dist/components/input.esm.js +0 -22
  152. package/dist/components/input.esm.js.map +0 -1
  153. package/dist/components/input.js.map +0 -1
  154. package/dist/components/label.esm.js +0 -20
  155. package/dist/components/label.esm.js.map +0 -1
  156. package/dist/components/label.js.map +0 -1
  157. package/dist/components/loader.esm.js +0 -70
  158. package/dist/components/loader.esm.js.map +0 -1
  159. package/dist/components/loader.js.map +0 -1
  160. package/dist/components/loading-placeholder.esm.js +0 -25
  161. package/dist/components/loading-placeholder.esm.js.map +0 -1
  162. package/dist/components/loading-placeholder.js.map +0 -1
  163. package/dist/components/markdown.d.ts +0 -2
  164. package/dist/components/markdown.esm.js +0 -12066
  165. package/dist/components/markdown.esm.js.map +0 -1
  166. package/dist/components/markdown.js +0 -18
  167. package/dist/components/markdown.js.map +0 -1
  168. package/dist/components/mention.esm.js +0 -154
  169. package/dist/components/mention.esm.js.map +0 -1
  170. package/dist/components/mention.js.map +0 -1
  171. package/dist/components/modal.esm.js +0 -136
  172. package/dist/components/modal.esm.js.map +0 -1
  173. package/dist/components/modal.js.map +0 -1
  174. package/dist/components/monaco-editor.d.ts +0 -2
  175. package/dist/components/monaco-editor.esm.js +0 -9
  176. package/dist/components/monaco-editor.esm.js.map +0 -1
  177. package/dist/components/monaco-editor.js +0 -2
  178. package/dist/components/monaco-editor.js.map +0 -1
  179. package/dist/components/notification.esm.js +0 -26
  180. package/dist/components/notification.esm.js.map +0 -1
  181. package/dist/components/notification.js.map +0 -1
  182. package/dist/components/popover.esm.js +0 -24
  183. package/dist/components/popover.esm.js.map +0 -1
  184. package/dist/components/popover.js.map +0 -1
  185. package/dist/components/progress.esm.js +0 -35
  186. package/dist/components/progress.esm.js.map +0 -1
  187. package/dist/components/progress.js.map +0 -1
  188. package/dist/components/radio-group.esm.js +0 -48
  189. package/dist/components/radio-group.esm.js.map +0 -1
  190. package/dist/components/radio-group.js.map +0 -1
  191. package/dist/components/scroll-area.esm.js +0 -47
  192. package/dist/components/scroll-area.esm.js.map +0 -1
  193. package/dist/components/scroll-area.js.map +0 -1
  194. package/dist/components/select.esm.js +0 -131
  195. package/dist/components/select.esm.js.map +0 -1
  196. package/dist/components/select.js.map +0 -1
  197. package/dist/components/selection-bar.esm.js +0 -54
  198. package/dist/components/selection-bar.esm.js.map +0 -1
  199. package/dist/components/selection-bar.js.map +0 -1
  200. package/dist/components/separator.esm.js +0 -25
  201. package/dist/components/separator.esm.js.map +0 -1
  202. package/dist/components/separator.js.map +0 -1
  203. package/dist/components/sheet.esm.js +0 -129
  204. package/dist/components/sheet.esm.js.map +0 -1
  205. package/dist/components/sheet.js.map +0 -1
  206. package/dist/components/skeleton.esm.js +0 -18
  207. package/dist/components/skeleton.esm.js.map +0 -1
  208. package/dist/components/skeleton.js.map +0 -1
  209. package/dist/components/slider.esm.js +0 -33
  210. package/dist/components/slider.esm.js.map +0 -1
  211. package/dist/components/slider.js.map +0 -1
  212. package/dist/components/stepper.d.ts +0 -2
  213. package/dist/components/stepper.esm.js +0 -7
  214. package/dist/components/stepper.esm.js.map +0 -1
  215. package/dist/components/stepper.js.map +0 -1
  216. package/dist/components/switch.esm.js +0 -36
  217. package/dist/components/switch.esm.js.map +0 -1
  218. package/dist/components/switch.js.map +0 -1
  219. package/dist/components/table-empty.esm.js +0 -23
  220. package/dist/components/table-empty.esm.js.map +0 -1
  221. package/dist/components/table-empty.js.map +0 -1
  222. package/dist/components/table-mobile.esm.js +0 -92
  223. package/dist/components/table-mobile.esm.js.map +0 -1
  224. package/dist/components/table-mobile.js.map +0 -1
  225. package/dist/components/table.esm.js +0 -157
  226. package/dist/components/table.esm.js.map +0 -1
  227. package/dist/components/table.js.map +0 -1
  228. package/dist/components/tabs.esm.js +0 -47
  229. package/dist/components/tabs.esm.js.map +0 -1
  230. package/dist/components/tabs.js.map +0 -1
  231. package/dist/components/terminal.esm.js +0 -50
  232. package/dist/components/terminal.esm.js.map +0 -1
  233. package/dist/components/terminal.js.map +0 -1
  234. package/dist/components/textarea.esm.js +0 -21
  235. package/dist/components/textarea.esm.js.map +0 -1
  236. package/dist/components/textarea.js.map +0 -1
  237. package/dist/components/tooltip.esm.js +0 -76
  238. package/dist/components/tooltip.esm.js.map +0 -1
  239. package/dist/components/tooltip.js.map +0 -1
  240. package/dist/components/use-toast.esm.js +0 -65
  241. package/dist/components/use-toast.esm.js.map +0 -1
  242. package/dist/components/use-toast.js.map +0 -1
  243. package/dist/confirmation-modal.d.ts +0 -16
  244. package/dist/context-menu.d.ts +0 -41
  245. package/dist/dialog.d.ts +0 -33
  246. package/dist/dropdown-menu.d.ts +0 -16
  247. package/dist/dropzone.d.ts +0 -16
  248. package/dist/image-cropper-modal.d.ts +0 -14
  249. package/dist/image-cropper.d.ts +0 -15
  250. package/dist/index-DACAHwoB.js +0 -35
  251. package/dist/index-DACAHwoB.js.map +0 -1
  252. package/dist/index-Deooizx8.cjs +0 -2
  253. package/dist/index-Deooizx8.cjs.map +0 -1
  254. package/dist/index.esm.js +0 -458
  255. package/dist/index.esm.js.map +0 -1
  256. package/dist/index.js.map +0 -1
  257. package/dist/input.d.ts +0 -8
  258. package/dist/jsx-runtime-BYECrxsp.cjs +0 -31
  259. package/dist/jsx-runtime-BYECrxsp.cjs.map +0 -1
  260. package/dist/jsx-runtime-DGlMoOmv.js +0 -631
  261. package/dist/jsx-runtime-DGlMoOmv.js.map +0 -1
  262. package/dist/label.d.ts +0 -6
  263. package/dist/lib/utils.esm.js +0 -5
  264. package/dist/lib/utils.esm.js.map +0 -1
  265. package/dist/lib/utils.js.map +0 -1
  266. package/dist/loader.d.ts +0 -14
  267. package/dist/loading-placeholder.d.ts +0 -12
  268. package/dist/markdown.d.ts +0 -122
  269. package/dist/mention.d.ts +0 -29
  270. package/dist/modal.d.ts +0 -28
  271. package/dist/monaco-editor.d.ts +0 -76
  272. package/dist/notification.d.ts +0 -9
  273. package/dist/popover.d.ts +0 -10
  274. package/dist/progress.d.ts +0 -6
  275. package/dist/radio-group.d.ts +0 -8
  276. package/dist/scroll-area.d.ts +0 -8
  277. package/dist/select.d.ts +0 -31
  278. package/dist/selection-bar.d.ts +0 -15
  279. package/dist/separator.d.ts +0 -6
  280. package/dist/sheet.d.ts +0 -17
  281. package/dist/skeleton.d.ts +0 -5
  282. package/dist/slider.d.ts +0 -6
  283. package/dist/stepper-modal-CPlBpxWy.cjs +0 -2
  284. package/dist/stepper-modal-CPlBpxWy.cjs.map +0 -1
  285. package/dist/stepper-modal-SYU9mbXs.js.map +0 -1
  286. package/dist/stepper.d.ts +0 -75
  287. package/dist/switch.d.ts +0 -6
  288. package/dist/table-empty.d.ts +0 -13
  289. package/dist/table-mobile.d.ts +0 -37
  290. package/dist/table.d.ts +0 -37
  291. package/dist/tabs.d.ts +0 -12
  292. package/dist/terminal.d.ts +0 -47
  293. package/dist/textarea.d.ts +0 -8
  294. package/dist/tooltip.d.ts +0 -12
  295. package/dist/use-toast.d.ts +0 -28
  296. package/dist/utils-DSKoFOjv.cjs +0 -2
  297. package/dist/utils-DSKoFOjv.cjs.map +0 -1
  298. package/dist/utils-qaFjX9_3.js +0 -2279
  299. package/dist/utils-qaFjX9_3.js.map +0 -1
  300. package/dist/utils.d.ts +0 -5
package/package.json CHANGED
@@ -1,279 +1,219 @@
1
1
  {
2
2
  "name": "@definable/ui",
3
3
  "type": "module",
4
- "version": "0.1.13",
4
+ "version": "0.1.15",
5
5
  "private": false,
6
6
  "description": "Definable UI Component Library",
7
7
  "main": "dist/index.js",
8
- "module": "dist/index.esm.js",
8
+ "module": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
10
  "files": [
11
11
  "dist"
12
12
  ],
13
+ "sideEffects": [
14
+ "*.css",
15
+ "./dist/styles.css"
16
+ ],
13
17
  "publishConfig": {
14
18
  "access": "public",
15
19
  "registry": "https://registry.npmjs.org/"
16
20
  },
17
21
  "exports": {
18
22
  ".": {
19
- "import": "./dist/index.esm.js",
20
- "require": "./dist/index.js",
23
+ "import": "./dist/index.js",
21
24
  "types": "./dist/index.d.ts"
22
25
  },
23
26
  "./styles.css": "./dist/styles.css",
24
27
  "./alert": {
25
- "import": "./dist/components/alert.esm.js",
26
- "require": "./dist/components/alert.js",
28
+ "import": "./dist/components/alert.js",
27
29
  "types": "./dist/components/alert.d.ts"
28
30
  },
29
31
  "./alert-dialog": {
30
- "import": "./dist/components/alert-dialog.esm.js",
31
- "require": "./dist/components/alert-dialog.js",
32
+ "import": "./dist/components/alert-dialog.js",
32
33
  "types": "./dist/components/alert-dialog.d.ts"
33
34
  },
34
35
  "./avatar": {
35
- "import": "./dist/components/avatar.esm.js",
36
- "require": "./dist/components/avatar.js",
36
+ "import": "./dist/components/avatar.js",
37
37
  "types": "./dist/components/avatar.d.ts"
38
38
  },
39
39
  "./badge": {
40
- "import": "./dist/components/badge.esm.js",
41
- "require": "./dist/components/badge.js",
40
+ "import": "./dist/components/badge.js",
42
41
  "types": "./dist/components/badge.d.ts"
43
42
  },
44
43
  "./button": {
45
- "import": "./dist/components/button.esm.js",
46
- "require": "./dist/components/button.js",
44
+ "import": "./dist/components/button.js",
47
45
  "types": "./dist/components/button.d.ts"
48
46
  },
49
47
  "./calendar": {
50
- "import": "./dist/components/calendar.esm.js",
51
- "require": "./dist/components/calendar.js",
48
+ "import": "./dist/components/calendar.js",
52
49
  "types": "./dist/components/calendar.d.ts"
53
50
  },
54
51
  "./card": {
55
- "import": "./dist/components/card.esm.js",
56
- "require": "./dist/components/card.js",
52
+ "import": "./dist/components/card.js",
57
53
  "types": "./dist/components/card.d.ts"
58
54
  },
59
55
  "./carousel": {
60
- "import": "./dist/components/carousel.esm.js",
61
- "require": "./dist/components/carousel.js",
56
+ "import": "./dist/components/carousel.js",
62
57
  "types": "./dist/components/carousel.d.ts"
63
58
  },
64
- "./charts": {
65
- "import": "./dist/components/charts.esm.js",
66
- "require": "./dist/components/charts.js",
67
- "types": "./dist/components/charts.d.ts"
68
- },
69
59
  "./checkbox": {
70
- "import": "./dist/components/checkbox.esm.js",
71
- "require": "./dist/components/checkbox.js",
60
+ "import": "./dist/components/checkbox.js",
72
61
  "types": "./dist/components/checkbox.d.ts"
73
62
  },
74
63
  "./collapse": {
75
- "import": "./dist/components/collapse.esm.js",
76
- "require": "./dist/components/collapse.js",
64
+ "import": "./dist/components/collapse.js",
77
65
  "types": "./dist/components/collapse.d.ts"
78
66
  },
79
67
  "./command": {
80
- "import": "./dist/components/command.esm.js",
81
- "require": "./dist/components/command.js",
68
+ "import": "./dist/components/command.js",
82
69
  "types": "./dist/components/command.d.ts"
83
70
  },
84
71
  "./command-menu": {
85
- "import": "./dist/components/command-menu.esm.js",
86
- "require": "./dist/components/command-menu.js",
72
+ "import": "./dist/components/command-menu.js",
87
73
  "types": "./dist/components/command-menu.d.ts"
88
74
  },
89
75
  "./confirmation-modal": {
90
- "import": "./dist/components/confirmation-modal.esm.js",
91
- "require": "./dist/components/confirmation-modal.js",
76
+ "import": "./dist/components/confirmation-modal.js",
92
77
  "types": "./dist/components/confirmation-modal.d.ts"
93
78
  },
94
79
  "./context-menu": {
95
- "import": "./dist/components/context-menu.esm.js",
96
- "require": "./dist/components/context-menu.js",
80
+ "import": "./dist/components/context-menu.js",
97
81
  "types": "./dist/components/context-menu.d.ts"
98
82
  },
99
83
  "./dialog": {
100
- "import": "./dist/components/dialog.esm.js",
101
- "require": "./dist/components/dialog.js",
84
+ "import": "./dist/components/dialog.js",
102
85
  "types": "./dist/components/dialog.d.ts"
103
86
  },
104
87
  "./dropdown-menu": {
105
- "import": "./dist/components/dropdown-menu.esm.js",
106
- "require": "./dist/components/dropdown-menu.js",
88
+ "import": "./dist/components/dropdown-menu.js",
107
89
  "types": "./dist/components/dropdown-menu.d.ts"
108
90
  },
109
91
  "./dropzone": {
110
- "import": "./dist/components/dropzone.esm.js",
111
- "require": "./dist/components/dropzone.js",
92
+ "import": "./dist/components/dropzone.js",
112
93
  "types": "./dist/components/dropzone.d.ts"
113
94
  },
114
95
  "./image-cropper": {
115
- "import": "./dist/components/image-cropper.esm.js",
116
- "require": "./dist/components/image-cropper.js",
96
+ "import": "./dist/components/image-cropper.js",
117
97
  "types": "./dist/components/image-cropper.d.ts"
118
98
  },
119
99
  "./image-cropper-modal": {
120
- "import": "./dist/components/image-cropper-modal.esm.js",
121
- "require": "./dist/components/image-cropper-modal.js",
100
+ "import": "./dist/components/image-cropper-modal.js",
122
101
  "types": "./dist/components/image-cropper-modal.d.ts"
123
102
  },
124
103
  "./input": {
125
- "import": "./dist/components/input.esm.js",
126
- "require": "./dist/components/input.js",
104
+ "import": "./dist/components/input.js",
127
105
  "types": "./dist/components/input.d.ts"
128
106
  },
129
107
  "./label": {
130
- "import": "./dist/components/label.esm.js",
131
- "require": "./dist/components/label.js",
108
+ "import": "./dist/components/label.js",
132
109
  "types": "./dist/components/label.d.ts"
133
110
  },
134
111
  "./loader": {
135
- "import": "./dist/components/loader.esm.js",
136
- "require": "./dist/components/loader.js",
112
+ "import": "./dist/components/loader.js",
137
113
  "types": "./dist/components/loader.d.ts"
138
114
  },
139
115
  "./loading-placeholder": {
140
- "import": "./dist/components/loading-placeholder.esm.js",
141
- "require": "./dist/components/loading-placeholder.js",
116
+ "import": "./dist/components/loading-placeholder.js",
142
117
  "types": "./dist/components/loading-placeholder.d.ts"
143
118
  },
144
- "./markdown": {
145
- "import": "./dist/components/markdown.esm.js",
146
- "require": "./dist/components/markdown.js",
147
- "types": "./dist/components/markdown.d.ts"
148
- },
149
119
  "./mention": {
150
- "import": "./dist/components/mention.esm.js",
151
- "require": "./dist/components/mention.js",
120
+ "import": "./dist/components/mention.js",
152
121
  "types": "./dist/components/mention.d.ts"
153
122
  },
154
123
  "./modal": {
155
- "import": "./dist/components/modal.esm.js",
156
- "require": "./dist/components/modal.js",
124
+ "import": "./dist/components/modal.js",
157
125
  "types": "./dist/components/modal.d.ts"
158
126
  },
159
- "./monaco-editor": {
160
- "import": "./dist/components/monaco-editor.esm.js",
161
- "require": "./dist/components/monaco-editor.js",
162
- "types": "./dist/components/monaco-editor.d.ts"
163
- },
164
127
  "./notification": {
165
- "import": "./dist/components/notification.esm.js",
166
- "require": "./dist/components/notification.js",
128
+ "import": "./dist/components/notification.js",
167
129
  "types": "./dist/components/notification.d.ts"
168
130
  },
169
131
  "./popover": {
170
- "import": "./dist/components/popover.esm.js",
171
- "require": "./dist/components/popover.js",
132
+ "import": "./dist/components/popover.js",
172
133
  "types": "./dist/components/popover.d.ts"
173
134
  },
174
135
  "./progress": {
175
- "import": "./dist/components/progress.esm.js",
176
- "require": "./dist/components/progress.js",
136
+ "import": "./dist/components/progress.js",
177
137
  "types": "./dist/components/progress.d.ts"
178
138
  },
179
139
  "./radio-group": {
180
- "import": "./dist/components/radio-group.esm.js",
181
- "require": "./dist/components/radio-group.js",
140
+ "import": "./dist/components/radio-group.js",
182
141
  "types": "./dist/components/radio-group.d.ts"
183
142
  },
184
143
  "./scroll-area": {
185
- "import": "./dist/components/scroll-area.esm.js",
186
- "require": "./dist/components/scroll-area.js",
144
+ "import": "./dist/components/scroll-area.js",
187
145
  "types": "./dist/components/scroll-area.d.ts"
188
146
  },
189
147
  "./select": {
190
- "import": "./dist/components/select.esm.js",
191
- "require": "./dist/components/select.js",
148
+ "import": "./dist/components/select.js",
192
149
  "types": "./dist/components/select.d.ts"
193
150
  },
194
151
  "./selection-bar": {
195
- "import": "./dist/components/selection-bar.esm.js",
196
- "require": "./dist/components/selection-bar.js",
152
+ "import": "./dist/components/selection-bar.js",
197
153
  "types": "./dist/components/selection-bar.d.ts"
198
154
  },
199
155
  "./separator": {
200
- "import": "./dist/components/separator.esm.js",
201
- "require": "./dist/components/separator.js",
156
+ "import": "./dist/components/separator.js",
202
157
  "types": "./dist/components/separator.d.ts"
203
158
  },
204
159
  "./sheet": {
205
- "import": "./dist/components/sheet.esm.js",
206
- "require": "./dist/components/sheet.js",
160
+ "import": "./dist/components/sheet.js",
207
161
  "types": "./dist/components/sheet.d.ts"
208
162
  },
209
163
  "./skeleton": {
210
- "import": "./dist/components/skeleton.esm.js",
211
- "require": "./dist/components/skeleton.js",
164
+ "import": "./dist/components/skeleton.js",
212
165
  "types": "./dist/components/skeleton.d.ts"
213
166
  },
214
167
  "./slider": {
215
- "import": "./dist/components/slider.esm.js",
216
- "require": "./dist/components/slider.js",
168
+ "import": "./dist/components/slider.js",
217
169
  "types": "./dist/components/slider.d.ts"
218
170
  },
219
171
  "./stepper": {
220
- "import": "./dist/components/stepper.esm.js",
221
- "require": "./dist/components/stepper.js",
172
+ "import": "./dist/components/stepper.js",
222
173
  "types": "./dist/components/stepper.d.ts"
223
174
  },
224
175
  "./switch": {
225
- "import": "./dist/components/switch.esm.js",
226
- "require": "./dist/components/switch.js",
176
+ "import": "./dist/components/switch.js",
227
177
  "types": "./dist/components/switch.d.ts"
228
178
  },
229
179
  "./table": {
230
- "import": "./dist/components/table.esm.js",
231
- "require": "./dist/components/table.js",
180
+ "import": "./dist/components/table.js",
232
181
  "types": "./dist/components/table.d.ts"
233
182
  },
234
183
  "./table-empty": {
235
- "import": "./dist/components/table-empty.esm.js",
236
- "require": "./dist/components/table-empty.js",
184
+ "import": "./dist/components/table-empty.js",
237
185
  "types": "./dist/components/table-empty.d.ts"
238
186
  },
239
187
  "./table-mobile": {
240
- "import": "./dist/components/table-mobile.esm.js",
241
- "require": "./dist/components/table-mobile.js",
188
+ "import": "./dist/components/table-mobile.js",
242
189
  "types": "./dist/components/table-mobile.d.ts"
243
190
  },
244
191
  "./tabs": {
245
- "import": "./dist/components/tabs.esm.js",
246
- "require": "./dist/components/tabs.js",
192
+ "import": "./dist/components/tabs.js",
247
193
  "types": "./dist/components/tabs.d.ts"
248
194
  },
249
195
  "./terminal": {
250
- "import": "./dist/components/terminal.esm.js",
251
- "require": "./dist/components/terminal.js",
196
+ "import": "./dist/components/terminal.js",
252
197
  "types": "./dist/components/terminal.d.ts"
253
198
  },
254
199
  "./textarea": {
255
- "import": "./dist/components/textarea.esm.js",
256
- "require": "./dist/components/textarea.js",
200
+ "import": "./dist/components/textarea.js",
257
201
  "types": "./dist/components/textarea.d.ts"
258
202
  },
259
203
  "./tooltip": {
260
- "import": "./dist/components/tooltip.esm.js",
261
- "require": "./dist/components/tooltip.js",
204
+ "import": "./dist/components/tooltip.js",
262
205
  "types": "./dist/components/tooltip.d.ts"
263
206
  },
264
207
  "./use-toast": {
265
- "import": "./dist/components/use-toast.esm.js",
266
- "require": "./dist/components/use-toast.js",
208
+ "import": "./dist/components/use-toast.js",
267
209
  "types": "./dist/components/use-toast.d.ts"
268
210
  },
269
211
  "./utils": {
270
- "import": "./dist/lib/utils.esm.js",
271
- "require": "./dist/lib/utils.js",
212
+ "import": "./dist/lib/utils.js",
272
213
  "types": "./dist/lib/utils.d.ts"
273
214
  },
274
215
  "./lib": {
275
- "import": "./dist/lib/index.esm.js",
276
- "require": "./dist/lib/index.js",
216
+ "import": "./dist/lib/index.js",
277
217
  "types": "./dist/lib/index.d.ts"
278
218
  }
279
219
  },
@@ -284,8 +224,11 @@
284
224
  "build-storybook": "storybook build",
285
225
  "chromatic": "chromatic"
286
226
  },
287
- "dependencies": {
288
- "@monaco-editor/react": "^4.7.0",
227
+ "dependencies": {},
228
+ "peerDependencies": {
229
+ "class-variance-authority": "^0.7.0",
230
+ "clsx": "^2.0.0",
231
+ "tailwind-merge": "^2.0.0",
289
232
  "@radix-ui/react-accordion": "^1.2.3",
290
233
  "@radix-ui/react-alert-dialog": "^1.1.6",
291
234
  "@radix-ui/react-checkbox": "^1.1.4",
@@ -304,37 +247,129 @@
304
247
  "@radix-ui/react-slot": "^1.1.2",
305
248
  "@radix-ui/react-switch": "^1.1.3",
306
249
  "@radix-ui/react-tabs": "^1.1.3",
307
- "@smastrom/react-rating": "^1.5.0",
308
- "@types/react-syntax-highlighter": "^15.5.13",
309
- "class-variance-authority": "^0.7.0",
310
- "clsx": "^2.0.0",
311
250
  "cmdk": "^1.1.1",
312
251
  "copy-to-clipboard": "^3.3.3",
313
252
  "framer-motion": "^12.6.5",
314
253
  "lucide-react": "^0.293.0",
315
254
  "luxon": "^3.7.1",
255
+ "react": "^18.0.0",
256
+ "react-dom": "^18.0.0",
316
257
  "react-dropzone": "^14.3.8",
317
- "react-markdown": "^9.0.1",
318
258
  "react-mentions": "^4.4.10",
319
- "react-syntax-highlighter": "^15.6.1",
320
- "recharts": "^3.1.2",
321
- "rehype-autolink-headings": "^7.1.0",
322
- "rehype-figure": "^1.0.1",
323
- "rehype-raw": "^7.0.0",
324
- "rehype-slug": "^6.0.0",
325
- "remark-gfm": "^4.0.1",
326
- "sonner": "^2.0.7",
327
- "tailwind-merge": "^2.0.0"
259
+ "sonner": "^2.0.7"
328
260
  },
329
- "peerDependencies": {
330
- "react": "^18.0.0",
331
- "react-dom": "^18.0.0"
261
+ "peerDependenciesMeta": {
262
+ "class-variance-authority": {
263
+ "optional": true
264
+ },
265
+ "clsx": {
266
+ "optional": true
267
+ },
268
+ "tailwind-merge": {
269
+ "optional": true
270
+ },
271
+ "@radix-ui/react-accordion": {
272
+ "optional": true
273
+ },
274
+ "@radix-ui/react-alert-dialog": {
275
+ "optional": true
276
+ },
277
+ "@radix-ui/react-checkbox": {
278
+ "optional": true
279
+ },
280
+ "@radix-ui/react-context-menu": {
281
+ "optional": true
282
+ },
283
+ "@radix-ui/react-dialog": {
284
+ "optional": true
285
+ },
286
+ "@radix-ui/react-dropdown-menu": {
287
+ "optional": true
288
+ },
289
+ "@radix-ui/react-label": {
290
+ "optional": true
291
+ },
292
+ "@radix-ui/react-navigation-menu": {
293
+ "optional": true
294
+ },
295
+ "@radix-ui/react-popover": {
296
+ "optional": true
297
+ },
298
+ "@radix-ui/react-progress": {
299
+ "optional": true
300
+ },
301
+ "@radix-ui/react-radio-group": {
302
+ "optional": true
303
+ },
304
+ "@radix-ui/react-scroll-area": {
305
+ "optional": true
306
+ },
307
+ "@radix-ui/react-select": {
308
+ "optional": true
309
+ },
310
+ "@radix-ui/react-separator": {
311
+ "optional": true
312
+ },
313
+ "@radix-ui/react-slider": {
314
+ "optional": true
315
+ },
316
+ "@radix-ui/react-slot": {
317
+ "optional": true
318
+ },
319
+ "@radix-ui/react-switch": {
320
+ "optional": true
321
+ },
322
+ "@radix-ui/react-tabs": {
323
+ "optional": true
324
+ },
325
+ "cmdk": {
326
+ "optional": true
327
+ },
328
+ "copy-to-clipboard": {
329
+ "optional": true
330
+ },
331
+ "framer-motion": {
332
+ "optional": true
333
+ },
334
+ "lucide-react": {
335
+ "optional": true
336
+ },
337
+ "luxon": {
338
+ "optional": true
339
+ },
340
+ "react-dropzone": {
341
+ "optional": true
342
+ },
343
+ "react-mentions": {
344
+ "optional": true
345
+ },
346
+ "sonner": {
347
+ "optional": true
348
+ }
332
349
  },
333
350
  "devDependencies": {
334
351
  "@babel/core": "^7.23.3",
335
352
  "@babel/preset-env": "^7.23.3",
336
353
  "@babel/preset-react": "^7.23.3",
337
354
  "@babel/preset-typescript": "^7.23.3",
355
+ "@radix-ui/react-accordion": "^1.2.3",
356
+ "@radix-ui/react-alert-dialog": "^1.1.6",
357
+ "@radix-ui/react-checkbox": "^1.1.4",
358
+ "@radix-ui/react-context-menu": "^2.2.15",
359
+ "@radix-ui/react-dialog": "^1.0.5",
360
+ "@radix-ui/react-dropdown-menu": "^2.1.6",
361
+ "@radix-ui/react-label": "^2.1.2",
362
+ "@radix-ui/react-navigation-menu": "^1.1.4",
363
+ "@radix-ui/react-popover": "^1.1.6",
364
+ "@radix-ui/react-progress": "^1.1.2",
365
+ "@radix-ui/react-radio-group": "^1.2.3",
366
+ "@radix-ui/react-scroll-area": "^1.2.3",
367
+ "@radix-ui/react-select": "^2.1.6",
368
+ "@radix-ui/react-separator": "^1.1.2",
369
+ "@radix-ui/react-slider": "^1.2.3",
370
+ "@radix-ui/react-slot": "^1.1.2",
371
+ "@radix-ui/react-switch": "^1.1.3",
372
+ "@radix-ui/react-tabs": "^1.1.3",
338
373
  "@storybook/addon-docs": "^9.1.1",
339
374
  "@storybook/addon-links": "^9.1.1",
340
375
  "@storybook/addon-onboarding": "^9.1.1",
@@ -342,6 +377,9 @@
342
377
  "@storybook/react-vite": "^9.1.1",
343
378
  "@storybook/testing-library": "^0.2.2",
344
379
  "@tailwindcss/typography": "^0.5.16",
380
+ "class-variance-authority": "^0.7.0",
381
+ "clsx": "^2.0.0",
382
+ "tailwind-merge": "^2.0.0",
345
383
  "@types/luxon": "^3.7.1",
346
384
  "@types/node": "^24.2.1",
347
385
  "@types/react": "^18.2.37",
@@ -350,10 +388,18 @@
350
388
  "@vitejs/plugin-react": "^4.3.4",
351
389
  "autoprefixer": "^10.4.16",
352
390
  "chromatic": "^11.28.0",
391
+ "cmdk": "^1.1.1",
392
+ "copy-to-clipboard": "^3.3.3",
353
393
  "esbuild": "^0.25.8",
394
+ "framer-motion": "^12.6.5",
395
+ "lucide-react": "^0.293.0",
396
+ "luxon": "^3.7.1",
354
397
  "postcss": "^8.4.31",
355
398
  "react": "^18.2.0",
356
399
  "react-dom": "^18.2.0",
400
+ "react-dropzone": "^14.3.8",
401
+ "react-mentions": "^4.4.10",
402
+ "sonner": "^2.0.7",
357
403
  "storybook": "^9.1.1",
358
404
  "tailwindcss": "^3.3.5",
359
405
  "typescript": "^5.2.2",
@@ -1,8 +0,0 @@
1
- "use strict";const a=require("./jsx-runtime-BYECrxsp.cjs"),x=require("react"),P=require("@monaco-editor/react"),T=require("./components/modal.js"),M=require("./components/button.js"),S=require("lucide-react"),O={minimap:{enabled:!1},fontSize:14,scrollBeyondLastLine:!1,wordWrap:"on",lineNumbers:"on",automaticLayout:!0,scrollbar:{vertical:"auto",horizontal:"auto"}},U={javascript:{},typescript:{},python:{},json:{},html:{},css:{},markdown:{wordWrap:"on"},plaintext:{}},k=new Map;let K=0;function C(s,c,t,b){const{language:j,variablePrefix:o,variableSuffix:y}=b,e=`provider_${++K}`;console.log(`Setting up variable suggestions with ID ${e} (${t.length} variables)`);const r=c.languages.registerCompletionItemProvider(j,{triggerCharacters:["{"],provideCompletionItems:(u,l)=>{if(u.getLineContent(l.lineNumber).substring(0,l.column-1).endsWith(o)){if(console.log(`[${e}] Detected ${o} - showing ${t.length} variable suggestions`),t.length===0)return console.log(`[${e}] No variables available for suggestions`),{suggestions:[]};const i=Array.from(new Map(t.map(n=>[n.name,n])).values()).map(n=>({label:n.name,kind:c.languages.CompletionItemKind.Variable,detail:n.type,documentation:{value:n.description||"",isTrusted:!0},insertText:n.name,sortText:"0"+n.name,range:{startLineNumber:l.lineNumber,startColumn:l.column,endLineNumber:l.lineNumber,endColumn:l.column}}));return console.log(`[${e}] Created ${i.length} suggestions`),{suggestions:i}}return{suggestions:[]}}}),m=s.onKeyUp(u=>{if(u.code!=="BracketLeft"&&u.code!=="Digit2")return;const l=s.getPosition();if(!l)return;const h=s.getModel();if(!h)return;h.getLineContent(l.lineNumber).substring(0,l.column-1).endsWith(o)&&(console.log(`[${e}] Manually triggering suggestions on ${o}`),setTimeout(()=>{s.trigger("keyboard","editor.action.triggerSuggest",{})},20))}),p=()=>{console.log(`Disposing provider ${e}`),r.dispose(),m.dispose(),k.delete(e)};return k.set(e,{dispose:p,variables:t,config:b}),p}function V(s,c,t,b){const j=Array.from(new Map(t.map(o=>[o.name,o])).values());console.log(`Updating provider with ${j.length} variables`),C(s,c,j,b)}function I(s,c,t){var b;if(!(!t||t.length===0)){if(c==="javascript"||c==="typescript"){const j=t.map(e=>{if(e.isObject&&e.properties&&e.properties.length>0){const r=`I${e.name.charAt(0).toUpperCase()+e.name.slice(1)}`,m=e.properties.map(p=>` ${p.name}: ${p.type};`).join(`
2
- `);return`
3
- interface ${r} {
4
- ${m}
5
- }
6
- declare const ${e.name}: ${r};`}else return`declare const ${e.name}: ${e.type};`}).join(`
7
- `),o="predefined-variables";(b=s.__extraLibDisposables)!=null&&b[o]&&s.__extraLibDisposables[o].dispose();const y=s.languages.typescript.javascriptDefaults.addExtraLib(j,`ts:filename/${o}.d.ts`);s.__extraLibDisposables||(s.__extraLibDisposables={}),s.__extraLibDisposables[o]=y}if(c==="python"){["python-hover-provider","python-completion-provider"].forEach(e=>{var m;const r=(m=s.__customDisposables)==null?void 0:m[e];r&&r.dispose()}),s.__customDisposables||(s.__customDisposables={});const o=s.languages.registerHoverProvider("python",{provideHover:(e,r)=>{const m=e.getWordAtPosition(r);if(!m)return null;const p=t.find(h=>h.name===m.word);if(p)return{contents:[{value:`(variable) ${p.name}: ${p.type}`},{value:p.documentation||""}]};const l=e.getLineContent(r.lineNumber).substring(0,r.column).match(/(\w+)\.(\w+)$/);if(l){const[h,g,d]=l,i=t.find(n=>n.name===g&&n.isObject);if(i&&i.properties){const n=i.properties.find($=>$.name===d);if(n)return{contents:[{value:`(property) ${g}.${n.name}: ${n.type}`},{value:n.documentation||""}]}}}return null}}),y=s.languages.registerCompletionItemProvider("python",{triggerCharacters:["."],provideCompletionItems:(e,r)=>{const u=e.getLineContent(r.lineNumber).substring(0,r.column).match(/(\w+)\.\s*$/);if(!u)return{suggestions:[]};const[l,h]=u,g=t.find(d=>d.name===h&&d.isObject);return g&&g.properties&&g.properties.length>0?{suggestions:g.properties.map(i=>({label:i.name,kind:s.languages.CompletionItemKind.Property,detail:i.type,documentation:{value:i.documentation||"",isTrusted:!0},insertText:i.name,range:{startLineNumber:r.lineNumber,startColumn:r.column,endLineNumber:r.lineNumber,endColumn:r.column}}))}:{suggestions:[]}}});s.__customDisposables["python-hover-provider"]=o,s.__customDisposables["python-completion-provider"]=y}}}function W({value:s,onChange:c,language:t="javascript",height:b="300px",className:j="",options:o={},onMount:y,title:e="Code Editor",variables:r=[],variablePrefix:m="{{",variableSuffix:p="}}",predefinedVariables:u=[],allowFullscreen:l=!0,isDark:h=!1}){const g=!h,d=x.useRef(null),i=x.useRef(null),[n,$]=x.useState(!1),v=x.useRef(null),E=x.useRef(`editor-${Math.random().toString(36).substr(2,9)}`),[q,z]=x.useState(null);x.useEffect(()=>{if(!(!d.current||!i.current))return v.current&&(v.current(),v.current=null),console.log(`Setting up variable suggestions for ${E.current}`),v.current=C(d.current,i.current,r,{language:t,variablePrefix:m,variableSuffix:p}),()=>{v.current&&(v.current(),v.current=null)}},[q,r,t,m,p]),x.useEffect(()=>{!i.current||u.length===0||(console.log("registering predefined variables",u),I(i.current,t,u))},[t,u]),x.useEffect(()=>{d.current&&setTimeout(()=>{var f;(f=d.current)==null||f.layout()},100)},[n]);const R=x.useCallback((f,N)=>{var D,L;console.log(`Editor ${E.current} mounted`),d.current=f,i.current=N,z(f),u.length>0&&I(N,t,u),t==="python"?(D=f.getModel())==null||D.updateOptions({tabSize:4,insertSpaces:!0}):t!=="markdown"&&((L=f.getModel())==null||L.updateOptions({tabSize:2,insertSpaces:!0})),y&&y(f,N)},[t,y,u]),_=x.useMemo(()=>({...O,...U[t]||{},...o}),[t,o]),w=x.useCallback(()=>{$(!n)},[n]);return a.jsxRuntimeExports.jsxs(a.jsxRuntimeExports.Fragment,{children:[a.jsxRuntimeExports.jsxs("div",{className:j,children:[l&&a.jsxRuntimeExports.jsx("div",{className:"flex justify-end mb-1",children:a.jsxRuntimeExports.jsx(M.Button,{variant:"ghost",size:"sm",onClick:w,className:"h-7 w-7 p-0",children:a.jsxRuntimeExports.jsx(S.Maximize,{className:"h-4 w-4"})})}),a.jsxRuntimeExports.jsx("div",{className:"relative",style:{display:n?"none":"block"},children:a.jsxRuntimeExports.jsx(P,{height:b,language:t,value:s,onChange:f=>c==null?void 0:c(f||""),options:_,onMount:R,theme:g?"vs-light":"vs-dark"},E.current)})]}),n&&a.jsxRuntimeExports.jsx(T.Modal,{isOpen:n,onClose:()=>$(!1),size:"2xl",title:e,header:a.jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between w-full",children:[a.jsxRuntimeExports.jsx("h2",{className:"text-sm font-medium",children:e}),a.jsxRuntimeExports.jsx(M.Button,{variant:"ghost",size:"sm",onClick:w,className:"h-7 w-7 p-0",children:a.jsxRuntimeExports.jsx(S.Minimize2,{className:"h-4 w-4"})})]}),children:a.jsxRuntimeExports.jsx("div",{className:"h-[80vh] w-full",children:a.jsxRuntimeExports.jsx(P,{height:"100%",language:t,value:s,onChange:f=>c==null?void 0:c(f||""),options:_,onMount:R,theme:g?"vs-light":"vs-dark"},`${E.current}-fullscreen`)})})]})}exports.MonacoEditor=W;exports.defaultOptions=O;exports.languageOptions=U;exports.setupVariableSuggestions=C;exports.updateVariableSuggestions=V;
8
- //# sourceMappingURL=MonacoEditor-COZcVMEj.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MonacoEditor-COZcVMEj.cjs","sources":["../src/components/monaco-editor/constants.ts","../src/components/monaco-editor/variableSuggestions.ts","../src/components/monaco-editor/utils.ts","../src/components/monaco-editor/MonacoEditor.tsx"],"sourcesContent":["import { editor as monacoEditor } from 'monaco-editor';\nimport { MonacoEditorLanguage } from './types';\n\nexport const defaultOptions: monacoEditor.IEditorOptions = {\n minimap: { enabled: false },\n fontSize: 14,\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n lineNumbers: 'on',\n automaticLayout: true,\n scrollbar: {\n vertical: 'auto',\n horizontal: 'auto',\n },\n};\n\nexport const languageOptions: Record<MonacoEditorLanguage, monacoEditor.IEditorOptions> = {\n javascript: {},\n typescript: {},\n python: {},\n json: {},\n html: {},\n css: {},\n markdown: {\n wordWrap: 'on',\n },\n plaintext: {},\n}; ","import { Monaco } from '@monaco-editor/react';\nimport { editor as monacoEditor } from 'monaco-editor';\nimport { VariableSuggestion } from './types';\n\ntype VariableSuggestionProviderConfig = {\n language: string;\n variablePrefix: string;\n variableSuffix: string;\n};\n\n// Keep track of registered providers with a uniqueId\nconst registeredProviders = new Map<string, {\n dispose: () => void,\n variables: VariableSuggestion[],\n config: VariableSuggestionProviderConfig\n}>();\n\n// Counter for unique IDs\nlet providerCounter = 0;\n\n/**\n * Setup variable suggestions for Monaco editor\n */\nexport function setupVariableSuggestions(\n editor: monacoEditor.IStandaloneCodeEditor,\n monaco: Monaco,\n variables: VariableSuggestion[],\n config: VariableSuggestionProviderConfig\n): () => void {\n const { language, variablePrefix, variableSuffix } = config;\n \n // Generate a unique ID for this provider\n const providerId = `provider_${++providerCounter}`;\n \n console.log(`Setting up variable suggestions with ID ${providerId} (${variables.length} variables)`);\n \n // Register completion provider\n const completionProvider = monaco.languages.registerCompletionItemProvider(language, {\n triggerCharacters: ['{'], \n \n provideCompletionItems: (model, position) => {\n // Get text before cursor\n const lineContent = model.getLineContent(position.lineNumber);\n const textUntilPosition = lineContent.substring(0, position.column - 1);\n \n // Check if we've just typed the variable prefix\n if (textUntilPosition.endsWith(variablePrefix)) {\n console.log(`[${providerId}] Detected ${variablePrefix} - showing ${variables.length} variable suggestions`);\n \n if (variables.length === 0) {\n console.log(`[${providerId}] No variables available for suggestions`);\n return { suggestions: [] };\n }\n \n // Use Set to ensure unique variable names\n const uniqueVariables = Array.from(\n new Map(variables.map(v => [v.name, v])).values()\n );\n \n // Create suggestions\n const suggestions = uniqueVariables.map(variable => ({\n label: variable.name,\n kind: monaco.languages.CompletionItemKind.Variable,\n detail: variable.type,\n documentation: {\n value: variable.description || '',\n isTrusted: true\n },\n insertText: variable.name,\n sortText: '0' + variable.name, // Force variable suggestions to appear at top\n range: {\n startLineNumber: position.lineNumber,\n startColumn: position.column,\n endLineNumber: position.lineNumber,\n endColumn: position.column\n }\n }));\n \n console.log(`[${providerId}] Created ${suggestions.length} suggestions`);\n return { suggestions };\n }\n \n return { suggestions: [] };\n }\n });\n \n // Add manual KeyUp handler to trigger suggestions\n const keyUpDisposable = editor.onKeyUp(e => {\n // Skip if not the right key\n if (e.code !== 'BracketLeft' && e.code !== 'Digit2') return;\n \n const position = editor.getPosition();\n if (!position) return;\n \n const model = editor.getModel();\n if (!model) return;\n \n const lineContent = model.getLineContent(position.lineNumber);\n const textUntilPosition = lineContent.substring(0, position.column - 1);\n \n if (textUntilPosition.endsWith(variablePrefix)) {\n console.log(`[${providerId}] Manually triggering suggestions on ${variablePrefix}`);\n \n // Delay slightly to ensure the model is updated\n setTimeout(() => {\n // Force suggestions to appear\n editor.trigger('keyboard', 'editor.action.triggerSuggest', {});\n }, 20);\n }\n });\n \n // Create dispose function\n const dispose = () => {\n console.log(`Disposing provider ${providerId}`);\n completionProvider.dispose();\n keyUpDisposable.dispose();\n registeredProviders.delete(providerId);\n };\n \n // Store in registeredProviders\n registeredProviders.set(providerId, {\n dispose,\n variables,\n config\n });\n \n return dispose;\n}\n\n/**\n * Update variables for an existing provider\n * Creates a new provider with the updated variables\n */\nexport function updateVariableSuggestions(\n editor: monacoEditor.IStandaloneCodeEditor,\n monaco: Monaco,\n variables: VariableSuggestion[],\n config: VariableSuggestionProviderConfig\n): void {\n // Remove duplicates from variables array\n const uniqueVariables = Array.from(\n new Map(variables.map(v => [v.name, v])).values()\n );\n \n console.log(`Updating provider with ${uniqueVariables.length} variables`);\n \n // Create a new provider with the updated variables\n setupVariableSuggestions(editor, monaco, uniqueVariables, config);\n} ","import { Monaco } from \"@monaco-editor/react\";\nimport { PredefinedVariable } from \"./types\";\n\n/**\n * Find the position of a variable prefix in a text string\n * \n * @param lineContent The current line content\n * @param currentColumn The current cursor column\n * @param variablePrefix The variable prefix to look for\n * @returns The starting position of the prefix, or -1 if not found\n */\nexport function findVariablePrefixPosition(\n lineContent: string, \n currentColumn: number, \n variablePrefix: string\n): number {\n let prefixStart = -1;\n \n // Look for the variable prefix before the cursor within a reasonable range\n for (let i = currentColumn - 1; i >= 0 && i >= currentColumn - variablePrefix.length - 10; i--) {\n if (i - variablePrefix.length + 1 >= 0) {\n const substring = lineContent.substring(i - variablePrefix.length + 1, i + 1);\n if (substring === variablePrefix) {\n prefixStart = i - variablePrefix.length + 1;\n break;\n }\n }\n }\n \n return prefixStart;\n}\n\n/**\n * Format a preview text with variable prefix and suffix\n * \n * @param variableName The variable name to format\n * @param variablePrefix The prefix to add\n * @param variableSuffix The suffix to add\n * @returns Formatted variable string\n */\nexport function formatVariablePreview(\n variableName: string | null, \n variablePrefix: string, \n variableSuffix: string\n): string {\n if (!variableName) return variablePrefix + '....' + variableSuffix;\n return variablePrefix + variableName + variableSuffix;\n}\n\n/**\n * Format code according to the specified language\n */\nexport function formatCode(monaco: Monaco, editor: any, language: string) {\n editor.getAction('editor.action.formatDocument').run();\n}\n\n/**\n * Get the appropriate EOL character for the current operating system\n */\nexport function getEOL() {\n return '\\n';\n}\n\n/**\n * Register predefined variables with the Monaco editor\n */\nexport function registerPredefinedVariables(\n monaco: Monaco, \n language: string, \n variables: PredefinedVariable[]\n) {\n if (!variables || variables.length === 0) return;\n \n // For JavaScript/TypeScript editor\n if (language === 'javascript' || language === 'typescript') {\n // Create TypeScript definitions for our variables\n const declarations = variables.map(variable => {\n if (variable.isObject && variable.properties && variable.properties.length > 0) {\n // Create a detailed interface for object types with properties\n const interfaceName = `I${variable.name.charAt(0).toUpperCase() + variable.name.slice(1)}`;\n const propertyDeclarations = variable.properties.map(prop => \n ` ${prop.name}: ${prop.type};`\n ).join('\\n');\n \n return `\ninterface ${interfaceName} {\n${propertyDeclarations}\n}\ndeclare const ${variable.name}: ${interfaceName};`;\n } else {\n // Simple variable declaration\n return `declare const ${variable.name}: ${variable.type};`;\n }\n }).join('\\n');\n \n // Check if we already have a stored disposable for the lib\n const libKey = 'predefined-variables';\n if ((monaco as any).__extraLibDisposables?.[libKey]) {\n (monaco as any).__extraLibDisposables[libKey].dispose();\n }\n \n // Add the library and store its disposable\n const disposable = monaco.languages.typescript.javascriptDefaults.addExtraLib(\n declarations,\n `ts:filename/${libKey}.d.ts`\n );\n \n // Initialize storage for disposables if needed\n if (!(monaco as any).__extraLibDisposables) {\n (monaco as any).__extraLibDisposables = {};\n }\n \n // Store the disposable for later cleanup\n (monaco as any).__extraLibDisposables[libKey] = disposable;\n }\n \n // For Python, we add hover providers and completion providers\n if (language === 'python') {\n // Remove previous providers if they exist\n const providerKeys = ['python-hover-provider', 'python-completion-provider'];\n providerKeys.forEach(key => {\n const disposable = (monaco as any).__customDisposables?.[key];\n if (disposable) {\n disposable.dispose();\n }\n });\n \n // Initialize storage for disposables if needed\n if (!(monaco as any).__customDisposables) {\n (monaco as any).__customDisposables = {};\n }\n \n // Create a new hover provider\n const hoverProvider = monaco.languages.registerHoverProvider('python', {\n provideHover: (model, position) => {\n const word = model.getWordAtPosition(position);\n if (!word) return null;\n \n // Check if it's a direct variable match\n const variable = variables.find(v => v.name === word.word);\n if (variable) {\n return {\n contents: [\n { value: `(variable) ${variable.name}: ${variable.type}` },\n { value: variable.documentation || '' }\n ]\n };\n }\n \n // Check if it's a property access (e.g., self.property)\n const lineContent = model.getLineContent(position.lineNumber);\n const dotMatch = lineContent.substring(0, position.column).match(/(\\w+)\\.(\\w+)$/);\n \n if (dotMatch) {\n const [_, objName, propName] = dotMatch;\n const objVar = variables.find(v => v.name === objName && v.isObject);\n \n if (objVar && objVar.properties) {\n const property = objVar.properties.find(p => p.name === propName);\n if (property) {\n return {\n contents: [\n { value: `(property) ${objName}.${property.name}: ${property.type}` },\n { value: property.documentation || '' }\n ]\n };\n }\n }\n }\n \n return null;\n }\n });\n \n // Create completion provider for object properties\n const completionProvider = monaco.languages.registerCompletionItemProvider('python', {\n triggerCharacters: ['.'],\n provideCompletionItems: (model, position) => {\n const lineContent = model.getLineContent(position.lineNumber);\n const textUntilPosition = lineContent.substring(0, position.column);\n \n // Match for object property access\n const match = textUntilPosition.match(/(\\w+)\\.\\s*$/);\n if (!match) return { suggestions: [] };\n \n const [_, objName] = match;\n const objVar = variables.find(v => v.name === objName && v.isObject);\n \n if (objVar && objVar.properties && objVar.properties.length > 0) {\n const suggestions = objVar.properties.map(prop => ({\n label: prop.name,\n kind: monaco.languages.CompletionItemKind.Property,\n detail: prop.type,\n documentation: {\n value: prop.documentation || '',\n isTrusted: true\n },\n insertText: prop.name,\n range: {\n startLineNumber: position.lineNumber,\n startColumn: position.column,\n endLineNumber: position.lineNumber,\n endColumn: position.column\n }\n }));\n \n return { suggestions };\n }\n \n return { suggestions: [] };\n }\n });\n \n // Store providers for later disposal\n (monaco as any).__customDisposables['python-hover-provider'] = hoverProvider;\n (monaco as any).__customDisposables['python-completion-provider'] = completionProvider;\n }\n} ","import { useRef, useState, useEffect, useMemo, useCallback } from \"react\";\nimport Editor, { Monaco } from '@monaco-editor/react';\nimport { editor as monacoEditor } from 'monaco-editor';\nimport { Modal } from \"../modal\";\nimport { Button } from \"../button\";\nimport { Maximize2, Minimize2, Maximize } from \"lucide-react\";\nimport { MonacoEditorProps } from \"./types\";\nimport { defaultOptions, languageOptions } from \"./constants\";\nimport { setupVariableSuggestions } from \"./variableSuggestions\";\nimport { registerPredefinedVariables } from \"./utils\";\n\nexport function MonacoEditor({\n value,\n onChange,\n language = 'javascript',\n height = '300px',\n className = '',\n options = {},\n onMount,\n title = 'Code Editor',\n variables = [],\n variablePrefix = '{{',\n variableSuffix = '}}',\n predefinedVariables = [],\n allowFullscreen = true,\n isDark = false,\n}: MonacoEditorProps) {\n const isLight = !isDark;\n const editorRef = useRef<monacoEditor.IStandaloneCodeEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n const [isFullscreen, setIsFullscreen] = useState(false);\n const suggestionDisposableRef = useRef<(() => void) | null>(null);\n const editorIdRef = useRef<string>(`editor-${Math.random().toString(36).substr(2, 9)}`);\n const [editorInstance, setEditorInstance] = useState<monacoEditor.IStandaloneCodeEditor | null>(null);\n\n // Setup variable suggestions once the editor is mounted\n useEffect(() => {\n if (!editorRef.current || !monacoRef.current) return;\n \n // Clear any previous provider\n if (suggestionDisposableRef.current) {\n suggestionDisposableRef.current();\n suggestionDisposableRef.current = null;\n }\n \n // Setup a new provider with current variables\n console.log(`Setting up variable suggestions for ${editorIdRef.current}`);\n suggestionDisposableRef.current = setupVariableSuggestions(\n editorRef.current,\n monacoRef.current,\n variables,\n { language, variablePrefix, variableSuffix }\n );\n \n return () => {\n if (suggestionDisposableRef.current) {\n suggestionDisposableRef.current();\n suggestionDisposableRef.current = null;\n }\n };\n }, [editorInstance, variables, language, variablePrefix, variableSuffix]);\n\n // Register predefined variables like 'self'\n useEffect(() => {\n if (!monacoRef.current || predefinedVariables.length === 0) return;\n \n console.log('registering predefined variables', predefinedVariables);\n registerPredefinedVariables(\n monacoRef.current,\n language,\n predefinedVariables\n );\n }, [language, predefinedVariables]);\n\n // Handle fullscreen toggle - need to relayout the editor\n useEffect(() => {\n if (editorRef.current) {\n // Give the modal time to animate\n setTimeout(() => {\n editorRef.current?.layout();\n }, 100);\n }\n }, [isFullscreen]);\n\n // Handle editor mounting\n const handleEditorDidMount = useCallback((editor: monacoEditor.IStandaloneCodeEditor, monaco: Monaco) => {\n console.log(`Editor ${editorIdRef.current} mounted`);\n editorRef.current = editor;\n monacoRef.current = monaco;\n setEditorInstance(editor);\n \n // Register predefined variables immediately after mount\n if (predefinedVariables.length > 0) {\n registerPredefinedVariables(monaco, language, predefinedVariables);\n }\n \n // Set language-specific model options\n if (language === 'python') {\n editor.getModel()?.updateOptions({ tabSize: 4, insertSpaces: true });\n } else if (language !== 'markdown') {\n editor.getModel()?.updateOptions({ tabSize: 2, insertSpaces: true });\n }\n \n if (onMount) {\n onMount(editor, monaco);\n }\n }, [language, onMount, predefinedVariables]);\n\n // Merge default options with language-specific options and user options\n const mergedOptions = useMemo(() => {\n return {\n ...defaultOptions,\n ...(languageOptions[language] || {}),\n ...options,\n };\n }, [language, options]);\n\n const toggleFullscreen = useCallback(() => {\n setIsFullscreen(!isFullscreen);\n }, [isFullscreen]);\n\n return (\n <>\n <div className={className}>\n {allowFullscreen && (\n <div className=\"flex justify-end mb-1\">\n <Button \n variant=\"ghost\" \n size=\"sm\" \n onClick={toggleFullscreen} \n className=\"h-7 w-7 p-0\"\n >\n <Maximize className=\"h-4 w-4\" />\n </Button>\n </div>\n )}\n <div className=\"relative\" style={{ display: isFullscreen ? 'none' : 'block' }}>\n <Editor\n height={height}\n language={language}\n value={value}\n onChange={(value) => onChange?.(value || '')}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n theme={isLight ? 'vs-light' : 'vs-dark'}\n key={editorIdRef.current} // Use the stable ID\n />\n </div>\n </div>\n\n {isFullscreen && (\n <Modal \n isOpen={isFullscreen} \n onClose={() => setIsFullscreen(false)}\n size=\"2xl\"\n title={title}\n header={\n <div className=\"flex items-center justify-between w-full\">\n <h2 className=\"text-sm font-medium\">{title}</h2>\n <Button \n variant=\"ghost\" \n size=\"sm\" \n onClick={toggleFullscreen} \n className=\"h-7 w-7 p-0\"\n >\n <Minimize2 className=\"h-4 w-4\" />\n </Button>\n </div>\n }\n >\n <div className=\"h-[80vh] w-full\">\n <Editor\n height=\"100%\"\n language={language}\n value={value}\n onChange={(value) => onChange?.(value || '')}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n theme={isLight ? 'vs-light' : 'vs-dark'}\n key={`${editorIdRef.current}-fullscreen`} // Use the same ID with a suffix\n />\n </div>\n </Modal>\n )}\n </>\n );\n} "],"names":["defaultOptions","languageOptions","registeredProviders","providerCounter","setupVariableSuggestions","editor","monaco","variables","config","language","variablePrefix","variableSuffix","providerId","completionProvider","model","position","suggestions","v","variable","keyUpDisposable","e","dispose","updateVariableSuggestions","uniqueVariables","registerPredefinedVariables","declarations","interfaceName","propertyDeclarations","prop","libKey","_a","disposable","key","hoverProvider","word","dotMatch","_","objName","propName","objVar","property","p","match","MonacoEditor","value","onChange","height","className","options","onMount","title","predefinedVariables","allowFullscreen","isDark","isLight","editorRef","useRef","monacoRef","isFullscreen","setIsFullscreen","useState","suggestionDisposableRef","editorIdRef","editorInstance","setEditorInstance","useEffect","handleEditorDidMount","useCallback","_b","mergedOptions","useMemo","toggleFullscreen","jsxs","Fragment","jsx","Button","Maximize","Editor","Modal","Minimize2"],"mappings":"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"}