@j-solution/components 1.8.0 → 1.9.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 (79) hide show
  1. package/README.md +413 -415
  2. package/assets/jwms-portal-frontend-Ct2Tc7yj.css +1 -0
  3. package/assets/styles/j-components.css +1 -1
  4. package/assets/styles/themes.css +422 -422
  5. package/components/atoms/JButton.vue.cjs +1 -1
  6. package/components/atoms/JButton.vue.js +1 -1
  7. package/components/atoms/JButton.vue2.cjs.map +1 -1
  8. package/components/atoms/JButton.vue2.js.map +1 -1
  9. package/components/atoms/JLabel.vue.cjs.map +1 -1
  10. package/components/atoms/JLabel.vue.js.map +1 -1
  11. package/components/molecules/JTabs.vue.cjs +1 -1
  12. package/components/molecules/JTabs.vue.js +1 -1
  13. package/components/molecules/JTabs.vue2.cjs.map +1 -1
  14. package/components/molecules/JTabs.vue2.js.map +1 -1
  15. package/components/organisms/JDynamicTabs.vue.cjs.map +1 -1
  16. package/components/organisms/JDynamicTabs.vue.js.map +1 -1
  17. package/components/organisms/JFilterBar.vue.cjs +1 -1
  18. package/components/organisms/JFilterBar.vue.js +2 -2
  19. package/components/organisms/JFilterBar.vue2.cjs +1 -1
  20. package/components/organisms/JFilterBar.vue2.cjs.map +1 -1
  21. package/components/organisms/JFilterBar.vue2.js +14 -12
  22. package/components/organisms/JFilterBar.vue2.js.map +1 -1
  23. package/components/organisms/JPageContainer.vue.cjs.map +1 -1
  24. package/components/organisms/JPageContainer.vue.js.map +1 -1
  25. package/components/organisms/JSidebar/JSidebar.vue.cjs +2 -0
  26. package/components/organisms/JSidebar/JSidebar.vue.cjs.map +1 -0
  27. package/components/organisms/JSidebar/JSidebar.vue.js +189 -0
  28. package/components/organisms/JSidebar/JSidebar.vue.js.map +1 -0
  29. package/components/organisms/JSidebar/JSidebar.vue2.cjs +2 -0
  30. package/components/organisms/JSidebar/JSidebar.vue2.cjs.map +1 -0
  31. package/components/organisms/JSidebar/JSidebar.vue2.js +5 -0
  32. package/components/organisms/JSidebar/JSidebar.vue2.js.map +1 -0
  33. package/components/organisms/JSidebar/JSidebarGroup.vue.cjs +2 -0
  34. package/components/organisms/JSidebar/JSidebarGroup.vue.cjs.map +1 -0
  35. package/components/organisms/JSidebar/JSidebarGroup.vue.js +89 -0
  36. package/components/organisms/JSidebar/JSidebarGroup.vue.js.map +1 -0
  37. package/components/organisms/JSidebar/JSidebarGroup.vue2.cjs +2 -0
  38. package/components/organisms/JSidebar/JSidebarGroup.vue2.cjs.map +1 -0
  39. package/components/organisms/JSidebar/JSidebarGroup.vue2.js +5 -0
  40. package/components/organisms/JSidebar/JSidebarGroup.vue2.js.map +1 -0
  41. package/components/organisms/JSidebar/JSidebarItem.vue.cjs +2 -0
  42. package/components/organisms/JSidebar/JSidebarItem.vue.cjs.map +1 -0
  43. package/components/organisms/JSidebar/JSidebarItem.vue.js +79 -0
  44. package/components/organisms/JSidebar/JSidebarItem.vue.js.map +1 -0
  45. package/components/organisms/JSidebar/JSidebarItem.vue2.cjs +2 -0
  46. package/components/organisms/JSidebar/JSidebarItem.vue2.cjs.map +1 -0
  47. package/components/organisms/JSidebar/JSidebarItem.vue2.js +5 -0
  48. package/components/organisms/JSidebar/JSidebarItem.vue2.js.map +1 -0
  49. package/components/shadcn/Card.vue.cjs.map +1 -1
  50. package/components/shadcn/Card.vue.js.map +1 -1
  51. package/components/shadcn/CardContent.vue.cjs.map +1 -1
  52. package/components/shadcn/CardContent.vue.js.map +1 -1
  53. package/components/shadcn/CardHeader.vue.cjs.map +1 -1
  54. package/components/shadcn/CardHeader.vue.js.map +1 -1
  55. package/components/shadcn/Input.vue.cjs.map +1 -1
  56. package/components/shadcn/Input.vue.js.map +1 -1
  57. package/components/shadcn/SelectTrigger.vue.cjs.map +1 -1
  58. package/components/shadcn/SelectTrigger.vue.js.map +1 -1
  59. package/components/shadcn/TabsContent.vue.cjs.map +1 -1
  60. package/components/shadcn/TabsContent.vue.js.map +1 -1
  61. package/components/shadcn/Textarea.vue.cjs.map +1 -1
  62. package/components/shadcn/Textarea.vue.js.map +1 -1
  63. package/components/shadcn/index.cjs.map +1 -1
  64. package/components/shadcn/index.js.map +1 -1
  65. package/components/templates/JLayout.vue.cjs.map +1 -1
  66. package/components/templates/JLayout.vue.js.map +1 -1
  67. package/components/templates/JLayoutSimple.vue.cjs +1 -1
  68. package/components/templates/JLayoutSimple.vue.cjs.map +1 -1
  69. package/components/templates/JLayoutSimple.vue.js +36 -30
  70. package/components/templates/JLayoutSimple.vue.js.map +1 -1
  71. package/index.cjs +1 -1
  72. package/index.js +22 -20
  73. package/package.json +1 -1
  74. package/types/index.d.ts +119 -61
  75. package/types/sidebar.types.cjs +2 -0
  76. package/types/sidebar.types.cjs.map +1 -0
  77. package/types/sidebar.types.js +5 -0
  78. package/types/sidebar.types.js.map +1 -0
  79. package/assets/jwms-portal-frontend-BtHTA-UF.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"JLayout.vue.js","sources":["../../../../src/components/templates/JLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { cn } from '@/lib/utils'\r\n\r\n/**\r\n * JLayout - 기본 레이아웃 컴포넌트 (templates)\r\n * Base Layout Component\r\n * \r\n * @description\r\n * 공통 레이아웃 구조를 제공하는 기본 컴포넌트입니다.\r\n * Header, Sidebar, Content 영역을 슬롯으로 제공하여 유연한 레이아웃 구성이 가능합니다.\r\n * \r\n * 레이아웃 구조:\r\n * - header: 상단 헤더 영역 (슬롯)\r\n * - sidebar: 사이드바 영역 (슬롯)\r\n * - content: 메인 콘텐츠 영역 (슬롯, 기본 슬롯도 지원)\r\n * \r\n * @example\r\n * ```vue\r\n * <JLayout styletype=\"default\" :content-scroll=\"true\">\r\n * <template #header>\r\n * <JHeader logo-text=\"JWMS Portal\" />\r\n * </template>\r\n * <template #sidebar>\r\n * <JSidebarSimple :menu-items=\"menuItems\" />\r\n * </template>\r\n * <template #content>\r\n * <div>메인 콘텐츠</div>\r\n * </template>\r\n * </JLayout>\r\n * ```\r\n * \r\n * @example 기본 슬롯 사용\r\n * ```vue\r\n * <JLayout>\r\n * <div>기본 콘텐츠</div>\r\n * </JLayout>\r\n * ```\r\n */\r\n\r\ntype StyleType = 'default' | 'minimal'\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 레이아웃 스타일 타입 */\r\n styletype?: StyleType\r\n /** 콘텐츠 영역 스크롤 가능 여부 */\r\n contentScroll?: boolean\r\n /** 추가 CSS 클래스 */\r\n class?: string\r\n }>(),\r\n {\r\n styletype: 'default',\r\n contentScroll: true,\r\n }\r\n)\r\n\r\n// JLayout은 사이드바 상태를 직접 관리하지 않고, 슬롯으로 전달\r\n// Preset 컴포넌트(JLayoutAdvanced, JLayoutSimple)에서 상태 관리\r\n\r\n/**\r\n * 스타일 프리셋\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, {\r\n containerClass: string\r\n contentClass: string\r\n}> = {\r\n default: {\r\n containerClass: 'flex flex-col h-screen w-full overflow-hidden',\r\n contentClass: 'flex flex-1 overflow-hidden',\r\n },\r\n minimal: {\r\n containerClass: 'flex flex-col h-screen w-full overflow-hidden',\r\n contentClass: 'flex flex-1 overflow-hidden',\r\n },\r\n}\r\n\r\nconst preset = computed(() => {\r\n return STYLE_PRESETS[props.styletype] ?? STYLE_PRESETS.default\r\n})\r\n\r\nconst contentClasses = computed(() => {\r\n return cn(\r\n preset.value.contentClass,\r\n !props.contentScroll && 'overflow-hidden'\r\n )\r\n})\r\n</script>\r\n\r\n<template>\r\n <div :class=\"cn(preset.containerClass, props.class)\">\r\n <!-- 헤더 슬롯 -->\r\n <slot name=\"header\" />\r\n\r\n <!-- 메인 컨텐츠 영역 -->\n <div :class=\"contentClasses\">\n <!-- 사이드바 슬롯 (사이드바가 보일 때만 border 표시) -->\n <slot name=\"sidebar\" />\n\n <!-- 콘텐츠 슬롯 -->\n <div class=\"flex-1 flex flex-col min-h-0\" :class=\"props.contentScroll ? 'overflow-auto' : 'overflow-hidden'\">\n <slot name=\"content\">\n <!-- 기본 슬롯도 지원 -->\n <slot />\n </slot>\n </div>\n </div>\n </div>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","preset","computed","contentClasses","cn","_createElementBlock","_normalizeClass","_unref","_renderSlot","_ctx","_createElementVNode"],"mappings":";;;;;;;;;;AA0CA,UAAMA,IAAQC,GAqBRC,IAGD;AAAA,MACH,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,cAAc;AAAA,MAAA;AAAA,MAEhB,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,cAAc;AAAA,MAAA;AAAA,IAChB,GAGIC,IAASC,EAAS,MACfF,EAAcF,EAAM,SAAS,KAAKE,EAAc,OACxD,GAEKG,IAAiBD,EAAS,MACvBE;AAAA,MACLH,EAAO,MAAM;AAAA,MACb,CAACH,EAAM,iBAAiB;AAAA,IAAA,CAE3B;2BAICO,EAiBM,OAAA;AAAA,MAjBA,OAAKC,EAAEC,KAAGN,EAAA,MAAO,gBAAgBH,EAAM,KAAK,CAAA;AAAA,IAAA;MAEhDU,EAAsBC,EAAA,QAAA,QAAA;AAAA,MAGtBC,EAWM,OAAA;AAAA,QAXA,SAAOP,EAAA,KAAc;AAAA,MAAA;QAEzBK,EAAuBC,EAAA,QAAA,SAAA;AAAA,QAGvBC,EAKM,OAAA;AAAA,UALD,OAAKJ,EAAA,CAAC,gCAAuCR,EAAM,gBAAa,kBAAA,iBAAA,CAAA;AAAA,QAAA;UACnEU,EAGOC,yBAHP,MAGO;AAAA,YADLD,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
1
+ {"version":3,"file":"JLayout.vue.js","sources":["../../../../src/components/templates/JLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { cn } from '@/lib/utils'\n\n/**\n * JLayout - 기본 레이아웃 컴포넌트 (templates)\n * Base Layout Component\n * \n * @description\n * 공통 레이아웃 구조를 제공하는 기본 컴포넌트입니다.\n * Header, Sidebar, Content 영역을 슬롯으로 제공하여 유연한 레이아웃 구성이 가능합니다.\n * \n * 레이아웃 구조:\n * - header: 상단 헤더 영역 (슬롯)\n * - sidebar: 사이드바 영역 (슬롯)\n * - content: 메인 콘텐츠 영역 (슬롯, 기본 슬롯도 지원)\n * \n * @example\n * ```vue\n * <JLayout styletype=\"default\" :content-scroll=\"true\">\n * <template #header>\n * <JHeader logo-text=\"JWMS Portal\" />\n * </template>\n * <template #sidebar>\n * <JSidebarSimple :menu-items=\"menuItems\" />\n * </template>\n * <template #content>\n * <div>메인 콘텐츠</div>\n * </template>\n * </JLayout>\n * ```\n * \n * @example 기본 슬롯 사용\n * ```vue\n * <JLayout>\n * <div>기본 콘텐츠</div>\n * </JLayout>\n * ```\n */\n\ntype StyleType = 'default' | 'minimal'\n\nconst props = withDefaults(\n defineProps<{\n /** 레이아웃 스타일 타입 */\n styletype?: StyleType\n /** 콘텐츠 영역 스크롤 가능 여부 */\n contentScroll?: boolean\n /** 추가 CSS 클래스 */\n class?: string\n }>(),\n {\n styletype: 'default',\n contentScroll: true,\n }\n)\n\n// JLayout은 사이드바 상태를 직접 관리하지 않고, 슬롯으로 전달\n// Preset 컴포넌트(JLayoutAdvanced, JLayoutSimple)에서 상태 관리\n\n/**\n * 스타일 프리셋\n */\nconst STYLE_PRESETS: Record<StyleType, {\n containerClass: string\n contentClass: string\n}> = {\n default: {\n containerClass: 'flex flex-col h-screen w-full overflow-hidden',\n contentClass: 'flex flex-1 overflow-hidden',\n },\n minimal: {\n containerClass: 'flex flex-col h-screen w-full overflow-hidden',\n contentClass: 'flex flex-1 overflow-hidden',\n },\n}\n\nconst preset = computed(() => {\n return STYLE_PRESETS[props.styletype] ?? STYLE_PRESETS.default\n})\n\nconst contentClasses = computed(() => {\n return cn(\n preset.value.contentClass,\n !props.contentScroll && 'overflow-hidden'\n )\n})\n</script>\n\n<template>\n <div :class=\"cn(preset.containerClass, props.class)\">\n <!-- 헤더 슬롯 -->\n <slot name=\"header\" />\n\n <!-- 메인 컨텐츠 영역 -->\n <div :class=\"contentClasses\">\n <!-- 사이드바 슬롯 (사이드바가 보일 때만 border 표시) -->\n <slot name=\"sidebar\" />\n\n <!-- 콘텐츠 슬롯 -->\n <div class=\"flex-1 flex flex-col min-h-0\" :class=\"props.contentScroll ? 'overflow-auto' : 'overflow-hidden'\">\n <slot name=\"content\">\n <!-- 기본 슬롯도 지원 -->\n <slot />\n </slot>\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","STYLE_PRESETS","preset","computed","contentClasses","cn","_createElementBlock","_normalizeClass","_unref","_renderSlot","_ctx","_createElementVNode"],"mappings":";;;;;;;;;;AA0CA,UAAMA,IAAQC,GAqBRC,IAGD;AAAA,MACH,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,cAAc;AAAA,MAAA;AAAA,MAEhB,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,cAAc;AAAA,MAAA;AAAA,IAChB,GAGIC,IAASC,EAAS,MACfF,EAAcF,EAAM,SAAS,KAAKE,EAAc,OACxD,GAEKG,IAAiBD,EAAS,MACvBE;AAAA,MACLH,EAAO,MAAM;AAAA,MACb,CAACH,EAAM,iBAAiB;AAAA,IAAA,CAE3B;2BAICO,EAiBM,OAAA;AAAA,MAjBA,OAAKC,EAAEC,KAAGN,EAAA,MAAO,gBAAgBH,EAAM,KAAK,CAAA;AAAA,IAAA;MAEhDU,EAAsBC,EAAA,QAAA,QAAA;AAAA,MAGtBC,EAWM,OAAA;AAAA,QAXA,SAAOP,EAAA,KAAc;AAAA,MAAA;QAEzBK,EAAuBC,EAAA,QAAA,SAAA;AAAA,QAGvBC,EAKM,OAAA;AAAA,UALD,OAAKJ,EAAA,CAAC,gCAAuCR,EAAM,gBAAa,kBAAA,iBAAA,CAAA;AAAA,QAAA;UACnEU,EAGOC,yBAHP,MAGO;AAAA,YADLD,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),u=require("./JLayout.vue.cjs"),i=require("../organisms/JHeader.vue.cjs"),n=require("../organisms/JSidebarSimple.vue.cjs"),d=require("../organisms/JPageContainer.vue.cjs"),p=e.defineComponent({__name:"JLayoutSimple",props:{styletype:{default:"default"},contentScroll:{type:Boolean,default:!0},class:{},menuItems:{default:()=>[]},permissions:{default:()=>[]}},setup(a){const s=a,t=e.ref(!0),l=()=>{t.value=!t.value};return(r,o)=>(e.openBlock(),e.createBlock(u.default,e.normalizeProps(e.guardReactiveProps(s)),{header:e.withCtx(()=>[e.renderSlot(r.$slots,"header",{isSidebarOpen:t.value,onSidebarToggle:l},()=>[e.createVNode(i.default,{"logo-text":"JWMS Portal",styletype:s.styletype,"show-sidebar-toggle":!0,"is-sidebar-open":t.value,onSidebarToggle:l},null,8,["styletype","is-sidebar-open"])])]),sidebar:e.withCtx(()=>[e.renderSlot(r.$slots,"sidebar",{isSidebarOpen:t.value},()=>[e.createVNode(n.default,{"menu-items":s.menuItems,permissions:s.permissions,styletype:s.styletype,"is-visible":t.value},null,8,["menu-items","permissions","styletype","is-visible"])])]),content:e.withCtx(()=>[e.renderSlot(r.$slots,"content",{},()=>[e.renderSlot(r.$slots,"default",{},()=>[e.createVNode(d.default,{title:"페이지 제목"},{default:e.withCtx(()=>[...o[0]||(o[0]=[e.createElementVNode("div",{class:"p-6"},[e.createElementVNode("p",{class:"text-muted-foreground"},"콘텐츠를 배치해주세요.")],-1)])]),_:1})])])]),_:3},16))}});exports.default=p;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("./JLayout.vue.cjs"),c=require("../organisms/JHeader.vue.cjs"),_=require("../organisms/JSidebar/JSidebar.vue.cjs"),v=require("../organisms/JPageContainer.vue.cjs"),g=e.defineComponent({__name:"JLayoutSimple",props:{styletype:{default:"default"},contentScroll:{type:Boolean,default:!0},class:{},menuItems:{default:()=>[]},activePath:{},storageKey:{}},emits:["menu-click"],setup(s,{emit:u}){const o=s,n=u,t=e.ref(!1),r=()=>{t.value=!t.value},i=(l,a)=>{n("menu-click",l,a)};return(l,a)=>(e.openBlock(),e.createBlock(p.default,e.normalizeProps(e.guardReactiveProps(o)),{header:e.withCtx(()=>[e.renderSlot(l.$slots,"header",{isSidebarCollapsed:t.value,onSidebarToggle:r},()=>[e.createVNode(c.default,{"logo-text":"JWMS Portal",styletype:o.styletype,"show-sidebar-toggle":!0,"is-sidebar-open":!t.value,onSidebarToggle:r},null,8,["styletype","is-sidebar-open"])])]),sidebar:e.withCtx(()=>[e.renderSlot(l.$slots,"sidebar",{isSidebarCollapsed:t.value},()=>[e.createVNode(_.default,{collapsed:t.value,"onUpdate:collapsed":a[0]||(a[0]=d=>t.value=d),items:o.menuItems,"active-path":o.activePath,"storage-key":o.storageKey,onMenuClick:i},null,8,["collapsed","items","active-path","storage-key"])])]),content:e.withCtx(()=>[e.renderSlot(l.$slots,"content",{},()=>[e.renderSlot(l.$slots,"default",{},()=>[e.createVNode(v.default,{title:"페이지 제목"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createElementVNode("div",{class:"p-6"},[e.createElementVNode("p",{class:"text-muted-foreground"},"콘텐츠를 배치해주세요.")],-1)])]),_:1})])])]),_:3},16))}});exports.default=g;
2
2
  //# sourceMappingURL=JLayoutSimple.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"JLayoutSimple.vue.cjs","sources":["../../../../src/components/templates/JLayoutSimple.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport JLayout from './JLayout.vue'\r\nimport JHeader from '@/components/organisms/JHeader.vue'\r\nimport JSidebarSimple from '@/components/organisms/JSidebarSimple.vue'\r\nimport JPageContainer from '@/components/organisms/JPageContainer.vue'\r\nimport type { SidebarMenuItem, MenuPermission } from '@/types/sidebar-menu.types'\r\n\r\n/**\r\n * JLayoutSimple - Simple Sidebar + 일반 PageContainer 조합 템플릿 (templates)\r\n * Simple Layout Template\r\n * \r\n * @description\r\n * JLayout을 사용하는 Preset 템플릿입니다.\r\n * JHeader, JSidebarSimple, JPageContainer를 조합한 기본 레이아웃 예시를 제공합니다.\r\n * \r\n * 레이아웃 구조:\r\n * - header: 상단 헤더 영역 (슬롯)\r\n * - sidebar: 사이드바 영역 (슬롯)\r\n * - content: 메인 콘텐츠 영역 (슬롯, 기본 슬롯)\r\n * \r\n * @example\r\n * ```vue\r\n * <JLayoutSimple styletype=\"default\" :content-scroll=\"true\">\r\n * <template #header>\r\n * <JHeader logo-text=\"JWMS Portal\" :user-name=\"userName\" styletype=\"default\" />\r\n * </template>\r\n * <template #sidebar>\r\n * <JSidebarSimple :menu-items=\"menuItems\" styletype=\"default\" />\r\n * </template>\r\n * <template #content>\r\n * <JPageContainer title=\"재고 관리\">\r\n * <div>페이지 콘텐츠</div>\r\n * </JPageContainer>\r\n * </template>\r\n * </JLayoutSimple>\r\n * ```\r\n */\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 레이아웃 스타일 타입 */\r\n styletype?: 'default' | 'minimal'\r\n /** 콘텐츠 영역 스크롤 가능 여부 */\r\n contentScroll?: boolean\r\n /** 추가 CSS 클래스 */\r\n class?: string\r\n /** 메뉴 아이템 목록 */\r\n menuItems?: SidebarMenuItem[]\r\n /** 권한 목록 */\r\n permissions?: MenuPermission[]\r\n }>(),\r\n {\r\n styletype: 'default',\r\n contentScroll: true,\r\n menuItems: () => [],\r\n permissions: () => [],\r\n }\r\n)\r\n\r\n/**\r\n * 사이드바 열림 상태\r\n */\r\nconst isSidebarOpen = ref(true)\r\n\r\n/**\r\n * 사이드바 토글 핸들러\r\n */\r\nconst handleSidebarToggle = () => {\r\n isSidebarOpen.value = !isSidebarOpen.value\r\n}\r\n</script>\r\n\r\n<template>\r\n <JLayout v-bind=\"props\">\r\n <template #header>\r\n <slot name=\"header\" :is-sidebar-open=\"isSidebarOpen\" :on-sidebar-toggle=\"handleSidebarToggle\">\r\n <!-- 기본 헤더 예시 -->\r\n <JHeader \r\n logo-text=\"JWMS Portal\" \r\n :styletype=\"props.styletype\"\r\n :show-sidebar-toggle=\"true\"\r\n :is-sidebar-open=\"isSidebarOpen\"\r\n @sidebar-toggle=\"handleSidebarToggle\"\r\n />\r\n </slot>\r\n </template>\r\n <template #sidebar>\r\n <slot name=\"sidebar\" :is-sidebar-open=\"isSidebarOpen\">\r\n <!-- 기본 사이드바 예시 -->\r\n <JSidebarSimple \r\n :menu-items=\"props.menuItems\" \r\n :permissions=\"props.permissions\"\r\n :styletype=\"props.styletype\" \r\n :is-visible=\"isSidebarOpen\" \r\n />\r\n </slot>\r\n </template>\r\n <template #content>\r\n <slot name=\"content\">\r\n <slot>\r\n <!-- 기본 콘텐츠 예시 -->\r\n <JPageContainer title=\"페이지 제목\">\r\n <div class=\"p-6\">\r\n <p class=\"text-muted-foreground\">콘텐츠를 배치해주세요.</p>\r\n </div>\r\n </JPageContainer>\r\n </slot>\r\n </slot>\r\n </template>\r\n </JLayout>\r\n</template>\r\n\r\n"],"names":["props","__props","isSidebarOpen","ref","handleSidebarToggle","_openBlock","_createBlock","JLayout","_renderSlot","_ctx","_createVNode","JHeader","JSidebarSimple","JPageContainer","_cache","_createElementVNode"],"mappings":"kfAuCA,MAAMA,EAAQC,EAwBRC,EAAgBC,EAAAA,IAAI,EAAI,EAKxBC,EAAsB,IAAM,CAChCF,EAAc,MAAQ,CAACA,EAAc,KACvC,gBAIEG,EAAAA,UAAA,EAAAC,cAoCUC,EAAAA,8CApCOP,CAAK,CAAA,EAAA,CACT,iBACT,IASO,CATPQ,aASOC,EAAA,OAAA,SAAA,CATc,cAAiBP,EAAA,MAAgB,gBAAmBE,CAAA,EAAzE,IASO,CAPLM,EAAAA,YAMEC,EAAAA,QAAA,CALA,YAAU,cACT,UAAWX,EAAM,UACjB,sBAAqB,GACrB,kBAAiBE,EAAA,MACjB,gBAAgBE,CAAA,8CAIZ,kBACT,IAQO,CARPI,aAQOC,EAAA,OAAA,UAAA,CARe,cAAiBP,EAAA,KAAA,EAAvC,IAQO,CANLQ,EAAAA,YAKEE,EAAAA,QAAA,CAJC,aAAYZ,EAAM,UAClB,YAAaA,EAAM,YACnB,UAAWA,EAAM,UACjB,aAAYE,EAAA,KAAA,oEAIR,kBACT,IASO,CATPM,EAAAA,WASOC,sBATP,IASO,CARLD,EAAAA,WAOOC,sBAPP,IAOO,CALLC,EAAAA,YAIiBG,EAAAA,QAAA,CAJD,MAAM,UAAQ,mBAC5B,IAEM,CAAA,GAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAFNC,EAAAA,mBAEM,MAAA,CAFD,MAAM,OAAK,CACdA,EAAAA,mBAAiD,IAAA,CAA9C,MAAM,uBAAA,EAAwB,cAAY,CAAA"}
1
+ {"version":3,"file":"JLayoutSimple.vue.cjs","sources":["../../../../src/components/templates/JLayoutSimple.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport JLayout from './JLayout.vue'\nimport JHeader from '@/components/organisms/JHeader.vue'\nimport JSidebar from '@/components/organisms/JSidebar/JSidebar.vue'\nimport JPageContainer from '@/components/organisms/JPageContainer.vue'\nimport type { SidebarMenuItem } from '@/types/sidebar.types'\n\n/**\n * JLayoutSimple - JSidebar + 일반 PageContainer 조합 템플릿\n *\n * @example\n * ```vue\n * <JLayoutSimple :menu-items=\"menuItems\" storage-key=\"my-app-favorites\">\n * <template #content>\n * <RouterView />\n * </template>\n * </JLayoutSimple>\n * ```\n */\n\nconst props = withDefaults(\n defineProps<{\n /** 레이아웃 스타일 타입 */\n styletype?: 'default' | 'minimal'\n /** 콘텐츠 영역 스크롤 가능 여부 */\n contentScroll?: boolean\n /** 추가 CSS 클래스 */\n class?: string\n /** 메뉴 아이템 목록 */\n menuItems?: SidebarMenuItem[]\n /** 현재 활성 경로 */\n activePath?: string\n /** 즐겨찾기 localStorage 키 */\n storageKey?: string\n }>(),\n {\n styletype: 'default',\n contentScroll: true,\n menuItems: () => [],\n }\n)\n\nconst emit = defineEmits<{\n 'menu-click': [item: SidebarMenuItem, event: MouseEvent]\n}>()\n\nconst isSidebarCollapsed = ref(false)\n\nconst handleSidebarToggle = () => {\n isSidebarCollapsed.value = !isSidebarCollapsed.value\n}\n\nconst handleMenuClick = (item: SidebarMenuItem, event: MouseEvent) => {\n emit('menu-click', item, event)\n}\n</script>\n\n<template>\n <JLayout v-bind=\"props\">\n <template #header>\n <slot name=\"header\" :is-sidebar-collapsed=\"isSidebarCollapsed\" :on-sidebar-toggle=\"handleSidebarToggle\">\n <JHeader\n logo-text=\"JWMS Portal\"\n :styletype=\"props.styletype\"\n :show-sidebar-toggle=\"true\"\n :is-sidebar-open=\"!isSidebarCollapsed\"\n @sidebar-toggle=\"handleSidebarToggle\"\n />\n </slot>\n </template>\n <template #sidebar>\n <slot name=\"sidebar\" :is-sidebar-collapsed=\"isSidebarCollapsed\">\n <JSidebar\n v-model:collapsed=\"isSidebarCollapsed\"\n :items=\"props.menuItems\"\n :active-path=\"props.activePath\"\n :storage-key=\"props.storageKey\"\n @menu-click=\"handleMenuClick\"\n />\n </slot>\n </template>\n <template #content>\n <slot name=\"content\">\n <slot>\n <!-- 기본 콘텐츠 예시 -->\n <JPageContainer title=\"페이지 제목\">\n <div class=\"p-6\">\n <p class=\"text-muted-foreground\">콘텐츠를 배치해주세요.</p>\n </div>\n </JPageContainer>\n </slot>\n </slot>\n </template>\n </JLayout>\n</template>\n"],"names":["props","__props","emit","__emit","isSidebarCollapsed","ref","handleSidebarToggle","handleMenuClick","item","event","_openBlock","_createBlock","JLayout","_renderSlot","_ctx","_createVNode","JHeader","JSidebar","$event","JPageContainer","_cache","_createElementVNode"],"mappings":"khBAqBA,MAAMA,EAAQC,EAsBRC,EAAOC,EAIPC,EAAqBC,EAAAA,IAAI,EAAK,EAE9BC,EAAsB,IAAM,CAChCF,EAAmB,MAAQ,CAACA,EAAmB,KACjD,EAEMG,EAAkB,CAACC,EAAuBC,IAAsB,CACpEP,EAAK,aAAcM,EAAMC,CAAK,CAChC,gBAIEC,EAAAA,UAAA,EAAAC,cAmCUC,EAAAA,8CAnCOZ,CAAK,CAAA,EAAA,CACT,iBACT,IAQO,CARPa,aAQOC,EAAA,OAAA,SAAA,CARc,mBAAsBV,EAAA,MAAqB,gBAAmBE,CAAA,EAAnF,IAQO,CAPLS,EAAAA,YAMEC,EAAAA,QAAA,CALA,YAAU,cACT,UAAWhB,EAAM,UACjB,sBAAqB,GACrB,mBAAkBI,EAAA,MAClB,gBAAgBE,CAAA,8CAIZ,kBACT,IAQO,CARPO,aAQOC,EAAA,OAAA,UAAA,CARe,mBAAsBV,EAAA,KAAA,EAA5C,IAQO,CAPLW,EAAAA,YAMEE,EAAAA,QAAA,CALQ,UAAWb,EAAA,0CAAAA,EAAkB,MAAAc,GACpC,MAAOlB,EAAM,UACb,cAAaA,EAAM,WACnB,cAAaA,EAAM,WACnB,YAAYO,CAAA,gEAIR,kBACT,IASO,CATPM,EAAAA,WASOC,sBATP,IASO,CARLD,EAAAA,WAOOC,sBAPP,IAOO,CALLC,EAAAA,YAIiBI,EAAAA,QAAA,CAJD,MAAM,UAAQ,mBAC5B,IAEM,CAAA,GAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAFNC,EAAAA,mBAEM,MAAA,CAFD,MAAM,OAAK,CACdA,EAAAA,mBAAiD,IAAA,CAA9C,MAAM,uBAAA,EAAwB,cAAY,CAAA"}
@@ -1,51 +1,57 @@
1
- import { defineComponent as m, ref as d, createBlock as u, openBlock as f, normalizeProps as c, guardReactiveProps as y, withCtx as o, renderSlot as l, createVNode as r, createElementVNode as n } from "vue";
2
- import b from "./JLayout.vue.js";
3
- import S from "../organisms/JHeader.vue.js";
4
- import g from "../organisms/JSidebarSimple.vue.js";
5
- import v from "../organisms/JPageContainer.vue.js";
6
- const O = /* @__PURE__ */ m({
1
+ import { defineComponent as f, ref as g, createBlock as y, openBlock as v, normalizeProps as b, guardReactiveProps as S, withCtx as l, renderSlot as s, createVNode as r, createElementVNode as n } from "vue";
2
+ import k from "./JLayout.vue.js";
3
+ import _ from "../organisms/JHeader.vue.js";
4
+ import $ from "../organisms/JSidebar/JSidebar.vue.js";
5
+ import h from "../organisms/JPageContainer.vue.js";
6
+ const w = /* @__PURE__ */ f({
7
7
  __name: "JLayoutSimple",
8
8
  props: {
9
9
  styletype: { default: "default" },
10
10
  contentScroll: { type: Boolean, default: !0 },
11
11
  class: {},
12
12
  menuItems: { default: () => [] },
13
- permissions: { default: () => [] }
13
+ activePath: {},
14
+ storageKey: {}
14
15
  },
15
- setup(p) {
16
- const t = p, e = d(!0), i = () => {
16
+ emits: ["menu-click"],
17
+ setup(d, { emit: p }) {
18
+ const a = d, m = p, e = g(!1), i = () => {
17
19
  e.value = !e.value;
20
+ }, u = (t, o) => {
21
+ m("menu-click", t, o);
18
22
  };
19
- return (s, a) => (f(), u(b, c(y(t)), {
20
- header: o(() => [
21
- l(s.$slots, "header", {
22
- isSidebarOpen: e.value,
23
+ return (t, o) => (v(), y(k, b(S(a)), {
24
+ header: l(() => [
25
+ s(t.$slots, "header", {
26
+ isSidebarCollapsed: e.value,
23
27
  onSidebarToggle: i
24
28
  }, () => [
25
- r(S, {
29
+ r(_, {
26
30
  "logo-text": "JWMS Portal",
27
- styletype: t.styletype,
31
+ styletype: a.styletype,
28
32
  "show-sidebar-toggle": !0,
29
- "is-sidebar-open": e.value,
33
+ "is-sidebar-open": !e.value,
30
34
  onSidebarToggle: i
31
35
  }, null, 8, ["styletype", "is-sidebar-open"])
32
36
  ])
33
37
  ]),
34
- sidebar: o(() => [
35
- l(s.$slots, "sidebar", { isSidebarOpen: e.value }, () => [
36
- r(g, {
37
- "menu-items": t.menuItems,
38
- permissions: t.permissions,
39
- styletype: t.styletype,
40
- "is-visible": e.value
41
- }, null, 8, ["menu-items", "permissions", "styletype", "is-visible"])
38
+ sidebar: l(() => [
39
+ s(t.$slots, "sidebar", { isSidebarCollapsed: e.value }, () => [
40
+ r($, {
41
+ collapsed: e.value,
42
+ "onUpdate:collapsed": o[0] || (o[0] = (c) => e.value = c),
43
+ items: a.menuItems,
44
+ "active-path": a.activePath,
45
+ "storage-key": a.storageKey,
46
+ onMenuClick: u
47
+ }, null, 8, ["collapsed", "items", "active-path", "storage-key"])
42
48
  ])
43
49
  ]),
44
- content: o(() => [
45
- l(s.$slots, "content", {}, () => [
46
- l(s.$slots, "default", {}, () => [
47
- r(v, { title: "페이지 제목" }, {
48
- default: o(() => [...a[0] || (a[0] = [
50
+ content: l(() => [
51
+ s(t.$slots, "content", {}, () => [
52
+ s(t.$slots, "default", {}, () => [
53
+ r(h, { title: "페이지 제목" }, {
54
+ default: l(() => [...o[1] || (o[1] = [
49
55
  n("div", { class: "p-6" }, [
50
56
  n("p", { class: "text-muted-foreground" }, "콘텐츠를 배치해주세요.")
51
57
  ], -1)
@@ -60,6 +66,6 @@ const O = /* @__PURE__ */ m({
60
66
  }
61
67
  });
62
68
  export {
63
- O as default
69
+ w as default
64
70
  };
65
71
  //# sourceMappingURL=JLayoutSimple.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JLayoutSimple.vue.js","sources":["../../../../src/components/templates/JLayoutSimple.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport JLayout from './JLayout.vue'\r\nimport JHeader from '@/components/organisms/JHeader.vue'\r\nimport JSidebarSimple from '@/components/organisms/JSidebarSimple.vue'\r\nimport JPageContainer from '@/components/organisms/JPageContainer.vue'\r\nimport type { SidebarMenuItem, MenuPermission } from '@/types/sidebar-menu.types'\r\n\r\n/**\r\n * JLayoutSimple - Simple Sidebar + 일반 PageContainer 조합 템플릿 (templates)\r\n * Simple Layout Template\r\n * \r\n * @description\r\n * JLayout을 사용하는 Preset 템플릿입니다.\r\n * JHeader, JSidebarSimple, JPageContainer를 조합한 기본 레이아웃 예시를 제공합니다.\r\n * \r\n * 레이아웃 구조:\r\n * - header: 상단 헤더 영역 (슬롯)\r\n * - sidebar: 사이드바 영역 (슬롯)\r\n * - content: 메인 콘텐츠 영역 (슬롯, 기본 슬롯)\r\n * \r\n * @example\r\n * ```vue\r\n * <JLayoutSimple styletype=\"default\" :content-scroll=\"true\">\r\n * <template #header>\r\n * <JHeader logo-text=\"JWMS Portal\" :user-name=\"userName\" styletype=\"default\" />\r\n * </template>\r\n * <template #sidebar>\r\n * <JSidebarSimple :menu-items=\"menuItems\" styletype=\"default\" />\r\n * </template>\r\n * <template #content>\r\n * <JPageContainer title=\"재고 관리\">\r\n * <div>페이지 콘텐츠</div>\r\n * </JPageContainer>\r\n * </template>\r\n * </JLayoutSimple>\r\n * ```\r\n */\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 레이아웃 스타일 타입 */\r\n styletype?: 'default' | 'minimal'\r\n /** 콘텐츠 영역 스크롤 가능 여부 */\r\n contentScroll?: boolean\r\n /** 추가 CSS 클래스 */\r\n class?: string\r\n /** 메뉴 아이템 목록 */\r\n menuItems?: SidebarMenuItem[]\r\n /** 권한 목록 */\r\n permissions?: MenuPermission[]\r\n }>(),\r\n {\r\n styletype: 'default',\r\n contentScroll: true,\r\n menuItems: () => [],\r\n permissions: () => [],\r\n }\r\n)\r\n\r\n/**\r\n * 사이드바 열림 상태\r\n */\r\nconst isSidebarOpen = ref(true)\r\n\r\n/**\r\n * 사이드바 토글 핸들러\r\n */\r\nconst handleSidebarToggle = () => {\r\n isSidebarOpen.value = !isSidebarOpen.value\r\n}\r\n</script>\r\n\r\n<template>\r\n <JLayout v-bind=\"props\">\r\n <template #header>\r\n <slot name=\"header\" :is-sidebar-open=\"isSidebarOpen\" :on-sidebar-toggle=\"handleSidebarToggle\">\r\n <!-- 기본 헤더 예시 -->\r\n <JHeader \r\n logo-text=\"JWMS Portal\" \r\n :styletype=\"props.styletype\"\r\n :show-sidebar-toggle=\"true\"\r\n :is-sidebar-open=\"isSidebarOpen\"\r\n @sidebar-toggle=\"handleSidebarToggle\"\r\n />\r\n </slot>\r\n </template>\r\n <template #sidebar>\r\n <slot name=\"sidebar\" :is-sidebar-open=\"isSidebarOpen\">\r\n <!-- 기본 사이드바 예시 -->\r\n <JSidebarSimple \r\n :menu-items=\"props.menuItems\" \r\n :permissions=\"props.permissions\"\r\n :styletype=\"props.styletype\" \r\n :is-visible=\"isSidebarOpen\" \r\n />\r\n </slot>\r\n </template>\r\n <template #content>\r\n <slot name=\"content\">\r\n <slot>\r\n <!-- 기본 콘텐츠 예시 -->\r\n <JPageContainer title=\"페이지 제목\">\r\n <div class=\"p-6\">\r\n <p class=\"text-muted-foreground\">콘텐츠를 배치해주세요.</p>\r\n </div>\r\n </JPageContainer>\r\n </slot>\r\n </slot>\r\n </template>\r\n </JLayout>\r\n</template>\r\n\r\n"],"names":["props","__props","isSidebarOpen","ref","handleSidebarToggle","_openBlock","_createBlock","JLayout","_renderSlot","_ctx","_createVNode","JHeader","JSidebarSimple","JPageContainer","_cache","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;AAuCA,UAAMA,IAAQC,GAwBRC,IAAgBC,EAAI,EAAI,GAKxBC,IAAsB,MAAM;AAChC,MAAAF,EAAc,QAAQ,CAACA,EAAc;AAAA,IACvC;sBAIEG,EAAA,GAAAC,EAoCUC,OApCOP,CAAK,CAAA,GAAA;AAAA,MACT,UACT,MASO;AAAA,QATPQ,EASOC,EAAA,QAAA,UAAA;AAAA,UATc,eAAiBP,EAAA;AAAA,UAAgB,iBAAmBE;AAAA,QAAA,GAAzE,MASO;AAAA,UAPLM,EAMEC,GAAA;AAAA,YALA,aAAU;AAAA,YACT,WAAWX,EAAM;AAAA,YACjB,uBAAqB;AAAA,YACrB,mBAAiBE,EAAA;AAAA,YACjB,iBAAgBE;AAAA,UAAA;;;MAIZ,WACT,MAQO;AAAA,QARPI,EAQOC,EAAA,QAAA,WAAA,EARe,eAAiBP,EAAA,MAAA,GAAvC,MAQO;AAAA,UANLQ,EAKEE,GAAA;AAAA,YAJC,cAAYZ,EAAM;AAAA,YAClB,aAAaA,EAAM;AAAA,YACnB,WAAWA,EAAM;AAAA,YACjB,cAAYE,EAAA;AAAA,UAAA;;;MAIR,WACT,MASO;AAAA,QATPM,EASOC,yBATP,MASO;AAAA,UARLD,EAOOC,yBAPP,MAOO;AAAA,YALLC,EAIiBG,GAAA,EAJD,OAAM,YAAQ;AAAA,yBAC5B,MAEM,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAFNC,EAEM,OAAA,EAFD,OAAM,SAAK;AAAA,kBACdA,EAAiD,KAAA,EAA9C,OAAM,wBAAA,GAAwB,cAAY;AAAA,gBAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"JLayoutSimple.vue.js","sources":["../../../../src/components/templates/JLayoutSimple.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport JLayout from './JLayout.vue'\nimport JHeader from '@/components/organisms/JHeader.vue'\nimport JSidebar from '@/components/organisms/JSidebar/JSidebar.vue'\nimport JPageContainer from '@/components/organisms/JPageContainer.vue'\nimport type { SidebarMenuItem } from '@/types/sidebar.types'\n\n/**\n * JLayoutSimple - JSidebar + 일반 PageContainer 조합 템플릿\n *\n * @example\n * ```vue\n * <JLayoutSimple :menu-items=\"menuItems\" storage-key=\"my-app-favorites\">\n * <template #content>\n * <RouterView />\n * </template>\n * </JLayoutSimple>\n * ```\n */\n\nconst props = withDefaults(\n defineProps<{\n /** 레이아웃 스타일 타입 */\n styletype?: 'default' | 'minimal'\n /** 콘텐츠 영역 스크롤 가능 여부 */\n contentScroll?: boolean\n /** 추가 CSS 클래스 */\n class?: string\n /** 메뉴 아이템 목록 */\n menuItems?: SidebarMenuItem[]\n /** 현재 활성 경로 */\n activePath?: string\n /** 즐겨찾기 localStorage 키 */\n storageKey?: string\n }>(),\n {\n styletype: 'default',\n contentScroll: true,\n menuItems: () => [],\n }\n)\n\nconst emit = defineEmits<{\n 'menu-click': [item: SidebarMenuItem, event: MouseEvent]\n}>()\n\nconst isSidebarCollapsed = ref(false)\n\nconst handleSidebarToggle = () => {\n isSidebarCollapsed.value = !isSidebarCollapsed.value\n}\n\nconst handleMenuClick = (item: SidebarMenuItem, event: MouseEvent) => {\n emit('menu-click', item, event)\n}\n</script>\n\n<template>\n <JLayout v-bind=\"props\">\n <template #header>\n <slot name=\"header\" :is-sidebar-collapsed=\"isSidebarCollapsed\" :on-sidebar-toggle=\"handleSidebarToggle\">\n <JHeader\n logo-text=\"JWMS Portal\"\n :styletype=\"props.styletype\"\n :show-sidebar-toggle=\"true\"\n :is-sidebar-open=\"!isSidebarCollapsed\"\n @sidebar-toggle=\"handleSidebarToggle\"\n />\n </slot>\n </template>\n <template #sidebar>\n <slot name=\"sidebar\" :is-sidebar-collapsed=\"isSidebarCollapsed\">\n <JSidebar\n v-model:collapsed=\"isSidebarCollapsed\"\n :items=\"props.menuItems\"\n :active-path=\"props.activePath\"\n :storage-key=\"props.storageKey\"\n @menu-click=\"handleMenuClick\"\n />\n </slot>\n </template>\n <template #content>\n <slot name=\"content\">\n <slot>\n <!-- 기본 콘텐츠 예시 -->\n <JPageContainer title=\"페이지 제목\">\n <div class=\"p-6\">\n <p class=\"text-muted-foreground\">콘텐츠를 배치해주세요.</p>\n </div>\n </JPageContainer>\n </slot>\n </slot>\n </template>\n </JLayout>\n</template>\n"],"names":["props","__props","emit","__emit","isSidebarCollapsed","ref","handleSidebarToggle","handleMenuClick","item","event","_openBlock","_createBlock","JLayout","_renderSlot","_ctx","_createVNode","JHeader","JSidebar","$event","JPageContainer","_cache","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,UAAMA,IAAQC,GAsBRC,IAAOC,GAIPC,IAAqBC,EAAI,EAAK,GAE9BC,IAAsB,MAAM;AAChC,MAAAF,EAAmB,QAAQ,CAACA,EAAmB;AAAA,IACjD,GAEMG,IAAkB,CAACC,GAAuBC,MAAsB;AACpE,MAAAP,EAAK,cAAcM,GAAMC,CAAK;AAAA,IAChC;sBAIEC,EAAA,GAAAC,EAmCUC,OAnCOZ,CAAK,CAAA,GAAA;AAAA,MACT,UACT,MAQO;AAAA,QARPa,EAQOC,EAAA,QAAA,UAAA;AAAA,UARc,oBAAsBV,EAAA;AAAA,UAAqB,iBAAmBE;AAAA,QAAA,GAAnF,MAQO;AAAA,UAPLS,EAMEC,GAAA;AAAA,YALA,aAAU;AAAA,YACT,WAAWhB,EAAM;AAAA,YACjB,uBAAqB;AAAA,YACrB,oBAAkBI,EAAA;AAAA,YAClB,iBAAgBE;AAAA,UAAA;;;MAIZ,WACT,MAQO;AAAA,QARPO,EAQOC,EAAA,QAAA,WAAA,EARe,oBAAsBV,EAAA,MAAA,GAA5C,MAQO;AAAA,UAPLW,EAMEE,GAAA;AAAA,YALQ,WAAWb,EAAA;AAAA,yDAAAA,EAAkB,QAAAc;AAAA,YACpC,OAAOlB,EAAM;AAAA,YACb,eAAaA,EAAM;AAAA,YACnB,eAAaA,EAAM;AAAA,YACnB,aAAYO;AAAA,UAAA;;;MAIR,WACT,MASO;AAAA,QATPM,EASOC,yBATP,MASO;AAAA,UARLD,EAOOC,yBAPP,MAOO;AAAA,YALLC,EAIiBI,GAAA,EAJD,OAAM,YAAQ;AAAA,yBAC5B,MAEM,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAFNC,EAEM,OAAA,EAFD,OAAM,SAAK;AAAA,kBACdA,EAAiD,KAAA,EAA9C,OAAM,wBAAA,GAAwB,cAAY;AAAA,gBAAA;;;;;;;;;;;"}
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 */;/* empty css */const e=require("./components/atoms/JButton.vue.cjs"),t=require("./components/atoms/JInput.vue.cjs"),u=require("./components/atoms/JTextarea.vue.cjs"),r=require("./components/atoms/JCheckbox.vue.cjs"),_=require("./components/atoms/JCombo.vue.cjs"),a=require("./components/atoms/JSearchCombo.vue.cjs"),i=require("./components/atoms/JRadio.vue.cjs"),p=require("./components/atoms/JSwitch.vue.cjs"),s=require("./components/atoms/JDatepicker.vue.cjs"),n=require("./components/atoms/JDivider.vue.cjs"),l=require("./components/atoms/JEditor.vue.cjs"),o=require("./components/atoms/JLink.vue.cjs"),c=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"),f=require("./components/atoms/JKbd.vue.cjs"),g=require("./components/atoms/JTooltip.vue.cjs"),y=require("./components/atoms/JIcon.vue.cjs"),m=require("./components/atoms/JLabel.vue.cjs"),b=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"),P=require("./components/atoms/JSectionTitle.vue.cjs"),h=require("vue-sonner"),A=require("./components/atoms/JToast.vue.cjs"),x=require("./components/molecules/JFormField.vue.cjs"),B=require("./components/molecules/JGroupCombo.vue.cjs"),F=require("./components/molecules/JTabs.vue.cjs"),L=require("./components/molecules/JSearchAddr.vue.cjs"),M=require("./components/molecules/JContextMenu.vue.cjs"),D=require("./components/molecules/JCard.vue.cjs"),E=require("./components/molecules/JAlert.vue.cjs"),k=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/molecules/JEmptyState.vue.cjs"),H=require("./components/organisms/JDynamicTabs.vue.cjs"),K=require("./components/organisms/JModal.vue.cjs"),O=require("./components/organisms/JFormModal.vue.cjs"),R=require("./components/organisms/JDynamicForm.vue.cjs"),z=require("./components/organisms/JSearchPanel.vue.cjs"),N=require("./components/organisms/JFilterBar.vue.cjs"),Q=require("./components/organisms/JHeader.vue.cjs"),U=require("./components/organisms/JSidebarSimple.vue.cjs"),V=require("./components/organisms/JSidebarAdvanced.vue.cjs"),W=require("./components/organisms/JPageContainer.vue.cjs"),X=require("./components/organisms/JTree.vue.cjs"),Y=require("./components/organisms/JShuttle.vue.cjs"),Z=require("./components/templates/JLayout.vue.cjs"),$=require("./components/templates/JLayoutSimple.vue.cjs"),ee=require("./components/templates/JLayoutAdvanced.vue.cjs"),te=require("./components/examples/ExampleCrudPage.vue.cjs"),ue=require("./components/examples/ExampleTabMappingPage.vue.cjs");exports.JButton=e.default;exports.JInput=t.default;exports.JTextarea=u.default;exports.JCheckbox=r.default;exports.JCombo=_.default;exports.JSearchCombo=a.default;exports.JRadio=i.default;exports.JSwitch=p.default;exports.JDatepicker=s.default;exports.JDivider=n.default;exports.JEditor=l.default;exports.JLink=o.default;exports.JImage=c.default;exports.JBadge=J.default;exports.JProgress=d.default;exports.JSpinner=v.default;exports.JAvatar=q.default;exports.JKbd=f.default;exports.JTooltip=g.default;exports.JIcon=y.default;exports.JLabel=m.default;exports.JPopover=b.default;exports.JPreview=S.default;exports.JGrid=T.default;exports.JSplitter=C.default;exports.JSectionTitle=P.default;Object.defineProperty(exports,"JToast",{enumerable:!0,get:()=>h.toast});exports.JToaster=A.default;exports.JFormField=x.default;exports.JGroupCombo=B.default;exports.JTabs=F.default;exports.JSearchAddr=L.default;exports.JContextMenu=M.default;exports.JCard=D.default;exports.JAlert=E.default;exports.JAccordion=k.default;exports.JTitlebar=G.default;exports.JButtonGroup=I.default;exports.JBreadcrumb=w.default;exports.JEmptyState=j.default;exports.JDynamicTabs=H.default;exports.JModal=K.default;exports.JFormModal=O.default;exports.JDynamicForm=R.default;exports.JSearchPanel=z.default;exports.JFilterBar=N.default;exports.JHeader=Q.default;exports.JSidebarSimple=U.default;exports.JSidebarAdvanced=V.default;exports.JPageContainer=W.default;exports.JTree=X.default;exports.JShuttle=Y.default;exports.JLayout=Z.default;exports.JLayoutSimple=$.default;exports.JLayoutAdvanced=ee.default;exports.ExampleCrudPage=te.default;exports.ExampleTabMappingPage=ue.default;
3
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* 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"),r=require("./components/atoms/JCheckbox.vue.cjs"),_=require("./components/atoms/JCombo.vue.cjs"),a=require("./components/atoms/JSearchCombo.vue.cjs"),i=require("./components/atoms/JRadio.vue.cjs"),p=require("./components/atoms/JSwitch.vue.cjs"),s=require("./components/atoms/JDatepicker.vue.cjs"),n=require("./components/atoms/JDivider.vue.cjs"),l=require("./components/atoms/JEditor.vue.cjs"),o=require("./components/atoms/JLink.vue.cjs"),c=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"),f=require("./components/atoms/JKbd.vue.cjs"),g=require("./components/atoms/JTooltip.vue.cjs"),y=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"),P=require("./components/atoms/JSectionTitle.vue.cjs"),h=require("vue-sonner"),A=require("./components/atoms/JToast.vue.cjs"),x=require("./components/molecules/JFormField.vue.cjs"),B=require("./components/molecules/JGroupCombo.vue.cjs"),F=require("./components/molecules/JTabs.vue.cjs"),L=require("./components/molecules/JSearchAddr.vue.cjs"),M=require("./components/molecules/JContextMenu.vue.cjs"),D=require("./components/molecules/JCard.vue.cjs"),E=require("./components/molecules/JAlert.vue.cjs"),k=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/molecules/JEmptyState.vue.cjs"),H=require("./components/organisms/JDynamicTabs.vue.cjs"),K=require("./components/organisms/JModal.vue.cjs"),O=require("./components/organisms/JFormModal.vue.cjs"),R=require("./components/organisms/JDynamicForm.vue.cjs"),z=require("./components/organisms/JSearchPanel.vue.cjs"),N=require("./components/organisms/JFilterBar.vue.cjs"),Q=require("./components/organisms/JHeader.vue.cjs"),U=require("./components/organisms/JSidebar/JSidebar.vue.cjs"),V=require("./components/organisms/JSidebarSimple.vue.cjs"),W=require("./components/organisms/JSidebarAdvanced.vue.cjs"),X=require("./components/organisms/JPageContainer.vue.cjs"),Y=require("./components/organisms/JTree.vue.cjs"),Z=require("./components/organisms/JShuttle.vue.cjs"),$=require("./components/templates/JLayout.vue.cjs"),ee=require("./components/templates/JLayoutSimple.vue.cjs"),te=require("./components/templates/JLayoutAdvanced.vue.cjs"),ue=require("./components/examples/ExampleCrudPage.vue.cjs"),re=require("./components/examples/ExampleTabMappingPage.vue.cjs");exports.JButton=e.default;exports.JInput=t.default;exports.JTextarea=u.default;exports.JCheckbox=r.default;exports.JCombo=_.default;exports.JSearchCombo=a.default;exports.JRadio=i.default;exports.JSwitch=p.default;exports.JDatepicker=s.default;exports.JDivider=n.default;exports.JEditor=l.default;exports.JLink=o.default;exports.JImage=c.default;exports.JBadge=J.default;exports.JProgress=d.default;exports.JSpinner=v.default;exports.JAvatar=q.default;exports.JKbd=f.default;exports.JTooltip=g.default;exports.JIcon=y.default;exports.JLabel=b.default;exports.JPopover=m.default;exports.JPreview=S.default;exports.JGrid=T.default;exports.JSplitter=C.default;exports.JSectionTitle=P.default;Object.defineProperty(exports,"JToast",{enumerable:!0,get:()=>h.toast});exports.JToaster=A.default;exports.JFormField=x.default;exports.JGroupCombo=B.default;exports.JTabs=F.default;exports.JSearchAddr=L.default;exports.JContextMenu=M.default;exports.JCard=D.default;exports.JAlert=E.default;exports.JAccordion=k.default;exports.JTitlebar=G.default;exports.JButtonGroup=I.default;exports.JBreadcrumb=w.default;exports.JEmptyState=j.default;exports.JDynamicTabs=H.default;exports.JModal=K.default;exports.JFormModal=O.default;exports.JDynamicForm=R.default;exports.JSearchPanel=z.default;exports.JFilterBar=N.default;exports.JHeader=Q.default;exports.JSidebar=U.default;exports.JSidebarSimple=V.default;exports.JSidebarAdvanced=W.default;exports.JPageContainer=X.default;exports.JTree=Y.default;exports.JShuttle=Z.default;exports.JLayout=$.default;exports.JLayoutSimple=ee.default;exports.JLayoutAdvanced=te.default;exports.ExampleCrudPage=ue.default;exports.ExampleTabMappingPage=re.default;
4
4
  //# sourceMappingURL=index.cjs.map
package/index.js CHANGED
@@ -52,19 +52,20 @@ import { default as Re } from "./components/organisms/JDynamicForm.vue.js";
52
52
  import { default as qe } from "./components/organisms/JSearchPanel.vue.js";
53
53
  import { default as Ne } from "./components/organisms/JFilterBar.vue.js";
54
54
  import { default as Qe } from "./components/organisms/JHeader.vue.js";
55
- import { default as Ve } from "./components/organisms/JSidebarSimple.vue.js";
56
- import { default as Xe } from "./components/organisms/JSidebarAdvanced.vue.js";
57
- import { default as Ze } from "./components/organisms/JPageContainer.vue.js";
58
- import { default as $e } from "./components/organisms/JTree.vue.js";
59
- import { default as aa } from "./components/organisms/JShuttle.vue.js";
60
- import { default as oa } from "./components/templates/JLayout.vue.js";
61
- import { default as fa } from "./components/templates/JLayoutSimple.vue.js";
62
- import { default as ma } from "./components/templates/JLayoutAdvanced.vue.js";
63
- import { default as la } from "./components/examples/ExampleCrudPage.vue.js";
64
- import { default as sa } from "./components/examples/ExampleTabMappingPage.vue.js";
55
+ import { default as Ve } from "./components/organisms/JSidebar/JSidebar.vue.js";
56
+ import { default as Xe } from "./components/organisms/JSidebarSimple.vue.js";
57
+ import { default as Ze } from "./components/organisms/JSidebarAdvanced.vue.js";
58
+ import { default as $e } from "./components/organisms/JPageContainer.vue.js";
59
+ import { default as aa } from "./components/organisms/JTree.vue.js";
60
+ import { default as oa } from "./components/organisms/JShuttle.vue.js";
61
+ import { default as fa } from "./components/templates/JLayout.vue.js";
62
+ import { default as ma } from "./components/templates/JLayoutSimple.vue.js";
63
+ import { default as la } from "./components/templates/JLayoutAdvanced.vue.js";
64
+ import { default as sa } from "./components/examples/ExampleCrudPage.vue.js";
65
+ import { default as Ja } from "./components/examples/ExampleTabMappingPage.vue.js";
65
66
  export {
66
- la as ExampleCrudPage,
67
- sa as ExampleTabMappingPage,
67
+ sa as ExampleCrudPage,
68
+ Ja as ExampleTabMappingPage,
68
69
  he as JAccordion,
69
70
  ge as JAlert,
70
71
  R as JAvatar,
@@ -93,12 +94,12 @@ export {
93
94
  l as JInput,
94
95
  q as JKbd,
95
96
  V as JLabel,
96
- oa as JLayout,
97
- ma as JLayoutAdvanced,
98
- fa as JLayoutSimple,
97
+ fa as JLayout,
98
+ la as JLayoutAdvanced,
99
+ ma as JLayoutSimple,
99
100
  L as JLink,
100
101
  Ie as JModal,
101
- Ze as JPageContainer,
102
+ $e as JPageContainer,
102
103
  X as JPopover,
103
104
  Z as JPreview,
104
105
  I as JProgress,
@@ -107,9 +108,10 @@ export {
107
108
  b as JSearchCombo,
108
109
  qe as JSearchPanel,
109
110
  oe as JSectionTitle,
110
- aa as JShuttle,
111
- Xe as JSidebarAdvanced,
112
- Ve as JSidebarSimple,
111
+ oa as JShuttle,
112
+ Ve as JSidebar,
113
+ Ze as JSidebarAdvanced,
114
+ Xe as JSidebarSimple,
113
115
  H as JSpinner,
114
116
  ae as JSplitter,
115
117
  g as JSwitch,
@@ -119,6 +121,6 @@ export {
119
121
  fe as JToast,
120
122
  me as JToaster,
121
123
  N as JTooltip,
122
- $e as JTree
124
+ aa as JTree
123
125
  };
124
126
  //# 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.8.0",
4
+ "version": "1.9.0",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
7
7
  "module": "./index.js",