frappe-ui 0.1.277 → 1.0.0-beta.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 (391) hide show
  1. package/frappe/DataImport/DataImportList.vue +4 -4
  2. package/frappe/DataImport/MappingStep.vue +4 -4
  3. package/frappe/DataImport/UploadStep.vue +14 -14
  4. package/frappe/DataImport/dataImport.ts +1 -1
  5. package/frappe/Link/Link.vue +1 -1
  6. package/frappe/Onboarding/onboarding.js +5 -1
  7. package/frappe/drive/js/icons.js +0 -37
  8. package/frappe/index.d.ts +10 -0
  9. package/icons/IconPicker.story.vue +6 -6
  10. package/package.json +51 -19
  11. package/readme.md +12 -0
  12. package/src/components/Alert/Alert.api.md +87 -0
  13. package/src/components/Alert/Alert.cy.ts +2 -2
  14. package/src/components/Alert/Alert.md +14 -0
  15. package/src/components/Alert/Alert.vue +15 -17
  16. package/src/components/Alert/stories/Controlled.vue +8 -6
  17. package/src/components/Alert/stories/Slots.vue +14 -13
  18. package/src/components/Alert/stories/Themes.vue +9 -7
  19. package/src/components/Alert/types.ts +1 -1
  20. package/src/components/Autocomplete/Autocomplete.api.md +6 -0
  21. package/src/components/Autocomplete/Autocomplete.cy.ts +26 -0
  22. package/src/components/Autocomplete/Autocomplete.vue +8 -1
  23. package/src/components/Autocomplete/deprecationKey.ts +5 -0
  24. package/src/components/Avatar/Avatar.api.md +54 -0
  25. package/src/components/Avatar/Avatar.md +11 -0
  26. package/src/components/Badge/Badge.api.md +60 -0
  27. package/src/components/Badge/Badge.md +13 -0
  28. package/src/components/Breadcrumbs/Breadcrumbs.api.md +34 -0
  29. package/src/components/Breadcrumbs/Breadcrumbs.md +13 -0
  30. package/src/components/Breadcrumbs/Breadcrumbs.vue +16 -8
  31. package/src/components/Breadcrumbs/stories/Slots.vue +4 -7
  32. package/src/components/Button/Button.api.md +128 -0
  33. package/src/components/Button/Button.cy.ts +79 -0
  34. package/src/components/Button/Button.md +21 -0
  35. package/src/components/Button/Button.vue +80 -33
  36. package/src/components/Calendar/Calendar.api.md +89 -0
  37. package/src/components/Calendar/Calendar.md +9 -0
  38. package/src/components/Calendar/Calendar.vue +41 -3
  39. package/src/components/Calendar/EventModalContent.vue +7 -9
  40. package/src/components/Calendar/stories/CustomHeader.vue +57 -55
  41. package/src/components/Calendar/stories/Examples.vue +9 -7
  42. package/src/components/Charts/Charts.md +5 -0
  43. package/src/components/Charts/stories/Examples.vue +36 -34
  44. package/src/components/Checkbox/Checkbox.api.md +95 -0
  45. package/src/components/Checkbox/Checkbox.cy.ts +65 -1
  46. package/src/components/Checkbox/Checkbox.md +23 -0
  47. package/src/components/Checkbox/Checkbox.vue +106 -31
  48. package/src/components/Checkbox/stories/Default.vue +10 -0
  49. package/src/components/Checkbox/stories/Labeling.vue +30 -0
  50. package/src/components/Checkbox/stories/Sizes.vue +10 -0
  51. package/src/components/Checkbox/stories/States.vue +12 -0
  52. package/src/components/Checkbox/types.ts +14 -9
  53. package/src/components/CircularProgressBar/CircularProgressBar.api.md +62 -0
  54. package/src/components/CircularProgressBar/CircularProgressBar.md +5 -0
  55. package/src/components/CircularProgressBar/CircularProgressBar.vue +1 -2
  56. package/src/components/Combobox/Combobox.api.md +272 -0
  57. package/src/components/Combobox/Combobox.cy.ts +759 -78
  58. package/src/components/Combobox/Combobox.md +55 -0
  59. package/src/components/Combobox/Combobox.vue +671 -384
  60. package/src/components/Combobox/ComboboxResults.vue +350 -0
  61. package/src/components/Combobox/stories/Clearable.vue +149 -0
  62. package/src/components/Combobox/stories/CreateNew.vue +92 -0
  63. package/src/components/Combobox/stories/CustomValue.vue +11 -9
  64. package/src/components/Combobox/stories/EmojiPicker.vue +52 -0
  65. package/src/components/Combobox/stories/Grouped.vue +33 -18
  66. package/src/components/Combobox/stories/InDialog.vue +92 -0
  67. package/src/components/Combobox/stories/Labeling.vue +38 -0
  68. package/src/components/Combobox/stories/MemberPicker.vue +129 -0
  69. package/src/components/Combobox/stories/Simple.vue +22 -9
  70. package/src/components/Combobox/stories/StatusPicker.vue +98 -0
  71. package/src/components/Combobox/types.ts +249 -25
  72. package/src/components/Combobox/utils.ts +187 -0
  73. package/src/components/CommandPalette/CommandPalette.api.md +54 -0
  74. package/src/components/CommandPalette/CommandPalette.vue +1 -1
  75. package/src/components/CommandPalette/CommandPaletteItem.vue +1 -1
  76. package/src/components/DatePicker/CalendarPanel.vue +453 -0
  77. package/src/components/DatePicker/DatePicker.api.md +786 -0
  78. package/src/components/DatePicker/DatePicker.cy.ts +212 -22
  79. package/src/components/DatePicker/DatePicker.md +14 -0
  80. package/src/components/DatePicker/DatePicker.vue +249 -334
  81. package/src/components/DatePicker/DateRangePicker.cy.ts +271 -16
  82. package/src/components/DatePicker/DateRangePicker.vue +442 -435
  83. package/src/components/DatePicker/DateTimePicker.cy.ts +193 -0
  84. package/src/components/DatePicker/DateTimePicker.vue +319 -416
  85. package/src/components/DatePicker/composables.ts +284 -0
  86. package/src/components/DatePicker/stories/DateTime.vue +110 -7
  87. package/src/components/DatePicker/stories/Examples.vue +145 -4
  88. package/src/components/DatePicker/stories/Range.vue +270 -4
  89. package/src/components/DatePicker/types.ts +273 -10
  90. package/src/components/DatePicker/useDatePicker.ts +14 -0
  91. package/src/components/DatePicker/utils.ts +35 -19
  92. package/src/components/Dialog/Dialog.api.md +182 -0
  93. package/src/components/Dialog/Dialog.cy.ts +364 -48
  94. package/src/components/Dialog/Dialog.md +70 -0
  95. package/src/components/Dialog/Dialog.vue +366 -175
  96. package/src/components/Dialog/index.ts +20 -2
  97. package/src/components/Dialog/stories/CommandPalette.vue +152 -0
  98. package/src/components/Dialog/stories/Imperative.vue +242 -0
  99. package/src/components/Dialog/stories/Prompt.vue +192 -0
  100. package/src/components/Dialog/stories/Share.vue +134 -0
  101. package/src/components/Dialog/stories/Wizard.vue +129 -0
  102. package/src/components/Dialog/types.ts +140 -29
  103. package/src/components/Dialogs.vue +26 -3
  104. package/src/components/Divider/Divider.api.md +39 -0
  105. package/src/components/Divider/Divider.cy.ts +108 -0
  106. package/src/components/Divider/Divider.md +13 -0
  107. package/src/components/Divider/Divider.vue +60 -30
  108. package/src/components/Divider/stories/Action.vue +34 -0
  109. package/src/components/Divider/stories/Examples.vue +25 -0
  110. package/src/components/Divider/types.ts +4 -2
  111. package/src/components/Dropdown/Dropdown.api.md +122 -0
  112. package/src/components/Dropdown/Dropdown.cy.ts +81 -7
  113. package/src/components/Dropdown/Dropdown.md +41 -0
  114. package/src/components/Dropdown/Dropdown.vue +77 -394
  115. package/src/components/Dropdown/DropdownMenuItemContent.vue +233 -0
  116. package/src/components/Dropdown/DropdownMenuList.vue +208 -0
  117. package/src/components/Dropdown/DropdownRenderContent.vue +24 -0
  118. package/src/components/Dropdown/DropdownRenderContentAsChild.vue +19 -0
  119. package/src/components/Dropdown/index.ts +1 -1
  120. package/src/components/Dropdown/stories/01_Simple.vue +38 -0
  121. package/src/components/Dropdown/stories/02_Shortcuts.vue +42 -0
  122. package/src/components/Dropdown/stories/03_Submenus.vue +69 -0
  123. package/src/components/Dropdown/stories/04_Switches.vue +44 -0
  124. package/src/components/Dropdown/stories/05_KebabMenu.vue +78 -0
  125. package/src/components/Dropdown/stories/06_UserMenu.vue +145 -0
  126. package/src/components/Dropdown/types.ts +223 -27
  127. package/src/components/Dropdown/utils.ts +170 -0
  128. package/src/components/ErrorMessage/ErrorMessage.api.md +19 -0
  129. package/src/components/ErrorMessage/ErrorMessage.md +12 -0
  130. package/src/components/FileUploader/FileUploader.api.md +32 -0
  131. package/src/components/FileUploader/FileUploader.md +5 -0
  132. package/src/components/FormControl/FormControl.api.md +93 -0
  133. package/src/components/FormControl/FormControl.cy.ts +222 -0
  134. package/src/components/FormControl/FormControl.md +59 -0
  135. package/src/components/FormControl/FormControl.story.vue +22 -5
  136. package/src/components/FormControl/FormControl.vue +108 -88
  137. package/src/components/FormControl/stories/RealForm.vue +202 -0
  138. package/src/components/FormControl/types.ts +25 -2
  139. package/src/components/FormLabel.vue +2 -4
  140. package/src/components/Input.cy.ts +19 -0
  141. package/src/components/Input.vue +4 -0
  142. package/src/components/InputLabeling/InputDescription.vue +16 -0
  143. package/src/components/InputLabeling/InputError.vue +15 -0
  144. package/src/components/InputLabeling/InputLabel.vue +25 -0
  145. package/src/components/InputLabeling/LabelingWrapper.vue +18 -0
  146. package/src/components/InputLabeling/RequiredIndicator.vue +9 -0
  147. package/src/components/InputLabeling/index.ts +5 -0
  148. package/src/components/ItemListRow/ItemListRow.api.md +73 -0
  149. package/src/components/ItemListRow/ItemListRow.cy.ts +52 -0
  150. package/src/components/ItemListRow/ItemListRow.md +14 -0
  151. package/src/components/ItemListRow/ItemListRow.vue +80 -0
  152. package/src/components/ItemListRow/index.ts +2 -0
  153. package/src/components/ItemListRow/stories/RowStates.vue +35 -0
  154. package/src/components/ItemListRow/types.ts +20 -0
  155. package/src/components/KeyboardShortcut.vue +111 -83
  156. package/src/components/KeyboardShortcutsModal/KeyboardShortcutsModal.api.md +42 -0
  157. package/src/components/KeyboardShortcutsModal/KeyboardShortcutsModal.md +173 -0
  158. package/src/components/KeyboardShortcutsModal/KeyboardShortcutsModal.spec.ts +146 -0
  159. package/src/components/KeyboardShortcutsModal/KeyboardShortcutsModal.vue +172 -0
  160. package/src/components/KeyboardShortcutsModal/index.ts +1 -0
  161. package/src/components/ListFilter/ListFilter.api.md +37 -0
  162. package/src/components/ListFilter/ListFilter.vue +3 -3
  163. package/src/components/ListView/ListHeader.vue +1 -1
  164. package/src/components/ListView/ListHeaderItem.vue +7 -7
  165. package/src/components/ListView/ListSelectBanner.vue +1 -1
  166. package/src/components/ListView/ListView.api.md +65 -0
  167. package/src/components/ListView/ListView.md +22 -0
  168. package/src/components/ListView/ListView.vue +9 -5
  169. package/src/components/ListView/stories/CustomList.vue +5 -13
  170. package/src/components/MonthPicker/MonthPicker.api.md +43 -0
  171. package/src/components/MonthPicker/MonthPicker.md +7 -0
  172. package/src/components/MonthPicker/MonthPicker.vue +3 -6
  173. package/src/components/MonthPicker/stories/Example.vue +25 -4
  174. package/src/components/MultiSelect/MultiSelect.api.md +243 -0
  175. package/src/components/MultiSelect/MultiSelect.cy.ts +268 -20
  176. package/src/components/MultiSelect/MultiSelect.md +50 -0
  177. package/src/components/MultiSelect/MultiSelect.vue +516 -115
  178. package/src/components/MultiSelect/MultiSelectResults.vue +265 -0
  179. package/src/components/MultiSelect/index.ts +20 -1
  180. package/src/components/MultiSelect/stories/AsyncOptions.vue +114 -0
  181. package/src/components/MultiSelect/stories/Example.vue +13 -12
  182. package/src/components/MultiSelect/stories/Footer.vue +21 -24
  183. package/src/components/MultiSelect/stories/Grouped.vue +42 -0
  184. package/src/components/MultiSelect/stories/Labeling.vue +40 -0
  185. package/src/components/MultiSelect/stories/Members.vue +114 -0
  186. package/src/components/MultiSelect/stories/Options.vue +16 -17
  187. package/src/components/MultiSelect/stories/TagsTrigger.vue +77 -0
  188. package/src/components/MultiSelect/stories/TriggerSlot.vue +36 -0
  189. package/src/components/MultiSelect/types.ts +240 -7
  190. package/src/components/MultiSelect/utils.ts +113 -0
  191. package/src/components/Password/Password.api.md +112 -0
  192. package/src/components/Password/Password.cy.ts +43 -2
  193. package/src/components/Password/Password.md +34 -0
  194. package/src/components/Password/Password.vue +56 -23
  195. package/src/components/Password/stories/Labeling.vue +30 -0
  196. package/src/components/Password/stories/LegacyValue.vue +16 -0
  197. package/src/components/Password/stories/Sizes.vue +12 -0
  198. package/src/components/Password/stories/States.vue +16 -0
  199. package/src/components/Password/stories/Variants.vue +11 -0
  200. package/src/components/Password/types.ts +19 -4
  201. package/src/components/Popover/Popover.api.md +128 -0
  202. package/src/components/Popover/Popover.md +11 -0
  203. package/src/components/Progress/Progress.api.md +64 -0
  204. package/src/components/Progress/Progress.md +17 -0
  205. package/src/components/Progress/stories/Sizes.vue +6 -4
  206. package/src/components/Provider/FrappeUIProvider.vue +4 -3
  207. package/src/components/Rating/Rating.api.md +121 -0
  208. package/src/components/Rating/Rating.cy.ts +269 -24
  209. package/src/components/Rating/Rating.md +130 -0
  210. package/src/components/Rating/Rating.vue +402 -49
  211. package/src/components/Rating/index.ts +1 -1
  212. package/src/components/Rating/stories/Clearable.vue +29 -0
  213. package/src/components/Rating/stories/CustomColor.vue +47 -0
  214. package/src/components/Rating/stories/CustomIcon.vue +18 -0
  215. package/src/components/Rating/stories/CustomSlot.vue +39 -0
  216. package/src/components/Rating/stories/Default.vue +10 -0
  217. package/src/components/Rating/stories/HalfStep.vue +10 -0
  218. package/src/components/Rating/stories/HalfStepCustomColor.vue +27 -0
  219. package/src/components/Rating/stories/Labeling.vue +30 -0
  220. package/src/components/Rating/stories/LegacyRatingFrom.vue +13 -0
  221. package/src/components/Rating/stories/Max.vue +10 -0
  222. package/src/components/Rating/stories/Sizes.vue +12 -0
  223. package/src/components/Rating/stories/States.vue +16 -0
  224. package/src/components/Rating/types.ts +64 -9
  225. package/src/components/Select/Select.api.md +173 -0
  226. package/src/components/Select/Select.cy.ts +372 -3
  227. package/src/components/Select/Select.md +34 -0
  228. package/src/components/Select/Select.vue +442 -110
  229. package/src/components/Select/index.ts +1 -1
  230. package/src/components/Select/stories/Example.vue +53 -3
  231. package/src/components/Select/stories/Labeling.vue +39 -0
  232. package/src/components/Select/stories/OptionSlot.vue +49 -34
  233. package/src/components/Select/stories/States.vue +47 -0
  234. package/src/components/Select/stories/TriggerSlots.vue +84 -31
  235. package/src/components/Select/types.ts +116 -12
  236. package/src/components/Select/utils.ts +65 -0
  237. package/src/components/Sidebar/Sidebar.api.md +215 -0
  238. package/src/components/Sidebar/Sidebar.cy.ts +16 -4
  239. package/src/components/Sidebar/Sidebar.md +8 -0
  240. package/src/components/Sidebar/Sidebar.vue +9 -11
  241. package/src/components/Sidebar/SidebarHeader.vue +7 -5
  242. package/src/components/Sidebar/SidebarItem.vue +35 -9
  243. package/src/components/Sidebar/SidebarSection.vue +10 -9
  244. package/src/components/Sidebar/stories/Example.vue +21 -33
  245. package/src/components/Sidebar/types.ts +5 -0
  246. package/src/components/Slider/Slider.api.md +114 -0
  247. package/src/components/Slider/Slider.cy.ts +105 -0
  248. package/src/components/Slider/Slider.md +32 -0
  249. package/src/components/Slider/Slider.vue +137 -29
  250. package/src/components/Slider/stories/Default.vue +12 -0
  251. package/src/components/Slider/stories/Labeling.vue +31 -0
  252. package/src/components/Slider/stories/Range.vue +5 -3
  253. package/src/components/Slider/stories/Sizes.vue +14 -0
  254. package/src/components/Slider/stories/States.vue +18 -0
  255. package/src/components/Slider/stories/ValueCommit.vue +29 -0
  256. package/src/components/Slider/types.ts +32 -1
  257. package/src/components/Spinner.vue +1 -5
  258. package/src/components/Switch/Switch.api.md +103 -0
  259. package/src/components/Switch/Switch.cy.ts +67 -2
  260. package/src/components/Switch/Switch.md +34 -0
  261. package/src/components/Switch/Switch.vue +112 -48
  262. package/src/components/Switch/stories/Default.vue +10 -0
  263. package/src/components/Switch/stories/Icons.vue +14 -0
  264. package/src/components/Switch/stories/Labeling.vue +31 -0
  265. package/src/components/Switch/stories/LegacyChange.vue +17 -0
  266. package/src/components/Switch/stories/Sizes.vue +10 -0
  267. package/src/components/Switch/stories/States.vue +12 -0
  268. package/src/components/Switch/types.ts +17 -11
  269. package/src/components/TabButtons/TabButtons.api.md +35 -0
  270. package/src/components/TabButtons/TabButtons.cy.ts +80 -0
  271. package/src/components/TabButtons/TabButtons.story.vue +1 -1
  272. package/src/components/TabButtons/TabButtons.vue +213 -62
  273. package/src/components/Tabs/Tabs.api.md +68 -0
  274. package/src/components/Tabs/Tabs.cy.ts +37 -7
  275. package/src/components/Tabs/Tabs.md +11 -0
  276. package/src/components/Tabs/Tabs.vue +36 -8
  277. package/src/components/Tabs/stories/Icons.vue +9 -12
  278. package/src/components/Tabs/stories/Orientation.vue +17 -15
  279. package/src/components/Tabs/types.ts +24 -11
  280. package/src/components/TextEditor/TextEditor.api.md +161 -0
  281. package/src/components/TextEditor/TextEditor.md +11 -0
  282. package/src/components/TextEditor/commands.js +1 -1
  283. package/src/components/TextEditor/components/CodeBlockComponent.vue +183 -58
  284. package/src/components/TextEditor/components/MediaNodeView.vue +4 -4
  285. package/src/components/TextEditor/extensions/mention/mention-extension.ts +4 -0
  286. package/src/components/TextEditor/extensions/toc-node/TocNodeView.vue +1 -1
  287. package/src/components/TextEditor/style.css +17 -0
  288. package/src/components/TextInput/TextInput.api.md +123 -0
  289. package/src/components/TextInput/TextInput.cy.ts +107 -0
  290. package/src/components/TextInput/TextInput.md +42 -0
  291. package/src/components/TextInput/TextInput.vue +110 -38
  292. package/src/components/TextInput/stories/Default.vue +10 -0
  293. package/src/components/TextInput/stories/Labeling.vue +30 -0
  294. package/src/components/TextInput/stories/PrefixSuffix.vue +28 -0
  295. package/src/components/TextInput/stories/Sizes.vue +12 -0
  296. package/src/components/TextInput/stories/Slots.vue +15 -0
  297. package/src/components/TextInput/stories/States.vue +16 -0
  298. package/src/components/TextInput/stories/Types.vue +17 -0
  299. package/src/components/TextInput/stories/Variants.vue +11 -0
  300. package/src/components/TextInput/types.ts +16 -15
  301. package/src/components/Textarea/Textarea.api.md +113 -0
  302. package/src/components/Textarea/Textarea.cy.ts +134 -0
  303. package/src/components/Textarea/Textarea.md +27 -0
  304. package/src/components/Textarea/Textarea.vue +94 -24
  305. package/src/components/Textarea/stories/Default.vue +10 -0
  306. package/src/components/Textarea/stories/Labeling.vue +30 -0
  307. package/src/components/Textarea/stories/Sizes.vue +12 -0
  308. package/src/components/Textarea/stories/States.vue +16 -0
  309. package/src/components/Textarea/stories/Variants.vue +5 -2
  310. package/src/components/Textarea/types.ts +17 -15
  311. package/src/components/TimePicker/TimePicker.api.md +239 -0
  312. package/src/components/TimePicker/TimePicker.cy.ts +76 -18
  313. package/src/components/TimePicker/TimePicker.md +18 -0
  314. package/src/components/TimePicker/TimePicker.vue +485 -462
  315. package/src/components/TimePicker/stories/Basic.vue +18 -7
  316. package/src/components/TimePicker/stories/CustomOptions.vue +17 -16
  317. package/src/components/TimePicker/stories/Range.vue +38 -8
  318. package/src/components/TimePicker/stories/TwentyFour.vue +15 -3
  319. package/src/components/TimePicker/types.ts +87 -47
  320. package/src/components/TimePicker/utils.ts +175 -0
  321. package/src/components/Toast/Toast.api.md +70 -0
  322. package/src/components/Toast/Toast.cy.ts +85 -0
  323. package/src/components/Toast/Toast.md +31 -0
  324. package/src/components/Toast/Toast.test.ts +107 -0
  325. package/src/components/Toast/Toast.vue +16 -9
  326. package/src/components/Toast/ToastProvider.vue +45 -9
  327. package/src/components/Toast/stories/Actions.vue +39 -0
  328. package/src/components/Toast/stories/Async.vue +52 -0
  329. package/src/components/Toast/stories/CustomIcon.vue +29 -0
  330. package/src/components/Toast/stories/Examples.vue +40 -0
  331. package/src/components/Toast/stories/Quickstart.vue +7 -0
  332. package/src/components/Toast/toast.ts +198 -0
  333. package/src/components/Toast/types.ts +25 -5
  334. package/src/components/Tooltip/Tooltip.api.md +117 -0
  335. package/src/components/Tooltip/Tooltip.md +12 -0
  336. package/src/components/Tooltip/Tooltip.vue +15 -25
  337. package/src/components/Tooltip/TooltipBubble.vue +52 -0
  338. package/src/components/Tooltip/index.ts +2 -1
  339. package/src/components/Tree/Tree.api.md +52 -0
  340. package/src/components/Tree/Tree.md +8 -0
  341. package/src/components/Tree/Tree.vue +6 -7
  342. package/src/components/shared/picker/PickerShell.vue +264 -0
  343. package/src/components/shared/selection/OptionIcon.vue +44 -0
  344. package/src/components/shared/selection/createItemSlotRender.ts +26 -0
  345. package/src/components/shared/selection/popoverMotion.css +95 -0
  346. package/src/components/shared/selection/useEmptyValueMapping.ts +34 -0
  347. package/src/components/shared/selection/useFilteredGroups.ts +46 -0
  348. package/src/components/shared/selection/utils.ts +138 -0
  349. package/src/composables/inputTypes.ts +8 -0
  350. package/src/composables/useAutofocusOnOpen.ts +82 -0
  351. package/src/composables/useInputLabeling.ts +131 -0
  352. package/src/composables/usePopoverMotion.ts +37 -0
  353. package/src/composables/useShortcut.spec.ts +466 -0
  354. package/src/composables/useShortcut.ts +392 -0
  355. package/src/index.ts +47 -31
  356. package/src/utils/confirmDialog.js +5 -0
  357. package/src/utils/dialog.cy.ts +527 -0
  358. package/src/utils/dialog.ts +664 -0
  359. package/src/utils/iconString.ts +51 -0
  360. package/src/utils/useId.ts +7 -5
  361. package/src/utils/vnode.ts +62 -0
  362. package/src/utils/warnDeprecated.ts +20 -0
  363. package/tailwind/colorPalette.js +2 -1
  364. package/tailwind/iconPackPlugin.js +108 -0
  365. package/tailwind/lucideIconsPlugin.js +23 -0
  366. package/tailwind/plugin.js +236 -154
  367. package/tailwind/preset.js +2 -1
  368. package/tailwind/tokens.js +45 -0
  369. package/vite/doctypeInterfaceGenerator.js +1 -1
  370. package/vite/index.js +1 -0
  371. package/vite/lucideIcons.js +64 -9
  372. package/src/components/Checkbox/stories/Examples.vue +0 -8
  373. package/src/components/Combobox/stories/CustomRender.vue +0 -26
  374. package/src/components/Combobox/stories/OptionSlots.vue +0 -42
  375. package/src/components/Combobox/stories/WithIcons.vue +0 -16
  376. package/src/components/Dialog/stories/Confirm.vue +0 -38
  377. package/src/components/Dialog/stories/Custom.vue +0 -38
  378. package/src/components/Dialog/stories/Interactive.vue +0 -48
  379. package/src/components/Dialog/stories/Modal.vue +0 -21
  380. package/src/components/Dropdown/stories/CustomTrigger.vue +0 -19
  381. package/src/components/Dropdown/stories/Examples.vue +0 -17
  382. package/src/components/Dropdown/stories/Grouped.vue +0 -36
  383. package/src/components/Dropdown/stories/Submenus.vue +0 -31
  384. package/src/components/Dropdown/stories/Switches.vue +0 -28
  385. package/src/components/Rating/stories/Examples.vue +0 -7
  386. package/src/components/Slider/stories/Example.vue +0 -11
  387. package/src/components/Switch/stories/Example.vue +0 -7
  388. package/src/components/Switch/stories/Labels.vue +0 -17
  389. package/src/components/TextInput/stories/List.vue +0 -71
  390. package/src/components/Toast/index.ts +0 -200
  391. /package/src/components/Password/stories/{Example.vue → Default.vue} +0 -0
@@ -41,8 +41,8 @@
41
41
  Status
42
42
  </div>
43
43
  </div>
44
- <div
45
- v-for="dataImport in dataImports.data"
44
+ <div
45
+ v-for="dataImport in dataImports.data"
46
46
  @click="() => redirectToImport(dataImport.name!)"
47
47
  class="grid grid-cols-[75%,20%] lg:grid-cols-[85%,20%] items-center cursor-pointer py-2.5 px-1 mx-2"
48
48
  >
@@ -84,7 +84,7 @@
84
84
  >
85
85
  <template #body-content>
86
86
  <div>
87
- <Link
87
+ <Link
88
88
  v-model="doctypeForImport"
89
89
  doctype="DocType"
90
90
  :filters="{
@@ -105,7 +105,7 @@ import { dayjs } from "../../src/utils/dayjs"
105
105
  import { getBadgeColor } from "./dataImport"
106
106
  import Badge from '../../src/components/Badge/Badge.vue'
107
107
  import type { BadgeProps } from '../../src/components/Badge/types'
108
- import { toast } from "../../src/components/Toast/index"
108
+ import { toast } from "../../src/components/Toast/toast"
109
109
  import Button from '../../src/components/Button/Button.vue'
110
110
  import Dialog from '../../src/components/Dialog/Dialog.vue'
111
111
  import FeatherIcon from '../../src/components/FeatherIcon.vue'
@@ -14,7 +14,7 @@
14
14
  Change the mapping of columns from your file to fields in the system
15
15
  </div>
16
16
  </div>
17
-
17
+
18
18
  <div class="flex flex-col lg:flex-row space-y-2 lg:space-x-2 lg:space-y-0">
19
19
  <Button v-if="mappingUpdated" label="Reset Mapping" @click="resetMapping" />
20
20
  <Button label="Continue" variant="solid" @click="$emit('updateStep', 'preview')" />
@@ -36,7 +36,7 @@
36
36
  <Autocomplete
37
37
  :model-value="columnMappings[columnsFromFile[i - 1]]"
38
38
  :options="columnsFromSystem"
39
- placeholder="Select field"
39
+ placeholder="Select field"
40
40
  @update:model-value="(val: any) => updateColumnMappings(i, val)"
41
41
  />
42
42
  </template>
@@ -48,7 +48,7 @@
48
48
  import type { DataImport, DataImports } from './types';
49
49
  import { fieldsToIgnore, getBadgeColor, getPreviewData } from './dataImport'
50
50
  import { computed, nextTick, onMounted, ref } from 'vue';
51
- import { toast } from "../../src/components/Toast/index"
51
+ import { toast } from "../../src/components/Toast/toast"
52
52
  import Autocomplete from '../../src/components/Autocomplete/Autocomplete.vue';
53
53
  import Badge from '../../src/components/Badge/Badge.vue';
54
54
  import Button from '../../src/components/Button/Button.vue';
@@ -180,7 +180,7 @@ const resetMapping = () => {
180
180
 
181
181
  const getChildTableName = (parent: string, child: string) => {
182
182
  let parentFields = props.fields.data?.docs.find((doc: any) => doc.name == parent)?.fields || [];
183
-
183
+
184
184
  let childField = parentFields.filter((field: any) => field.options == child)[0]
185
185
  return childField?.label || child;
186
186
  }
@@ -10,8 +10,8 @@
10
10
  {{ data?.status }}
11
11
  </Badge>
12
12
  </div>
13
- <Button
14
- variant="solid"
13
+ <Button
14
+ variant="solid"
15
15
  @click="saveImport"
16
16
  :disabled="disableContinueButton"
17
17
  >
@@ -27,7 +27,7 @@
27
27
  <div
28
28
  v-if="showFileSelector && !importFile"
29
29
  @dragover.prevent
30
- @drop.prevent="(e) => uploadFile(e)"
30
+ @drop.prevent="(e) => uploadFile(e)"
31
31
  class="h-[300px] flex items-center justify-center bg-surface-gray-1 border border-dashed border-outline-gray-3 rounded-md">
32
32
  <div v-if="showFileSelector && !uploading" class="w-4/5 lg:w-2/5 text-center">
33
33
  <FeatherIcon name="upload-cloud" class="size-6 stroke-1.5 text-ink-gray-6 mx-auto mb-2.5" />
@@ -39,11 +39,11 @@
39
39
  @change="(e) => uploadFile(e)"
40
40
  />
41
41
  <div class="leading-5 text-ink-gray-9">
42
- Drag and drop a CSV file, or upload from your
43
- <span @click="openFileSelector" class="cursor-pointer font-semibold hover:underline">Device</span>
44
- or
45
- <span @click="openSheetSelector" class="cursor-pointer font-semibold hover:underline">
46
- Google Sheet
42
+ Drag and drop a CSV file, or upload from your
43
+ <span @click="openFileSelector" class="cursor-pointer font-semibold hover:underline">Device</span>
44
+ or
45
+ <span @click="openSheetSelector" class="cursor-pointer font-semibold hover:underline">
46
+ Google Sheet
47
47
  </span>
48
48
  </div>
49
49
  </div>
@@ -57,7 +57,7 @@
57
57
  </div>
58
58
  </div>
59
59
  <div class="w-full bg-surface-gray-1 h-1 rounded-full mt-3">
60
- <div
60
+ <div
61
61
  class="bg-surface-gray-7 h-1 rounded-full transition-all duration-500 ease-in-out"
62
62
  :style="`width: ${uploadProgress}%`"
63
63
  ></div>
@@ -74,8 +74,8 @@
74
74
  {{ convertToKB(importFile.file_size) }}
75
75
  </div>
76
76
  </div>
77
- <FeatherIcon
78
- name="trash-2"
77
+ <FeatherIcon
78
+ name="trash-2"
79
79
  class="size-4 stroke-1.5 text-ink-red-3 cursor-pointer"
80
80
  @click="deleteFile"
81
81
  />
@@ -154,7 +154,7 @@
154
154
  import { computed, nextTick, ref, watch } from 'vue'
155
155
  import { useRouter } from 'vue-router'
156
156
  import type { DataImports, DataImport, DocField, DocType } from './types'
157
- import { toast } from "../../src/components/Toast/index"
157
+ import { toast } from "../../src/components/Toast/toast"
158
158
  import { fieldsToIgnore, getChildTableName, getBadgeColor } from './dataImport'
159
159
  import Badge from '../../src/components/Badge/Badge.vue'
160
160
  import Button from '../../src/components/Button/Button.vue'
@@ -199,7 +199,7 @@ const extractFile = (e: Event): File | null => {
199
199
  const uploadFile = (e: Event) => {
200
200
  const file = extractFile(e)
201
201
  if (!file) return;
202
-
202
+
203
203
  if (file.type !== 'text/csv') {
204
204
  toast.error('Please upload a valid CSV file.')
205
205
  console.error('Please upload a valid CSV file.')
@@ -309,7 +309,7 @@ const exportTemplate = async (type: 'mandatory' | 'all') => {
309
309
  const getExportURL = (type: 'mandatory' | 'all') => {
310
310
  if (!props.doctype && !props.data?.reference_doctype) return ''
311
311
  let exportFields = getExportFields(type)
312
-
312
+
313
313
  return `/api/method/frappe.core.doctype.data_import.data_import.download_template
314
314
  ?doctype=${encodeURIComponent(props.doctype || props.data?.reference_doctype as string)}
315
315
  &export_fields=${encodeURIComponent(JSON.stringify(exportFields))}
@@ -1,4 +1,4 @@
1
- import { toast } from "../../src/components/Toast/index"
1
+ import { toast } from "../../src/components/Toast/toast"
2
2
  import type { DataImportStatus } from './types'
3
3
  import call from '../../src/utils/call';
4
4
 
@@ -71,7 +71,7 @@ const createNewOption = {
71
71
  label: 'Create New',
72
72
  slotName: 'create-new',
73
73
  condition: () => true,
74
- onClick: ({ searchTerm }) => emit('create', searchTerm),
74
+ onClick: ({ query }) => emit('create', query),
75
75
  } as ComboboxOption
76
76
 
77
77
  const linkOptions = computed(() => {
@@ -131,7 +131,11 @@ export function useOnboarding(appName) {
131
131
  if (onboardingSteps.value.length) {
132
132
  let _steps = onboardingSteps.value
133
133
  _steps.forEach((step, index) => {
134
- onboardings[appName][index].completed = step.completed
134
+ const onboardingExists =
135
+ onboardings[appName] && onboardings[appName][index]
136
+ if (onboardingExists) {
137
+ onboardings[appName][index].completed = step.completed
138
+ }
135
139
  })
136
140
  isOnboardingStepsCompleted.value = _steps.every((step) => step.completed)
137
141
  } else {
@@ -3,7 +3,6 @@ import PlusSquare from "~icons/lucide/plus-square"
3
3
  import Sunset from "~icons/lucide/sunset"
4
4
  import Battery from "~icons/lucide/battery"
5
5
  import LogIn from "~icons/lucide/log-in"
6
- import Gitlab from "~icons/lucide/gitlab"
7
6
  import Map from "~icons/lucide/map"
8
7
  import CornerUpRight from "~icons/lucide/corner-up-right"
9
8
  import ZapOff from "~icons/lucide/zap-off"
@@ -16,7 +15,6 @@ import TrendingUp from "~icons/lucide/trending-up"
16
15
  import EyeOff from "~icons/lucide/eye-off"
17
16
  import Octagon from "~icons/lucide/octagon"
18
17
  import Edit from "~icons/lucide/edit"
19
- import Pocket from "~icons/lucide/pocket"
20
18
  import RefreshCcw from "~icons/lucide/refresh-ccw"
21
19
  import Truck from "~icons/lucide/truck"
22
20
  import Volume2 from "~icons/lucide/volume-2"
@@ -57,7 +55,6 @@ import Link from "~icons/lucide/link"
57
55
  import Pause from "~icons/lucide/pause"
58
56
  import PhoneOutgoing from "~icons/lucide/phone-outgoing"
59
57
  import Save from "~icons/lucide/save"
60
- import Facebook from "~icons/lucide/facebook"
61
58
  import UserX from "~icons/lucide/user-x"
62
59
  import PenTool from "~icons/lucide/pen-tool"
63
60
  import Trash2 from "~icons/lucide/trash-2"
@@ -87,7 +84,6 @@ import MicOff from "~icons/lucide/mic-off"
87
84
  import ExternalLink from "~icons/lucide/external-link"
88
85
  import Menu from "~icons/lucide/menu"
89
86
  import PauseCircle from "~icons/lucide/pause-circle"
90
- import Instagram from "~icons/lucide/instagram"
91
87
  import ToggleLeft from "~icons/lucide/toggle-left"
92
88
  import Speaker from "~icons/lucide/speaker"
93
89
  import Image from "~icons/lucide/image"
@@ -122,7 +118,6 @@ import UserMinus from "~icons/lucide/user-minus"
122
118
  import Database from "~icons/lucide/database"
123
119
  import Search from "~icons/lucide/search"
124
120
  import Globe from "~icons/lucide/globe"
125
- import Github from "~icons/lucide/github"
126
121
  import Bell from "~icons/lucide/bell"
127
122
  import Monitor from "~icons/lucide/monitor"
128
123
  import Scissors from "~icons/lucide/scissors"
@@ -148,7 +143,6 @@ import Navigation from "~icons/lucide/navigation"
148
143
  import LogOut from "~icons/lucide/log-out"
149
144
  import Underline from "~icons/lucide/underline"
150
145
  import Triangle from "~icons/lucide/triangle"
151
- import Slack from "~icons/lucide/slack"
152
146
  import Watch from "~icons/lucide/watch"
153
147
  import Disc from "~icons/lucide/disc"
154
148
  import StopCircle from "~icons/lucide/stop-circle"
@@ -164,7 +158,6 @@ import File from "~icons/lucide/file"
164
158
  import ThumbsDown from "~icons/lucide/thumbs-down"
165
159
  import Download from "~icons/lucide/download"
166
160
  import Umbrella from "~icons/lucide/umbrella"
167
- import Framer from "~icons/lucide/framer"
168
161
  import Sun from "~icons/lucide/sun"
169
162
  import PhoneCall from "~icons/lucide/phone-call"
170
163
  import AlertCircle from "~icons/lucide/alert-circle"
@@ -172,7 +165,6 @@ import CheckCircle from "~icons/lucide/check-circle"
172
165
  import Target from "~icons/lucide/target"
173
166
  import LifeBuoy from "~icons/lucide/life-buoy"
174
167
  import Shield from "~icons/lucide/shield"
175
- import Youtube from "~icons/lucide/youtube"
176
168
  import Cpu from "~icons/lucide/cpu"
177
169
  import Users from "~icons/lucide/users"
178
170
  import Mail from "~icons/lucide/mail"
@@ -181,9 +173,7 @@ import PhoneIncoming from "~icons/lucide/phone-incoming"
181
173
  import CreditCard from "~icons/lucide/credit-card"
182
174
  import Lock from "~icons/lucide/lock"
183
175
  import Maximize from "~icons/lucide/maximize"
184
- import Twitter from "~icons/lucide/twitter"
185
176
  import Inbox from "~icons/lucide/inbox"
186
- import Linkedin from "~icons/lucide/linkedin"
187
177
  import ShoppingCart from "~icons/lucide/shopping-cart"
188
178
  import Play from "~icons/lucide/play"
189
179
  import Code from "~icons/lucide/code"
@@ -191,7 +181,6 @@ import RotateCcw from "~icons/lucide/rotate-ccw"
191
181
  import MoreHorizontal from "~icons/lucide/more-horizontal"
192
182
  import Percent from "~icons/lucide/percent"
193
183
  import HelpCircle from "~icons/lucide/help-circle"
194
- import Trello from "~icons/lucide/trello"
195
184
  import Shuffle from "~icons/lucide/shuffle"
196
185
  import Sliders from "~icons/lucide/sliders"
197
186
  import Volume from "~icons/lucide/volume"
@@ -203,7 +192,6 @@ const icons = {
203
192
  sunset: Sunset,
204
193
  battery: Battery,
205
194
  "log-in": LogIn,
206
- gitlab: Gitlab,
207
195
  map: Map,
208
196
  "corner-up-right": CornerUpRight,
209
197
  "zap-off": ZapOff,
@@ -215,7 +203,6 @@ const icons = {
215
203
  "eye-off": EyeOff,
216
204
  octagon: Octagon,
217
205
  edit: Edit,
218
- pocket: Pocket,
219
206
  "refresh-ccw": RefreshCcw,
220
207
  truck: Truck,
221
208
  "volume-2": Volume2,
@@ -256,7 +243,6 @@ const icons = {
256
243
  pause: Pause,
257
244
  "phone-outgoing": PhoneOutgoing,
258
245
  save: Save,
259
- facebook: Facebook,
260
246
  "user-x": UserX,
261
247
  "pen-tool": PenTool,
262
248
  "trash-2": Trash2,
@@ -286,7 +272,6 @@ const icons = {
286
272
  "external-link": ExternalLink,
287
273
  menu: Menu,
288
274
  "pause-circle": PauseCircle,
289
- instagram: Instagram,
290
275
  "toggle-left": ToggleLeft,
291
276
  speaker: Speaker,
292
277
  image: Image,
@@ -321,7 +306,6 @@ const icons = {
321
306
  database: Database,
322
307
  search: Search,
323
308
  globe: Globe,
324
- github: Github,
325
309
  bell: Bell,
326
310
  monitor: Monitor,
327
311
  scissors: Scissors,
@@ -347,7 +331,6 @@ const icons = {
347
331
  "log-out": LogOut,
348
332
  underline: Underline,
349
333
  triangle: Triangle,
350
- slack: Slack,
351
334
  watch: Watch,
352
335
  disc: Disc,
353
336
  "stop-circle": StopCircle,
@@ -363,7 +346,6 @@ const icons = {
363
346
  "thumbs-down": ThumbsDown,
364
347
  download: Download,
365
348
  umbrella: Umbrella,
366
- framer: Framer,
367
349
  sun: Sun,
368
350
  "phone-call": PhoneCall,
369
351
  "alert-circle": AlertCircle,
@@ -371,7 +353,6 @@ const icons = {
371
353
  target: Target,
372
354
  "life-buoy": LifeBuoy,
373
355
  shield: Shield,
374
- youtube: Youtube,
375
356
  cpu: Cpu,
376
357
  users: Users,
377
358
  mail: Mail,
@@ -380,9 +361,7 @@ const icons = {
380
361
  "credit-card": CreditCard,
381
362
  lock: Lock,
382
363
  maximize: Maximize,
383
- twitter: Twitter,
384
364
  inbox: Inbox,
385
- linkedin: Linkedin,
386
365
  "shopping-cart": ShoppingCart,
387
366
  play: Play,
388
367
  code: Code,
@@ -390,7 +369,6 @@ const icons = {
390
369
  "more-horizontal": MoreHorizontal,
391
370
  percent: Percent,
392
371
  "help-circle": HelpCircle,
393
- trello: Trello,
394
372
  shuffle: Shuffle,
395
373
  sliders: Sliders,
396
374
  volume: Volume,
@@ -399,7 +377,6 @@ const icons = {
399
377
  sunset: Sunset,
400
378
  battery: Battery,
401
379
  "log-in": LogIn,
402
- gitlab: Gitlab,
403
380
  map: Map,
404
381
  "corner-up-right": CornerUpRight,
405
382
  "zap-off": ZapOff,
@@ -411,7 +388,6 @@ const icons = {
411
388
  "eye-off": EyeOff,
412
389
  octagon: Octagon,
413
390
  edit: Edit,
414
- pocket: Pocket,
415
391
  "refresh-ccw": RefreshCcw,
416
392
  truck: Truck,
417
393
  "volume-2": Volume2,
@@ -452,7 +428,6 @@ const icons = {
452
428
  pause: Pause,
453
429
  "phone-outgoing": PhoneOutgoing,
454
430
  save: Save,
455
- facebook: Facebook,
456
431
  "user-x": UserX,
457
432
  "pen-tool": PenTool,
458
433
  "trash-2": Trash2,
@@ -482,7 +457,6 @@ const icons = {
482
457
  "external-link": ExternalLink,
483
458
  menu: Menu,
484
459
  "pause-circle": PauseCircle,
485
- instagram: Instagram,
486
460
  "toggle-left": ToggleLeft,
487
461
  speaker: Speaker,
488
462
  image: Image,
@@ -517,7 +491,6 @@ const icons = {
517
491
  database: Database,
518
492
  search: Search,
519
493
  globe: Globe,
520
- github: Github,
521
494
  bell: Bell,
522
495
  monitor: Monitor,
523
496
  scissors: Scissors,
@@ -543,7 +516,6 @@ const icons = {
543
516
  "log-out": LogOut,
544
517
  underline: Underline,
545
518
  triangle: Triangle,
546
- slack: Slack,
547
519
  watch: Watch,
548
520
  disc: Disc,
549
521
  "stop-circle": StopCircle,
@@ -559,7 +531,6 @@ const icons = {
559
531
  "thumbs-down": ThumbsDown,
560
532
  download: Download,
561
533
  umbrella: Umbrella,
562
- framer: Framer,
563
534
  sun: Sun,
564
535
  "phone-call": PhoneCall,
565
536
  "alert-circle": AlertCircle,
@@ -567,7 +538,6 @@ const icons = {
567
538
  target: Target,
568
539
  "life-buoy": LifeBuoy,
569
540
  shield: Shield,
570
- youtube: Youtube,
571
541
  cpu: Cpu,
572
542
  users: Users,
573
543
  mail: Mail,
@@ -576,9 +546,7 @@ const icons = {
576
546
  "credit-card": CreditCard,
577
547
  lock: Lock,
578
548
  maximize: Maximize,
579
- twitter: Twitter,
580
549
  inbox: Inbox,
581
- linkedin: Linkedin,
582
550
  "shopping-cart": ShoppingCart,
583
551
  play: Play,
584
552
  code: Code,
@@ -586,7 +554,6 @@ const icons = {
586
554
  "more-horizontal": MoreHorizontal,
587
555
  percent: Percent,
588
556
  "help-circle": HelpCircle,
589
- trello: Trello,
590
557
  shuffle: Shuffle,
591
558
  sliders: Sliders,
592
559
  volume: Volume,
@@ -595,7 +562,6 @@ const icons = {
595
562
  sunset: Sunset,
596
563
  battery: Battery,
597
564
  "log-in": LogIn,
598
- gitlab: Gitlab,
599
565
  map: Map,
600
566
  "corner-up-right": CornerUpRight,
601
567
  "zap-off": ZapOff,
@@ -607,7 +573,6 @@ const icons = {
607
573
  "eye-off": EyeOff,
608
574
  octagon: Octagon,
609
575
  edit: Edit,
610
- pocket: Pocket,
611
576
  "refresh-ccw": RefreshCcw,
612
577
  truck: Truck,
613
578
  "volume-2": Volume2,
@@ -648,7 +613,6 @@ const icons = {
648
613
  pause: Pause,
649
614
  "phone-outgoing": PhoneOutgoing,
650
615
  save: Save,
651
- facebook: Facebook,
652
616
  "user-x": UserX,
653
617
  "pen-tool": PenTool,
654
618
  "trash-2": Trash2,
@@ -678,7 +642,6 @@ const icons = {
678
642
  "external-link": ExternalLink,
679
643
  menu: Menu,
680
644
  "pause-circle": PauseCircle,
681
- instagram: Instagram,
682
645
  "toggle-left": ToggleLeft,
683
646
  speaker: Speaker,
684
647
  image: Image,
package/frappe/index.d.ts CHANGED
@@ -50,6 +50,16 @@ declare module 'frappe-ui/frappe' {
50
50
  // Components
51
51
  export const Link: Component
52
52
  export type { LinkProps } from './Link/types'
53
+
54
+ // Telemetry
55
+ export function useTelemetry(): {
56
+ isEnabled: { readonly value: boolean }
57
+ disable: () => void
58
+ capture: (event_name: string, data?: Record<string, any>) => void
59
+ }
60
+ export const telemetryPlugin: {
61
+ install: (app: import('vue').App, options: { app_name: string }) => Promise<void>
62
+ }
53
63
  }
54
64
 
55
65
  // Data Import
@@ -28,7 +28,7 @@ const state = reactive({
28
28
  :open-on-focus="state.openOnFocus"
29
29
  :placement="state.placement"
30
30
  />
31
- <div class="mt-2 text-sm text-gray-600">
31
+ <div class="mt-2 text-sm text-ink-gray-6">
32
32
  Selected: {{ basicValue || 'None' }}
33
33
  </div>
34
34
  </div>
@@ -43,7 +43,7 @@ const state = reactive({
43
43
  :placeholder="state.placeholder"
44
44
  :disabled="state.disabled"
45
45
  />
46
- <div class="mt-2 text-sm text-gray-600">
46
+ <div class="mt-2 text-sm text-ink-gray-6">
47
47
  Selected: {{ basicValue || 'None' }}
48
48
  </div>
49
49
  </div>
@@ -58,7 +58,7 @@ const state = reactive({
58
58
  :placeholder="state.placeholder"
59
59
  :disabled="state.disabled"
60
60
  />
61
- <div class="mt-2 text-sm text-gray-600">
61
+ <div class="mt-2 text-sm text-ink-gray-6">
62
62
  Selected: {{ basicValue || 'None' }}
63
63
  </div>
64
64
  </div>
@@ -73,7 +73,7 @@ const state = reactive({
73
73
  :placeholder="state.placeholder"
74
74
  :disabled="state.disabled"
75
75
  />
76
- <div class="mt-2 text-sm text-gray-600">
76
+ <div class="mt-2 text-sm text-ink-gray-6">
77
77
  Selected: {{ basicValue || 'None' }}
78
78
  </div>
79
79
  </div>
@@ -87,7 +87,7 @@ const state = reactive({
87
87
  :placeholder="state.placeholder"
88
88
  :disabled="state.disabled"
89
89
  />
90
- <div class="mt-2 text-sm text-gray-600">
90
+ <div class="mt-2 text-sm text-ink-gray-6">
91
91
  Selected: {{ preselectedValue || 'None' }}
92
92
  </div>
93
93
  </div>
@@ -101,7 +101,7 @@ const state = reactive({
101
101
  placeholder="This is disabled"
102
102
  :disabled="true"
103
103
  />
104
- <div class="mt-2 text-sm text-gray-600">
104
+ <div class="mt-2 text-sm text-ink-gray-6">
105
105
  Icon picker is disabled
106
106
  </div>
107
107
  </div>
package/package.json CHANGED
@@ -1,22 +1,31 @@
1
1
  {
2
2
  "name": "frappe-ui",
3
- "version": "0.1.277",
3
+ "version": "1.0.0-beta.0",
4
4
  "description": "A set of components and utilities for rapid UI development",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "scripts": {
8
8
  "test": "vitest --run",
9
- "type-check": "tsc --noEmit",
10
- "prettier": "yarn prettier -w ./src",
9
+ "test:coverage": "vitest --run --coverage",
10
+ "test:cypress": "cypress run --component",
11
+ "test:cypress:coverage": "cross-env COVERAGE=true cypress run --component",
12
+ "coverage": "yarn test:coverage && yarn test:cypress:coverage && yarn coverage:merge",
13
+ "coverage:merge": "tsx .github/scripts/merge-coverage.ts",
14
+ "type-check": "vue-tsc --noEmit",
15
+ "type-check:tsc": "tsc --noEmit",
16
+ "prettier": "yarn run prettier -w ./src",
11
17
  "bump-and-release": "yarn test && git pull --rebase origin main && yarn run release-patch",
12
18
  "release-patch": "yarn version --patch && git push && git push --tags",
19
+ "bump-and-release-beta": "yarn test && git pull --rebase origin main && yarn run release-beta",
20
+ "release-beta": "yarn version --prerelease --preid beta && git push && git push --tags",
13
21
  "dev": "vite",
14
22
  "build": "vite build",
15
23
  "preview": "vite preview",
16
24
  "docs:dev": "vitepress dev docs --host",
17
25
  "docs:build": "vitepress build docs",
18
26
  "docs:preview": "vitepress preview docs",
19
- "docs:gen": "node docs/scripts/propsgen.ts --trace-uncaught"
27
+ "docs:gen": "tsx docs/scripts/propsgen.ts",
28
+ "docs:gen:all": "yarn docs:gen --all"
20
29
  },
21
30
  "exports": {
22
31
  ".": {
@@ -39,6 +48,10 @@
39
48
  "import": "./tailwind/index.js",
40
49
  "default": "./tailwind/index.js"
41
50
  },
51
+ "./tailwind/tokens.js": {
52
+ "import": "./tailwind/tokens.js",
53
+ "default": "./tailwind/tokens.js"
54
+ },
42
55
  "./vite": {
43
56
  "import": "./vite/index.js"
44
57
  },
@@ -49,8 +62,8 @@
49
62
  "import": "./src/components/TextEditor/style.css"
50
63
  },
51
64
  "./tsconfig.base.json": {
52
- "default": "./tsconfig.base.json",
53
- "types": "./tsconfig.base.json"
65
+ "types": "./tsconfig.base.json",
66
+ "default": "./tsconfig.base.json"
54
67
  }
55
68
  },
56
69
  "files": [
@@ -69,8 +82,6 @@
69
82
  "author": "Frappe Technologies Pvt. Ltd.",
70
83
  "license": "MIT",
71
84
  "dependencies": {
72
- "@floating-ui/dom": "^1.7.4",
73
- "@floating-ui/vue": "^1.1.6",
74
85
  "@headlessui/vue": "^1.7.14",
75
86
  "@popperjs/core": "^2.11.2",
76
87
  "@tailwindcss/forms": "^0.5.3",
@@ -103,19 +114,19 @@
103
114
  "@tiptap/vue-3": "^3.11.0",
104
115
  "@vueuse/core": "^10.4.1",
105
116
  "dayjs": "^1.11.13",
106
- "dompurify": "^3.2.6",
117
+ "dompurify": "^3.4.0",
107
118
  "echarts": "^5.6.0",
108
119
  "feather-icons": "^4.28.0",
120
+ "fuzzysort": "^3.1.0",
109
121
  "grid-layout-plus": "^1.1.0",
110
122
  "highlight.js": "^11.11.1",
111
123
  "idb-keyval": "^6.2.0",
112
124
  "lowlight": "^3.3.0",
113
- "lucide-static": "^0.545.0",
125
+ "lucide-static": "^1.16.0",
114
126
  "marked": "^15.0.12",
115
127
  "ora": "5.4.1",
116
128
  "prettier": "^3.3.2",
117
129
  "prosemirror-tables": "^1.8.1",
118
- "radix-vue": "^1.5.3",
119
130
  "reka-ui": "^2.5.0",
120
131
  "slugify": "^1.6.6",
121
132
  "socket.io-client": "^4.5.1",
@@ -123,37 +134,58 @@
123
134
  "typescript": "^5.0.2",
124
135
  "unplugin-auto-import": "^19.3.0",
125
136
  "unplugin-icons": "^22.1.0",
126
- "unplugin-vue-components": "^28.4.1"
137
+ "unplugin-vue-components": "^32.0.0",
138
+ "vue-sonner": "^2.0.9"
127
139
  },
128
140
  "peerDependencies": {
129
141
  "vue": ">=3.5.0",
130
142
  "vue-router": "^4.1.6"
131
143
  },
132
144
  "devDependencies": {
133
- "@vitejs/plugin-vue": "^4.0.0",
145
+ "@cypress/code-coverage": "^3.13.10",
146
+ "@vitejs/plugin-vue": "^6.0.7",
147
+ "@vitest/coverage-v8": "^3.2.4",
134
148
  "autoprefixer": "^10.4.13",
149
+ "cross-env": "^7.0.3",
135
150
  "cypress": "^15.8.2",
136
151
  "cypress-split": "^1.24.28",
137
152
  "jsdom": "^27.4.0",
138
153
  "lint-staged": ">=10",
139
154
  "msw": "^2.7.0",
140
- "postcss": "^8.4.21",
155
+ "nyc": "^17.1.0",
156
+ "postcss": "^8.5.10",
141
157
  "prettier-plugin-tailwindcss": "^0.1.13",
142
158
  "tailwindcss": "^3.2.7",
143
- "vite": "^5.1.8",
159
+ "tsx": "^4.20.6",
160
+ "vite": "^7.3.2",
161
+ "vite-plugin-istanbul": "^9.0.0",
144
162
  "vitepress": "^2.0.0-alpha.15",
145
- "vitest": "^2.1.8",
163
+ "vitest": "^3.2.4",
146
164
  "vue": "^3.3.0",
147
165
  "vue-component-meta": "^3.1.8",
148
- "vue-router": "^4.1.6"
166
+ "vue-router": "^4.1.6",
167
+ "vue-tsc": "^3.2.7"
149
168
  },
150
169
  "resolutions": {
151
170
  "prosemirror-model": "1.25.2",
152
171
  "prosemirror-state": "1.4.3",
153
172
  "prosemirror-view": "1.40.0",
154
- "prosemirror-transform": "1.10.4"
173
+ "prosemirror-transform": "1.10.4",
174
+ "defu": "^6.1.5",
175
+ "esbuild": "^0.25.0",
176
+ "lodash": "^4.18.0",
177
+ "markdown-it": "^14.1.1",
178
+ "qs": "^6.14.2",
179
+ "rollup": "^4.59.0",
180
+ "socket.io-parser": "^4.2.6",
181
+ "systeminformation": "^5.31.6",
182
+ "ws": "^8.20.1",
183
+ "postcss": "^8.5.10",
184
+ "vite": "^7.3.2",
185
+ "picomatch": "^4.0.4",
186
+ "js-yaml": "^4.1.1"
155
187
  },
156
188
  "lint-staged": {
157
189
  "*.{js,css,md,vue}": "prettier --write"
158
190
  }
159
- }
191
+ }