@knitify/vue 2.0.0 → 2.2.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.
- package/README.md +6 -1
- package/dist/index.es.js +6611 -2755
- package/dist/index.umd.js +1 -1
- package/dist/types/components/Alert/KAlert.vue.d.ts +22 -2
- package/dist/types/components/Alert/types.d.ts +11 -1
- package/dist/types/components/ArticleList/KArticleList.vue.d.ts +11 -0
- package/dist/types/components/ArticleList/KArticleListItem.vue.d.ts +15 -0
- package/dist/types/components/ArticleList/types.d.ts +47 -0
- package/dist/types/components/Avatar/types.d.ts +1 -1
- package/dist/types/components/ButtonGroup/KButtonGroup.vue.d.ts +11 -0
- package/dist/types/components/ButtonGroup/types.d.ts +7 -0
- package/dist/types/components/Calendar/types.d.ts +2 -0
- package/dist/types/components/Chat/KChatPrompt.vue.d.ts +2 -2
- package/dist/types/components/Chat/keys.d.ts +1 -0
- package/dist/types/components/Chat/types.d.ts +19 -4
- package/dist/types/components/ChatDock/KChatDock.vue.d.ts +4 -2
- package/dist/types/components/ChatDock/KChatNewWindow.vue.d.ts +28 -0
- package/dist/types/components/ChatDock/KMessenger.vue.d.ts +6 -0
- package/dist/types/components/ChatDock/messenger-types.d.ts +56 -1
- package/dist/types/components/ChatDock/types.d.ts +30 -2
- package/dist/types/components/DataTable/KDataTable.vue.d.ts +71 -0
- package/dist/types/components/DataTable/KDataTableLinkCell.vue.d.ts +21 -0
- package/dist/types/components/DataTable/KDataTableSettings.vue.d.ts +32 -0
- package/dist/types/components/DataTable/KDataTableSort.vue.d.ts +17 -0
- package/dist/types/components/DataTable/columnTypes.d.ts +19 -0
- package/dist/types/components/DataTable/keys.d.ts +9 -0
- package/dist/types/components/DataTable/types.d.ts +269 -0
- package/dist/types/components/DateInput/KDateInput.vue.d.ts +26 -0
- package/dist/types/components/DateInput/KDateRangeInput.vue.d.ts +31 -0
- package/dist/types/components/DateInput/types.d.ts +69 -0
- package/dist/types/components/DateInput/useDateInput.d.ts +27 -0
- package/dist/types/components/Dialog/KDialogHost.vue.d.ts +3 -0
- package/dist/types/components/Dialog/KDialogItem.vue.d.ts +16 -0
- package/dist/types/components/Dialog/types.d.ts +61 -0
- package/dist/types/components/Dialog/useDialog.d.ts +41 -0
- package/dist/types/components/Divider/KDivider.vue.d.ts +11 -0
- package/dist/types/components/Divider/types.d.ts +19 -0
- package/dist/types/components/Dropzone/KDropzone.vue.d.ts +39 -0
- package/dist/types/components/Dropzone/types.d.ts +89 -0
- package/dist/types/components/Field/FieldIsolate.d.ts +4 -0
- package/dist/types/components/Field/KField.vue.d.ts +11 -0
- package/dist/types/components/Field/keys.d.ts +21 -0
- package/dist/types/components/Field/types.d.ts +35 -0
- package/dist/types/components/FileTree/KFileTree.vue.d.ts +2 -2
- package/dist/types/components/Flex/KFlex.vue.d.ts +11 -0
- package/dist/types/components/Flex/types.d.ts +26 -0
- package/dist/types/components/Input/KInput.vue.d.ts +2 -0
- package/dist/types/components/Input/types.d.ts +10 -0
- package/dist/types/components/Modal/types.d.ts +9 -1
- package/dist/types/components/Pagination/KPagination.vue.d.ts +13 -0
- package/dist/types/components/Pagination/range.d.ts +6 -0
- package/dist/types/components/Pagination/types.d.ts +20 -0
- package/dist/types/components/RadioCard/KRadioCard.vue.d.ts +20 -0
- package/dist/types/components/RadioCard/KRadioCardGroup.vue.d.ts +11 -0
- package/dist/types/components/RadioCard/types.d.ts +25 -0
- package/dist/types/components/SearchInput/KSearchInput.vue.d.ts +22 -0
- package/dist/types/components/SearchInput/types.d.ts +7 -0
- package/dist/types/components/SegmentedButtons/KSegmentedButton.vue.d.ts +20 -0
- package/dist/types/components/SegmentedButtons/KSegmentedButtons.vue.d.ts +11 -0
- package/dist/types/components/SegmentedButtons/types.d.ts +25 -0
- package/dist/types/components/Select/KSelect.vue.d.ts +2 -0
- package/dist/types/components/Select/types.d.ts +8 -0
- package/dist/types/components/Skeleton/KSkeleton.vue.d.ts +4 -0
- package/dist/types/components/Skeleton/types.d.ts +19 -0
- package/dist/types/components/Table/KTable.vue.d.ts +8 -1
- package/dist/types/components/Table/KTableResizer.vue.d.ts +4 -0
- package/dist/types/components/Table/types.d.ts +28 -1
- package/dist/types/components/Tabs/KTabs.vue.d.ts +1 -1
- package/dist/types/components/Tabs/types.d.ts +42 -3
- package/dist/types/components/TagsInput/KTagsInput.vue.d.ts +32 -0
- package/dist/types/components/TagsInput/types.d.ts +68 -0
- package/dist/types/components/TagsInput/useTagsInput.d.ts +27 -0
- package/dist/types/components/Time/KTime.vue.d.ts +18 -0
- package/dist/types/components/Time/types.d.ts +23 -0
- package/dist/types/components/TimeInput/KTimeInput.vue.d.ts +26 -0
- package/dist/types/components/TimeInput/types.d.ts +27 -0
- package/dist/types/components/TimeInput/useTimeInput.d.ts +22 -0
- package/dist/types/components/Toast/types.d.ts +22 -0
- package/dist/types/components/Toast/useToast.d.ts +14 -2
- package/dist/types/components/Toggle/types.d.ts +2 -0
- package/dist/types/components/Tooltip/triggerHandlers.d.ts +33 -0
- package/dist/types/components/Tooltip/types.d.ts +5 -0
- package/dist/types/components/Tooltip/vTooltip.d.ts +10 -0
- package/dist/types/components/Workspace/KWorkspace.vue.d.ts +13 -1
- package/dist/types/components/Workspace/types.d.ts +10 -0
- package/dist/types/components/index.d.ts +29 -0
- package/dist/types/components/types.d.ts +20 -0
- package/dist/types/index.d.ts +11 -2
- package/dist/types/utils/useCoreModule.d.ts +30 -0
- package/dist/types/utils/useFieldControl.d.ts +25 -0
- package/dist/types/utils/useRootClasses.d.ts +15 -0
- package/dist/types/utils/useTopmost.d.ts +3 -1
- package/dist/web-types.json +4927 -1307
- package/package.json +3 -3
|
@@ -1,11 +1,46 @@
|
|
|
1
|
-
import type { ComputedRef, InjectionKey } from 'vue';
|
|
1
|
+
import type { ClassValue, ComputedRef, InjectionKey } from 'vue';
|
|
2
2
|
export type KTabsVariant = 'pills' | 'underline';
|
|
3
3
|
export type KTabsProps = {
|
|
4
4
|
/** Names the tablist. */
|
|
5
5
|
ariaLabel?: string;
|
|
6
|
+
/** Classes for the panels' wrapper. */
|
|
7
|
+
contentClass?: ClassValue;
|
|
8
|
+
/**
|
|
9
|
+
* Disables every tab. The active panel stays visible, and `v-model` can
|
|
10
|
+
* still switch it.
|
|
11
|
+
*/
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Gives inactive tabs a surface background instead of a transparent one.
|
|
15
|
+
* Combines with any variant and with `merged`.
|
|
16
|
+
*/
|
|
17
|
+
filled?: boolean;
|
|
18
|
+
/** Classes for the tablist, where the variant class also goes. */
|
|
19
|
+
listClass?: ClassValue;
|
|
20
|
+
/**
|
|
21
|
+
* Joins the tab buttons into one control: no gap between them, and only the
|
|
22
|
+
* outer corners rounded. Combines with the `pills` variant; not meant for
|
|
23
|
+
* `underline`.
|
|
24
|
+
*/
|
|
25
|
+
merged?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Renders the tablist alone, without the panels' wrapper — for tabs that
|
|
28
|
+
* drive content elsewhere through `v-model`. The default slot is ignored.
|
|
29
|
+
*/
|
|
30
|
+
noContent?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* A light active tab, matching `KButton`'s `secondary`: the subtler brand
|
|
33
|
+
* fill with base text. Combines with `pills`, `filled` and `merged`; has no
|
|
34
|
+
* effect on `underline`.
|
|
35
|
+
*/
|
|
36
|
+
secondary?: boolean;
|
|
6
37
|
variant?: KTabsVariant;
|
|
7
38
|
};
|
|
8
39
|
export type KTabProps = {
|
|
40
|
+
/**
|
|
41
|
+
* Takes the tab out of roving focus and out of `v-model`'s reach — setting
|
|
42
|
+
* the model to its name is a no-op.
|
|
43
|
+
*/
|
|
9
44
|
disabled?: boolean;
|
|
10
45
|
/** Matches this tab to its panel, and is what `v-model` holds. */
|
|
11
46
|
name: string;
|
|
@@ -25,11 +60,15 @@ export type KTabsSlots = {
|
|
|
25
60
|
};
|
|
26
61
|
export type KTabsContext = {
|
|
27
62
|
active: ComputedRef<string | undefined>;
|
|
63
|
+
disabled: ComputedRef<boolean>;
|
|
64
|
+
/** False under `noContent`, where there is no panel for a tab to control. */
|
|
65
|
+
hasPanels: ComputedRef<boolean>;
|
|
28
66
|
/**
|
|
29
67
|
* Core resolves a panel with `querySelector('#' + target)` without escaping,
|
|
30
|
-
* so the id is restricted to characters that are safe unquoted.
|
|
31
|
-
* differing only in punctuation therefore collapse to the same id.
|
|
68
|
+
* so the id is restricted to characters that are safe unquoted.
|
|
32
69
|
*/
|
|
33
70
|
panelId: (name: string) => string;
|
|
71
|
+
/** The tab's id, which its panel is labelled by. */
|
|
72
|
+
tabId: (name: string) => string;
|
|
34
73
|
};
|
|
35
74
|
export declare const tabsKey: InjectionKey<KTabsContext>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { KTagsInputProps, KTagsInputSlots } from './types';
|
|
2
|
+
type __VLS_Props = KTagsInputProps;
|
|
3
|
+
type __VLS_Slots = KTagsInputSlots;
|
|
4
|
+
type __VLS_ModelProps = {
|
|
5
|
+
modelValue?: string[];
|
|
6
|
+
};
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
9
|
+
add: (value: string) => boolean;
|
|
10
|
+
clear: () => never[];
|
|
11
|
+
focus: () => void | undefined;
|
|
12
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
invalid: (value: string, reason: string) => any;
|
|
14
|
+
add: (value: string) => any;
|
|
15
|
+
remove: (value: string, index: number) => any;
|
|
16
|
+
"update:modelValue": (value: string[]) => any;
|
|
17
|
+
loadError: (error: unknown, query: string) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
19
|
+
onInvalid?: ((value: string, reason: string) => any) | undefined;
|
|
20
|
+
onAdd?: ((value: string) => any) | undefined;
|
|
21
|
+
onRemove?: ((value: string, index: number) => any) | undefined;
|
|
22
|
+
"onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
|
|
23
|
+
onLoadError?: ((error: unknown, query: string) => any) | undefined;
|
|
24
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
27
|
+
export default _default;
|
|
28
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
29
|
+
new (): {
|
|
30
|
+
$slots: S;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export type KTagsInputValidator = (tag: string, tags: string[]) => true | string;
|
|
2
|
+
export type KTagsInputOption = {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
data?: unknown;
|
|
6
|
+
};
|
|
7
|
+
export type KTagsInputLoader = (query: string, context: {
|
|
8
|
+
signal: AbortSignal;
|
|
9
|
+
}) => Promise<(KTagsInputOption | string)[]>;
|
|
10
|
+
export type KTagsInputProps = {
|
|
11
|
+
/** Dedupe treats "Design" and "design" as different tags. */
|
|
12
|
+
caseSensitive?: boolean;
|
|
13
|
+
/** Characters that commit a tag. Enter always commits. Default `',;'`. */
|
|
14
|
+
delimiters?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
ghost?: boolean;
|
|
17
|
+
max?: number;
|
|
18
|
+
/** Renders a hidden input holding the tags joined with commas. */
|
|
19
|
+
name?: string;
|
|
20
|
+
/** Shows a spinner and marks the field busy; combined with a pending `load`. */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
/** Loads suggestions for the typed text (debounced; stale requests aborted). */
|
|
23
|
+
load?: KTagsInputLoader;
|
|
24
|
+
/** Debounce before `load` runs, in ms. Default `250`. */
|
|
25
|
+
loadDelay?: number;
|
|
26
|
+
/** Shows the whole suggestion list on focus, before anything is typed. */
|
|
27
|
+
openOnFocus?: boolean;
|
|
28
|
+
/** Suggestions shown while typing. A bare string is both label and value. */
|
|
29
|
+
options?: (KTagsInputOption | string)[];
|
|
30
|
+
placeholder?: string;
|
|
31
|
+
/** Shows the tags but hides the text field and the remove buttons. */
|
|
32
|
+
readonly?: boolean;
|
|
33
|
+
/** Only listed options can become tags; others are rejected as `'not-in-list'`. */
|
|
34
|
+
restrict?: boolean;
|
|
35
|
+
rounded?: boolean;
|
|
36
|
+
sunken?: boolean;
|
|
37
|
+
transparent?: boolean;
|
|
38
|
+
/** Return `true` to accept, or a reason string to reject. */
|
|
39
|
+
validate?: KTagsInputValidator;
|
|
40
|
+
};
|
|
41
|
+
export type KTagsInputEmits = {
|
|
42
|
+
add: [value: string];
|
|
43
|
+
remove: [value: string, index: number];
|
|
44
|
+
/** `reason` is `'duplicate'`, `'max'`, `'not-in-list'`, or the string `validate` returned. */
|
|
45
|
+
invalid: [value: string, reason: string];
|
|
46
|
+
loadError: [error: unknown, query: string];
|
|
47
|
+
};
|
|
48
|
+
export type KTagsInputSlots = {
|
|
49
|
+
/** Replaces the tag's label. The remove button is still rendered after it. */
|
|
50
|
+
tag?(props: {
|
|
51
|
+
value: string;
|
|
52
|
+
label: string;
|
|
53
|
+
index: number;
|
|
54
|
+
remove: () => void;
|
|
55
|
+
}): any;
|
|
56
|
+
/**
|
|
57
|
+
* Replaces a suggestion row's content (default: the label). Focus stays in
|
|
58
|
+
* the text field and rows are picked with Enter or a click, so put nothing
|
|
59
|
+
* focusable or interactive inside.
|
|
60
|
+
*/
|
|
61
|
+
option?(props: {
|
|
62
|
+
option: KTagsInputOption;
|
|
63
|
+
active: boolean;
|
|
64
|
+
index: number;
|
|
65
|
+
}): any;
|
|
66
|
+
prefix?(): any;
|
|
67
|
+
suffix?(): any;
|
|
68
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ShallowRef } from 'vue';
|
|
2
|
+
import Knitify from '@knitify/core';
|
|
3
|
+
type TagsInputModuleConfig = NonNullable<ConstructorParameters<typeof Knitify.modules.TagsInput>[1]>;
|
|
4
|
+
type TagsInputControls = {
|
|
5
|
+
add(value: string): boolean;
|
|
6
|
+
focus(): void;
|
|
7
|
+
getValues(): string[];
|
|
8
|
+
remove(value: string): boolean;
|
|
9
|
+
setLoading(loading: boolean): void;
|
|
10
|
+
setOptions(options: (string | {
|
|
11
|
+
label: string;
|
|
12
|
+
value: string;
|
|
13
|
+
})[]): void;
|
|
14
|
+
setValues(values: string[]): void;
|
|
15
|
+
};
|
|
16
|
+
type Options = {
|
|
17
|
+
root: Readonly<ShallowRef<HTMLElement | null>>;
|
|
18
|
+
/** Read inside a watcher, so every prop it touches triggers a rebuild. */
|
|
19
|
+
config: () => TagsInputModuleConfig;
|
|
20
|
+
/** Pushes the current model into a freshly built module. */
|
|
21
|
+
apply: (instance: TagsInputControls) => void;
|
|
22
|
+
listeners: Record<string, (event: CustomEvent) => void>;
|
|
23
|
+
};
|
|
24
|
+
export declare function useTagsInput({ root, config, apply, listeners }: Options): {
|
|
25
|
+
getInstance: () => TagsInputControls | undefined;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { KTimeProps } from './types';
|
|
2
|
+
type __VLS_Props = KTimeProps;
|
|
3
|
+
type __VLS_ModelProps = {
|
|
4
|
+
modelValue?: string | null;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
8
|
+
clear: () => null;
|
|
9
|
+
focus: () => void | undefined;
|
|
10
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
|
+
select: (value: string) => any;
|
|
12
|
+
"update:modelValue": (value: string | null) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
|
+
onSelect?: ((value: string) => any) | undefined;
|
|
15
|
+
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type KTimeHourCycle = 12 | 24;
|
|
2
|
+
export type KTimeProps = {
|
|
3
|
+
/** `12` adds AM/PM buttons; `24` shows 00–23. The value is always 24-hour. Default `12`. */
|
|
4
|
+
hourCycle?: KTimeHourCycle;
|
|
5
|
+
/** Latest selectable time, `HH:mm` or `HH:mm:ss`, inclusive. */
|
|
6
|
+
maxTime?: string;
|
|
7
|
+
/** Earliest selectable time, `HH:mm` or `HH:mm:ss`, inclusive. */
|
|
8
|
+
minTime?: string;
|
|
9
|
+
/** Minutes per + / − press (and ↑/↓ in the field), 1–30. Default `1`. */
|
|
10
|
+
minuteStep?: number;
|
|
11
|
+
/** The Now button's label. Default `'Now'`. */
|
|
12
|
+
nowLabel?: string;
|
|
13
|
+
/** Seconds per + / − press, 1–30. Default `1`. */
|
|
14
|
+
secondStep?: number;
|
|
15
|
+
/** Adds seconds; the value becomes `HH:mm:ss`. */
|
|
16
|
+
seconds?: boolean;
|
|
17
|
+
/** Shows a Now button that picks the current time. */
|
|
18
|
+
showNow?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export type KTimeEmits = {
|
|
21
|
+
/** Enter was pressed in a part, or Now was picked. */
|
|
22
|
+
select: [value: string];
|
|
23
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { KTimeInputInvalidReason, KTimeInputProps } from './types';
|
|
2
|
+
type __VLS_Props = KTimeInputProps;
|
|
3
|
+
type __VLS_ModelProps = {
|
|
4
|
+
modelValue?: string | null;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
8
|
+
clear: () => null;
|
|
9
|
+
close: () => void | undefined;
|
|
10
|
+
focus: () => void | undefined;
|
|
11
|
+
open: () => void | undefined;
|
|
12
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
open: () => any;
|
|
14
|
+
close: () => any;
|
|
15
|
+
invalid: (reason: KTimeInputInvalidReason, text: string) => any;
|
|
16
|
+
clear: () => any;
|
|
17
|
+
"update:modelValue": (value: string | null) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
19
|
+
onOpen?: (() => any) | undefined;
|
|
20
|
+
onClose?: (() => any) | undefined;
|
|
21
|
+
onInvalid?: ((reason: KTimeInputInvalidReason, text: string) => any) | undefined;
|
|
22
|
+
onClear?: (() => any) | undefined;
|
|
23
|
+
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
24
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { KTimeProps } from '../Time/types';
|
|
2
|
+
export type KTimeInputInvalidReason = 'incomplete' | 'out-of-range';
|
|
3
|
+
export type KTimeInputProps = KTimeProps & {
|
|
4
|
+
/** Shows a × that clears the value while there is one. */
|
|
5
|
+
clearable?: boolean;
|
|
6
|
+
/** The × button's accessible name. Default `'Clear'`. */
|
|
7
|
+
clearLabel?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
ghost?: boolean;
|
|
10
|
+
/** Shows a spinner as the last addon and disables the clock button; the field stays editable. */
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/** Posts the value (`HH:mm` or `HH:mm:ss`, 24-hour) through a hidden input. */
|
|
13
|
+
name?: string;
|
|
14
|
+
/** Defaults to the layout, e.g. `hh:mm AA`. */
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
readonly?: boolean;
|
|
17
|
+
rounded?: boolean;
|
|
18
|
+
sunken?: boolean;
|
|
19
|
+
transparent?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type KTimeInputEmits = {
|
|
22
|
+
/** The × cleared the value. */
|
|
23
|
+
clear: [];
|
|
24
|
+
close: [];
|
|
25
|
+
invalid: [reason: KTimeInputInvalidReason, text: string];
|
|
26
|
+
open: [];
|
|
27
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ShallowRef } from 'vue';
|
|
2
|
+
import Knitify from '@knitify/core';
|
|
3
|
+
type TimeInputModuleConfig = NonNullable<ConstructorParameters<typeof Knitify.modules.TimeInput>[1]>;
|
|
4
|
+
type TimeInputControls = {
|
|
5
|
+
close(): void;
|
|
6
|
+
getValue(): string | null;
|
|
7
|
+
open(): void;
|
|
8
|
+
setValue(value: string | null): void;
|
|
9
|
+
};
|
|
10
|
+
type Options = {
|
|
11
|
+
root: Readonly<ShallowRef<HTMLElement | null>>;
|
|
12
|
+
/** Read inside a watcher, so every prop it touches triggers a rebuild. */
|
|
13
|
+
config: () => TimeInputModuleConfig;
|
|
14
|
+
/** Pushes the current model into a freshly built module. */
|
|
15
|
+
apply: (instance: TimeInputControls) => void;
|
|
16
|
+
listeners: Record<string, (event: CustomEvent) => void>;
|
|
17
|
+
};
|
|
18
|
+
export declare const syncClearButton: (element: unknown) => void;
|
|
19
|
+
export declare function useTimeInput(options: Options): {
|
|
20
|
+
getInstance: () => TimeInputControls | undefined;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
import { Intent } from '../../types';
|
|
1
2
|
export type KToastPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
3
|
+
export type KToastLink = {
|
|
4
|
+
label: string;
|
|
5
|
+
/** Without one, the link renders as a button and only runs `onClick`. */
|
|
6
|
+
href?: string;
|
|
7
|
+
target?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Runs before the toast closes; return `false` to keep it open.
|
|
10
|
+
* `event.preventDefault()` stops an `href` navigating — use it to route
|
|
11
|
+
* client-side — and still closes the toast.
|
|
12
|
+
*/
|
|
13
|
+
onClick?: (event: MouseEvent) => boolean | void;
|
|
14
|
+
};
|
|
2
15
|
export type KToastOptions = {
|
|
3
16
|
description?: string;
|
|
4
17
|
/** Milliseconds before it closes itself. */
|
|
@@ -8,9 +21,18 @@ export type KToastOptions = {
|
|
|
8
21
|
* not as a sprite href. Never pass user-supplied content here.
|
|
9
22
|
*/
|
|
10
23
|
icon?: string;
|
|
24
|
+
/** Up to 3, shown under the description. Any more are dropped. */
|
|
25
|
+
links?: KToastLink[];
|
|
11
26
|
position?: KToastPosition;
|
|
12
27
|
title: string;
|
|
28
|
+
/** Semantic colour — the same intents as KAlert's `variant`. */
|
|
29
|
+
variant?: Intent;
|
|
13
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Options for `success`, `error`, `warning` and `info`, which set the variant
|
|
33
|
+
* and icon themselves and default to the top-centre position.
|
|
34
|
+
*/
|
|
35
|
+
export type KToastShortcutOptions = Omit<KToastOptions, 'title' | 'variant' | 'icon'>;
|
|
14
36
|
/** Defaults applied to every toast raised through the returned helper. */
|
|
15
37
|
export type KToastDefaults = Omit<KToastOptions, 'title'>;
|
|
16
38
|
export type KToastHandle = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KToastDefaults, KToastHandle, KToastOptions, KToastPosition } from './types';
|
|
1
|
+
import type { KToastDefaults, KToastHandle, KToastOptions, KToastPosition, KToastShortcutOptions } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Toasts have no component because core's Toast has no markup to wrap:
|
|
4
4
|
* `new Toast({ title })` builds its own element, mounts it into a container it
|
|
@@ -8,6 +8,10 @@ import type { KToastDefaults, KToastHandle, KToastOptions, KToastPosition } from
|
|
|
8
8
|
* ```ts
|
|
9
9
|
* const toast = useToast({ position: 'bottom-right' })
|
|
10
10
|
* toast.show({ title: 'Saved', description: 'Your changes are live.' })
|
|
11
|
+
*
|
|
12
|
+
* // Semantic shortcuts preset the variant and icon.
|
|
13
|
+
* toast.success('Saved')
|
|
14
|
+
* toast.error('Upload failed', { description: 'The file is over 10 MB.' })
|
|
11
15
|
* ```
|
|
12
16
|
*
|
|
13
17
|
* Nothing here is reactive or tied to a component instance, so it can be called
|
|
@@ -16,5 +20,13 @@ import type { KToastDefaults, KToastHandle, KToastOptions, KToastPosition } from
|
|
|
16
20
|
export declare function useToast(defaults?: KToastDefaults): {
|
|
17
21
|
/** Dismisses every toast, or only those in one corner. */
|
|
18
22
|
closeAll(position?: KToastPosition): void;
|
|
19
|
-
show(options: KToastOptions)
|
|
23
|
+
show: (options: KToastOptions) => KToastHandle;
|
|
24
|
+
/** Green, with a check. */
|
|
25
|
+
success: (title: string, options?: KToastShortcutOptions) => KToastHandle;
|
|
26
|
+
/** Red, with a cross. Stays up for 8 seconds unless told otherwise. */
|
|
27
|
+
error: (title: string, options?: KToastShortcutOptions) => KToastHandle;
|
|
28
|
+
/** Amber, with a warning triangle. */
|
|
29
|
+
warning: (title: string, options?: KToastShortcutOptions) => KToastHandle;
|
|
30
|
+
/** Blue, with an info mark. */
|
|
31
|
+
info: (title: string, options?: KToastShortcutOptions) => KToastHandle;
|
|
20
32
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { KTooltipProps } from './types';
|
|
2
|
+
declare function onMouseover(event: MouseEvent): void;
|
|
3
|
+
declare function onMouseout(event: MouseEvent): void;
|
|
4
|
+
declare function onFocusin(event: FocusEvent): void;
|
|
5
|
+
declare function onFocusout(event: FocusEvent): void;
|
|
6
|
+
/** The trigger listeners, keyed by DOM event name. */
|
|
7
|
+
export declare const triggerListeners: {
|
|
8
|
+
readonly focusin: typeof onFocusin;
|
|
9
|
+
readonly focusout: typeof onFocusout;
|
|
10
|
+
readonly mouseout: typeof onMouseout;
|
|
11
|
+
readonly mouseover: typeof onMouseover;
|
|
12
|
+
};
|
|
13
|
+
/** The same listeners as vnode props, for `cloneVNode`. */
|
|
14
|
+
export declare const triggerListenerProps: {
|
|
15
|
+
onFocusin: typeof onFocusin;
|
|
16
|
+
onFocusout: typeof onFocusout;
|
|
17
|
+
onMouseout: typeof onMouseout;
|
|
18
|
+
onMouseover: typeof onMouseover;
|
|
19
|
+
};
|
|
20
|
+
/** Core's attributes for a label, placement and delay, as a plain record. */
|
|
21
|
+
export declare function triggerAttributes(options: KTooltipProps): Record<string, string>;
|
|
22
|
+
export declare const triggerAttributeNames: readonly ["data-kt-tooltip", "data-kt-tooltip-placement", "data-kt-tooltip-delay"];
|
|
23
|
+
export declare function retainEscape(): void;
|
|
24
|
+
export declare function releaseEscape(): void;
|
|
25
|
+
/**
|
|
26
|
+
* A trigger unmounted while its tooltip is up would otherwise strand the
|
|
27
|
+
* bubble, which core has moved to `<body>`. With the trigger in hand, only its
|
|
28
|
+
* own tooltip closes — a row leaving a list must not close the tooltip of the
|
|
29
|
+
* row still under the pointer. Without one (KTooltip, which does not hold its
|
|
30
|
+
* child's element), every tooltip closes, as core's delegated version does.
|
|
31
|
+
*/
|
|
32
|
+
export declare function hideOnUnmount(trigger?: Element): void;
|
|
33
|
+
export {};
|
|
@@ -16,3 +16,8 @@ export type KTooltipSlots = {
|
|
|
16
16
|
*/
|
|
17
17
|
default?(): any;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* The value of `v-tooltip`: a label, the full options, or a falsy value to
|
|
21
|
+
* turn the tooltip off.
|
|
22
|
+
*/
|
|
23
|
+
export type KTooltipDirectiveValue = string | KTooltipProps | null | undefined | false;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ObjectDirective } from 'vue';
|
|
2
|
+
import type { KPlacement } from '../Popover/types';
|
|
3
|
+
import type { KTooltipDirectiveValue } from './types';
|
|
4
|
+
export declare const vTooltip: ObjectDirective<Element, KTooltipDirectiveValue, string, KPlacement>;
|
|
5
|
+
export default vTooltip;
|
|
6
|
+
declare module 'vue' {
|
|
7
|
+
interface GlobalDirectives {
|
|
8
|
+
vTooltip: typeof vTooltip;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -1,24 +1,36 @@
|
|
|
1
|
-
import type { KWorkspaceProps, KWorkspaceSlots } from './types';
|
|
1
|
+
import type { KWorkspaceDrawer, KWorkspaceProps, KWorkspaceSlots } from './types';
|
|
2
2
|
type __VLS_Props = KWorkspaceProps;
|
|
3
3
|
type __VLS_Slots = KWorkspaceSlots;
|
|
4
4
|
declare function toggle(): void;
|
|
5
5
|
declare function expand(): void;
|
|
6
6
|
declare function collapseSidebar(): void;
|
|
7
|
+
declare function openDrawer(target?: KWorkspaceDrawer): void;
|
|
8
|
+
declare function closeDrawer(target?: KWorkspaceDrawer): void;
|
|
9
|
+
declare function toggleDrawer(target?: KWorkspaceDrawer): void;
|
|
7
10
|
type __VLS_ModelProps = {
|
|
8
11
|
'expanded'?: boolean;
|
|
12
|
+
'open'?: boolean;
|
|
13
|
+
'bodyOpen'?: boolean;
|
|
9
14
|
};
|
|
10
15
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
11
16
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
12
17
|
toggle: typeof toggle;
|
|
13
18
|
expand: typeof expand;
|
|
14
19
|
collapse: typeof collapseSidebar;
|
|
20
|
+
openDrawer: typeof openDrawer;
|
|
21
|
+
closeDrawer: typeof closeDrawer;
|
|
22
|
+
toggleDrawer: typeof toggleDrawer;
|
|
15
23
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
24
|
+
"update:open": (value: boolean) => any;
|
|
16
25
|
"update:expanded": (value: boolean) => any;
|
|
26
|
+
"update:bodyOpen": (value: boolean) => any;
|
|
17
27
|
} & {
|
|
18
28
|
toggle: (value: boolean) => any;
|
|
19
29
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
20
30
|
onToggle?: ((value: boolean) => any) | undefined;
|
|
31
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
21
32
|
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
33
|
+
"onUpdate:bodyOpen"?: ((value: boolean) => any) | undefined;
|
|
22
34
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
35
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
24
36
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { ClassValue } from 'vue';
|
|
2
2
|
export type KWorkspaceSide = 'left' | 'right';
|
|
3
|
+
export type KWorkspaceBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
4
|
+
export type KWorkspaceDrawer = 'sidebar' | 'bodySidebar';
|
|
3
5
|
export type KWorkspaceProps = {
|
|
4
6
|
bodyClass?: ClassValue;
|
|
5
7
|
bodyContentClass?: ClassValue;
|
|
8
|
+
bodyDrawerAt?: KWorkspaceBreakpoint;
|
|
9
|
+
bodyDrawerWidth?: string;
|
|
6
10
|
bodySidebarClass?: ClassValue;
|
|
7
11
|
bodySidebarSide?: KWorkspaceSide;
|
|
12
|
+
bodySidebarWidth?: string;
|
|
8
13
|
collapsible?: boolean;
|
|
14
|
+
drawerAt?: KWorkspaceBreakpoint;
|
|
15
|
+
drawerWidth?: string;
|
|
9
16
|
footerClass?: ClassValue;
|
|
10
17
|
height?: string;
|
|
11
18
|
mainClass?: ClassValue;
|
|
19
|
+
rounded?: boolean;
|
|
12
20
|
side?: KWorkspaceSide;
|
|
13
21
|
sidebarBodyClass?: ClassValue;
|
|
14
22
|
sidebarClass?: ClassValue;
|
|
23
|
+
sidebarHeaderClass?: ClassValue;
|
|
15
24
|
sidebarInnerClass?: ClassValue;
|
|
25
|
+
sidebarWidth?: string;
|
|
16
26
|
topbarClass?: ClassValue;
|
|
17
27
|
};
|
|
18
28
|
export type KWorkspaceEmits = {
|
|
@@ -3,15 +3,22 @@ export { chatBusyKey } from './Chat/keys';
|
|
|
3
3
|
export { chatDockKey } from './ChatDock/keys';
|
|
4
4
|
export { chatDockStoreKey, injectChatDock, provideChatDock, } from './ChatDock/store-keys';
|
|
5
5
|
export { useChatDock } from './ChatDock/useChatDock';
|
|
6
|
+
export { fieldKey } from './Field/keys';
|
|
7
|
+
export { useFieldControl } from '../utils/useFieldControl';
|
|
8
|
+
export { registerColumnType } from './DataTable/columnTypes';
|
|
9
|
+
export { dataTableKey } from './DataTable/keys';
|
|
6
10
|
export { default as KAccordion } from './Accordion/KAccordion.vue';
|
|
7
11
|
export { default as KAccordionItem } from './Accordion/KAccordionItem.vue';
|
|
8
12
|
export { default as KAlert } from './Alert/KAlert.vue';
|
|
13
|
+
export { default as KArticleList } from './ArticleList/KArticleList.vue';
|
|
14
|
+
export { default as KArticleListItem } from './ArticleList/KArticleListItem.vue';
|
|
9
15
|
export { default as KAvatar } from './Avatar/KAvatar.vue';
|
|
10
16
|
export { default as KAvatarGroup } from './Avatar/KAvatarGroup.vue';
|
|
11
17
|
export { default as KBadge } from './Badge/KBadge.vue';
|
|
12
18
|
export { default as KBreadcrumb } from './Breadcrumb/KBreadcrumb.vue';
|
|
13
19
|
export { default as KBreadcrumbItem } from './Breadcrumb/KBreadcrumbItem.vue';
|
|
14
20
|
export { default as KButton } from './Button/KButton.vue';
|
|
21
|
+
export { default as KButtonGroup } from './ButtonGroup/KButtonGroup.vue';
|
|
15
22
|
export { default as KCalendar } from './Calendar/KCalendar.vue';
|
|
16
23
|
export { default as KCard } from './Card/KCard.vue';
|
|
17
24
|
export { default as KChat } from './Chat/KChat.vue';
|
|
@@ -27,14 +34,23 @@ export { default as KChatNotice } from './Chat/KChatNotice.vue';
|
|
|
27
34
|
export { default as KChatPrompt } from './Chat/KChatPrompt.vue';
|
|
28
35
|
export { default as KChatShimmer } from './Chat/KChatShimmer.vue';
|
|
29
36
|
export { default as KChatWindow } from './ChatDock/KChatWindow.vue';
|
|
37
|
+
export { default as KChatNewWindow } from './ChatDock/KChatNewWindow.vue';
|
|
30
38
|
export { default as KCheckbox } from './Checkbox/KCheckbox.vue';
|
|
31
39
|
export { default as KCollapse } from './Collapse/KCollapse.vue';
|
|
32
40
|
export { default as KContainer } from './Container/KContainer.vue';
|
|
41
|
+
export { default as KDataTable } from './DataTable/KDataTable.vue';
|
|
42
|
+
export { default as KDateInput } from './DateInput/KDateInput.vue';
|
|
43
|
+
export { default as KDateRangeInput } from './DateInput/KDateRangeInput.vue';
|
|
44
|
+
export { default as KDialogHost } from './Dialog/KDialogHost.vue';
|
|
45
|
+
export { default as KDivider } from './Divider/KDivider.vue';
|
|
33
46
|
export { default as KDrawer } from './Drawer/KDrawer.vue';
|
|
47
|
+
export { default as KDropzone } from './Dropzone/KDropzone.vue';
|
|
34
48
|
export { default as KDropdown } from './Dropdown/KDropdown.vue';
|
|
35
49
|
export { default as KDropdownItem } from './Dropdown/KDropdownItem.vue';
|
|
36
50
|
export { default as KDropdownMenu } from './Dropdown/KDropdownMenu.vue';
|
|
51
|
+
export { default as KField } from './Field/KField.vue';
|
|
37
52
|
export { default as KFileTree } from './FileTree/KFileTree.vue';
|
|
53
|
+
export { default as KFlex } from './Flex/KFlex.vue';
|
|
38
54
|
export { default as KGrid } from './Grid/KGrid.vue';
|
|
39
55
|
export { default as KGridColumn } from './Grid/KGridColumn.vue';
|
|
40
56
|
export { default as KGridRow } from './Grid/KGridRow.vue';
|
|
@@ -47,16 +63,29 @@ export { default as KNavbar } from './Navbar/KNavbar.vue';
|
|
|
47
63
|
export { default as KNavbarMenu } from './Navbar/KNavbarMenu.vue';
|
|
48
64
|
export { default as KNotificationList } from './NotificationList/KNotificationList.vue';
|
|
49
65
|
export { default as KNotificationListItem } from './NotificationList/KNotificationListItem.vue';
|
|
66
|
+
export { default as KPagination } from './Pagination/KPagination.vue';
|
|
50
67
|
export { default as KPopover } from './Popover/KPopover.vue';
|
|
51
68
|
export { default as KProgress } from './Progress/KProgress.vue';
|
|
52
69
|
export { default as KRadio } from './Radio/KRadio.vue';
|
|
70
|
+
export { default as KRadioCard } from './RadioCard/KRadioCard.vue';
|
|
71
|
+
export { default as KRadioCardGroup } from './RadioCard/KRadioCardGroup.vue';
|
|
72
|
+
export { default as KSearchInput } from './SearchInput/KSearchInput.vue';
|
|
73
|
+
export { default as KSegmentedButton } from './SegmentedButtons/KSegmentedButton.vue';
|
|
74
|
+
export { default as KSegmentedButtons } from './SegmentedButtons/KSegmentedButtons.vue';
|
|
53
75
|
export { default as KSelect } from './Select/KSelect.vue';
|
|
76
|
+
export { default as KSkeleton } from './Skeleton/KSkeleton.vue';
|
|
54
77
|
export { default as KSpinner } from './Spinner/KSpinner.vue';
|
|
55
78
|
export { default as KTab } from './Tabs/KTab.vue';
|
|
56
79
|
export { default as KTable } from './Table/KTable.vue';
|
|
80
|
+
export { default as KTableResizer } from './Table/KTableResizer.vue';
|
|
57
81
|
export { default as KTabPanel } from './Tabs/KTabPanel.vue';
|
|
58
82
|
export { default as KTabs } from './Tabs/KTabs.vue';
|
|
83
|
+
export { default as KTagsInput } from './TagsInput/KTagsInput.vue';
|
|
84
|
+
export { default as KTime } from './Time/KTime.vue';
|
|
85
|
+
export { default as KTimeInput } from './TimeInput/KTimeInput.vue';
|
|
59
86
|
export { default as KToggle } from './Toggle/KToggle.vue';
|
|
60
87
|
export { default as KTooltip } from './Tooltip/KTooltip.vue';
|
|
88
|
+
export { vTooltip } from './Tooltip/vTooltip';
|
|
61
89
|
export { default as KWorkspace } from './Workspace/KWorkspace.vue';
|
|
62
90
|
export { useToast } from './Toast/useToast';
|
|
91
|
+
export { useDialog } from './Dialog/useDialog';
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
export * from './Accordion/types';
|
|
2
2
|
export * from './Alert/types';
|
|
3
|
+
export * from './ArticleList/types';
|
|
3
4
|
export * from './Avatar/types';
|
|
4
5
|
export * from './Badge/types';
|
|
5
6
|
export * from './Breadcrumb/types';
|
|
6
7
|
export * from './Button/types';
|
|
8
|
+
export * from './ButtonGroup/types';
|
|
7
9
|
export * from './Calendar/types';
|
|
10
|
+
export * from './DataTable/types';
|
|
11
|
+
export type { DataTableContext } from './DataTable/keys';
|
|
12
|
+
export * from './DateInput/types';
|
|
8
13
|
export * from './Card/types';
|
|
9
14
|
export * from './Chat/types';
|
|
10
15
|
export type { ChatDockCallResult, ChatDockContext, ChatDockInstance, } from './ChatDock/keys';
|
|
@@ -13,9 +18,15 @@ export * from './ChatDock/messenger-types';
|
|
|
13
18
|
export * from './Checkbox/types';
|
|
14
19
|
export * from './Collapse/types';
|
|
15
20
|
export * from './Container/types';
|
|
21
|
+
export * from './Divider/types';
|
|
16
22
|
export * from './Drawer/types';
|
|
23
|
+
export * from './Field/types';
|
|
24
|
+
export type { FieldContext } from './Field/keys';
|
|
25
|
+
export type { UseFieldControlOptions } from '../utils/useFieldControl';
|
|
17
26
|
export * from './Dropdown/types';
|
|
27
|
+
export * from './Dropzone/types';
|
|
18
28
|
export * from './FileTree/types';
|
|
29
|
+
export * from './Flex/types';
|
|
19
30
|
export * from './Grid/types';
|
|
20
31
|
export * from './Icon/types';
|
|
21
32
|
export * from './Input/types';
|
|
@@ -23,13 +34,22 @@ export * from './MenuList/types';
|
|
|
23
34
|
export * from './Modal/types';
|
|
24
35
|
export * from './Navbar/types';
|
|
25
36
|
export * from './NotificationList/types';
|
|
37
|
+
export * from './Pagination/types';
|
|
26
38
|
export * from './Popover/types';
|
|
27
39
|
export * from './Progress/types';
|
|
28
40
|
export * from './Radio/types';
|
|
41
|
+
export * from './RadioCard/types';
|
|
42
|
+
export * from './SearchInput/types';
|
|
43
|
+
export * from './SegmentedButtons/types';
|
|
29
44
|
export * from './Select/types';
|
|
45
|
+
export * from './Skeleton/types';
|
|
46
|
+
export * from './Dialog/types';
|
|
30
47
|
export * from './Spinner/types';
|
|
31
48
|
export * from './Table/types';
|
|
32
49
|
export * from './Tabs/types';
|
|
50
|
+
export * from './TagsInput/types';
|
|
51
|
+
export * from './Time/types';
|
|
52
|
+
export * from './TimeInput/types';
|
|
33
53
|
export * from './Toast/types';
|
|
34
54
|
export * from './Toggle/types';
|
|
35
55
|
export * from './Tooltip/types';
|