@umbra.ui/core 0.1.24 → 0.1.26
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/dist/components/controls/Dropdown/Dropdown.vue +1 -1
- package/dist/components/controls/Dropdown/types.d.ts +1 -1
- package/dist/components/controls/Dropdown/types.d.ts.map +1 -1
- package/dist/components/controls/Dropdown/types.ts +1 -1
- package/dist/components/controls/IconButton/IconButton.vue +1 -1
- package/dist/components/dialogs/Alert/Alert.vue +1 -1
- package/dist/components/dialogs/Toast/Toast.vue +6 -2
- package/dist/components/dialogs/Toast/ToastContainer.vue +1 -1
- package/dist/components/dialogs/Toast/useToast.d.ts +1 -1
- package/dist/components/dialogs/Toast/useToast.d.ts.map +1 -1
- package/dist/components/dialogs/Toast/useToast.ts +2 -1
- package/dist/components/indicators/Tooltip/tooltip.d.ts +1 -1
- package/dist/components/indicators/Tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/indicators/Tooltip/tooltip.ts +1 -1
- package/dist/components/indicators/Tooltip/useTooltip.d.ts +1 -1
- package/dist/components/indicators/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/indicators/Tooltip/useTooltip.ts +1 -1
- package/dist/components/inputs/Tags/TagBar.vue +2 -1
- package/dist/components/inputs/Tags/TagCreation.vue +6 -6
- package/dist/components/inputs/Tags/TagPicker.vue +2 -2
- package/dist/components/inputs/Tags/types.d.ts.map +1 -1
- package/dist/components/inputs/Tags/types.ts +0 -1
- package/dist/components/inputs/search/README.md +1 -1
- package/dist/components/inputs/search/SearchResults.vue +1 -1
- package/dist/components/navigation/adaptive/AdaptiveLayout.vue +1 -1
- package/dist/components/navigation/adaptive/types.d.ts +2 -1
- package/dist/components/navigation/adaptive/types.d.ts.map +1 -1
- package/dist/components/navigation/adaptive/types.ts +2 -1
- package/dist/components/navigation/adaptive/useBreakpoints.d.ts +2 -2
- package/dist/components/navigation/adaptive/useBreakpoints.d.ts.map +1 -1
- package/dist/components/navigation/adaptive/useBreakpoints.ts +2 -2
- package/dist/components/navigation/adaptive/useViewAnimation.d.ts +1 -1
- package/dist/components/navigation/adaptive/useViewAnimation.d.ts.map +1 -1
- package/dist/components/navigation/adaptive/useViewAnimation.ts +1 -1
- package/dist/components/navigation/navstack/NavigationStack.vue +1 -1
- package/dist/components/navigation/navstack/useNavigationStack.d.ts +2 -2
- package/dist/components/navigation/navstack/useNavigationStack.d.ts.map +1 -1
- package/dist/components/navigation/navstack/useNavigationStack.ts +3 -2
- package/dist/components/navigation/slideover/useSlideoverController.d.ts +1 -1
- package/dist/components/navigation/slideover/useSlideoverController.d.ts.map +1 -1
- package/dist/components/navigation/slideover/useSlideoverController.ts +2 -1
- package/dist/components/navigation/splitview/SplitViewController.vue +1 -1
- package/dist/components/navigation/splitview/useSplitViewController.d.ts +2 -2
- package/dist/components/navigation/splitview/useSplitViewController.d.ts.map +1 -1
- package/dist/components/navigation/splitview/useSplitViewController.ts +3 -2
- package/dist/components/pickers/ColorPicker/ColorPicker.vue +2 -1
- package/dist/components/pickers/DatePicker/DatePicker.vue +1 -1
- package/package.json +4 -2
- package/src/components/controls/Dropdown/Dropdown.vue +1 -1
- package/src/components/controls/Dropdown/types.ts +1 -1
- package/src/components/controls/IconButton/IconButton.vue +1 -1
- package/src/components/dialogs/Alert/Alert.vue +1 -1
- package/src/components/dialogs/Toast/Toast.vue +6 -2
- package/src/components/dialogs/Toast/ToastContainer.vue +1 -1
- package/src/components/dialogs/Toast/useToast.ts +2 -1
- package/src/components/indicators/Tooltip/tooltip.ts +1 -1
- package/src/components/indicators/Tooltip/useTooltip.ts +1 -1
- package/src/components/inputs/Tags/TagBar.vue +2 -1
- package/src/components/inputs/Tags/TagCreation.vue +6 -6
- package/src/components/inputs/Tags/TagPicker.vue +2 -2
- package/src/components/inputs/Tags/types.ts +0 -1
- package/src/components/inputs/search/README.md +1 -1
- package/src/components/inputs/search/SearchResults.vue +1 -1
- package/src/components/navigation/adaptive/AdaptiveLayout.vue +1 -1
- package/src/components/navigation/adaptive/types.ts +2 -1
- package/src/components/navigation/adaptive/useBreakpoints.ts +2 -2
- package/src/components/navigation/adaptive/useViewAnimation.ts +1 -1
- package/src/components/navigation/navstack/NavigationStack.vue +1 -1
- package/src/components/navigation/navstack/useNavigationStack.ts +3 -2
- package/src/components/navigation/slideover/useSlideoverController.ts +2 -1
- package/src/components/navigation/splitview/SplitViewController.vue +1 -1
- package/src/components/navigation/splitview/useSplitViewController.ts +3 -2
- package/src/components/pickers/ColorPicker/ColorPicker.vue +2 -1
- package/src/components/pickers/DatePicker/DatePicker.vue +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { ChevronRightIcon } from "@umbra.ui/icons";
|
|
3
3
|
import { Button } from "@umbra.ui/core";
|
|
4
4
|
import { ref, onUnmounted, onMounted, computed, nextTick, watch } from "vue";
|
|
5
|
-
import { DropdownItem } from "./types";
|
|
5
|
+
import type { DropdownItem } from "./types";
|
|
6
6
|
import "./theme.css";
|
|
7
7
|
|
|
8
8
|
// Shared overlay system across all dropdown instances
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/controls/Dropdown/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/controls/Dropdown/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB"}
|
|
@@ -7,7 +7,7 @@ import "./theme.css";
|
|
|
7
7
|
interface Props {
|
|
8
8
|
iconName?: IconKey;
|
|
9
9
|
buttonType?: "round" | "square" | "plain";
|
|
10
|
-
buttonStyle?: "primary" | "secondary" | "tertiary" | "quaternary";
|
|
10
|
+
buttonStyle?: "primary" | "secondary" | "tertiary" | "quaternary" | string;
|
|
11
11
|
state?: "normal" | "active" | "disabled";
|
|
12
12
|
buttonSize?: number;
|
|
13
13
|
tooltip?: string | TooltipConfig;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<script setup lang="ts">
|
|
5
5
|
import { watch, ref } from "vue";
|
|
6
6
|
import Button from "../../controls/Button/Button.vue";
|
|
7
|
-
import { AlertAction, AlertActionType } from "./types";
|
|
7
|
+
import type { AlertAction, AlertActionType } from "./types";
|
|
8
8
|
import "./theme.css";
|
|
9
9
|
|
|
10
10
|
// Props for customization
|
|
@@ -83,6 +83,10 @@ const textColor = computed(() => {
|
|
|
83
83
|
return color.isLight() ? "black" : "white";
|
|
84
84
|
});
|
|
85
85
|
|
|
86
|
+
const buttonStyle = computed(() => {
|
|
87
|
+
return textColor.value === "black" ? "secondary" : "primary";
|
|
88
|
+
});
|
|
89
|
+
|
|
86
90
|
const customColor = computed(() => {
|
|
87
91
|
const validTypes = ["success", "error", "warning", "info"];
|
|
88
92
|
if (!validTypes.includes(props.toast.toastType as string)) {
|
|
@@ -165,8 +169,8 @@ const handleKeyDown = (event: KeyboardEvent) => {
|
|
|
165
169
|
:class="$style.closeButton"
|
|
166
170
|
@click.stop="handleDismiss"
|
|
167
171
|
buttonType="plain"
|
|
168
|
-
buttonSize="12"
|
|
169
|
-
:buttonStyle="
|
|
172
|
+
:buttonSize="12"
|
|
173
|
+
:buttonStyle="buttonStyle"
|
|
170
174
|
/>
|
|
171
175
|
</div>
|
|
172
176
|
</template>
|
|
@@ -17,7 +17,7 @@ const containerRef = ref<HTMLElement>();
|
|
|
17
17
|
const animatedToasts = new Set<string>();
|
|
18
18
|
|
|
19
19
|
// Track auto-dismiss timeouts
|
|
20
|
-
const autoDismissTimeouts = new Map<string,
|
|
20
|
+
const autoDismissTimeouts = new Map<string, ReturnType<typeof setTimeout>>();
|
|
21
21
|
|
|
22
22
|
const handleDismiss = async (id: string) => {
|
|
23
23
|
// Clear any auto-dismiss timeout for this toast
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../../src/components/dialogs/Toast/useToast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../../src/components/dialogs/Toast/useToast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AA2F3D,eAAO,MAAM,WAAW;iBACT,GAAG;CAMjB,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;wBAjFK,YAAY,KAAG,OAAO,CAAC,MAAM,CAAC;sBA4BtC,MAAM;;2BAhCD,KAAK,GAAG,MAAM,GAAG,cAAc;yBA+C3C,MAAM,gBACC,MAAM,YACV,OAAO,CAAC,YAAY,CAAC;uBAIxB,MAAM,gBACC,MAAM,YACV,OAAO,CAAC,YAAY,CAAC;yBAIxB,MAAM,gBACC,MAAM,YACV,OAAO,CAAC,YAAY,CAAC;sBAIxB,MAAM,gBACC,MAAM,YACV,OAAO,CAAC,YAAY,CAAC;CAyClC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// useToast.ts
|
|
2
|
-
import { ref, computed, nextTick,
|
|
2
|
+
import { ref, computed, nextTick, inject, provide } from "vue";
|
|
3
|
+
import type { App } from "vue";
|
|
3
4
|
import type { ToastOptions, ToastInstance } from "./types";
|
|
4
5
|
|
|
5
6
|
const TOAST_INJECTION_KEY = Symbol("toast");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/indicators/Tooltip/tooltip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/indicators/Tooltip/tooltip.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,KAAK,CAAC;AAQvD,eAAO,MAAM,QAAQ,EAAE,SAsCtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/indicators/Tooltip/useTooltip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/indicators/Tooltip/useTooltip.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AAU3D,eAAO,MAAM,kBAAkB;;;;;;;;2BACO,WAAW,UAAU,aAAa;;CAoBvE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa;2BAGhB,WAAW,GAAG,GAAG;2BA8BtB,WAAW;;CAGrC,CAAC"}
|
|
@@ -9,7 +9,8 @@ import {
|
|
|
9
9
|
watch,
|
|
10
10
|
} from "vue";
|
|
11
11
|
import { useTheme } from "../../../theme";
|
|
12
|
-
import {
|
|
12
|
+
import { generateTagStyle } from "./types";
|
|
13
|
+
import type { TagItem } from "./types";
|
|
13
14
|
import { IconButton } from "@umbra.ui/core";
|
|
14
15
|
import { gsap } from "gsap";
|
|
15
16
|
import TagPicker from "./TagPicker.vue";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { ref, computed } from "vue";
|
|
7
7
|
import { gsap } from "gsap";
|
|
8
8
|
import ColorPicker from "../../pickers/ColorPicker/ColorPicker.vue";
|
|
9
|
-
import { Color } from "../../pickers/ColorPicker/colors";
|
|
9
|
+
import type { Color } from "../../pickers/ColorPicker/colors";
|
|
10
10
|
import { CheckIcon } from "@umbra.ui/icons";
|
|
11
11
|
const props = defineProps({
|
|
12
12
|
containerID: {
|
|
@@ -28,7 +28,7 @@ const emits = defineEmits(["onCreate"]);
|
|
|
28
28
|
const input = ref(null);
|
|
29
29
|
const confirm = ref(null);
|
|
30
30
|
const title = ref<string>("");
|
|
31
|
-
const color = ref<Color>(null);
|
|
31
|
+
const color = ref<Color | null>(null);
|
|
32
32
|
const currentHex = () => {
|
|
33
33
|
return color.value?.hex ?? props.initialColor.hex;
|
|
34
34
|
};
|
|
@@ -75,7 +75,7 @@ const onConfirm = () => {
|
|
|
75
75
|
reset();
|
|
76
76
|
};
|
|
77
77
|
const onCancel = () => {
|
|
78
|
-
title.value = originalTitle.value;
|
|
78
|
+
title.value = originalTitle.value ?? "";
|
|
79
79
|
gsap.to(confirm.value, { duration: 0.3, opacity: 0, scale: 0.5 });
|
|
80
80
|
};
|
|
81
81
|
|
|
@@ -99,10 +99,10 @@ const reset = () => {
|
|
|
99
99
|
<div :class="$style.container">
|
|
100
100
|
<div :class="$style.content">
|
|
101
101
|
<ColorPicker
|
|
102
|
-
:
|
|
102
|
+
:color="color ?? initialColor"
|
|
103
103
|
:pickerOffsetX="-8"
|
|
104
|
-
|
|
105
|
-
:
|
|
104
|
+
:preventPopup="false"
|
|
105
|
+
@update:color="onColorSelection"
|
|
106
106
|
/>
|
|
107
107
|
<input
|
|
108
108
|
:class="[$style.field, 'body']"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref, watch, nextTick } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { generateTagStyle } from "./types";
|
|
4
|
+
import type { TagItem } from "./types";
|
|
4
5
|
import { ArrowTurnLeftIcon } from "@umbra.ui/icons";
|
|
5
6
|
import "./theme.css";
|
|
6
7
|
|
|
@@ -42,7 +43,6 @@ const getTagStyle = (tag: TagItem) => {
|
|
|
42
43
|
}
|
|
43
44
|
// Default style if none provided
|
|
44
45
|
return generateTagStyle({
|
|
45
|
-
variant: "default",
|
|
46
46
|
colorScheme: "#6b7280",
|
|
47
47
|
size: "md",
|
|
48
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Tags/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Tags/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -460,7 +460,7 @@ const searchAPI = async (query: string) => {
|
|
|
460
460
|
};
|
|
461
461
|
|
|
462
462
|
// Debounced search
|
|
463
|
-
let searchTimeout:
|
|
463
|
+
let searchTimeout: ReturnType<typeof setTimeout>;
|
|
464
464
|
watch(searchQuery, (newQuery) => {
|
|
465
465
|
clearTimeout(searchTimeout);
|
|
466
466
|
searchTimeout = setTimeout(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- SearchResults.vue -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { SearchResult } from "./types";
|
|
3
|
+
import type { SearchResult } from "./types";
|
|
4
4
|
import { CircleAnim32GlyphIcon, ChevronDownIcon } from "@umbra.ui/icons";
|
|
5
5
|
import { computed, ref, watch } from "vue";
|
|
6
6
|
import "./theme.css";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "vue";
|
|
15
15
|
import { useAdaptiveLayoutState } from "./useAdaptiveLayout";
|
|
16
16
|
import { useResponsiveContainer } from "./useContainerMonitor";
|
|
17
|
-
import { View, InternalView, ViewLayout } from "./types";
|
|
17
|
+
import type { View, InternalView, ViewLayout } from "./types";
|
|
18
18
|
import { useViewAnimation } from "./useViewAnimation";
|
|
19
19
|
import { useBreakpoints } from "./useBreakpoints";
|
|
20
20
|
import {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,QAAQ,EAAE,YAAY,CAAC;CACxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ref } from "vue";
|
|
2
|
-
import { InternalView } from "./types";
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
import type { InternalView } from "./types";
|
|
3
3
|
export declare const useBreakpoints: (views: Ref<InternalView[]>) => {
|
|
4
4
|
setupForBreakpoint: (oldBreakpoint: string | null, currentBreakpoint: string | null) => void;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBreakpoints.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/useBreakpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"useBreakpoints.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/useBreakpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;wCAEtC,MAAM,GAAG,IAAI,qBACT,MAAM,GAAG,IAAI;CAkCnC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import { InternalView } from "./types";
|
|
2
|
+
import type { InternalView } from "./types";
|
|
3
3
|
export declare const useViewAnimation: (views: Ref<InternalView[]>, instanceKey: string, containerDimensions: Ref<{
|
|
4
4
|
width: number;
|
|
5
5
|
height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewAnimation.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/useViewAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useViewAnimation.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/adaptive/useViewAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAc5C,eAAO,MAAM,gBAAgB,GAC3B,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,EAC1B,aAAa,MAAM,EACnB,qBAAqB,GAAG,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAC3D,SAAS,MAAM,EACf,KAAK,MAAM;wBAuNsB,MAAM;wBAMN,MAAM;yBAUN,MAAM,GAAG,IAAI;wBAgBd,MAAM,GAAG,IAAI;wBAwLZ,MAAM;;yBA0CN,MAAM,GAAG,IAAI;wBAkDd,MAAM,GAAG,IAAI;uBAgEb,MAAM;;sBAYP,MAAM;;;;sBA3iBZ,YAAY;;;2BAIT,WAAW,EAAE;uBA6Ff,YAAY;4BAIP,MAAM,YAAY,MAAM;;8BAhCtB,MAAM,KAAG,YAAY,GAAG,IAAI;6BAU7B,MAAM,KAAG,YAAY,GAAG,IAAI;CA+jB7D,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { Flip } from "gsap/Flip";
|
|
|
4
4
|
import { ref, onMounted, onUnmounted, watch, toRef } from "vue";
|
|
5
5
|
import { useNavigationStack } from "./useNavigationStack";
|
|
6
6
|
import "../theme.css";
|
|
7
|
-
import { Pane } from "../types";
|
|
7
|
+
import type { Pane } from "../types";
|
|
8
8
|
|
|
9
9
|
gsap.registerPlugin(Flip);
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigationStack.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/navstack/useNavigationStack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNavigationStack.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/navstack/useNavigationStack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAMrC,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;sBAO7C,MAAM,aAAY,OAAO;oBA4E3B,IAAI,kBAAiB,OAAO;wBAWxB,MAAM;wBAqBxB,MAAM,QACP,IAAI,kBACK,OAAO;4BAqBO,IAAI,EAAE;EAkBtC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ref,
|
|
1
|
+
import { ref, computed, watch } from "vue";
|
|
2
|
+
import type { Ref } from "vue";
|
|
3
|
+
import type { Pane } from "../types";
|
|
2
4
|
import { gsap } from "gsap";
|
|
3
5
|
import { Flip } from "gsap/Flip";
|
|
4
|
-
import { Pane } from "../types";
|
|
5
6
|
|
|
6
7
|
gsap.registerPlugin(Flip);
|
|
7
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlideoverController.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/slideover/useSlideoverController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSlideoverController.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/slideover/useSlideoverController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAM/B,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,IAAI,EAAE,EAAE,aAAa,MAAM;;;sBAqC9C,MAAM;sBAiDN,MAAM;wBAyCJ,MAAM;;;sBA6HR,MAAM,aAAY,OAAO;CAqDnD,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { Flip } from "gsap/Flip";
|
|
|
5
5
|
import { ref, onMounted } from "vue";
|
|
6
6
|
import { useSplitViewController } from "./useSplitViewController";
|
|
7
7
|
import "../theme.css";
|
|
8
|
-
import { Pane } from "../types";
|
|
8
|
+
import type { Pane } from "../types";
|
|
9
9
|
|
|
10
10
|
gsap.registerPlugin(Flip);
|
|
11
11
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ref } from "vue";
|
|
2
|
-
import { Pane } from "../types";
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
import type { Pane } from "../types";
|
|
3
3
|
export declare const useSplitViewController: (panes: Pane[] | Ref<Pane[]>, componentId: string) => {
|
|
4
4
|
visiblePanes: Ref<boolean[], boolean[]>;
|
|
5
5
|
currentPaneIndex: import("vue").ComputedRef<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSplitViewController.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/splitview/useSplitViewController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSplitViewController.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/splitview/useSplitViewController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAMrC,eAAO,MAAM,sBAAsB,GACjC,OAAO,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,EAC3B,aAAa,MAAM;;;;cAUX,MAAM,GAAG,MAAM;eACd,MAAM;;cADP,MAAM,GAAG,MAAM;eACd,MAAM;;sBA2BU,MAAM;sBAqDN,MAAM;wBAqCJ,MAAM;;;sBAwIR,MAAM,aAAY,OAAO;CAiHnD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
//useSplitViewController.ts
|
|
2
|
-
import { ref,
|
|
2
|
+
import { ref, computed, unref, watch } from "vue";
|
|
3
|
+
import type { Ref } from "vue";
|
|
4
|
+
import type { Pane } from "../types";
|
|
3
5
|
import { gsap } from "gsap";
|
|
4
6
|
import { Flip } from "gsap/Flip";
|
|
5
|
-
import { Pane } from "../types";
|
|
6
7
|
|
|
7
8
|
gsap.registerPlugin(Flip);
|
|
8
9
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, watch, onBeforeUnmount, nextTick, computed } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { colors, colorPickerColors } from "./colors";
|
|
4
|
+
import type { Color } from "./colors";
|
|
4
5
|
import {
|
|
5
6
|
offset,
|
|
6
7
|
flip,
|
|
@@ -257,7 +257,7 @@ const scrollview = ref<HTMLElement | null>(null);
|
|
|
257
257
|
const fetchInProgress = ref<boolean>(false);
|
|
258
258
|
const allowScroll = ref<boolean>(false);
|
|
259
259
|
const isScrolling = ref<boolean>(false);
|
|
260
|
-
let scrollTimeout:
|
|
260
|
+
let scrollTimeout: ReturnType<typeof setTimeout> | undefined;
|
|
261
261
|
const handleScroll = () => {
|
|
262
262
|
// Set isScrolling to true when scrolling starts
|
|
263
263
|
if (allowScroll.value) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umbra.ui/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Core components for Umbra UI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,15 +47,17 @@
|
|
|
47
47
|
"@umbra.ui/icons": "^0.1.2",
|
|
48
48
|
"@umbra.ui/typography": "^0.1.2",
|
|
49
49
|
"autosize": "^6.0.1",
|
|
50
|
+
"@types/autosize": "^4.0.3",
|
|
50
51
|
"gsap": "^3.13.0",
|
|
51
52
|
"marked": "^16.1.2",
|
|
52
53
|
"mitt": "^3.0.1",
|
|
53
54
|
"prismjs": "^1.30.0",
|
|
55
|
+
"@types/prismjs": "^1.26.3",
|
|
54
56
|
"tinycolor2": "^1.6.0",
|
|
57
|
+
"@types/tinycolor2": "^1.4.6",
|
|
55
58
|
"vue": "^3.5.17"
|
|
56
59
|
},
|
|
57
60
|
"devDependencies": {
|
|
58
|
-
"@types/tinycolor2": "^1.4.6",
|
|
59
61
|
"glob": "^10.4.5",
|
|
60
62
|
"typescript": "^5.0.0"
|
|
61
63
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { ChevronRightIcon } from "@umbra.ui/icons";
|
|
3
3
|
import { Button } from "@umbra.ui/core";
|
|
4
4
|
import { ref, onUnmounted, onMounted, computed, nextTick, watch } from "vue";
|
|
5
|
-
import { DropdownItem } from "./types";
|
|
5
|
+
import type { DropdownItem } from "./types";
|
|
6
6
|
import "./theme.css";
|
|
7
7
|
|
|
8
8
|
// Shared overlay system across all dropdown instances
|
|
@@ -7,7 +7,7 @@ import "./theme.css";
|
|
|
7
7
|
interface Props {
|
|
8
8
|
iconName?: IconKey;
|
|
9
9
|
buttonType?: "round" | "square" | "plain";
|
|
10
|
-
buttonStyle?: "primary" | "secondary" | "tertiary" | "quaternary";
|
|
10
|
+
buttonStyle?: "primary" | "secondary" | "tertiary" | "quaternary" | string;
|
|
11
11
|
state?: "normal" | "active" | "disabled";
|
|
12
12
|
buttonSize?: number;
|
|
13
13
|
tooltip?: string | TooltipConfig;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<script setup lang="ts">
|
|
5
5
|
import { watch, ref } from "vue";
|
|
6
6
|
import Button from "../../controls/Button/Button.vue";
|
|
7
|
-
import { AlertAction, AlertActionType } from "./types";
|
|
7
|
+
import type { AlertAction, AlertActionType } from "./types";
|
|
8
8
|
import "./theme.css";
|
|
9
9
|
|
|
10
10
|
// Props for customization
|
|
@@ -83,6 +83,10 @@ const textColor = computed(() => {
|
|
|
83
83
|
return color.isLight() ? "black" : "white";
|
|
84
84
|
});
|
|
85
85
|
|
|
86
|
+
const buttonStyle = computed(() => {
|
|
87
|
+
return textColor.value === "black" ? "secondary" : "primary";
|
|
88
|
+
});
|
|
89
|
+
|
|
86
90
|
const customColor = computed(() => {
|
|
87
91
|
const validTypes = ["success", "error", "warning", "info"];
|
|
88
92
|
if (!validTypes.includes(props.toast.toastType as string)) {
|
|
@@ -165,8 +169,8 @@ const handleKeyDown = (event: KeyboardEvent) => {
|
|
|
165
169
|
:class="$style.closeButton"
|
|
166
170
|
@click.stop="handleDismiss"
|
|
167
171
|
buttonType="plain"
|
|
168
|
-
buttonSize="12"
|
|
169
|
-
:buttonStyle="
|
|
172
|
+
:buttonSize="12"
|
|
173
|
+
:buttonStyle="buttonStyle"
|
|
170
174
|
/>
|
|
171
175
|
</div>
|
|
172
176
|
</template>
|
|
@@ -17,7 +17,7 @@ const containerRef = ref<HTMLElement>();
|
|
|
17
17
|
const animatedToasts = new Set<string>();
|
|
18
18
|
|
|
19
19
|
// Track auto-dismiss timeouts
|
|
20
|
-
const autoDismissTimeouts = new Map<string,
|
|
20
|
+
const autoDismissTimeouts = new Map<string, ReturnType<typeof setTimeout>>();
|
|
21
21
|
|
|
22
22
|
const handleDismiss = async (id: string) => {
|
|
23
23
|
// Clear any auto-dismiss timeout for this toast
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// useToast.ts
|
|
2
|
-
import { ref, computed, nextTick,
|
|
2
|
+
import { ref, computed, nextTick, inject, provide } from "vue";
|
|
3
|
+
import type { App } from "vue";
|
|
3
4
|
import type { ToastOptions, ToastInstance } from "./types";
|
|
4
5
|
|
|
5
6
|
const TOAST_INJECTION_KEY = Symbol("toast");
|
|
@@ -9,7 +9,8 @@ import {
|
|
|
9
9
|
watch,
|
|
10
10
|
} from "vue";
|
|
11
11
|
import { useTheme } from "../../../theme";
|
|
12
|
-
import {
|
|
12
|
+
import { generateTagStyle } from "./types";
|
|
13
|
+
import type { TagItem } from "./types";
|
|
13
14
|
import { IconButton } from "@umbra.ui/core";
|
|
14
15
|
import { gsap } from "gsap";
|
|
15
16
|
import TagPicker from "./TagPicker.vue";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { ref, computed } from "vue";
|
|
7
7
|
import { gsap } from "gsap";
|
|
8
8
|
import ColorPicker from "../../pickers/ColorPicker/ColorPicker.vue";
|
|
9
|
-
import { Color } from "../../pickers/ColorPicker/colors";
|
|
9
|
+
import type { Color } from "../../pickers/ColorPicker/colors";
|
|
10
10
|
import { CheckIcon } from "@umbra.ui/icons";
|
|
11
11
|
const props = defineProps({
|
|
12
12
|
containerID: {
|
|
@@ -28,7 +28,7 @@ const emits = defineEmits(["onCreate"]);
|
|
|
28
28
|
const input = ref(null);
|
|
29
29
|
const confirm = ref(null);
|
|
30
30
|
const title = ref<string>("");
|
|
31
|
-
const color = ref<Color>(null);
|
|
31
|
+
const color = ref<Color | null>(null);
|
|
32
32
|
const currentHex = () => {
|
|
33
33
|
return color.value?.hex ?? props.initialColor.hex;
|
|
34
34
|
};
|
|
@@ -75,7 +75,7 @@ const onConfirm = () => {
|
|
|
75
75
|
reset();
|
|
76
76
|
};
|
|
77
77
|
const onCancel = () => {
|
|
78
|
-
title.value = originalTitle.value;
|
|
78
|
+
title.value = originalTitle.value ?? "";
|
|
79
79
|
gsap.to(confirm.value, { duration: 0.3, opacity: 0, scale: 0.5 });
|
|
80
80
|
};
|
|
81
81
|
|
|
@@ -99,10 +99,10 @@ const reset = () => {
|
|
|
99
99
|
<div :class="$style.container">
|
|
100
100
|
<div :class="$style.content">
|
|
101
101
|
<ColorPicker
|
|
102
|
-
:
|
|
102
|
+
:color="color ?? initialColor"
|
|
103
103
|
:pickerOffsetX="-8"
|
|
104
|
-
|
|
105
|
-
:
|
|
104
|
+
:preventPopup="false"
|
|
105
|
+
@update:color="onColorSelection"
|
|
106
106
|
/>
|
|
107
107
|
<input
|
|
108
108
|
:class="[$style.field, 'body']"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref, watch, nextTick } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { generateTagStyle } from "./types";
|
|
4
|
+
import type { TagItem } from "./types";
|
|
4
5
|
import { ArrowTurnLeftIcon } from "@umbra.ui/icons";
|
|
5
6
|
import "./theme.css";
|
|
6
7
|
|
|
@@ -42,7 +43,6 @@ const getTagStyle = (tag: TagItem) => {
|
|
|
42
43
|
}
|
|
43
44
|
// Default style if none provided
|
|
44
45
|
return generateTagStyle({
|
|
45
|
-
variant: "default",
|
|
46
46
|
colorScheme: "#6b7280",
|
|
47
47
|
size: "md",
|
|
48
48
|
});
|
|
@@ -460,7 +460,7 @@ const searchAPI = async (query: string) => {
|
|
|
460
460
|
};
|
|
461
461
|
|
|
462
462
|
// Debounced search
|
|
463
|
-
let searchTimeout:
|
|
463
|
+
let searchTimeout: ReturnType<typeof setTimeout>;
|
|
464
464
|
watch(searchQuery, (newQuery) => {
|
|
465
465
|
clearTimeout(searchTimeout);
|
|
466
466
|
searchTimeout = setTimeout(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- SearchResults.vue -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { SearchResult } from "./types";
|
|
3
|
+
import type { SearchResult } from "./types";
|
|
4
4
|
import { CircleAnim32GlyphIcon, ChevronDownIcon } from "@umbra.ui/icons";
|
|
5
5
|
import { computed, ref, watch } from "vue";
|
|
6
6
|
import "./theme.css";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "vue";
|
|
15
15
|
import { useAdaptiveLayoutState } from "./useAdaptiveLayout";
|
|
16
16
|
import { useResponsiveContainer } from "./useContainerMonitor";
|
|
17
|
-
import { View, InternalView, ViewLayout } from "./types";
|
|
17
|
+
import type { View, InternalView, ViewLayout } from "./types";
|
|
18
18
|
import { useViewAnimation } from "./useViewAnimation";
|
|
19
19
|
import { useBreakpoints } from "./useBreakpoints";
|
|
20
20
|
import {
|
|
@@ -4,7 +4,7 @@ import { Flip } from "gsap/Flip";
|
|
|
4
4
|
import { ref, onMounted, onUnmounted, watch, toRef } from "vue";
|
|
5
5
|
import { useNavigationStack } from "./useNavigationStack";
|
|
6
6
|
import "../theme.css";
|
|
7
|
-
import { Pane } from "../types";
|
|
7
|
+
import type { Pane } from "../types";
|
|
8
8
|
|
|
9
9
|
gsap.registerPlugin(Flip);
|
|
10
10
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ref,
|
|
1
|
+
import { ref, computed, watch } from "vue";
|
|
2
|
+
import type { Ref } from "vue";
|
|
3
|
+
import type { Pane } from "../types";
|
|
2
4
|
import { gsap } from "gsap";
|
|
3
5
|
import { Flip } from "gsap/Flip";
|
|
4
|
-
import { Pane } from "../types";
|
|
5
6
|
|
|
6
7
|
gsap.registerPlugin(Flip);
|
|
7
8
|
|
|
@@ -5,7 +5,7 @@ import { Flip } from "gsap/Flip";
|
|
|
5
5
|
import { ref, onMounted } from "vue";
|
|
6
6
|
import { useSplitViewController } from "./useSplitViewController";
|
|
7
7
|
import "../theme.css";
|
|
8
|
-
import { Pane } from "../types";
|
|
8
|
+
import type { Pane } from "../types";
|
|
9
9
|
|
|
10
10
|
gsap.registerPlugin(Flip);
|
|
11
11
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
//useSplitViewController.ts
|
|
2
|
-
import { ref,
|
|
2
|
+
import { ref, computed, unref, watch } from "vue";
|
|
3
|
+
import type { Ref } from "vue";
|
|
4
|
+
import type { Pane } from "../types";
|
|
3
5
|
import { gsap } from "gsap";
|
|
4
6
|
import { Flip } from "gsap/Flip";
|
|
5
|
-
import { Pane } from "../types";
|
|
6
7
|
|
|
7
8
|
gsap.registerPlugin(Flip);
|
|
8
9
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, watch, onBeforeUnmount, nextTick, computed } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { colors, colorPickerColors } from "./colors";
|
|
4
|
+
import type { Color } from "./colors";
|
|
4
5
|
import {
|
|
5
6
|
offset,
|
|
6
7
|
flip,
|
|
@@ -257,7 +257,7 @@ const scrollview = ref<HTMLElement | null>(null);
|
|
|
257
257
|
const fetchInProgress = ref<boolean>(false);
|
|
258
258
|
const allowScroll = ref<boolean>(false);
|
|
259
259
|
const isScrolling = ref<boolean>(false);
|
|
260
|
-
let scrollTimeout:
|
|
260
|
+
let scrollTimeout: ReturnType<typeof setTimeout> | undefined;
|
|
261
261
|
const handleScroll = () => {
|
|
262
262
|
// Set isScrolling to true when scrolling starts
|
|
263
263
|
if (allowScroll.value) {
|