@soave/ui 0.3.2 → 0.5.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/dist/adapters/css-variables.d.ts +2 -1
- package/dist/adapters/css-variables.d.ts.map +1 -0
- package/dist/adapters/headless.d.ts +2 -1
- package/dist/adapters/headless.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +6 -5
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/tailwind.d.ts +2 -1
- package/dist/adapters/tailwind.d.ts.map +1 -0
- package/dist/adapters/types.d.ts +2 -1
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters.d.ts +2 -0
- package/dist/{adapters/css-variables.mjs → adapters.mjs} +33 -2
- package/dist/adapters.mjs.map +1 -0
- package/dist/components/Alert.vue.d.ts +23 -0
- package/dist/components/Alert.vue.d.ts.map +1 -0
- package/dist/components/AlertDescription.vue.d.ts +18 -0
- package/dist/components/AlertDescription.vue.d.ts.map +1 -0
- package/dist/components/AlertTitle.vue.d.ts +18 -0
- package/dist/components/AlertTitle.vue.d.ts.map +1 -0
- package/dist/components/Button.vue.d.ts +35 -0
- package/dist/components/Button.vue.d.ts.map +1 -0
- package/dist/components/Card.vue.d.ts +29 -0
- package/dist/components/Card.vue.d.ts.map +1 -0
- package/dist/components/CardContent.vue.d.ts +18 -0
- package/dist/components/CardContent.vue.d.ts.map +1 -0
- package/dist/components/CardDescription.vue.d.ts +18 -0
- package/dist/components/CardDescription.vue.d.ts.map +1 -0
- package/dist/components/CardFooter.vue.d.ts +18 -0
- package/dist/components/CardFooter.vue.d.ts.map +1 -0
- package/dist/components/CardHeader.vue.d.ts +18 -0
- package/dist/components/CardHeader.vue.d.ts.map +1 -0
- package/dist/components/CardTitle.vue.d.ts +18 -0
- package/dist/components/CardTitle.vue.d.ts.map +1 -0
- package/dist/components/Checkbox.vue.d.ts +39 -0
- package/dist/components/Checkbox.vue.d.ts.map +1 -0
- package/dist/components/Dialog.vue.d.ts +46 -0
- package/dist/components/Dialog.vue.d.ts.map +1 -0
- package/dist/components/DialogContent.vue.d.ts +24 -0
- package/dist/components/DialogContent.vue.d.ts.map +1 -0
- package/dist/components/DialogDescription.vue.d.ts +21 -0
- package/dist/components/DialogDescription.vue.d.ts.map +1 -0
- package/dist/components/DialogFooter.vue.d.ts +18 -0
- package/dist/components/DialogFooter.vue.d.ts.map +1 -0
- package/dist/components/DialogHeader.vue.d.ts +18 -0
- package/dist/components/DialogHeader.vue.d.ts.map +1 -0
- package/dist/components/DialogOverlay.vue.d.ts +7 -0
- package/dist/components/DialogOverlay.vue.d.ts.map +1 -0
- package/dist/components/DialogTitle.vue.d.ts +21 -0
- package/dist/components/DialogTitle.vue.d.ts.map +1 -0
- package/dist/components/DialogTrigger.vue.d.ts +20 -0
- package/dist/components/DialogTrigger.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenu.vue.d.ts +33 -0
- package/dist/components/DropdownMenu.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenuContent.vue.d.ts +25 -0
- package/dist/components/DropdownMenuContent.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenuItem.vue.d.ts +29 -0
- package/dist/components/DropdownMenuItem.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenuLabel.vue.d.ts +18 -0
- package/dist/components/DropdownMenuLabel.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenuSeparator.vue.d.ts +3 -0
- package/dist/components/DropdownMenuSeparator.vue.d.ts.map +1 -0
- package/dist/components/DropdownMenuTrigger.vue.d.ts +24 -0
- package/dist/components/DropdownMenuTrigger.vue.d.ts.map +1 -0
- package/dist/components/FileInput.vue.d.ts +81 -0
- package/dist/components/FileInput.vue.d.ts.map +1 -0
- package/dist/components/FormError.vue.d.ts +21 -0
- package/dist/components/FormError.vue.d.ts.map +1 -0
- package/dist/components/FormField.vue.d.ts +26 -0
- package/dist/components/FormField.vue.d.ts.map +1 -0
- package/dist/components/FormInput.vue.d.ts +19 -0
- package/dist/components/FormInput.vue.d.ts.map +1 -0
- package/dist/components/FormLabel.vue.d.ts +21 -0
- package/dist/components/FormLabel.vue.d.ts.map +1 -0
- package/dist/components/FormTextarea.vue.d.ts +19 -0
- package/dist/components/FormTextarea.vue.d.ts.map +1 -0
- package/dist/components/Input.vue.d.ts +24 -0
- package/dist/components/Input.vue.d.ts.map +1 -0
- package/dist/components/Popover.vue.d.ts +38 -0
- package/dist/components/Popover.vue.d.ts.map +1 -0
- package/dist/components/PopoverContent.vue.d.ts +25 -0
- package/dist/components/PopoverContent.vue.d.ts.map +1 -0
- package/dist/components/PopoverTrigger.vue.d.ts +24 -0
- package/dist/components/PopoverTrigger.vue.d.ts.map +1 -0
- package/dist/components/RadioGroup.vue.d.ts +32 -0
- package/dist/components/RadioGroup.vue.d.ts.map +1 -0
- package/dist/components/RadioItem.vue.d.ts +40 -0
- package/dist/components/RadioItem.vue.d.ts.map +1 -0
- package/dist/components/Select.vue.d.ts +50 -0
- package/dist/components/Select.vue.d.ts.map +1 -0
- package/dist/components/SelectContent.vue.d.ts +25 -0
- package/dist/components/SelectContent.vue.d.ts.map +1 -0
- package/dist/components/SelectItem.vue.d.ts +36 -0
- package/dist/components/SelectItem.vue.d.ts.map +1 -0
- package/dist/components/SelectTrigger.vue.d.ts +36 -0
- package/dist/components/SelectTrigger.vue.d.ts.map +1 -0
- package/dist/components/SelectValue.vue.d.ts +24 -0
- package/dist/components/SelectValue.vue.d.ts.map +1 -0
- package/dist/components/Sheet.vue.d.ts +42 -0
- package/dist/components/Sheet.vue.d.ts.map +1 -0
- package/dist/components/SheetClose.vue.d.ts +20 -0
- package/dist/components/SheetClose.vue.d.ts.map +1 -0
- package/dist/components/SheetContent.vue.d.ts +18 -0
- package/dist/components/SheetContent.vue.d.ts.map +1 -0
- package/dist/components/SheetDescription.vue.d.ts +18 -0
- package/dist/components/SheetDescription.vue.d.ts.map +1 -0
- package/dist/components/SheetFooter.vue.d.ts +18 -0
- package/dist/components/SheetFooter.vue.d.ts.map +1 -0
- package/dist/components/SheetHeader.vue.d.ts +18 -0
- package/dist/components/SheetHeader.vue.d.ts.map +1 -0
- package/dist/components/SheetOverlay.vue.d.ts +3 -0
- package/dist/components/SheetOverlay.vue.d.ts.map +1 -0
- package/dist/components/SheetTitle.vue.d.ts +18 -0
- package/dist/components/SheetTitle.vue.d.ts.map +1 -0
- package/dist/components/SheetTrigger.vue.d.ts +20 -0
- package/dist/components/SheetTrigger.vue.d.ts.map +1 -0
- package/dist/components/Switch.vue.d.ts +46 -0
- package/dist/components/Switch.vue.d.ts.map +1 -0
- package/dist/components/Textarea.vue.d.ts +41 -0
- package/dist/components/Textarea.vue.d.ts.map +1 -0
- package/dist/components/Toast.vue.d.ts +35 -0
- package/dist/components/Toast.vue.d.ts.map +1 -0
- package/dist/components/ToastClose.vue.d.ts +22 -0
- package/dist/components/ToastClose.vue.d.ts.map +1 -0
- package/dist/components/ToastDescription.vue.d.ts +18 -0
- package/dist/components/ToastDescription.vue.d.ts.map +1 -0
- package/dist/components/ToastTitle.vue.d.ts +18 -0
- package/dist/components/ToastTitle.vue.d.ts.map +1 -0
- package/dist/components/Toaster.vue.d.ts +58 -0
- package/dist/components/Toaster.vue.d.ts.map +1 -0
- package/dist/components/Tooltip.vue.d.ts +34 -0
- package/dist/components/Tooltip.vue.d.ts.map +1 -0
- package/dist/components/TooltipContent.vue.d.ts +23 -0
- package/dist/components/TooltipContent.vue.d.ts.map +1 -0
- package/dist/components/TooltipTrigger.vue.d.ts +22 -0
- package/dist/components/TooltipTrigger.vue.d.ts.map +1 -0
- package/dist/components/index.d.ts +62 -13
- package/dist/components/index.d.ts.map +1 -0
- package/dist/composables/index.d.ts +18 -17
- package/dist/composables/index.d.ts.map +1 -0
- package/dist/composables/useButton.d.ts +3 -2
- package/dist/composables/useButton.d.ts.map +1 -0
- package/dist/composables/useCard.d.ts +3 -2
- package/dist/composables/useCard.d.ts.map +1 -0
- package/dist/composables/useCheckbox.d.ts +3 -2
- package/dist/composables/useCheckbox.d.ts.map +1 -0
- package/dist/composables/useDialog.d.ts +2 -1
- package/dist/composables/useDialog.d.ts.map +1 -0
- package/dist/composables/useDropdown.d.ts +3 -2
- package/dist/composables/useDropdown.d.ts.map +1 -0
- package/dist/composables/useFileInput.d.ts +3 -2
- package/dist/composables/useFileInput.d.ts.map +1 -0
- package/dist/composables/useForm.d.ts +3 -2
- package/dist/composables/useForm.d.ts.map +1 -0
- package/dist/composables/useInput.d.ts +3 -2
- package/dist/composables/useInput.d.ts.map +1 -0
- package/dist/composables/usePopover.d.ts +3 -2
- package/dist/composables/usePopover.d.ts.map +1 -0
- package/dist/composables/useRadio.d.ts +3 -2
- package/dist/composables/useRadio.d.ts.map +1 -0
- package/dist/composables/useSelect.d.ts +3 -2
- package/dist/composables/useSelect.d.ts.map +1 -0
- package/dist/composables/useSwitch.d.ts +3 -2
- package/dist/composables/useSwitch.d.ts.map +1 -0
- package/dist/composables/useTextarea.d.ts +3 -2
- package/dist/composables/useTextarea.d.ts.map +1 -0
- package/dist/composables/useTheme.d.ts +3 -2
- package/dist/composables/useTheme.d.ts.map +1 -0
- package/dist/composables/useToast.d.ts +2 -1
- package/dist/composables/useToast.d.ts.map +1 -0
- package/dist/composables/useTooltip.d.ts +3 -2
- package/dist/composables/useTooltip.d.ts.map +1 -0
- package/dist/composables/useUIConfig.d.ts +5 -4
- package/dist/composables/useUIConfig.d.ts.map +1 -0
- package/dist/composables.d.ts +2 -0
- package/dist/composables.mjs +30 -0
- package/dist/composables.mjs.map +1 -0
- package/dist/constants/errors.d.ts +1 -0
- package/dist/constants/errors.d.ts.map +1 -0
- package/dist/constants/index.d.ts +3 -2
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/logs.d.ts +1 -0
- package/dist/constants/logs.d.ts.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +2109 -6
- package/dist/index.mjs.map +1 -0
- package/dist/{adapters/tailwind.mjs → tailwind-B-R7fPT1.js} +16 -7
- package/dist/tailwind-B-R7fPT1.js.map +1 -0
- package/dist/types/alert.d.ts +2 -1
- package/dist/types/alert.d.ts.map +1 -0
- package/dist/types/button.d.ts +2 -1
- package/dist/types/button.d.ts.map +1 -0
- package/dist/types/card.d.ts +2 -1
- package/dist/types/card.d.ts.map +1 -0
- package/dist/types/checkbox.d.ts +2 -1
- package/dist/types/checkbox.d.ts.map +1 -0
- package/dist/types/composables.d.ts +10 -1
- package/dist/types/composables.d.ts.map +1 -0
- package/dist/types/config.d.ts +6 -5
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/dialog.d.ts +2 -1
- package/dist/types/dialog.d.ts.map +1 -0
- package/dist/types/dropdown.d.ts +3 -2
- package/dist/types/dropdown.d.ts.map +1 -0
- package/dist/types/file-input.d.ts +2 -1
- package/dist/types/file-input.d.ts.map +1 -0
- package/dist/types/form.d.ts +2 -1
- package/dist/types/form.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -21
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/input.d.ts +2 -1
- package/dist/types/input.d.ts.map +1 -0
- package/dist/types/popover.d.ts +3 -2
- package/dist/types/popover.d.ts.map +1 -0
- package/dist/types/radio.d.ts +2 -1
- package/dist/types/radio.d.ts.map +1 -0
- package/dist/types/select.d.ts +2 -1
- package/dist/types/select.d.ts.map +1 -0
- package/dist/types/sheet.d.ts +2 -1
- package/dist/types/sheet.d.ts.map +1 -0
- package/dist/types/switch.d.ts +2 -1
- package/dist/types/switch.d.ts.map +1 -0
- package/dist/types/textarea.d.ts +2 -1
- package/dist/types/textarea.d.ts.map +1 -0
- package/dist/types/theme.d.ts +1 -0
- package/dist/types/theme.d.ts.map +1 -0
- package/dist/types/toast.d.ts +1 -0
- package/dist/types/toast.d.ts.map +1 -0
- package/dist/types/tooltip.d.ts +3 -2
- package/dist/types/tooltip.d.ts.map +1 -0
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/useTheme-C2uPqAtQ.js +1175 -0
- package/dist/useTheme-C2uPqAtQ.js.map +1 -0
- package/dist/utils/cn.d.ts +2 -1
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/deepMerge.d.ts +2 -1
- package/dist/utils/deepMerge.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -0
- package/package.json +6 -4
- package/dist/adapters/headless.mjs +0 -7
- package/dist/adapters/index.mjs +0 -11
- package/dist/adapters/types.mjs +0 -10
- package/dist/build.config.d.ts +0 -2
- package/dist/build.config.mjs +0 -14
- package/dist/components/Button.vue +0 -41
- package/dist/components/Card.vue +0 -24
- package/dist/components/Checkbox.vue +0 -47
- package/dist/components/Dialog.vue +0 -105
- package/dist/components/Input.vue +0 -48
- package/dist/components/RadioGroup.vue +0 -45
- package/dist/components/RadioItem.vue +0 -65
- package/dist/components/Select.vue +0 -114
- package/dist/components/SelectContent.vue +0 -54
- package/dist/components/SelectItem.vue +0 -61
- package/dist/components/SelectTrigger.vue +0 -75
- package/dist/components/Switch.vue +0 -45
- package/dist/components/Textarea.vue +0 -55
- package/dist/components/index.mjs +0 -13
- package/dist/composables/index.mjs +0 -17
- package/dist/composables/useButton.mjs +0 -22
- package/dist/composables/useCard.mjs +0 -11
- package/dist/composables/useCheckbox.mjs +0 -18
- package/dist/composables/useDialog.mjs +0 -19
- package/dist/composables/useDropdown.mjs +0 -170
- package/dist/composables/useFileInput.mjs +0 -137
- package/dist/composables/useForm.mjs +0 -159
- package/dist/composables/useInput.mjs +0 -31
- package/dist/composables/usePopover.mjs +0 -113
- package/dist/composables/useRadio.mjs +0 -23
- package/dist/composables/useSelect.mjs +0 -42
- package/dist/composables/useSwitch.mjs +0 -17
- package/dist/composables/useTextarea.mjs +0 -29
- package/dist/composables/useTheme.mjs +0 -89
- package/dist/composables/useToast.mjs +0 -64
- package/dist/composables/useTooltip.mjs +0 -125
- package/dist/composables/useUIConfig.mjs +0 -53
- package/dist/constants/errors.mjs +0 -18
- package/dist/constants/index.mjs +0 -2
- package/dist/constants/logs.mjs +0 -17
- package/dist/env.d.ts +0 -11
- package/dist/styles/css-variables.css +0 -1
- package/dist/styles/index.d.ts +0 -1
- package/dist/styles/index.mjs +0 -1
- package/dist/types/alert.mjs +0 -0
- package/dist/types/button.mjs +0 -0
- package/dist/types/card.mjs +0 -0
- package/dist/types/checkbox.mjs +0 -0
- package/dist/types/composables.mjs +0 -0
- package/dist/types/config.mjs +0 -15
- package/dist/types/dialog.mjs +0 -1
- package/dist/types/dropdown.mjs +0 -1
- package/dist/types/file-input.mjs +0 -0
- package/dist/types/form.mjs +0 -0
- package/dist/types/index.mjs +0 -21
- package/dist/types/input.mjs +0 -0
- package/dist/types/popover.mjs +0 -1
- package/dist/types/radio.mjs +0 -1
- package/dist/types/select.mjs +0 -1
- package/dist/types/sheet.mjs +0 -1
- package/dist/types/switch.mjs +0 -0
- package/dist/types/textarea.mjs +0 -0
- package/dist/types/theme.mjs +0 -42
- package/dist/types/toast.mjs +0 -0
- package/dist/types/tooltip.mjs +0 -1
- package/dist/types/utils.mjs +0 -0
- package/dist/utils/cn.mjs +0 -5
- package/dist/utils/deepMerge.mjs +0 -18
- package/dist/utils/index.mjs +0 -2
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { computed, ref, readonly } from "vue";
|
|
2
|
-
export const useTextarea = (props) => {
|
|
3
|
-
const is_focused = ref(false);
|
|
4
|
-
const state = computed(() => ({
|
|
5
|
-
size: props.value.size ?? "md",
|
|
6
|
-
disabled: props.value.disabled ?? false,
|
|
7
|
-
readonly: props.value.readonly ?? false,
|
|
8
|
-
has_error: !!props.value.error,
|
|
9
|
-
resize: props.value.resize ?? "vertical"
|
|
10
|
-
}));
|
|
11
|
-
const aria_attributes = computed(() => ({
|
|
12
|
-
"aria-invalid": state.value.has_error || void 0,
|
|
13
|
-
"aria-describedby": props.value.error_id,
|
|
14
|
-
"aria-readonly": state.value.readonly || void 0
|
|
15
|
-
}));
|
|
16
|
-
const handleFocus = () => {
|
|
17
|
-
is_focused.value = true;
|
|
18
|
-
};
|
|
19
|
-
const handleBlur = () => {
|
|
20
|
-
is_focused.value = false;
|
|
21
|
-
};
|
|
22
|
-
return {
|
|
23
|
-
state: readonly(state),
|
|
24
|
-
is_focused,
|
|
25
|
-
aria_attributes: readonly(aria_attributes),
|
|
26
|
-
handleFocus,
|
|
27
|
-
handleBlur
|
|
28
|
-
};
|
|
29
|
-
};
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { ref, computed, watch, onMounted, onUnmounted } from "vue";
|
|
2
|
-
const DEFAULT_OPTIONS = {
|
|
3
|
-
default_mode: "system",
|
|
4
|
-
storage_key: "soave-ui-theme",
|
|
5
|
-
attribute: "data-theme"
|
|
6
|
-
};
|
|
7
|
-
export function useTheme(options = {}) {
|
|
8
|
-
const merged_options = { ...DEFAULT_OPTIONS, ...options };
|
|
9
|
-
const mode = ref(merged_options.default_mode);
|
|
10
|
-
let media_query = null;
|
|
11
|
-
const getSystemTheme = () => {
|
|
12
|
-
if (typeof window === "undefined") return "light";
|
|
13
|
-
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
14
|
-
};
|
|
15
|
-
const resolved_mode = computed(() => {
|
|
16
|
-
if (mode.value === "system") {
|
|
17
|
-
return getSystemTheme();
|
|
18
|
-
}
|
|
19
|
-
return mode.value;
|
|
20
|
-
});
|
|
21
|
-
const applyTheme = (theme) => {
|
|
22
|
-
if (typeof document === "undefined") return;
|
|
23
|
-
const root = document.documentElement;
|
|
24
|
-
root.setAttribute(merged_options.attribute, theme);
|
|
25
|
-
if (theme === "dark") {
|
|
26
|
-
root.classList.add("dark");
|
|
27
|
-
} else {
|
|
28
|
-
root.classList.remove("dark");
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
const setMode = (new_mode) => {
|
|
32
|
-
mode.value = new_mode;
|
|
33
|
-
if (typeof localStorage !== "undefined") {
|
|
34
|
-
localStorage.setItem(merged_options.storage_key, new_mode);
|
|
35
|
-
}
|
|
36
|
-
applyTheme(resolved_mode.value);
|
|
37
|
-
};
|
|
38
|
-
const toggleMode = () => {
|
|
39
|
-
const next_mode = resolved_mode.value === "light" ? "dark" : "light";
|
|
40
|
-
setMode(next_mode);
|
|
41
|
-
};
|
|
42
|
-
const handleSystemThemeChange = (event) => {
|
|
43
|
-
if (mode.value === "system") {
|
|
44
|
-
applyTheme(event.matches ? "dark" : "light");
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
onMounted(() => {
|
|
48
|
-
if (typeof localStorage !== "undefined") {
|
|
49
|
-
const stored = localStorage.getItem(merged_options.storage_key);
|
|
50
|
-
if (stored && ["light", "dark", "system"].includes(stored)) {
|
|
51
|
-
mode.value = stored;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (typeof window !== "undefined") {
|
|
55
|
-
media_query = window.matchMedia("(prefers-color-scheme: dark)");
|
|
56
|
-
media_query.addEventListener("change", handleSystemThemeChange);
|
|
57
|
-
}
|
|
58
|
-
applyTheme(resolved_mode.value);
|
|
59
|
-
});
|
|
60
|
-
onUnmounted(() => {
|
|
61
|
-
if (media_query) {
|
|
62
|
-
media_query.removeEventListener("change", handleSystemThemeChange);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
watch(mode, () => {
|
|
66
|
-
applyTheme(resolved_mode.value);
|
|
67
|
-
});
|
|
68
|
-
return {
|
|
69
|
-
mode,
|
|
70
|
-
resolved_mode,
|
|
71
|
-
setMode,
|
|
72
|
-
toggleMode
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export function generateThemeCSS(light, dark) {
|
|
76
|
-
const formatColor = (key, value) => {
|
|
77
|
-
const css_key = key.replace(/_/g, "-");
|
|
78
|
-
return ` --${css_key}: ${value};`;
|
|
79
|
-
};
|
|
80
|
-
const lightCSS = Object.entries(light).map(([key, value]) => formatColor(key, value)).join("\n");
|
|
81
|
-
const darkCSS = Object.entries(dark).map(([key, value]) => formatColor(key, value)).join("\n");
|
|
82
|
-
return `:root {
|
|
83
|
-
${lightCSS}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.dark {
|
|
87
|
-
${darkCSS}
|
|
88
|
-
}`;
|
|
89
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ref } from "vue";
|
|
2
|
-
const toasts = ref([]);
|
|
3
|
-
let toast_counter = 0;
|
|
4
|
-
const generateId = () => {
|
|
5
|
-
toast_counter++;
|
|
6
|
-
return `toast-${toast_counter}-${Date.now()}`;
|
|
7
|
-
};
|
|
8
|
-
export function useToast() {
|
|
9
|
-
const add = (props) => {
|
|
10
|
-
const id = props.id ?? generateId();
|
|
11
|
-
const toast2 = {
|
|
12
|
-
id,
|
|
13
|
-
title: props.title,
|
|
14
|
-
description: props.description,
|
|
15
|
-
variant: props.variant ?? "default",
|
|
16
|
-
duration: props.duration ?? 5e3,
|
|
17
|
-
dismissible: props.dismissible ?? true,
|
|
18
|
-
action: props.action,
|
|
19
|
-
created_at: Date.now()
|
|
20
|
-
};
|
|
21
|
-
toasts.value = [...toasts.value, toast2];
|
|
22
|
-
if (toast2.duration > 0) {
|
|
23
|
-
setTimeout(() => {
|
|
24
|
-
dismiss(id);
|
|
25
|
-
}, toast2.duration);
|
|
26
|
-
}
|
|
27
|
-
return id;
|
|
28
|
-
};
|
|
29
|
-
const dismiss = (id) => {
|
|
30
|
-
toasts.value = toasts.value.filter((t) => t.id !== id);
|
|
31
|
-
};
|
|
32
|
-
const dismissAll = () => {
|
|
33
|
-
toasts.value = [];
|
|
34
|
-
};
|
|
35
|
-
const update = (id, props) => {
|
|
36
|
-
toasts.value = toasts.value.map((toast2) => {
|
|
37
|
-
if (toast2.id === id) {
|
|
38
|
-
return {
|
|
39
|
-
...toast2,
|
|
40
|
-
...props,
|
|
41
|
-
id: toast2.id,
|
|
42
|
-
created_at: toast2.created_at
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return toast2;
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
return {
|
|
49
|
-
toasts: [...toasts.value],
|
|
50
|
-
add,
|
|
51
|
-
dismiss,
|
|
52
|
-
dismissAll,
|
|
53
|
-
update
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export const toast = {
|
|
57
|
-
default: (props) => useToast().add({ ...props, variant: "default" }),
|
|
58
|
-
success: (props) => useToast().add({ ...props, variant: "success" }),
|
|
59
|
-
error: (props) => useToast().add({ ...props, variant: "error" }),
|
|
60
|
-
warning: (props) => useToast().add({ ...props, variant: "warning" }),
|
|
61
|
-
info: (props) => useToast().add({ ...props, variant: "info" }),
|
|
62
|
-
dismiss: (id) => useToast().dismiss(id),
|
|
63
|
-
dismissAll: () => useToast().dismissAll()
|
|
64
|
-
};
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { ref, computed, onUnmounted } from "vue";
|
|
2
|
-
let tooltip_counter = 0;
|
|
3
|
-
export function useTooltip(props) {
|
|
4
|
-
const is_open = ref(false);
|
|
5
|
-
const trigger_ref = ref(null);
|
|
6
|
-
const content_ref = ref(null);
|
|
7
|
-
const tooltip_id = `tooltip-${++tooltip_counter}`;
|
|
8
|
-
let show_timeout = null;
|
|
9
|
-
let hide_timeout = null;
|
|
10
|
-
const clearTimeouts = () => {
|
|
11
|
-
if (show_timeout) {
|
|
12
|
-
clearTimeout(show_timeout);
|
|
13
|
-
show_timeout = null;
|
|
14
|
-
}
|
|
15
|
-
if (hide_timeout) {
|
|
16
|
-
clearTimeout(hide_timeout);
|
|
17
|
-
hide_timeout = null;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const show = () => {
|
|
21
|
-
if (props.value.disabled) return;
|
|
22
|
-
clearTimeouts();
|
|
23
|
-
is_open.value = true;
|
|
24
|
-
};
|
|
25
|
-
const hide = () => {
|
|
26
|
-
clearTimeouts();
|
|
27
|
-
is_open.value = false;
|
|
28
|
-
};
|
|
29
|
-
const handleMouseEnter = () => {
|
|
30
|
-
if (props.value.disabled) return;
|
|
31
|
-
clearTimeouts();
|
|
32
|
-
const delay = props.value.delay_duration ?? 200;
|
|
33
|
-
show_timeout = setTimeout(() => {
|
|
34
|
-
is_open.value = true;
|
|
35
|
-
}, delay);
|
|
36
|
-
};
|
|
37
|
-
const handleMouseLeave = () => {
|
|
38
|
-
clearTimeouts();
|
|
39
|
-
const skip_delay = props.value.skip_delay_duration ?? 100;
|
|
40
|
-
hide_timeout = setTimeout(() => {
|
|
41
|
-
is_open.value = false;
|
|
42
|
-
}, skip_delay);
|
|
43
|
-
};
|
|
44
|
-
const handleFocus = () => {
|
|
45
|
-
if (props.value.disabled) return;
|
|
46
|
-
show();
|
|
47
|
-
};
|
|
48
|
-
const handleBlur = () => {
|
|
49
|
-
hide();
|
|
50
|
-
};
|
|
51
|
-
const position_styles = computed(() => {
|
|
52
|
-
if (!trigger_ref.value || !is_open.value) {
|
|
53
|
-
return {};
|
|
54
|
-
}
|
|
55
|
-
const side = props.value.side ?? "top";
|
|
56
|
-
const align = props.value.align ?? "center";
|
|
57
|
-
const offset = 8;
|
|
58
|
-
const styles = {
|
|
59
|
-
position: "absolute",
|
|
60
|
-
zIndex: "50"
|
|
61
|
-
};
|
|
62
|
-
switch (side) {
|
|
63
|
-
case "top":
|
|
64
|
-
styles.bottom = "100%";
|
|
65
|
-
styles.marginBottom = `${offset}px`;
|
|
66
|
-
break;
|
|
67
|
-
case "bottom":
|
|
68
|
-
styles.top = "100%";
|
|
69
|
-
styles.marginTop = `${offset}px`;
|
|
70
|
-
break;
|
|
71
|
-
case "left":
|
|
72
|
-
styles.right = "100%";
|
|
73
|
-
styles.marginRight = `${offset}px`;
|
|
74
|
-
break;
|
|
75
|
-
case "right":
|
|
76
|
-
styles.left = "100%";
|
|
77
|
-
styles.marginLeft = `${offset}px`;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
if (side === "top" || side === "bottom") {
|
|
81
|
-
switch (align) {
|
|
82
|
-
case "start":
|
|
83
|
-
styles.left = "0";
|
|
84
|
-
break;
|
|
85
|
-
case "center":
|
|
86
|
-
styles.left = "50%";
|
|
87
|
-
styles.transform = "translateX(-50%)";
|
|
88
|
-
break;
|
|
89
|
-
case "end":
|
|
90
|
-
styles.right = "0";
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
} else {
|
|
94
|
-
switch (align) {
|
|
95
|
-
case "start":
|
|
96
|
-
styles.top = "0";
|
|
97
|
-
break;
|
|
98
|
-
case "center":
|
|
99
|
-
styles.top = "50%";
|
|
100
|
-
styles.transform = "translateY(-50%)";
|
|
101
|
-
break;
|
|
102
|
-
case "end":
|
|
103
|
-
styles.bottom = "0";
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return styles;
|
|
108
|
-
});
|
|
109
|
-
onUnmounted(() => {
|
|
110
|
-
clearTimeouts();
|
|
111
|
-
});
|
|
112
|
-
return {
|
|
113
|
-
is_open,
|
|
114
|
-
trigger_ref,
|
|
115
|
-
content_ref,
|
|
116
|
-
tooltip_id,
|
|
117
|
-
position_styles,
|
|
118
|
-
show,
|
|
119
|
-
hide,
|
|
120
|
-
handleMouseEnter,
|
|
121
|
-
handleMouseLeave,
|
|
122
|
-
handleFocus,
|
|
123
|
-
handleBlur
|
|
124
|
-
};
|
|
125
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { inject, provide, reactive, readonly } from "vue";
|
|
2
|
-
import { DEFAULT_UI_CONFIG } from "../types/config.mjs";
|
|
3
|
-
import { tailwindAdapter } from "../adapters/tailwind.mjs";
|
|
4
|
-
import { deepMerge } from "../utils/deepMerge.mjs";
|
|
5
|
-
import { COMPONENT_ERRORS } from "../constants/errors.mjs";
|
|
6
|
-
import { CONFIG_LOGS } from "../constants/logs.mjs";
|
|
7
|
-
export const UI_PROVIDER_KEY = Symbol("ui-provider");
|
|
8
|
-
export const UI_CONFIG_KEY = Symbol("ui-config");
|
|
9
|
-
export const useUIProvider = (config = {}, adapter = tailwindAdapter) => {
|
|
10
|
-
const merged_config = reactive(
|
|
11
|
-
deepMerge(DEFAULT_UI_CONFIG, config)
|
|
12
|
-
);
|
|
13
|
-
const context = {
|
|
14
|
-
config: merged_config,
|
|
15
|
-
adapter
|
|
16
|
-
};
|
|
17
|
-
provide(UI_PROVIDER_KEY, context);
|
|
18
|
-
provide(UI_CONFIG_KEY, merged_config);
|
|
19
|
-
if (import.meta.env.DEV) {
|
|
20
|
-
console.debug(CONFIG_LOGS.PROVIDER_INITIALIZED, context);
|
|
21
|
-
}
|
|
22
|
-
return context;
|
|
23
|
-
};
|
|
24
|
-
export function useUI(component) {
|
|
25
|
-
const context = inject(UI_PROVIDER_KEY, null);
|
|
26
|
-
if (!context) {
|
|
27
|
-
if (import.meta.env.DEV) {
|
|
28
|
-
console.warn(COMPONENT_ERRORS.PROVIDER_NOT_FOUND);
|
|
29
|
-
}
|
|
30
|
-
return readonly(DEFAULT_UI_CONFIG[component]);
|
|
31
|
-
}
|
|
32
|
-
return readonly(context.config[component]);
|
|
33
|
-
}
|
|
34
|
-
export const useUIConfig = () => {
|
|
35
|
-
const context = inject(UI_PROVIDER_KEY, null);
|
|
36
|
-
if (!context) {
|
|
37
|
-
if (import.meta.env.DEV) {
|
|
38
|
-
console.warn(COMPONENT_ERRORS.PROVIDER_NOT_FOUND);
|
|
39
|
-
}
|
|
40
|
-
return readonly(DEFAULT_UI_CONFIG);
|
|
41
|
-
}
|
|
42
|
-
return readonly(context.config);
|
|
43
|
-
};
|
|
44
|
-
export const useStyleAdapter = () => {
|
|
45
|
-
const context = inject(UI_PROVIDER_KEY, null);
|
|
46
|
-
if (!context) {
|
|
47
|
-
if (import.meta.env.DEV) {
|
|
48
|
-
console.warn(COMPONENT_ERRORS.PROVIDER_NOT_FOUND);
|
|
49
|
-
}
|
|
50
|
-
return tailwindAdapter;
|
|
51
|
-
}
|
|
52
|
-
return context.adapter;
|
|
53
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export const FORM_ERRORS = {
|
|
2
|
-
FIELD_NOT_FOUND: "\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u30B9\u30AD\u30FC\u30DE\u306B\u5B58\u5728\u3057\u307E\u305B\u3093",
|
|
3
|
-
VALIDATION_FAILED: "\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
4
|
-
SUBMIT_FAILED: "\u30D5\u30A9\u30FC\u30E0\u306E\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
5
|
-
SCHEMA_INVALID: "\u7121\u52B9\u306A\u30B9\u30AD\u30FC\u30DE\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"
|
|
6
|
-
};
|
|
7
|
-
export const COMPONENT_ERRORS = {
|
|
8
|
-
INVALID_VARIANT: "\u7121\u52B9\u306Avariant\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F",
|
|
9
|
-
INVALID_SIZE: "\u7121\u52B9\u306Asize\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F",
|
|
10
|
-
PROVIDER_NOT_FOUND: "UIProvider\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092UIProvider\u3067\u30E9\u30C3\u30D7\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
11
|
-
};
|
|
12
|
-
export const DIALOG_ERRORS = {
|
|
13
|
-
ALREADY_OPEN: "\u30C0\u30A4\u30A2\u30ED\u30B0\u306F\u65E2\u306B\u958B\u3044\u3066\u3044\u307E\u3059",
|
|
14
|
-
ALREADY_CLOSED: "\u30C0\u30A4\u30A2\u30ED\u30B0\u306F\u65E2\u306B\u9589\u3058\u3066\u3044\u307E\u3059"
|
|
15
|
-
};
|
|
16
|
-
export const INPUT_ERRORS = {
|
|
17
|
-
INVALID_TYPE: "\u7121\u52B9\u306Ainput\u30BF\u30A4\u30D7\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"
|
|
18
|
-
};
|
package/dist/constants/index.mjs
DELETED
package/dist/constants/logs.mjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const FORM_LOGS = {
|
|
2
|
-
FIELD_VALIDATED: (field) => `\u30D5\u30A3\u30FC\u30EB\u30C9 "${field}" \u306E\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F`,
|
|
3
|
-
FORM_SUBMITTED: "\u30D5\u30A9\u30FC\u30E0\u304C\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F",
|
|
4
|
-
FORM_RESET: "\u30D5\u30A9\u30FC\u30E0\u304C\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F",
|
|
5
|
-
VALIDATION_STARTED: "\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3057\u307E\u3059"
|
|
6
|
-
};
|
|
7
|
-
export const COMPONENT_LOGS = {
|
|
8
|
-
DIALOG_OPENED: "\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u958B\u304B\u308C\u307E\u3057\u305F",
|
|
9
|
-
DIALOG_CLOSED: "\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u9589\u3058\u3089\u308C\u307E\u3057\u305F",
|
|
10
|
-
BUTTON_CLICKED: "\u30DC\u30BF\u30F3\u304C\u30AF\u30EA\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F",
|
|
11
|
-
INPUT_FOCUSED: "\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u5F53\u305F\u308A\u307E\u3057\u305F",
|
|
12
|
-
INPUT_BLURRED: "\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u304B\u3089\u30D5\u30A9\u30FC\u30AB\u30B9\u304C\u5916\u308C\u307E\u3057\u305F"
|
|
13
|
-
};
|
|
14
|
-
export const CONFIG_LOGS = {
|
|
15
|
-
PROVIDER_INITIALIZED: "UIProvider\u304C\u521D\u671F\u5316\u3055\u308C\u307E\u3057\u305F",
|
|
16
|
-
CONFIG_UPDATED: "UI\u8A2D\u5B9A\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F"
|
|
17
|
-
};
|
package/dist/env.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--color-primary:#0080ff;--color-primary-foreground:#fff;--color-primary-hover:#0073e6;--color-primary-active:#06c;--color-secondary:#f5f5f5;--color-secondary-foreground:#000;--color-secondary-hover:#e6e6e6;--color-accent:#141414;--color-accent-foreground:#fff;--color-destructive:#ef4343;--color-destructive-foreground:#fff;--color-ghost-hover:#f1f5f9;--color-input:#f1f5f9;--color-input-border:#dbe6f0;--color-input-error:#ef4343;--color-card:#fff;--color-card-border:#dbe6f0;--color-card-foreground:#000;--color-background:#fff;--color-foreground:#000;--color-muted:#f1f5f9;--color-muted-foreground:#4573a1;--color-popover:#fff;--color-popover-foreground:#000;--color-alert-info:#e6f2ff;--color-alert-info-border:#9cf;--color-alert-info-foreground:#004d99;--color-alert-success:#e6ffe6;--color-alert-success-border:#9f9;--color-alert-success-foreground:green;--color-alert-warning:#fff7e6;--color-alert-warning-border:#fd9;--color-alert-warning-foreground:#805500;--size-xs:0.75rem;--size-sm:0.875rem;--size-md:1rem;--size-lg:1.125rem;--size-xl:1.25rem;--space-0-5:0.125rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--space-16:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.625rem;--radius-full:9999px;--border-width-1:1px;--border-width-2:2px;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-family-mono:"Courier New",monospace;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--transition-fast:150ms cubic-bezier(0.16,1,0.3,1);--transition-normal:250ms cubic-bezier(0.16,1,0.3,1);--transition-slow:350ms cubic-bezier(0.16,1,0.3,1);--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--z-dropdown:50;--z-sticky:100;--z-fixed:200;--z-modal-backdrop:300;--z-modal:400;--z-popover:500;--z-tooltip:600}.button{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-family-base);font-size:var(--size-sm);font-weight:var(--font-weight-medium);gap:var(--space-2);justify-content:center;transition:all var(--transition-normal);white-space:nowrap}.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button--primary{background-color:var(--color-primary);border:var(--border-width-1) solid var(--color-primary);color:var(--color-primary-foreground)}.button--primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button--primary:active:not(:disabled){background-color:var(--color-primary-active)}.button--secondary{background-color:var(--color-secondary);border:var(--border-width-1) solid var(--color-input-border);color:var(--color-secondary-foreground)}.button--secondary:hover:not(:disabled){background-color:var(--color-secondary-hover)}.button--outline{background-color:transparent;border:var(--border-width-1) solid var(--color-input-border);color:var(--color-foreground)}.button--outline:hover:not(:disabled){background-color:var(--color-ghost-hover)}.button--ghost{background-color:transparent;border:none;color:var(--color-foreground)}.button--ghost:hover:not(:disabled){background-color:var(--color-ghost-hover)}.button--destructive{background-color:var(--color-destructive);border:var(--border-width-1) solid var(--color-destructive);color:var(--color-destructive-foreground)}.button--destructive:hover:not(:disabled){background-color:#ed2c2c}.button--sm{font-size:var(--size-sm);height:var(--space-8);padding:var(--space-2) var(--space-3)}.button--md{height:var(--space-10);padding:var(--space-2) var(--space-4)}.button--lg{font-size:var(--size-lg);height:var(--space-11);padding:var(--space-3) var(--space-8)}.button--disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button--loading{cursor:wait}.input{background-color:var(--color-background);border:var(--border-width-1) solid var(--color-input-border);border-radius:var(--radius-md);display:flex;font-family:var(--font-family-base);font-size:var(--size-sm);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.input::-moz-placeholder{color:var(--color-muted-foreground)}.input::placeholder{color:var(--color-muted-foreground)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,128,255,.1);outline:none}.input--sm{font-size:var(--size-sm);height:var(--space-8);padding:var(--space-1) var(--space-2)}.input--md{height:var(--space-10);padding:var(--space-2) var(--space-3)}.input--lg{font-size:var(--size-lg);height:var(--space-11);padding:var(--space-3) var(--space-4)}.input--error{border-color:var(--color-input-error)}.input--error:focus{box-shadow:0 0 0 3px rgba(239,67,67,.1)}.input--disabled{cursor:not-allowed;opacity:.7}.input--disabled,.input--readonly{background-color:var(--color-muted)}.textarea{background-color:var(--color-background);border:var(--border-width-1) solid var(--color-input-border);border-radius:var(--radius-md);display:flex;font-family:var(--font-family-base);font-size:var(--size-sm);padding:var(--space-2) var(--space-3);resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.textarea::-moz-placeholder{color:var(--color-muted-foreground)}.textarea::placeholder{color:var(--color-muted-foreground)}.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,128,255,.1);outline:none}.textarea--sm{font-size:var(--size-sm);min-height:80px}.textarea--md{min-height:100px}.textarea--lg{font-size:var(--size-lg);min-height:120px}.textarea--error{border-color:var(--color-input-error)}.textarea--disabled{cursor:not-allowed;opacity:.7}.textarea--disabled,.textarea--readonly{background-color:var(--color-muted)}.card{background-color:var(--color-card);border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-card-foreground)}.card--padding-sm{padding:var(--space-4)}.card--padding-md{padding:var(--space-6)}.card--padding-lg{padding:var(--space-8)}.checkbox{align-items:center;background-color:var(--color-background);border:var(--border-width-1) solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;height:1rem;justify-content:center;transition:all var(--transition-fast);width:1rem}.checkbox:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox--checked,.checkbox--indeterminate{background-color:var(--color-primary);color:var(--color-primary-foreground)}.checkbox--disabled{cursor:not-allowed;opacity:.5}.radio{align-items:center;background-color:var(--color-background);border:var(--border-width-1) solid var(--color-primary);border-radius:var(--radius-full);cursor:pointer;display:inline-flex;height:1rem;justify-content:center;transition:all var(--transition-fast);width:1rem}.radio:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.radio--checked:after{background-color:var(--color-primary);border-radius:var(--radius-full);content:"";display:block;height:.5rem;width:.5rem}.radio--disabled{cursor:not-allowed;opacity:.5}.switch{align-items:center;background-color:var(--color-input-border);border-radius:var(--radius-full);cursor:pointer;display:inline-flex;height:1.5rem;padding:2px;transition:all var(--transition-fast);width:2.75rem}.switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.switch--checked{background-color:var(--color-primary)}.switch--disabled{cursor:not-allowed;opacity:.5}.select{align-items:center;background-color:var(--color-background);border:var(--border-width-1) solid var(--color-input-border);border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:var(--size-sm);justify-content:space-between;padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,128,255,.1);outline:none}.select--sm{font-size:var(--size-sm);height:var(--space-8)}.select--md{height:var(--space-10)}.select--lg{font-size:var(--size-lg);height:var(--space-11)}.select--disabled{cursor:not-allowed;opacity:.5}.select__content{background-color:var(--color-popover);border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:24rem;min-width:8rem;overflow:auto;position:absolute;z-index:var(--z-dropdown)}.select__item{align-items:center;cursor:pointer;display:flex;font-size:var(--size-sm);padding:var(--space-2) var(--space-3);transition:background-color var(--transition-fast);width:100%}.select__item:hover{background-color:var(--color-ghost-hover)}.dialog{background-color:var(--color-background);border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);left:50%;max-width:32rem;padding:var(--space-6);position:fixed;top:50%;transform:translate(-50%,-50%);width:100%;z-index:var(--z-modal)}.dialog__overlay{background-color:rgba(0,0,0,.8);inset:0;position:fixed;z-index:var(--z-modal-backdrop)}.sheet{background-color:var(--color-background);box-shadow:var(--shadow-lg);padding:var(--space-6);position:fixed;transition:transform var(--transition-slow);z-index:var(--z-modal)}.sheet--top{border-bottom:var(--border-width-1) solid var(--color-card-border);inset:0 0 auto 0}.sheet--bottom{border-top:var(--border-width-1) solid var(--color-card-border);inset:auto 0 0 0}.sheet--left{border-right:var(--border-width-1) solid var(--color-card-border);inset:0 auto 0 0}.sheet--left,.sheet--right{height:100%;max-width:24rem;width:75%}.sheet--right{border-left:var(--border-width-1) solid var(--color-card-border);inset:0 0 0 auto}.sheet__overlay{background-color:rgba(0,0,0,.8);inset:0;position:fixed;z-index:var(--z-modal-backdrop)}.alert{border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-lg);padding:var(--space-4);position:relative;width:100%}.alert--default{background-color:var(--color-background);color:var(--color-foreground)}.alert--info{background-color:var(--color-alert-info);border-color:var(--color-alert-info-border);color:var(--color-alert-info-foreground)}.alert--success{background-color:var(--color-alert-success);border-color:var(--color-alert-success-border);color:var(--color-alert-success-foreground)}.alert--warning{background-color:var(--color-alert-warning);border-color:var(--color-alert-warning-border);color:var(--color-alert-warning-foreground)}.alert--destructive{background-color:rgba(239,67,67,.1);border-color:rgba(239,67,67,.5);color:var(--color-destructive)}.toast{align-items:center;border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;gap:var(--space-4);justify-content:space-between;overflow:hidden;padding:var(--space-6);padding-right:var(--space-8);width:100%}.toast--default{background-color:var(--color-background);color:var(--color-foreground)}.toast--success{background-color:var(--color-alert-success);border-color:var(--color-alert-success-border);color:var(--color-alert-success-foreground)}.toast--error{background-color:rgba(239,67,67,.1);border-color:var(--color-destructive);color:var(--color-destructive)}.toast--warning{background-color:var(--color-alert-warning);border-color:var(--color-alert-warning-border);color:var(--color-alert-warning-foreground)}.toast--info{background-color:var(--color-alert-info);border-color:var(--color-alert-info-border);color:var(--color-alert-info-foreground)}.tooltip{font-size:var(--size-sm);overflow:hidden;padding:var(--space-1) var(--space-3);z-index:var(--z-tooltip)}.popover,.tooltip{background-color:var(--color-popover);border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-popover-foreground)}.popover{padding:var(--space-4);width:18rem;z-index:var(--z-popover)}.dropdown{background-color:var(--color-popover);border:var(--border-width-1) solid var(--color-card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-popover-foreground);min-width:8rem;overflow:hidden;padding:var(--space-1);z-index:var(--z-dropdown)}.dropdown__item{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:var(--size-sm);padding:var(--space-2);transition:background-color var(--transition-fast)}.dropdown__item:hover{background-color:var(--color-ghost-hover)}.label{font-size:var(--size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}@media (prefers-color-scheme:dark){:root{--color-primary:#39f;--color-primary-foreground:#000;--color-secondary:#25292c;--color-secondary-foreground:#fff;--color-card:#171a1c;--color-card-border:#2e3338;--color-card-foreground:#fff;--color-background:#131416;--color-foreground:#fff;--color-muted:#25292c;--color-muted-foreground:#9099a2;--color-input:#25292c;--color-input-border:#3a4045;--color-popover:#1c1f21;--color-popover-foreground:#fff;--color-ghost-hover:#2e3338;--color-alert-info:#00264d;--color-alert-info-border:#06c;--color-alert-info-foreground:#9cf;--color-alert-success:#004d00;--color-alert-success-border:#00b300;--color-alert-success-foreground:#9f9;--color-alert-warning:#4d3300;--color-alert-warning-border:#e69900;--color-alert-warning-foreground:#fd9}}[data-theme=dark]{--color-primary:#39f;--color-primary-foreground:#000;--color-secondary:#25292c;--color-secondary-foreground:#fff;--color-card:#171a1c;--color-card-border:#2e3338;--color-card-foreground:#fff;--color-background:#131416;--color-foreground:#fff;--color-muted:#25292c;--color-muted-foreground:#9099a2;--color-input:#25292c;--color-input-border:#3a4045;--color-popover:#1c1f21;--color-popover-foreground:#fff;--color-ghost-hover:#2e3338;--color-alert-info:#00264d;--color-alert-info-border:#06c;--color-alert-info-foreground:#9cf;--color-alert-success:#004d00;--color-alert-success-border:#00b300;--color-alert-success-foreground:#9f9;--color-alert-warning:#4d3300;--color-alert-warning-border:#e69900;--color-alert-warning-foreground:#fd9}[data-theme=light]{--color-primary:#0080ff;--color-primary-foreground:#fff;--color-secondary:#f5f5f5;--color-secondary-foreground:#000;--color-card:#fff;--color-card-border:#dbe6f0;--color-card-foreground:#000;--color-background:#fff;--color-foreground:#000;--color-muted:#f1f5f9;--color-muted-foreground:#4573a1;--color-input:#f1f5f9;--color-input-border:#dbe6f0;--color-popover:#fff;--color-popover-foreground:#000;--color-ghost-hover:#f1f5f9;--color-alert-info:#e6f2ff;--color-alert-info-border:#9cf;--color-alert-info-foreground:#004d99;--color-alert-success:#e6ffe6;--color-alert-success-border:#9f9;--color-alert-success-foreground:green;--color-alert-warning:#fff7e6;--color-alert-warning-border:#fd9;--color-alert-warning-foreground:#805500}
|
package/dist/styles/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const CSS_VARIABLES_PATH = "./css-variables.css";
|
package/dist/styles/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const CSS_VARIABLES_PATH = "./css-variables.css";
|
package/dist/types/alert.mjs
DELETED
|
File without changes
|
package/dist/types/button.mjs
DELETED
|
File without changes
|
package/dist/types/card.mjs
DELETED
|
File without changes
|
package/dist/types/checkbox.mjs
DELETED
|
File without changes
|
|
File without changes
|
package/dist/types/config.mjs
DELETED
package/dist/types/dialog.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const DIALOG_KEY = Symbol("dialog");
|
package/dist/types/dropdown.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const DROPDOWN_CONTEXT_KEY = Symbol("dropdown-context");
|
|
File without changes
|
package/dist/types/form.mjs
DELETED
|
File without changes
|
package/dist/types/index.mjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export * from "./utils.mjs";
|
|
2
|
-
export * from "./button.mjs";
|
|
3
|
-
export * from "./input.mjs";
|
|
4
|
-
export * from "./card.mjs";
|
|
5
|
-
export * from "./dialog.mjs";
|
|
6
|
-
export * from "./form.mjs";
|
|
7
|
-
export * from "./alert.mjs";
|
|
8
|
-
export * from "./config.mjs";
|
|
9
|
-
export * from "./checkbox.mjs";
|
|
10
|
-
export * from "./radio.mjs";
|
|
11
|
-
export * from "./switch.mjs";
|
|
12
|
-
export * from "./textarea.mjs";
|
|
13
|
-
export * from "./select.mjs";
|
|
14
|
-
export * from "./file-input.mjs";
|
|
15
|
-
export * from "./toast.mjs";
|
|
16
|
-
export * from "./tooltip.mjs";
|
|
17
|
-
export * from "./popover.mjs";
|
|
18
|
-
export * from "./dropdown.mjs";
|
|
19
|
-
export * from "./sheet.mjs";
|
|
20
|
-
export * from "./theme.mjs";
|
|
21
|
-
export * from "./composables.mjs";
|
package/dist/types/input.mjs
DELETED
|
File without changes
|
package/dist/types/popover.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const POPOVER_CONTEXT_KEY = Symbol("popover-context");
|
package/dist/types/radio.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const RADIO_GROUP_KEY = Symbol("radio-group");
|
package/dist/types/select.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const SELECT_KEY = Symbol("select");
|
package/dist/types/sheet.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const SHEET_CONTEXT_KEY = Symbol("sheet-context");
|
package/dist/types/switch.mjs
DELETED
|
File without changes
|
package/dist/types/textarea.mjs
DELETED
|
File without changes
|
package/dist/types/theme.mjs
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_LIGHT_COLORS = {
|
|
2
|
-
background: "0 0% 100%",
|
|
3
|
-
foreground: "222.2 84% 4.9%",
|
|
4
|
-
card: "0 0% 100%",
|
|
5
|
-
card_foreground: "222.2 84% 4.9%",
|
|
6
|
-
popover: "0 0% 100%",
|
|
7
|
-
popover_foreground: "222.2 84% 4.9%",
|
|
8
|
-
primary: "222.2 47.4% 11.2%",
|
|
9
|
-
primary_foreground: "210 40% 98%",
|
|
10
|
-
secondary: "210 40% 96.1%",
|
|
11
|
-
secondary_foreground: "222.2 47.4% 11.2%",
|
|
12
|
-
muted: "210 40% 96.1%",
|
|
13
|
-
muted_foreground: "215.4 16.3% 46.9%",
|
|
14
|
-
accent: "210 40% 96.1%",
|
|
15
|
-
accent_foreground: "222.2 47.4% 11.2%",
|
|
16
|
-
destructive: "0 84.2% 60.2%",
|
|
17
|
-
destructive_foreground: "210 40% 98%",
|
|
18
|
-
border: "214.3 31.8% 91.4%",
|
|
19
|
-
input: "214.3 31.8% 91.4%",
|
|
20
|
-
ring: "222.2 84% 4.9%"
|
|
21
|
-
};
|
|
22
|
-
export const DEFAULT_DARK_COLORS = {
|
|
23
|
-
background: "222.2 84% 4.9%",
|
|
24
|
-
foreground: "210 40% 98%",
|
|
25
|
-
card: "222.2 84% 4.9%",
|
|
26
|
-
card_foreground: "210 40% 98%",
|
|
27
|
-
popover: "222.2 84% 4.9%",
|
|
28
|
-
popover_foreground: "210 40% 98%",
|
|
29
|
-
primary: "210 40% 98%",
|
|
30
|
-
primary_foreground: "222.2 47.4% 11.2%",
|
|
31
|
-
secondary: "217.2 32.6% 17.5%",
|
|
32
|
-
secondary_foreground: "210 40% 98%",
|
|
33
|
-
muted: "217.2 32.6% 17.5%",
|
|
34
|
-
muted_foreground: "215 20.2% 65.1%",
|
|
35
|
-
accent: "217.2 32.6% 17.5%",
|
|
36
|
-
accent_foreground: "210 40% 98%",
|
|
37
|
-
destructive: "0 62.8% 30.6%",
|
|
38
|
-
destructive_foreground: "210 40% 98%",
|
|
39
|
-
border: "217.2 32.6% 17.5%",
|
|
40
|
-
input: "217.2 32.6% 17.5%",
|
|
41
|
-
ring: "212.7 26.8% 83.9%"
|
|
42
|
-
};
|
package/dist/types/toast.mjs
DELETED
|
File without changes
|
package/dist/types/tooltip.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const TOOLTIP_CONTEXT_KEY = Symbol("tooltip-context");
|
package/dist/types/utils.mjs
DELETED
|
File without changes
|
package/dist/utils/cn.mjs
DELETED
package/dist/utils/deepMerge.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export const deepMerge = (target, source) => {
|
|
2
|
-
const output = { ...target };
|
|
3
|
-
for (const key in source) {
|
|
4
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
5
|
-
const source_value = source[key];
|
|
6
|
-
const target_value = target[key];
|
|
7
|
-
if (source_value !== null && typeof source_value === "object" && !Array.isArray(source_value) && target_value !== null && typeof target_value === "object" && !Array.isArray(target_value)) {
|
|
8
|
-
output[key] = deepMerge(
|
|
9
|
-
target_value,
|
|
10
|
-
source_value
|
|
11
|
-
);
|
|
12
|
-
} else if (source_value !== void 0) {
|
|
13
|
-
output[key] = source_value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return output;
|
|
18
|
-
};
|
package/dist/utils/index.mjs
DELETED