diff --git a/docs/src/guide/in-depth/ui-framework.md b/docs/src/guide/in-depth/ui-framework.md index ce05608f..6a7508e1 100644 --- a/docs/src/guide/in-depth/ui-framework.md +++ b/docs/src/guide/in-depth/ui-framework.md @@ -4,7 +4,7 @@ ## 新增组件库应用 -如果你想用其他别的组件库,你只需要按一下步骤进行操作: +如果你想用其他别的组件库,你只需要按以下步骤进行操作: 1. 在`apps`内创建一个新的文件夹,例如`apps/web-xxx`。 2. 更改`apps/web-xxx/package.json`的`name`字段为`web-xxx`。 diff --git a/internal/lint-configs/eslint-config/src/configs/vue.ts b/internal/lint-configs/eslint-config/src/configs/vue.ts index 27cc3cf2..d1c6521c 100644 --- a/internal/lint-configs/eslint-config/src/configs/vue.ts +++ b/internal/lint-configs/eslint-config/src/configs/vue.ts @@ -4,7 +4,6 @@ import { interopDefault } from '../util'; export async function vue(): Promise { const [pluginVue, parserVue, parserTs] = await Promise.all([ - // @ts-expect-error missing types interopDefault(import('eslint-plugin-vue')), interopDefault(import('vue-eslint-parser')), // @ts-expect-error missing types diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index f2276094..f9808cc7 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -1,4 +1,4 @@ -import type { UserConfig } from 'vite'; +import type { CSSOptions, UserConfig } from 'vite'; import type { DefineApplicationOptions } from '../typing'; @@ -100,7 +100,7 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { }); } -function createCssOptions(injectGlobalScss = true) { +function createCssOptions(injectGlobalScss = true): CSSOptions { const root = findMonorepoRoot(); return { preprocessorOptions: injectGlobalScss diff --git a/packages/@core/base/icons/src/lucide.ts b/packages/@core/base/icons/src/lucide.ts index 97603eb5..21a1beff 100644 --- a/packages/@core/base/icons/src/lucide.ts +++ b/packages/@core/base/icons/src/lucide.ts @@ -28,6 +28,7 @@ export { Fullscreen, Github, Grip, + GripVertical, Info, InspectionPanel, Languages, diff --git a/packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue b/packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue index 5f7fe3bf..3d868190 100644 --- a/packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue +++ b/packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue @@ -166,7 +166,7 @@ const headerStyle = computed((): CSSProperties => { return { ...(isSidebarMixed ? { display: 'flex', justifyContent: 'center' } : {}), - height: `${headerHeight}px`, + height: `${headerHeight - 1}px`, ...contentWidthStyle.value, }; }); diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/index.ts b/packages/@core/ui-kit/shadcn-ui/src/ui/index.ts index 2711f942..02e76145 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/ui/index.ts +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/index.ts @@ -16,6 +16,7 @@ export * from './pagination'; export * from './pin-input'; export * from './popover'; export * from './radio-group'; +export * from './resizable'; export * from './scroll-area'; export * from './select'; export * from './separator'; diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizableHandle.vue b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizableHandle.vue new file mode 100644 index 00000000..81dc3fb4 --- /dev/null +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizableHandle.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizablePanelGroup.vue b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizablePanelGroup.vue new file mode 100644 index 00000000..8ea15f99 --- /dev/null +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizablePanelGroup.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/index.ts b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/index.ts new file mode 100644 index 00000000..75c05d58 --- /dev/null +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/resizable/index.ts @@ -0,0 +1,3 @@ +export { default as ResizableHandle } from './ResizableHandle.vue'; +export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'; +export { SplitterPanel as ResizablePanel } from 'radix-vue'; diff --git a/packages/effects/common-ui/src/components/col-page/col-page.vue b/packages/effects/common-ui/src/components/col-page/col-page.vue new file mode 100644 index 00000000..c3f9d686 --- /dev/null +++ b/packages/effects/common-ui/src/components/col-page/col-page.vue @@ -0,0 +1,107 @@ + + diff --git a/packages/effects/common-ui/src/components/col-page/index.ts b/packages/effects/common-ui/src/components/col-page/index.ts new file mode 100644 index 00000000..11b33058 --- /dev/null +++ b/packages/effects/common-ui/src/components/col-page/index.ts @@ -0,0 +1,2 @@ +export { default as ColPage } from './col-page.vue'; +export * from './types'; diff --git a/packages/effects/common-ui/src/components/col-page/types.ts b/packages/effects/common-ui/src/components/col-page/types.ts new file mode 100644 index 00000000..491d1e6d --- /dev/null +++ b/packages/effects/common-ui/src/components/col-page/types.ts @@ -0,0 +1,26 @@ +import type { PageProps } from '../page/types'; + +export interface ColPageProps extends PageProps { + /** + * 左侧宽度 + * @default 30 + */ + leftWidth?: number; + leftMinWidth?: number; + leftMaxWidth?: number; + leftCollapsedWidth?: number; + leftCollapsible?: boolean; + /** + * 右侧宽度 + * @default 70 + */ + rightWidth?: number; + rightMinWidth?: number; + rightCollapsedWidth?: number; + rightMaxWidth?: number; + rightCollapsible?: boolean; + + resizable?: boolean; + splitLine?: boolean; + splitHandle?: boolean; +} diff --git a/packages/effects/common-ui/src/components/index.ts b/packages/effects/common-ui/src/components/index.ts index 70f9e570..34f93c65 100644 --- a/packages/effects/common-ui/src/components/index.ts +++ b/packages/effects/common-ui/src/components/index.ts @@ -1,6 +1,7 @@ export * from './api-component'; export * from './captcha'; export * from './code-mirror'; +export * from './col-page'; export * from './ellipsis-text'; export * from './icon-picker'; export * from './json-preview'; diff --git a/packages/effects/common-ui/src/components/page/index.ts b/packages/effects/common-ui/src/components/page/index.ts index 65bf3c69..fd9e02f2 100644 --- a/packages/effects/common-ui/src/components/page/index.ts +++ b/packages/effects/common-ui/src/components/page/index.ts @@ -1 +1,2 @@ export { default as Page } from './page.vue'; +export * from './types'; diff --git a/packages/effects/common-ui/src/components/page/page.vue b/packages/effects/common-ui/src/components/page/page.vue index 78f0ed4c..3a2ca8ac 100644 --- a/packages/effects/common-ui/src/components/page/page.vue +++ b/packages/effects/common-ui/src/components/page/page.vue @@ -1,4 +1,6 @@ +