jky-component-lib 0.0.72 → 0.0.75

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 (51) hide show
  1. package/dist/es/components.d.ts +0 -1
  2. package/dist/es/components.js +1 -4
  3. package/dist/es/index.js +0 -15
  4. package/dist/es/menu/Menu.vue.js +42 -40
  5. package/dist/es/menu/MenuItem.vue.js +43 -41
  6. package/dist/es/package.json.js +1 -1
  7. package/dist/es/page-layout/PageLayout.vue.d.ts +1 -1
  8. package/dist/es/page-layout/PageLayout.vue.js +47 -60
  9. package/dist/es/style.css +0 -56
  10. package/dist/es/styles.css +1 -1
  11. package/dist/lib/components.d.ts +0 -1
  12. package/dist/lib/components.js +1 -4
  13. package/dist/lib/index.js +0 -15
  14. package/dist/lib/menu/Menu.vue.js +42 -40
  15. package/dist/lib/menu/MenuItem.vue.js +42 -40
  16. package/dist/lib/package.json.js +1 -1
  17. package/dist/lib/page-layout/PageLayout.vue.d.ts +1 -1
  18. package/dist/lib/page-layout/PageLayout.vue.js +46 -59
  19. package/dist/lib/style.css +0 -56
  20. package/dist/lib/styles.css +1 -1
  21. package/package.json +1 -1
  22. package/dist/es/tabs/TabContent.vue.d.ts +0 -16
  23. package/dist/es/tabs/TabContent.vue.js +0 -65
  24. package/dist/es/tabs/TabContent.vue3.js +0 -5
  25. package/dist/es/tabs/Tabs.vue.d.ts +0 -46
  26. package/dist/es/tabs/Tabs.vue.js +0 -311
  27. package/dist/es/tabs/Tabs.vue3.js +0 -5
  28. package/dist/es/tabs/index.d.ts +0 -9
  29. package/dist/es/tabs/index.js +0 -8
  30. package/dist/es/tabs/routeListener.d.ts +0 -19
  31. package/dist/es/tabs/routeListener.js +0 -26
  32. package/dist/es/tabs/style.css +0 -29
  33. package/dist/es/tabs/useTabs.d.ts +0 -27
  34. package/dist/es/tabs/useTabs.js +0 -59
  35. package/dist/es/tabs/useTabsStore.d.ts +0 -53
  36. package/dist/es/tabs/useTabsStore.js +0 -208
  37. package/dist/lib/tabs/TabContent.vue.d.ts +0 -16
  38. package/dist/lib/tabs/TabContent.vue.js +0 -65
  39. package/dist/lib/tabs/TabContent.vue3.js +0 -5
  40. package/dist/lib/tabs/Tabs.vue.d.ts +0 -46
  41. package/dist/lib/tabs/Tabs.vue.js +0 -311
  42. package/dist/lib/tabs/Tabs.vue3.js +0 -5
  43. package/dist/lib/tabs/index.d.ts +0 -9
  44. package/dist/lib/tabs/index.js +0 -8
  45. package/dist/lib/tabs/routeListener.d.ts +0 -19
  46. package/dist/lib/tabs/routeListener.js +0 -26
  47. package/dist/lib/tabs/style.css +0 -29
  48. package/dist/lib/tabs/useTabs.d.ts +0 -27
  49. package/dist/lib/tabs/useTabs.js +0 -59
  50. package/dist/lib/tabs/useTabsStore.d.ts +0 -53
  51. package/dist/lib/tabs/useTabsStore.js +0 -208
@@ -1 +1 @@
1
- :root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{--jky-tabs-color:var(--el-text-color-regular);--jky-tabs-active-color:var(--el-color-primary);--jky-tabs-height:40px;--jky-tabs-font-size:14px;.el-tabs__item{color:var(--jky-tabs-color);font-size:var(--jky-tabs-font-size);height:var(--jky-tabs-height);line-height:var(--jky-tabs-height);&.is-active{color:var(--jky-tabs-active-color)}}.el-tabs__active-bar{background-color:var(--jky-tabs-active-color)}}.jky-tabs--route{.el-tabs__item{&.is-closable:hover{.el-tabs__item__close{opacity:1}}}}
1
+ :root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *))
@@ -10,6 +10,5 @@ export * from './page-layout';
10
10
  export * from './page-table';
11
11
  export * from './rich-editor';
12
12
  export * from './say-hello';
13
- export * from './tabs';
14
13
  export declare const components: Plugin[];
15
14
  export default components;
@@ -11,7 +11,6 @@ const index$7 = require("./page-layout/index.js");
11
11
  const index$8 = require("./page-table/index.js");
12
12
  const index$9 = require("./rich-editor/index.js");
13
13
  const index$a = require("./say-hello/index.js");
14
- const index$b = require("./tabs/index.js");
15
14
  const components = [
16
15
  index$a.JkySayHello,
17
16
  index$1.JkyButton,
@@ -23,8 +22,7 @@ const components = [
23
22
  index.JkyAddInput,
24
23
  index$9.JkyRichEditor,
25
24
  index$8.JkyPageTable,
26
- index$7.JkyPageLayout,
27
- index$b.JkyTabs
25
+ index$7.JkyPageLayout
28
26
  ];
29
27
  exports.JkyAddInput = index.JkyAddInput;
30
28
  exports.JkyButton = index$1.JkyButton;
@@ -37,5 +35,4 @@ exports.JkyPageLayout = index$7.JkyPageLayout;
37
35
  exports.JkyPageTable = index$8.JkyPageTable;
38
36
  exports.JkyRichEditor = index$9.JkyRichEditor;
39
37
  exports.JkySayHello = index$a.JkySayHello;
40
- exports.JkyTabs = index$b.JkyTabs;
41
38
  exports.components = components;
package/dist/lib/index.js CHANGED
@@ -4,8 +4,6 @@ const components = require("./components.js");
4
4
  const installer$1 = require("./utils/installer.js");
5
5
  ;/* empty css */
6
6
  const resolver = require("./resolver.js");
7
- const TabContent_vue_vue_type_script_setup_true_lang = require("./tabs/TabContent.vue.js");
8
- ;/* empty css */
9
7
  const index = require("./add-input/index.js");
10
8
  const index$1 = require("./button/index.js");
11
9
  const index$2 = require("./button-nav/index.js");
@@ -17,16 +15,11 @@ const index$7 = require("./page-layout/index.js");
17
15
  const index$8 = require("./page-table/index.js");
18
16
  const index$9 = require("./rich-editor/index.js");
19
17
  const index$a = require("./say-hello/index.js");
20
- const index$b = require("./tabs/index.js");
21
- const routeListener = require("./tabs/routeListener.js");
22
- const useTabsStore = require("./tabs/useTabsStore.js");
23
- const useTabs = require("./tabs/useTabs.js");
24
18
  const installer = installer$1.createInstaller(components.components);
25
19
  const install = installer.install;
26
20
  const version = installer.version;
27
21
  exports.components = components.components;
28
22
  exports.JkyComponentLibResolver = resolver.JkyComponentLibResolver;
29
- exports.JkyTabContent = TabContent_vue_vue_type_script_setup_true_lang.default;
30
23
  exports.JkyAddInput = index.JkyAddInput;
31
24
  exports.JkyButton = index$1.JkyButton;
32
25
  exports.JkyButtonNav = index$2.JkyButtonNav;
@@ -38,14 +31,6 @@ exports.JkyPageLayout = index$7.JkyPageLayout;
38
31
  exports.JkyPageTable = index$8.JkyPageTable;
39
32
  exports.JkyRichEditor = index$9.JkyRichEditor;
40
33
  exports.JkySayHello = index$a.JkySayHello;
41
- exports.JkyTabs = index$b.JkyTabs;
42
- exports.clearRouteListeners = routeListener.clearRouteListeners;
43
- exports.emitRouteChange = routeListener.emitRouteChange;
44
- exports.onRouteChange = routeListener.onRouteChange;
45
- exports.createTabsStore = useTabsStore.createTabsStore;
46
- exports.resetTabsStore = useTabsStore.resetTabsStore;
47
- exports.useTabsStore = useTabsStore.useTabsStore;
48
- exports.useTabs = useTabs.useTabs;
49
34
  exports.default = installer;
50
35
  exports.install = install;
51
36
  exports.version = version;
@@ -71,46 +71,48 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
71
71
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
72
72
  key: item.index
73
73
  }, [
74
- item.children && item.children.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElSubMenu), {
75
- key: 0,
76
- index: item.index || "",
77
- class: vue.normalizeClass(item.customClass),
78
- disabled: (_a = item.disabled) != null ? _a : false,
79
- "popper-offset": item.popperOffset
80
- }, {
81
- title: vue.withCtx(() => [
82
- item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
83
- key: 0,
84
- class: vue.normalizeClass([item.icon, "jky-menu-item__icon"])
85
- }, null, 2)) : vue.createCommentVNode("", true),
86
- item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
87
- ]),
88
- default: vue.withCtx(() => [
89
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item.children, (child) => {
90
- return vue.openBlock(), vue.createBlock(MenuItem_vue_vue_type_script_setup_true_lang.default, {
91
- key: child.index,
92
- item: child,
93
- levels: props.levels > 0 ? props.levels - 1 : 0
94
- }, null, 8, ["item", "levels"]);
95
- }), 128))
96
- ]),
97
- _: 2
98
- }, 1032, ["index", "class", "disabled", "popper-offset"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElMenuItem), {
99
- key: 1,
100
- index: item.index || "",
101
- class: vue.normalizeClass(item.customClass),
102
- disabled: (_b = item.disabled) != null ? _b : false,
103
- route: item.route
104
- }, {
105
- default: vue.withCtx(() => [
106
- item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
107
- key: 0,
108
- class: vue.normalizeClass([item.icon, "jky-menu-item__icon"])
109
- }, null, 2)) : vue.createCommentVNode("", true),
110
- item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
111
- ]),
112
- _: 2
113
- }, 1032, ["index", "class", "disabled", "route"]))
74
+ !item.hideMenu ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
75
+ item.children && item.children.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElSubMenu), {
76
+ key: 0,
77
+ index: item.index || "",
78
+ class: vue.normalizeClass(item.customClass),
79
+ disabled: (_a = item.disabled) != null ? _a : false,
80
+ "popper-offset": item.popperOffset
81
+ }, {
82
+ title: vue.withCtx(() => [
83
+ item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
84
+ key: 0,
85
+ class: vue.normalizeClass([item.icon, "jky-menu-item__icon"])
86
+ }, null, 2)) : vue.createCommentVNode("", true),
87
+ item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
88
+ ]),
89
+ default: vue.withCtx(() => [
90
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item.children, (child) => {
91
+ return vue.openBlock(), vue.createBlock(MenuItem_vue_vue_type_script_setup_true_lang.default, {
92
+ key: child.index,
93
+ item: child,
94
+ levels: props.levels > 0 ? props.levels - 1 : 0
95
+ }, null, 8, ["item", "levels"]);
96
+ }), 128))
97
+ ]),
98
+ _: 2
99
+ }, 1032, ["index", "class", "disabled", "popper-offset"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElMenuItem), {
100
+ key: 1,
101
+ index: item.index || "",
102
+ class: vue.normalizeClass(item.customClass),
103
+ disabled: (_b = item.disabled) != null ? _b : false,
104
+ route: item.route
105
+ }, {
106
+ default: vue.withCtx(() => [
107
+ item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
108
+ key: 0,
109
+ class: vue.normalizeClass([item.icon, "jky-menu-item__icon"])
110
+ }, null, 2)) : vue.createCommentVNode("", true),
111
+ item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
112
+ ]),
113
+ _: 2
114
+ }, 1032, ["index", "class", "disabled", "route"]))
115
+ ], 64)) : vue.createCommentVNode("", true)
114
116
  ], 64);
115
117
  }), 128)) : vue.renderSlot(_ctx.$slots, "default", { key: 1 })
116
118
  ]),
@@ -21,46 +21,48 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
21
21
  return (_ctx, _cache) => {
22
22
  var _a, _b;
23
23
  const _component_MenuItem = vue.resolveComponent("MenuItem", true);
24
- return props.item.children && props.item.children.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElSubMenu), {
25
- key: 0,
26
- index: props.item.index || "",
27
- class: vue.normalizeClass(props.item.customClass),
28
- disabled: (_a = props.item.disabled) != null ? _a : false,
29
- "popper-offset": props.item.popperOffset
30
- }, {
31
- title: vue.withCtx(() => [
32
- props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
33
- key: 0,
34
- class: vue.normalizeClass([props.item.icon, "jky-menu-item__icon"])
35
- }, null, 2)) : vue.createCommentVNode("", true),
36
- props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
37
- ]),
38
- default: vue.withCtx(() => [
39
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.item.children, (child) => {
40
- return vue.openBlock(), vue.createBlock(_component_MenuItem, {
41
- key: child.index,
42
- item: child,
43
- levels: props.levels !== void 0 && props.levels > 0 ? props.levels - 1 : 0
44
- }, null, 8, ["item", "levels"]);
45
- }), 128))
46
- ]),
47
- _: 1
48
- }, 8, ["index", "class", "disabled", "popper-offset"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElMenuItem), {
49
- key: 1,
50
- index: props.item.index || "",
51
- class: vue.normalizeClass(props.item.customClass),
52
- disabled: (_b = props.item.disabled) != null ? _b : false,
53
- route: props.item.route
54
- }, {
55
- default: vue.withCtx(() => [
56
- props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
57
- key: 0,
58
- class: vue.normalizeClass([props.item.icon, "jky-menu-item__icon"])
59
- }, null, 2)) : vue.createCommentVNode("", true),
60
- props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
61
- ]),
62
- _: 1
63
- }, 8, ["index", "class", "disabled", "route"]));
24
+ return !props.item.hideMenu ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
25
+ props.item.children && props.item.children.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElSubMenu), {
26
+ key: 0,
27
+ index: props.item.index || "",
28
+ class: vue.normalizeClass(props.item.customClass),
29
+ disabled: (_a = props.item.disabled) != null ? _a : false,
30
+ "popper-offset": props.item.popperOffset
31
+ }, {
32
+ title: vue.withCtx(() => [
33
+ props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
34
+ key: 0,
35
+ class: vue.normalizeClass([props.item.icon, "jky-menu-item__icon"])
36
+ }, null, 2)) : vue.createCommentVNode("", true),
37
+ props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
38
+ ]),
39
+ default: vue.withCtx(() => [
40
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.item.children, (child) => {
41
+ return vue.openBlock(), vue.createBlock(_component_MenuItem, {
42
+ key: child.index,
43
+ item: child,
44
+ levels: props.levels !== void 0 && props.levels > 0 ? props.levels - 1 : 0
45
+ }, null, 8, ["item", "levels"]);
46
+ }), 128))
47
+ ]),
48
+ _: 1
49
+ }, 8, ["index", "class", "disabled", "popper-offset"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElMenuItem), {
50
+ key: 1,
51
+ index: props.item.index || "",
52
+ class: vue.normalizeClass(props.item.customClass),
53
+ disabled: (_b = props.item.disabled) != null ? _b : false,
54
+ route: props.item.route
55
+ }, {
56
+ default: vue.withCtx(() => [
57
+ props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
58
+ key: 0,
59
+ class: vue.normalizeClass([props.item.icon, "jky-menu-item__icon"])
60
+ }, null, 2)) : vue.createCommentVNode("", true),
61
+ props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
62
+ ]),
63
+ _: 1
64
+ }, 8, ["index", "class", "disabled", "route"]))
65
+ ], 64)) : vue.createCommentVNode("", true);
64
66
  };
65
67
  }
66
68
  });
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const version = "0.0.72";
3
+ const version = "0.0.75";
4
4
  exports.version = version;
@@ -1,12 +1,12 @@
1
1
  import { PageLayoutProps } from './types';
2
2
  declare const _default: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{}>, {
3
- cachable: boolean;
4
3
  showTopMenu: boolean;
5
4
  showSideMenu: boolean;
6
5
  asideWidth: string;
7
6
  asideWithScrollbar: boolean;
8
7
  mainWithCard: boolean;
9
8
  mainWithScrollbar: boolean;
9
+ cachable: boolean;
10
10
  transitionName: string;
11
11
  tabsWithCard: boolean;
12
12
  cardPadding: string;
@@ -37,9 +37,6 @@ const lodashEs = require("lodash-es");
37
37
  const vueRouter = require("vue-router");
38
38
  const Menu_vue_vue_type_script_setup_true_lang = require("../menu/Menu.vue.js");
39
39
  ;/* empty css */
40
- const Tabs_vue_vue_type_script_setup_true_lang = require("../tabs/Tabs.vue.js");
41
- ;/* empty css */
42
- const useTabsStore = require("../tabs/useTabsStore.js");
43
40
  const _hoisted_1 = { class: "w-full flex justify-center" };
44
41
  const _hoisted_2 = { class: "flex flex-1 min-h-0 overflow-hidden gap-3" };
45
42
  const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, {
@@ -70,32 +67,30 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
70
67
  const props = __props;
71
68
  const router = vueRouter.useRouter();
72
69
  const route = vueRouter.useRoute();
73
- const store = useTabsStore.useTabsStore();
74
70
  const attrs = vue.useAttrs();
75
71
  const activeTopMenu = vue.ref("");
76
72
  const activeSideMenu = vue.ref("");
77
73
  const routes = router.getRoutes();
78
- const cacheInclude = vue.computed(() => store.getCacheTabs());
79
- vue.watch(
80
- cacheInclude,
81
- (cacheTabs) => {
82
- console.warn("CacheTabs changed:", cacheTabs);
83
- },
84
- { deep: true }
85
- );
74
+ const cacheInclude = [];
86
75
  function buildMenuFromRoutes(routes2) {
87
76
  const menuRoutes = routes2.filter((r) => {
88
77
  var _a;
89
78
  return (_a = r.meta) == null ? void 0 : _a.title;
90
79
  });
91
80
  const buildMenuItem = (route2, parentPath = "") => {
92
- var _a, _b;
93
- const fullPath = parentPath ? `${parentPath}/${route2.path}` : route2.path;
81
+ var _a, _b, _c, _d;
82
+ let fullPath = "";
83
+ if (route2.path.startsWith(parentPath)) {
84
+ fullPath = route2.path;
85
+ } else {
86
+ fullPath = `${parentPath.replace(/\/$/, "")}/${route2.path}`;
87
+ }
94
88
  const normalizedPath = fullPath.startsWith("/") ? fullPath : `/${fullPath}`;
95
89
  const item = {
96
90
  index: normalizedPath,
97
91
  title: ((_a = route2.meta) == null ? void 0 : _a.title) || "",
98
92
  icon: ((_b = route2.meta) == null ? void 0 : _b.icon) || "",
93
+ hideMenu: (_d = (_c = route2.meta) == null ? void 0 : _c.hideMenu) != null ? _d : false,
99
94
  route: normalizedPath,
100
95
  path: normalizedPath,
101
96
  customClass: activeTopMenu.value.startsWith(normalizedPath) ? "is-active jky-page-layout__active-top-menu" : ""
@@ -111,7 +106,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
111
106
  return menuRoutes.filter((route2) => {
112
107
  const pathSegments = route2.path.split("/").filter(Boolean);
113
108
  return pathSegments.length === 1;
114
- }).map((route2) => buildMenuItem(route2));
109
+ }).filter((route2) => route2.hideMenu !== true).map((route2) => buildMenuItem(route2));
115
110
  }
116
111
  const menuData = vue.computed(() => {
117
112
  return buildMenuFromRoutes(routes);
@@ -184,6 +179,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
184
179
  router.push(index);
185
180
  }
186
181
  return (_ctx, _cache) => {
182
+ const _component_ElAutoResizer = vue.resolveComponent("ElAutoResizer");
187
183
  return vue.openBlock(), vue.createElementBlock("div", {
188
184
  class: vue.normalizeClass(["jky-page-layout flex h-full w-full flex-col overflow-hidden gap-3", props.className])
189
185
  }, [
@@ -246,71 +242,62 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
246
242
  vue.createElementVNode("div", {
247
243
  class: vue.normalizeClass(["jky-page-layout__main flex-1 flex flex-col min-w-0 overflow-hidden", props.mainClass])
248
244
  }, [
249
- props.tabsWithCard ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElCard), {
250
- key: 0,
251
- class: "jky-page-layout__tabs shrink-0",
252
- style: vue.normalizeStyle({ "--el-card-padding": props.cardPadding })
253
- }, {
254
- default: vue.withCtx(() => [
255
- vue.createVNode(Tabs_vue_vue_type_script_setup_true_lang.default, {
256
- mode: "route",
257
- cachable: props.cachable
258
- }, null, 8, ["cachable"])
259
- ]),
260
- _: 1
261
- }, 8, ["style"])) : (vue.openBlock(), vue.createBlock(Tabs_vue_vue_type_script_setup_true_lang.default, {
262
- key: 1,
263
- class: "jky-page-layout__tabs shrink-0",
264
- mode: "route",
265
- cachable: props.cachable
266
- }, null, 8, ["cachable"])),
267
245
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(props.mainWithCard ? vue.unref(ElementPlus.ElCard) : "div"), {
268
246
  class: vue.normalizeClass(["jky-page-layout__content flex-1 min-h-0 overflow-hidden", props.contentClass]),
269
247
  "body-class": props.mainWithScrollbar ? "" : "pb-0!"
270
248
  }, {
271
249
  default: vue.withCtx(() => [
272
- props.mainWithScrollbar ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElScrollbar), { key: 0 }, {
273
- default: vue.withCtx(() => [
274
- vue.createVNode(vue.unref(vueRouter.RouterView), null, {
250
+ vue.createVNode(_component_ElAutoResizer, null, {
251
+ default: vue.withCtx(({ height, width }) => [
252
+ props.mainWithScrollbar ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElScrollbar), { key: 0 }, {
253
+ default: vue.withCtx(() => [
254
+ vue.createVNode(vue.unref(vueRouter.RouterView), null, {
255
+ default: vue.withCtx(({ Component, route: currentRoute }) => [
256
+ vue.createVNode(vue.Transition, {
257
+ name: props.transitionName
258
+ }, {
259
+ default: vue.withCtx(() => [
260
+ (vue.openBlock(), vue.createBlock(vue.KeepAlive, {
261
+ include: props.cachable ? cacheInclude : []
262
+ }, [
263
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
264
+ key: currentRoute.name,
265
+ height,
266
+ width
267
+ }, null, 8, ["height", "width"]))
268
+ ], 1032, ["include"]))
269
+ ]),
270
+ _: 2
271
+ }, 1032, ["name"])
272
+ ]),
273
+ _: 2
274
+ }, 1024)
275
+ ]),
276
+ _: 2
277
+ }, 1024)) : (vue.openBlock(), vue.createBlock(vue.unref(vueRouter.RouterView), { key: 1 }, {
275
278
  default: vue.withCtx(({ Component, route: currentRoute }) => [
276
279
  vue.createVNode(vue.Transition, {
277
280
  name: props.transitionName
278
281
  }, {
279
282
  default: vue.withCtx(() => [
280
283
  (vue.openBlock(), vue.createBlock(vue.KeepAlive, {
281
- include: props.cachable ? cacheInclude.value : []
284
+ include: props.cachable ? cacheInclude : []
282
285
  }, [
283
286
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
284
- key: currentRoute.name
285
- }))
287
+ key: currentRoute.name,
288
+ height,
289
+ width
290
+ }, null, 8, ["height", "width"]))
286
291
  ], 1032, ["include"]))
287
292
  ]),
288
293
  _: 2
289
294
  }, 1032, ["name"])
290
295
  ]),
291
- _: 1
292
- })
293
- ]),
294
- _: 1
295
- })) : (vue.openBlock(), vue.createBlock(vue.unref(vueRouter.RouterView), { key: 1 }, {
296
- default: vue.withCtx(({ Component, route: currentRoute }) => [
297
- vue.createVNode(vue.Transition, {
298
- name: props.transitionName
299
- }, {
300
- default: vue.withCtx(() => [
301
- (vue.openBlock(), vue.createBlock(vue.KeepAlive, {
302
- include: props.cachable ? cacheInclude.value : []
303
- }, [
304
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
305
- key: currentRoute.name
306
- }))
307
- ], 1032, ["include"]))
308
- ]),
309
296
  _: 2
310
- }, 1032, ["name"])
297
+ }, 1024))
311
298
  ]),
312
299
  _: 1
313
- }))
300
+ })
314
301
  ]),
315
302
  _: 1
316
303
  }, 8, ["class", "body-class"]))