@zeedhi/vuetify 3.0.9 → 3.0.11

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 (348) hide show
  1. package/dist/zd-vuetify.css +17050 -30124
  2. package/dist/zd-vuetify.min.css +5 -0
  3. package/dist/zd-vuetify.min.js +40 -0
  4. package/dist/zd-vuetify.mjs +26244 -0
  5. package/package.json +23 -16
  6. package/src/components/tooltip-overflow/ZdTooltipOverflow.vue +1 -1
  7. package/src/components/zd-badge/ZdBadge.vue +2 -2
  8. package/src/components/zd-button/ZdButton.vue +1 -1
  9. package/src/components/zd-card/ZdCard.vue +2 -2
  10. package/src/components/zd-carousel/ZdCarousel.vue +1 -0
  11. package/src/components/zd-checkbox/ZdCheckbox.vue +4 -0
  12. package/src/components/zd-col/ZdCol.vue +1 -0
  13. package/src/components/zd-component/ZdComponent.ts +1 -1
  14. package/src/components/zd-container/ZdContainer.vue +3 -3
  15. package/src/components/zd-currency/ZdCurrency.vue +1 -0
  16. package/src/components/zd-date-input/ZdDateInput.ts +21 -96
  17. package/src/components/zd-date-input/ZdDateInput.vue +3 -8
  18. package/src/components/zd-date-range/ZdDateRange.ts +15 -95
  19. package/src/components/zd-date-range/ZdDateRange.vue +14 -18
  20. package/src/components/zd-divider/ZdDivider.vue +1 -0
  21. package/src/components/zd-footer/ZdFooter.ts +3 -15
  22. package/src/components/zd-footer/ZdFooter.vue +6 -1
  23. package/src/components/zd-form/ZdForm.ts +1 -1
  24. package/src/components/zd-grid/cell/ZdGridCell.vue +1 -1
  25. package/src/components/zd-grid/column-header/ZdGridColumnHeader.ts +1 -1
  26. package/src/components/zd-grid/footer/ZdGridFooter.vue +2 -2
  27. package/src/components/zd-grid/toolbar/ZdGridToolbar.vue +2 -2
  28. package/src/components/zd-grid-editable/cell/ZdGridEditableCell.vue +1 -1
  29. package/src/components/zd-header/ZdHeader.ts +3 -19
  30. package/src/components/zd-header/ZdHeader.vue +7 -5
  31. package/src/components/zd-icon/ZdIcon.vue +1 -0
  32. package/src/components/zd-image/ZdImage.vue +1 -0
  33. package/src/components/zd-increment/ZdIncrement.vue +1 -0
  34. package/src/components/zd-iterable/ZdIterableNoData.vue +6 -6
  35. package/src/components/zd-iterable/zd-iterable-page-size/ZdIterablePageSize.vue +1 -0
  36. package/src/components/zd-iterable/zd-search/ZdSearch.vue +1 -0
  37. package/src/components/zd-iterable-component-render/ZdIterableComponentRender.vue +11 -11
  38. package/src/components/zd-layout/ZdLayout.vue +2 -2
  39. package/src/components/zd-login/ZdLogin.vue +5 -4
  40. package/src/components/zd-login/ZdLoginButton.vue +1 -0
  41. package/src/components/zd-main/ZdMain.vue +2 -2
  42. package/src/components/zd-master-detail/ZdMasterDetail.vue +2 -2
  43. package/src/components/zd-menu/ZdMenu.ts +4 -2
  44. package/src/components/zd-menu/ZdMenuLink.vue +1 -1
  45. package/src/components/zd-menu/ZdMenuSeparator.vue +1 -1
  46. package/src/components/zd-modal/ZdModal.vue +8 -8
  47. package/src/components/zd-modal/ZdModalCloseButton.vue +1 -1
  48. package/src/components/zd-month/ZdMonth.vue +1 -0
  49. package/src/components/zd-password/ZdPassword.vue +1 -0
  50. package/src/components/zd-progress/ZdProgress.vue +2 -2
  51. package/src/components/zd-radio/ZdRadio.vue +14 -10
  52. package/src/components/zd-row/ZdRow.vue +1 -0
  53. package/src/components/zd-select/ZdSelect.vue +4 -4
  54. package/src/components/zd-select-multiple/ZdSelectMultiple.ts +1 -1
  55. package/src/components/zd-select-multiple/ZdSelectMultiple.vue +4 -4
  56. package/src/components/zd-switch/ZdSwitch.vue +41 -41
  57. package/src/components/zd-table/ZdTable.vue +1 -0
  58. package/src/components/zd-tabs/ZdTab.ts +0 -3
  59. package/src/components/zd-tabs/ZdTab.vue +2 -2
  60. package/src/components/zd-tabs/ZdTabItem.vue +12 -11
  61. package/src/components/zd-tabs/ZdTabs.vue +5 -21
  62. package/src/components/zd-text/ZdText.ts +3 -2
  63. package/src/components/zd-time/ZdTime.vue +1 -0
  64. package/src/components/zd-tooltip/ZdTooltip.vue +2 -2
  65. package/src/components/zd-tree/ZdTree.vue +6 -5
  66. package/src/composables/index.ts +2 -0
  67. package/src/composables/useDateKeydown.ts +195 -0
  68. package/src/composables/usePickerValue.ts +22 -0
  69. package/src/index.ts +0 -2
  70. package/src/styles/_zd-input.scss +2 -0
  71. package/src/styles/index.scss +2 -2
  72. package/src/utils/logger/logger.ts +3 -1
  73. package/src/utils/mergeDictionaries.ts +1 -1
  74. package/src/utils/plugins/getIconPlugin.ts +21 -4
  75. package/types/components/tek-grid/TekGrid.d.ts +7258 -0
  76. package/types/components/tek-grid/TekGrid.ts.d.ts +7258 -0
  77. package/types/components/tek-grid/column-filter/TekGridColumnFilter.d.ts +129 -0
  78. package/types/components/tek-grid/column-filter/TekGridColumnFilter.ts.d.ts +129 -0
  79. package/types/components/tek-grid/column-header/TekGridHeaderRow.d.ts +225 -0
  80. package/types/components/tek-grid/column-header/TekGridHeaderRow.ts.d.ts +225 -0
  81. package/types/components/tek-grid/columns-button/TekGridColumnsButton.d.ts +2432 -0
  82. package/types/components/tek-grid/columns-button/TekGridColumnsButton.ts.d.ts +2432 -0
  83. package/types/components/tek-grid/columns-button/TekGridColumnsOptionsController.d.ts +65 -0
  84. package/types/components/tek-grid/columns-button/TekGridColumnsOptionsModal.d.ts +9 -0
  85. package/types/components/tek-grid/filter-button/TekGridFilterButton.d.ts +2920 -0
  86. package/types/components/tek-grid/filter-button/TekGridFilterButton.ts.d.ts +2920 -0
  87. package/types/components/tek-grid/indentation/TekGridIndentation.d.ts +32 -0
  88. package/types/components/tek-grid/indentation/TekGridIndentation.ts.d.ts +32 -0
  89. package/types/components/tek-grid/layout-options/TekGridLayoutOptions.d.ts +1892 -0
  90. package/types/components/tek-grid/layout-options/TekGridLayoutOptions.ts.d.ts +1892 -0
  91. package/types/components/tek-grid/row/TekGridFooterRow.d.ts +90 -0
  92. package/types/components/tek-grid/row/TekGridFooterRow.ts.d.ts +90 -0
  93. package/types/components/tek-grid/row/TekGridGroupRow.d.ts +87 -0
  94. package/types/components/tek-grid/row/TekGridGroupRow.ts.d.ts +87 -0
  95. package/types/components/tooltip-overflow/ZdTooltipOverflow.ts.d.ts +50 -0
  96. package/types/components/zd-activator-wrapper/ZdActivatorWrapper.ts.d.ts +25 -0
  97. package/types/components/zd-alert/ZdAlert.ts.d.ts +884 -0
  98. package/types/components/zd-badge/ZdBadge.ts.d.ts +624 -0
  99. package/types/components/zd-breadcrumbs/ZdBreadcrumbs.ts.d.ts +697 -0
  100. package/types/components/zd-button/ZdButton.ts.d.ts +1158 -0
  101. package/types/components/zd-button-group/ZdButtonGroup.ts.d.ts +785 -0
  102. package/types/components/zd-card/ZdCard.ts.d.ts +1028 -0
  103. package/types/components/zd-carousel/ZdCarousel.ts.d.ts +2007 -0
  104. package/types/components/zd-checkbox/ZdCheckbox.ts.d.ts +642 -0
  105. package/types/components/zd-checkbox-multiple/ZdCheckboxMultiple.ts.d.ts +2010 -0
  106. package/types/components/zd-chip/ZdChip.ts.d.ts +1256 -0
  107. package/types/components/zd-code-viewer/ZdCodeViewer.ts.d.ts +791 -0
  108. package/types/components/zd-col/ZdCol.ts.d.ts +741 -0
  109. package/types/components/zd-collapse-card/ZdCollapseCard.ts.d.ts +1583 -0
  110. package/types/components/zd-container/ZdContainer.ts.d.ts +722 -0
  111. package/types/components/zd-currency/ZdCurrency.ts.d.ts +2024 -0
  112. package/types/components/zd-date-input/ZdDateInput.d.ts +2 -2
  113. package/types/components/zd-date-input/ZdDateInput.ts.d.ts +960 -0
  114. package/types/components/zd-date-range/ZdDateRange.d.ts +25 -12
  115. package/types/components/zd-dialog/ZdDialog.ts.d.ts +262 -0
  116. package/types/components/zd-divider/ZdDivider.ts.d.ts +623 -0
  117. package/types/components/zd-dropdown/ZdDropdown.ts.d.ts +836 -0
  118. package/types/components/zd-footer/ZdFooter.ts.d.ts +1262 -0
  119. package/types/components/zd-form/ZdForm.ts.d.ts +118 -0
  120. package/types/components/zd-frame/ZdFrame.ts.d.ts +138 -0
  121. package/types/components/zd-frame-page/ZdFramePage.ts.d.ts +805 -0
  122. package/types/components/zd-grid/ZdGrid.ts.d.ts +7304 -0
  123. package/types/components/zd-grid/cell/ZdGridAction.ts.d.ts +14 -0
  124. package/types/components/zd-grid/cell/ZdGridCell.ts.d.ts +68 -0
  125. package/types/components/zd-grid/cell/ZdGridCellContent.ts.d.ts +58 -0
  126. package/types/components/zd-grid/cell/ZdGridCheckbox.ts.d.ts +53 -0
  127. package/types/components/zd-grid/column-header/ZdGridColumnHeader.ts.d.ts +112 -0
  128. package/types/components/zd-grid/column-header/ZdGridHeaderIcon.ts.d.ts +46 -0
  129. package/types/components/zd-grid/column-header/ZdGridHeaderRow.ts.d.ts +165 -0
  130. package/types/components/zd-grid/column-header/ZdGridSort.ts.d.ts +47 -0
  131. package/types/components/zd-grid/footer/ZdGridFooter.ts.d.ts +2087 -0
  132. package/types/components/zd-grid/helper/ZdGridHelper.ts.d.ts +16 -0
  133. package/types/components/zd-grid/row/TableRow.ts.d.ts +34 -0
  134. package/types/components/zd-grid/row/ZdGridRow.ts.d.ts +105 -0
  135. package/types/components/zd-grid/toolbar/ZdGridToolbar.ts.d.ts +2086 -0
  136. package/types/components/zd-grid-editable/ZdGridEditable.ts.d.ts +8663 -0
  137. package/types/components/zd-grid-editable/cell/ZdGridEditableCell.d.ts +1 -1
  138. package/types/components/zd-grid-editable/cell/ZdGridEditableCell.ts.d.ts +637 -0
  139. package/types/components/zd-grid-editable/row/ZdGridEditableRow.ts.d.ts +126 -0
  140. package/types/components/zd-header/ZdHeader.ts.d.ts +1320 -0
  141. package/types/components/zd-icon/ZdIcon.ts.d.ts +383 -0
  142. package/types/components/zd-image/ZdImage.ts.d.ts +753 -0
  143. package/types/components/zd-increment/ZdIncrement.ts.d.ts +2069 -0
  144. package/types/components/zd-iterable/ZdIterableNoData.ts.d.ts +2089 -0
  145. package/types/components/zd-iterable/zd-iterable-columns-button/ZdIterableColumnsButton.ts.d.ts +1645 -0
  146. package/types/components/zd-iterable/zd-iterable-page-info/ZdIterablePageInfo.ts.d.ts +1081 -0
  147. package/types/components/zd-iterable/zd-iterable-page-size/ZdIterablePageSize.ts.d.ts +2763 -0
  148. package/types/components/zd-iterable/zd-iterable-pagination/ZdIterablePagination.ts.d.ts +1627 -0
  149. package/types/components/zd-iterable/zd-search/ZdSearch.ts.d.ts +766 -0
  150. package/types/components/zd-iterable-component-render/ZdIterableComponentRender.ts.d.ts +2484 -0
  151. package/types/components/zd-layout/ZdLayout.d.ts +1 -1
  152. package/types/components/zd-layout/ZdLayout.ts.d.ts +647 -0
  153. package/types/components/zd-list/ZdList.d.ts +3 -3
  154. package/types/components/zd-list/ZdList.ts.d.ts +1140 -0
  155. package/types/components/zd-list/ZdListGroup.d.ts +2 -2
  156. package/types/components/zd-list/ZdListGroup.ts.d.ts +1332 -0
  157. package/types/components/zd-list/ZdListItem.d.ts +1 -1
  158. package/types/components/zd-list/ZdListItem.ts.d.ts +848 -0
  159. package/types/components/zd-loading/ZdLoading.ts.d.ts +350 -0
  160. package/types/components/zd-login/ZdLogin.ts.d.ts +1072 -0
  161. package/types/components/zd-login/ZdLoginButton.ts.d.ts +1910 -0
  162. package/types/components/zd-main/ZdMain.ts.d.ts +619 -0
  163. package/types/components/zd-master-detail/ZdMasterDetail.ts.d.ts +684 -0
  164. package/types/components/zd-menu/ZdMenu.ts.d.ts +4484 -0
  165. package/types/components/zd-menu/ZdMenuButton.ts.d.ts +1142 -0
  166. package/types/components/zd-menu/ZdMenuGroup.ts.d.ts +6286 -0
  167. package/types/components/zd-menu/ZdMenuLink.ts.d.ts +10437 -0
  168. package/types/components/zd-menu/ZdMenuSeparator.ts.d.ts +600 -0
  169. package/types/components/zd-modal/ZdModal.ts.d.ts +10 -0
  170. package/types/components/zd-modal/ZdModalCloseButton.ts.d.ts +1137 -0
  171. package/types/components/zd-month/ZdMonth.d.ts +5 -6
  172. package/types/components/zd-month/ZdMonth.ts.d.ts +2217 -0
  173. package/types/components/zd-number-input/ZdNumberInput.ts.d.ts +2021 -0
  174. package/types/components/zd-password/ZdPassword.ts.d.ts +2014 -0
  175. package/types/components/zd-progress/ZdProgress.ts.d.ts +859 -0
  176. package/types/components/zd-radio/ZdRadio.ts.d.ts +682 -0
  177. package/types/components/zd-row/ZdRow.ts.d.ts +734 -0
  178. package/types/components/zd-select/ZdSelect.ts.d.ts +313 -0
  179. package/types/components/zd-select-multiple/ZdSelectMultiple.ts.d.ts +333 -0
  180. package/types/components/zd-svg-map/ZdSvgMap.ts.d.ts +414 -0
  181. package/types/components/zd-switch/ZdSwitch.ts.d.ts +1918 -0
  182. package/types/components/zd-table/ZdTable.ts.d.ts +1092 -0
  183. package/types/components/zd-tabs/ZdTab.d.ts +0 -9
  184. package/types/components/zd-tabs/ZdTab.ts.d.ts +674 -0
  185. package/types/components/zd-tabs/ZdTabItem.ts.d.ts +268 -0
  186. package/types/components/zd-tabs/ZdTabs.ts.d.ts +929 -0
  187. package/types/components/zd-tag/ZdTag.ts.d.ts +613 -0
  188. package/types/components/zd-text/ZdText.d.ts +46 -37
  189. package/types/components/zd-text/ZdText.ts.d.ts +670 -0
  190. package/types/components/zd-text-input/ZdTextInput.ts.d.ts +746 -0
  191. package/types/components/zd-textarea/ZdTextarea.ts.d.ts +877 -0
  192. package/types/components/zd-time/ZdTime.ts.d.ts +2224 -0
  193. package/types/components/zd-tooltip/ZdTooltip.ts.d.ts +781 -0
  194. package/types/components/zd-tree/ZdTree.ts.d.ts +1878 -0
  195. package/types/components/zd-tree/ZdTreeAfterTitle.ts.d.ts +26 -0
  196. package/types/components/zd-tree/ZdTreeCheckbox.ts.d.ts +74 -0
  197. package/types/components/zd-tree-grid/ZdTreeGrid.ts.d.ts +4178 -0
  198. package/types/components/zd-tree-grid/cell/ZdTreeGridCell.ts.d.ts +92 -0
  199. package/types/components/zd-tree-grid/row/ZdTreeGridRow.ts.d.ts +124 -0
  200. package/types/composables/index.d.ts +2 -0
  201. package/types/composables/useDateKeydown.d.ts +3 -0
  202. package/types/composables/usePickerValue.d.ts +10 -0
  203. package/types/composables/useTableLayout.d.ts +25 -0
  204. package/types/utils/isArrayOperation.d.ts +2 -0
  205. package/vite.config.browser.ts +53 -0
  206. package/vite.config.lib.ts +42 -0
  207. package/.package.json +0 -54
  208. package/dist/components/index.js +0 -275
  209. package/dist/components/tooltip-overflow/ZdTooltipOverflow.js +0 -56
  210. package/dist/components/zd-activator-wrapper/ZdActivatorWrapper.js +0 -33
  211. package/dist/components/zd-alert/ZdAlert.js +0 -112
  212. package/dist/components/zd-badge/ZdBadge.js +0 -28
  213. package/dist/components/zd-breadcrumbs/ZdBreadcrumbs.js +0 -55
  214. package/dist/components/zd-button/ZdButton.js +0 -230
  215. package/dist/components/zd-button-group/ZdButtonGroup.js +0 -110
  216. package/dist/components/zd-card/ZdCard.js +0 -132
  217. package/dist/components/zd-carousel/ZdCarousel.js +0 -242
  218. package/dist/components/zd-checkbox/ZdCheckbox.js +0 -35
  219. package/dist/components/zd-checkbox-multiple/ZdCheckboxMultiple.js +0 -62
  220. package/dist/components/zd-chip/ZdChip.js +0 -94
  221. package/dist/components/zd-code-viewer/ZdCodeViewer.js +0 -55
  222. package/dist/components/zd-code-viewer/prism.js +0 -14
  223. package/dist/components/zd-col/ZdCol.js +0 -45
  224. package/dist/components/zd-collapse-card/ZdCollapseCard.js +0 -85
  225. package/dist/components/zd-component/ZdComponent.js +0 -259
  226. package/dist/components/zd-component/ZdComponentRender.js +0 -14
  227. package/dist/components/zd-container/ZdContainer.js +0 -42
  228. package/dist/components/zd-currency/ZdCurrency.js +0 -24
  229. package/dist/components/zd-date-input/ZdDateInput.js +0 -247
  230. package/dist/components/zd-date-range/ZdDateRange.js +0 -251
  231. package/dist/components/zd-dialog/ZdDialog.js +0 -34
  232. package/dist/components/zd-divider/ZdDivider.js +0 -28
  233. package/dist/components/zd-dropdown/ZdDropdown.js +0 -93
  234. package/dist/components/zd-footer/ZdFooter.js +0 -77
  235. package/dist/components/zd-form/ZdForm.js +0 -85
  236. package/dist/components/zd-frame/ZdFrame.js +0 -76
  237. package/dist/components/zd-frame-page/ZdFramePage.js +0 -21
  238. package/dist/components/zd-grid/ZdGrid.js +0 -284
  239. package/dist/components/zd-grid/cell/ZdGridAction.js +0 -12
  240. package/dist/components/zd-grid/cell/ZdGridCell.js +0 -59
  241. package/dist/components/zd-grid/cell/ZdGridCellContent.js +0 -59
  242. package/dist/components/zd-grid/cell/ZdGridCheckbox.js +0 -38
  243. package/dist/components/zd-grid/column-header/ZdGridColumnHeader.js +0 -70
  244. package/dist/components/zd-grid/column-header/ZdGridHeaderIcon.js +0 -31
  245. package/dist/components/zd-grid/column-header/ZdGridHeaderRow.js +0 -102
  246. package/dist/components/zd-grid/column-header/ZdGridSort.js +0 -32
  247. package/dist/components/zd-grid/composables/grid-instance.js +0 -12
  248. package/dist/components/zd-grid/footer/ZdGridFooter.js +0 -16
  249. package/dist/components/zd-grid/helper/ZdGridHelper.js +0 -12
  250. package/dist/components/zd-grid/row/TableRow.js +0 -25
  251. package/dist/components/zd-grid/row/ZdGridRow.js +0 -70
  252. package/dist/components/zd-grid/toolbar/ZdGridToolbar.js +0 -15
  253. package/dist/components/zd-grid-editable/ZdGridEditable.js +0 -174
  254. package/dist/components/zd-grid-editable/cell/ZdGridEditableCell.js +0 -135
  255. package/dist/components/zd-grid-editable/row/ZdGridEditableRow.js +0 -99
  256. package/dist/components/zd-header/ZdHeader.js +0 -111
  257. package/dist/components/zd-icon/ZdIcon.js +0 -63
  258. package/dist/components/zd-image/ZdImage.js +0 -48
  259. package/dist/components/zd-increment/ZdIncrement.js +0 -38
  260. package/dist/components/zd-input/ZdInput.js +0 -164
  261. package/dist/components/zd-iterable/ZdIterable.js +0 -38
  262. package/dist/components/zd-iterable/ZdIterableNoData.js +0 -20
  263. package/dist/components/zd-iterable/zd-iterable-columns-button/ZdIterableColumnsButton.js +0 -50
  264. package/dist/components/zd-iterable/zd-iterable-page-info/ZdIterablePageInfo.js +0 -21
  265. package/dist/components/zd-iterable/zd-iterable-page-size/ZdIterablePageSize.js +0 -55
  266. package/dist/components/zd-iterable/zd-iterable-pagination/ZdIterablePagination.js +0 -36
  267. package/dist/components/zd-iterable/zd-search/ZdSearch.js +0 -42
  268. package/dist/components/zd-iterable-component-render/ZdIterableComponentRender.js +0 -108
  269. package/dist/components/zd-layout/ZdLayout.js +0 -41
  270. package/dist/components/zd-list/ZdList.js +0 -84
  271. package/dist/components/zd-list/ZdListGroup.js +0 -38
  272. package/dist/components/zd-list/ZdListItem.js +0 -66
  273. package/dist/components/zd-loading/ZdLoading.js +0 -61
  274. package/dist/components/zd-login/ZdLogin.js +0 -68
  275. package/dist/components/zd-login/ZdLoginButton.js +0 -28
  276. package/dist/components/zd-main/ZdMain.js +0 -33
  277. package/dist/components/zd-master-detail/ZdMasterDetail.js +0 -48
  278. package/dist/components/zd-menu/ZdMenu.js +0 -302
  279. package/dist/components/zd-menu/ZdMenuButton.js +0 -42
  280. package/dist/components/zd-menu/ZdMenuGroup.js +0 -66
  281. package/dist/components/zd-menu/ZdMenuLink.js +0 -63
  282. package/dist/components/zd-menu/ZdMenuSeparator.js +0 -26
  283. package/dist/components/zd-modal/ZdModal.js +0 -123
  284. package/dist/components/zd-modal/ZdModalCloseButton.js +0 -36
  285. package/dist/components/zd-month/ZdMonth.js +0 -31
  286. package/dist/components/zd-number-input/ZdNumberInput.js +0 -84
  287. package/dist/components/zd-password/ZdPassword.js +0 -23
  288. package/dist/components/zd-progress/ZdProgress.js +0 -52
  289. package/dist/components/zd-radio/ZdRadio.js +0 -56
  290. package/dist/components/zd-row/ZdRow.js +0 -43
  291. package/dist/components/zd-select/ZdSelect.js +0 -191
  292. package/dist/components/zd-select-multiple/ZdSelectMultiple.js +0 -326
  293. package/dist/components/zd-svg-map/ZdSvgMap.js +0 -211
  294. package/dist/components/zd-switch/ZdSwitch.js +0 -39
  295. package/dist/components/zd-table/ZdTable.js +0 -42
  296. package/dist/components/zd-tabs/ZdTab.js +0 -92
  297. package/dist/components/zd-tabs/ZdTabItem.js +0 -17
  298. package/dist/components/zd-tabs/ZdTabs.js +0 -84
  299. package/dist/components/zd-tag/ZdTag.js +0 -34
  300. package/dist/components/zd-text/ZdText.js +0 -35
  301. package/dist/components/zd-text-input/ZdTextInput.js +0 -174
  302. package/dist/components/zd-textarea/ZdTextarea.js +0 -76
  303. package/dist/components/zd-time/ZdTime.js +0 -159
  304. package/dist/components/zd-toggleable/ZdToggleable.js +0 -13
  305. package/dist/components/zd-tooltip/ZdTooltip.js +0 -92
  306. package/dist/components/zd-tree/ZdTree.js +0 -315
  307. package/dist/components/zd-tree/ZdTreeAfterTitle.js +0 -17
  308. package/dist/components/zd-tree/ZdTreeCheckbox.js +0 -97
  309. package/dist/components/zd-tree-grid/ZdTreeGrid.js +0 -101
  310. package/dist/components/zd-tree-grid/cell/ZdTreeGridCell.js +0 -81
  311. package/dist/components/zd-tree-grid/row/ZdTreeGridRow.js +0 -85
  312. package/dist/composables/cellSelection.js +0 -37
  313. package/dist/composables/columnDrag.js +0 -82
  314. package/dist/composables/columnResize.js +0 -115
  315. package/dist/composables/density.js +0 -13
  316. package/dist/composables/doubleClick.js +0 -32
  317. package/dist/composables/fixedColumns.js +0 -106
  318. package/dist/composables/gridColorVars.js +0 -30
  319. package/dist/composables/gridColumns.js +0 -87
  320. package/dist/composables/gridSelection.js +0 -91
  321. package/dist/composables/gridSorting.js +0 -19
  322. package/dist/composables/hasSlot.js +0 -25
  323. package/dist/composables/index.js +0 -16
  324. package/dist/composables/maska.js +0 -36
  325. package/dist/composables/tableNavigation.js +0 -126
  326. package/dist/composables/useIsMobile.js +0 -8
  327. package/dist/composables/virtualScroll.js +0 -92
  328. package/dist/composables/watchUrl.js +0 -14
  329. package/dist/errors/index.js +0 -3
  330. package/dist/errors/not-provided.js +0 -11
  331. package/dist/errors/row-not-found.js +0 -9
  332. package/dist/errors/zeedhi-error.js +0 -8
  333. package/dist/index.js +0 -49
  334. package/dist/propsMixins/heightProps.js +0 -17
  335. package/dist/propsMixins/index.js +0 -3
  336. package/dist/propsMixins/interfaces.js +0 -1
  337. package/dist/propsMixins/widthProps.js +0 -13
  338. package/dist/utils/buildProps.js +0 -3
  339. package/dist/utils/fillHeight.js +0 -18
  340. package/dist/utils/icons/icons.js +0 -28
  341. package/dist/utils/index.js +0 -6
  342. package/dist/utils/logger/logger.js +0 -7
  343. package/dist/utils/mergeDictionaries.js +0 -22
  344. package/dist/utils/plugins/formatSizePlugin.js +0 -6
  345. package/dist/utils/plugins/getIconPlugin.js +0 -11
  346. package/dist/utils/plugins/index.js +0 -4
  347. package/dist/utils/plugins/styleObjectPlugin.js +0 -13
  348. package/dist/zd-vuetify.js +0 -59211
@@ -1,46 +1,42 @@
1
1
  <template>
2
- <span
3
- :id="instance.name"
4
- >
5
- <v-switch
6
- ref="root"
7
- v-show="instance.isVisible"
8
- v-model="instance.displayValue"
9
- validate-on="blur"
10
- :name="instance.name"
11
- :color="instance.color"
12
- :inset="instance.inset"
13
- :class="[
14
- instance.cssClass,
15
- 'zd-switch',
16
- {
17
- 'zd-no-helper': !instance.showHelper,
18
- 'zd-no-label': !instance.showLabel,
19
- 'zd-input-required': instance.validations.required,
20
- },
21
- ]"
22
- :style="{
23
- ...$styleObject(instance.cssStyle),
24
- }"
25
- :tabindex="instance.tabStop ? '' : '-1'"
26
- @click="click($event)"
27
- @mouseenter="mouseenter($event)"
28
- @mouseleave="mouseleave($event)"
29
- @focus="focus($event)"
30
- @blur="blur($event)"
31
- @update:model-value="switchChange($event)"
32
- v-bind="{
33
- theme: instance.theme,
34
- disabled: instance.disabled,
35
- label: instance.showLabel ? $t(instance.label) : undefined,
36
- readonly: instance.readonly,
37
- falseValue: instance.falseValue,
38
- trueValue: instance.trueValue,
39
- density: 'compact',
40
- hideDetails: true
2
+ <v-switch
3
+ ref="root"
4
+ v-show="instance.isVisible"
5
+ v-model="instance.displayValue"
6
+ validate-on="blur"
7
+ :name="instance.name"
8
+ :color="instance.color"
9
+ :inset="instance.inset"
10
+ :class="[
11
+ instance.cssClass,
12
+ 'zd-switch',
13
+ {
14
+ 'zd-no-helper': !instance.showHelper,
15
+ 'zd-no-label': !instance.showLabel,
16
+ 'zd-input-required': instance.validations.required,
17
+ },
18
+ ]"
19
+ :style="{
20
+ ...$styleObject(instance.cssStyle),
41
21
  }"
42
- ></v-switch>
43
- </span>
22
+ :tabindex="instance.tabStop ? '' : '-1'"
23
+ @click="click($event)"
24
+ @mouseenter="mouseenter($event)"
25
+ @mouseleave="mouseleave($event)"
26
+ @focus="focus($event)"
27
+ @blur="blur($event)"
28
+ @update:model-value="switchChange($event)"
29
+ v-bind="{
30
+ theme: instance.theme,
31
+ disabled: instance.disabled,
32
+ label: instance.showLabel ? $t(instance.label) : undefined,
33
+ readonly: instance.readonly,
34
+ falseValue: instance.falseValue,
35
+ trueValue: instance.trueValue,
36
+ density: 'compact',
37
+ hideDetails: true
38
+ }"
39
+ ></v-switch>
44
40
  </template>
45
41
  <script lang="ts" src="./ZdSwitch.ts"></script>
46
42
 
@@ -49,6 +45,10 @@
49
45
  margin: 0;
50
46
  padding: 3px 0 0 8px;
51
47
 
48
+ &.v-input {
49
+ height: fit-content;
50
+ }
51
+
52
52
  .v-label {
53
53
  font-weight: var(--zd-font-body1-weight);
54
54
  color: var(--zd-font-color);
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div
3
+ ref="root"
3
4
  class="zd-table-container"
4
5
  :style="{
5
6
  height: $formatSize(instance.height),
@@ -12,9 +12,6 @@ export const ZdTabProps = buildProps({
12
12
  type: [Boolean, String],
13
13
  default: false,
14
14
  },
15
- index: {
16
- type: [Number, String],
17
- },
18
15
  tabTitle: {
19
16
  type: [String],
20
17
  },
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <v-tab
3
3
  :id="instance.name"
4
+ ref="root"
4
5
  v-show="instance.isVisible"
5
6
  :class="['zd-tabs-tab', instance.cssClass]"
6
7
  :style="$styleObject(instance.cssStyle)"
7
8
  :name="instance.tabName"
8
- :key="instance.index"
9
9
  :disabled="instance.disabled"
10
10
  :theme="instance.theme"
11
11
  :color="instance.color"
@@ -29,7 +29,7 @@
29
29
 
30
30
  <script lang="ts" src="./ZdTab.ts"></script>
31
31
 
32
- <style lang="scss" scoped>
32
+ <style lang="scss">
33
33
  .zd-tabs {
34
34
  &-tab,
35
35
  &-tab:before {
@@ -1,25 +1,26 @@
1
1
  <template>
2
- <v-window-item
2
+ <v-tabs-window-item
3
3
  class="zd-tabs-tab-item"
4
4
  v-show="isVisible"
5
5
  :value="index"
6
6
  >
7
7
  <v-container fluid>
8
- <component
9
- v-for="(child, index) in children"
10
- v-bind="child"
11
- :key="index"
12
- :is="child.component"
13
- >
14
- </component>
15
- <slot></slot>
8
+ <slot>
9
+ <component
10
+ v-for="(child) in children"
11
+ v-bind="child"
12
+ :key="child.name"
13
+ :is="child.component"
14
+ >
15
+ </component>
16
+ </slot>
16
17
  </v-container>
17
- </v-window-item>
18
+ </v-tabs-window-item>
18
19
  </template>
19
20
 
20
21
  <script lang="ts" src="./ZdTabItem.ts"></script>
21
22
 
22
- <style lang="scss" scoped>
23
+ <style lang="scss">
23
24
  .zd-tabs {
24
25
  &-tab-item {
25
26
  transition: none;
@@ -25,28 +25,12 @@
25
25
  :max="instance.max"
26
26
  >
27
27
  <zd-tab
28
- v-for="(tab, index) in instance.tabs " :key="index"
28
+ v-for="(tab, index) in instance.tabs " :key="tab.name"
29
29
  v-bind="{
30
- key: index,
31
- name: instance.name+'-tab-'+index,
32
- disabled: tab.disabled,
33
- cssClass: tab.cssClass,
34
- cssStyle: tab.cssStyle,
30
+ ...tab,
31
+ name: tab.name,
35
32
  tabName: tab.name,
36
- index: index,
37
- isVisible: tab.isVisible,
38
- tabTitle: tab.tabTitle,
39
- theme: tab.theme,
40
- color: tab.color,
41
33
  dense: tab.dense || instance.dense,
42
- direction: tab.direction,
43
- fixed: tab.fixed,
44
- iconName: tab.iconName,
45
- rounded: tab.rounded,
46
- selectedClass: tab.selectedClass,
47
- value: tab.value,
48
- variant:tab.variant,
49
- width: tab.width,
50
34
  }"
51
35
  @click="clickTab($event, index)"
52
36
  @keydown="keydown($event, index)"
@@ -60,7 +44,7 @@
60
44
  <zd-tab-item
61
45
  v-for="(tab, index) in instance.tabs"
62
46
  v-show="tab.isVisible && index === instance.activeTab"
63
- :key="index"
47
+ :key="tab.name"
64
48
  :value="index"
65
49
  :children ="tab.children"
66
50
  v-bind ="{
@@ -77,7 +61,7 @@
77
61
 
78
62
  <script lang="ts" src="./ZdTabs.ts"></script>
79
63
 
80
- <style lang="scss" scoped>
64
+ <style lang="scss">
81
65
  .zd-tabs {
82
66
  display: flex;
83
67
  flex-direction: column;
@@ -1,10 +1,11 @@
1
1
  import { Text } from '@zeedhi/common';
2
2
  import { defineComponent } from 'vue';
3
3
  import { buildProps } from '../../utils';
4
- import { ZdComponentProps, useCreateInstance, useGetMethods } from '../zd-component/ZdComponent';
4
+ import { useCreateInstance, useGetMethods } from '../zd-component/ZdComponent';
5
+ import { ZdComponentRenderProps } from '../zd-component/ZdComponentRender';
5
6
 
6
7
  export const ZdTextProps = buildProps({
7
- ...ZdComponentProps,
8
+ ...ZdComponentRenderProps,
8
9
  compile: {
9
10
  type: [Boolean, String],
10
11
  default: false,
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  :id="instance.name"
4
+ ref="root"
4
5
  class="zd-time"
5
6
  >
6
7
  <component
@@ -15,8 +15,8 @@
15
15
  >
16
16
  <template v-slot:activator="{ props }">
17
17
  <zd-activator-wrapper
18
- v-for="(child, index) in instance.children"
19
- :key="index"
18
+ v-for="(child) in instance.children"
19
+ :key="child.name"
20
20
  v-bind="mergeProps(props, $attrs)"
21
21
  :child-props="child"
22
22
  :parent="instance.parent"
@@ -2,6 +2,7 @@
2
2
  <div
3
3
  :id="instance.name"
4
4
  v-show="instance.isVisible"
5
+ ref="root"
5
6
  :class="[
6
7
  instance.cssClass, 'zd-tree',
7
8
  theme,
@@ -21,8 +22,8 @@
21
22
  >
22
23
  <div v-if="instance.toolbarSlot.length && !$slots.toolbarSlot" class="zd-mb-4 zd-tree-toolbar">
23
24
  <component
24
- v-for="(child, index) in instance.toolbarSlot"
25
- :key="index"
25
+ v-for="(child) in instance.toolbarSlot"
26
+ :key="child.name"
26
27
  :is="child.component"
27
28
  :parent="instance"
28
29
  v-bind="child"
@@ -85,12 +86,12 @@
85
86
  </span>
86
87
  <span v-else class='zd-display-inline-flex'>
87
88
  <component
88
- v-for="(comp, index) in instance.getSlotComponent(instance.titleSlot, node)"
89
+ v-for="(comp) in instance.getSlotComponent(instance.titleSlot, node)"
89
90
  :class="[
90
91
  'item-title',
91
92
  { 'has-children': node.children.length }
92
93
  ]"
93
- :key="index"
94
+ :key="comp.name"
94
95
  :is="comp.component"
95
96
  v-bind="comp"
96
97
  />
@@ -117,7 +118,7 @@
117
118
  <script lang="ts" src="./ZdTree.ts"></script>
118
119
 
119
120
  <style lang="scss">
120
- @import 'sl-vue-tree-next/sl-vue-tree-next-minimal.css';
121
+ @use 'sl-vue-tree-next/sl-vue-tree-next-minimal.css';
121
122
 
122
123
  .zd-tree {
123
124
  color: var(--zd-font-color);
@@ -13,4 +13,6 @@ export * from './maska';
13
13
  export * from './tableNavigation';
14
14
  export * from './virtualScroll';
15
15
  export * from './watchUrl';
16
+ export * from './usePickerValue';
16
17
  export * from './useIsMobile';
18
+ export * from './useDateKeydown';
@@ -0,0 +1,195 @@
1
+ import { DateInput, DateRange } from '@zeedhi/common';
2
+ import { Mask } from '@zeedhi/core';
3
+ import { UnwrapNestedRefs, computed, onMounted, ref } from 'vue';
4
+
5
+ const isPrintableKey = (key: string) => key.length === 1;
6
+ const keyAllowed = (key: string) =>
7
+ ['Tab', 'ArrowLeft', 'ArrowRight', 'Delete', 'Backspace'].includes(key);
8
+
9
+ export function useDateKeydown(
10
+ instance: UnwrapNestedRefs<DateRange | DateInput>,
11
+ ) {
12
+ const PLACEHOLDER_CHAR = ' ';
13
+
14
+ const hasPlaceholder = computed(() => placeholderLocations.value.length > 0);
15
+
16
+ const placeholderLocations = ref<number[]>([]);
17
+
18
+ const keydown = (event?: KeyboardEvent) => {
19
+ if (!event) return;
20
+
21
+ const inputEl = event.target as HTMLInputElement;
22
+ const { key } = event;
23
+ const { value, selectionEnd: end } = inputEl;
24
+
25
+ // We need 'start' to be mutable for the backspace loop,
26
+ // but we verify it is not null first.
27
+ let start = inputEl.selectionStart;
28
+
29
+ if (start === null || end === null) return;
30
+
31
+ // 1. VALIDATION GUARD CLAUSE
32
+ // Block invalid keys immediately.
33
+ const isNumber = /[0-9]/.test(key);
34
+ const isAllowedKey = keyAllowed(key);
35
+
36
+ if (!isNumber && !isAllowedKey) {
37
+ event.preventDefault();
38
+ return;
39
+ }
40
+
41
+ // Define logic states for readability
42
+ const isBackspace = key === 'Backspace';
43
+ const isDelete = key === 'Delete';
44
+ const isDeletionAction = isBackspace || isDelete;
45
+ const hasSelection = start !== end;
46
+ const isFullSelection = start === 0 && end === value.length;
47
+
48
+ // Logic: Skip delimiters backwards, clear the number slot, move cursor back.
49
+ if (isBackspace && !hasSelection && start > 0) {
50
+ event.preventDefault();
51
+
52
+ // Skip back over delimiters (e.g., hyphens)
53
+ while (Mask.isMaskDelimiter(value[start - 1]) && value[start - 1] !== PLACEHOLDER_CHAR) {
54
+ start -= 1;
55
+ }
56
+
57
+ // Replace char with placeholder (maintain mask structure)
58
+ const firstSlice = value.slice(0, start - 1);
59
+ const secondSlice = value.substring(start);
60
+ const placeholderLocation = firstSlice.length;
61
+ const newValue = `${firstSlice}${PLACEHOLDER_CHAR}${secondSlice}`;
62
+ inputEl.value = newValue;
63
+
64
+ // Move cursor back
65
+ inputEl.selectionStart = start - 1;
66
+ inputEl.selectionEnd = start - 1;
67
+
68
+ // Check if input is effectively empty
69
+ if (Mask.getValueWithoutMask(inputEl.value) === '') {
70
+ instance.displayValue = '';
71
+ placeholderLocations.value = [];
72
+ } else {
73
+ placeholderLocations.value.push(placeholderLocation);
74
+ }
75
+
76
+ return;
77
+ }
78
+
79
+ // FULL CLEAR (Select All + Delete/Backspace)
80
+ // Reset the entire display.
81
+ if (isDeletionAction && isFullSelection) {
82
+ event.preventDefault();
83
+ instance.displayValue = '';
84
+ placeholderLocations.value = [];
85
+ return;
86
+ }
87
+
88
+ // PARTIAL DELETION (Selection or 'Delete' key)
89
+ // Replace selected numbers with spaces (maintain mask structure).
90
+ if (isDeletionAction) {
91
+ event.preventDefault(); // Prevent text shifting
92
+
93
+ // Determine range: if no selection, 'Delete' key targets the next char
94
+ // (Note: The original code implies logic for 'Delete' with no selection covers this)
95
+ const indexesToReplace = findNumberIndices(value);
96
+ const indexesBetweenSelection = indexesToReplace.filter((index) => (index >= (start || 0) && index < end));
97
+ inputEl.value = replaceAt(value, indexesBetweenSelection);
98
+
99
+ inputEl.selectionStart = start;
100
+ inputEl.selectionEnd = start;
101
+
102
+ placeholderLocations.value.push(...indexesBetweenSelection);
103
+ return;
104
+ }
105
+
106
+ // TYPING / OVERWRITE (Default behavior for valid keys)
107
+ // Remove the character ahead of the cursor to simulate "Overwrite" mode,
108
+ // then let the browser insert the new key naturally.
109
+ if (!isPrintableKey(key) || Mask.isMaskDelimiter(key)) {
110
+ return;
111
+ }
112
+
113
+ // Skip forward over delimiters so we don't overwrite them
114
+ while (Mask.isMaskDelimiter(value[start]) && !placeholderLocations.value.includes(start)) {
115
+ start += 1;
116
+ }
117
+
118
+ // Prepare the string: Remove the char at the current cursor position
119
+ const firstSlice = value.substring(0, start);
120
+ const secondSlice = value.substring(start + 1);
121
+
122
+ const testValue = firstSlice + event.key + secondSlice;
123
+ const mask = instance.getMask();
124
+ // When there is still some placeholder in the string
125
+ // should manually add the new char, preventing maska processing
126
+ if (hasPlaceholder.value && !Mask.checkMask(testValue, mask)) {
127
+ event.preventDefault();
128
+
129
+ inputEl.value = testValue;
130
+
131
+ // Manually advance the cursor
132
+ const newCursorPos = start + 1;
133
+ inputEl.selectionStart = newCursorPos;
134
+ inputEl.selectionEnd = newCursorPos;
135
+ return;
136
+ }
137
+
138
+ placeholderLocations.value = [];
139
+
140
+ inputEl.value = firstSlice + secondSlice;
141
+
142
+ // Position cursor for the incoming key press
143
+ inputEl.selectionStart = start;
144
+ inputEl.selectionEnd = start;
145
+
146
+ // We cleared the slot, now we let the browser insert the pressed number key.
147
+ };
148
+
149
+ const findNumberIndices = (str: string) => {
150
+ const regex = /[0-9]/g;
151
+ const matches = [...str.matchAll(regex)];
152
+
153
+ return matches.filter(match => (match.index !== undefined)).map(match => (match.index!));
154
+ }
155
+
156
+ /**
157
+ * Replaces the characters at specified positions
158
+ * @param str String to be replaced
159
+ * @param indexes array of indexes where the characters will be replaced
160
+ * @returns resulting string
161
+ */
162
+ const replaceAt = (str: string, indexes: number[]) => {
163
+ return str.split('').map((char, i) => {
164
+ if (indexes.includes(i)) {
165
+ return PLACEHOLDER_CHAR;
166
+ }
167
+ return char;
168
+ }).join('');
169
+ }
170
+
171
+ onMounted(() => {
172
+ const keydownEvent = instance.events.keydown;
173
+ const keydownEvents = Array.isArray(keydownEvent)
174
+ ? keydownEvent
175
+ : [keydownEvent];
176
+
177
+ const handler = (payload: any) => {
178
+ const event = payload?.event || payload;
179
+ keydown(event);
180
+ };
181
+
182
+ const handlerExists = keydownEvents.some(
183
+ (existingHandler: any) =>
184
+ existingHandler &&
185
+ existingHandler.toString() === handler.toString()
186
+ );
187
+
188
+ if (!handlerExists) {
189
+ keydownEvents.push(handler);
190
+ }
191
+
192
+ const filtered = keydownEvents.filter(Boolean);
193
+ instance.events.keydown = filtered.length === 1 ? filtered[0] : filtered as any;
194
+ });
195
+ }
@@ -0,0 +1,22 @@
1
+ import { DateInput, DateRange } from '@zeedhi/common';
2
+ import { UnwrapNestedRefs, computed } from 'vue';
3
+
4
+ /**
5
+ * Composable to create a computed property to be used as a v-model for a date picker.
6
+ * It acts as a bridge between the date picker and the component's `getNativeDate` and `setNativeDate` methods.
7
+ * @param instance The instance of the date component (e.g., DateInput, DateRange).
8
+ */
9
+ export function usePickerValue(instance: UnwrapNestedRefs<DateInput | DateRange>) {
10
+ const pickerValue = computed({
11
+ get: () => {
12
+ return instance.getNativeDate();
13
+ },
14
+ set: (value: any) => {
15
+ instance.setNativeDate(value);
16
+ },
17
+ });
18
+
19
+ return {
20
+ pickerValue,
21
+ };
22
+ }
package/src/index.ts CHANGED
@@ -6,7 +6,6 @@ import { PrismEditor } from 'vue-prism-editor';
6
6
  import { DisplayBreakpoint, DisplayThresholds, IconOptions, createVuetify } from 'vuetify';
7
7
  import * as components from 'vuetify/components';
8
8
  import * as directives from 'vuetify/directives';
9
- import * as labs from 'vuetify/labs/components';
10
9
  import 'vuetify/styles';
11
10
  import { SlVueTreeNext } from 'sl-vue-tree-next';
12
11
  import { RegisterComponents } from './components';
@@ -29,7 +28,6 @@ const ZeedhiVuetify = {
29
28
  const vuetify = createVuetify({
30
29
  components: {
31
30
  ...components,
32
- ...labs,
33
31
  },
34
32
  directives,
35
33
  theme: initTheme(theme),
@@ -29,6 +29,8 @@
29
29
  }
30
30
 
31
31
  &.v-input {
32
+ height: fit-content;
33
+
32
34
  .v-input__control {
33
35
  >.v-field {
34
36
  .v-select__slot {
@@ -1,5 +1,5 @@
1
- @import 'moon-design-system';
2
- @import 'zd-input';
1
+ @use 'moon-design-system';
2
+ @use 'zd-input';
3
3
 
4
4
  * {
5
5
  letter-spacing: unset !important;
@@ -1,6 +1,8 @@
1
+ import { Config } from '@zeedhi/core';
2
+
1
3
  export class Logger {
2
4
  static warn(...args: any[]) {
3
- if (process.env.NODE_ENV === 'development') {
5
+ if (Config.mode === 'development') {
4
6
  console.warn('[Zeedhi Vue warn]:', ...args);
5
7
  }
6
8
  }
@@ -5,7 +5,7 @@ const mergeDictionaries = (dictArray: Record<string, any[]>[]): Result => {
5
5
 
6
6
  dictArray.forEach((dict) => {
7
7
  for (const key in dict) {
8
- if (Object.prototype.hasOwnProperty.call(dict, key)) {
8
+ if (Object.hasOwn(dict, key)) {
9
9
  // Initialize array if key doesn't exist
10
10
  if (!result[key]) {
11
11
  result[key] = [];
@@ -1,12 +1,29 @@
1
1
  import { Icons } from '@zeedhi/common';
2
- import camelcase from 'lodash.camelcase';
3
- import kebabcase from 'lodash.kebabcase';
4
2
 
5
3
  export default function getIconPlugin(name?: string) {
6
4
  if (!name) return '';
7
5
 
8
- const camelizedName = camelcase(name);
9
- const kebabName = kebabcase(name);
6
+ /**
7
+ * Converte uma string para kebab-case (ex: "HelloWorld" -> "hello-world")
8
+ */
9
+ const toKebabCase = (str: string) => {
10
+ return str
11
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)!
12
+ .map(x => x.toLowerCase())
13
+ .join('-');
14
+ };
15
+
16
+ /**
17
+ * Converte uma string para camelCase (ex: "hello-world" -> "helloWorld")
18
+ */
19
+ const toCamelCase = (str: string) => {
20
+ return str
21
+ .toLowerCase()
22
+ .replace(/[^a-zA-Z0-9]+(.)/g, (_m, chr) => chr.toUpperCase());
23
+ };
24
+
25
+ const camelizedName = toCamelCase(name);
26
+ const kebabName = toKebabCase(name);
10
27
  const icons = Icons.getIcons();
11
28
  return icons[kebabName] || icons[camelizedName] || name;
12
29
  }