vlite3 1.2.4 → 1.2.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 (55) hide show
  1. package/README.md +22 -8
  2. package/components/AvatarGroup/AvatarGroup.vue.js +10 -9
  3. package/components/Beacon.vue.d.ts +13 -0
  4. package/components/Button.vue.js +18 -18
  5. package/components/Chart/GanttChart.vue.d.ts +67 -0
  6. package/components/Chart/GanttChart.vue.js +7 -0
  7. package/components/Chart/GanttChart.vue2.js +911 -0
  8. package/components/Chart/SpeedometerChart.vue.d.ts +54 -0
  9. package/components/Chart/SpeedometerChart.vue.js +558 -0
  10. package/components/Chart/SpeedometerChart.vue2.js +4 -0
  11. package/components/Chart/index.d.ts +3 -1
  12. package/components/Chart/types.d.ts +106 -0
  13. package/components/ChoiceBox/ChoiceBox.vue.d.ts +46 -1
  14. package/components/ChoiceBox/ChoiceBox.vue.js +274 -91
  15. package/components/ChoiceBox/index.d.ts +1 -1
  16. package/components/{CopyButton.vue.d.ts → Clipboard.vue.d.ts} +4 -3
  17. package/components/{CopyButton.vue.js → Clipboard.vue.js} +19 -19
  18. package/components/Clipboard.vue2.js +4 -0
  19. package/components/ColorPicker/ColorPicker.vue.js +1 -1
  20. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  21. package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
  22. package/components/DataTable/DataTableHeader.vue.js +33 -30
  23. package/components/DataTable/types.d.ts +1 -1
  24. package/components/ImageComparison/ImageComparison.vue.d.ts +29 -0
  25. package/components/ImageComparison/ImageComparison.vue.js +126 -0
  26. package/components/ImageComparison/ImageComparison.vue2.js +4 -0
  27. package/components/ImageComparison/index.d.ts +1 -0
  28. package/components/ImportData/ImportData.vue.js +1 -1
  29. package/components/Modal.vue.js +1 -1
  30. package/components/Modal.vue2.js +92 -86
  31. package/components/NavbarCommandPalette.vue.js +1 -1
  32. package/components/OTPInput/OTPInput.vue.d.ts +18 -0
  33. package/components/OTPInput/OTPInput.vue.js +127 -82
  34. package/components/Persona.vue.d.ts +25 -0
  35. package/components/PricingPlan/PricingPlanItem.vue.js +19 -19
  36. package/components/Radio.vue.d.ts +41 -0
  37. package/components/Radio.vue.js +97 -0
  38. package/components/Radio.vue2.js +4 -0
  39. package/components/RadioGroup.vue.d.ts +38 -0
  40. package/components/RadioGroup.vue.js +37 -0
  41. package/components/RadioGroup.vue2.js +4 -0
  42. package/components/SidePanel.vue.js +1 -1
  43. package/components/SidePanel.vue2.js +45 -57
  44. package/components/SidebarMenu/SidebarMenuItem.vue.js +70 -74
  45. package/components/Slider.vue.d.ts +7 -0
  46. package/components/Slider.vue.js +194 -120
  47. package/components/ThemeToggle.vue.js +10 -10
  48. package/components/Timeline/Timeline.vue.d.ts +1 -1
  49. package/components/index.d.ts +3 -1
  50. package/index.d.ts +4 -1
  51. package/index.js +148 -138
  52. package/package.json +1 -1
  53. package/style.css +58 -40
  54. package/types/form.type.d.ts +23 -0
  55. package/components/CopyButton.vue2.js +0 -4
package/README.md CHANGED
@@ -1,6 +1,12 @@
1
- # vlite3
1
+ # Vlite3: The Foundation for Enterprise SaaS
2
2
 
3
- A lightweight Vue 3 UI component library built with Tailwind CSS, created for personal projects and available for anyone to use.
3
+ A clean, modular, and highly customizable component library for Vue 3. Build large, complex applications with confidence. Vlite3 gives you the solid, Vlite3 delivers 80+ production-ready components designed for real-world enterprise applications. Each component has been thoroughly tested in demanding enterprise production environments, ensuring stability, scalability, and performance.
4
+
5
+ Created for personal projects and available for anyone to use.
6
+
7
+ ## Demo
8
+
9
+ [Live Demo](https://vlite3.vercel.app/)
4
10
 
5
11
  ## Installation
6
12
 
@@ -14,10 +20,6 @@ yarn add vlite3
14
20
 
15
21
  ```
16
22
 
17
- ## Demo
18
-
19
- [Live Demo](https://vlite3.vercel.app/)
20
-
21
23
  ## 2. Tailwind CSS Setup (Tailwind v4)
22
24
 
23
25
  `vite.config.ts`
@@ -407,6 +409,8 @@ Follow these rules strictly to ensure visual consistency and predictable styling
407
409
  - [x] **Screen**
408
410
  - [x] **ChatInterface**
409
411
  - [x] **CommentThread**
412
+ - [x] **Clipboard**
413
+ - [x] **AppShell**
410
414
 
411
415
  ### Inputs & Forms
412
416
 
@@ -426,7 +430,7 @@ Follow these rules strictly to ensure visual consistency and predictable styling
426
430
  - [x] **AvatarUploader**
427
431
  - [x] **ThumbnailSelector**
428
432
  - [x] **IconPicker**
429
- - [x] **MultiSelect**
433
+ - [x] **RadioGroup**
430
434
  - [x] **Forms**
431
435
  - [x] **CustomFields**
432
436
  - [x] **GoogleLogin**
@@ -437,6 +441,7 @@ Follow these rules strictly to ensure visual consistency and predictable styling
437
441
  ### Data Display
438
442
 
439
443
  - [x] **Avatar**
444
+ - [x] **Persona**
440
445
  - [x] **Accordion**
441
446
  - [x] **Carousel**
442
447
  - [x] **DataTable**
@@ -456,16 +461,21 @@ Follow these rules strictly to ensure visual consistency and predictable styling
456
461
  - [x] **Invoice**
457
462
  - [x] **Footer**
458
463
  - [x] **Charts**
464
+ - [x] **GanttChart**
465
+ - [x] **ImageComparison**
459
466
 
460
467
  ### Feedback & Overlays
461
468
 
462
469
  - [x] **Alert**
470
+ - [x] **Beacon**
463
471
  - [x] **Modal**
464
472
  - [x] **Empty**
465
473
  - [x] **ConfirmationModal**
466
474
  - [x] **ToastNotification**
467
475
  - [x] **Tooltip**
468
476
  - [x] **Dropdown**
477
+ - [x] **MultiSelect**
478
+ - [x] **AsyncSelect**
469
479
  - [x] **ProgressBar**
470
480
  - [x] **Spinner**
471
481
  - [x] **CommandPalette**
@@ -485,7 +495,11 @@ Follow these rules strictly to ensure visual consistency and predictable styling
485
495
  - [0-setup.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/0-vlite3-setup.md)
486
496
  - [1-theming.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/1-theming.md)
487
497
  - [2-components.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/2-all-components.md)
488
- - [3-forms.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/components/Forms.md)
498
+ - [3-forms.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/1-Components/Forms.md)
489
499
  - [3-utility.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/3-utility.md)
490
500
  - [4-i18n.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/4-i18n.md)
491
501
  - [5-search-util.md](https://github.com/safdar-azeem/vlite3/blob/main/docs/5-search-util.md)
502
+
503
+ ## Author
504
+
505
+ [safdar-azeem](https://github.com/safdar-azeem)
@@ -1,7 +1,7 @@
1
- import { defineComponent as k, computed as u, openBlock as l, createElementBlock as s, normalizeClass as a, Fragment as z, renderList as b, createVNode as f, withCtx as x, createElementVNode as y, toDisplayString as r, createCommentVNode as o, normalizeStyle as C } from "vue";
2
- import p from "../Avatar.vue.js";
3
- import S from "../Tooltip.vue.js";
4
- const w = { class: "flex flex-col gap-0.5 text-left" }, N = {
1
+ import { defineComponent as k, computed as u, openBlock as l, createElementBlock as s, normalizeClass as a, Fragment as z, renderList as b, createVNode as f, withCtx as x, createElementVNode as p, toDisplayString as r, createCommentVNode as o, normalizeStyle as y } from "vue";
2
+ import C from "../Avatar.vue.js";
3
+ import w from "../Tooltip.vue.js";
4
+ const S = { class: "flex flex-col gap-0.5 text-left" }, N = {
5
5
  key: 0,
6
6
  class: "font-semibold text-sm text-tooltip-foreground"
7
7
  }, V = {
@@ -44,18 +44,19 @@ const w = { class: "flex flex-col gap-0.5 text-left" }, N = {
44
44
  key: c,
45
45
  class: a([c !== 0 ? m[e.overlap] : "", "relative shrink-0"])
46
46
  }, [
47
- f(S, {
47
+ f(w, {
48
48
  disabled: !t.heading && !t.text,
49
- placement: "top"
49
+ placement: "top",
50
+ contentClass: "min-w-[100px] px-10!"
50
51
  }, {
51
52
  content: x(() => [
52
- y("div", w, [
53
+ p("div", S, [
53
54
  t.heading ? (l(), s("span", N, r(t.heading), 1)) : o("", !0),
54
55
  t.text ? (l(), s("span", V, r(t.text), 1)) : o("", !0)
55
56
  ])
56
57
  ]),
57
58
  default: x(() => [
58
- f(p, {
59
+ f(C, {
59
60
  src: t.src,
60
61
  alt: t.alt,
61
62
  fallback: t.fallback,
@@ -76,7 +77,7 @@ const w = { class: "flex flex-col gap-0.5 text-left" }, N = {
76
77
  g,
77
78
  e.rounded === "full" ? "rounded-full" : e.rounded === "none" ? "rounded-none" : `rounded-${e.rounded}`
78
79
  ]),
79
- style: C({
80
+ style: y({
80
81
  // Match the same size as Avatar sizeClasses
81
82
  width: i[e.size],
82
83
  height: i[e.size],
@@ -0,0 +1,13 @@
1
+ export type BeaconVariant = 'primary' | 'danger' | 'warning' | 'success' | 'info';
2
+ export type BeaconSize = 'sm' | 'md' | 'lg';
3
+ interface Props {
4
+ variant?: BeaconVariant | string;
5
+ size?: BeaconSize | string;
6
+ class?: any;
7
+ }
8
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
9
+ class: any;
10
+ variant: BeaconVariant | string;
11
+ size: BeaconSize | string;
12
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLSpanElement>;
13
+ export default _default;
@@ -1,8 +1,8 @@
1
- import { defineComponent as z, computed as l, useSlots as k, withDirectives as $, openBlock as o, createElementBlock as g, normalizeClass as s, createBlock as d, createCommentVNode as h, renderSlot as m, createTextVNode as b, toDisplayString as f, unref as B } from "vue";
2
- import u from "./Icon.vue.js";
1
+ import { defineComponent as k, computed as l, useSlots as z, withDirectives as $, openBlock as o, createElementBlock as u, normalizeClass as s, createBlock as d, createCommentVNode as h, renderSlot as m, createTextVNode as b, toDisplayString as f, unref as B } from "vue";
2
+ import g from "./Icon.vue.js";
3
3
  import { vRipple as I } from "../directives/vRipple.js";
4
4
  import { $t as R } from "../utils/i18n.js";
5
- const S = ["type", "disabled", "data-testid"], T = /* @__PURE__ */ z({
5
+ const S = ["type", "disabled", "data-testid"], T = /* @__PURE__ */ k({
6
6
  __name: "Button",
7
7
  props: {
8
8
  variant: { default: "primary" },
@@ -22,21 +22,21 @@ const S = ["type", "disabled", "data-testid"], T = /* @__PURE__ */ z({
22
22
  asIcon: { type: Boolean }
23
23
  },
24
24
  setup(e) {
25
- const t = e, r = l(() => t.textI18n ? R(t.textI18n) : t.text), v = k(), i = l(
26
- () => t?.asIcon || t.icon && !r.value && !v.default
27
- ), x = l(() => {
25
+ const t = e, r = l(() => t.textI18n ? R(t.textI18n) : t.text), x = z(), i = l(
26
+ () => t?.asIcon || t.icon && !r.value && !x.default
27
+ ), v = l(() => {
28
28
  const n = `inline-flex items-center justify-center whitespace-nowrap text-sm font-medium disabled:pointer-events-none disabled:opacity-50 active:scale-[0.98] cursor-pointer gap-2 ${i.value ? "icon-only shrink-0" : ""}`, a = {
29
29
  primary: "bg-primary text-primary-foreground hover:bg-primary/90",
30
- "primary-light": "bg-primary-light text-primary-fg-light hover:bg-primary/20",
30
+ "primary-light": "bg-primary-light text-primary-fg-light hover:bg-primary/15",
31
31
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
32
- danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
33
- "danger-light": "bg-destructive/10 text-destructive hover:bg-destructive/20",
32
+ danger: "bg-danger text-danger-fg hover:bg-danger/90",
33
+ "danger-light": "bg-danger-light text-destructive hover:bg-danger/20 dark:hover:bg-danger/40",
34
34
  warning: "bg-warning text-warning-fg hover:bg-warning/80",
35
- "warning-light": "bg-warning-light text-warning-fg-light hover:bg-warning/20",
35
+ "warning-light": "bg-warning-light text-warning-fg-light hover:bg-warning/25",
36
36
  info: "bg-info text-info-fg hover:bg-info/80",
37
- "info-light": "bg-info-light text-info-fg-light hover:bg-info/20",
37
+ "info-light": "bg-info-light text-info-fg-light hover:bg-info/30",
38
38
  success: "bg-success text-success-fg hover:bg-success/80",
39
- "success-light": "bg-success-light text-success-fg-light hover:bg-success/20",
39
+ "success-light": "bg-success-light text-success-fg-light hover:bg-success/20 dark:hover:bg-success/35",
40
40
  outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground text-foreground",
41
41
  "outline-floating": "border px-3.5! border-input bg-transparent hover:bg-transparent text-foreground border-input active:scale-100!",
42
42
  "outline-primary": "border border-primary text-primary hover:bg-primary/10",
@@ -97,22 +97,22 @@ const S = ["type", "disabled", "data-testid"], T = /* @__PURE__ */ z({
97
97
  };
98
98
  return i.value ? a[t.size] : n[t.size];
99
99
  });
100
- return (n, a) => $((o(), g("button", {
100
+ return (n, a) => $((o(), u("button", {
101
101
  type: e.type,
102
- class: s([x.value, "cursor-pointer"]),
102
+ class: s([v.value, "cursor-pointer"]),
103
103
  disabled: e.disabled || e.loading,
104
104
  "data-testid": n.$attrs["data-testid"] || (r.value ? `btn-${r.value.toString().toLowerCase().replace(/[^a-z0-9]+/g, "-")}` : e.icon ? `btn-${e.icon.replace(/[^a-zA-Z0-9]+/g, "-")}` : "button")
105
105
  }, [
106
- e.loading ? (o(), d(u, {
106
+ e.loading ? (o(), d(g, {
107
107
  key: 0,
108
108
  icon: "lucide:loader-2",
109
109
  class: s(["animate-spin pointer-events-none", c.value])
110
- }, null, 8, ["class"])) : e.icon ? (o(), d(u, {
110
+ }, null, 8, ["class"])) : e.icon ? (o(), d(g, {
111
111
  key: 1,
112
112
  icon: e.icon,
113
113
  class: s(["pointer-events-none", [e.iconClass, c.value, i.value ? "mx-auto" : ""]])
114
114
  }, null, 8, ["icon", "class"])) : h("", !0),
115
- e.textClass ? (o(), g("span", {
115
+ e.textClass ? (o(), u("span", {
116
116
  key: 2,
117
117
  class: s(e.textClass)
118
118
  }, [
@@ -122,7 +122,7 @@ const S = ["type", "disabled", "data-testid"], T = /* @__PURE__ */ z({
122
122
  ], 2)) : m(n.$slots, "default", { key: 3 }, () => [
123
123
  b(f(r.value), 1)
124
124
  ]),
125
- e.iconRight && !e.loading ? (o(), d(u, {
125
+ e.iconRight && !e.loading ? (o(), d(g, {
126
126
  key: 4,
127
127
  icon: e.iconRight,
128
128
  class: s([[e.iconRightClass, c.value], "h-4 w-4 pointer-events-none"])
@@ -0,0 +1,67 @@
1
+ import { GanttTask, GanttViewMode } from './types';
2
+ export interface GanttChartProps {
3
+ tasks: GanttTask[];
4
+ viewMode?: GanttViewMode;
5
+ height?: number;
6
+ rowHeight?: number;
7
+ barRadius?: number;
8
+ barHeight?: number;
9
+ sidebarWidth?: number;
10
+ showGrid?: boolean;
11
+ showTooltip?: boolean;
12
+ showLabels?: boolean;
13
+ showProgress?: boolean;
14
+ showDependencies?: boolean;
15
+ showTodayLine?: boolean;
16
+ showHeader?: boolean;
17
+ animate?: boolean;
18
+ colors?: string[];
19
+ todayColor?: string;
20
+ locale?: string;
21
+ draggable?: boolean;
22
+ /** When moving a task, also shift all tasks that depend on it (recursively) */
23
+ cascadeDependencies?: boolean;
24
+ zoom?: boolean;
25
+ }
26
+ declare const _default: import('vue').DefineComponent<GanttChartProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
27
+ "task-click": (task: GanttTask) => any;
28
+ "task-hover": (task: GanttTask) => any;
29
+ "task-update": (task: GanttTask, changes: {
30
+ start: Date;
31
+ end: Date;
32
+ }) => any;
33
+ }, string, import('vue').PublicProps, Readonly<GanttChartProps> & Readonly<{
34
+ "onTask-click"?: (task: GanttTask) => any;
35
+ "onTask-hover"?: (task: GanttTask) => any;
36
+ "onTask-update"?: (task: GanttTask, changes: {
37
+ start: Date;
38
+ end: Date;
39
+ }) => any;
40
+ }>, {
41
+ animate: boolean;
42
+ height: number;
43
+ draggable: boolean;
44
+ showHeader: boolean;
45
+ colors: string[];
46
+ showLabels: boolean;
47
+ showTooltip: boolean;
48
+ showGrid: boolean;
49
+ barRadius: number;
50
+ rowHeight: number;
51
+ barHeight: number;
52
+ viewMode: GanttViewMode;
53
+ sidebarWidth: number;
54
+ showProgress: boolean;
55
+ showDependencies: boolean;
56
+ showTodayLine: boolean;
57
+ todayColor: string;
58
+ locale: string;
59
+ cascadeDependencies: boolean;
60
+ zoom: boolean;
61
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
62
+ containerRef: HTMLDivElement;
63
+ sidebarRef: HTMLDivElement;
64
+ timelineRef: HTMLDivElement;
65
+ dragLabelRef: SVGGElement;
66
+ }, HTMLDivElement>;
67
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import t from "./GanttChart.vue2.js";
2
+ /* empty css */
3
+ import o from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-91cc2885"]]);
5
+ export {
6
+ m as default
7
+ };