@katlux/toolkit 0.1.0-beta.5 → 0.1.0-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/compiled/composables/usePresetComponent.mjs +21 -16
  2. package/dist/module.cjs +52 -0
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +52 -0
  5. package/dist/runtime/components/KCalendar/KCalendar.global.d.vue.ts +11 -12
  6. package/dist/runtime/components/KCalendar/KCalendar.global.vue.d.ts +11 -12
  7. package/dist/runtime/components/KCalendar/KCalendar.logic.d.ts +1 -0
  8. package/dist/runtime/components/KCalendar/KCalendar.logic.js +25 -10
  9. package/dist/runtime/components/KCombobox/KCombobox.global.d.vue.ts +18 -10
  10. package/dist/runtime/components/KCombobox/KCombobox.global.vue +6 -2
  11. package/dist/runtime/components/KCombobox/KCombobox.global.vue.d.ts +18 -10
  12. package/dist/runtime/components/KCombobox/KCombobox.logic.d.ts +78 -0
  13. package/dist/runtime/components/KCombobox/KCombobox.logic.js +8 -3
  14. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.d.vue.ts +149 -0
  15. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue +65 -0
  16. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue.d.ts +149 -0
  17. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.d.ts +116 -0
  18. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.js +149 -0
  19. package/dist/runtime/components/KDatePicker/KDatePicker.global.d.vue.ts +56 -8
  20. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue +23 -3
  21. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue.d.ts +56 -8
  22. package/dist/runtime/components/KDatePicker/KDatePicker.logic.d.ts +22 -1
  23. package/dist/runtime/components/KDatePicker/KDatePicker.logic.js +89 -7
  24. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.d.vue.ts +54 -8
  25. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue +23 -3
  26. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue.d.ts +54 -8
  27. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.d.ts +22 -1
  28. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.js +148 -7
  29. package/dist/runtime/components/KDropdown/KDropdown.global.d.vue.ts +18 -0
  30. package/dist/runtime/components/KDropdown/KDropdown.global.vue +13 -4
  31. package/dist/runtime/components/KDropdown/KDropdown.global.vue.d.ts +18 -0
  32. package/dist/runtime/components/KDropdown/KDropdown.logic.d.ts +28 -1
  33. package/dist/runtime/components/KDropdown/KDropdown.logic.js +85 -4
  34. package/dist/runtime/components/KGrid/KGrid.global.d.vue.ts +7 -56
  35. package/dist/runtime/components/KGrid/KGrid.global.vue +9 -2
  36. package/dist/runtime/components/KGrid/KGrid.global.vue.d.ts +7 -56
  37. package/dist/runtime/components/KHourPicker/KHourPicker.global.d.vue.ts +20 -0
  38. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue +25 -12
  39. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue.d.ts +20 -0
  40. package/dist/runtime/components/KHourPicker/KHourPicker.logic.d.ts +14 -3
  41. package/dist/runtime/components/KHourPicker/KHourPicker.logic.js +25 -10
  42. package/dist/runtime/components/KHourSelect/KHourSelect.logic.js +4 -1
  43. package/dist/runtime/components/KIcon/KIcon.global.d.vue.ts +1 -1
  44. package/dist/runtime/components/KIcon/KIcon.global.vue.d.ts +1 -1
  45. package/dist/runtime/components/KIcon/KIcon.logic.d.ts +1 -1
  46. package/dist/runtime/components/KIcon/KIcon.logic.js +13 -8
  47. package/dist/runtime/components/KLoader/KLoader.global.d.vue.ts +3 -3
  48. package/dist/runtime/components/KLoader/KLoader.global.vue.d.ts +3 -3
  49. package/dist/runtime/components/KLoader/KLoader.logic.d.ts +8 -1
  50. package/dist/runtime/components/KLoader/KLoader.logic.js +1 -0
  51. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.global.vue +1 -1
  52. package/dist/runtime/components/KModal/KModal.global.vue +4 -1
  53. package/dist/runtime/components/KModal/KModal.logic.d.ts +3 -1
  54. package/dist/runtime/components/KModal/KModal.logic.js +6 -2
  55. package/dist/runtime/components/KPanel/KPanel.global.d.vue.ts +5 -28
  56. package/dist/runtime/components/KPanel/KPanel.global.vue +12 -4
  57. package/dist/runtime/components/KPanel/KPanel.global.vue.d.ts +5 -28
  58. package/dist/runtime/components/KPanel/KPanel.logic.d.ts +10 -0
  59. package/dist/runtime/components/KPanel/KPanel.logic.js +8 -0
  60. package/dist/runtime/components/KTextbox/KTextbox.global.d.vue.ts +15 -2
  61. package/dist/runtime/components/KTextbox/KTextbox.global.vue +5 -4
  62. package/dist/runtime/components/KTextbox/KTextbox.global.vue.d.ts +15 -2
  63. package/dist/runtime/components/KTextbox/KTextbox.logic.d.ts +10 -4
  64. package/dist/runtime/components/KTextbox/KTextbox.logic.js +12 -5
  65. package/dist/runtime/components/KTree/KTree.global.d.vue.ts +1 -1
  66. package/dist/runtime/components/KTree/KTree.global.vue.d.ts +1 -1
  67. package/dist/runtime/components/KTreePicker/KTreePicker.global.d.vue.ts +2 -2
  68. package/dist/runtime/components/KTreePicker/KTreePicker.global.vue.d.ts +2 -2
  69. package/dist/runtime/components/KTreePicker/KTreePicker.logic.d.ts +77 -0
  70. package/dist/runtime/composables/usePresetComponent.d.ts +16 -0
  71. package/dist/runtime/composables/usePresetComponent.js +21 -16
  72. package/dist/runtime/presets/default/assets/scss/css-variables.css +64 -13
  73. package/dist/runtime/presets/default/assets/scss/css-variables.scss +286 -0
  74. package/dist/runtime/presets/default/assets/scss/docs.scss +52 -0
  75. package/dist/runtime/presets/default/assets/scss/index.css +72 -13
  76. package/dist/runtime/presets/default/assets/scss/index.scss +12 -0
  77. package/dist/runtime/presets/default/assets/scss/mixins.scss +94 -0
  78. package/dist/runtime/presets/default/assets/scss/reset.scss +16 -0
  79. package/dist/runtime/presets/default/components/KAccordion/KAccordion.vue +5 -2
  80. package/dist/runtime/presets/default/components/KAccordion/KAccordionItem.vue +40 -37
  81. package/dist/runtime/presets/default/components/KBulkActions/KBulkActions.vue +29 -22
  82. package/dist/runtime/presets/default/components/KButton/KButton.vue +147 -428
  83. package/dist/runtime/presets/default/components/KCalendar/KCalendar.vue +57 -53
  84. package/dist/runtime/presets/default/components/KCalendar/KCalendarMonth.vue +189 -161
  85. package/dist/runtime/presets/default/components/KCheckbox/KCheckbox.vue +46 -36
  86. package/dist/runtime/presets/default/components/KCombobox/KCombobox.d.vue.ts +3 -0
  87. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue +90 -70
  88. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue.d.ts +3 -0
  89. package/dist/runtime/presets/default/components/KCombobox/KComboboxList.vue +78 -60
  90. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.d.vue.ts +27 -0
  91. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue +190 -0
  92. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue.d.ts +27 -0
  93. package/dist/runtime/presets/default/components/KDataIterator/KDataIterator.vue +40 -31
  94. package/dist/runtime/presets/default/components/KDatatable/KDatatable.vue +110 -92
  95. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.d.vue.ts +3 -0
  96. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue +44 -25
  97. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue.d.ts +3 -0
  98. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.d.vue.ts +3 -0
  99. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue +68 -52
  100. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue.d.ts +3 -0
  101. package/dist/runtime/presets/default/components/KDropdown/KDropdown.d.vue.ts +8 -0
  102. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue +46 -25
  103. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue.d.ts +8 -0
  104. package/dist/runtime/presets/default/components/KGantt/KGantt.vue +337 -241
  105. package/dist/runtime/presets/default/components/KGantt/KGanttRuler.vue +40 -35
  106. package/dist/runtime/presets/default/components/KGantt/KGanttTimeline.vue +170 -140
  107. package/dist/runtime/presets/default/components/KGrid/KGrid.vue +62 -60
  108. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.d.vue.ts +6 -2
  109. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue +44 -28
  110. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue.d.ts +6 -2
  111. package/dist/runtime/presets/default/components/KHourSelect/KHourSelect.vue +34 -28
  112. package/dist/runtime/presets/default/components/KIcon/KIcon.d.vue.ts +1 -1
  113. package/dist/runtime/presets/default/components/KIcon/KIcon.vue +31 -22
  114. package/dist/runtime/presets/default/components/KIcon/KIcon.vue.d.ts +1 -1
  115. package/dist/runtime/presets/default/components/KLoader/KLoader.vue +53 -47
  116. package/dist/runtime/presets/default/components/KMaskTextbox/KMaskTextbox.vue +113 -84
  117. package/dist/runtime/presets/default/components/KModal/KModal.d.vue.ts +1 -0
  118. package/dist/runtime/presets/default/components/KModal/KModal.vue +64 -35
  119. package/dist/runtime/presets/default/components/KModal/KModal.vue.d.ts +1 -0
  120. package/dist/runtime/presets/default/components/KPagination/KPagination.vue +42 -40
  121. package/dist/runtime/presets/default/components/KPanel/KPanel.d.vue.ts +3 -0
  122. package/dist/runtime/presets/default/components/KPanel/KPanel.vue +95 -34
  123. package/dist/runtime/presets/default/components/KPanel/KPanel.vue.d.ts +3 -0
  124. package/dist/runtime/presets/default/components/KRadiobox/KRadiobox.vue +30 -29
  125. package/dist/runtime/presets/default/components/KRangeSlider/KRangeSlider.vue +158 -125
  126. package/dist/runtime/presets/default/components/KSlider/KSlider.vue +123 -100
  127. package/dist/runtime/presets/default/components/KTabs/KTabItem.vue +40 -37
  128. package/dist/runtime/presets/default/components/KTabs/KTabs.vue +9 -6
  129. package/dist/runtime/presets/default/components/KTextarea/KTextarea.vue +23 -20
  130. package/dist/runtime/presets/default/components/KTextbox/KTextbox.d.vue.ts +2 -1
  131. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue +49 -36
  132. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue.d.ts +2 -1
  133. package/dist/runtime/presets/default/components/KTree/KTree.vue +102 -80
  134. package/dist/runtime/presets/default/components/KTreePicker/KTreePicker.vue +55 -34
  135. package/dist/runtime/presets/default/components/KTreeView/KTreeCell.vue +31 -30
  136. package/dist/runtime/presets/default/components/KTreeView/KTreeView.vue +34 -27
  137. package/package.json +5 -5
@@ -5,16 +5,17 @@ import { computed } from "vue";
5
5
  import KTextboxDefault from "../../presets/default/components/KTextbox/KTextbox.vue";
6
6
  const props = defineProps(KTextboxDefaultProps);
7
7
  const emit = defineEmits(["update:modelValue"]);
8
- const { text, showClearIcon, clear } = useKTextboxLogic(props, emit);
8
+ const { text, showClear, clear } = useKTextboxLogic(props, emit);
9
9
  const presetComponent = usePresetComponent("KTextbox", KTextboxDefault);
10
10
  const templateProps = computed(() => ({
11
11
  text: text.value,
12
- showClearIcon: showClearIcon.value,
12
+ showClear: showClear.value,
13
13
  clear,
14
- placeholder: props.placeholder
14
+ placeholder: props.placeholder,
15
+ type: props.type
15
16
  }));
16
17
  </script>
17
18
 
18
19
  <template lang="pug">
19
- component(:is="presetComponent" v-bind="templateProps" @update:text="text = $event")
20
+ component(:is="presetComponent" v-bind="{ ...templateProps, ...$attrs }" @update:text="text = $event")
20
21
  </template>
@@ -1,7 +1,8 @@
1
+ import { type KTextboxProps } from './KTextbox.logic.js';
1
2
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
3
  modelValue: {
3
4
  type: StringConstructor;
4
- required: boolean;
5
+ default: string;
5
6
  };
6
7
  placeholder: {
7
8
  type: StringConstructor;
@@ -11,12 +12,17 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
11
12
  type: BooleanConstructor;
12
13
  default: boolean;
13
14
  };
15
+ type: {
16
+ type: import("vue").PropType<KTextboxProps["type"]>;
17
+ default: string;
18
+ validator: (value: string) => boolean;
19
+ };
14
20
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
21
  "update:modelValue": (value: string) => any;
16
22
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
23
  modelValue: {
18
24
  type: StringConstructor;
19
- required: boolean;
25
+ default: string;
20
26
  };
21
27
  placeholder: {
22
28
  type: StringConstructor;
@@ -26,9 +32,16 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
26
32
  type: BooleanConstructor;
27
33
  default: boolean;
28
34
  };
35
+ type: {
36
+ type: import("vue").PropType<KTextboxProps["type"]>;
37
+ default: string;
38
+ validator: (value: string) => boolean;
39
+ };
29
40
  }>> & Readonly<{
30
41
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
31
42
  }>, {
43
+ type: "number" | "text" | "url" | "search" | "password" | "email" | "tel" | undefined;
44
+ modelValue: string;
32
45
  placeholder: string;
33
46
  showClear: boolean;
34
47
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,7 +1,8 @@
1
1
  export interface KTextboxProps {
2
- modelValue: string;
3
- placeholder: string;
2
+ modelValue?: string;
3
+ placeholder?: string;
4
4
  showClear?: boolean;
5
+ type?: 'text' | 'password' | 'email' | 'url' | 'tel' | 'search' | 'number';
5
6
  }
6
7
  export interface KTextboxEmits {
7
8
  (e: 'update:modelValue', value: string): void;
@@ -11,7 +12,7 @@ export interface KTextboxEmits {
11
12
  */
12
13
  export declare function useKTextboxLogic(props: KTextboxProps, emit: KTextboxEmits): {
13
14
  text: import("vue").WritableComputedRef<string, string>;
14
- showClearIcon: import("vue").ComputedRef<boolean | undefined>;
15
+ showClear: import("vue").ComputedRef<boolean>;
15
16
  clear: () => void;
16
17
  };
17
18
  /**
@@ -20,7 +21,7 @@ export declare function useKTextboxLogic(props: KTextboxProps, emit: KTextboxEmi
20
21
  export declare const KTextboxDefaultProps: {
21
22
  modelValue: {
22
23
  type: StringConstructor;
23
- required: boolean;
24
+ default: string;
24
25
  };
25
26
  placeholder: {
26
27
  type: StringConstructor;
@@ -30,4 +31,9 @@ export declare const KTextboxDefaultProps: {
30
31
  type: BooleanConstructor;
31
32
  default: boolean;
32
33
  };
34
+ type: {
35
+ type: import("vue").PropType<KTextboxProps["type"]>;
36
+ default: string;
37
+ validator: (value: string) => boolean;
38
+ };
33
39
  };
@@ -1,25 +1,25 @@
1
1
  import { computed } from "vue";
2
2
  export function useKTextboxLogic(props, emit) {
3
3
  const text = computed({
4
- get: () => props.modelValue,
4
+ get: () => props.modelValue ?? "",
5
5
  set: (value) => emit("update:modelValue", value)
6
6
  });
7
- const showClearIcon = computed(() => {
8
- return props.showClear && text.value !== "";
7
+ const showClear = computed(() => {
8
+ return !!props.showClear && text.value !== "";
9
9
  });
10
10
  const clear = () => {
11
11
  text.value = "";
12
12
  };
13
13
  return {
14
14
  text,
15
- showClearIcon,
15
+ showClear,
16
16
  clear
17
17
  };
18
18
  }
19
19
  export const KTextboxDefaultProps = {
20
20
  modelValue: {
21
21
  type: String,
22
- required: true
22
+ default: ""
23
23
  },
24
24
  placeholder: {
25
25
  type: String,
@@ -28,5 +28,12 @@ export const KTextboxDefaultProps = {
28
28
  showClear: {
29
29
  type: Boolean,
30
30
  default: false
31
+ },
32
+ type: {
33
+ type: String,
34
+ default: "text",
35
+ validator: (value) => {
36
+ return ["text", "password", "email", "url", "tel", "search", "number"].includes(value);
37
+ }
31
38
  }
32
39
  };
@@ -66,8 +66,8 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
66
66
  };
67
67
  }>> & Readonly<{}>, {
68
68
  disabled: boolean;
69
- searchtext: string;
70
69
  labelField: string;
70
+ searchtext: string;
71
71
  multiSelect: boolean;
72
72
  iconField: string;
73
73
  isNodeSelected: (node: any) => boolean;
@@ -66,8 +66,8 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
66
66
  };
67
67
  }>> & Readonly<{}>, {
68
68
  disabled: boolean;
69
- searchtext: string;
70
69
  labelField: string;
70
+ searchtext: string;
71
71
  multiSelect: boolean;
72
72
  iconField: string;
73
73
  isNodeSelected: (node: any) => boolean;
@@ -106,9 +106,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
106
106
  disabled: boolean;
107
107
  loading: boolean;
108
108
  modelValue: any;
109
- searchbox: boolean;
110
- placeholder: string;
111
109
  dataProvider: any;
110
+ placeholder: string;
111
+ searchbox: boolean;
112
112
  closeOnSelect: boolean;
113
113
  multiSelect: boolean;
114
114
  iconField: string;
@@ -106,9 +106,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
106
106
  disabled: boolean;
107
107
  loading: boolean;
108
108
  modelValue: any;
109
- searchbox: boolean;
110
- placeholder: string;
111
109
  dataProvider: any;
110
+ placeholder: string;
111
+ searchbox: boolean;
112
112
  closeOnSelect: boolean;
113
113
  multiSelect: boolean;
114
114
  iconField: string;
@@ -0,0 +1,77 @@
1
+ import type { ADataProvider } from '@katlux/providers';
2
+ export interface KTreePickerProps {
3
+ modelValue?: any;
4
+ dataProvider: ADataProvider;
5
+ labelField: string;
6
+ placeholder?: string;
7
+ disabled?: boolean;
8
+ closeOnSelect?: boolean;
9
+ idKey?: string;
10
+ parentKey?: string;
11
+ iconField?: string;
12
+ loading?: boolean;
13
+ multiSelect?: boolean;
14
+ searchbox?: boolean;
15
+ }
16
+ export declare const KTreePickerDefaultProps: {
17
+ modelValue: {
18
+ type: PropType<any>;
19
+ default: null;
20
+ };
21
+ dataProvider: {
22
+ type: PropType<ADataProvider>;
23
+ required: boolean;
24
+ };
25
+ labelField: {
26
+ type: StringConstructor;
27
+ required: boolean;
28
+ };
29
+ placeholder: {
30
+ type: StringConstructor;
31
+ default: string;
32
+ };
33
+ disabled: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ closeOnSelect: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ idKey: {
42
+ type: StringConstructor;
43
+ default: string;
44
+ };
45
+ parentKey: {
46
+ type: StringConstructor;
47
+ default: string;
48
+ };
49
+ iconField: {
50
+ type: StringConstructor;
51
+ default: undefined;
52
+ };
53
+ loading: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
57
+ multiSelect: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
61
+ searchbox: {
62
+ type: BooleanConstructor;
63
+ default: boolean;
64
+ };
65
+ };
66
+ export declare function useKTreePickerLogic(props: KTreePickerProps, emit: any): {
67
+ selectedItems: import("vue").Ref<import("@katlux/providers").TDataRow[] | null, import("@katlux/providers").TDataRow[] | null>;
68
+ isOptionsOpen: import("vue").Ref<boolean, boolean>;
69
+ searchtext: import("vue").Ref<string, string>;
70
+ selectItem: (option: import("../KCombobox/KCombobox.logic.js").ComboboxItem) => void;
71
+ isSelected: (option: import("../KCombobox/KCombobox.logic.js").ComboboxItem) => boolean | undefined;
72
+ getSelectedContent: () => import("@katlux/providers").TDataRow[];
73
+ toggleDropdown: () => void;
74
+ closeDropdown: () => void;
75
+ filteredOptions: import("vue").ComputedRef<import("@katlux/providers").TDataRow[]>;
76
+ loading: import("vue").ComputedRef<Boolean>;
77
+ };
@@ -1,2 +1,18 @@
1
1
  import { type Component } from 'vue';
2
+ /**
3
+ * Registry mapping preset names to their respective module loaders (via import.meta.glob).
4
+ * Preset modules must inject their components here via a Nuxt Plugin.
5
+ */
6
+ export declare const presetLoadersRegistry: Map<string, Record<string, () => Promise<any>>>;
7
+ /**
8
+ * API for Nuxt modules to dynamically map their generated components
9
+ */
10
+ export declare function registerPresetComponents(presetName: string, loaders: Record<string, () => Promise<any>>): void;
11
+ /**
12
+ * Composable for dynamically loading preset components
13
+ *
14
+ * @param componentBaseName - Base name of the component (e.g., 'KButton')
15
+ * @param defaultComponent - The default preset component to fall back to
16
+ * @returns The resolved Async Component
17
+ */
2
18
  export declare function usePresetComponent(componentBaseName: string, defaultComponent: Component): import("vue").ComputedRef<any>;
@@ -1,8 +1,9 @@
1
1
  import { computed, defineAsyncComponent } from "vue";
2
2
  import { useAppConfig } from "#app";
3
- const componentCache = /* @__PURE__ */ new Map();
4
- const modernComponents = import.meta.glob("../../../../katlux-preset-modern/src/runtime/components/**/*.vue");
5
- const toolkitPresets = import.meta.glob("../presets/**/*.vue");
3
+ export const presetLoadersRegistry = /* @__PURE__ */ new Map();
4
+ export function registerPresetComponents(presetName, loaders) {
5
+ presetLoadersRegistry.set(presetName, loaders);
6
+ }
6
7
  export function usePresetComponent(componentBaseName, defaultComponent) {
7
8
  const appConfig = useAppConfig();
8
9
  const activePreset = computed(() => appConfig.katluxToolkit?.activePreset || "default");
@@ -10,27 +11,31 @@ export function usePresetComponent(componentBaseName, defaultComponent) {
10
11
  if (activePreset.value === "default") {
11
12
  return defaultComponent;
12
13
  }
13
- const cacheKey = `${activePreset.value}:${componentBaseName}`;
14
- if (componentCache.has(cacheKey)) {
15
- return componentCache.get(cacheKey);
16
- }
17
14
  let loader;
18
- if (activePreset.value === "modern") {
19
- const path = `../../../../katlux-preset-modern/src/runtime/components/${componentBaseName}/${componentBaseName}.vue`;
20
- loader = modernComponents[path];
21
- } else {
22
- const path = `../presets/${activePreset.value}/components/${componentBaseName}/${componentBaseName}.vue`;
23
- loader = toolkitPresets[path];
15
+ const externalLoaders = presetLoadersRegistry.get(activePreset.value);
16
+ if (externalLoaders) {
17
+ const key = `./components/${componentBaseName}/${componentBaseName}.vue`;
18
+ loader = externalLoaders[key];
19
+ }
20
+ if (!loader) {
21
+ const internalLoaders = import.meta.glob([
22
+ "../presets/**/*.vue",
23
+ "../../runtime/presets/**/*.vue"
24
+ ]);
25
+ const internalKey = `../presets/${activePreset.value}/components/${componentBaseName}/${componentBaseName}.vue`;
26
+ loader = internalLoaders[internalKey];
27
+ if (!loader) {
28
+ const altKey = `../../runtime/presets/${activePreset.value}/components/${componentBaseName}/${componentBaseName}.vue`;
29
+ loader = internalLoaders[altKey];
30
+ }
24
31
  }
25
32
  if (!loader) {
26
33
  console.warn(`[${componentBaseName}] Preset "${activePreset.value}" not found, falling back to default`);
27
34
  return defaultComponent;
28
35
  }
29
- const asyncComp = defineAsyncComponent({
36
+ return defineAsyncComponent({
30
37
  loader,
31
38
  errorComponent: defaultComponent
32
39
  });
33
- componentCache.set(cacheKey, asyncComp);
34
- return asyncComp;
35
40
  });
36
41
  }
@@ -20,14 +20,44 @@
20
20
  --neutral-700: #616161;
21
21
  --neutral-800: #424242;
22
22
  --neutral-900: #212121;
23
+ --yellow-100: #fef9c3;
24
+ --yellow-300: #fde047;
25
+ --yellow-500: #eab308;
26
+ --yellow-700: #a16207;
27
+ --yellow-900: #713f12;
28
+ --red-100: #fee2e2;
29
+ --red-300: #fca5a5;
30
+ --red-500: #ef4444;
31
+ --red-700: #b91c1c;
32
+ --red-900: #7f1d1d;
33
+ --blue-100: #dbeafe;
34
+ --blue-300: #93c5fd;
35
+ --blue-500: #3b82f6;
36
+ --blue-700: #1d4ed8;
37
+ --blue-900: #1e3a8a;
38
+ --pink-100: #fce7f3;
39
+ --pink-300: #f9a8d4;
40
+ --pink-500: #ec4899;
41
+ --pink-700: #be185d;
42
+ --pink-900: #831843;
43
+ --cyan-100: #cffafe;
44
+ --cyan-300: #67e8f9;
45
+ --cyan-500: #06b6d4;
46
+ --cyan-700: #0e7490;
47
+ --cyan-900: #164e63;
48
+ --green-100: #dcfce7;
49
+ --green-300: #86efac;
50
+ --green-500: #22c55e;
51
+ --green-700: #15803d;
52
+ --green-900: #14532d;
23
53
  --success-color: var(--accent-500);
24
54
  --success-color-light: var(--accent-100);
25
- --warning-color: #ffc107;
26
- --warning-color-light: #fff3e0;
27
- --error-color: #f44336;
28
- --error-color-light: #fbe9e7;
29
- --info-color: var(--primary-500);
30
- --info-color-light: var(--primary-100);
55
+ --warning-color: var(--yellow-500);
56
+ --warning-color-light: var(--yellow-100);
57
+ --error-color: var(--red-500);
58
+ --error-color-light: var(--red-100);
59
+ --info-color: var(--cyan-500);
60
+ --info-color-light: var(--cyan-100);
31
61
  --font-color-primary: var(--neutral-800);
32
62
  --font-color-secondary: var(--neutral-600);
33
63
  --font-color-heading: var(--neutral-900);
@@ -81,19 +111,39 @@
81
111
  --button-hover-bg-success: var(--accent-700);
82
112
  --button-bg-warning: var(--warning-color);
83
113
  --button-text-warning: var(--neutral-900);
84
- --button-hover-bg-warning: #e6ac00;
114
+ --button-hover-bg-warning: var(--yellow-700);
85
115
  --button-bg-danger: var(--error-color);
86
116
  --button-text-danger: var(--font-color-light);
87
- --button-hover-bg-danger: #d32f2f;
117
+ --button-hover-bg-danger: var(--red-700);
88
118
  --button-bg-info: var(--info-color);
89
119
  --button-text-info: var(--font-color-light);
90
- --button-hover-bg-info: var(--primary-300);
120
+ --button-hover-bg-info: var(--cyan-700);
91
121
  --button-bg-light: var(--neutral-50);
92
122
  --button-text-light: var(--neutral-900);
93
123
  --button-hover-bg-light: var(--neutral-200);
94
124
  --button-bg-dark: var(--neutral-900);
95
125
  --button-text-dark: var(--font-color-light);
96
126
  --button-hover-bg-dark: var(--neutral-700);
127
+ --panel-bg-opacity: 1;
128
+ --panel-blur: 0px;
129
+ --panel-bg-default: var(--neutral-50);
130
+ --panel-header-bg-default: var(--neutral-100);
131
+ --panel-footer-bg-default: var(--neutral-100);
132
+ --panel-bg-primary: var(--blue-300);
133
+ --panel-header-bg-primary: var(--blue-500);
134
+ --panel-footer-bg-primary: var(--blue-100);
135
+ --panel-bg-success: var(--green-300);
136
+ --panel-header-bg-success: var(--green-500);
137
+ --panel-footer-bg-success: var(--green-100);
138
+ --panel-bg-warning: var(--yellow-300);
139
+ --panel-header-bg-warning: var(--yellow-500);
140
+ --panel-footer-bg-warning: var(--yellow-100);
141
+ --panel-bg-danger: var(--red-300);
142
+ --panel-header-bg-danger: var(--red-500);
143
+ --panel-footer-bg-danger: var(--red-100);
144
+ --panel-bg-info: var(--cyan-300);
145
+ --panel-header-bg-info: var(--cyan-500);
146
+ --panel-footer-bg-info: var(--cyan-100);
97
147
  --input-border-radius: var(--border-radius-sm);
98
148
  --input-border-color: var(--border-color-medium);
99
149
  --input-focus-border-color: var(--primary-500);
@@ -102,7 +152,7 @@
102
152
  --table-header-color: var(--neutral-700);
103
153
  --table-border-color: var(--neutral-300);
104
154
  --table-row-hover: var(--neutral-100);
105
- --table-row-selected: #e3f2fd;
155
+ --table-row-selected: var(--blue-100);
106
156
  --checkbox-bg: var(--neutral-50);
107
157
  --checkbox-checked-bg: var(--primary-500);
108
158
  --checkbox-border-color: var(--border-color-medium);
@@ -114,6 +164,7 @@
114
164
  --component-gap: var(--gap-sm);
115
165
  --layover: var(--neutral-600);
116
166
  --modal-overlay-bg: rgba(0, 0, 0, 0.5);
167
+ --modal-backdrop-blur: 0px;
117
168
  --layout-header-height: 60px;
118
169
  --layout-header-bg: var(--background-color);
119
170
  --layout-sidebar-width: 200px;
@@ -127,12 +178,12 @@
127
178
  --input-button-hover-bg: var(--neutral-400);
128
179
  --input-button-font-color: var(--font-color-primary);
129
180
  --input-focus-border-color: var(--primary-500);
130
- --button-hover-bg-danger: #d32f2f;
131
- --button-hover-bg-info: var(--primary-300);
181
+ --button-hover-bg-danger: var(--red-700);
182
+ --button-hover-bg-info: var(--cyan-700);
132
183
  --button-hover-bg-light: var(--neutral-200);
133
184
  --button-hover-bg-primary: var(--primary-700);
134
185
  --button-hover-bg-success: var(--accent-700);
135
- --button-hover-bg-warning: #e6ac00;
186
+ --button-hover-bg-warning: var(--yellow-700);
136
187
  --button-hover-bg-dark: var(--neutral-700);
137
188
  --button-text-danger: var(--font-color-light);
138
189
  --button-text-primary: var(--font-color-light);