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.
- package/README.md +22 -8
- package/components/AvatarGroup/AvatarGroup.vue.js +10 -9
- package/components/Beacon.vue.d.ts +13 -0
- package/components/Button.vue.js +18 -18
- package/components/Chart/GanttChart.vue.d.ts +67 -0
- package/components/Chart/GanttChart.vue.js +7 -0
- package/components/Chart/GanttChart.vue2.js +911 -0
- package/components/Chart/SpeedometerChart.vue.d.ts +54 -0
- package/components/Chart/SpeedometerChart.vue.js +558 -0
- package/components/Chart/SpeedometerChart.vue2.js +4 -0
- package/components/Chart/index.d.ts +3 -1
- package/components/Chart/types.d.ts +106 -0
- package/components/ChoiceBox/ChoiceBox.vue.d.ts +46 -1
- package/components/ChoiceBox/ChoiceBox.vue.js +274 -91
- package/components/ChoiceBox/index.d.ts +1 -1
- package/components/{CopyButton.vue.d.ts → Clipboard.vue.d.ts} +4 -3
- package/components/{CopyButton.vue.js → Clipboard.vue.js} +19 -19
- package/components/Clipboard.vue2.js +4 -0
- package/components/ColorPicker/ColorPicker.vue.js +1 -1
- package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
- package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
- package/components/DataTable/DataTableHeader.vue.js +33 -30
- package/components/DataTable/types.d.ts +1 -1
- package/components/ImageComparison/ImageComparison.vue.d.ts +29 -0
- package/components/ImageComparison/ImageComparison.vue.js +126 -0
- package/components/ImageComparison/ImageComparison.vue2.js +4 -0
- package/components/ImageComparison/index.d.ts +1 -0
- package/components/ImportData/ImportData.vue.js +1 -1
- package/components/Modal.vue.js +1 -1
- package/components/Modal.vue2.js +92 -86
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/OTPInput/OTPInput.vue.d.ts +18 -0
- package/components/OTPInput/OTPInput.vue.js +127 -82
- package/components/Persona.vue.d.ts +25 -0
- package/components/PricingPlan/PricingPlanItem.vue.js +19 -19
- package/components/Radio.vue.d.ts +41 -0
- package/components/Radio.vue.js +97 -0
- package/components/Radio.vue2.js +4 -0
- package/components/RadioGroup.vue.d.ts +38 -0
- package/components/RadioGroup.vue.js +37 -0
- package/components/RadioGroup.vue2.js +4 -0
- package/components/SidePanel.vue.js +1 -1
- package/components/SidePanel.vue2.js +45 -57
- package/components/SidebarMenu/SidebarMenuItem.vue.js +70 -74
- package/components/Slider.vue.d.ts +7 -0
- package/components/Slider.vue.js +194 -120
- package/components/ThemeToggle.vue.js +10 -10
- package/components/Timeline/Timeline.vue.d.ts +1 -1
- package/components/index.d.ts +3 -1
- package/index.d.ts +4 -1
- package/index.js +148 -138
- package/package.json +1 -1
- package/style.css +58 -40
- package/types/form.type.d.ts +23 -0
- package/components/CopyButton.vue2.js +0 -4
package/README.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Vlite3: The Foundation for Enterprise SaaS
|
|
2
2
|
|
|
3
|
-
A
|
|
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] **
|
|
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/
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
const
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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:
|
|
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;
|
package/components/Button.vue.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
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__ */
|
|
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),
|
|
26
|
-
() => t?.asIcon || t.icon && !r.value && !
|
|
27
|
-
),
|
|
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/
|
|
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-
|
|
33
|
-
"danger-light": "bg-
|
|
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/
|
|
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/
|
|
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(),
|
|
100
|
+
return (n, a) => $((o(), u("button", {
|
|
101
101
|
type: e.type,
|
|
102
|
-
class: s([
|
|
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(
|
|
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(
|
|
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(),
|
|
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(
|
|
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;
|