jky-component-lib 0.0.117 → 0.0.122

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 (129) hide show
  1. package/dist/es/amap/style.css +12 -5
  2. package/dist/es/amap/style3.css +5 -12
  3. package/dist/es/form/Form.vue.js +76 -68
  4. package/dist/es/form/FormItem.vue.js +60 -46
  5. package/dist/es/form/style.css +0 -56
  6. package/dist/es/modal/Modal.vue.js +0 -1
  7. package/dist/es/package.json.js +1 -1
  8. package/dist/es/page-table/PageTable.vue.js +1 -1
  9. package/dist/es/style.css +10 -0
  10. package/dist/es/styles.css +1 -1
  11. package/dist/lib/amap/style.css +12 -5
  12. package/dist/lib/amap/style3.css +5 -12
  13. package/dist/lib/form/Form.vue.js +75 -67
  14. package/dist/lib/form/FormItem.vue.js +59 -45
  15. package/dist/lib/form/style.css +0 -56
  16. package/dist/lib/modal/Modal.vue.js +0 -1
  17. package/dist/lib/package.json.js +1 -1
  18. package/dist/lib/page-table/PageTable.vue.js +1 -1
  19. package/dist/lib/style.css +10 -0
  20. package/dist/lib/styles.css +1 -1
  21. package/package.json +4 -3
  22. package/dist/es/add-input/AddInput.vue.d.ts +0 -27
  23. package/dist/es/add-input/index.d.ts +0 -5
  24. package/dist/es/amap/AMap.vue.d.ts +0 -61
  25. package/dist/es/amap/AMarker.vue.d.ts +0 -38
  26. package/dist/es/amap/ATrackPlayback.vue.d.ts +0 -69
  27. package/dist/es/amap/index.d.ts +0 -9
  28. package/dist/es/button/Button.vue.d.ts +0 -33
  29. package/dist/es/button/index.d.ts +0 -4
  30. package/dist/es/button-nav/ButtonNav.vue.d.ts +0 -36
  31. package/dist/es/button-nav/index.d.ts +0 -4
  32. package/dist/es/code-mirror-editor/CodeMirrorEditor.vue.d.ts +0 -25
  33. package/dist/es/code-mirror-editor/index.d.ts +0 -5
  34. package/dist/es/components.d.ts +0 -18
  35. package/dist/es/form/Form.vue.d.ts +0 -343
  36. package/dist/es/form/FormItem.vue.d.ts +0 -6
  37. package/dist/es/form/SelectTable.vue.d.ts +0 -38
  38. package/dist/es/form/index.d.ts +0 -5
  39. package/dist/es/index.d.ts +0 -8
  40. package/dist/es/menu/Menu.vue.d.ts +0 -23
  41. package/dist/es/menu/MenuItem.vue.d.ts +0 -7
  42. package/dist/es/menu/index.d.ts +0 -5
  43. package/dist/es/modal/Footer.vue.d.ts +0 -10
  44. package/dist/es/modal/Header.vue.d.ts +0 -37
  45. package/dist/es/modal/Modal.vue.d.ts +0 -75
  46. package/dist/es/modal/index.d.ts +0 -5
  47. package/dist/es/page-header/PageHeader.vue.d.ts +0 -31
  48. package/dist/es/page-header/PopoverMenu.vue.d.ts +0 -13
  49. package/dist/es/page-header/index.d.ts +0 -5
  50. package/dist/es/page-layout/PageLayout.vue.d.ts +0 -18
  51. package/dist/es/page-layout/index.d.ts +0 -5
  52. package/dist/es/page-table/ActionColumn.vue.d.ts +0 -11
  53. package/dist/es/page-table/PageTable.vue.d.ts +0 -5457
  54. package/dist/es/page-table/PageTableColumn.vue.d.ts +0 -36
  55. package/dist/es/page-table/Toolbar.vue.d.ts +0 -33
  56. package/dist/es/page-table/index.d.ts +0 -9
  57. package/dist/es/page-table-v2/PageTableV2.vue.d.ts +0 -966
  58. package/dist/es/page-table-v2/index.d.ts +0 -4
  59. package/dist/es/resolver.d.ts +0 -2
  60. package/dist/es/rich-editor/RichEditor.vue.d.ts +0 -78
  61. package/dist/es/rich-editor/index.d.ts +0 -5
  62. package/dist/es/say-hello/SayHello.vue.d.ts +0 -5
  63. package/dist/es/say-hello/index.d.ts +0 -4
  64. package/dist/es/tabs/ContextMenu.vue.d.ts +0 -30
  65. package/dist/es/tabs/Tabs.vue.d.ts +0 -13
  66. package/dist/es/tabs/config.d.ts +0 -2
  67. package/dist/es/tabs/createTabsGuard.d.ts +0 -5
  68. package/dist/es/tabs/index.d.ts +0 -7
  69. package/dist/es/tabs/useTabsStore.d.ts +0 -6
  70. package/dist/es/utils/index.d.ts +0 -5
  71. package/dist/es/utils/installer.d.ts +0 -13
  72. package/dist/es/utils/responsive-toolbar.d.ts +0 -78
  73. package/dist/es/utils/string.d.ts +0 -18
  74. package/dist/es/utils/types.d.ts +0 -12
  75. package/dist/es/utils/with-install.d.ts +0 -2
  76. package/dist/lib/add-input/AddInput.vue.d.ts +0 -27
  77. package/dist/lib/add-input/index.d.ts +0 -5
  78. package/dist/lib/amap/AMap.vue.d.ts +0 -61
  79. package/dist/lib/amap/AMarker.vue.d.ts +0 -38
  80. package/dist/lib/amap/ATrackPlayback.vue.d.ts +0 -69
  81. package/dist/lib/amap/index.d.ts +0 -9
  82. package/dist/lib/button/Button.vue.d.ts +0 -33
  83. package/dist/lib/button/index.d.ts +0 -4
  84. package/dist/lib/button-nav/ButtonNav.vue.d.ts +0 -36
  85. package/dist/lib/button-nav/index.d.ts +0 -4
  86. package/dist/lib/code-mirror-editor/CodeMirrorEditor.vue.d.ts +0 -25
  87. package/dist/lib/code-mirror-editor/index.d.ts +0 -5
  88. package/dist/lib/components.d.ts +0 -18
  89. package/dist/lib/form/Form.vue.d.ts +0 -343
  90. package/dist/lib/form/FormItem.vue.d.ts +0 -6
  91. package/dist/lib/form/SelectTable.vue.d.ts +0 -38
  92. package/dist/lib/form/index.d.ts +0 -5
  93. package/dist/lib/index.d.ts +0 -8
  94. package/dist/lib/menu/Menu.vue.d.ts +0 -23
  95. package/dist/lib/menu/MenuItem.vue.d.ts +0 -7
  96. package/dist/lib/menu/index.d.ts +0 -5
  97. package/dist/lib/modal/Footer.vue.d.ts +0 -10
  98. package/dist/lib/modal/Header.vue.d.ts +0 -37
  99. package/dist/lib/modal/Modal.vue.d.ts +0 -75
  100. package/dist/lib/modal/index.d.ts +0 -5
  101. package/dist/lib/page-header/PageHeader.vue.d.ts +0 -31
  102. package/dist/lib/page-header/PopoverMenu.vue.d.ts +0 -13
  103. package/dist/lib/page-header/index.d.ts +0 -5
  104. package/dist/lib/page-layout/PageLayout.vue.d.ts +0 -18
  105. package/dist/lib/page-layout/index.d.ts +0 -5
  106. package/dist/lib/page-table/ActionColumn.vue.d.ts +0 -11
  107. package/dist/lib/page-table/PageTable.vue.d.ts +0 -5457
  108. package/dist/lib/page-table/PageTableColumn.vue.d.ts +0 -36
  109. package/dist/lib/page-table/Toolbar.vue.d.ts +0 -33
  110. package/dist/lib/page-table/index.d.ts +0 -9
  111. package/dist/lib/page-table-v2/PageTableV2.vue.d.ts +0 -966
  112. package/dist/lib/page-table-v2/index.d.ts +0 -4
  113. package/dist/lib/resolver.d.ts +0 -2
  114. package/dist/lib/rich-editor/RichEditor.vue.d.ts +0 -78
  115. package/dist/lib/rich-editor/index.d.ts +0 -5
  116. package/dist/lib/say-hello/SayHello.vue.d.ts +0 -5
  117. package/dist/lib/say-hello/index.d.ts +0 -4
  118. package/dist/lib/tabs/ContextMenu.vue.d.ts +0 -30
  119. package/dist/lib/tabs/Tabs.vue.d.ts +0 -13
  120. package/dist/lib/tabs/config.d.ts +0 -2
  121. package/dist/lib/tabs/createTabsGuard.d.ts +0 -5
  122. package/dist/lib/tabs/index.d.ts +0 -7
  123. package/dist/lib/tabs/useTabsStore.d.ts +0 -6
  124. package/dist/lib/utils/index.d.ts +0 -5
  125. package/dist/lib/utils/installer.d.ts +0 -13
  126. package/dist/lib/utils/responsive-toolbar.d.ts +0 -78
  127. package/dist/lib/utils/string.d.ts +0 -18
  128. package/dist/lib/utils/types.d.ts +0 -12
  129. package/dist/lib/utils/with-install.d.ts +0 -2
@@ -1 +1 @@
1
- .jky-add-input,: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)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}: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}.jky-form,: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}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--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-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--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}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.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)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}: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{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
1
+ .jky-add-input,: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)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}: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}.jky-form,: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)}: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}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--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-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--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}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.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)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}: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{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
@@ -1,7 +1,14 @@
1
+ /* AMap 高德地图组件样式 */
2
+ .jky-amap-container {
3
+ /* 地图容器样式 */
4
+ position: relative;
5
+ overflow: hidden;
1
6
 
2
- /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
- .amap-icon img,
4
- .amap-marker-content img {
5
- width: 25px;
6
- height: 34px;
7
+ /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
+ .amap-logo {
9
+ display: none !important;
10
+ }
11
+ .amap-copyright {
12
+ display: none !important;
13
+ }
7
14
  }
@@ -1,14 +1,7 @@
1
- /* AMap 高德地图组件样式 */
2
- .jky-amap-container {
3
- /* 地图容器样式 */
4
- position: relative;
5
- overflow: hidden;
6
1
 
7
- /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
- .amap-logo {
9
- display: none !important;
10
- }
11
- .amap-copyright {
12
- display: none !important;
13
- }
2
+ /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
+ .amap-icon img,
4
+ .amap-marker-content img {
5
+ width: 25px;
6
+ height: 34px;
14
7
  }
@@ -41,12 +41,11 @@ var __async = (__this, __arguments, generator) => {
41
41
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
42
42
  const vue = require("vue");
43
43
  const ElementPlus = require("element-plus");
44
- const lodashEs = require("lodash-es");
45
44
  const FormItem_vue_vue_type_script_setup_true_lang = require("./FormItem.vue.js");
46
45
  ;/* empty css */
47
46
  const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, {
48
- name: "JkyForm"
49
- // inheritAttrs: false,
47
+ name: "JkyForm",
48
+ inheritAttrs: false
50
49
  }), {
51
50
  __name: "Form",
52
51
  props: /* @__PURE__ */ vue.mergeModels({
@@ -93,8 +92,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
93
92
  setup(__props, { expose: __expose, emit: __emit }) {
94
93
  const props = __props;
95
94
  const emit = __emit;
95
+ vue.useSlots();
96
96
  const modelValue = vue.useModel(__props, "modelValue");
97
- const customProps = ["items", "showTitle", "title", "gutter", "defaultSpan", "responsive", "watchDeep", "grid", "showFooter", "submitText", "cancelText", "submitDisabled", "cancelDisabled", "showCount"];
98
97
  vue.provide("formModel", modelValue);
99
98
  const attrs = vue.useAttrs();
100
99
  const formRef = vue.ref();
@@ -111,23 +110,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
111
110
  const _showMoreButton = vue.computed(() => {
112
111
  return props.items && props.items.length > props.showCount;
113
112
  });
113
+ const innerProps = vue.computed(() => {
114
+ const _attrs = attrs["form-props"] || attrs.formProps || {};
115
+ return __spreadValues(__spreadValues(__spreadValues({}, attrs), _attrs), props.formProps);
116
+ });
114
117
  function toggleShowMore() {
115
118
  showAllItems.value = !showAllItems.value;
116
119
  }
117
- const _gridStyle = vue.computed(() => {
118
- if (!attrs.inline || !props.grid || typeof props.grid === "boolean") {
119
- return {};
120
- }
121
- const style = {};
122
- const breakpoints = ["xs", "sm", "md", "lg", "xl", "2xl", "3xl"];
123
- breakpoints.forEach((breakpoint) => {
124
- const columns = props.grid[breakpoint];
125
- if (columns !== void 0) {
126
- style[`--jky-form-grid-cols-${breakpoint}`] = columns;
127
- }
128
- });
129
- return style;
130
- });
131
120
  vue.watch(
132
121
  () => modelValue.value,
133
122
  (newVal, oldVal) => {
@@ -187,74 +176,93 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
187
176
  }
188
177
  });
189
178
  return (_ctx, _cache) => {
190
- const _component_ElButton = vue.resolveComponent("ElButton");
191
179
  const _component_ElFormItem = vue.resolveComponent("ElFormItem");
180
+ const _component_ElButton = vue.resolveComponent("ElButton");
192
181
  return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElForm), vue.mergeProps({
193
182
  ref_key: "formRef",
194
- ref: formRef
195
- }, vue.unref(lodashEs.omit)(props, customProps), {
196
- class: ["jky-form", [_ctx.$attrs.inline && "jky-form--inline", props.grid && "jky-form--grid"]],
183
+ ref: formRef,
184
+ class: "jky-form",
197
185
  model: modelValue.value,
198
- style: [_gridStyle.value]
199
- }), {
186
+ inline: props.inline
187
+ }, innerProps.value), {
200
188
  default: vue.withCtx(() => [
201
189
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_visibleItems.value, (item) => {
202
- return vue.openBlock(), vue.createBlock(FormItem_vue_vue_type_script_setup_true_lang.default, {
203
- key: item.field,
204
- field: item.field,
205
- config: item,
206
- model: modelValue.value,
207
- readonly: typeof __props.readonly === "function" ? __props.readonly({ model: modelValue.value, field: item.field, $form: modelValue.value }) : __props.readonly,
208
- disabled: __props.disabled
209
- }, null, 8, ["field", "config", "model", "readonly", "disabled"]);
190
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
191
+ key: item.field
192
+ }, [
193
+ item.slot ? (vue.openBlock(), vue.createBlock(_component_ElFormItem, {
194
+ key: 0,
195
+ label: item.label,
196
+ prop: item.field,
197
+ "label-width": item.labelWidth,
198
+ disabled: __props.disabled
199
+ }, {
200
+ default: vue.withCtx(() => [
201
+ vue.renderSlot(_ctx.$slots, item.slot, {
202
+ model: modelValue.value,
203
+ field: item.field
204
+ })
205
+ ]),
206
+ _: 2
207
+ }, 1032, ["label", "prop", "label-width", "disabled"])) : (vue.openBlock(), vue.createBlock(FormItem_vue_vue_type_script_setup_true_lang.default, {
208
+ key: 1,
209
+ field: item.field,
210
+ config: item,
211
+ model: modelValue.value,
212
+ disabled: __props.disabled
213
+ }, null, 8, ["field", "config", "model", "disabled"]))
214
+ ], 64);
210
215
  }), 128)),
211
216
  _showMoreButton.value || props.showFooter ? (vue.openBlock(), vue.createBlock(_component_ElFormItem, {
212
217
  key: 0,
213
218
  "label-width": 0
214
219
  }, {
215
- default: vue.withCtx(() => [
216
- vue.createElementVNode("div", {
217
- class: vue.normalizeClass(["w-full flex gap-2", [props.grid && _ctx.$attrs.inline ? "justify-center" : "justify-end", props.footerClass]])
218
- }, [
219
- _showMoreButton.value ? (vue.openBlock(), vue.createBlock(_component_ElButton, {
220
- key: 0,
221
- type: "primary",
222
- onClick: toggleShowMore
223
- }, {
224
- default: vue.withCtx(() => [
225
- vue.createTextVNode(vue.toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
226
- ]),
227
- _: 1
228
- })) : vue.createCommentVNode("", true),
229
- props.showFooter ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
230
- vue.createVNode(_component_ElButton, {
231
- disabled: __props.cancelDisabled || __props.disabled,
232
- onClick: handleCancel
233
- }, {
234
- default: vue.withCtx(() => [
235
- vue.createTextVNode(vue.toDisplayString(__props.cancelText), 1)
236
- ]),
237
- _: 1
238
- }, 8, ["disabled"]),
239
- vue.createVNode(_component_ElButton, {
220
+ default: vue.withCtx(() => {
221
+ var _a;
222
+ return [
223
+ vue.createElementVNode("div", {
224
+ class: vue.normalizeClass(["w-full flex gap-2", [__props.inline ? "justify-start" : "justify-end", __props.footerClass]])
225
+ }, [
226
+ _showMoreButton.value ? (vue.openBlock(), vue.createBlock(_component_ElButton, {
227
+ key: 0,
240
228
  type: "primary",
241
- disabled: __props.submitDisabled || __props.disabled,
242
- loading: false,
243
- onClick: handleSubmit
229
+ onClick: toggleShowMore
244
230
  }, {
245
231
  default: vue.withCtx(() => [
246
- vue.createTextVNode(vue.toDisplayString(__props.submitText), 1)
232
+ vue.createTextVNode(vue.toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
247
233
  ]),
248
234
  _: 1
249
- }, 8, ["disabled"])
250
- ], 64)) : vue.createCommentVNode("", true)
251
- ], 2)
252
- ]),
235
+ })) : vue.createCommentVNode("", true),
236
+ props.showFooter ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
237
+ vue.createVNode(_component_ElButton, {
238
+ disabled: (_a = props.cancelDisabled) != null ? _a : props.disabled,
239
+ onClick: handleCancel
240
+ }, {
241
+ default: vue.withCtx(() => [
242
+ vue.createTextVNode(vue.toDisplayString(__props.cancelText), 1)
243
+ ]),
244
+ _: 1
245
+ }, 8, ["disabled"]),
246
+ vue.createVNode(_component_ElButton, {
247
+ type: "primary",
248
+ disabled: props.submitDisabled || props.disabled,
249
+ loading: false,
250
+ onClick: handleSubmit
251
+ }, {
252
+ default: vue.withCtx(() => [
253
+ vue.createTextVNode(vue.toDisplayString(__props.submitText), 1)
254
+ ]),
255
+ _: 1
256
+ }, 8, ["disabled"])
257
+ ], 64)) : vue.createCommentVNode("", true)
258
+ ], 2)
259
+ ];
260
+ }),
253
261
  _: 1
254
262
  })) : vue.createCommentVNode("", true)
255
263
  ]),
256
- _: 1
257
- }, 16, ["model", "class", "style"]);
264
+ _: 3
265
+ }, 16, ["model", "inline"]);
258
266
  };
259
267
  }
260
268
  }));
@@ -225,49 +225,63 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
225
225
  }, componentProps.value), {
226
226
  "class": ["w-full min-w-25", componentProps.value.class]
227
227
  });
228
+ const { slots: componentSlots } = componentProps.value;
229
+ const _componentSlotsObj = typeof componentSlots === "function" ? componentSlots({
230
+ model: props.model,
231
+ field: props.field,
232
+ $form: props.model
233
+ }) : componentSlots;
228
234
  switch (type) {
229
235
  case "input":
230
- return vue.h(ElementPlus.ElInput, __spreadProps(__spreadValues({}, commonProps), {
231
- placeholder: commonProps.placeholder || "请输入",
232
- prefixIcon: props.config.prefixIcon,
233
- suffixIcon: props.config.suffixIcon
234
- }));
236
+ return vue.h(
237
+ ElementPlus.ElInput,
238
+ __spreadProps(__spreadValues({}, commonProps), {
239
+ placeholder: commonProps.placeholder || "请输入",
240
+ prefixIcon: props.config.prefixIcon,
241
+ suffixIcon: props.config.suffixIcon
242
+ }),
243
+ _componentSlotsObj
244
+ );
235
245
  case "textarea":
236
- return vue.h(ElementPlus.ElInput, __spreadProps(__spreadValues({}, commonProps), {
237
- placeholder: commonProps.placeholder || "请输入",
238
- type: "textarea",
239
- rows: 4
240
- }));
246
+ return vue.h(
247
+ ElementPlus.ElInput,
248
+ __spreadProps(__spreadValues({}, commonProps), {
249
+ placeholder: commonProps.placeholder || "请输入",
250
+ type: "textarea",
251
+ rows: 4
252
+ }),
253
+ _componentSlotsObj
254
+ );
241
255
  case "select": {
242
256
  const selectProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
243
257
  placeholder: commonProps.placeholder || "请选择"
244
258
  }), componentProps.value);
245
- return vue.h(ElementPlus.ElSelect, selectProps);
259
+ return vue.h(ElementPlus.ElSelect, selectProps, _componentSlotsObj);
246
260
  }
247
261
  case "autocomplete": {
248
262
  const autocompleteProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
249
263
  placeholder: commonProps.placeholder || "请输入"
250
264
  }), componentProps.value);
251
- return vue.h(ElementPlus.ElAutocomplete, autocompleteProps);
265
+ return vue.h(ElementPlus.ElAutocomplete, autocompleteProps, _componentSlotsObj);
252
266
  }
253
267
  case "datepicker":
254
- return vue.h(ElementPlus.ElDatePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
268
+ return vue.h(ElementPlus.ElDatePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
255
269
  case "datetime-picker":
256
- return vue.h(ElementPlus.ElDatePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
270
+ return vue.h(ElementPlus.ElDatePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
257
271
  case "time-picker":
258
- return vue.h(ElementPlus.ElTimePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
272
+ return vue.h(ElementPlus.ElTimePicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
259
273
  case "time-select":
260
- return vue.h(ElementPlus.ElTimeSelect, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
274
+ return vue.h(ElementPlus.ElTimeSelect, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
261
275
  case "radio-group": {
262
276
  const radioGroupProps = __spreadValues(__spreadValues({}, commonProps), componentProps.value);
263
277
  return vue.h(
264
278
  ElementPlus.ElRadioGroup,
265
279
  radioGroupProps,
266
- {
280
+ __spreadValues({
267
281
  default: () => {
268
282
  const options = componentProps.value.options || props.config.options || [];
269
283
  return options.map(
270
- (option) => vue.h(ElementPlus.ElRadio, {
284
+ (option) => vue.h(radioGroupProps.button ? ElementPlus.ElRadioButton : ElementPlus.ElRadio, {
271
285
  key: option.value,
272
286
  value: option.value,
273
287
  disabled: option.disabled
@@ -276,7 +290,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
276
290
  })
277
291
  );
278
292
  }
279
- }
293
+ }, _componentSlotsObj)
280
294
  );
281
295
  }
282
296
  case "checkbox-group": {
@@ -287,7 +301,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
287
301
  return vue.h(
288
302
  ElementPlus.ElCheckboxGroup,
289
303
  checkboxGroupProps,
290
- {
304
+ __spreadValues({
291
305
  default: () => {
292
306
  const options = componentProps.value.options || props.config.options || [];
293
307
  return options.map(
@@ -300,30 +314,30 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
300
314
  })
301
315
  );
302
316
  }
303
- }
317
+ }, _componentSlotsObj)
304
318
  );
305
319
  }
306
320
  case "switch":
307
- return vue.h(ElementPlus.ElSwitch, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
321
+ return vue.h(ElementPlus.ElSwitch, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
308
322
  case "slider":
309
- return vue.h(ElementPlus.ElSlider, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
323
+ return vue.h(ElementPlus.ElSlider, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
310
324
  case "cascader": {
311
325
  const cascaderProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
312
326
  placeholder: commonProps.placeholder || "请选择"
313
327
  }), componentProps.value);
314
- return vue.h(ElementPlus.ElCascader, cascaderProps);
328
+ return vue.h(ElementPlus.ElCascader, cascaderProps, _componentSlotsObj);
315
329
  }
316
330
  case "tree-select": {
317
331
  const treeSelectProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
318
332
  placeholder: commonProps.placeholder || "请选择"
319
333
  }), componentProps.value);
320
- return vue.h(ElementPlus.ElTreeSelect, treeSelectProps);
334
+ return vue.h(ElementPlus.ElTreeSelect, treeSelectProps, _componentSlotsObj);
321
335
  }
322
336
  case "color-picker":
323
- return vue.h(ElementPlus.ElColorPicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
337
+ return vue.h(ElementPlus.ElColorPicker, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
324
338
  // 颜色选择器面板
325
339
  case "color-picker-panel":
326
- return vue.h(ElementPlus.ElColorPickerPanel, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
340
+ return vue.h(ElementPlus.ElColorPickerPanel, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
327
341
  // 标签输入框
328
342
  case "input-tag": {
329
343
  const inputTagProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
@@ -332,7 +346,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
332
346
  props.model[props.field] = val;
333
347
  }
334
348
  }), componentProps.value);
335
- return vue.h(ElementPlus.ElInputTag, inputTagProps);
349
+ return vue.h(ElementPlus.ElInputTag, inputTagProps, _componentSlotsObj);
336
350
  }
337
351
  // 提及组件
338
352
  case "mention": {
@@ -342,7 +356,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
342
356
  props.model[props.field] = val;
343
357
  }
344
358
  }), componentProps.value);
345
- return vue.h(ElementPlus.ElMention, mentionProps);
359
+ return vue.h(ElementPlus.ElMention, mentionProps, _componentSlotsObj);
346
360
  }
347
361
  // 虚拟化选择器
348
362
  case "select-v2": {
@@ -353,7 +367,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
353
367
  },
354
368
  "options": componentProps.value.options || []
355
369
  }), componentProps.value);
356
- return vue.h(ElementPlus.ElSelectV2, selectV2Props);
370
+ return vue.h(ElementPlus.ElSelectV2, selectV2Props, _componentSlotsObj);
357
371
  }
358
372
  // 穿梭框
359
373
  case "transfer": {
@@ -364,15 +378,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
364
378
  },
365
379
  "data": componentProps.value.data || []
366
380
  }), componentProps.value);
367
- return vue.h(ElementPlus.ElTransfer, transferProps);
381
+ return vue.h(ElementPlus.ElTransfer, transferProps, _componentSlotsObj);
368
382
  }
369
383
  // 表格选择器
370
384
  case "select-table":
371
385
  return vue.h(SelectTable_vue_vue_type_script_setup_true_lang.default, __spreadProps(__spreadValues(__spreadValues({}, commonProps), componentProps.value), {
372
386
  labelWidth: formItemProps.value.labelWidth
373
- }));
387
+ }), _componentSlotsObj);
374
388
  case "rate":
375
- return vue.h(ElementPlus.ElRate, __spreadValues(__spreadValues({}, commonProps), componentProps.value));
389
+ return vue.h(ElementPlus.ElRate, __spreadValues(__spreadValues({}, commonProps), componentProps.value), _componentSlotsObj);
376
390
  case "input-number": {
377
391
  const numberModelValue = modelValue.value === "" || modelValue.value === null || modelValue.value === void 0 ? null : Number(modelValue.value);
378
392
  const inputNumberProps = __spreadValues(__spreadProps(__spreadValues({}, commonProps), {
@@ -382,7 +396,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
382
396
  props.model[props.field] = val;
383
397
  }
384
398
  }), componentProps.value);
385
- return vue.h(ElementPlus.ElInputNumber, inputNumberProps);
399
+ return vue.h(ElementPlus.ElInputNumber, inputNumberProps, _componentSlotsObj);
386
400
  }
387
401
  // 图片上传
388
402
  case "image-upload": {
@@ -394,18 +408,18 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
394
408
  "onRemove": componentProps.value.onRemove
395
409
  }), componentProps.value);
396
410
  if (uploadProps["list-type"] === "picture-card") {
397
- return vue.h(ElementPlus.ElUpload, uploadProps, {
411
+ return vue.h(ElementPlus.ElUpload, uploadProps, __spreadValues({
398
412
  default: () => vue.h("div", { class: "el-upload__picture-card-wrapper" }, [
399
413
  vue.h(ElementPlus.ElIcon, { size: 24 }, { default: () => vue.h(iconsVue.Plus) })
400
414
  ])
401
- });
415
+ }, _componentSlotsObj));
402
416
  }
403
417
  if (uploadProps["list-type"] === "picture") {
404
- return vue.h(ElementPlus.ElUpload, uploadProps, {
418
+ return vue.h(ElementPlus.ElUpload, uploadProps, __spreadValues({
405
419
  default: () => vue.h(ElementPlus.ElButton, { type: "primary" }, { default: () => "点击上传" })
406
- });
420
+ }, _componentSlotsObj));
407
421
  }
408
- return vue.h(ElementPlus.ElUpload, uploadProps);
422
+ return vue.h(ElementPlus.ElUpload, uploadProps, _componentSlotsObj);
409
423
  }
410
424
  // 文件上传
411
425
  case "file-upload": {
@@ -417,26 +431,26 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
417
431
  "onRemove": componentProps.value.onRemove
418
432
  }), componentProps.value);
419
433
  if (uploadProps["list-type"] === "text") {
420
- return vue.h(ElementPlus.ElUpload, uploadProps, {
434
+ return vue.h(ElementPlus.ElUpload, uploadProps, __spreadValues({
421
435
  default: () => vue.h(ElementPlus.ElButton, { type: "primary" }, { default: () => "点击上传" })
422
- });
436
+ }, _componentSlotsObj));
423
437
  }
424
- return vue.h(ElementPlus.ElUpload, uploadProps);
438
+ return vue.h(ElementPlus.ElUpload, uploadProps, _componentSlotsObj);
425
439
  }
426
440
  // CodeMirror 编辑器
427
441
  case "code-mirror-editor": {
428
442
  const codeMirrorProps = __spreadValues(__spreadValues({}, commonProps), componentProps.value);
429
- return vue.h(index$2.JkyCodeMirrorEditor, codeMirrorProps);
443
+ return vue.h(index$2.JkyCodeMirrorEditor, codeMirrorProps, _componentSlotsObj);
430
444
  }
431
445
  // RichEditor 富文本编辑器
432
446
  case "rich-editor": {
433
447
  const richEditorProps = __spreadValues(__spreadValues({}, commonProps), componentProps.value);
434
- return vue.h(index$1.JkyRichEditor, richEditorProps);
448
+ return vue.h(index$1.JkyRichEditor, richEditorProps, _componentSlotsObj);
435
449
  }
436
450
  // AddInput 动态键值对输入框
437
451
  case "add-input": {
438
452
  const addInputProps = __spreadValues(__spreadValues({}, commonProps), componentProps.value);
439
- return vue.h(index.JkyAddInput, addInputProps);
453
+ return vue.h(index.JkyAddInput, addInputProps, _componentSlotsObj);
440
454
  }
441
455
  case "custom":
442
456
  return (_b = (_a = props.config).render) == null ? void 0 : _b.call(_a, commonProps);
@@ -4,15 +4,6 @@
4
4
  --jky-form-item-border-width: 4px;
5
5
  --jky-form-item-border-color: var(--el-color-primary);
6
6
  --jky-form-item-bg-color: rgba(var(--el-color-primary-rgb), 0.5);
7
-
8
- /* Grid 布局默认列数(可通过响应式变量覆盖) */
9
- --jky-form-grid-cols-xs: 1;
10
- --jky-form-grid-cols-sm: 2;
11
- --jky-form-grid-cols-md: 2;
12
- --jky-form-grid-cols-lg: 3;
13
- --jky-form-grid-cols-xl: 3;
14
- --jky-form-grid-cols-2xl: 4;
15
- --jky-form-grid-cols-3xl: 4;
16
7
  }
17
8
 
18
9
 
@@ -20,50 +11,3 @@
20
11
  .jky-form {
21
12
  /* 表单容器样式 */
22
13
  }
23
-
24
-
25
- /* Grid 布局模式 */
26
- .jky-form--grid {
27
- display: grid;
28
- grid-template-columns: repeat(var(--jky-form-grid-cols-xs), minmax(0, 1fr));
29
- gap: var(--el-form-item-gutter, 16px);
30
- }
31
- .el-form--inline.jky-form--grid .el-form-item {
32
- margin-right: 0;
33
- .el-form-item__content {
34
- align-items: flex-start;
35
- }
36
- }
37
-
38
-
39
- /* 响应式断点 */
40
- @media (min-width: 640px) {
41
- .jky-form--grid {
42
- grid-template-columns: repeat(var(--jky-form-grid-cols-sm, var(--jky-form-grid-cols-xs)), minmax(0, 1fr));
43
- }
44
- }
45
- @media (min-width: 768px) {
46
- .jky-form--grid {
47
- grid-template-columns: repeat(var(--jky-form-grid-cols-md, var(--jky-form-grid-cols-sm)), minmax(0, 1fr));
48
- }
49
- }
50
- @media (min-width: 1024px) {
51
- .jky-form--grid {
52
- grid-template-columns: repeat(var(--jky-form-grid-cols-lg, var(--jky-form-grid-cols-md)), minmax(0, 1fr));
53
- }
54
- }
55
- @media (min-width: 1280px) {
56
- .jky-form--grid {
57
- grid-template-columns: repeat(var(--jky-form-grid-cols-xl, var(--jky-form-grid-cols-lg)), minmax(0, 1fr));
58
- }
59
- }
60
- @media (min-width: 1536px) {
61
- .jky-form--grid {
62
- grid-template-columns: repeat(var(--jky-form-grid-cols-2xl, var(--jky-form-grid-cols-xl)), minmax(0, 1fr));
63
- }
64
- }
65
- @media (min-width: 1920px) {
66
- .jky-form--grid {
67
- grid-template-columns: repeat(var(--jky-form-grid-cols-3xl, var(--jky-form-grid-cols-2xl)), minmax(0, 1fr));
68
- }
69
- }
@@ -85,7 +85,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
85
85
  modelValue.value = false;
86
86
  }
87
87
  function handleConfirm() {
88
- handleClose();
89
88
  emit("confirm");
90
89
  }
91
90
  function handleCancel() {
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const version = "0.0.117";
3
+ const version = "0.0.122";
4
4
  exports.version = version;
@@ -390,7 +390,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
390
390
  vue.createVNode(vue.unref(index.JkyForm), vue.mergeProps({
391
391
  ref_key: "formRef",
392
392
  ref: formRef
393
- }, __spreadValues({ inline: true, grid: true }, __props.formProps), {
393
+ }, __spreadValues({ inline: true }, __props.formProps), {
394
394
  modelValue: form.value,
395
395
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value = $event),
396
396
  "show-footer": true,