@j-solution/components 1.5.0 → 1.6.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.
Files changed (46) hide show
  1. package/README.md +6 -6
  2. package/assets/jwms-portal-frontend-DntSIcYt.css +1 -0
  3. package/assets/styles/j-components.css +1 -1
  4. package/components/atoms/JGrid.vue.cjs +1 -1
  5. package/components/atoms/JGrid.vue.js +2 -2
  6. package/components/atoms/JGrid.vue2.cjs +1 -1
  7. package/components/atoms/JGrid.vue2.cjs.map +1 -1
  8. package/components/atoms/JGrid.vue2.js +124 -56
  9. package/components/atoms/JGrid.vue2.js.map +1 -1
  10. package/components/atoms/JSplitter.vue.cjs +2 -0
  11. package/components/atoms/JSplitter.vue.cjs.map +1 -0
  12. package/components/atoms/JSplitter.vue.js +57 -0
  13. package/components/atoms/JSplitter.vue.js.map +1 -0
  14. package/components/atoms/JSplitter.vue2.cjs +2 -0
  15. package/components/atoms/JSplitter.vue2.cjs.map +1 -0
  16. package/components/atoms/JSplitter.vue2.js +5 -0
  17. package/components/atoms/JSplitter.vue2.js.map +1 -0
  18. package/components/molecules/JTitlebar.vue.cjs +1 -1
  19. package/components/molecules/JTitlebar.vue.cjs.map +1 -1
  20. package/components/molecules/JTitlebar.vue.js +48 -40
  21. package/components/molecules/JTitlebar.vue.js.map +1 -1
  22. package/components/organisms/JFilterBar.vue.cjs +1 -1
  23. package/components/organisms/JFilterBar.vue.cjs.map +1 -1
  24. package/components/organisms/JFilterBar.vue.js +60 -53
  25. package/components/organisms/JFilterBar.vue.js.map +1 -1
  26. package/components/shadcn/resizable/ResizableHandle.vue.cjs +2 -0
  27. package/components/shadcn/resizable/ResizableHandle.vue.cjs.map +1 -0
  28. package/components/shadcn/resizable/ResizableHandle.vue.js +40 -0
  29. package/components/shadcn/resizable/ResizableHandle.vue.js.map +1 -0
  30. package/components/shadcn/resizable/ResizableHandle.vue2.cjs +2 -0
  31. package/components/shadcn/resizable/ResizableHandle.vue2.cjs.map +1 -0
  32. package/components/shadcn/resizable/ResizableHandle.vue2.js +5 -0
  33. package/components/shadcn/resizable/ResizableHandle.vue2.js.map +1 -0
  34. package/components/shadcn/resizable/ResizablePanelGroup.vue.cjs +2 -0
  35. package/components/shadcn/resizable/ResizablePanelGroup.vue.cjs.map +1 -0
  36. package/components/shadcn/resizable/ResizablePanelGroup.vue.js +33 -0
  37. package/components/shadcn/resizable/ResizablePanelGroup.vue.js.map +1 -0
  38. package/components/shadcn/resizable/ResizablePanelGroup.vue2.cjs +2 -0
  39. package/components/shadcn/resizable/ResizablePanelGroup.vue2.cjs.map +1 -0
  40. package/components/shadcn/resizable/ResizablePanelGroup.vue2.js +5 -0
  41. package/components/shadcn/resizable/ResizablePanelGroup.vue2.js.map +1 -0
  42. package/index.cjs +1 -1
  43. package/index.js +56 -54
  44. package/package.json +2 -2
  45. package/types/index.d.ts +232 -136
  46. package/assets/jwms-portal-frontend-uK756XTb.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"JFilterBar.vue.js","sources":["../../../../src/components/organisms/JFilterBar.vue"],"sourcesContent":["<template>\r\n <div class=\"w-full rounded-lg border bg-card text-card-foreground\">\r\n <!-- Row 1: toolbar -->\r\n <div class=\"flex items-center justify-between px-4 py-2\">\r\n <div class=\"flex items-center gap-2\">\r\n <button\r\n v-if=\"collapsible\"\r\n type=\"button\"\r\n class=\"flex items-center justify-center h-7 w-7 rounded hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n @click=\"toggleCollapsed\"\r\n >\r\n <ChevronDown\r\n :class=\"[\r\n 'h-4 w-4 transition-transform',\r\n isExpanded ? 'rotate-0' : '-rotate-90',\r\n ]\"\r\n />\r\n </button>\r\n <!-- 선택된 필터 뱃지 표시 -->\r\n <div v-if=\"activeFilters.length > 0\" class=\"flex items-center gap-1 flex-wrap\">\r\n <JBadge\r\n v-for=\"filter in activeFilters\"\r\n :key=\"filter.key\"\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n class=\"flex items-center gap-1 cursor-default\"\r\n >\r\n <span class=\"text-muted-foreground\">{{ filter.label }}:</span>\r\n <span>{{ filter.value }}</span>\r\n <button\r\n type=\"button\"\r\n class=\"ml-0.5 rounded-full hover:bg-gray-300 p-0.5 transition-colors\"\r\n @click.stop=\"removeFilter(filter.key)\"\r\n >\r\n <X class=\"h-3 w-3\" />\r\n </button>\r\n </JBadge>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-2\">\r\n <slot name=\"actions\" />\r\n <JButton\r\n v-if=\"showResetButton\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n @click=\"handleReset\"\r\n >\r\n {{ resetButtonText }}\r\n </JButton>\r\n <JButton\r\n v-if=\"showSearchButton\"\r\n styletype=\"primary\"\r\n size=\"sm\"\r\n @click=\"handleSearch\"\r\n >\r\n {{ searchButtonText }}\r\n </JButton>\r\n </div>\r\n </div>\r\n\r\n <!-- Row 2: filters -->\r\n <div v-show=\"isExpanded\" class=\"px-4 pb-4\">\r\n <slot name=\"filters\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ChevronDown, X } from 'lucide-vue-next'\r\nimport JBadge from '@/components/atoms/JBadge.vue'\r\nimport JButton from '@/components/atoms/JButton.vue'\r\n\r\n/** 활성 필터 아이템 타입 */\r\nexport interface ActiveFilterItem {\r\n /** 필터 식별 키 */\r\n key: string\r\n /** 표시할 라벨 (필터명) */\r\n label: string\r\n /** 표시할 값 */\r\n value: string\r\n}\r\n\r\n/** 필터 설정 타입 */\r\nexport interface FilterConfigItem {\r\n /** 표시할 라벨 */\r\n label: string\r\n /** 값을 표시용 문자열로 변환 (예: combo value -> label) */\r\n displayValue?: (value: unknown) => string\r\n}\r\n\r\nexport interface JFilterBarProps {\r\n /** 필터 접힘 상태 (v-model 지원) */\r\n collapsed?: boolean\r\n /** 접기/펼치기 가능 여부. false면 토글 버튼 숨김 & 필터 항상 표시 */\r\n collapsible?: boolean\r\n /** 필터 값 객체 (v-model:filterValues 지원) */\r\n filterValues?: Record<string, unknown>\r\n /** 필터 설정 (label, displayValue 등) */\r\n filterConfig?: Record<string, FilterConfigItem>\r\n /** 초기화 버튼 표시 여부 */\r\n showResetButton?: boolean\r\n /** 조회 버튼 표시 여부 */\r\n showSearchButton?: boolean\r\n /** 초기화 버튼 텍스트 */\r\n resetButtonText?: string\r\n /** 조회 버튼 텍스트 */\r\n searchButtonText?: string\r\n}\r\n\r\nconst props = withDefaults(defineProps<JFilterBarProps>(), {\r\n collapsed: false,\r\n collapsible: true,\r\n filterValues: () => ({}),\r\n filterConfig: () => ({}),\r\n showResetButton: false,\r\n showSearchButton: false,\r\n resetButtonText: '초기화',\r\n searchButtonText: '조회',\r\n})\r\n\r\nconst emit = defineEmits<{\r\n 'update:collapsed': [value: boolean]\r\n 'update:filterValues': [value: Record<string, unknown>]\r\n /** 조회 버튼 클릭 */\r\n search: []\r\n}>()\r\n\r\nconst isExpanded = computed(() => {\r\n if (!props.collapsible) return true\r\n return !props.collapsed\r\n})\r\n\r\n/** 값이 비어있는지 확인 */\r\nfunction isEmpty(value: unknown): boolean {\r\n if (value === null || value === undefined) return true\r\n if (typeof value === 'string' && value.trim() === '') return true\r\n if (Array.isArray(value) && value.length === 0) return true\r\n return false\r\n}\r\n\r\n/** filterValues + filterConfig 기반으로 활성 필터 목록 자동 생성 */\r\nconst activeFilters = computed<ActiveFilterItem[]>(() => {\r\n const filters: ActiveFilterItem[] = []\r\n\r\n for (const [key, config] of Object.entries(props.filterConfig)) {\r\n const value = props.filterValues[key]\r\n if (isEmpty(value)) continue\r\n\r\n const displayValue = config.displayValue ? config.displayValue(value) : String(value)\r\n if (displayValue.trim() === '') continue\r\n\r\n filters.push({\r\n key,\r\n label: config.label,\r\n value: displayValue,\r\n })\r\n }\r\n\r\n return filters\r\n})\r\n\r\nfunction toggleCollapsed() {\r\n emit('update:collapsed', !props.collapsed)\r\n}\r\n\r\nfunction handleReset() {\r\n // filterValues의 모든 값을 초기화\r\n const resetValues: Record<string, unknown> = {}\r\n for (const key of Object.keys(props.filterValues)) {\r\n const currentValue = props.filterValues[key]\r\n if (typeof currentValue === 'string') {\r\n resetValues[key] = ''\r\n } else if (Array.isArray(currentValue)) {\r\n resetValues[key] = []\r\n } else {\r\n resetValues[key] = null\r\n }\r\n }\r\n emit('update:filterValues', resetValues)\r\n}\r\n\r\nfunction handleSearch() {\r\n emit('search')\r\n}\r\n\r\nfunction removeFilter(key: string) {\r\n // filterValues 업데이트 (해당 키 값을 초기화)\r\n const newValues = { ...props.filterValues }\r\n const currentValue = newValues[key]\r\n\r\n // 타입에 따라 적절한 초기값으로 설정\r\n if (typeof currentValue === 'string') {\r\n newValues[key] = ''\r\n } else if (Array.isArray(currentValue)) {\r\n newValues[key] = []\r\n } else {\r\n newValues[key] = null\r\n }\r\n\r\n emit('update:filterValues', newValues)\r\n}\r\n</script>\r\n"],"names":["props","__props","emit","__emit","isExpanded","computed","isEmpty","value","activeFilters","filters","key","config","displayValue","toggleCollapsed","handleReset","resetValues","currentValue","handleSearch","removeFilter","newValues","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_unref","ChevronDown","_normalizeClass","_hoisted_4","_Fragment","_renderList","filter","_createBlock","JBadge","_hoisted_5","_toDisplayString","_withModifiers","$event","X","_hoisted_7","_renderSlot","_ctx","JButton","_withDirectives","_hoisted_8"],"mappings":"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"}
1
+ {"version":3,"file":"JFilterBar.vue.js","sources":["../../../../src/components/organisms/JFilterBar.vue"],"sourcesContent":["<template>\r\n <div class=\"w-full rounded-lg border bg-card text-card-foreground\">\r\n <!-- Row 1: toolbar -->\r\n <div class=\"flex items-center justify-between px-4 py-2\">\r\n <div class=\"flex items-center gap-2\">\r\n <button\r\n v-if=\"collapsible\"\r\n type=\"button\"\r\n class=\"flex items-center justify-center h-7 w-7 rounded hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n @click=\"toggleCollapsed\"\r\n >\r\n <ChevronDown\r\n :class=\"[\r\n 'h-4 w-4 transition-transform',\r\n isExpanded ? 'rotate-0' : '-rotate-90',\r\n ]\"\r\n />\r\n </button>\r\n <!-- 타이틀 -->\r\n <JLabel\r\n v-if=\"title\"\r\n :text=\"title\"\r\n class=\"text-sm font-semibold text-foreground\"\r\n />\r\n <!-- 선택된 필터 뱃지 표시 -->\r\n <div v-if=\"activeFilters.length > 0\" class=\"flex items-center gap-1 flex-wrap\">\r\n <JBadge\r\n v-for=\"filter in activeFilters\"\r\n :key=\"filter.key\"\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n class=\"flex items-center gap-1 cursor-default\"\r\n >\r\n <span class=\"text-muted-foreground\">{{ filter.label }}:</span>\r\n <span>{{ filter.value }}</span>\r\n <button\r\n type=\"button\"\r\n class=\"ml-0.5 rounded-full hover:bg-gray-300 p-0.5 transition-colors\"\r\n @click.stop=\"removeFilter(filter.key)\"\r\n >\r\n <X class=\"h-3 w-3\" />\r\n </button>\r\n </JBadge>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-2\">\r\n <slot name=\"actions\" />\r\n <JButton\r\n v-if=\"showResetButton\"\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n @click=\"handleReset\"\r\n >\r\n {{ resetButtonText }}\r\n </JButton>\r\n <JButton\r\n v-if=\"showSearchButton\"\r\n styletype=\"primary\"\r\n size=\"sm\"\r\n @click=\"handleSearch\"\r\n >\r\n {{ searchButtonText }}\r\n </JButton>\r\n </div>\r\n </div>\r\n\r\n <!-- Row 2: filters -->\r\n <div v-show=\"isExpanded\" class=\"px-4 pb-4\">\r\n <slot name=\"filters\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ChevronDown, X } from 'lucide-vue-next'\r\nimport JBadge from '@/components/atoms/JBadge.vue'\r\nimport JButton from '@/components/atoms/JButton.vue'\r\nimport JLabel from '@/components/atoms/JLabel.vue'\r\n\r\n/** 활성 필터 아이템 타입 */\r\nexport interface ActiveFilterItem {\r\n /** 필터 식별 키 */\r\n key: string\r\n /** 표시할 라벨 (필터명) */\r\n label: string\r\n /** 표시할 값 */\r\n value: string\r\n}\r\n\r\n/** 필터 설정 타입 */\r\nexport interface FilterDisplayItem {\r\n /** 표시할 라벨 */\r\n label: string\r\n /** 값을 표시용 문자열로 변환 (예: combo value -> label) */\r\n displayValue?: (value: unknown) => string\r\n}\r\n\r\nexport interface JFilterBarProps {\r\n /** 필터바 타이틀 */\r\n title?: string\r\n /** 필터 접힘 상태 (v-model 지원) */\r\n collapsed?: boolean\r\n /** 접기/펼치기 가능 여부. false면 토글 버튼 숨김 & 필터 항상 표시 */\r\n collapsible?: boolean\r\n /** 필터 값 객체 (v-model:filterValues 지원) */\r\n filterValues?: Record<string, unknown>\r\n /** 필터 표시 설정 (label, displayValue 등) */\r\n filterDisplay?: Record<string, FilterDisplayItem>\r\n /** 초기화 버튼 표시 여부 */\r\n showResetButton?: boolean\r\n /** 조회 버튼 표시 여부 */\r\n showSearchButton?: boolean\r\n /** 초기화 버튼 텍스트 */\r\n resetButtonText?: string\r\n /** 조회 버튼 텍스트 */\r\n searchButtonText?: string\r\n}\r\n\r\nconst props = withDefaults(defineProps<JFilterBarProps>(), {\r\n collapsed: false,\r\n collapsible: true,\r\n filterValues: () => ({}),\r\n filterDisplay: () => ({}),\r\n showResetButton: false,\r\n showSearchButton: false,\r\n resetButtonText: '초기화',\r\n searchButtonText: '조회',\r\n})\r\n\r\nconst emit = defineEmits<{\r\n 'update:collapsed': [value: boolean]\r\n 'update:filterValues': [value: Record<string, unknown>]\r\n /** 조회 버튼 클릭 */\r\n search: []\r\n /** 초기화 버튼 클릭 */\r\n reset: []\r\n}>()\r\n\r\nconst isExpanded = computed(() => {\r\n if (!props.collapsible) return true\r\n return !props.collapsed\r\n})\r\n\r\n/** 값이 비어있는지 확인 */\r\nfunction isEmpty(value: unknown): boolean {\r\n if (value === null || value === undefined) return true\r\n if (typeof value === 'string' && value.trim() === '') return true\r\n if (Array.isArray(value) && value.length === 0) return true\r\n return false\r\n}\r\n\r\n/** filterValues + filterDisplay 기반으로 활성 필터 목록 자동 생성 */\r\nconst activeFilters = computed<ActiveFilterItem[]>(() => {\r\n const filters: ActiveFilterItem[] = []\r\n\r\n for (const [key, config] of Object.entries(props.filterDisplay)) {\r\n const value = props.filterValues[key]\r\n if (isEmpty(value)) continue\r\n\r\n const displayValue = config.displayValue ? config.displayValue(value) : String(value)\r\n if (displayValue.trim() === '') continue\r\n\r\n filters.push({\r\n key,\r\n label: config.label,\r\n value: displayValue,\r\n })\r\n }\r\n\r\n return filters\r\n})\r\n\r\nfunction toggleCollapsed() {\r\n emit('update:collapsed', !props.collapsed)\r\n}\r\n\r\nfunction handleReset() {\r\n // filterValues의 모든 값을 초기화\r\n const resetValues: Record<string, unknown> = {}\r\n for (const key of Object.keys(props.filterValues)) {\r\n const currentValue = props.filterValues[key]\r\n if (typeof currentValue === 'string') {\r\n resetValues[key] = ''\r\n } else if (Array.isArray(currentValue)) {\r\n resetValues[key] = []\r\n } else {\r\n resetValues[key] = null\r\n }\r\n }\r\n emit('update:filterValues', resetValues)\r\n emit('reset')\r\n}\r\n\r\nfunction handleSearch() {\r\n emit('search')\r\n}\r\n\r\nfunction removeFilter(key: string) {\r\n // filterValues 업데이트 (해당 키 값을 초기화)\r\n const newValues = { ...props.filterValues }\r\n const currentValue = newValues[key]\r\n\r\n // 타입에 따라 적절한 초기값으로 설정\r\n if (typeof currentValue === 'string') {\r\n newValues[key] = ''\r\n } else if (Array.isArray(currentValue)) {\r\n newValues[key] = []\r\n } else {\r\n newValues[key] = null\r\n }\r\n\r\n emit('update:filterValues', newValues)\r\n}\r\n</script>\r\n"],"names":["props","__props","emit","__emit","isExpanded","computed","isEmpty","value","activeFilters","filters","key","config","displayValue","toggleCollapsed","handleReset","resetValues","currentValue","handleSearch","removeFilter","newValues","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_unref","ChevronDown","_normalizeClass","_createBlock","JLabel","_hoisted_4","_Fragment","_renderList","filter","JBadge","_hoisted_5","_toDisplayString","_withModifiers","$event","X","_hoisted_7","_renderSlot","_ctx","JButton","_withDirectives","_hoisted_8"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("@vueuse/core"),c=require("lucide-vue-next"),r=require("reka-ui"),d=require("../../../lib/utils.cjs"),u={key:0,class:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border"},f=e.defineComponent({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(a,{emit:i}){const t=a,n=i,o=l.reactiveOmit(t,"class"),s=r.useForwardPropsEmits(o,n);return(p,v)=>(e.openBlock(),e.createBlock(e.unref(r.SplitterResizeHandle),e.mergeProps(e.unref(s),{class:e.unref(d.cn)("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t.class)}),{default:e.withCtx(()=>[t.withHandle?(e.openBlock(),e.createElementBlock("div",u,[e.createVNode(e.unref(c.GripVertical),{class:"h-2.5 w-2.5"})])):e.createCommentVNode("",!0)]),_:1},16,["class"]))}});exports.default=f;
2
+ //# sourceMappingURL=ResizableHandle.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\r\nimport type { HTMLAttributes } from \"vue\"\r\nimport { reactiveOmit } from \"@vueuse/core\"\r\nimport { GripVertical } from \"lucide-vue-next\"\r\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\r\nconst emits = defineEmits<SplitterResizeHandleEmits>()\r\n\r\nconst delegatedProps = reactiveOmit(props, \"class\")\r\n\r\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":"+iBAQA,MAAMA,EAAQC,EACRC,EAAQC,EAERC,EAAiBC,EAAAA,aAAaL,EAAO,OAAO,EAE5CM,EAAYC,EAAAA,qBAAqBH,EAAgBF,CAAK,8BAI1DM,EAAAA,YAMuBC,EAAAA,MAAAC,EAAAA,oBAAA,EANvBC,EAAAA,WAMuBF,QAAAH,CAAA,EANgB,CAAG,MAAOG,EAAAA,MAAAG,EAAAA,EAAA,EAAE,+kBAAilBZ,EAAM,KAAK,CAAA,sBAC7oB,IAIW,CAJKA,EAAM,YACpBa,EAAAA,UAAA,EAAAC,EAAAA,mBAEM,MAFNC,EAEM,CADJC,EAAAA,YAAoCP,EAAAA,MAAAQ,EAAAA,YAAA,EAAA,CAAtB,MAAM,cAAa,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { defineComponent as l, createBlock as c, openBlock as a, unref as e, mergeProps as d, withCtx as f, createElementBlock as m, createCommentVNode as p, createVNode as u } from "vue";
2
+ import { reactiveOmit as v } from "@vueuse/core";
3
+ import { GripVertical as b } from "lucide-vue-next";
4
+ import { useForwardPropsEmits as g, SplitterResizeHandle as h } from "reka-ui";
5
+ import { cn as w } from "../../../lib/utils.js";
6
+ const x = {
7
+ key: 0,
8
+ class: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border"
9
+ }, P = /* @__PURE__ */ l({
10
+ __name: "ResizableHandle",
11
+ props: {
12
+ id: {},
13
+ hitAreaMargins: {},
14
+ tabindex: {},
15
+ disabled: { type: Boolean },
16
+ nonce: {},
17
+ asChild: { type: Boolean },
18
+ as: {},
19
+ class: {},
20
+ withHandle: { type: Boolean }
21
+ },
22
+ emits: ["dragging"],
23
+ setup(r, { emit: i }) {
24
+ const t = r, o = i, n = v(t, "class"), s = g(n, o);
25
+ return (_, y) => (a(), c(e(h), d(e(s), {
26
+ class: e(w)("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90", t.class)
27
+ }), {
28
+ default: f(() => [
29
+ t.withHandle ? (a(), m("div", x, [
30
+ u(e(b), { class: "h-2.5 w-2.5" })
31
+ ])) : p("", !0)
32
+ ]),
33
+ _: 1
34
+ }, 16, ["class"]));
35
+ }
36
+ });
37
+ export {
38
+ P as default
39
+ };
40
+ //# sourceMappingURL=ResizableHandle.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\r\nimport type { HTMLAttributes } from \"vue\"\r\nimport { reactiveOmit } from \"@vueuse/core\"\r\nimport { GripVertical } from \"lucide-vue-next\"\r\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\r\nconst emits = defineEmits<SplitterResizeHandleEmits>()\r\n\r\nconst delegatedProps = reactiveOmit(props, \"class\")\r\n\r\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GACRC,IAAQC,GAERC,IAAiBC,EAAaL,GAAO,OAAO,GAE5CM,IAAYC,EAAqBH,GAAgBF,CAAK;2BAI1DM,EAMuBC,EAAAC,CAAA,GANvBC,EAMuBF,EAAAH,CAAA,GANgB;AAAA,MAAG,OAAOG,EAAAG,CAAA,EAAE,glBAAilBZ,EAAM,KAAK;AAAA,IAAA;iBAC7oB,MAIW;AAAA,QAJKA,EAAM,cACpBa,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,UADJC,EAAoCP,EAAAQ,CAAA,GAAA,EAAtB,OAAM,eAAa;AAAA,QAAA;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ResizableHandle.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=ResizableHandle.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import f from "./ResizableHandle.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=ResizableHandle.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("@vueuse/core"),r=require("reka-ui"),u=require("../../../lib/utils.cjs"),d=e.defineComponent({__name:"ResizablePanelGroup",props:{id:{},autoSaveId:{},direction:{},keyboardResizeBy:{},storage:{},asChild:{type:Boolean},as:{},class:{}},emits:["layout"],setup(s,{emit:o}){const t=s,a=o,l=n.reactiveOmit(t,"class"),c=r.useForwardPropsEmits(l,a);return(i,p)=>(e.openBlock(),e.createBlock(e.unref(r.SplitterGroup),e.mergeProps(e.unref(c),{class:e.unref(u.cn)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",t.class)}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},16,["class"]))}});exports.default=d;
2
+ //# sourceMappingURL=ResizablePanelGroup.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanelGroup.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizablePanelGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterGroupEmits, SplitterGroupProps } from \"reka-ui\"\r\nimport type { HTMLAttributes } from \"vue\"\r\nimport { reactiveOmit } from \"@vueuse/core\"\r\nimport { SplitterGroup, useForwardPropsEmits } from \"reka-ui\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst props = defineProps<SplitterGroupProps & { class?: HTMLAttributes[\"class\"] }>()\r\nconst emits = defineEmits<SplitterGroupEmits>()\r\n\r\nconst delegatedProps = reactiveOmit(props, \"class\")\r\n\r\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterGroup v-bind=\"forwarded\" :class=\"cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)\">\n <slot />\n </SplitterGroup>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterGroup","_mergeProps","cn","_renderSlot","_ctx"],"mappings":"yZAOA,MAAMA,EAAQC,EACRC,EAAQC,EAERC,EAAiBC,EAAAA,aAAaL,EAAO,OAAO,EAE5CM,EAAYC,EAAAA,qBAAqBH,EAAgBF,CAAK,8BAI1DM,EAAAA,YAEgBC,EAAAA,MAAAC,EAAAA,aAAA,EAFhBC,EAAAA,WAEgBF,QAAAH,CAAA,EAFgB,CAAG,MAAOG,EAAAA,MAAAG,EAAAA,EAAA,EAAE,oEAAsEZ,EAAM,KAAK,CAAA,sBAC3H,IAAQ,CAARa,aAAQC,EAAA,OAAA,SAAA,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { defineComponent as c, createBlock as n, openBlock as p, unref as e, mergeProps as d, withCtx as m, renderSlot as f } from "vue";
2
+ import { reactiveOmit as u } from "@vueuse/core";
3
+ import { useForwardPropsEmits as _, SplitterGroup as g } from "reka-ui";
4
+ import { cn as h } from "../../../lib/utils.js";
5
+ const k = /* @__PURE__ */ c({
6
+ __name: "ResizablePanelGroup",
7
+ props: {
8
+ id: {},
9
+ autoSaveId: {},
10
+ direction: {},
11
+ keyboardResizeBy: {},
12
+ storage: {},
13
+ asChild: { type: Boolean },
14
+ as: {},
15
+ class: {}
16
+ },
17
+ emits: ["layout"],
18
+ setup(t, { emit: r }) {
19
+ const o = t, s = r, a = u(o, "class"), l = _(a, s);
20
+ return (i, w) => (p(), n(e(g), d(e(l), {
21
+ class: e(h)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", o.class)
22
+ }), {
23
+ default: m(() => [
24
+ f(i.$slots, "default")
25
+ ]),
26
+ _: 3
27
+ }, 16, ["class"]));
28
+ }
29
+ });
30
+ export {
31
+ k as default
32
+ };
33
+ //# sourceMappingURL=ResizablePanelGroup.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanelGroup.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizablePanelGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterGroupEmits, SplitterGroupProps } from \"reka-ui\"\r\nimport type { HTMLAttributes } from \"vue\"\r\nimport { reactiveOmit } from \"@vueuse/core\"\r\nimport { SplitterGroup, useForwardPropsEmits } from \"reka-ui\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst props = defineProps<SplitterGroupProps & { class?: HTMLAttributes[\"class\"] }>()\r\nconst emits = defineEmits<SplitterGroupEmits>()\r\n\r\nconst delegatedProps = reactiveOmit(props, \"class\")\r\n\r\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterGroup v-bind=\"forwarded\" :class=\"cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)\">\n <slot />\n </SplitterGroup>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterGroup","_mergeProps","cn","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,UAAMA,IAAQC,GACRC,IAAQC,GAERC,IAAiBC,EAAaL,GAAO,OAAO,GAE5CM,IAAYC,EAAqBH,GAAgBF,CAAK;2BAI1DM,EAEgBC,EAAAC,CAAA,GAFhBC,EAEgBF,EAAAH,CAAA,GAFgB;AAAA,MAAG,OAAOG,EAAAG,CAAA,EAAE,qEAAsEZ,EAAM,KAAK;AAAA,IAAA;iBAC3H,MAAQ;AAAA,QAARa,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ResizablePanelGroup.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=ResizablePanelGroup.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanelGroup.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import f from "./ResizablePanelGroup.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=ResizablePanelGroup.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanelGroup.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
1
  require('./assets/styles/j-components.css');
2
2
  require('./assets/styles/themes.css');
3
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */;/* empty css */const e=require("./components/atoms/JButton.vue.cjs"),t=require("./components/atoms/JInput.vue.cjs"),u=require("./components/atoms/JTextarea.vue.cjs"),_=require("./components/atoms/JCheckbox.vue.cjs"),r=require("./components/atoms/JCombo.vue.cjs"),a=require("./components/atoms/JSearchCombo.vue.cjs"),s=require("./components/atoms/JRadio.vue.cjs"),i=require("./components/atoms/JSwitch.vue.cjs"),p=require("./components/atoms/JDatepicker.vue.cjs"),n=require("./components/atoms/JDivider.vue.cjs"),o=require("./components/atoms/JEditor.vue.cjs"),c=require("./components/atoms/JLink.vue.cjs"),l=require("./components/atoms/JImage.vue.cjs"),J=require("./components/atoms/JBadge.vue.cjs"),d=require("./components/atoms/JProgress.vue.cjs");;/* empty css */const v=require("./components/atoms/JSpinner.vue.cjs"),q=require("./components/atoms/JAvatar.vue.cjs"),y=require("./components/atoms/JKbd.vue.cjs"),f=require("./components/atoms/JTooltip.vue.cjs"),g=require("./components/atoms/JIcon.vue.cjs"),b=require("./components/atoms/JLabel.vue.cjs"),m=require("./components/atoms/JPopover.vue.cjs"),S=require("./components/atoms/JPreview.vue.cjs"),T=require("./components/atoms/JGrid.vue.cjs"),C=require("vue-sonner"),A=require("./components/atoms/JToast.vue.cjs"),P=require("./components/molecules/JFormField.vue.cjs");;/* empty css */const h=require("./components/molecules/JGroupCombo.vue.cjs"),B=require("./components/molecules/JTabs.vue.cjs"),F=require("./components/molecules/JSearchAddr.vue.cjs"),L=require("./components/molecules/JContextMenu.vue.cjs"),D=require("./components/molecules/JCard.vue.cjs"),M=require("./components/molecules/JAlert.vue.cjs"),k=require("./components/molecules/JAccordion.vue.cjs"),x=require("./components/molecules/JTitlebar.vue.cjs"),G=require("./components/molecules/JButtonGroup.vue.cjs"),I=require("./components/molecules/JBreadcrumb.vue.cjs"),w=require("./components/organisms/JDynamicTabs.vue.cjs"),j=require("./components/organisms/JModal.vue.cjs"),E=require("./components/organisms/JFormModal.vue.cjs"),H=require("./components/organisms/JDynamicForm.vue.cjs"),K=require("./components/organisms/JSearchPanel.vue.cjs"),O=require("./components/organisms/JFilterBar.vue.cjs"),R=require("./components/organisms/JHeader.vue.cjs"),z=require("./components/organisms/JSidebarSimple.vue.cjs"),N=require("./components/organisms/JSidebarAdvanced.vue.cjs"),Q=require("./components/organisms/JPageContainer.vue.cjs"),U=require("./components/organisms/JTree.vue.cjs"),V=require("./components/templates/JLayout.vue.cjs"),W=require("./components/templates/JLayoutSimple.vue.cjs"),X=require("./components/templates/JLayoutAdvanced.vue.cjs");exports.JButton=e.default;exports.JInput=t.default;exports.JTextarea=u.default;exports.JCheckbox=_.default;exports.JCombo=r.default;exports.JSearchCombo=a.default;exports.JRadio=s.default;exports.JSwitch=i.default;exports.JDatepicker=p.default;exports.JDivider=n.default;exports.JEditor=o.default;exports.JLink=c.default;exports.JImage=l.default;exports.JBadge=J.default;exports.JProgress=d.default;exports.JSpinner=v.default;exports.JAvatar=q.default;exports.JKbd=y.default;exports.JTooltip=f.default;exports.JIcon=g.default;exports.JLabel=b.default;exports.JPopover=m.default;exports.JPreview=S.default;exports.JGrid=T.default;Object.defineProperty(exports,"JToast",{enumerable:!0,get:()=>C.toast});exports.JToaster=A.default;exports.JFormField=P.default;exports.JGroupCombo=h.default;exports.JTabs=B.default;exports.JSearchAddr=F.default;exports.JContextMenu=L.default;exports.JCard=D.default;exports.JAlert=M.default;exports.JAccordion=k.default;exports.JTitlebar=x.default;exports.JButtonGroup=G.default;exports.JBreadcrumb=I.default;exports.JDynamicTabs=w.default;exports.JModal=j.default;exports.JFormModal=E.default;exports.JDynamicForm=H.default;exports.JSearchPanel=K.default;exports.JFilterBar=O.default;exports.JHeader=R.default;exports.JSidebarSimple=z.default;exports.JSidebarAdvanced=N.default;exports.JPageContainer=Q.default;exports.JTree=U.default;exports.JLayout=V.default;exports.JLayoutSimple=W.default;exports.JLayoutAdvanced=X.default;
3
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */;/* empty css */const e=require("./components/atoms/JButton.vue.cjs"),t=require("./components/atoms/JInput.vue.cjs"),u=require("./components/atoms/JTextarea.vue.cjs"),_=require("./components/atoms/JCheckbox.vue.cjs"),r=require("./components/atoms/JCombo.vue.cjs"),a=require("./components/atoms/JSearchCombo.vue.cjs"),i=require("./components/atoms/JRadio.vue.cjs"),s=require("./components/atoms/JSwitch.vue.cjs"),p=require("./components/atoms/JDatepicker.vue.cjs"),n=require("./components/atoms/JDivider.vue.cjs"),c=require("./components/atoms/JEditor.vue.cjs"),o=require("./components/atoms/JLink.vue.cjs"),l=require("./components/atoms/JImage.vue.cjs"),J=require("./components/atoms/JBadge.vue.cjs"),d=require("./components/atoms/JProgress.vue.cjs");;/* empty css */const v=require("./components/atoms/JSpinner.vue.cjs"),q=require("./components/atoms/JAvatar.vue.cjs"),y=require("./components/atoms/JKbd.vue.cjs"),f=require("./components/atoms/JTooltip.vue.cjs"),g=require("./components/atoms/JIcon.vue.cjs"),b=require("./components/atoms/JLabel.vue.cjs"),m=require("./components/atoms/JPopover.vue.cjs"),S=require("./components/atoms/JPreview.vue.cjs"),T=require("./components/atoms/JGrid.vue.cjs"),C=require("./components/atoms/JSplitter.vue.cjs"),A=require("vue-sonner"),P=require("./components/atoms/JToast.vue.cjs"),h=require("./components/molecules/JFormField.vue.cjs");;/* empty css */const B=require("./components/molecules/JGroupCombo.vue.cjs"),F=require("./components/molecules/JTabs.vue.cjs"),L=require("./components/molecules/JSearchAddr.vue.cjs"),D=require("./components/molecules/JContextMenu.vue.cjs"),M=require("./components/molecules/JCard.vue.cjs"),k=require("./components/molecules/JAlert.vue.cjs"),x=require("./components/molecules/JAccordion.vue.cjs"),G=require("./components/molecules/JTitlebar.vue.cjs"),I=require("./components/molecules/JButtonGroup.vue.cjs"),w=require("./components/molecules/JBreadcrumb.vue.cjs"),j=require("./components/organisms/JDynamicTabs.vue.cjs"),E=require("./components/organisms/JModal.vue.cjs"),H=require("./components/organisms/JFormModal.vue.cjs"),K=require("./components/organisms/JDynamicForm.vue.cjs"),O=require("./components/organisms/JSearchPanel.vue.cjs"),R=require("./components/organisms/JFilterBar.vue.cjs"),z=require("./components/organisms/JHeader.vue.cjs"),N=require("./components/organisms/JSidebarSimple.vue.cjs"),Q=require("./components/organisms/JSidebarAdvanced.vue.cjs"),U=require("./components/organisms/JPageContainer.vue.cjs"),V=require("./components/organisms/JTree.vue.cjs"),W=require("./components/templates/JLayout.vue.cjs"),X=require("./components/templates/JLayoutSimple.vue.cjs"),Y=require("./components/templates/JLayoutAdvanced.vue.cjs");exports.JButton=e.default;exports.JInput=t.default;exports.JTextarea=u.default;exports.JCheckbox=_.default;exports.JCombo=r.default;exports.JSearchCombo=a.default;exports.JRadio=i.default;exports.JSwitch=s.default;exports.JDatepicker=p.default;exports.JDivider=n.default;exports.JEditor=c.default;exports.JLink=o.default;exports.JImage=l.default;exports.JBadge=J.default;exports.JProgress=d.default;exports.JSpinner=v.default;exports.JAvatar=q.default;exports.JKbd=y.default;exports.JTooltip=f.default;exports.JIcon=g.default;exports.JLabel=b.default;exports.JPopover=m.default;exports.JPreview=S.default;exports.JGrid=T.default;exports.JSplitter=C.default;Object.defineProperty(exports,"JToast",{enumerable:!0,get:()=>A.toast});exports.JToaster=P.default;exports.JFormField=h.default;exports.JGroupCombo=B.default;exports.JTabs=F.default;exports.JSearchAddr=L.default;exports.JContextMenu=D.default;exports.JCard=M.default;exports.JAlert=k.default;exports.JAccordion=x.default;exports.JTitlebar=G.default;exports.JButtonGroup=I.default;exports.JBreadcrumb=w.default;exports.JDynamicTabs=j.default;exports.JModal=E.default;exports.JFormModal=H.default;exports.JDynamicForm=K.default;exports.JSearchPanel=O.default;exports.JFilterBar=R.default;exports.JHeader=z.default;exports.JSidebarSimple=N.default;exports.JSidebarAdvanced=Q.default;exports.JPageContainer=U.default;exports.JTree=V.default;exports.JLayout=W.default;exports.JLayoutSimple=X.default;exports.JLayoutAdvanced=Y.default;
4
4
  //# sourceMappingURL=index.cjs.map
package/index.js CHANGED
@@ -28,85 +28,87 @@ import { default as V } from "./components/atoms/JLabel.vue.js";
28
28
  import { default as X } from "./components/atoms/JPopover.vue.js";
29
29
  import { default as Z } from "./components/atoms/JPreview.vue.js";
30
30
  import { default as $ } from "./components/atoms/JGrid.vue.js";
31
- import { toast as ro } from "vue-sonner";
32
- import { default as ao } from "./components/atoms/JToast.vue.js";
33
- import { default as fo } from "./components/molecules/JFormField.vue.js";
31
+ import { default as or } from "./components/atoms/JSplitter.vue.js";
32
+ import { toast as ar } from "vue-sonner";
33
+ import { default as fr } from "./components/atoms/JToast.vue.js";
34
+ import { default as mr } from "./components/molecules/JFormField.vue.js";
34
35
  /* empty css */
35
- import { default as po } from "./components/molecules/JGroupCombo.vue.js";
36
- import { default as uo } from "./components/molecules/JTabs.vue.js";
37
- import { default as xo } from "./components/molecules/JSearchAddr.vue.js";
38
- import { default as io } from "./components/molecules/JContextMenu.vue.js";
39
- import { default as co } from "./components/molecules/JCard.vue.js";
40
- import { default as So } from "./components/molecules/JAlert.vue.js";
41
- import { default as Co } from "./components/molecules/JAccordion.vue.js";
42
- import { default as Ao } from "./components/molecules/JTitlebar.vue.js";
43
- import { default as yo } from "./components/molecules/JButtonGroup.vue.js";
44
- import { default as Fo } from "./components/molecules/JBreadcrumb.vue.js";
45
- import { default as Po } from "./components/organisms/JDynamicTabs.vue.js";
46
- import { default as Do } from "./components/organisms/JModal.vue.js";
47
- import { default as Go } from "./components/organisms/JFormModal.vue.js";
48
- import { default as Mo } from "./components/organisms/JDynamicForm.vue.js";
49
- import { default as Eo } from "./components/organisms/JSearchPanel.vue.js";
50
- import { default as Ko } from "./components/organisms/JFilterBar.vue.js";
51
- import { default as jo } from "./components/organisms/JHeader.vue.js";
52
- import { default as zo } from "./components/organisms/JSidebarSimple.vue.js";
53
- import { default as Oo } from "./components/organisms/JSidebarAdvanced.vue.js";
54
- import { default as Uo } from "./components/organisms/JPageContainer.vue.js";
55
- import { default as Wo } from "./components/organisms/JTree.vue.js";
56
- import { default as Yo } from "./components/templates/JLayout.vue.js";
57
- import { default as _o } from "./components/templates/JLayoutSimple.vue.js";
58
- import { default as or } from "./components/templates/JLayoutAdvanced.vue.js";
36
+ import { default as lr } from "./components/molecules/JGroupCombo.vue.js";
37
+ import { default as sr } from "./components/molecules/JTabs.vue.js";
38
+ import { default as Jr } from "./components/molecules/JSearchAddr.vue.js";
39
+ import { default as nr } from "./components/molecules/JContextMenu.vue.js";
40
+ import { default as br } from "./components/molecules/JCard.vue.js";
41
+ import { default as Tr } from "./components/molecules/JAlert.vue.js";
42
+ import { default as vr } from "./components/molecules/JAccordion.vue.js";
43
+ import { default as hr } from "./components/molecules/JTitlebar.vue.js";
44
+ import { default as Br } from "./components/molecules/JButtonGroup.vue.js";
45
+ import { default as Lr } from "./components/molecules/JBreadcrumb.vue.js";
46
+ import { default as gr } from "./components/organisms/JDynamicTabs.vue.js";
47
+ import { default as kr } from "./components/organisms/JModal.vue.js";
48
+ import { default as Ir } from "./components/organisms/JFormModal.vue.js";
49
+ import { default as wr } from "./components/organisms/JDynamicForm.vue.js";
50
+ import { default as Hr } from "./components/organisms/JSearchPanel.vue.js";
51
+ import { default as Rr } from "./components/organisms/JFilterBar.vue.js";
52
+ import { default as qr } from "./components/organisms/JHeader.vue.js";
53
+ import { default as Nr } from "./components/organisms/JSidebarSimple.vue.js";
54
+ import { default as Qr } from "./components/organisms/JSidebarAdvanced.vue.js";
55
+ import { default as Vr } from "./components/organisms/JPageContainer.vue.js";
56
+ import { default as Xr } from "./components/organisms/JTree.vue.js";
57
+ import { default as Zr } from "./components/templates/JLayout.vue.js";
58
+ import { default as $r } from "./components/templates/JLayoutSimple.vue.js";
59
+ import { default as oo } from "./components/templates/JLayoutAdvanced.vue.js";
59
60
  export {
60
- Co as JAccordion,
61
- So as JAlert,
61
+ vr as JAccordion,
62
+ Tr as JAlert,
62
63
  R as JAvatar,
63
64
  I as JBadge,
64
- Fo as JBreadcrumb,
65
+ Lr as JBreadcrumb,
65
66
  m as JButton,
66
- yo as JButtonGroup,
67
- co as JCard,
67
+ Br as JButtonGroup,
68
+ br as JCard,
68
69
  J as JCheckbox,
69
70
  n as JCombo,
70
- io as JContextMenu,
71
+ nr as JContextMenu,
71
72
  h as JDatepicker,
72
73
  B as JDivider,
73
- Mo as JDynamicForm,
74
- Po as JDynamicTabs,
74
+ wr as JDynamicForm,
75
+ gr as JDynamicTabs,
75
76
  L as JEditor,
76
- Ko as JFilterBar,
77
- fo as JFormField,
78
- Go as JFormModal,
77
+ Rr as JFilterBar,
78
+ mr as JFormField,
79
+ Ir as JFormModal,
79
80
  $ as JGrid,
80
- po as JGroupCombo,
81
- jo as JHeader,
81
+ lr as JGroupCombo,
82
+ qr as JHeader,
82
83
  Q as JIcon,
83
84
  k as JImage,
84
85
  l as JInput,
85
86
  q as JKbd,
86
87
  V as JLabel,
87
- Yo as JLayout,
88
- or as JLayoutAdvanced,
89
- _o as JLayoutSimple,
88
+ Zr as JLayout,
89
+ oo as JLayoutAdvanced,
90
+ $r as JLayoutSimple,
90
91
  g as JLink,
91
- Do as JModal,
92
- Uo as JPageContainer,
92
+ kr as JModal,
93
+ Vr as JPageContainer,
93
94
  X as JPopover,
94
95
  Z as JPreview,
95
96
  w as JProgress,
96
97
  T as JRadio,
97
- xo as JSearchAddr,
98
+ Jr as JSearchAddr,
98
99
  b as JSearchCombo,
99
- Eo as JSearchPanel,
100
- Oo as JSidebarAdvanced,
101
- zo as JSidebarSimple,
100
+ Hr as JSearchPanel,
101
+ Qr as JSidebarAdvanced,
102
+ Nr as JSidebarSimple,
102
103
  H as JSpinner,
104
+ or as JSplitter,
103
105
  v as JSwitch,
104
- uo as JTabs,
106
+ sr as JTabs,
105
107
  s as JTextarea,
106
- Ao as JTitlebar,
107
- ro as JToast,
108
- ao as JToaster,
108
+ hr as JTitlebar,
109
+ ar as JToast,
110
+ fr as JToaster,
109
111
  N as JTooltip,
110
- Wo as JTree
112
+ Xr as JTree
111
113
  };
112
114
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@j-solution/components",
3
3
  "description": "Vue 3 Atomic Design component kit for enterprise dashboards",
4
- "version": "1.5.0",
4
+ "version": "1.6.0",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
7
7
  "module": "./index.js",
@@ -68,7 +68,7 @@
68
68
  "lucide-vue-next": "^0.545.0",
69
69
  "md-editor-v3": "^6.3.1",
70
70
  "radix-vue": "^1.9.17",
71
- "reka-ui": "^2.6.0",
71
+ "reka-ui": "^2.6.1",
72
72
  "tailwind-merge": "^3.3.1",
73
73
  "vee-validate": "^4.15.1",
74
74
  "vue-sonner": "^2.0.9",