From 232f2bb9ca42ba57d4a143d121d761251c56379a Mon Sep 17 00:00:00 2001 From: 0x009922 Date: Thu, 26 May 2022 09:29:18 +0300 Subject: [PATCH 1/5] refactor: remove side effects, bump libs, add tests --- .eslintignore | 1 + .prettierignore | 4 +- package.json | 17 +- packages/theme/package.json | 2 +- .../cypress/component/SJsonInput.spec.cy.ts | 6 - .../ui/cypress/component/SModal.spec.cy.ts | 35 +- .../component/component-names.spec.cy.ts | 13 - packages/ui/etc/api/ui.api.md | 335 ++-- packages/ui/package.json | 23 +- .../src/components/Accordion/SAccordion.vue | 4 - .../components/Accordion/SAccordionItem.vue | 4 - packages/ui/src/components/Alert/SAlert.vue | 6 - .../Badge/{Badge.vue => SBadge.vue} | 6 - packages/ui/src/components/Badge/index.ts | 2 +- .../BodyScrollLockProvider/index.ts | 52 + packages/ui/src/components/Button/SButton.vue | 6 - .../src/components/Checkbox/SCheckboxSolo.vue | 6 - packages/ui/src/components/Input/consts.ts | 37 - packages/ui/src/components/Input/index.ts | 7 - .../{Input => JsonInput}/SJsonInput.vue | 6 - .../ui/src/components/JsonInput/consts.ts | 36 + packages/ui/src/components/JsonInput/index.ts | 4 + packages/ui/src/components/Link/SLink.vue | 4 - packages/ui/src/components/Modal/SModal.vue | 24 +- .../ui/src/components/Modal/SModalCard.vue | 6 - packages/ui/src/components/Modal/util.ts | 16 +- .../Notifications/SNotificationBody.vue | 6 - .../SNotificationBodyTimeline.vue | 6 - .../Notifications/SUseNotification.ts | 2 +- .../ui/src/components/Popover/SPopover.ts | 2 +- .../Popover/SPopoverWrappedTransition.vue | 5 +- packages/ui/src/components/Popover/index.ts | 5 +- .../components/ProgressBar/SProgressBar.vue | 6 - packages/ui/src/components/Radio/SRadio.vue | 6 - .../ui/src/components/Radio/SRadioGroup.vue | 6 - .../ui/src/components/Select/SDropdown.vue | 6 - packages/ui/src/components/Select/SSelect.vue | 6 - .../ui/src/components/Select/SSelectBase.vue | 6 - .../src/components/Select/SSelectButton.vue | 6 - .../src/components/Select/SSelectDropdown.vue | 6 - .../ui/src/components/Select/SSelectInput.vue | 6 - .../src/components/Select/SSelectOption.vue | 6 - packages/ui/src/components/Select/types.ts | 34 +- .../ui/src/components/Spinner/SSpinner.vue | 6 - packages/ui/src/components/Switch/SSwitch.vue | 6 - packages/ui/src/components/Tabs/STab.vue | 6 - .../ui/src/components/Tabs/STabsPanel.vue | 6 - .../src/components/TextField/STextField.vue | 9 +- .../src/components/Toasts/SToastsDisplay.vue | 6 - .../src/components/Toasts/SToastsProvider.ts | 2 +- .../ui/src/components/all-components.spec.ts | 12 + packages/ui/src/components/all-components.ts | 6 +- packages/ui/src/components/icons/index.ts | 2 +- packages/ui/src/components/index.ts | 6 +- .../ui/src/composables/body-scroll-lock.ts | 31 - .../ui/src/composables/prop-type-filter.ts | 4 +- packages/ui/src/types/index.ts | 14 +- packages/ui/test/after-build/.gitignore | 1 + .../esm-tree-shaking-test-lib/entry.ts | 3 + .../esm-tree-shaking-test-lib/proxy.ts | 5 + packages/ui/test/after-build/test.ts | 43 + packages/ui/tsconfig.json | 2 +- packages/ui/vite.config.ts | 9 +- packages/ui/vitest.after-build.config.ts | 7 + yarn.lock | 1699 +++++++++-------- 65 files changed, 1325 insertions(+), 1342 deletions(-) delete mode 100644 packages/ui/cypress/component/SJsonInput.spec.cy.ts delete mode 100644 packages/ui/cypress/component/component-names.spec.cy.ts rename packages/ui/src/components/Badge/{Badge.vue => SBadge.vue} (95%) create mode 100644 packages/ui/src/components/BodyScrollLockProvider/index.ts delete mode 100755 packages/ui/src/components/Input/consts.ts delete mode 100755 packages/ui/src/components/Input/index.ts rename packages/ui/src/components/{Input => JsonInput}/SJsonInput.vue (98%) create mode 100755 packages/ui/src/components/JsonInput/consts.ts create mode 100755 packages/ui/src/components/JsonInput/index.ts create mode 100644 packages/ui/src/components/all-components.spec.ts delete mode 100644 packages/ui/src/composables/body-scroll-lock.ts create mode 100644 packages/ui/test/after-build/.gitignore create mode 100644 packages/ui/test/after-build/esm-tree-shaking-test-lib/entry.ts create mode 100644 packages/ui/test/after-build/esm-tree-shaking-test-lib/proxy.ts create mode 100644 packages/ui/test/after-build/test.ts create mode 100644 packages/ui/vitest.after-build.config.ts diff --git a/.eslintignore b/.eslintignore index 8b7a0957..35f914e2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,3 +2,4 @@ node_modules dist dist-ts storybook-static +/packages/ui/test/after-build/esm-tree-shaken-dist diff --git a/.prettierignore b/.prettierignore index 3cd9176e..b47a3582 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,7 @@ **/dist/** **/node_modules/** -packages/ui/etc +/packages/ui/etc +/packages/ui/test/after-build/esm-tree-shaken-dist +/packages/ui/cypress/screenshots CHANGELOG.md storybook-static diff --git a/package.json b/package.json index 00034006..75247759 100755 --- a/package.json +++ b/package.json @@ -4,12 +4,15 @@ "scripts": { "sb:serve": "yarn --cwd packages/ui sb:serve", "sb:build": "yarn --cwd packages/ui sb:build", - "test:all": "run-s lint:check test:theme:unit build:theme test:ui:cy", + "test:all": "run-s lint:check test:theme:unit test:ui:unit build:theme test:ui:cy build:ui:only-vite test:ui:after-build", "test:theme:unit": "yarn --cwd packages/theme test", + "test:ui:unit": "yarn --cwd packages/ui test:unit", "test:ui:cy": "yarn --cwd packages/ui cy:ci", + "test:ui:after-build": "yarn --cwd packages/ui test:after-build", "build": "run-s build:theme build:ui", "build:theme": "yarn --cwd packages/theme build", "build:ui": "yarn --cwd packages/ui build", + "build:ui:only-vite": "yarn --cwd packages/ui build:vite", "lint:check": "run-s lint:es lint:format:check", "lint:es": "eslint .", "lint:es:fix": "yarn lint:es --fix", @@ -27,16 +30,16 @@ "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.1", "esbuild-jest": "^0.5.0", - "eslint": "^7.32.0", + "eslint": "^8.16.0", "eslint-config-alloy": "^4.5.1", "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-vue": "^8.5.0", + "eslint-plugin-vue": "^9.0.1", "eslint-plugin-vuejs-accessibility": "^1.1.1", "lerna": "^4.0.0", "npm-run-all": "^4.1.5", - "prettier": "^2.4.1", - "prettier-eslint": "^13.0.0", - "prettier-eslint-cli": "^5.0.1", - "typescript": "^4.4.3" + "prettier": "^2.6.2", + "prettier-eslint": "^15.0.0", + "prettier-eslint-cli": "^6.0.1", + "typescript": "4.6.4" } } diff --git a/packages/theme/package.json b/packages/theme/package.json index b54b4ecd..69c2d2d9 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -48,6 +48,6 @@ "sass": "^1.49.0", "sucrase": "^3.20.3", "type-fest": "^2.9.0", - "typescript": "^4.4.4" + "typescript": "4.6.4" } } diff --git a/packages/ui/cypress/component/SJsonInput.spec.cy.ts b/packages/ui/cypress/component/SJsonInput.spec.cy.ts deleted file mode 100644 index a9b1c511..00000000 --- a/packages/ui/cypress/component/SJsonInput.spec.cy.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { SJsonInput } from '@/lib' -import { mount } from '@cypress/vue' - -it('Mount SJsonInput', () => { - mount(SJsonInput) -}) diff --git a/packages/ui/cypress/component/SModal.spec.cy.ts b/packages/ui/cypress/component/SModal.spec.cy.ts index 2da3b16b..4b334558 100644 --- a/packages/ui/cypress/component/SModal.spec.cy.ts +++ b/packages/ui/cypress/component/SModal.spec.cy.ts @@ -2,9 +2,10 @@ import { mount } from '@cypress/vue' import { config } from '@vue/test-utils' import { Ref } from 'vue' import { bareMetalVModel } from '@/util' -import { SModal, SModalCard, useModalApi } from '@/lib' +import { SModal, SModalCard, useModalApi, SBodyScrollLockProvider, BodyScrollLockApi } from '@/lib' import { objectPick } from '@vueuse/core' import { Options as FocusTrapOptions } from 'focus-trap' +import { enableBodyScroll, disableBodyScroll } from 'body-scroll-lock' const showVModel = (val: Ref) => bareMetalVModel(val, 'show') const findRoot = () => cy.get('[data-testid=root]') @@ -421,6 +422,15 @@ describe('Scroll Lock', () => { setup() { const show = ref(false) + const bodyScrollLockApi: BodyScrollLockApi = { + lock: (el) => { + disableBodyScroll(el) + }, + unlock: (el) => { + enableBodyScroll(el) + }, + } + return () => [ h( 'button', @@ -441,15 +451,22 @@ describe('Scroll Lock', () => { 'A very huge element', ), h( - SModal as any, + SBodyScrollLockProvider, + { api: bodyScrollLockApi }, { - ...showVModel(show), - ...params, - focusTrap: false, - modalTransition: null, - }, - { - default: () => h('span', {}, 'Dip'), + default: () => + h( + SModal as any, + { + ...showVModel(show), + ...params, + focusTrap: false, + modalTransition: null, + }, + { + default: () => h('span', {}, 'Dip'), + }, + ), }, ), ] diff --git a/packages/ui/cypress/component/component-names.spec.cy.ts b/packages/ui/cypress/component/component-names.spec.cy.ts deleted file mode 100644 index 0510ebc2..00000000 --- a/packages/ui/cypress/component/component-names.spec.cy.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { COMPONENTS } from '@/components/all-components' -import { getComponentName } from '@/util' - -for (const [nameExpected, component] of Object.entries(COMPONENTS)) { - it(`Component "${nameExpected}" is named as "${nameExpected}"`, { retries: 0 }, () => { - const nameExtracted = getComponentName(component) - - cy.wrap({ name: nameExtracted }) - // trick to avoid error retries - .its('name', { timeout: 0 }) - .should('eq', nameExpected) - }) -} diff --git a/packages/ui/etc/api/ui.api.md b/packages/ui/etc/api/ui.api.md index d53ca336..ebb935cc 100644 --- a/packages/ui/etc/api/ui.api.md +++ b/packages/ui/etc/api/ui.api.md @@ -5,7 +5,6 @@ ```ts import { AllowedComponentProps } from 'vue'; -import { BodyScrollOptions } from 'body-scroll-lock'; import { ComponentCustomProps } from 'vue'; import { ComponentOptionsMixin } from 'vue'; import { DeepReadonly } from 'vue'; @@ -16,7 +15,7 @@ import { FocusTrap } from 'focus-trap'; import { FunctionalComponent } from 'vue'; import { InjectionKey } from 'vue'; import { Instance } from '@popperjs/core'; -import type { JSONEditorOptions } from 'jsoneditor'; +import { MaybeElementRef } from '@vueuse/core'; import { MaybeRef } from '@vueuse/core'; import { Placement } from '@popperjs/core'; import { Plugin as Plugin_2 } from 'vue'; @@ -26,6 +25,7 @@ import { RendererElement } from 'vue'; import { RendererNode } from 'vue'; import { Slot } from 'vue'; import { Status as Status_2 } from '@/types'; +import { StyleValue } from 'vue'; import { UnwrapRef } from 'vue'; import { VNode } from 'vue'; import { VNodeProps } from 'vue'; @@ -51,20 +51,23 @@ export interface AccordionItemApi { toggle: (expand?: boolean) => void; } -// @public (undocumented) -export enum Autocomplete { - // (undocumented) - OFF = "off", - // (undocumented) - ON = "on" -} - // @public (undocumented) export type BadgeType = typeof BadgeTypes extends ReadonlyArray ? T : never; // @public (undocumented) export const BadgeTypes: readonly ["active", "error", "warning", "info", "debug", "pending"]; +// @public (undocumented) +export const BODY_SCROLL_LOCK_API_KEY: InjectionKey; + +// @public (undocumented) +export interface BodyScrollLockApi { + // (undocumented) + lock: (elem: Element) => void; + // (undocumented) + unlock: (elem: Element) => void; +} + // @public (undocumented) export const BUTTON_ICON_POSITION_VALUES: readonly ["left", "right"]; @@ -95,68 +98,6 @@ export const FONT_SIZE: Record; // @public (undocumented) export type HTMLButtonType = 'button' | 'reset' | 'submit'; -// @public (undocumented) -export enum InputSize { - // (undocumented) - BIG = "big", - // (undocumented) - MEDIUM = "medium", - // (undocumented) - SMALL = "small" -} - -// @public (undocumented) -export enum InputType { - // (undocumented) - BUTTON = "button", - // (undocumented) - CHECKBOX = "checkbox", - // (undocumented) - COLOR = "color", - // (undocumented) - DATE = "date", - // (undocumented) - DATETIME_LOCAL = "datetime-local", - // (undocumented) - EMAIL = "email", - // (undocumented) - FILE = "file", - // (undocumented) - HIDDEN = "hidden", - // (undocumented) - IMAGE = "image", - // (undocumented) - MONTH = "month", - // (undocumented) - NUMBER = "number", - // (undocumented) - PASSWORD = "password", - // (undocumented) - RADIO = "radio", - // (undocumented) - RANGE = "range", - // (undocumented) - RESET = "reset", - // (undocumented) - SEARCH = "search", - // (undocumented) - SUBMIT = "submit", - // (undocumented) - TEL = "tel", - // (undocumented) - TEXT = "text", - // (undocumented) - TEXT_FILE = "text-file", - // (undocumented) - TEXTAREA = "textarea", - // (undocumented) - TIME = "time", - // (undocumented) - URL = "url", - // (undocumented) - WEEK = "week" -} - // @public (undocumented) export const LINK_ICON_POSITION_VALUES: readonly ["left", "right"]; @@ -313,12 +254,12 @@ name: string; // // @public (undocumented) export const SAlert: DefineComponent<__VLS_WithDefaults_3<__VLS_TypePropsToRuntimeProps_3, { -status: Status_2; +status: "info"; showCloseBtn: boolean; }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "click:close": () => void; }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { -status: Status_2; +status: "info"; showCloseBtn: boolean; }>>> & { "onClick:close"?: (() => any) | undefined; @@ -331,8 +272,8 @@ showCloseBtn: boolean; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SBadge: DefineComponent<__VLS_WithDefaults_19<__VLS_TypePropsToRuntimeProps_22<{ -type?: "error" | "warning" | "active" | "info" | "debug" | "pending" | undefined; +export const SBadge: DefineComponent<__VLS_WithDefaults_18<__VLS_TypePropsToRuntimeProps_21<{ +type?: "info" | "warning" | "error" | "active" | "debug" | "pending" | undefined; colorBackground?: boolean | undefined; withBorder?: boolean | undefined; onlyMarker?: boolean | undefined; @@ -341,8 +282,8 @@ type: string; colorBackground: boolean; withBorder: boolean; onlyMarker: boolean; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly>>, { -type: "error" | "warning" | "active" | "info" | "debug" | "pending"; +type: BadgeType; colorBackground: boolean; withBorder: boolean; onlyMarker: boolean; }>; +// @public (undocumented) +export const SBodyScrollLockProvider: DefineComponent< { +api: { +type: PropType; +required: true; +}; +}, () => VNode[] | undefined, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly; +required: true; +}; +}>>, {}>; + // Warning: (ae-forgotten-export) The symbol "__VLS_WithDefaults" needs to be exported by the entry point lib.d.ts // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // @@ -403,11 +359,11 @@ disabled: boolean; loading: boolean; uppercase: boolean; }>>>, { -type: "primary" | "secondary" | "outline" | "action"; -size: "xs" | "sm" | "md" | "lg"; +type: ButtonType; +size: ButtonSize; nativeType: HTMLButtonType; icon: string; -iconPosition: "left" | "right"; +iconPosition: ButtonIconPosition; rounded: boolean; disabled: boolean; loading: boolean; @@ -424,26 +380,26 @@ export const SCheckboxAtom: FunctionalComponent; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SCheckboxSolo: DefineComponent<__VLS_WithDefaults_20<__VLS_TypePropsToRuntimeProps_23, { +export const SCheckboxSolo: DefineComponent<__VLS_WithDefaults_19<__VLS_TypePropsToRuntimeProps_22, { modelValue: boolean; type: string; size: string; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { modelValue: boolean; type: string; size: string; }>>> & { "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }, { -modelValue: boolean; type: "default" | "bordered" | "bordered-with-description"; +modelValue: boolean; size: "md" | "lg" | "xl"; }>; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SDropdown: DefineComponent<__VLS_TypePropsToRuntimeProps_12<{ +export const SDropdown: DefineComponent<__VLS_TypePropsToRuntimeProps_11<{ modelValue?: any; options?: SelectOption[] | undefined; disabled?: boolean | undefined; @@ -451,7 +407,7 @@ multiple?: boolean | undefined; label?: string | undefined; size?: SelectSize | undefined; inline?: boolean | undefined; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly[] | undefined; disabled?: boolean | undefined; @@ -485,12 +441,13 @@ export interface SelectApi extends DeepReadonly { @@ -501,24 +458,24 @@ export interface SelectOption { } // @public (undocumented) -export enum SelectOptionType { - // (undocumented) - Check = "check", - // (undocumented) - RadioOrCheckbox = "rad-or-check" -} +export const SelectOptionType: { + readonly RadioOrCheckbox: "rad-or-check"; + readonly Check: "check"; +}; // @public (undocumented) -export enum SelectSize { - // (undocumented) - Lg = "lg", - // (undocumented) - Md = "md", - // (undocumented) - Sm = "sm", - // (undocumented) - Xl = "xl" -} +export type SelectOptionType = typeof SelectOptionType[keyof typeof SelectOptionType]; + +// @public (undocumented) +export const SelectSize: { + readonly Sm: "sm"; + readonly Md: "md"; + readonly Lg: "lg"; + readonly Xl: "xl"; +}; + +// @public (undocumented) +export type SelectSize = typeof SelectSize[keyof typeof SelectSize]; // @public (undocumented) export interface ShowNotificationParams { @@ -545,45 +502,7 @@ export interface ShowNotificationReturn { // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SJsonInput: DefineComponent<__VLS_WithDefaults_5<__VLS_TypePropsToRuntimeProps_5<{ -modelValue?: Object | undefined; -options?: JSONEditorOptions | undefined; -height?: string | undefined; -dictionary?: string[] | undefined; -}>, { -modelValue: () => {}; -options: () => {}; -height: string; -dictionary: () => never[]; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { -"update:modelValue": (value: any) => void; -} & { -error: (value: unknown) => void; -}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { -modelValue: () => {}; -options: () => {}; -height: string; -dictionary: () => never[]; -}>>> & { -"onUpdate:modelValue"?: ((value: any) => any) | undefined; -onError?: ((value: unknown) => any) | undefined; -}, { -modelValue: Object; -options: JSONEditorOptions; -height: string; -dictionary: string[]; -}>; - -// Warning: (ae-forgotten-export) The symbol "__VLS_WithDefaults" needs to be exported by the entry point lib.d.ts -// Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts -// -// @public (undocumented) -export const SLink: DefineComponent<__VLS_WithDefaults_6<__VLS_TypePropsToRuntimeProps_6<{ +export const SLink: DefineComponent<__VLS_WithDefaults_5<__VLS_TypePropsToRuntimeProps_5<{ underline?: "solid" | "dotted" | undefined; iconPosition?: "left" | "right" | undefined; icon?: boolean | undefined; @@ -593,7 +512,7 @@ underline: string; iconPosition: string; icon: boolean; tag: string; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly>>, { icon: boolean; -iconPosition: "left" | "right"; -underline: "solid" | "dotted"; +iconPosition: LinkIconPosition; +underline: LinkUnderlineType; tag: string | object; }>; @@ -615,7 +534,7 @@ tag: string | object; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SModal: DefineComponent<__VLS_WithDefaults_7<__VLS_TypePropsToRuntimeProps_7, { +export const SModal: DefineComponent<__VLS_WithDefaults_6<__VLS_TypePropsToRuntimeProps_6, { teleportTo: string; modalTransition: string; overlayTransition: string; @@ -627,7 +546,7 @@ focusTrap: boolean; eager: boolean; labelledBy: string; describedBy: null; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("before-open" | "after-open" | "before-close" | "after-close" | "update:show" | "click:overlay")[], "before-open" | "after-open" | "before-close" | "after-close" | "update:show" | "click:overlay", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("before-open" | "after-open" | "before-close" | "after-close" | "update:show" | "click:overlay")[], "before-open" | "after-open" | "before-close" | "after-close" | "update:show" | "click:overlay", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { teleportTo: string; modalTransition: string; overlayTransition: string; @@ -651,7 +570,7 @@ eager: boolean; teleportTo: string; modalTransition: string | object; overlayTransition: string | object; -lockScroll: boolean | BodyScrollOptions; +lockScroll: boolean; showOverlay: boolean; closeOnOverlayClick: boolean; closeOnEsc: boolean; @@ -664,12 +583,12 @@ describedBy: string | null; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SModalCard: DefineComponent<__VLS_WithDefaults_8<__VLS_TypePropsToRuntimeProps_8<{ +export const SModalCard: DefineComponent<__VLS_WithDefaults_7<__VLS_TypePropsToRuntimeProps_7<{ title?: string | undefined; close?: boolean | undefined; }>, { close: boolean; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { @@ -682,23 +601,23 @@ close: boolean; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SNotificationBody: DefineComponent<__VLS_WithDefaults_9<__VLS_TypePropsToRuntimeProps_9<{ +export const SNotificationBody: DefineComponent<__VLS_WithDefaults_8<__VLS_TypePropsToRuntimeProps_8<{ title?: string | undefined; description?: string | undefined; status?: Status_2 | undefined; timeout?: number | undefined; showCloseBtn?: boolean | undefined; }>, { -status: Status_2; +status: "info"; timeout: number; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("click:close" | "timeout")[], "click:close" | "timeout", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("click:close" | "timeout")[], "click:close" | "timeout", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { -status: Status_2; +status: "info"; timeout: number; }>>> & { "onClick:close"?: ((...args: any[]) => any) | undefined; @@ -726,7 +645,7 @@ export const SPINNER_WIDTH: Record; export const SPopover: DefineComponent< { show: BooleanConstructor; trigger: { -type: PropType<"click" | "manual" | "hover">; +type: PropType<"manual" | "hover" | "click">; default: string; validator: (v: unknown) => boolean; }; @@ -756,7 +675,7 @@ default: number; }> | null)[], unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:show" | "click-outside")[], "update:show" | "click-outside", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly; +type: PropType<"manual" | "hover" | "click">; default: string; validator: (v: unknown) => boolean; }; @@ -787,7 +706,7 @@ default: number; }, { show: boolean; placement: Placement; -trigger: "click" | "manual" | "hover"; +trigger: "manual" | "hover" | "click"; skidding: string | number; distance: string | number; showDelay: string | number; @@ -799,9 +718,9 @@ hideDelay: string | number; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SPopoverWrappedTransition: DefineComponent<__VLS_WithDefaults_10<__VLS_TypePropsToRuntimeProps_10, { +export const SPopoverWrappedTransition: DefineComponent<__VLS_WithDefaults_9<__VLS_TypePropsToRuntimeProps_9, { eager: boolean; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { eager: boolean; }>>>, { eager: boolean; @@ -811,13 +730,13 @@ eager: boolean; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SProgressBar: DefineComponent<__VLS_WithDefaults_16<__VLS_TypePropsToRuntimeProps_19<{ +export const SProgressBar: DefineComponent<__VLS_WithDefaults_15<__VLS_TypePropsToRuntimeProps_18<{ percent?: number | undefined; lineHeight?: number | undefined; }>, { percent: number; lineHeight: number; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { @@ -833,11 +752,11 @@ lineHeight: number; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SRadio: DefineComponent<__VLS_WithDefaults_21<__VLS_TypePropsToRuntimeProps_24, { +export const SRadio: DefineComponent<__VLS_WithDefaults_20<__VLS_TypePropsToRuntimeProps_23, { disabled: boolean; type: string; size: string; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { disabled: boolean; type: string; size: string; @@ -857,12 +776,12 @@ export const SRadioAtom: FunctionalComponent; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SRadioGroup: DefineComponent<__VLS_WithDefaults_22<__VLS_TypePropsToRuntimeProps_25, { +export const SRadioGroup: DefineComponent<__VLS_WithDefaults_21<__VLS_TypePropsToRuntimeProps_24, { modelValue: null; radioSelector: string; labelledBy: string; describedBy: string; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { modelValue: null; radioSelector: string; labelledBy: string; @@ -879,14 +798,14 @@ radioSelector: string; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSelect: DefineComponent<__VLS_TypePropsToRuntimeProps_11<{ +export const SSelect: DefineComponent<__VLS_TypePropsToRuntimeProps_10<{ modelValue?: any; options?: SelectOption[] | undefined; disabled?: boolean | undefined; multiple?: boolean | undefined; label?: string | undefined; size?: SelectSize | undefined; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly[] | undefined; disabled?: boolean | undefined; @@ -899,7 +818,7 @@ size?: SelectSize | undefined; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSelectBase: DefineComponent<__VLS_WithDefaults_11<__VLS_TypePropsToRuntimeProps_13<{ +export const SSelectBase: DefineComponent<__VLS_WithDefaults_10<__VLS_TypePropsToRuntimeProps_12<{ disabled?: boolean | undefined; multiple?: boolean | undefined; modelValue?: any; @@ -909,7 +828,7 @@ label?: string | undefined; mandatory?: boolean | undefined; syncMenuAndInputWidths?: boolean | undefined; }>, { -size: SelectSize; +size: "md"; options: () => never[]; modelValue: null; multiple: boolean; @@ -917,7 +836,7 @@ disabled: boolean; syncMenuAndInputWidths: boolean; }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "update:modelValue": (value: any) => void; -}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { -size: SelectSize; +size: "md"; options: () => never[]; modelValue: null; multiple: boolean; @@ -940,7 +859,7 @@ modelValue: any; multiple: boolean; size: SelectSize; disabled: boolean; -options: SelectOption[]; +options: SelectOption[]; syncMenuAndInputWidths: boolean; }>; @@ -948,14 +867,14 @@ syncMenuAndInputWidths: boolean; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSelectButton: DefineComponent<__VLS_WithDefaults_12<__VLS_TypePropsToRuntimeProps_14<{ +export const SSelectButton: DefineComponent<__VLS_WithDefaults_11<__VLS_TypePropsToRuntimeProps_13<{ type?: SelectButtonType | undefined; }>, { -type: SelectButtonType; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { -type: SelectButtonType; +type: "default"; }>>>, { type: SelectButtonType; }>; @@ -971,13 +890,13 @@ export const SSelectInput: DefineComponent< {}, {}, {}, {}, {}, ComponentOpti // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSelectOption: DefineComponent<__VLS_TypePropsToRuntimeProps_15<{ +export const SSelectOption: DefineComponent<__VLS_TypePropsToRuntimeProps_14<{ type: SelectOptionType; multiple?: boolean | undefined; selected?: boolean | undefined; }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { toggle: () => void; -}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly any) | undefined; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSpinner: DefineComponent<__VLS_WithDefaults_13<__VLS_TypePropsToRuntimeProps_16, { +export const SSpinner: DefineComponent<__VLS_WithDefaults_12<__VLS_TypePropsToRuntimeProps_15, { size: string; width: number; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { size: string; width: number; }>>>, { @@ -1006,12 +925,12 @@ width: string | number; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const SSwitch: DefineComponent<__VLS_WithDefaults_14<__VLS_TypePropsToRuntimeProps_17, { +export const SSwitch: DefineComponent<__VLS_WithDefaults_13<__VLS_TypePropsToRuntimeProps_16, { label: string; disabled: boolean; }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "update:modelValue": (value: boolean) => void; -}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { label: string; disabled: boolean; }>>> & { @@ -1025,12 +944,12 @@ label: string; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const STab: DefineComponent<__VLS_WithDefaults_18<__VLS_TypePropsToRuntimeProps_21<{ +export const STab: DefineComponent<__VLS_WithDefaults_17<__VLS_TypePropsToRuntimeProps_20<{ disabled?: boolean | undefined; name: string; }>, { disabled: boolean; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { @@ -1043,13 +962,13 @@ disabled: boolean; // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const STabsPanel: DefineComponent<__VLS_WithDefaults_17<__VLS_TypePropsToRuntimeProps_20<{ +export const STabsPanel: DefineComponent<__VLS_WithDefaults_16<__VLS_TypePropsToRuntimeProps_19<{ modelValue: string; background?: "primary" | "secondary" | "none" | undefined; }>, { modelValue: string; background: string; -}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { @@ -1059,27 +978,26 @@ background: string; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }, { modelValue: string; -background: "primary" | "secondary" | "none"; +background: TabsPanelBackgroundType; }>; // @public -export enum Status { - // (undocumented) - Error = "error", - // (undocumented) - Info = "info", - // (undocumented) - Success = "success", - // (undocumented) - Warning = "warning" -} +export const Status: { + readonly Info: "info"; + readonly Success: "success"; + readonly Warning: "warning"; + readonly Error: "error"; +}; + +// @public (undocumented) +export type Status = typeof Status[keyof typeof Status]; // Warning: (ae-forgotten-export) The symbol "__VLS_WithDefaults" needs to be exported by the entry point lib.d.ts // Warning: (ae-forgotten-export) The symbol "__VLS_TypePropsToRuntimeProps" needs to be exported by the entry point lib.d.ts // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point lib.d.ts // // @public (undocumented) -export const STextField: DefineComponent<__VLS_WithDefaults_15<__VLS_TypePropsToRuntimeProps_18, { +export const STextField: DefineComponent<__VLS_WithDefaults_14<__VLS_TypePropsToRuntimeProps_17, { multiline: boolean; password: boolean; disabled: boolean; @@ -1087,7 +1005,7 @@ counter: boolean; noEye: boolean; }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "update:modelValue": (value: string) => void; -}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { +}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly, { multiline: boolean; password: boolean; disabled: boolean; @@ -1174,7 +1092,7 @@ show: BooleanConstructor; title: StringConstructor; status: { type: PropType; -default: Status_2; +default: "info"; }; timeout: { type: NumberConstructor; @@ -1187,7 +1105,7 @@ show: BooleanConstructor; title: StringConstructor; status: { type: PropType; -default: Status_2; +default: "info"; }; timeout: { type: NumberConstructor; @@ -1257,6 +1175,9 @@ export type ToastUnregisterFn = () => void; // @public (undocumented) export const useAccordionApi: () => AccordionApi | undefined; +// @public +export function useBodyScrollLockIfPossible(target: MaybeElementRef): void; + // @public (undocumented) export function useModalApi(): ModalApi; diff --git a/packages/ui/package.json b/packages/ui/package.json index 47a44b6c..d74c92e3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -22,6 +22,8 @@ "scripts": { "sb:build": "build-storybook", "sb:serve": "start-storybook -p 6006", + "test:unit": "vitest run", + "test:after-build": "vitest run -c vitest.after-build.config.ts", "cy": "cypress open-ct", "cy:ci": "cypress run-ct --quiet --reporter spec", "typecheck": "vue-tsc --noEmit", @@ -35,7 +37,6 @@ "dependencies": { "@popperjs/core": "^2.10.2", "@vueuse/core": "7.7.1", - "body-scroll-lock": "^4.0.0-beta.0", "focus-trap": "^6.7.1", "jsoneditor": "^9.5.5", "lodash": "^4.17.21", @@ -46,7 +47,7 @@ "@cypress/vue": "3.1.1", "@iconify/json": "^2.0.33", "@mdx-js/react": "^1.6.22", - "@microsoft/api-extractor": "^7.18.19", + "@microsoft/api-extractor": "7.18", "@soramitsu-ui/icons": "^0.1.0", "@soramitsu-ui/theme": "^0.3.0", "@storybook/addon-actions": "^6.3.9", @@ -56,27 +57,33 @@ "@types/body-scroll-lock": "^3.1.0", "@types/jsoneditor": "^8.6.1", "@types/lodash": "^4.14.173", - "@vitejs/plugin-vue": "^2.1.0", + "@typescript-eslint/eslint-plugin": "^5.26.0", + "@typescript-eslint/parser": "^5.26.0", + "@vitejs/plugin-vue": "^2.3.3", "@vitejs/plugin-vue-jsx": "^1.2.0", + "@vue/compiler-core": "^3.2.36", "@vue/test-utils": "2.0.0-rc.18", "axe-core": "^4.4.1", + "body-scroll-lock": "^4.0.0-beta.0", "cypress": "^9.4.1", "cypress-axe": "^0.14.0", "cypress-plugin-snapshots": "^1.4.4", "cypress-plugin-tab": "^1.0.5", "del-cli": "^4.0.1", "esbuild-register": "^3.3.2", + "happy-dom": "^4.0.1", "npm-run-all": "^4.1.5", "sass": "^1.41.1", "storybook-builder-vite": "^0.1.15", "type-fest": "^2.3.4", - "typescript": "^4.4.4", + "typescript": "4.6.4", "unplugin-auto-import": "^0.5.11", "unplugin-icons": "^0.13.0", - "vite": "^2.5.10", - "vite-plugin-windicss": "^1.4.3", - "vite-svg-loader": "^3.1.0", + "vite": "^2.9.9", + "vite-plugin-windicss": "^1.8.4", + "vite-svg-loader": "^3.3.0", + "vitest": "^0.12.9", "vue-tsc": "^0.30.0", - "windicss": "^3.1.7" + "windicss": "^3.5.4" } } diff --git a/packages/ui/src/components/Accordion/SAccordion.vue b/packages/ui/src/components/Accordion/SAccordion.vue index 0cfe5550..7bd836a5 100644 --- a/packages/ui/src/components/Accordion/SAccordion.vue +++ b/packages/ui/src/components/Accordion/SAccordion.vue @@ -1,7 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +``` + +`SModal` prop `lockScroll` now is just a boolean which _reactively_ controls whether it should use provided API (if there is some) or not. + +**Why the change was made:** `body-scroll-lock` has little side-effects, thus it is not fully tree-shakeable. + +**How to migrate:** if you use `SModal`, you should now use `SBodyScrollLockProvider` if you need to lock the scroll. diff --git a/.changeset/serious-steaks-pump.md b/.changeset/serious-steaks-pump.md new file mode 100644 index 00000000..f3cf178f --- /dev/null +++ b/.changeset/serious-steaks-pump.md @@ -0,0 +1,39 @@ +--- +'@soramitsu-ui/ui': minor +--- + +**BREAKING**: change exported enums format. + +**What is the change.** Previously enums was defined as plain TypeScript enums: + +```ts +enum Status { + Info = 'info', +} +``` + +Now we define enums as follows: + +```ts +const Status = { + Info: 'info', +} as const + +type Status = typeof Status[keyof typeof Status] +``` + +**Why the change was made:** it turned out that TypeScript enums are not tree-shakeable because they are compiled into IIFE. + +**How to migrate** - you don't need to do anything except of some cases: + +- If you use some enum variant as a type, e.g. + + ```ts + function acceptOnlyInfo(status: Status.Info) {} + ``` + + then you should add `typeof`: + + ```ts + function acceptOnlyInfo(status: typeof Status.Info) {} + ``` diff --git a/.changeset/swift-apes-tie.md b/.changeset/swift-apes-tie.md new file mode 100644 index 00000000..e41049d8 --- /dev/null +++ b/.changeset/swift-apes-tie.md @@ -0,0 +1,7 @@ +--- +'@soramitsu-ui/ui': minor +--- + +**BREAKING**: exclude `SJsonInput` from the library bundle + +**Why.** It has dirty dependencies (`jsoneditor`, `lodash`) which prevented the library from being side-effect-free. Anyway, `SJsonInput` seems to be unused and out of our Design System. From f253ddd63fd381fa2e9fd1aabbf0b4cfe4b69cab Mon Sep 17 00:00:00 2001 From: 0x009922 Date: Thu, 26 May 2022 10:16:58 +0300 Subject: [PATCH 3/5] misc: exclude `SJsonInput` story --- .../{SJsonInput.stories.ts => SJsonInput.stories__exclude.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/ui/stories/{SJsonInput.stories.ts => SJsonInput.stories__exclude.ts} (100%) diff --git a/packages/ui/stories/SJsonInput.stories.ts b/packages/ui/stories/SJsonInput.stories__exclude.ts similarity index 100% rename from packages/ui/stories/SJsonInput.stories.ts rename to packages/ui/stories/SJsonInput.stories__exclude.ts From 3b79313cc300a13b484a07a3bccdad8b2268ca50 Mon Sep 17 00:00:00 2001 From: 0x009922 Date: Thu, 16 Jun 2022 17:08:11 +0300 Subject: [PATCH 4/5] fix: remove extra component names --- packages/ui/src/components/NavigationMenu/SNavigationMenu.vue | 4 ---- .../ui/src/components/NavigationMenu/SNavigationMenuItem.vue | 4 ---- .../src/components/NavigationMenu/SNavigationMenuItemBody.vue | 4 ---- .../ui/src/components/NavigationMenu/SNavigationSubmenu.vue | 4 ---- 4 files changed, 16 deletions(-) diff --git a/packages/ui/src/components/NavigationMenu/SNavigationMenu.vue b/packages/ui/src/components/NavigationMenu/SNavigationMenu.vue index 3b6f17c9..c7e3f121 100644 --- a/packages/ui/src/components/NavigationMenu/SNavigationMenu.vue +++ b/packages/ui/src/components/NavigationMenu/SNavigationMenu.vue @@ -1,7 +1,3 @@ - - - - -