@midnight-owl/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/components/buttons/Button.vue.d.ts +44 -0
  4. package/dist/components/buttons/ButtonGroup.vue.d.ts +19 -0
  5. package/dist/components/data-display/Badge.vue.d.ts +34 -0
  6. package/dist/components/data-display/BubbleChat.vue.d.ts +52 -0
  7. package/dist/components/data-display/Image.vue.d.ts +56 -0
  8. package/dist/components/data-display/Pagination.vue.d.ts +60 -0
  9. package/dist/components/data-display/ProgressBar.vue.d.ts +34 -0
  10. package/dist/components/data-display/SkeletonLoader.vue.d.ts +14 -0
  11. package/dist/components/data-display/Table.vue.d.ts +182 -0
  12. package/dist/components/data-display/calendar/Calendar.vue.d.ts +116 -0
  13. package/dist/components/data-display/calendar/CalendarAgendaView.vue.d.ts +31 -0
  14. package/dist/components/data-display/calendar/CalendarEventDetails.vue.d.ts +23 -0
  15. package/dist/components/data-display/calendar/CalendarEventPill.vue.d.ts +39 -0
  16. package/dist/components/data-display/calendar/CalendarEventPopover.vue.d.ts +68 -0
  17. package/dist/components/data-display/calendar/CalendarMonthView.vue.d.ts +54 -0
  18. package/dist/components/data-display/calendar/CalendarTimeGridView.vue.d.ts +47 -0
  19. package/dist/components/data-display/calendar/CalendarYearView.vue.d.ts +17 -0
  20. package/dist/components/data-display/calendar/layout.d.ts +39 -0
  21. package/dist/components/data-display/calendar/providers/google.d.ts +16 -0
  22. package/dist/components/data-display/calendar/providers/ics.d.ts +23 -0
  23. package/dist/components/data-display/calendar/recurrence.d.ts +12 -0
  24. package/dist/components/data-display/calendar/types.d.ts +154 -0
  25. package/dist/components/data-display/calendar/tz.d.ts +17 -0
  26. package/dist/components/data-display/calendar/useCalendar.d.ts +75 -0
  27. package/dist/components/form-element/Autocomplete.vue.d.ts +78 -0
  28. package/dist/components/form-element/Checkbox.vue.d.ts +47 -0
  29. package/dist/components/form-element/DatePicker.vue.d.ts +75 -0
  30. package/dist/components/form-element/FileUpload.vue.d.ts +125 -0
  31. package/dist/components/form-element/InputGroup.vue.d.ts +26 -0
  32. package/dist/components/form-element/InputMask.vue.d.ts +43 -0
  33. package/dist/components/form-element/InputNumber.vue.d.ts +50 -0
  34. package/dist/components/form-element/InputOtp.vue.d.ts +44 -0
  35. package/dist/components/form-element/InputPassword.vue.d.ts +44 -0
  36. package/dist/components/form-element/InputText.vue.d.ts +42 -0
  37. package/dist/components/form-element/Radio.vue.d.ts +42 -0
  38. package/dist/components/form-element/TextEditor.vue.d.ts +44 -0
  39. package/dist/components/form-element/Textarea.vue.d.ts +46 -0
  40. package/dist/components/form-element/Toggle.vue.d.ts +25 -0
  41. package/dist/components/form-element/select/Select.vue.d.ts +168 -0
  42. package/dist/components/form-element/select/SelectOption.vue.d.ts +23 -0
  43. package/dist/components/form-element/text-editor-toolbar.d.ts +5 -0
  44. package/dist/components/panel/Breadcrumb.vue.d.ts +50 -0
  45. package/dist/components/panel/Card.vue.d.ts +28 -0
  46. package/dist/components/panel/Divider.vue.d.ts +28 -0
  47. package/dist/components/panel/DropDown.vue.d.ts +26 -0
  48. package/dist/components/panel/Modal.vue.d.ts +80 -0
  49. package/dist/components/panel/Popover.vue.d.ts +68 -0
  50. package/dist/components/panel/ScrollPanel.vue.d.ts +26 -0
  51. package/dist/components/panel/Stepper.vue.d.ts +179 -0
  52. package/dist/components/panel/Tabs.vue.d.ts +31 -0
  53. package/dist/components/panel/Toolbar.vue.d.ts +30 -0
  54. package/dist/components/panel/accordion/Accordion.vue.d.ts +31 -0
  55. package/dist/components/panel/accordion/AccordionPanel.vue.d.ts +35 -0
  56. package/dist/components/panel/toast/ToastErrorNode.vue.d.ts +10 -0
  57. package/dist/components/panel/toast/ToastItem.vue.d.ts +14 -0
  58. package/dist/components/panel/toast/ToastProvider.vue.d.ts +3 -0
  59. package/dist/components/panel/toast/errorTree.d.ts +12 -0
  60. package/dist/components/panel/toast/useToast.d.ts +164 -0
  61. package/dist/index.d.ts +60 -0
  62. package/dist/plugins/init-icons.d.ts +1 -0
  63. package/dist/plugins/init-theme.d.ts +4 -0
  64. package/dist/theme/presets.d.ts +75 -0
  65. package/dist/theme/remote.d.ts +2 -0
  66. package/dist/ui.css +3 -0
  67. package/dist/ui.es.js +29640 -0
  68. package/dist/ui.umd.js +234 -0
  69. package/package.json +82 -0
@@ -0,0 +1,179 @@
1
+ export interface StepItem {
2
+ label: string;
3
+ description?: string;
4
+ icon?: string;
5
+ error?: boolean;
6
+ disabled?: boolean;
7
+ optional?: boolean;
8
+ }
9
+ interface Props {
10
+ items: StepItem[];
11
+ modelValue?: number;
12
+ orientation?: 'horizontal' | 'vertical' | 'sidebar';
13
+ labelPosition?: 'right' | 'bottom';
14
+ variant?: 'solid' | 'soft' | 'outline';
15
+ linear?: boolean;
16
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
17
+ severity?: 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger';
18
+ }
19
+ declare var __VLS_1: {}, __VLS_3: {
20
+ step: StepItem;
21
+ index: number;
22
+ active: boolean;
23
+ completed: boolean;
24
+ error: boolean;
25
+ }, __VLS_20: {
26
+ step: StepItem;
27
+ index: number;
28
+ active: boolean;
29
+ completed: boolean;
30
+ error: boolean;
31
+ }, __VLS_22: {}, __VLS_24: {
32
+ step: StepItem;
33
+ index: number;
34
+ active: boolean;
35
+ completed: boolean;
36
+ error: boolean;
37
+ }, __VLS_41: {
38
+ step: StepItem;
39
+ index: number;
40
+ active: boolean;
41
+ completed: boolean;
42
+ error: boolean;
43
+ }, __VLS_43: {
44
+ step: StepItem;
45
+ index: number;
46
+ active: boolean;
47
+ completed: boolean;
48
+ error: boolean;
49
+ }, __VLS_45: {
50
+ step: StepItem;
51
+ index: number;
52
+ active: boolean;
53
+ completed: boolean;
54
+ error: boolean;
55
+ }, __VLS_62: {
56
+ step: StepItem;
57
+ index: number;
58
+ active: boolean;
59
+ completed: boolean;
60
+ error: boolean;
61
+ }, __VLS_64: {
62
+ step: StepItem;
63
+ index: number;
64
+ active: boolean;
65
+ completed: boolean;
66
+ error: boolean;
67
+ }, __VLS_66: {
68
+ step: StepItem;
69
+ index: number;
70
+ active: boolean;
71
+ completed: boolean;
72
+ error: boolean;
73
+ }, __VLS_83: {
74
+ step: StepItem;
75
+ index: number;
76
+ active: boolean;
77
+ completed: boolean;
78
+ error: boolean;
79
+ }, __VLS_85: {
80
+ step: StepItem;
81
+ index: number;
82
+ active: boolean;
83
+ completed: boolean;
84
+ error: boolean;
85
+ }, __VLS_87: {
86
+ step: StepItem;
87
+ index: number;
88
+ active: boolean;
89
+ completed: boolean;
90
+ error: boolean;
91
+ }, __VLS_89: {}, __VLS_91: {
92
+ step: StepItem;
93
+ index: number;
94
+ active: boolean;
95
+ completed: boolean;
96
+ error: boolean;
97
+ }, __VLS_108: {
98
+ step: StepItem;
99
+ index: number;
100
+ active: boolean;
101
+ completed: boolean;
102
+ error: boolean;
103
+ }, __VLS_110: {
104
+ step: StepItem;
105
+ index: number;
106
+ active: boolean;
107
+ completed: boolean;
108
+ error: boolean;
109
+ }, __VLS_112: {}, __VLS_114: {
110
+ step: StepItem;
111
+ index: number;
112
+ active: boolean;
113
+ completed: boolean;
114
+ error: boolean;
115
+ };
116
+ type __VLS_Slots = {} & {
117
+ 'sidebar-header'?: (props: typeof __VLS_1) => any;
118
+ } & {
119
+ icon?: (props: typeof __VLS_3) => any;
120
+ } & {
121
+ content?: (props: typeof __VLS_20) => any;
122
+ } & {
123
+ 'sidebar-footer'?: (props: typeof __VLS_22) => any;
124
+ } & {
125
+ icon?: (props: typeof __VLS_24) => any;
126
+ } & {
127
+ title?: (props: typeof __VLS_41) => any;
128
+ } & {
129
+ description?: (props: typeof __VLS_43) => any;
130
+ } & {
131
+ icon?: (props: typeof __VLS_45) => any;
132
+ } & {
133
+ title?: (props: typeof __VLS_62) => any;
134
+ } & {
135
+ description?: (props: typeof __VLS_64) => any;
136
+ } & {
137
+ icon?: (props: typeof __VLS_66) => any;
138
+ } & {
139
+ title?: (props: typeof __VLS_83) => any;
140
+ } & {
141
+ description?: (props: typeof __VLS_85) => any;
142
+ } & {
143
+ content?: (props: typeof __VLS_87) => any;
144
+ } & {
145
+ 'sidebar-header'?: (props: typeof __VLS_89) => any;
146
+ } & {
147
+ icon?: (props: typeof __VLS_91) => any;
148
+ } & {
149
+ title?: (props: typeof __VLS_108) => any;
150
+ } & {
151
+ description?: (props: typeof __VLS_110) => any;
152
+ } & {
153
+ 'sidebar-footer'?: (props: typeof __VLS_112) => any;
154
+ } & {
155
+ content?: (props: typeof __VLS_114) => any;
156
+ };
157
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
158
+ change: (value: number, previous: number) => any;
159
+ "update:modelValue": (value: number) => any;
160
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
161
+ onChange?: ((value: number, previous: number) => any) | undefined;
162
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
163
+ }>, {
164
+ variant: "solid" | "soft" | "outline";
165
+ severity: "primary" | "secondary" | "success" | "info" | "warning" | "danger";
166
+ size: "xs" | "sm" | "md" | "lg" | "xl";
167
+ orientation: "horizontal" | "vertical" | "sidebar";
168
+ labelPosition: "right" | "bottom";
169
+ modelValue: number;
170
+ linear: boolean;
171
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
172
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
173
+ declare const _default: typeof __VLS_export;
174
+ export default _default;
175
+ type __VLS_WithSlots<T, S> = T & {
176
+ new (): {
177
+ $slots: S;
178
+ };
179
+ };
@@ -0,0 +1,31 @@
1
+ export interface TabItem {
2
+ id: string | number;
3
+ label: string;
4
+ icon?: string;
5
+ badge?: string | number;
6
+ badgeSeverity?: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'info';
7
+ disabled?: boolean;
8
+ }
9
+ type TabSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
+ interface Props {
11
+ tabs: TabItem[];
12
+ variant?: 'underline' | 'pill' | 'enclosed' | 'text';
13
+ size?: TabSize;
14
+ fitted?: boolean;
15
+ }
16
+ type __VLS_Props = Props;
17
+ type __VLS_ModelProps = {
18
+ modelValue: string | number;
19
+ };
20
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
21
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ "update:modelValue": (value: string | number) => any;
23
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
24
+ "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
25
+ }>, {
26
+ variant: "underline" | "pill" | "enclosed" | "text";
27
+ size: TabSize;
28
+ fitted: boolean;
29
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
@@ -0,0 +1,30 @@
1
+ interface Props {
2
+ orientation?: 'horizontal' | 'vertical';
3
+ wrap?: boolean;
4
+ gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ variant?: 'flat' | 'outline' | 'surface';
7
+ }
8
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
9
+ type __VLS_Slots = {} & {
10
+ start?: (props: typeof __VLS_1) => any;
11
+ } & {
12
+ center?: (props: typeof __VLS_3) => any;
13
+ } & {
14
+ end?: (props: typeof __VLS_5) => any;
15
+ };
16
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
17
+ variant: "flat" | "outline" | "surface";
18
+ size: "xs" | "sm" | "md" | "lg" | "xl";
19
+ orientation: "horizontal" | "vertical";
20
+ wrap: boolean;
21
+ gap: "xs" | "sm" | "md" | "lg" | "xl";
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_WithSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
@@ -0,0 +1,31 @@
1
+ interface Props {
2
+ multiple?: boolean;
3
+ variant?: 'default' | 'filled' | 'separated';
4
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
+ }
6
+ type __VLS_Props = Props;
7
+ type __VLS_ModelProps = {
8
+ modelValue?: string | number | (string | number)[] | null;
9
+ };
10
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
11
+ declare var __VLS_1: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_1) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ "update:modelValue": (value: string | number | (string | number)[] | null) => any;
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ "onUpdate:modelValue"?: ((value: string | number | (string | number)[] | null) => any) | undefined;
19
+ }>, {
20
+ variant: "default" | "filled" | "separated";
21
+ size: "xs" | "sm" | "md" | "lg" | "xl";
22
+ multiple: boolean;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
27
+ type __VLS_WithSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,35 @@
1
+ interface Props {
2
+ header?: string;
3
+ value: string | number;
4
+ disabled?: boolean;
5
+ icon?: string;
6
+ }
7
+ declare var __VLS_1: {
8
+ isOpen: boolean;
9
+ }, __VLS_8: {
10
+ isOpen: boolean;
11
+ }, __VLS_10: {
12
+ isOpen: boolean;
13
+ }, __VLS_28: {};
14
+ type __VLS_Slots = {} & {
15
+ icon?: (props: typeof __VLS_1) => any;
16
+ } & {
17
+ header?: (props: typeof __VLS_8) => any;
18
+ } & {
19
+ toggleicon?: (props: typeof __VLS_10) => any;
20
+ } & {
21
+ default?: (props: typeof __VLS_28) => any;
22
+ };
23
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
24
+ icon: string;
25
+ disabled: boolean;
26
+ header: string;
27
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,10 @@
1
+ import type { ToastVariant } from './useToast';
2
+ import { type ToastErrorNode } from './errorTree';
3
+ type __VLS_Props = {
4
+ node: ToastErrorNode;
5
+ toastVariant?: ToastVariant;
6
+ onNavigate: (node: ToastErrorNode) => void;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { ToastOptions } from './useToast';
2
+ type __VLS_Props = {
3
+ toast: ToastOptions;
4
+ index: number;
5
+ total: number;
6
+ stacked: boolean;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ close: () => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onClose?: (() => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ToastErrorItem } from './useToast';
2
+ export interface ToastErrorNode {
3
+ id: string;
4
+ label: string;
5
+ messages: string[];
6
+ children: ToastErrorNode[];
7
+ canNavigate: boolean;
8
+ onNavigate?: () => void;
9
+ }
10
+ export declare const buildErrorTree: (data: ToastErrorItem | ToastErrorItem[] | Record<string, any> | string[] | undefined | null, defaultNav: boolean, currentPath?: string[]) => ToastErrorNode[];
11
+ export declare const countErrorNodeIssues: (node: ToastErrorNode) => number;
12
+ export declare const nodeIsNavigable: (node: ToastErrorNode) => boolean;
@@ -0,0 +1,164 @@
1
+ import { type Component } from 'vue';
2
+ export type ToastSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'secondary' | 'surface';
3
+ export type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center' | 'center';
4
+ export type ToastVariant = 'surface' | 'solid' | 'soft' | 'outline';
5
+ export type ToastSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ export type ToastActionAlign = 'start' | 'center' | 'end';
7
+ export interface ToastAction {
8
+ label: string;
9
+ severity?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'surface';
10
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
11
+ variant?: 'solid' | 'outline' | 'text' | 'link';
12
+ onClick: () => void;
13
+ }
14
+ export interface ToastConfirmButton<T = any> {
15
+ label: string;
16
+ value?: T;
17
+ severity?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'surface';
18
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
19
+ variant?: 'solid' | 'outline' | 'text' | 'link';
20
+ }
21
+ export interface ToastConfirmOptions extends Omit<ToastOptions, 'actions' | 'onNavigate'> {
22
+ buttons: ToastConfirmButton[];
23
+ }
24
+ export interface ToastErrorItem {
25
+ key?: string;
26
+ label?: string;
27
+ title?: string;
28
+ messages?: string | string[];
29
+ message?: string | string[];
30
+ canNavigate?: boolean;
31
+ onNavigate?: () => void;
32
+ children?: ToastErrorItem[] | Record<string, any>;
33
+ }
34
+ export interface ToastOptions {
35
+ id?: string;
36
+ title?: string;
37
+ message?: string;
38
+ severity?: ToastSeverity;
39
+ variant?: ToastVariant;
40
+ size?: ToastSize;
41
+ duration?: number;
42
+ icon?: string;
43
+ position?: ToastPosition;
44
+ actions?: ToastAction[];
45
+ actionAlign?: ToastActionAlign;
46
+ html?: boolean;
47
+ loading?: boolean;
48
+ closable?: boolean;
49
+ overlay?: boolean;
50
+ errorList?: ToastErrorItem | ToastErrorItem[] | Record<string, any> | string[];
51
+ onNavigate?: (error: ToastErrorItem) => void;
52
+ component?: Component | any;
53
+ componentProps?: Record<string, any>;
54
+ }
55
+ export declare const useToast: () => {
56
+ toasts: import("vue").Ref<{
57
+ id?: string | undefined;
58
+ title?: string | undefined;
59
+ message?: string | undefined;
60
+ severity?: ToastSeverity | undefined;
61
+ variant?: ToastVariant | undefined;
62
+ size?: ToastSize | undefined;
63
+ duration?: number | undefined;
64
+ icon?: string | undefined;
65
+ position?: ToastPosition | undefined;
66
+ actions?: {
67
+ label: string;
68
+ severity?: "primary" | "secondary" | "success" | "warning" | "danger" | "info" | "surface" | undefined;
69
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
70
+ variant?: "solid" | "outline" | "text" | "link" | undefined;
71
+ onClick: () => void;
72
+ }[] | undefined;
73
+ actionAlign?: ToastActionAlign | undefined;
74
+ html?: boolean | undefined;
75
+ loading?: boolean | undefined;
76
+ closable?: boolean | undefined;
77
+ overlay?: boolean | undefined;
78
+ errorList?: string[] | Record<string, any> | {
79
+ key?: string | undefined;
80
+ label?: string | undefined;
81
+ title?: string | undefined;
82
+ messages?: string | string[] | undefined;
83
+ message?: string | string[] | undefined;
84
+ canNavigate?: boolean | undefined;
85
+ onNavigate?: (() => void) | undefined;
86
+ children?: Record<string, any> | /*elided*/ any[] | undefined;
87
+ } | {
88
+ key?: string | undefined;
89
+ label?: string | undefined;
90
+ title?: string | undefined;
91
+ messages?: string | string[] | undefined;
92
+ message?: string | string[] | undefined;
93
+ canNavigate?: boolean | undefined;
94
+ onNavigate?: (() => void) | undefined;
95
+ children?: Record<string, any> | /*elided*/ any[] | undefined;
96
+ }[] | undefined;
97
+ onNavigate?: ((error: ToastErrorItem) => void) | undefined;
98
+ component?: Component | any;
99
+ componentProps?: Record<string, any> | undefined;
100
+ }[], ToastOptions[] | {
101
+ id?: string | undefined;
102
+ title?: string | undefined;
103
+ message?: string | undefined;
104
+ severity?: ToastSeverity | undefined;
105
+ variant?: ToastVariant | undefined;
106
+ size?: ToastSize | undefined;
107
+ duration?: number | undefined;
108
+ icon?: string | undefined;
109
+ position?: ToastPosition | undefined;
110
+ actions?: {
111
+ label: string;
112
+ severity?: "primary" | "secondary" | "success" | "warning" | "danger" | "info" | "surface" | undefined;
113
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
114
+ variant?: "solid" | "outline" | "text" | "link" | undefined;
115
+ onClick: () => void;
116
+ }[] | undefined;
117
+ actionAlign?: ToastActionAlign | undefined;
118
+ html?: boolean | undefined;
119
+ loading?: boolean | undefined;
120
+ closable?: boolean | undefined;
121
+ overlay?: boolean | undefined;
122
+ errorList?: string[] | Record<string, any> | {
123
+ key?: string | undefined;
124
+ label?: string | undefined;
125
+ title?: string | undefined;
126
+ messages?: string | string[] | undefined;
127
+ message?: string | string[] | undefined;
128
+ canNavigate?: boolean | undefined;
129
+ onNavigate?: (() => void) | undefined;
130
+ children?: Record<string, any> | /*elided*/ any[] | undefined;
131
+ } | {
132
+ key?: string | undefined;
133
+ label?: string | undefined;
134
+ title?: string | undefined;
135
+ messages?: string | string[] | undefined;
136
+ message?: string | string[] | undefined;
137
+ canNavigate?: boolean | undefined;
138
+ onNavigate?: (() => void) | undefined;
139
+ children?: Record<string, any> | /*elided*/ any[] | undefined;
140
+ }[] | undefined;
141
+ onNavigate?: ((error: ToastErrorItem) => void) | undefined;
142
+ component?: Component | any;
143
+ componentProps?: Record<string, any> | undefined;
144
+ }[]>;
145
+ globalStacked: import("vue").Ref<boolean, boolean>;
146
+ add: (options: ToastOptions) => string;
147
+ update: (id: string, newOptions: Partial<ToastOptions>) => void;
148
+ remove: (id: string) => void;
149
+ clearAll: () => never[];
150
+ promise: <T>(promiseFn: Promise<T>, msgs: {
151
+ loading: string;
152
+ success?: string | ((data: T) => string);
153
+ error?: string | ((err: any) => string);
154
+ }, opts?: Partial<ToastOptions>) => Promise<T>;
155
+ confirm: <T = any>({ buttons, ...options }: ToastConfirmOptions) => Promise<T>;
156
+ primary: (msg?: string, opts?: Partial<ToastOptions>) => string;
157
+ success: (msg?: string, opts?: Partial<ToastOptions>) => string;
158
+ warning: (msg?: string, opts?: Partial<ToastOptions>) => string;
159
+ danger: (msg?: string, opts?: Partial<ToastOptions>) => string;
160
+ info: (msg?: string, opts?: Partial<ToastOptions>) => string;
161
+ surface: (msg?: string, opts?: Partial<ToastOptions>) => string;
162
+ error: (msg?: string, opts?: Partial<ToastOptions>) => string;
163
+ loading: (msg?: string, opts?: Partial<ToastOptions>) => string;
164
+ };
@@ -0,0 +1,60 @@
1
+ import './assets/css/tailwind.css';
2
+ import Button from './components/buttons/Button.vue';
3
+ import ButtonGroup from './components/buttons/ButtonGroup.vue';
4
+ import InputNumber from './components/form-element/InputNumber.vue';
5
+ import InputText from './components/form-element/InputText.vue';
6
+ import InputPassword from './components/form-element/InputPassword.vue';
7
+ import InputOtp from './components/form-element/InputOtp.vue';
8
+ import InputMask from './components/form-element/InputMask.vue';
9
+ import Autocomplete from './components/form-element/Autocomplete.vue';
10
+ import InputGroup from './components/form-element/InputGroup.vue';
11
+ import Toggle from './components/form-element/Toggle.vue';
12
+ import Select from './components/form-element/select/Select.vue';
13
+ import Checkbox from './components/form-element/Checkbox.vue';
14
+ import Radio from './components/form-element/Radio.vue';
15
+ import Textarea from './components/form-element/Textarea.vue';
16
+ import FileUpload from './components/form-element/FileUpload.vue';
17
+ import DatePicker from './components/form-element/DatePicker.vue';
18
+ import TextEditor from './components/form-element/TextEditor.vue';
19
+ import Tabs from './components/panel/Tabs.vue';
20
+ import DropDown from './components/panel/DropDown.vue';
21
+ import Accordion from './components/panel/accordion/Accordion.vue';
22
+ import AccordionPanel from './components/panel/accordion/AccordionPanel.vue';
23
+ import Popover from './components/panel/Popover.vue';
24
+ import Divider from './components/panel/Divider.vue';
25
+ import Toolbar from './components/panel/Toolbar.vue';
26
+ import Modal from './components/panel/Modal.vue';
27
+ import Stepper from './components/panel/Stepper.vue';
28
+ import ScrollPanel from './components/panel/ScrollPanel.vue';
29
+ import Breadcrumb from './components/panel/Breadcrumb.vue';
30
+ import Card from './components/panel/Card.vue';
31
+ import ToastProvider from './components/panel/toast/ToastProvider.vue';
32
+ import { useToast } from './components/panel/toast/useToast';
33
+ import Table from './components/data-display/Table.vue';
34
+ import Pagination from './components/data-display/Pagination.vue';
35
+ import Badge from './components/data-display/Badge.vue';
36
+ import ProgressBar from './components/data-display/ProgressBar.vue';
37
+ import Image from './components/data-display/Image.vue';
38
+ import BubbleChat from './components/data-display/BubbleChat.vue';
39
+ import SkeletonLoader from './components/data-display/SkeletonLoader.vue';
40
+ import Calendar from './components/data-display/calendar/Calendar.vue';
41
+ import CalendarEventPopover from './components/data-display/calendar/CalendarEventPopover.vue';
42
+ import { useCalendar } from './components/data-display/calendar/useCalendar';
43
+ import { expandRecurrence } from './components/data-display/calendar/recurrence';
44
+ import { createIcsAdapter, parseIcs, generateIcs } from './components/data-display/calendar/providers/ics';
45
+ import { createGoogleAdapter } from './components/data-display/calendar/providers/google';
46
+ import { generateThemeCss } from './plugins/init-theme';
47
+ export * from './theme/presets';
48
+ export * from './theme/remote';
49
+ export * from './components/form-element/text-editor-toolbar';
50
+ export type { CalendarView, CalendarSize, EventSeverity, Weekday, WeekdayIndex, WeekdayCode, RecurrenceRule, CalendarEvent, NormalizedEvent, DateRange, CalendarProvider, CalendarProviderAuth, CalendarDayCell, CalendarWeekRow, BusinessHours } from './components/data-display/calendar/types';
51
+ export type { EventChange, RangeSelection } from './components/data-display/calendar/types';
52
+ export type { UseCalendarOptions, UseCalendarReturn } from './components/data-display/calendar/useCalendar';
53
+ export type { IcsAdapterOptions } from './components/data-display/calendar/providers/ics';
54
+ export type { GoogleAdapterOptions } from './components/data-display/calendar/providers/google';
55
+ export type { ToastOptions, ToastSeverity, ToastPosition, ToastVariant, ToastSize, ToastActionAlign, ToastAction, ToastConfirmButton, ToastConfirmOptions, ToastErrorItem } from './components/panel/toast/useToast';
56
+ export { Button, ButtonGroup, InputNumber, InputText, InputPassword, InputOtp, Autocomplete, Select, Checkbox, Radio, Textarea, InputGroup, Toggle, Tabs, DropDown, InputMask, Accordion, AccordionPanel, Popover, Divider, Toolbar, Modal, ToastProvider, useToast, Table, Pagination, Badge, ProgressBar, Image, BubbleChat, SkeletonLoader, FileUpload, DatePicker, TextEditor, Stepper, ScrollPanel, Breadcrumb, Card, Calendar, CalendarEventPopover, useCalendar, expandRecurrence, createIcsAdapter, createGoogleAdapter, parseIcs, generateIcs };
57
+ export { generateThemeCss };
58
+ export declare const MidnightOwlUI: {
59
+ install(app: any, options?: any): void;
60
+ };
@@ -0,0 +1 @@
1
+ export declare function registerBundledIcons(): void;
@@ -0,0 +1,4 @@
1
+ import { generateCssVariables, type DesignTokens } from '../theme/presets';
2
+ import type { App } from 'vue';
3
+ export declare const generateThemeCss: typeof generateCssVariables;
4
+ export declare function setupMidnightOwlTheme(app: App, options?: Partial<DesignTokens>): void;
@@ -0,0 +1,75 @@
1
+ export interface ColorScale {
2
+ 50: string;
3
+ 100: string;
4
+ 200: string;
5
+ 300: string;
6
+ 400: string;
7
+ 500: string;
8
+ 600: string;
9
+ 700: string;
10
+ 800: string;
11
+ 900: string;
12
+ 950: string;
13
+ }
14
+ export interface SemanticTheme {
15
+ primary: string;
16
+ secondary: string;
17
+ success: string;
18
+ warning: string;
19
+ danger: string;
20
+ info: string;
21
+ background: {
22
+ main: string;
23
+ content: string;
24
+ surface: string;
25
+ muted: string;
26
+ inverse: string;
27
+ };
28
+ text: {
29
+ main: string;
30
+ content: string;
31
+ surface: string;
32
+ muted: string;
33
+ inverse: string;
34
+ onPrimary: string;
35
+ onSecondary: string;
36
+ onSuccess: string;
37
+ onWarning: string;
38
+ onDanger: string;
39
+ onInfo: string;
40
+ onSurface: string;
41
+ };
42
+ border: {
43
+ main: string;
44
+ content: string;
45
+ surface: string;
46
+ muted: string;
47
+ inverse: string;
48
+ };
49
+ }
50
+ export interface DesignTokens {
51
+ colors: {
52
+ primary: ColorScale;
53
+ secondary: ColorScale;
54
+ success: ColorScale;
55
+ warning: ColorScale;
56
+ danger: ColorScale;
57
+ info: ColorScale;
58
+ surface: ColorScale;
59
+ };
60
+ light: SemanticTheme;
61
+ dark: SemanticTheme;
62
+ layout: {
63
+ fontFamily: any;
64
+ fontSize: any;
65
+ lineHeight: any;
66
+ fontWeight: any;
67
+ spacing: any;
68
+ borderRadius: any;
69
+ borderWidth: any;
70
+ boxShadow: any;
71
+ };
72
+ }
73
+ export declare const defaultTheme: DesignTokens;
74
+ export declare function diffTheme(full: any, base?: any): any;
75
+ export declare function generateCssVariables(customTheme?: Partial<DesignTokens>): string;
@@ -0,0 +1,2 @@
1
+ import type { DesignTokens } from './presets';
2
+ export declare function fetchRemoteTheme(themeKey: string, endpoint?: string): Promise<Partial<DesignTokens>>;