@katlux/toolkit 0.1.0-beta.0 → 0.1.0-beta.1

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 (162) hide show
  1. package/dist/module.d.cts +2 -0
  2. package/dist/module.d.mts +2 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +18 -0
  5. package/dist/types.d.mts +13 -0
  6. package/package.json +5 -2
  7. package/ARCHITECTURE.md +0 -70
  8. package/PRESET_NAMING.md +0 -63
  9. package/PRESET_SYSTEM.md +0 -204
  10. package/build.config.ts +0 -3
  11. package/nuxt.config.ts +0 -9
  12. package/src/module.ts +0 -36
  13. package/src/runtime/app.config.d.ts +0 -9
  14. package/src/runtime/components/KAccordion/KAccordion.global.vue +0 -18
  15. package/src/runtime/components/KAccordion/KAccordion.logic.ts +0 -49
  16. package/src/runtime/components/KAccordion/KAccordionItem.global.vue +0 -24
  17. package/src/runtime/components/KAccordion/KAccordionItem.logic.ts +0 -72
  18. package/src/runtime/components/KAlert/KAlert.global.vue +0 -10
  19. package/src/runtime/components/KAlert/KAlert.logic.ts +0 -3
  20. package/src/runtime/components/KBulkActions/KBulkActions.global.vue +0 -37
  21. package/src/runtime/components/KBulkActions/KBulkActions.logic.ts +0 -36
  22. package/src/runtime/components/KButton/KButton.global.vue +0 -37
  23. package/src/runtime/components/KButton/KButton.logic.ts +0 -75
  24. package/src/runtime/components/KCalendar/KCalendar.global.vue +0 -43
  25. package/src/runtime/components/KCalendar/KCalendar.logic.ts +0 -197
  26. package/src/runtime/components/KCalendar/KCalendarMonth.global.vue +0 -37
  27. package/src/runtime/components/KCalendar/KCalendarMonth.logic.ts +0 -175
  28. package/src/runtime/components/KCalendar/KCalendarWeek.global.vue +0 -10
  29. package/src/runtime/components/KCalendar/KCalendarWeek.logic.ts +0 -3
  30. package/src/runtime/components/KCalendar/recurringUtils.ts +0 -270
  31. package/src/runtime/components/KCalendar/types.ts +0 -54
  32. package/src/runtime/components/KCheckbox/KCheckbox.global.vue +0 -28
  33. package/src/runtime/components/KCheckbox/KCheckbox.logic.ts +0 -36
  34. package/src/runtime/components/KCombobox/KCombobox.global.vue +0 -51
  35. package/src/runtime/components/KCombobox/KCombobox.logic.ts +0 -194
  36. package/src/runtime/components/KContextMenu/KContextMenu.global.vue +0 -10
  37. package/src/runtime/components/KContextMenu/KContextMenu.logic.ts +0 -3
  38. package/src/runtime/components/KDatatable/KDataIterator.global.vue +0 -65
  39. package/src/runtime/components/KDatatable/KDataIterator.logic.ts +0 -59
  40. package/src/runtime/components/KDatatable/KDatatable.global.vue +0 -60
  41. package/src/runtime/components/KDatatable/KDatatable.logic.ts +0 -29
  42. package/src/runtime/components/KDatePicker/KDatePicker.global.vue +0 -52
  43. package/src/runtime/components/KDatePicker/KDatePicker.logic.ts +0 -87
  44. package/src/runtime/components/KDateTimePicker/KDateTimePicker.global.vue +0 -53
  45. package/src/runtime/components/KDateTimePicker/KDateTimePicker.logic.ts +0 -103
  46. package/src/runtime/components/KDropdown/KDropdown.global.vue +0 -25
  47. package/src/runtime/components/KDropdown/KDropdown.logic.ts +0 -46
  48. package/src/runtime/components/KGantt/KGantt.global.vue +0 -82
  49. package/src/runtime/components/KGantt/KGantt.logic.ts +0 -439
  50. package/src/runtime/components/KGrid/KGrid.global.vue +0 -22
  51. package/src/runtime/components/KGrid/KGrid.logic.ts +0 -67
  52. package/src/runtime/components/KHourPicker/KHourPicker.global.vue +0 -47
  53. package/src/runtime/components/KHourPicker/KHourPicker.logic.ts +0 -74
  54. package/src/runtime/components/KHourSelect/KHourSelect.global.vue +0 -41
  55. package/src/runtime/components/KHourSelect/KHourSelect.logic.ts +0 -92
  56. package/src/runtime/components/KIcon/KIcon.global.vue +0 -23
  57. package/src/runtime/components/KIcon/KIcon.logic.ts +0 -62
  58. package/src/runtime/components/KLoader/KLoader.global.vue +0 -27
  59. package/src/runtime/components/KLoader/KLoader.logic.ts +0 -34
  60. package/src/runtime/components/KMaskTextbox/KMaskTextbox.global.vue +0 -32
  61. package/src/runtime/components/KMaskTextbox/KMaskTextbox.logic.ts +0 -290
  62. package/src/runtime/components/KModal/KModal.global.vue +0 -28
  63. package/src/runtime/components/KModal/KModal.logic.ts +0 -20
  64. package/src/runtime/components/KPagination/KPagination.global.vue +0 -50
  65. package/src/runtime/components/KPagination/KPagination.logic.ts +0 -99
  66. package/src/runtime/components/KPanel/KPanel.global.vue +0 -22
  67. package/src/runtime/components/KPanel/KPanel.logic.ts +0 -24
  68. package/src/runtime/components/KRadiobox/KRadiobox.global.vue +0 -29
  69. package/src/runtime/components/KRadiobox/KRadiobox.logic.ts +0 -27
  70. package/src/runtime/components/KRangeSlider/KRangeSlider.global.vue +0 -43
  71. package/src/runtime/components/KRangeSlider/KRangeSlider.logic.ts +0 -94
  72. package/src/runtime/components/KSearchTree/KSearchTree.global.vue +0 -10
  73. package/src/runtime/components/KSearchTree/KSearchTree.logic.ts +0 -3
  74. package/src/runtime/components/KSearchTreeDropdown/KSearchTreeDropdown.global.vue +0 -10
  75. package/src/runtime/components/KSearchTreeDropdown/KSearchTreeDropdown.logic.ts +0 -3
  76. package/src/runtime/components/KSlider/KSlider.global.vue +0 -38
  77. package/src/runtime/components/KSlider/KSlider.logic.ts +0 -69
  78. package/src/runtime/components/KTabs/KTabItem.global.vue +0 -24
  79. package/src/runtime/components/KTabs/KTabItem.logic.ts +0 -48
  80. package/src/runtime/components/KTabs/KTabs.global.vue +0 -24
  81. package/src/runtime/components/KTabs/KTabs.logic.ts +0 -60
  82. package/src/runtime/components/KTextarea/KTextarea.global.vue +0 -26
  83. package/src/runtime/components/KTextarea/KTextarea.logic.ts +0 -43
  84. package/src/runtime/components/KTextbox/KTextbox.global.vue +0 -27
  85. package/src/runtime/components/KTextbox/KTextbox.logic.ts +0 -53
  86. package/src/runtime/components/KThree/KThree.global.vue +0 -13
  87. package/src/runtime/components/KTooltip/KTooltip.global.vue +0 -10
  88. package/src/runtime/components/KTooltip/KTooltip.logic.ts +0 -3
  89. package/src/runtime/components/KTree/KTree.global.vue +0 -41
  90. package/src/runtime/components/KTree/KTree.logic.ts +0 -92
  91. package/src/runtime/components/KTreePicker/KTreePicker.global.vue +0 -80
  92. package/src/runtime/components/KTreePicker/KTreePicker.logic.ts +0 -85
  93. package/src/runtime/components/KTreeView/KTreeView.global.vue +0 -81
  94. package/src/runtime/components/KTreeView/KTreeView.logic.ts +0 -146
  95. package/src/runtime/composables/useDebounce.ts +0 -33
  96. package/src/runtime/composables/useFilterLogic.ts +0 -245
  97. package/src/runtime/composables/usePresetComponent.ts +0 -69
  98. package/src/runtime/composables/useRemainingTime.ts +0 -28
  99. package/src/runtime/composables/useSortLogic.ts +0 -82
  100. package/src/runtime/composables/useTemplate.ts +0 -135
  101. package/src/runtime/directives/clickOutside.ts +0 -75
  102. package/src/runtime/directives/index.ts +0 -1
  103. package/src/runtime/plugins/PresetPlugin.ts +0 -59
  104. package/src/runtime/plugins/registerDirectives.ts +0 -6
  105. package/src/runtime/presets/default/assets/scss/css-variables.scss +0 -216
  106. package/src/runtime/presets/default/assets/scss/docs.scss +0 -52
  107. package/src/runtime/presets/default/assets/scss/index.scss +0 -4
  108. package/src/runtime/presets/default/assets/scss/mixins.scss +0 -94
  109. package/src/runtime/presets/default/assets/scss/reset.scss +0 -16
  110. package/src/runtime/presets/default/assets/svg/calendar.svg +0 -9
  111. package/src/runtime/presets/default/assets/svg/check.svg +0 -3
  112. package/src/runtime/presets/default/assets/svg/chevron.svg +0 -3
  113. package/src/runtime/presets/default/assets/svg/close.svg +0 -4
  114. package/src/runtime/presets/default/assets/svg/file.svg +0 -4
  115. package/src/runtime/presets/default/assets/svg/folder.svg +0 -3
  116. package/src/runtime/presets/default/assets/svg/search.svg +0 -4
  117. package/src/runtime/presets/default/assets/svg/user.svg +0 -4
  118. package/src/runtime/presets/default/components/KAccordion/KAccordion.vue +0 -12
  119. package/src/runtime/presets/default/components/KAccordion/KAccordionItem.vue +0 -53
  120. package/src/runtime/presets/default/components/KAlert/KAlert.vue +0 -5
  121. package/src/runtime/presets/default/components/KBulkActions/KBulkActions.vue +0 -45
  122. package/src/runtime/presets/default/components/KButton/KButton.vue +0 -163
  123. package/src/runtime/presets/default/components/KCalendar/KCalendar.vue +0 -84
  124. package/src/runtime/presets/default/components/KCalendar/KCalendarMonth.vue +0 -217
  125. package/src/runtime/presets/default/components/KCalendar/KCalendarWeek.vue +0 -5
  126. package/src/runtime/presets/default/components/KCheckbox/KCheckbox.vue +0 -61
  127. package/src/runtime/presets/default/components/KCombobox/KCombobox.vue +0 -106
  128. package/src/runtime/presets/default/components/KCombobox/KComboboxList.vue +0 -94
  129. package/src/runtime/presets/default/components/KContextMenu/KContextMenu.vue +0 -5
  130. package/src/runtime/presets/default/components/KDataIterator/KDataIterator.vue +0 -66
  131. package/src/runtime/presets/default/components/KDatatable/KDatatable.vue +0 -155
  132. package/src/runtime/presets/default/components/KDatePicker/KDatePicker.vue +0 -49
  133. package/src/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue +0 -84
  134. package/src/runtime/presets/default/components/KDropdown/KDropdown.vue +0 -38
  135. package/src/runtime/presets/default/components/KGantt/KGantt.vue +0 -400
  136. package/src/runtime/presets/default/components/KGantt/KGanttRuler.vue +0 -56
  137. package/src/runtime/presets/default/components/KGantt/KGanttTimeline.vue +0 -218
  138. package/src/runtime/presets/default/components/KGrid/KGrid.vue +0 -72
  139. package/src/runtime/presets/default/components/KHourPicker/KHourPicker.vue +0 -55
  140. package/src/runtime/presets/default/components/KHourSelect/KHourSelect.vue +0 -49
  141. package/src/runtime/presets/default/components/KIcon/KIcon.vue +0 -30
  142. package/src/runtime/presets/default/components/KLoader/KLoader.vue +0 -66
  143. package/src/runtime/presets/default/components/KMaskTextbox/KMaskTextbox.vue +0 -125
  144. package/src/runtime/presets/default/components/KModal/KModal.vue +0 -45
  145. package/src/runtime/presets/default/components/KPagination/KPagination.vue +0 -72
  146. package/src/runtime/presets/default/components/KPanel/KPanel.vue +0 -55
  147. package/src/runtime/presets/default/components/KRadiobox/KRadiobox.vue +0 -44
  148. package/src/runtime/presets/default/components/KRangeSlider/KRangeSlider.vue +0 -189
  149. package/src/runtime/presets/default/components/KSearchTree/KSearchTree.vue +0 -5
  150. package/src/runtime/presets/default/components/KSearchTreeDropdown/KSearchTreeDropdown.vue +0 -5
  151. package/src/runtime/presets/default/components/KSlider/KSlider.vue +0 -144
  152. package/src/runtime/presets/default/components/KTabs/KTabItem.vue +0 -49
  153. package/src/runtime/presets/default/components/KTabs/KTabs.vue +0 -19
  154. package/src/runtime/presets/default/components/KTextarea/KTextarea.vue +0 -32
  155. package/src/runtime/presets/default/components/KTextbox/KTextbox.vue +0 -53
  156. package/src/runtime/presets/default/components/KTooltip/KTooltip.vue +0 -5
  157. package/src/runtime/presets/default/components/KTree/KTree.vue +0 -148
  158. package/src/runtime/presets/default/components/KTreePicker/KTreePicker.vue +0 -100
  159. package/src/runtime/presets/default/components/KTreeView/KTreeCell.vue +0 -53
  160. package/src/runtime/presets/default/components/KTreeView/KTreeView.vue +0 -62
  161. package/src/runtime/utils/PresetResolver.ts +0 -158
  162. package/tsconfig.json +0 -20
@@ -1,100 +0,0 @@
1
- <template lang="pug">
2
- KCombobox(
3
- :disabled="disabled"
4
- :isOptionsOpen="isOptionsOpen"
5
- :labelField="labelField"
6
- :placeholder="placeholder"
7
- :searchbox="searchbox"
8
- :searchtext="searchtext"
9
- :filteredOptions="filteredOptions"
10
- :getSelectedContent="getSelectedContent"
11
- :toggleDropdown="toggleDropdown"
12
- :closeDropdown="closeDropdown"
13
- :selectItem="selectItem"
14
- :isSelected="isSelected"
15
- :loading="loading"
16
- )
17
- template(#default)
18
- .KTreePicker__tree-container
19
- .KTreePicker__search(v-if="searchbox" style="margin-bottom: 10px")
20
- KTextbox(
21
- v-model="searchtextModel"
22
- placeholder="Search..."
23
- showClear
24
- )
25
- KTree(
26
- :dataProvider="dataProvider"
27
- :idKey="idKey"
28
- :parentKey="parentKey"
29
- :labelField="labelField"
30
- :iconField="iconField"
31
- :loading="loading"
32
- :multiSelect="multiSelect"
33
- :isNodeSelected="isSelected"
34
- :searchtext="searchtext"
35
- :selectable="true"
36
- @select="onTreeSelect"
37
- )
38
- </template>
39
-
40
- <script lang="ts" setup>
41
- import { computed } from 'vue'
42
- // Props passed from global component (which handles the logic)
43
- const props = defineProps<{
44
- // Tree specific
45
- dataProvider: any
46
- idKey?: string
47
- parentKey?: string
48
- iconField?: string
49
-
50
- // Combobox Logic Props
51
- disabled: boolean
52
- isOptionsOpen: boolean
53
- labelField: string
54
- placeholder: string
55
- searchbox: boolean
56
- multiSelect: boolean
57
- searchtext: string
58
- filteredOptions: any[]
59
- getSelectedContent: () => any[]
60
- toggleDropdown: () => void
61
- closeDropdown: () => void
62
- selectItem: (option: any) => void
63
- isSelected: (option: any) => boolean
64
- loading: boolean
65
- closeOnSelect: boolean
66
- }>()
67
-
68
- const emit = defineEmits<{
69
- (e: 'update:searchtext', value: string): void
70
- }>()
71
-
72
- const searchtextModel = computed({
73
- get: () => props.searchtext,
74
- set: (value) => emit('update:searchtext', value)
75
- })
76
-
77
- function onTreeSelect(node: any) {
78
- // Call the selectItem method from logic
79
- props.selectItem(node)
80
-
81
- // If closeOnSelect is true, we should close the dropdown
82
- // but selectItem might have already toggled it if it was a distinct action?
83
- // In KCombobox.logic.ts: selectItem sets isOptionsOpen = !closeOnSelect
84
- // So it should be handled there!
85
-
86
- // However, selectItem expects a ComboboxItem (TDataRow).
87
- // KTree returns a node object which should be compatible.
88
- }
89
- </script>
90
-
91
- <style lang="scss" scoped>
92
- .KTreePicker__tree-container {
93
- padding: 10px;
94
- max-height: 400px;
95
- overflow-y: auto;
96
- min-width: 250px; // Ensure tree has some width
97
- }
98
-
99
-
100
- </style>
@@ -1,53 +0,0 @@
1
- <template lang="pug">
2
- .tree-cell(:style="{ paddingLeft: depth * 24 + 'px' }")
3
- .tree-toggle(v-if="hasChildren" @click.stop="toggle")
4
- KIcon(iconname="chevron" :width="12" :height="12" :rotate="isExpanded ? '90' : '0'")
5
- .tree-spacer(v-else)
6
- span.tree-content {{ value }}
7
- </template>
8
-
9
- <script lang="ts" setup>
10
- defineProps<{
11
- value: any
12
- depth: number
13
- hasChildren: boolean
14
- isExpanded: boolean
15
- toggle: () => void
16
- }>()
17
- </script>
18
-
19
- <style lang="scss" scoped>
20
- .tree-cell {
21
- display: flex;
22
- align-items: center;
23
- gap: 4px;
24
- }
25
-
26
- .tree-toggle {
27
- cursor: pointer;
28
- display: inline-flex;
29
- align-items: center;
30
- justify-content: center;
31
- width: 20px;
32
- height: 20px;
33
- border-radius: 2px;
34
- flex-shrink: 0;
35
-
36
- &:hover {
37
- background-color: var(--hover-light, #e0e0e0);
38
- }
39
- }
40
-
41
- .tree-spacer {
42
- width: 20px;
43
- flex-shrink: 0;
44
- display: inline-block;
45
- }
46
-
47
- .tree-content {
48
- flex: 1;
49
- overflow: hidden;
50
- text-overflow: ellipsis;
51
- white-space: nowrap;
52
- }
53
- </style>
@@ -1,62 +0,0 @@
1
- <template lang="pug">
2
- .KTreeView
3
- KDatatable(
4
- :dataProvider="dataProvider"
5
- :visibleFields="visibleFields"
6
- :bulkActions="bulkActions"
7
- :rowActions="rowActions"
8
- :cellSlots="cellSlots"
9
- :headerSlots="headerSlots"
10
- :columnHeaders="columnHeaders"
11
- :columnWidths="columnWidths"
12
- )
13
- //- Tree column cell: rendered natively via dynamic slot name — no h() needed
14
- template(v-if="treeColumnField" v-slot:[treeCellSlotName]="slotProps")
15
- KTreeCell(
16
- :value="slotProps.value"
17
- :depth="slotProps.row.__treeNode?.depth ?? 0"
18
- :hasChildren="slotProps.row.__treeNode?.hasChildren ?? false"
19
- :isExpanded="slotProps.row.__treeNode?.isExpanded ?? false"
20
- :toggle="() => toggleNode(slotProps.row.__treeNode?.id)"
21
- )
22
- </template>
23
-
24
- <script lang="ts" setup>
25
- import { computed } from 'vue'
26
- import KTreeCell from './KTreeCell.vue'
27
- import type { ITreeViewColumn, IRowAction } from '../../../../components/KTreeView/KTreeView.logic'
28
- import type { IKDatatableAction } from '@katlux/providers'
29
-
30
- const props = defineProps<{
31
- dataProvider: any
32
- columns: ITreeViewColumn[]
33
- treeColumnIndex?: number
34
- bulkActions?: IKDatatableAction[]
35
- rowActions?: IRowAction[]
36
- showCheckboxes: boolean
37
- selectedRows: any[]
38
- selectAll: boolean
39
- expandedNodes: Set<string | number>
40
- toggleNode: (id: string | number) => void
41
- toggleRowSelection: (row: any) => void
42
- toggleSelectAll: () => void
43
- isRowSelected: (row: any) => boolean
44
- // Merged cell slots from global (external slots like gantt timeline)
45
- cellSlots?: Record<string, any>
46
- headerSlots?: Record<string, any>
47
- columnHeaders?: Record<string, string>
48
- columnWidths?: Record<string, string>
49
- }>()
50
-
51
- const visibleFields = computed(() => (props.columns as ITreeViewColumn[]).map(col => col.field))
52
-
53
- // Compute the tree column field and the dynamic slot name
54
- const treeColumnField = computed(() => (props.columns as ITreeViewColumn[])[props.treeColumnIndex ?? 0]?.field)
55
- const treeCellSlotName = computed(() => treeColumnField.value ? `cell-${treeColumnField.value}` : null)
56
- </script>
57
-
58
- <style lang="scss" scoped>
59
- .KTreeView {
60
- width: 100%;
61
- }
62
- </style>
@@ -1,158 +0,0 @@
1
- import { useRuntimeConfig, useAppConfig, useCookie, useNuxtApp } from '#app'
2
- import type { Component } from 'vue'
3
-
4
- export interface PresetMetadata {
5
- componentName: string
6
- presetName: string
7
- hasCustomPreset: boolean
8
- hasCustomStyles: boolean
9
- presetPath?: string
10
- stylesPath?: string
11
- }
12
-
13
- export interface PresetCache {
14
- [key: string]: PresetMetadata
15
- }
16
-
17
- /**
18
- * PresetResolver - Manages preset resolution and discovery for Katlux components
19
- *
20
- * This utility class handles:
21
- * - Discovering custom presets in the user's project
22
- * - Resolving preset paths based on component name and active preset
23
- * - Falling back to default presets when custom ones don't exist
24
- * - Caching preset resolution for performance
25
- */
26
- export class PresetResolver {
27
- private cache: PresetCache = {}
28
- private activePreset: string = 'default'
29
- private presetsDir: string = '~/presets'
30
-
31
- constructor() {
32
- this.initialize()
33
- }
34
-
35
- /**
36
- * Initialize the preset resolver with configuration
37
- */
38
- private initialize(): void {
39
- try {
40
- const appConfig = useAppConfig()
41
- const runtimeConfig = useRuntimeConfig()
42
-
43
- // Check cookie first for user preference (SSR compatible)
44
- const presetCookie = useCookie('katlux-active-preset')
45
- if (presetCookie.value) {
46
- this.activePreset = presetCookie.value as string
47
- }
48
- // Fallback to app config if no cookie
49
- else if (appConfig.katluxToolkit?.activePreset) {
50
- this.activePreset = appConfig.katluxToolkit.activePreset as string
51
- }
52
-
53
- // Get presets directory from runtime config
54
- const publicConfig = runtimeConfig.public as any
55
- if (publicConfig?.katluxToolkit?.presetsDir) {
56
- this.presetsDir = publicConfig.katluxToolkit.presetsDir as string
57
- }
58
- } catch (error) {
59
- // If config is not available (e.g., during build), use defaults
60
- console.warn('PresetResolver: Could not load configuration, using defaults', error)
61
- }
62
- }
63
-
64
- /**
65
- * Resolve preset metadata for a given component
66
- * @param componentName - Name of the component (e.g., 'KButton')
67
- * @returns Preset metadata including paths and availability
68
- */
69
- public resolvePreset(componentName: string): PresetMetadata {
70
- const cacheKey = `${this.activePreset}:${componentName}`
71
-
72
- // Return cached result if available
73
- if (this.cache[cacheKey]) {
74
- return this.cache[cacheKey]
75
- }
76
-
77
- // Build metadata
78
- const metadata: PresetMetadata = {
79
- componentName,
80
- presetName: this.activePreset,
81
- hasCustomPreset: false,
82
- hasCustomStyles: false,
83
- }
84
-
85
- // Check for custom preset files
86
- if (this.activePreset !== 'default') {
87
- const customPresetPath = `${this.presetsDir}/${this.activePreset}/${componentName}.pug`
88
- const customStylesPath = `${this.presetsDir}/${this.activePreset}/${componentName}.scss`
89
-
90
- // Note: In a real implementation, we would check if these files exist
91
- // For now, we'll assume they might exist and let the component handle loading
92
- metadata.presetPath = customPresetPath
93
- metadata.stylesPath = customStylesPath
94
- metadata.hasCustomPreset = true
95
- metadata.hasCustomStyles = true
96
- }
97
-
98
- // Cache the result
99
- this.cache[cacheKey] = metadata
100
-
101
- return metadata
102
- }
103
-
104
- /**
105
- * Get the active preset name
106
- */
107
- public getActivePreset(): string {
108
- return this.activePreset
109
- }
110
-
111
- /**
112
- * Set the active preset (useful for runtime switching)
113
- * @param presetName - Name of the preset to activate
114
- */
115
- public setActivePreset(presetName: string): void {
116
- if (this.activePreset !== presetName) {
117
- this.activePreset = presetName
118
- this.clearCache()
119
-
120
- // Update cookie
121
- const presetCookie = useCookie('katlux-active-preset')
122
- presetCookie.value = presetName
123
- }
124
- }
125
-
126
- /**
127
- * Clear the preset cache (useful when presets change in dev mode)
128
- */
129
- public clearCache(): void {
130
- this.cache = {}
131
- }
132
-
133
- /**
134
- * Get all cached preset metadata
135
- */
136
- public getCachedPresets(): PresetCache {
137
- return { ...this.cache }
138
- }
139
-
140
- /**
141
- * Check if a custom preset exists for a component
142
- * @param componentName - Name of the component
143
- * @returns True if custom preset exists
144
- */
145
- public hasCustomPreset(componentName: string): boolean {
146
- const metadata = this.resolvePreset(componentName)
147
- return metadata.hasCustomPreset
148
- }
149
- }
150
-
151
- /**
152
- * Factory function to get the PresetResolver instance
153
- * This is the recommended way to access the resolver in composables
154
- */
155
- export function usePresetResolver(): PresetResolver {
156
- const nuxtApp = useNuxtApp()
157
- return nuxtApp.$presetResolver as PresetResolver
158
- }
package/tsconfig.json DELETED
@@ -1,20 +0,0 @@
1
- {
2
- "extends": "./.nuxt/tsconfig.json",
3
- "compilerOptions": {
4
- "target": "ESNext",
5
- "module": "ESNext",
6
- "allowArbitraryExtensions": true,
7
- "moduleResolution": "bundler",
8
- "types": [
9
- "vite/client",
10
- "node"
11
- ]
12
- },
13
- "include": [
14
- "src/**/*"
15
- ],
16
- "exclude": [
17
- "dist",
18
- "node_modules"
19
- ]
20
- }