vlite3 0.4.4 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/components/Accordion/AccordionItem.vue.js +33 -32
  2. package/components/Accordion/types.d.ts +2 -0
  3. package/components/Alert.vue.d.ts +2 -0
  4. package/components/Alert.vue.js +38 -36
  5. package/components/AvatarUploader/AvatarUploader.vue.d.ts +1 -1
  6. package/components/AvatarUploader/AvatarUploader.vue.js +25 -24
  7. package/components/Button.vue.d.ts +1 -1
  8. package/components/Button.vue.js +37 -35
  9. package/components/CheckBox.vue.d.ts +1 -0
  10. package/components/CheckBox.vue.js +40 -40
  11. package/components/Chip/Chip.vue.js +55 -55
  12. package/components/Chip/types.d.ts +1 -0
  13. package/components/ChoiceBox/ChoiceBox.vue.d.ts +5 -0
  14. package/components/ChoiceBox/ChoiceBox.vue.js +61 -58
  15. package/components/ColorPicker/ColorPicker.vue.js +3 -2
  16. package/components/ConfirmationModal.vue.d.ts +4 -2
  17. package/components/ConfirmationModal.vue.js +48 -33
  18. package/components/DataList/DataList.vue.d.ts +0 -2
  19. package/components/DataList/DataList.vue.js +39 -35
  20. package/components/DataList/types.d.ts +2 -0
  21. package/components/DataTable/DataTable.vue.d.ts +0 -5
  22. package/components/DataTable/DataTable.vue.js +177 -158
  23. package/components/DataTable/DataTableHeader.vue.js +15 -14
  24. package/components/DataTable/DataTableToolbar.vue.d.ts +1 -1
  25. package/components/DataTable/DataTableToolbar.vue.js +30 -23
  26. package/components/DataTable/types.d.ts +4 -0
  27. package/components/DatePicker.vue.d.ts +1 -0
  28. package/components/DatePicker.vue.js +32 -25
  29. package/components/Dropdown/DropdownBooleanItem.vue.js +18 -17
  30. package/components/Dropdown/DropdownGroupedLayout.vue.js +28 -27
  31. package/components/Dropdown/DropdownItem.vue.js +24 -23
  32. package/components/Dropdown/DropdownMenu.vue.js +100 -91
  33. package/components/Dropdown/composables/useDropdownNavigation.js +24 -23
  34. package/components/Dropdown/composables/useDropdownSelection.js +19 -17
  35. package/components/Empty/Empty.vue.d.ts +2 -2
  36. package/components/Empty/Empty.vue.js +32 -18
  37. package/components/FilePicker/FilePicker.vue.d.ts +3 -1
  38. package/components/FilePicker/FilePicker.vue.js +140 -127
  39. package/components/FileTree/FileTree.vue.js +68 -58
  40. package/components/FileTree/FileTreeNode.vue.js +35 -34
  41. package/components/FileTree/types.d.ts +3 -0
  42. package/components/Form/CustomFields.vue.d.ts +3 -1
  43. package/components/Form/CustomFields.vue.js +2 -2
  44. package/components/Form/CustomFields.vue2.js +92 -80
  45. package/components/Form/Form.vue.d.ts +1 -1
  46. package/components/Form/FormField.vue.d.ts +1 -1
  47. package/components/Form/FormField.vue.js +60 -59
  48. package/components/Form/FormFields.vue.js +2 -2
  49. package/components/Form/FormFields.vue2.js +58 -57
  50. package/components/Form/composables/useForm.js +91 -88
  51. package/components/Form/types.d.ts +4 -0
  52. package/components/Form/utils/form.utils.js +104 -98
  53. package/components/GoogleLogin.vue.d.ts +1 -1
  54. package/components/GoogleLogin.vue.js +39 -32
  55. package/components/Heatmap/Heatmap.vue2.js +3 -2
  56. package/components/IconPicker.vue.d.ts +2 -0
  57. package/components/IconPicker.vue.js +37 -29
  58. package/components/Input.vue.d.ts +1 -1
  59. package/components/Input.vue.js +96 -98
  60. package/components/Kanban/KanbanBoard.vue.js +1 -1
  61. package/components/Kanban/KanbanBoard.vue2.js +55 -54
  62. package/components/Kanban/types.d.ts +1 -0
  63. package/components/Masonry/Masonry.vue2.js +3 -2
  64. package/components/Modal.vue.d.ts +2 -0
  65. package/components/Modal.vue.js +62 -57
  66. package/components/MultiSelect/MultiSelect.vue.d.ts +1 -1
  67. package/components/MultiSelect/MultiSelect.vue.js +61 -54
  68. package/components/Navbar/Navbar.vue.js +46 -46
  69. package/components/Pagination/Pagination.vue.js +116 -97
  70. package/components/PricingPlan/PricingPlanItem.vue.js +60 -47
  71. package/components/PricingPlan/types.d.ts +5 -0
  72. package/components/Screen/Screen.vue.d.ts +0 -4
  73. package/components/Screen/Screen.vue.js +231 -189
  74. package/components/Screen/ScreenFilter.vue.js +73 -63
  75. package/components/Screen/types.d.ts +5 -0
  76. package/components/SidePanel.vue.d.ts +2 -0
  77. package/components/SidePanel.vue.js +140 -5
  78. package/components/SidePanel.vue2.js +2 -135
  79. package/components/SidebarMenu/SidebarMenuItem.vue.js +131 -130
  80. package/components/SidebarMenu/types.d.ts +1 -0
  81. package/components/Slider.vue.d.ts +1 -0
  82. package/components/Slider.vue.js +71 -69
  83. package/components/Switch.vue.d.ts +1 -0
  84. package/components/Switch.vue.js +23 -18
  85. package/components/Tabes/Tabes.vue.js +20 -19
  86. package/components/Tabes/types.d.ts +1 -0
  87. package/components/Textarea.vue.d.ts +1 -0
  88. package/components/Textarea.vue.js +18 -16
  89. package/components/ThemeToggle.vue.js +24 -14
  90. package/components/Timeline.vue.js +68 -82
  91. package/components/ToastNotification.vue.js +2 -2
  92. package/components/Tooltip.vue.d.ts +4 -3
  93. package/components/Tooltip.vue.js +17 -15
  94. package/components/Workbook/Sheet.vue.js +80 -71
  95. package/components/Workbook/WorkbookAddButton.vue.js +14 -10
  96. package/components/Workbook/types.d.ts +1 -0
  97. package/core/config.d.ts +2 -0
  98. package/index.d.ts +1 -0
  99. package/index.js +28 -26
  100. package/package.json +1 -1
  101. package/style.css +1 -2
  102. package/types/button.d.ts +1 -0
  103. package/types/config.type.d.ts +10 -0
  104. package/types/form.type.d.ts +2 -0
  105. package/types/styles.d.ts +3 -0
  106. package/types/timeline.type.d.ts +2 -0
  107. package/utils/i18n.d.ts +8 -0
  108. package/utils/i18n.js +5 -0
  109. package/utils/index.d.ts +1 -0
package/index.js CHANGED
@@ -21,9 +21,9 @@ import { default as z } from "./components/DataTable/DataTableHeader.vue.js";
21
21
  import { default as V } from "./components/DataTable/DataTableRow.vue.js";
22
22
  import { default as W } from "./components/Dropdown/Dropdown.vue.js";
23
23
  import { default as _ } from "./components/Dropdown/DropdownMenu.vue.js";
24
- import { default as J } from "./components/Dropdown/DropdownTrigger.vue.js";
25
- import { default as X } from "./components/Dropdown/DropdownItem.vue.js";
26
- import { useDropdownSelection as $ } from "./components/Dropdown/composables/useDropdownSelection.js";
24
+ import { default as j } from "./components/Dropdown/DropdownTrigger.vue.js";
25
+ import { default as Q } from "./components/Dropdown/DropdownItem.vue.js";
26
+ import { useDropdownSelection as Z } from "./components/Dropdown/composables/useDropdownSelection.js";
27
27
  import { useDropdownIds as oe } from "./components/Dropdown/composables/useDropdownIds.js";
28
28
  import { default as te } from "./components/FilePicker/FilePicker.vue.js";
29
29
  import { default as fe } from "./components/FileTree/FileTree.vue.js";
@@ -48,9 +48,9 @@ import { default as ze } from "./components/Logo.vue.js";
48
48
  import { default as Ve } from "./components/Masonry/Masonry.vue.js";
49
49
  import { MASONRY_BREAKPOINTS as We } from "./components/Masonry/types.js";
50
50
  import { default as _e } from "./components/Modal.vue.js";
51
- import { default as Je } from "./components/MultiSelect/MultiSelect.vue.js";
52
- import { default as Xe } from "./components/Navbar/Navbar.vue.js";
53
- import { default as $e } from "./components/Navbar/NavbarItem.vue.js";
51
+ import { default as je } from "./components/MultiSelect/MultiSelect.vue.js";
52
+ import { default as Qe } from "./components/Navbar/Navbar.vue.js";
53
+ import { default as Ze } from "./components/Navbar/NavbarItem.vue.js";
54
54
  import { default as oo } from "./components/Navbar/NavbarGroup.vue.js";
55
55
  import { default as to } from "./components/OTPInput/OTPInput.vue.js";
56
56
  import { default as fo } from "./components/Pagination/Pagination.vue.js";
@@ -73,8 +73,8 @@ import { default as Go } from "./components/Workbook/Workbook.vue.js";
73
73
  import { default as Eo } from "./components/Workbook/Sheet.vue.js";
74
74
  import { default as Uo } from "./components/GoogleLogin.vue.js";
75
75
  import { default as Ho } from "./components/ProgressBar/ProgressBar.vue.js";
76
- import { configure as qo, pauseTimers as Wo, removeToast as Yo, resumeTimers as _o, showToast as jo, toast as Jo, useNotifications as Qo } from "./composables/useNotifications.js";
77
- import { useTheme as Zo } from "./composables/useTheme.js";
76
+ import { configure as qo, pauseTimers as Wo, removeToast as Yo, resumeTimers as _o, showToast as $o, toast as jo, useNotifications as Jo } from "./composables/useNotifications.js";
77
+ import { useTheme as Xo } from "./composables/useTheme.js";
78
78
  import { useAdvancedKeyStroke as er, useKeyStroke as or } from "./composables/useKeyStroke.js";
79
79
  import { vScrollReveal as tr } from "./directives/vScrollReveal.js";
80
80
  import { createVLite as fr } from "./core/index.js";
@@ -82,11 +82,13 @@ import { deepMerge as mr } from "./utils/object.js";
82
82
  import { camelCase as dr, capitalize as sr, copyToClipboard as ur, debounce as xr, delay as ir, downloadFile as nr, flattenArray as cr, formatCurrency as Tr, getUniqueId as gr, isAppleDevice as Sr, isEmpty as br, randomNumber as Ir, removeExtraProperties as Pr, slugify as Fr, throttle as hr, truncate as vr } from "./utils/functions.js";
83
83
  import { lazySearch as Cr, resetSearchIndex as Dr, search as wr } from "./utils/search.util.js";
84
84
  import { env as Nr } from "./utils/env.js";
85
- import { default as Br } from "./components/DataList/DataList.vue.js";
86
- import { default as Kr } from "./components/Screen/Screen.vue.js";
87
- import { default as Gr } from "./components/Screen/ScreenFilter.vue.js";
88
- import { useVLiteConfig as Er } from "./core/config.js";
85
+ import { $t as Br } from "./utils/i18n.js";
86
+ import { default as Kr } from "./components/DataList/DataList.vue.js";
87
+ import { default as Gr } from "./components/Screen/Screen.vue.js";
88
+ import { default as Er } from "./components/Screen/ScreenFilter.vue.js";
89
+ import { useVLiteConfig as Ur } from "./core/config.js";
89
90
  export {
91
+ Br as $t,
90
92
  f as Accordion,
91
93
  u as AccordionContent,
92
94
  m as AccordionItem,
@@ -104,15 +106,15 @@ export {
104
106
  M as ColorPicker,
105
107
  L as ConfirmationModal,
106
108
  ge as CustomFields,
107
- Br as DataList,
109
+ Kr as DataList,
108
110
  O as DataTable,
109
111
  z as DataTableHeader,
110
112
  V as DataTableRow,
111
113
  R as DatePicker,
112
114
  W as Dropdown,
113
- X as DropdownItem,
115
+ Q as DropdownItem,
114
116
  _ as DropdownMenu,
115
- J as DropdownTrigger,
117
+ j as DropdownTrigger,
116
118
  te as FilePicker,
117
119
  fe as FileTree,
118
120
  me as FileTreeNode,
@@ -132,18 +134,18 @@ export {
132
134
  We as MASONRY_BREAKPOINTS,
133
135
  Ve as Masonry,
134
136
  _e as Modal,
135
- Je as MultiSelect,
136
- Xe as Navbar,
137
+ je as MultiSelect,
138
+ Qe as Navbar,
137
139
  oo as NavbarGroup,
138
- $e as NavbarItem,
140
+ Ze as NavbarItem,
139
141
  Re as NumberInput,
140
142
  to as OTPInput,
141
143
  fo as Pagination,
142
144
  mo as PricingPlan,
143
145
  so as PricingPlanItem,
144
146
  Ho as ProgressBar,
145
- Kr as Screen,
146
- Gr as ScreenFilter,
147
+ Gr as Screen,
148
+ Er as ScreenFilter,
147
149
  Eo as Sheet,
148
150
  xo as SidePanel,
149
151
  no as SidebarMenu,
@@ -181,21 +183,21 @@ export {
181
183
  Dr as resetSearchIndex,
182
184
  _o as resumeTimers,
183
185
  wr as search,
184
- jo as showToast,
186
+ $o as showToast,
185
187
  Fr as slugify,
186
188
  hr as throttle,
187
- Jo as toast,
189
+ jo as toast,
188
190
  vr as truncate,
189
191
  er as useAdvancedKeyStroke,
190
192
  oe as useDropdownIds,
191
- $ as useDropdownSelection,
193
+ Z as useDropdownSelection,
192
194
  Pe as useFileUpload,
193
195
  be as useForm,
194
196
  Le as useKanbanBoard,
195
197
  or as useKeyStroke,
196
- Qo as useNotifications,
197
- Zo as useTheme,
198
+ Jo as useNotifications,
199
+ Xo as useTheme,
198
200
  de as useTreeSelection,
199
- Er as useVLiteConfig,
201
+ Ur as useVLiteConfig,
200
202
  tr as vScrollReveal
201
203
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "private": false,
4
4
  "description": "A Vue 3 UI component library built with Tailwind CSS.",
5
5
  "license": "MIT",
6
- "version": "0.4.4",
6
+ "version": "0.4.7",
7
7
  "type": "module",
8
8
  "main": "index.js",
9
9
  "module": "index.js",
package/style.css CHANGED
@@ -648,7 +648,6 @@ html {
648
648
  padding-right: 10px !important;
649
649
  }
650
650
 
651
-
652
651
  /* --- input.css --- */
653
652
  input[type='number']::-webkit-inner-spin-button,
654
653
  input[type='number']::-webkit-outer-spin-button {
@@ -713,5 +712,5 @@ textarea::-webkit-scrollbar-thumb {
713
712
  }
714
713
 
715
714
  /* --- Vite Generated CSS --- */
716
- .accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.button-group[data-v-ba735fac] button{align-self:stretch;height:auto!important;min-height:unset!important;min-width:unset!important;width:auto!important}.button-group[data-v-ba735fac]:not(.vertical-group) button{aspect-ratio:unset}.attached-group[data-v-ba735fac] button{position:relative;--radius: .375rem}.attached-group[data-v-ba735fac] button:focus-visible,.attached-group[data-v-ba735fac] button:hover{z-index:10}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-ba735fac]:not(.vertical-group) button:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);border-top-right-radius:0;border-bottom-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-bottom-left-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-ba735fac] button:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-ba735fac] button:last-child{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-top-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ba735fac] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.IroBox{border-radius:8px!important}input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}.custom-fields-table[data-v-ce6a94e8] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-ce6a94e8] input,.custom-fields-table[data-v-ce6a94e8] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-ce6a94e8] input,.custom-fields-table[data-v-ce6a94e8] textarea,.custom-fields-table[data-v-ce6a94e8] select,.custom-fields-table[data-v-ce6a94e8] .input-wrapper,.custom-fields-table[data-v-ce6a94e8] .tooltip-trigger button{border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;height:100%!important;min-height:40px}.custom-fields-table[data-v-ce6a94e8] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-ce6a94e8] input:focus,.custom-fields-table[data-v-ce6a94e8] textarea:focus,.custom-fields-table[data-v-ce6a94e8] select:focus,.custom-fields-table[data-v-ce6a94e8] .input-wrapper:focus-within{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important}.custom-fields-table[data-v-ce6a94e8] .w-full{width:100%;height:100%}.list-enter-active[data-v-ce6a94e8]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-ce6a94e8]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-47af145c]{display:flex;flex-direction:column}.form-field-item[data-v-47af145c]:has([role=switch]),.form-field-item[data-v-47af145c]:has([role=checkbox]){flex-direction:row;align-items:center}.form-container[data-v-a67bf34e]{width:100%}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.slide-right-enter-active[data-v-495f8aa0],.slide-right-leave-active[data-v-495f8aa0],.slide-left-enter-active[data-v-495f8aa0],.slide-left-leave-active[data-v-495f8aa0]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-495f8aa0],.slide-right-leave-to[data-v-495f8aa0]{transform:translate(100%)}.slide-left-enter-from[data-v-495f8aa0],.slide-left-leave-to[data-v-495f8aa0]{transform:translate(-100%)}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.first-toast-enter-active[data-v-6b631840]{animation:first-toast-in-6b631840 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-6b631840]{transition:all .25s ease-in}.first-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-6b631840{0%{opacity:var(--entrance-opacity, .6);transform:translateY(var(--entrance-offset, 25px)) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.stack-toast-enter-active[data-v-6b631840],.stack-toast-leave-active[data-v-6b631840]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-6b631840]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-6b631840]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}
715
+ .accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.button-group[data-v-ba735fac] button{align-self:stretch;height:auto!important;min-height:unset!important;min-width:unset!important;width:auto!important}.button-group[data-v-ba735fac]:not(.vertical-group) button{aspect-ratio:unset}.attached-group[data-v-ba735fac] button{position:relative;--radius: .375rem}.attached-group[data-v-ba735fac] button:focus-visible,.attached-group[data-v-ba735fac] button:hover{z-index:10}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-ba735fac]:not(.vertical-group) button:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);border-top-right-radius:0;border-bottom-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-bottom-left-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-ba735fac] button:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-ba735fac] button:last-child{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-top-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ba735fac] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.IroBox{border-radius:8px!important}input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}.custom-fields-table[data-v-2969f70d] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-2969f70d] input,.custom-fields-table[data-v-2969f70d] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-2969f70d] input,.custom-fields-table[data-v-2969f70d] textarea,.custom-fields-table[data-v-2969f70d] select,.custom-fields-table[data-v-2969f70d] .input-wrapper,.custom-fields-table[data-v-2969f70d] .tooltip-trigger button{border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;height:100%!important;min-height:40px}.custom-fields-table[data-v-2969f70d] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-2969f70d] input:focus,.custom-fields-table[data-v-2969f70d] textarea:focus,.custom-fields-table[data-v-2969f70d] select:focus,.custom-fields-table[data-v-2969f70d] .input-wrapper:focus-within{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important}.custom-fields-table[data-v-2969f70d] .w-full{width:100%;height:100%}.list-enter-active[data-v-2969f70d]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-2969f70d]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-f01b3b3b]{display:flex;flex-direction:column}.form-field-item[data-v-f01b3b3b]:has([role=switch]),.form-field-item[data-v-f01b3b3b]:has([role=checkbox]){flex-direction:row;align-items:center}.form-container[data-v-a67bf34e]{width:100%}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.first-toast-enter-active[data-v-dc3a3b49]{animation:first-toast-in-dc3a3b49 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-dc3a3b49]{transition:all .25s ease-in}.first-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-dc3a3b49{0%{opacity:var(--entrance-opacity, .6);transform:translateY(var(--entrance-offset, 25px)) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.stack-toast-enter-active[data-v-dc3a3b49],.stack-toast-leave-active[data-v-dc3a3b49]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-dc3a3b49]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-dc3a3b49]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}
717
716
 
package/types/button.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface ButtonProps {
11
11
  iconRight?: string;
12
12
  type?: 'button' | 'submit' | 'reset';
13
13
  text?: string;
14
+ textI18n?: string;
14
15
  rounded?: ButtonRounded;
15
16
  textClass?: string;
16
17
  iconClass?: string;
@@ -6,6 +6,11 @@ export type FileUploadHandler = (file: File | {
6
6
  file: File;
7
7
  fileName?: string;
8
8
  }, folderId?: string | null) => Promise<string | null | undefined>;
9
+ /**
10
+ * Interface for the i18n translation handler function.
11
+ * This allows users to pass their translation library (e.g. vue-i18n).
12
+ */
13
+ export type TranslationHandler = (key: string, ...args: any[]) => string;
9
14
  /**
10
15
  * Registry for global services.
11
16
  * Extend this interface when adding new global capabilities (e.g., auth, analytics).
@@ -16,6 +21,11 @@ export interface VLiteServices {
16
21
  * Used by useFileUpload composable.
17
22
  */
18
23
  upload?: FileUploadHandler;
24
+ /**
25
+ * Global translation function implementation.
26
+ * Used by components to support i18n.
27
+ */
28
+ t?: TranslationHandler;
19
29
  }
20
30
  /**
21
31
  * Main configuration object for the VLite plugin.
@@ -7,7 +7,9 @@ export interface InputProps {
7
7
  modelValue?: string | number;
8
8
  type?: InputType;
9
9
  label?: string;
10
+ labelI18n?: string;
10
11
  placeholder?: string;
12
+ placeholderI18n?: string;
11
13
  disabled?: boolean;
12
14
  loading?: boolean;
13
15
  error?: string;
package/types/styles.d.ts CHANGED
@@ -2,9 +2,12 @@ export type IVariants = 'danger' | 'primary' | 'default' | 'outline' | 'secondar
2
2
  export type ISize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
3
3
  export type IDropdownOption = {
4
4
  label: string;
5
+ labelI18n?: string;
5
6
  value?: any;
6
7
  subtitle?: string;
8
+ subtitleI18n?: string;
7
9
  description?: string;
10
+ descriptionI18n?: string;
8
11
  icon?: string;
9
12
  emoji?: string;
10
13
  disabled?: Boolean;
@@ -1,7 +1,9 @@
1
1
  export interface TimelineStep {
2
2
  id: string | number;
3
3
  title: string;
4
+ titleI18n?: string;
4
5
  description?: string;
6
+ descriptionI18n?: string;
5
7
  icon?: string;
6
8
  status?: 'completed' | 'current' | 'upcoming';
7
9
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Global translation function.
3
+ * Uses the globally registered translation handler (e.g., vue-i18n) if configured.
4
+ * Falls back to returning the key if no translation service is setup.
5
+ *
6
+ * This can be used safely inside or outside of Vue components.
7
+ */
8
+ export declare const $t: (key: string, ...args: any[]) => string;
package/utils/i18n.js ADDED
@@ -0,0 +1,5 @@
1
+ import { configState as r } from "../core/config.js";
2
+ const o = (t, ...e) => r?.services?.t ? r.services.t(t, ...e) : t;
3
+ export {
4
+ o as $t
5
+ };
package/utils/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './object';
2
2
  export * from './functions';
3
3
  export * from './search.util';
4
4
  export * from './env';
5
+ export * from './i18n';