diff --git a/.eslintrc b/.eslintrc index 037b2702f..e6c838afb 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,5 +4,15 @@ "extends": ["custom", "plugin:storybook/recommended"], "rules": { "vue/one-component-per-file": "off" - } + }, + "overrides": [ + { + "files": [ + "**/stories/*.vue" + ], + "rules": { + "no-console": "off" + } + } + ] } diff --git a/.storybook/DocsContainer.tsx b/.storybook/DocsContainer.tsx index bc2e96bc1..cf90b7f07 100644 --- a/.storybook/DocsContainer.tsx +++ b/.storybook/DocsContainer.tsx @@ -6,7 +6,6 @@ import { useDarkMode } from 'storybook-dark-mode'; export const DocsContainer = ( props: PropsWithChildren ) => { - console.log(props.children) const dark = useDarkMode(); return ( =18" @@ -43,6 +43,7 @@ "@oku-ui/checkbox": "workspace:^", "@oku-ui/collapsible": "workspace:^", "@oku-ui/collection": "workspace:^", + "@oku-ui/direction": "workspace:^", "@oku-ui/label": "workspace:^", "@oku-ui/popper": "workspace:^", "@oku-ui/presence": "workspace:^", diff --git a/packages/components/arrow/src/arrow.ts b/packages/components/arrow/src/arrow.ts index 6e972804d..5c5858701 100644 --- a/packages/components/arrow/src/arrow.ts +++ b/packages/components/arrow/src/arrow.ts @@ -1,6 +1,6 @@ import { cloneVNode, defineComponent, h } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useForwardRef } from '@oku-ui/use-composable' type ArrowElement = ElementType<'svg'> @@ -14,10 +14,7 @@ const arrow = defineComponent({ name: NAME, inheritAttrs: false, props: { - asChild: { - type: Boolean, - default: false, - }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { const forwardedRef = useForwardRef() diff --git a/packages/components/arrow/src/stories/ArrowDemo.vue b/packages/components/arrow/src/stories/ArrowDemo.vue index ce4cb7bc1..8e221ec19 100644 --- a/packages/components/arrow/src/stories/ArrowDemo.vue +++ b/packages/components/arrow/src/stories/ArrowDemo.vue @@ -14,7 +14,6 @@ withDefaults(defineProps(), { const arrowRef = ref() onMounted(() => { - // eslint-disable-next-line no-console console.log(arrowRef.value?.$el) }) const alert = () => window.alert('clicked') diff --git a/packages/components/aspect-ratio/src/aspect-ratio.ts b/packages/components/aspect-ratio/src/aspect-ratio.ts index 8d9f6a612..e5208adc2 100644 --- a/packages/components/aspect-ratio/src/aspect-ratio.ts +++ b/packages/components/aspect-ratio/src/aspect-ratio.ts @@ -1,6 +1,6 @@ import { defineComponent, h } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useForwardRef } from '@oku-ui/use-composable' interface AspectRatioProps extends IPrimitiveProps { @@ -20,6 +20,7 @@ const AspectRatio = defineComponent({ type: Number, default: 1 / 1, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { const { style, ...aspectRatioProps } = attrs as AspectRatioElement @@ -49,6 +50,7 @@ const AspectRatio = defineComponent({ bottom: 0, left: 0, }, + asChild: props.asChild, }, { default: () => slots.default?.(), diff --git a/packages/components/aspect-ratio/src/stories/AspectRatioDemo.vue b/packages/components/aspect-ratio/src/stories/AspectRatioDemo.vue index c7294217c..b638cb968 100644 --- a/packages/components/aspect-ratio/src/stories/AspectRatioDemo.vue +++ b/packages/components/aspect-ratio/src/stories/AspectRatioDemo.vue @@ -17,7 +17,6 @@ withDefaults(defineProps(), { const root = ref() onMounted(() => { - // eslint-disable-next-line no-console console.log(root.value?.$el) }) diff --git a/packages/components/avatar/src/avatar.ts b/packages/components/avatar/src/avatar.ts index 20f66a45a..841a9348e 100644 --- a/packages/components/avatar/src/avatar.ts +++ b/packages/components/avatar/src/avatar.ts @@ -1,9 +1,8 @@ -import type { PropType } from 'vue' import { defineComponent, h, ref } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' import { Primitive } from '@oku-ui/primitive' import type { Scope } from '@oku-ui/provide' -import { createProvideScope } from '@oku-ui/provide' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' import { useForwardRef } from '@oku-ui/use-composable' const AVATAR_NAME = 'Avatar' @@ -30,8 +29,7 @@ const Avatar = defineComponent({ inheritAttrs: false, props: { scopeAvatar: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, }, setup(props, { attrs, slots }) { diff --git a/packages/components/avatar/src/avatarFallback.ts b/packages/components/avatar/src/avatarFallback.ts index 657e7e319..0e8f76f43 100644 --- a/packages/components/avatar/src/avatarFallback.ts +++ b/packages/components/avatar/src/avatarFallback.ts @@ -1,8 +1,7 @@ -import type { PropType } from 'vue' import { defineComponent, h, onMounted, ref, watchEffect } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' import { Primitive } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { ScopePropObject } from '@oku-ui/provide' import { useForwardRef } from '@oku-ui/use-composable' import { useAvatarInject } from './avatar' @@ -24,8 +23,7 @@ const AvatarFallback = defineComponent({ required: false, }, scopeAvatar: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, }, setup(props, { attrs, slots }) { @@ -54,7 +52,7 @@ const AvatarFallback = defineComponent({ }) const originalReturn = () => { - return (canRender.value && (provide.value.imageLoadingStatus !== 'loaded')) + return (canRender.value && (provide.imageLoadingStatus !== 'loaded')) ? h( Primitive.span, { ...fallbackProps, diff --git a/packages/components/avatar/src/avatarImage.ts b/packages/components/avatar/src/avatarImage.ts index c6203c0a2..1a1532877 100644 --- a/packages/components/avatar/src/avatarImage.ts +++ b/packages/components/avatar/src/avatarImage.ts @@ -47,7 +47,7 @@ const AvatarImage = defineComponent({ const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => { props.onLoadingStatusChange(status) - inject.value.onImageLoadingStatusChange(status) + inject.onImageLoadingStatusChange(status) }) onMounted(() => { diff --git a/packages/components/checkbox/src/checkbox.ts b/packages/components/checkbox/src/checkbox.ts index 961357604..9a5a03c59 100644 --- a/packages/components/checkbox/src/checkbox.ts +++ b/packages/components/checkbox/src/checkbox.ts @@ -1,4 +1,4 @@ -import { createProvideScope } from '@oku-ui/provide' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' import type { PropType, Ref } from 'vue' import { computed, defineComponent, h, ref, toRefs, watchEffect } from 'vue' @@ -14,7 +14,7 @@ import { OkuBubbleInput } from './bubbleInput' const CHECKBOX_NAME = 'OkuCheckbox' -const [createCheckboxProvider, _createCheckboxScope] = createProvideScope(CHECKBOX_NAME) +const [createCheckboxProvider, createCheckboxScope] = createProvideScope(CHECKBOX_NAME) type CheckboxInjectValue = { state: Ref @@ -62,14 +62,12 @@ const Checkbox = defineComponent({ default: undefined, }, scopeCheckbox: { - type: Object as unknown as PropType, - required: false, - default: undefined, + ...ScopePropObject, }, }, emits: ['update:checked', 'update:modelValue'], setup(props, { attrs, slots, emit }) { - const { checked: checkedProp, scopeCheckbox, defaultChecked, required } = toRefs(props) + const { checked: checkedProp, defaultChecked, required } = toRefs(props) const buttonRef = ref | null>(null) const forwardedRef = useForwardRef() @@ -109,7 +107,7 @@ const Checkbox = defineComponent({ }) CheckboxProvider({ - scope: scopeCheckbox.value as Scope, + scope: props.scopeCheckbox, state, disabled: disabled as boolean, }) @@ -189,6 +187,7 @@ const OkuCheckbox = Checkbox as typeof Checkbox & (new () => { $props: _OkuCheck export { OkuCheckbox, + createCheckboxScope, } export type { diff --git a/packages/components/checkbox/src/checkboxIndicator.ts b/packages/components/checkbox/src/checkboxIndicator.ts index d25697236..5686113c1 100644 --- a/packages/components/checkbox/src/checkboxIndicator.ts +++ b/packages/components/checkbox/src/checkboxIndicator.ts @@ -1,4 +1,3 @@ -import type { PropType } from 'vue' import { Transition, defineComponent, h, toRefs } from 'vue' import { useForwardRef } from '@oku-ui/use-composable' @@ -6,7 +5,7 @@ import { Primitive } from '@oku-ui/primitive' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { ScopePropObject } from '@oku-ui/provide' import { getState, isIndeterminate } from './utils' import { useCheckboxInject } from './checkbox' @@ -24,25 +23,24 @@ const CheckboxIndicator = defineComponent({ components: { Transition }, props: { scopeCheckbox: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, forceMount: Boolean, }, setup(props, { attrs, slots }) { - const { scopeCheckbox, forceMount } = toRefs(props) + const { forceMount } = toRefs(props) const { ...indicatorProps } = attrs as CheckboxIndicatorElement const forwardedRef = useForwardRef() - const context = useCheckboxInject(INDICATOR_NAME, scopeCheckbox.value) + const context = useCheckboxInject(INDICATOR_NAME, props.scopeCheckbox) const originalReturn = () => h(Transition, {}, { - default: () => (forceMount.value || isIndeterminate(context.value.state.value) || context.value.state.value === true) + default: () => (forceMount.value || isIndeterminate(context.state.value) || context.state.value === true) ? h(Primitive.span, { 'ref': forwardedRef, - 'data-state': getState(context.value.state.value), - 'data-disabled': context.value.disabled ? '' : undefined, + 'data-state': getState(context.state.value), + 'data-disabled': context.disabled ? '' : undefined, ...indicatorProps, 'style': { pointerEvents: 'none', ...attrs.style as any }, }, diff --git a/packages/components/checkbox/src/index.ts b/packages/components/checkbox/src/index.ts index e78962c15..5e6dd56a5 100644 --- a/packages/components/checkbox/src/index.ts +++ b/packages/components/checkbox/src/index.ts @@ -1,4 +1,7 @@ -export { OkuCheckbox } from './checkbox' +export { + OkuCheckbox, + createCheckboxScope, +} from './checkbox' export type { CheckboxProps, diff --git a/packages/components/collapsible/src/collapsible.ts b/packages/components/collapsible/src/collapsible.ts index 5165dedcf..69f09f4b8 100644 --- a/packages/components/collapsible/src/collapsible.ts +++ b/packages/components/collapsible/src/collapsible.ts @@ -1,9 +1,8 @@ -import type { PropType, Ref } from 'vue' +import type { ComputedRef, PropType, Ref } from 'vue' import { computed, defineComponent, h, toRefs, useModel } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' -import { createProvideScope } from '@oku-ui/provide' -import { Primitive } from '@oku-ui/primitive' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useControllable, useForwardRef, useId } from '@oku-ui/use-composable' import { getState } from './utils' @@ -16,12 +15,12 @@ export type _CollapsibleEl = HTMLDivElement type CollapsibleProvideValue = { contentId: string disabled?: Ref - open: Ref + open: ComputedRef onOpenToggle(): void } const COLLAPSIBLE_NAME = 'Collapsible' -export const [createCollapsibleProvide, _createCollapsibleScope] = createProvideScope(COLLAPSIBLE_NAME) +export const [createCollapsibleProvide, createCollapsibleScope] = createProvideScope(COLLAPSIBLE_NAME) export const [collapsibleProvider, useCollapsibleInject] = createCollapsibleProvide(COLLAPSIBLE_NAME) @@ -45,22 +44,18 @@ const Collapsible = defineComponent({ type: Boolean, default: false, }, - scopeCollapsible: { - type: Object as unknown as PropType, - required: false, - }, onOpenChange: { type: Function as PropType<(open: boolean) => void>, }, - asChild: { - type: Boolean, - default: undefined, + ...PrimitiveProps, + scopeCollapsible: { + ...ScopePropObject, }, }, emits: ['update:open', 'update:modelValue'], setup(props, { attrs, slots, emit }) { const { ...collapsibleAttr } = attrs as CollapsibleElement - const { disabled, scopeCollapsible, open, defaultOpen } = toRefs(props) + const { disabled, open, defaultOpen } = toRefs(props) const modelValue = useModel(props, 'modelValue') @@ -81,8 +76,8 @@ const Collapsible = defineComponent({ onOpenToggle() { updateValue(!state.value) }, - scope: scopeCollapsible.value, - open: state as Ref, + scope: props.scopeCollapsible, + open: computed(() => state.value || false), }) const originalReturn = () => h( diff --git a/packages/components/collapsible/src/collapsibleContent.ts b/packages/components/collapsible/src/collapsibleContent.ts index b816a9681..ecde0afda 100644 --- a/packages/components/collapsible/src/collapsibleContent.ts +++ b/packages/components/collapsible/src/collapsibleContent.ts @@ -1,10 +1,10 @@ -import type { PropType } from 'vue' +import type { ComputedRef } from 'vue' import { Transition, defineComponent, h, toRefs } from 'vue' -import type { Scope } from '@oku-ui/provide' import { useForwardRef } from '@oku-ui/use-composable' -import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' +import { type ElementType, type IPrimitiveProps, type InstanceTypeRef, type MergeProps, PrimitiveProps } from '@oku-ui/primitive' import { OkuPresence } from '@oku-ui/presence' +import { ScopePropObject } from '@oku-ui/provide' import { OkuCollapsibleContentImpl } from './collapsibleContentImpl' import { useCollapsibleInject } from './collapsible' @@ -33,16 +33,12 @@ const CollapsibleContent = defineComponent({ default: true, }, scopeCollapsible: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: undefined, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { - const { scopeCollapsible } = toRefs(props) + const { scopeCollapsible, forceMount } = toRefs(props) const { ...contentProps } = attrs as CollapsibleContentElement const context = useCollapsibleInject(CONTENT_NAME, scopeCollapsible.value) @@ -53,16 +49,17 @@ const CollapsibleContent = defineComponent({ const originalReturn = () => h( OkuPresence, { - present: props.forceMount || context.value.open.value, + present: forceMount.value || context.open.value, }, { - default: () => h( + default: ({ isPresent }: { isPresent: ComputedRef }) => h( OkuCollapsibleContentImpl, { ...contentProps, ref: forwardedRef, asChild: props.asChild, scopeCollapsible: scopeCollapsible.value, + present: isPresent, }, { default: () => slots.default && slots.default(), diff --git a/packages/components/collapsible/src/collapsibleContentImpl.ts b/packages/components/collapsible/src/collapsibleContentImpl.ts index 0e5293bd8..b1db7f176 100644 --- a/packages/components/collapsible/src/collapsibleContentImpl.ts +++ b/packages/components/collapsible/src/collapsibleContentImpl.ts @@ -1,8 +1,8 @@ import type { PropType, Ref } from 'vue' import { computed, defineComponent, h, nextTick, onMounted, ref, toRefs, watch, watchEffect } from 'vue' import type { ComponentPublicInstanceRef, ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' -import { Primitive } from '@oku-ui/primitive' +import { ScopePropObject } from '@oku-ui/provide' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useComposedRefs, useForwardRef } from '@oku-ui/use-composable' import { useCollapsibleInject } from './collapsible' @@ -21,18 +21,14 @@ const CollapsibleContentImpl = defineComponent({ type: Object as unknown as PropType>, }, scopeCollapsible: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: undefined, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { - const { scopeCollapsible, present, asChild } = toRefs(props) + const { present, asChild } = toRefs(props) const { ...contentAttrs } = attrs as CollapsibleContentImplElement - const context = useCollapsibleInject(CONTENT_NAME, scopeCollapsible.value) + const context = useCollapsibleInject(CONTENT_NAME, props.scopeCollapsible) const _ref = ref | undefined>(undefined) const forwardedRef = useForwardRef() @@ -44,7 +40,7 @@ const CollapsibleContentImpl = defineComponent({ const width = computed(() => widthRef.value) const isPresent = ref(present?.value?.value) - const isOpen = computed(() => context.value.open.value || isPresent.value) + const isOpen = computed(() => context.open.value || isPresent.value) const isMountAnimationPreventedRef = ref(isOpen.value) const originalStylesRef = ref>() @@ -85,9 +81,9 @@ const CollapsibleContentImpl = defineComponent({ const originalReturn = () => h( Primitive.div, { - 'data-state': getState(context.value.open.value), - 'data-disabled': context.value.disabled?.value ? '' : undefined, - 'id': context.value.contentId, + 'data-state': getState(context.open.value), + 'data-disabled': context.disabled?.value ? '' : undefined, + 'id': context.contentId, 'hidden': !isOpen.value, ...contentAttrs, 'ref': composedRefs, diff --git a/packages/components/collapsible/src/collapsibleTrigger.ts b/packages/components/collapsible/src/collapsibleTrigger.ts index c1b752290..0ba61f20f 100644 --- a/packages/components/collapsible/src/collapsibleTrigger.ts +++ b/packages/components/collapsible/src/collapsibleTrigger.ts @@ -1,11 +1,10 @@ -import type { PropType } from 'vue' -import { defineComponent, h, toRefs } from 'vue' -import type { Scope } from '@oku-ui/provide' +import { defineComponent, h } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { composeEventHandlers } from '@oku-ui/utils' import { useForwardRef } from '@oku-ui/use-composable' +import { ScopePropObject } from '@oku-ui/provide' import { useCollapsibleInject } from './collapsible' import { getState } from './utils' @@ -21,18 +20,13 @@ const CollapsibleTrigger = defineComponent({ inheritAttrs: false, props: { scopeCollapsible: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: undefined, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { - const { scopeCollapsible } = toRefs(props) const { ...triggerProps } = attrs as CollapsibleTriggerElement - const context = useCollapsibleInject(TRIGGER_NAME, scopeCollapsible.value) + const context = useCollapsibleInject(TRIGGER_NAME, props.scopeCollapsible) const forwardedRef = useForwardRef() @@ -40,15 +34,15 @@ const CollapsibleTrigger = defineComponent({ Primitive.button, { 'type': 'button', - 'aria-controls': context.value.contentId, - 'aria-expanded': context.value.open.value || false, - 'data-state': getState(context.value.open.value || false), - 'data-disabled': context.value.disabled?.value ? '' : undefined, - 'disabled': context.value.disabled?.value, + 'aria-controls': context.contentId, + 'aria-expanded': context.open.value || false, + 'data-state': getState(context.open.value || false), + 'data-disabled': context.disabled?.value ? '' : undefined, + 'disabled': context.disabled?.value, ...triggerProps, 'asChild': props.asChild, 'ref': forwardedRef, - 'onClick': composeEventHandlers(triggerProps.onClick, context.value.onOpenToggle), + 'onClick': composeEventHandlers(triggerProps.onClick, context.onOpenToggle), }, { default: () => slots.default && slots.default(), diff --git a/packages/components/collapsible/src/index.ts b/packages/components/collapsible/src/index.ts index 35753124e..b4472e9ff 100644 --- a/packages/components/collapsible/src/index.ts +++ b/packages/components/collapsible/src/index.ts @@ -5,7 +5,10 @@ export type { _CollapsibleEl, } from './collapsible' -export { OkuCollapsible } from './collapsible' +export { + OkuCollapsible, + createCollapsibleScope, +} from './collapsible' export { OkuCollapsibleContent, diff --git a/packages/components/collection/src/collection.ts b/packages/components/collection/src/collection.ts index 5a02c7623..9c29ff82b 100644 --- a/packages/components/collection/src/collection.ts +++ b/packages/components/collection/src/collection.ts @@ -1,11 +1,11 @@ import type { AllowedComponentProps, ComponentCustomProps, ComponentObjectPropsOptions, ComponentPublicInstance, Ref, VNodeProps } from 'vue' -import { computed, createVNode, defineComponent, h, ref, watchEffect } from 'vue' +import { computed, defineComponent, h, ref, watchEffect } from 'vue' import { useComposedRefs, useForwardRef } from '@oku-ui/use-composable' import { createProvideScope } from '@oku-ui/provide' import { OkuSlot } from '@oku-ui/slot' const CollectionProps = { - scope: { type: null as any, required: false }, + scope: { type: null, required: false }, } interface CollectionPropsType { scope: any @@ -79,7 +79,7 @@ function createCollection(name: string, Item setup(props, { slots }) { const inject = useCollectionInject(COLLECTION_SLOT_NAME, props.scope) const forwaredRef = useForwardRef() - const composedRefs = useComposedRefs(forwaredRef, inject.value.collectionRef) + const composedRefs = useComposedRefs(forwaredRef, inject.collectionRef) return () => h(OkuSlot, { ref: composedRefs }, slots) }, }) @@ -110,14 +110,14 @@ function createCollection(name: string, Item const inject = useCollectionInject(ITEM_SLOT_NAME, scope) watchEffect((onClean) => { - inject.value.itemMap.value.set(refValue, { ref: refValue, ...(itemData as any), ...attrs }) + inject.itemMap.value.set(refValue, { ref: refValue, ...(itemData as any), ...attrs }) onClean(() => { - inject.value.itemMap.value.delete(refValue) + inject.itemMap.value.delete(refValue) }) }) - return () => createVNode(OkuSlot, { ref: composedRefs, ...{ [ITEM_DATA_ATTR]: '' } }, slots) + return () => h(OkuSlot, { ref: composedRefs, ...{ [ITEM_DATA_ATTR]: '' } }, slots) }, }) @@ -136,13 +136,13 @@ function createCollection(name: string, Item function useCollection(scope: any) { const inject = useCollectionInject(`${name}CollectionConsumer`, scope) const getItems = computed(() => { - const collectionNode = inject.value.collectionRef.value?.$el + const collectionNode = inject.collectionRef.value?.$el if (!collectionNode) return [] const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)) - const items = Array.from(inject.value.itemMap.value.values()) + const items = Array.from(inject.itemMap.value.values()) const orderedItems = items.sort( (a, b) => { return orderedNodes.indexOf(a.ref.$el!) - orderedNodes.indexOf(b.ref.$el!) diff --git a/packages/components/collection/src/stories/CollectionDemo.vue b/packages/components/collection/src/stories/CollectionDemo.vue index 426ce92da..eab2c0603 100644 --- a/packages/components/collection/src/stories/CollectionDemo.vue +++ b/packages/components/collection/src/stories/CollectionDemo.vue @@ -24,7 +24,7 @@ const alert = () => window.alert('clicked') function LogsItem() { const getItems = useCollection(undefined) - console.log(getItems.value[0].ref.value) + console.log(getItems.value) } diff --git a/packages/components/direction/src/Direction.ts b/packages/components/direction/src/Direction.ts index 55094db59..fe4625e6d 100644 --- a/packages/components/direction/src/Direction.ts +++ b/packages/components/direction/src/Direction.ts @@ -10,7 +10,10 @@ const DirectionContextSymbol = Symbol('DirectionContext') const DirectionProvider = defineComponent({ name: 'DirectionProvider', props: { - dir: { type: String as PropType, required: true }, + dir: { + type: String as PropType, + required: true, + }, }, setup(props, { slots }) { // Direction context diff --git a/packages/components/label/src/label.ts b/packages/components/label/src/label.ts index 900153b24..f7a8b9a7a 100644 --- a/packages/components/label/src/label.ts +++ b/packages/components/label/src/label.ts @@ -1,6 +1,6 @@ import { defineComponent, h } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useForwardRef } from '@oku-ui/use-composable' type LabelElement = ElementType<'label'> @@ -12,6 +12,9 @@ const NAME = 'Label' const label = defineComponent({ name: NAME, inheritAttrs: false, + props: { + ...PrimitiveProps, + }, setup(props, { attrs, slots }) { const { ...restAttrs } = attrs as LabelElement @@ -20,6 +23,7 @@ const label = defineComponent({ const originalReturn = () => h(Primitive.label, { ...restAttrs, ref: forwardedRef, + asChild: props.asChild, onMousedown: (event: MouseEvent) => { restAttrs.onMousedown?.(event) // prevent text selection when double clicking label diff --git a/packages/components/popper/src/index.ts b/packages/components/popper/src/index.ts index cabb488ed..1ee690ab1 100644 --- a/packages/components/popper/src/index.ts +++ b/packages/components/popper/src/index.ts @@ -1,5 +1,6 @@ export { OkuPopper, + createPopperScope, } from './popper' export type { diff --git a/packages/components/popper/src/popper.ts b/packages/components/popper/src/popper.ts index 606566aae..4aec0504d 100644 --- a/packages/components/popper/src/popper.ts +++ b/packages/components/popper/src/popper.ts @@ -1,9 +1,9 @@ -import type { PropType, Ref } from 'vue' -import { defineComponent, ref, toRefs } from 'vue' +import type { Ref } from 'vue' +import { defineComponent, ref } from 'vue' import type { Measurable } from '@oku-ui/utils' import type { Scope } from '@oku-ui/provide' -import { createProvideScope } from '@oku-ui/provide' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' /* ------------------------------------------------------------------------------------------------- * Popper @@ -11,7 +11,7 @@ import { createProvideScope } from '@oku-ui/provide' const POPPER_NAME = 'Popper' -export const [createPopperProvider, _createPopperScope] +export const [createPopperProvider, createPopperScope] = createProvideScope(POPPER_NAME) export type PopperInjectValue = { @@ -31,17 +31,14 @@ const Popper = defineComponent({ inheritAttrs: false, props: { scopeCheckbox: { - type: Object as unknown as PropType, - required: false, - default: undefined, + ...ScopePropObject, }, }, setup(props, { slots }) { - const { scopeCheckbox } = toRefs(props) const anchor = ref(null) PopperProvider({ - scope: scopeCheckbox.value as Scope, + scope: props.scopeCheckbox, anchor, onAnchorChange(_anchor: Measurable | null) { anchor.value = _anchor diff --git a/packages/components/popper/src/popperAnchor.ts b/packages/components/popper/src/popperAnchor.ts index 343f46950..53f81a50b 100644 --- a/packages/components/popper/src/popperAnchor.ts +++ b/packages/components/popper/src/popperAnchor.ts @@ -9,8 +9,8 @@ import type { MergeProps, } from '@oku-ui/primitive' import type { Measurable } from '@oku-ui/utils' -import type { Scope } from '@oku-ui/provide' -import { Primitive } from '@oku-ui/primitive' +import { type Scope, ScopePropObject } from '@oku-ui/provide' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useComposedRefs, useForwardRef } from '@oku-ui/use-composable' import { usePopperInject } from './popper' @@ -38,25 +38,20 @@ const PopperAnchor = defineComponent({ default: undefined, }, scopeCheckbox: { - type: Object as unknown as PropType, - required: false, - default: undefined, - }, - asChild: { - type: Boolean, - default: false, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { - const { virtualRef, scopeCheckbox } = toRefs(props) + const { virtualRef } = toRefs(props) const { ...attrsAnchor } = attrs as PopperAnchorElement - const inject = usePopperInject(ANCHOR_NAME, scopeCheckbox.value) + const inject = usePopperInject(ANCHOR_NAME, props.scopeCheckbox) const _ref = ref | null>(null) const composedRefs = useComposedRefs(_ref, useForwardRef()) watch(_ref, () => { - inject.value.anchor.value + inject.anchor.value = virtualRef.value?.value || (_ref.value?.$el as Measurable) }) diff --git a/packages/components/popper/src/popperArrow.ts b/packages/components/popper/src/popperArrow.ts index 18bae9d4c..da1dc94ab 100644 --- a/packages/components/popper/src/popperArrow.ts +++ b/packages/components/popper/src/popperArrow.ts @@ -1,4 +1,3 @@ -import type { PropType } from 'vue' import { computed, defineComponent, h } from 'vue' import type { @@ -7,7 +6,7 @@ import type { InstanceTypeRef, MergeProps, } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { type Scope, ScopePropObject } from '@oku-ui/provide' import type { ArrowProps, _ArrowEl } from '@oku-ui/arrow' import { OkuArrow } from '@oku-ui/arrow' import { useForwardRef } from '@oku-ui/use-composable' @@ -32,15 +31,14 @@ const PopperArrow = defineComponent({ name: ARROW_NAME, props: { scopePopper: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, }, setup(props, { attrs }) { const { ...attrsElement } = attrs as PopperArrowElement const contentInject = usePopperContentInject(ARROW_NAME, props.scopePopper) const baseSide = computed(() => { - return OPPOSITE_SIDE[contentInject.value.placedSide.value] + return OPPOSITE_SIDE[contentInject.placedSide.value] }) const forwardedRef = useForwardRef() @@ -50,27 +48,27 @@ const PopperArrow = defineComponent({ 'span', { ref: (el: any) => { - contentInject.value.onAnchorChange(el) + contentInject.onAnchorChange(el) return undefined }, style: { position: 'absolute', - left: contentInject.value.arrowX?.value, - top: contentInject.value.arrowY?.value, + left: contentInject.arrowX?.value, + top: contentInject.arrowY?.value, [baseSide.value]: '0px', transformOrigin: { top: '', right: '0px 0px', bottom: 'center 0px', left: '100% 0px', - }[contentInject.value.placedSide.value], + }[contentInject.placedSide.value], transform: { top: 'translateY(100%)', right: 'translateY(50%) rotate(90deg) translateX(-50%)', bottom: 'rotate(180deg)', left: 'translateY(50%) rotate(-90deg) translateX(50%)', - }[contentInject.value.placedSide.value], - visibility: contentInject.value.shouldHideArrow.value + }[contentInject.placedSide.value], + visibility: contentInject.shouldHideArrow.value ? 'hidden' : undefined, }, diff --git a/packages/components/popper/src/popperContent.ts b/packages/components/popper/src/popperContent.ts index 51babdc03..b58731087 100644 --- a/packages/components/popper/src/popperContent.ts +++ b/packages/components/popper/src/popperContent.ts @@ -1,9 +1,9 @@ import type { PropType, Ref, StyleValue } from 'vue' import { computed, defineComponent, h, onMounted, ref, toRefs, watch, watchEffect } from 'vue' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import type { ComponentPublicInstanceRef, ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { ScopePropObject } from '@oku-ui/provide' import { computedEager, useCallbackRef, useComposedRefs, useForwardRef, useSize } from '@oku-ui/use-composable' import { autoUpdate, flip, arrow as floatingUIarrow, hide, limitShift, offset, shift, size, useFloating } from '@floating-ui/vue' import type { @@ -118,13 +118,9 @@ const PopperContent = defineComponent({ default: undefined, }, scopePopper: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: false, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { const { @@ -140,12 +136,11 @@ const PopperContent = defineComponent({ hideWhenDetached, updatePositionStrategy, onPlaced, - scopePopper, } = toRefs(props) const { ...attrsElement } = attrs as PopperContentElement - const inject = usePopperInject(CONTENT_NAME, scopePopper.value) + const inject = usePopperInject(CONTENT_NAME, props.scopePopper) const content = ref | null>(null) const composedRefs = useComposedRefs(content, useForwardRef()) @@ -207,7 +202,7 @@ const PopperContent = defineComponent({ }) const refElement = ref() - const { x, y, placement, isPositioned, middlewareData, update, strategy } = useFloating(inject.value.anchor, refElement, { + const { x, y, placement, isPositioned, middlewareData, update, strategy } = useFloating(inject.anchor, refElement, { // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues strategy: 'fixed', placement: desiredPlacement, @@ -260,14 +255,14 @@ const PopperContent = defineComponent({ PopperContentProvider({ arrowX, arrowY, - scope: scopePopper.value, + scope: props.scopePopper, shouldHideArrow: cannotCenterArrow, onAnchorChange(anchor: HTMLElement | null) { arrow.value = anchor }, arrow, placedSide, - anchor: inject.value.anchor, + anchor: inject.anchor, }) const originalReturn = () => diff --git a/packages/components/presence/package.json b/packages/components/presence/package.json index 5d0591e41..0e73b424a 100644 --- a/packages/components/presence/package.json +++ b/packages/components/presence/package.json @@ -36,7 +36,6 @@ "vue": "^3.3.0" }, "dependencies": { - "@oku-ui/primitive": "latest", "@oku-ui/use-composable": "latest", "@oku-ui/utils": "latest" }, diff --git a/packages/components/presence/src/presence.test.ts b/packages/components/presence/src/presence.test.ts index f1731232d..11a22de44 100644 --- a/packages/components/presence/src/presence.test.ts +++ b/packages/components/presence/src/presence.test.ts @@ -33,6 +33,7 @@ describe('presence', async () => { }, } as Component const wrapper = mount(component, {}) + expect(wrapper.html()).toContain(`
`) @@ -66,12 +67,12 @@ describe('presence', async () => { } }, } as Component + const wrapper = mount(component, {}) await wrapper.find('button').trigger('click') - // present="[object Object] because of the ref expect(wrapper.html()).toContain(`
-
content
+
content
`) }) @@ -103,16 +104,52 @@ describe('presence', async () => { } }, } as Component + const wrapper = mount(component, {}) expect(wrapper.html()).toContain(`
`) await wrapper.find('button').trigger('click') - - // present="[object Object] because of the ref expect(wrapper.html()).toContain(`
-
content
+
content
+
`) + }) + + it('close content', async () => { + const component = { + components: { + OkuPresence, + }, + template: ` +
+ + +
+ content - {{ isPresent }} +
+
+
+ `, + setup() { + const open = ref(false) + const toggle = () => { + open.value = !open.value + } + return { + open, + toggle, + } + }, + } as Component + const wrapper = mount(component, {}) + + expect(wrapper.html()).toContain(`
+
content - { + "isPresent": true + }
`) }) diff --git a/packages/components/presence/src/presence.ts b/packages/components/presence/src/presence.ts index 22338e611..958093b2e 100644 --- a/packages/components/presence/src/presence.ts +++ b/packages/components/presence/src/presence.ts @@ -1,6 +1,5 @@ -import type { Directive } from 'vue' -import { defineComponent, h, ref, toRefs, withDirectives } from 'vue' -import { syncRef } from '@oku-ui/use-composable' +import { defineComponent, h, toRefs } from 'vue' +import { useComposedRefs, useForwardRef } from '@oku-ui/use-composable' import { usePresence } from './usePresence' interface PresenceProps { @@ -18,53 +17,24 @@ const presence = defineComponent({ default: false, }, }, - setup(props, { slots, attrs }) { + setup(props, { slots }) { const { present } = toRefs(props) - const elementRef = ref() - const element: Directive = { - created(el) { - const { isPresent } = usePresence(present, el) - syncRef(isPresent, elementRef, { direction: 'ltr' }) - }, - } + const forwardedRef = useForwardRef() + const { isPresent, ref: presenceRef } = usePresence(present) + const composedRefs = useComposedRefs(presenceRef, forwardedRef) return () => { - const children = slots.default?.() - - if (children?.length === 1) { - const [firstChild] = children || [] - - const directVNodeChildren = withDirectives( - h( - firstChild, - { - present, - ...attrs, - }, - ), - [ - [element], - ]) - - return present.value ? directVNodeChildren : null - } - else { - throw new Error( - [ - `Now you can only pass one child to \`${NAME}\`.`, - '', - 'Note: All components accepting `Presence` expect only one direct child of valid VNode type.', - 'You can apply a few solutions:', - [ - 'Provide a single child element so that we can forward the props onto that element.', - 'Ensure the first child is an actual element instead of a raw text node or comment node.', - ] - .map(line => ` - ${line}`) - .join('\n'), - ].join('\n'), - ) - } + const ddd = slots.default?.({ + isPresent, + }) + const [child] = ddd ?? [] + + return isPresent.value + ? h(child, { + ref: composedRefs, + }) + : null } }, }) diff --git a/packages/components/presence/src/stories/PresenceDemo.vue b/packages/components/presence/src/stories/PresenceDemo.vue index d121a9328..fd0833166 100644 --- a/packages/components/presence/src/stories/PresenceDemo.vue +++ b/packages/components/presence/src/stories/PresenceDemo.vue @@ -18,7 +18,7 @@ function toggle() { open.value = !open.value } -const element = ref() +const element = ref() watch(element, () => { console.log('element', element.value) @@ -44,9 +44,9 @@ function handleToggleVisibility() { - +
- content + content - {{ isPresent }}
diff --git a/packages/components/presence/src/usePresence.ts b/packages/components/presence/src/usePresence.ts index f941051a9..1f683bf88 100644 --- a/packages/components/presence/src/usePresence.ts +++ b/packages/components/presence/src/usePresence.ts @@ -1,11 +1,13 @@ import { type Ref, computed, nextTick, ref, watch } from 'vue' +import { isValidVNodeElement } from '@oku-ui/utils' import { useStateMachine } from './useStateMachine' function getAnimationName(styles?: CSSStyleDeclaration) { return styles?.animationName || 'none' } -export function usePresence(present: Ref, el: HTMLElement) { +export function usePresence(present: Ref) { + const el = ref(undefined) const stylesRef = ref({} as any) const prevPresentRef = ref(present.value) const prevAnimationNameRef = ref('none') @@ -69,8 +71,8 @@ export function usePresence(present: Ref, el: HTMLElement) { } }) - watch(() => el, () => { - if (el) { + watch(el, () => { + if (el.value) { /** * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel` * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we @@ -81,7 +83,7 @@ export function usePresence(present: Ref, el: HTMLElement) { const isCurrentAnimation = currentAnimationName.includes( event.animationName, ) - if (event.target === el && isCurrentAnimation) { + if (event.target === el.value && isCurrentAnimation) { // With React 18 concurrency this update is applied // a frame after the animation ends, creating a flash of visible content. // By manually flushing we ensure they sync within a frame, removing the flash. @@ -89,19 +91,19 @@ export function usePresence(present: Ref, el: HTMLElement) { } } const handleAnimationStart = (event: AnimationEvent) => { - if (event.target === el) + if (event.target === el.value) // if animation occurred, store its name as the previous animation. prevAnimationNameRef.value = getAnimationName(stylesRef.value) } - el.addEventListener('animationstart', handleAnimationStart) - el.addEventListener('animationcancel', handleAnimationEnd) - el.addEventListener('animationend', handleAnimationEnd) + el.value.addEventListener('animationstart', handleAnimationStart) + el.value.addEventListener('animationcancel', handleAnimationEnd) + el.value.addEventListener('animationend', handleAnimationEnd) return () => { - if (el) { - el.removeEventListener('animationstart', handleAnimationStart) - el.removeEventListener('animationcancel', handleAnimationEnd) - el.removeEventListener('animationend', handleAnimationEnd) + if (el.value) { + el.value.removeEventListener('animationstart', handleAnimationStart) + el.value.removeEventListener('animationcancel', handleAnimationEnd) + el.value.removeEventListener('animationend', handleAnimationEnd) } } } @@ -116,10 +118,28 @@ export function usePresence(present: Ref, el: HTMLElement) { ['mounted', 'unmountSuspended'].includes(state.value), ) - if (el) - stylesRef.value = getComputedStyle(el) + if (el.value) + stylesRef.value = getComputedStyle(el.value) return { isPresent, + ref: computed({ + get() { + return el.value + }, + set(node: any) { + if (!isValidVNodeElement(node)) + return + // node is ComponentPublicInstance + if (node && node.$el) { + stylesRef.value = getComputedStyle(node.$el) + el.value = node.$el as HTMLElement + } + else if (node) { + stylesRef.value = getComputedStyle(node) + el.value = node as HTMLElement + } + }, + }), } } diff --git a/packages/components/presence/tsup.config.ts b/packages/components/presence/tsup.config.ts index a2f7a0d8b..02745fc07 100644 --- a/packages/components/presence/tsup.config.ts +++ b/packages/components/presence/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,7 +16,7 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, + clean: isClean, target: 'node16', format: ['esm'], outExtension: () => ({ js: '.mjs' }), diff --git a/packages/components/progress/src/progress.ts b/packages/components/progress/src/progress.ts index eb4d97919..98afbd914 100644 --- a/packages/components/progress/src/progress.ts +++ b/packages/components/progress/src/progress.ts @@ -1,7 +1,7 @@ import type { ElementType, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import type { Scope } from '@oku-ui/provide' -import { createProvideScope } from '@oku-ui/provide' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' import type { ComputedRef, PropType } from 'vue' import { computed, defineComponent, h, toRefs } from 'vue' import { useForwardRef } from '@oku-ui/use-composable' @@ -57,9 +57,9 @@ const Progress = defineComponent({ default: defaultGetValueLabel, }, scopeProgress: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { const { value, max, getValueLabel, scopeProgress } = toRefs(props) @@ -110,6 +110,7 @@ const Progress = defineComponent({ 'data-max': maxProp.value, ...progressProps, 'ref': forwardedRef, + 'asChild': props.asChild, }, { default: () => slots.default?.(), diff --git a/packages/components/progress/src/progressIndicator.ts b/packages/components/progress/src/progressIndicator.ts index 458de0ece..a851949d2 100644 --- a/packages/components/progress/src/progressIndicator.ts +++ b/packages/components/progress/src/progressIndicator.ts @@ -1,4 +1,3 @@ -import type { PropType } from 'vue' import { defineComponent, h } from 'vue' import type { ElementType, @@ -6,7 +5,7 @@ import type { InstanceTypeRef, MergeProps, } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { type Scope, ScopePropObject } from '@oku-ui/provide' import { useForwardRef } from '@oku-ui/use-composable' import { getProgressState } from './utils' import { useProgressContext } from './progress' @@ -24,28 +23,26 @@ const ProgressIndicator = defineComponent({ inheritAttrs: true, props: { scopeProgress: { - type: Object as unknown as PropType, - required: false, + ...ScopePropObject, }, }, setup(props, { attrs, slots }) { - const { scopeProgress } = props const { ...indicatorProps } = attrs as ProgressIndicatorProps const forwardedRef = useForwardRef() - const context = useProgressContext(INDICATOR_NAME, scopeProgress) + const context = useProgressContext(INDICATOR_NAME, props.scopeProgress) const originalReturn = () => h( 'div', { 'data-state': getProgressState( - context.value.max.value, - context.value.value?.value, + context.max.value, + context.value?.value, ), - 'data-value': context.value.value?.value ?? undefined, - 'data-max': context.value.max.value, + 'data-value': context.value?.value ?? undefined, + 'data-max': context.max.value, ...indicatorProps, 'ref': forwardedRef, }, diff --git a/packages/components/roving-focus/src/RovingFocusGroup.ts b/packages/components/roving-focus/src/RovingFocusGroup.ts index 7a97892fb..0c5433c1d 100644 --- a/packages/components/roving-focus/src/RovingFocusGroup.ts +++ b/packages/components/roving-focus/src/RovingFocusGroup.ts @@ -1,13 +1,14 @@ import { createProvideScope } from '@oku-ui/provide' import type { CollectionPropsType } from '@oku-ui/collection' import { createCollection } from '@oku-ui/collection' -import type { Scope } from '@oku-ui/provide' -import type { ComputedRef, PropType } from 'vue' -import { createVNode, defineComponent, h, mergeProps } from 'vue' +import type { ComputedRef } from 'vue' +import { computed, defineComponent, h, mergeProps } from 'vue' import { useForwardRef } from '@oku-ui/use-composable' import type { MergeProps } from '@oku-ui/primitive' -import { IRovingFocusGroupImplProps, OkuRovingFocusGroupImpl } from './RovingFocusGroupImpl' +import { OkuRovingFocusGroupImpl, rovingFocusGroupImplProps } from './RovingFocusGroupImpl' import type { RovingFocusGroupImplElement, RovingFocusGroupImplPropsType, RovingFocusGroupOptions } from './RovingFocusGroupImpl' +import type { ScopedPropsInterface } from './types' +import { scopedProps } from './types' const GROUP_NAME = 'RovingFocusGroup' @@ -32,13 +33,6 @@ export const { CollectionItemSlot, CollectionProvider, CollectionSlot, useCollec }, }) -export type ScopedPropsInterface

= P & { scopeRovingFocusGroup?: Scope } -export const ScopedProps = { - scopeRovingFocusGroup: { - type: Object as PropType, - }, -} - const [createRovingFocusGroupProvide, createRovingFocusGroupScope] = createProvideScope( GROUP_NAME, [createCollectionScope], @@ -59,8 +53,8 @@ type RovingFocusGroupElement = RovingFocusGroupImplElement interface IRovingFocusGroup extends ScopedPropsInterface { } const RovingFocusGroupProps = { - ...IRovingFocusGroupImplProps, - ...ScopedProps, + ...rovingFocusGroupImplProps, + ...scopedProps, } const RovingFocusGroup = defineComponent({ @@ -76,15 +70,17 @@ const RovingFocusGroup = defineComponent({ setup(props, { slots, attrs }) { const forwardedRef = useForwardRef() return () => { - const mergedProps = mergeProps(attrs, props) + const mergedProps = computed(() => mergeProps(attrs, props)) + return h(CollectionProvider, { scope: props.scopeRovingFocusGroup, }, { default: () => h(CollectionSlot, { scope: props.scopeRovingFocusGroup, }, { - default: () => createVNode(OkuRovingFocusGroupImpl, { - ...mergedProps, + default: () => h(OkuRovingFocusGroupImpl, { + // ...refs, + ...mergedProps.value, ref: forwardedRef, }, slots), }), diff --git a/packages/components/roving-focus/src/RovingFocusGroupImpl.ts b/packages/components/roving-focus/src/RovingFocusGroupImpl.ts index 39395d33b..d4e74fad2 100644 --- a/packages/components/roving-focus/src/RovingFocusGroupImpl.ts +++ b/packages/components/roving-focus/src/RovingFocusGroupImpl.ts @@ -7,8 +7,9 @@ import type { ComponentPublicInstanceRef, ElementType, IPrimitiveProps, Instance import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { composeEventHandlers } from '@oku-ui/utils' import { type Direction, type Orientation, focusFirst } from './utils' -import type { ScopedPropsInterface } from './RovingFocusGroup' -import { ScopedProps, useCollection, useRovingFocusProvider } from './RovingFocusGroup' +import { useCollection, useRovingFocusProvider } from './RovingFocusGroup' +import type { ScopedPropsInterface } from './types' +import { scopedProps } from './types' const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus' const EVENT_OPTIONS = { bubbles: false, cancelable: true } @@ -68,22 +69,22 @@ export const RovingFocusGroupImplElementProps = { onBlur: Function as PropType<(e: FocusEvent) => void>, } -export const IRovingFocusGroupImplProps = { +export const rovingFocusGroupImplProps = { + ...scopedProps, ...RovingFocusGroupImplElementProps, ...RovingFocusGroupOptionsProps, - ...ScopedProps, } const RovingFocusGroupImpl = defineComponent({ name: 'OkuRovingFocusGroupImpl', inheritAttrs: false, - props: IRovingFocusGroupImplProps, + props: rovingFocusGroupImplProps, emits: { currentTabStopId: (tabStopId: string | null) => true, entryFocus: (event: Event) => true, currentTabStopIdChange: (tabStopId: string | null) => true, }, - setup(props, { attrs, slots, emit, expose }) { + setup(props, { attrs, slots, emit }) { const _attrs = attrs as Omit<_RovingFocusGroupImplEl, 'dir'> const { orientation, @@ -93,9 +94,9 @@ const RovingFocusGroupImpl = defineComponent({ defaultCurrentTabStopId, onEntryFocus, asChild, + scopeRovingFocusGroup, ...propsData } = toRefs(props) - const buttonRef = ref | null>(null) const forwardedRef = useForwardRef() const composedRefs = useComposedRefs(buttonRef, forwardedRef) @@ -168,10 +169,10 @@ const RovingFocusGroupImpl = defineComponent({ // We do this because Safari doesn't focus buttons when clicked, and // instead, the wrapper will get focused and not through a bubbling event. const isKeyboardFocus = !isClickFocusRef.value + if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut.value) { const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS) event.currentTarget?.dispatchEvent(entryFocusEvent) - if (!entryFocusEvent.defaultPrevented) { const items = getItems.value.filter(item => item.focusable) const activeItem = items.find(item => item.active) diff --git a/packages/components/roving-focus/src/RovingFocusGroupItem.ts b/packages/components/roving-focus/src/RovingFocusGroupItem.ts index 2e4e9837c..98ac11fa5 100644 --- a/packages/components/roving-focus/src/RovingFocusGroupItem.ts +++ b/packages/components/roving-focus/src/RovingFocusGroupItem.ts @@ -6,9 +6,11 @@ import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' import { composeEventHandlers } from '@oku-ui/utils' -import type { ItemData, ScopedPropsInterface } from './RovingFocusGroup' -import { CollectionItemSlot, ScopedProps, useCollection, useRovingFocusInject } from './RovingFocusGroup' +import type { ItemData } from './RovingFocusGroup' +import { CollectionItemSlot, useCollection, useRovingFocusInject } from './RovingFocusGroup' import { focusFirst, getFocusIntent, wrapArray } from './utils' +import type { ScopedPropsInterface } from './types' +import { scopedProps } from './types' export type RovingFocusGroupItemElement = ElementType<'span'> export type _RovingFocusGroupItemEl = HTMLSpanElement @@ -43,13 +45,13 @@ export const RovingFocusItemProps = { export interface RovingFocusItemPropsType extends ScopedPropsInterface, IPrimitiveProps { } -export const RovingFocusGroupImplElementProps = { +export const RovingFocusGroupItemElementProps = { ...RovingFocusItemProps, } -export const IRovingFocusGroupImplProps = { +export const rovingFocusGroupItemProps = { ...RovingFocusItemProps, - ...ScopedProps, + ...scopedProps, ...PrimitiveProps, } @@ -61,33 +63,37 @@ const RovingFocusGroupItem = defineComponent({ CollectionItemSlot, }, inheritAttrs: false, - props: IRovingFocusGroupImplProps, + props: rovingFocusGroupItemProps, setup(props, { attrs, slots }) { const _attrs = attrs as any const { - scopeRovingFocusGroup, focusable, active, tabStopId, + scopeRovingFocusGroup, + asChild, + onFocus, + onKeydown, + onMousedown, ...propsData } = toRefs(props) const attrsItems = _attrs const autoId = useId() const id = computed(() => tabStopId.value ?? autoId) - const inject = useRovingFocusInject(ITEM_NAME, scopeRovingFocusGroup.value) - const isCurrentTabStop = computed(() => inject.value.currentTabStopId.value === id.value) + const inject = useRovingFocusInject(ITEM_NAME, props.scopeRovingFocusGroup) + const isCurrentTabStop = computed(() => inject.currentTabStopId.value === id.value) const getItems = useCollection(scopeRovingFocusGroup.value) const forwardedRef = useForwardRef() watchEffect((onClean) => { nextTick(() => { if (focusable.value) - inject.value.onFocusableItemAdd() + inject.onFocusableItemAdd() }) onClean(() => { nextTick(() => { - inject.value.onFocusableItemRemove() + inject.onFocusableItemRemove() }) }) }) @@ -96,7 +102,7 @@ const RovingFocusGroupItem = defineComponent({ id: id.value, focusable: focusable.value, active: active.value, - scope: scopeRovingFocusGroup.value, + scope: props.scopeRovingFocusGroup, } return () => { const merged = mergeProps(attrsItems, propsData, { @@ -108,32 +114,32 @@ const RovingFocusGroupItem = defineComponent({ default: () => { return h(Primitive.span, { 'tabindex': isCurrentTabStop.value ? 0 : -1, - 'data-orientation': inject.value.orientation, + 'data-orientation': inject.orientation, ...merged, 'ref': forwardedRef, - 'asChild': props.asChild, + 'asChild': asChild.value, 'onMousedown': - composeEventHandlers(props.onMousedown, (event: MouseEvent) => { + composeEventHandlers(onMousedown.value, (event: MouseEvent) => { // We prevent focusing non-focusable items on `mousedown`. // Even though the item has tabIndex={-1}, that only means take it out of the tab order. if (!focusable.value) event.preventDefault() // Safari doesn't focus a button when clicked so we run our logic on mousedown also - else inject.value.onItemFocus(id.value) + else inject.onItemFocus(id.value) }), - 'onFocus': composeEventHandlers(props.onFocus, () => { - inject.value.onItemFocus(id.value) + 'onFocus': composeEventHandlers(onFocus.value, () => { + inject.onItemFocus(id.value) }), - 'onKeydown': composeEventHandlers(props.onKeydown, (event: KeyboardEvent) => { + 'onKeydown': composeEventHandlers(onKeydown.value, (event: KeyboardEvent) => { if (event.key === 'Tab' && event.shiftKey) { - inject.value.onItemShiftTab() + inject.onItemShiftTab() return } if (event.target !== event.currentTarget) return - const focusIntent = getFocusIntent(event, inject.value.orientation, inject.value.dir) + const focusIntent = getFocusIntent(event, inject.orientation, inject.dir) if (focusIntent !== undefined) { event.preventDefault() @@ -148,7 +154,7 @@ const RovingFocusGroupItem = defineComponent({ if (focusIntent === 'prev') candidateNodes.reverse() const currentIndex = candidateNodes.indexOf(event.currentTarget as HTMLElement) - candidateNodes = inject.value.loop + candidateNodes = inject.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1) } @@ -168,11 +174,11 @@ const RovingFocusGroupItem = defineComponent({ }) // TODO: https://github.com/vuejs/core/pull/7444 after delete -type _OkuRovingFocusGroupImpl = MergeProps +type _OkuRovingFocusGroupItem = MergeProps -export type InstanceCheckboxType = InstanceTypeRef +export type InstanceCheckboxType = InstanceTypeRef -const OkuRovingFocusGroupItem = RovingFocusGroupItem as typeof RovingFocusGroupItem & (new () => { $props: _OkuRovingFocusGroupImpl }) +const OkuRovingFocusGroupItem = RovingFocusGroupItem as typeof RovingFocusGroupItem & (new () => { $props: _OkuRovingFocusGroupItem }) export { OkuRovingFocusGroupItem, diff --git a/packages/components/roving-focus/src/index.ts b/packages/components/roving-focus/src/index.ts index a124a06c8..f614de1ec 100644 --- a/packages/components/roving-focus/src/index.ts +++ b/packages/components/roving-focus/src/index.ts @@ -1,2 +1,2 @@ -export { OkuRovingFocusGroup } from './RovingFocusGroup' +export { OkuRovingFocusGroup, createRovingFocusGroupScope } from './RovingFocusGroup' export { OkuRovingFocusGroupItem } from './RovingFocusGroupItem' diff --git a/packages/components/roving-focus/src/types.ts b/packages/components/roving-focus/src/types.ts new file mode 100644 index 000000000..28acdccdc --- /dev/null +++ b/packages/components/roving-focus/src/types.ts @@ -0,0 +1,8 @@ +import { type Scope, ScopePropObject } from '@oku-ui/provide' + +export type ScopedPropsInterface

= P & { scopeRovingFocusGroup?: Scope } +export const scopedProps = { + scopeRovingFocusGroup: { + ...ScopePropObject, + }, +} diff --git a/packages/components/roving-focus/tsup.config.ts b/packages/components/roving-focus/tsup.config.ts index a2f7a0d8b..02745fc07 100644 --- a/packages/components/roving-focus/tsup.config.ts +++ b/packages/components/roving-focus/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,7 +16,7 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, + clean: isClean, target: 'node16', format: ['esm'], outExtension: () => ({ js: '.mjs' }), diff --git a/packages/components/separator/src/separator.ts b/packages/components/separator/src/separator.ts index 41eb7e049..593e34edf 100644 --- a/packages/components/separator/src/separator.ts +++ b/packages/components/separator/src/separator.ts @@ -1,7 +1,7 @@ import type { PropType } from 'vue' import { defineComponent, h } from 'vue' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import { useForwardRef } from '@oku-ui/use-composable' const NAME = 'Separator' @@ -43,6 +43,7 @@ const Separator = defineComponent({ type: String as PropType, default: DEFAULT_ORIENTATION, }, + ...PrimitiveProps, }, setup(props, { attrs, slots }) { const { ...domProps } = attrs as SeparatorElement @@ -66,6 +67,7 @@ const Separator = defineComponent({ ...domProps, border: 'none', }, + asChild: props.asChild, }, { default: () => slots.default?.(), diff --git a/packages/components/slot/tsup.config.ts b/packages/components/slot/tsup.config.ts index 6fef2d449..8a32c0f09 100644 --- a/packages/components/slot/tsup.config.ts +++ b/packages/components/slot/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,7 +16,7 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, + clean: isClean, target: 'esnext', format: ['esm'], outExtension: () => ({ js: '.mjs' }), diff --git a/packages/components/switch/src/Switch.ts b/packages/components/switch/src/Switch.ts index 9e9954a41..2637d918a 100644 --- a/packages/components/switch/src/Switch.ts +++ b/packages/components/switch/src/Switch.ts @@ -17,9 +17,8 @@ import type { InstanceTypeRef, MergeProps, } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' -import { createProvideScope } from '@oku-ui/provide' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' +import { ScopePropObject, createProvideScope } from '@oku-ui/provide' import { composeEventHandlers } from '@oku-ui/utils' import { getState } from './util' import { BubbleInput } from './BubbleInput' @@ -86,13 +85,9 @@ const Switch = defineComponent({ type: Function as PropType<(checked: boolean) => void>, }, scopeSwitch: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: undefined, + ...ScopePropObject, }, + ...PrimitiveProps, }, emits: ['update:modelValue'], setup(props, { attrs, emit, slots }) { @@ -103,7 +98,6 @@ const Switch = defineComponent({ disabled, value: switchValue, onCheckedChange, - scopeSwitch, name, } = toRefs(props) @@ -137,8 +131,8 @@ const Switch = defineComponent({ switchProvider({ disabled, - scope: scopeSwitch.value, - checked: state as ComputedRef, + scope: props.scopeSwitch, + checked: computed(() => state.value || false), }) const originalReturn = () => [ diff --git a/packages/components/switch/src/SwitchThumb.ts b/packages/components/switch/src/SwitchThumb.ts index ae955ecb3..5aaaf09a8 100644 --- a/packages/components/switch/src/SwitchThumb.ts +++ b/packages/components/switch/src/SwitchThumb.ts @@ -3,11 +3,10 @@ import type { IPrimitiveProps, MergeProps, } from '@oku-ui/primitive' -import { Primitive } from '@oku-ui/primitive' -import type { Scope } from '@oku-ui/provide' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' +import { type Scope, ScopePropObject } from '@oku-ui/provide' import { useForwardRef } from '@oku-ui/use-composable' -import type { PropType } from 'vue' -import { defineComponent, h, toRefs, toValue } from 'vue' +import { defineComponent, h, toValue } from 'vue' import { useSwitchContext } from './Switch' import { getState } from './util' @@ -26,22 +25,16 @@ const SwitchThumb = defineComponent({ inheritAttrs: false, props: { scopeSwitch: { - type: Object as unknown as PropType, - required: false, - }, - asChild: { - type: Boolean, - default: false, + ...ScopePropObject, }, + ...PrimitiveProps, }, - setup(props, { attrs, slots, expose }) { - const { scopeSwitch } = toRefs(props) - + setup(props, { attrs, slots }) { const { ...thumbAttrs } = attrs as SwitchThumbProps const forwardedRef = useForwardRef() - const context = toValue(useSwitchContext(THUMB_NAME, scopeSwitch.value)) + const context = toValue(useSwitchContext(THUMB_NAME, props.scopeSwitch)) const originalReturn = () => h( diff --git a/packages/components/switch/src/index.ts b/packages/components/switch/src/index.ts index 84f49727d..060c72c67 100644 --- a/packages/components/switch/src/index.ts +++ b/packages/components/switch/src/index.ts @@ -1,4 +1,4 @@ -export { OkuSwitch } from './Switch' +export { OkuSwitch, createSwitchScope } from './Switch' export type { SwitchProps, diff --git a/packages/components/switch/src/stories/SwitchDemo.vue b/packages/components/switch/src/stories/SwitchDemo.vue index 0f5a5291d..c4fba9e5f 100644 --- a/packages/components/switch/src/stories/SwitchDemo.vue +++ b/packages/components/switch/src/stories/SwitchDemo.vue @@ -22,17 +22,16 @@ function setData(event: any) { ...data.value, [input.name]: input.value, } - // eslint-disable-next-line no-console + console.log(data.value) } function sendForm(event: any) { - // eslint-disable-next-line no-console console.log(event, 'sendForm') data.value = { ...data.value, [event.target.name]: event.target.value, } - // eslint-disable-next-line no-console + console.log(data.value) } diff --git a/packages/components/toggle/src/toggle.ts b/packages/components/toggle/src/toggle.ts index abf99262a..f503ab18b 100644 --- a/packages/components/toggle/src/toggle.ts +++ b/packages/components/toggle/src/toggle.ts @@ -1,6 +1,6 @@ import type { PropType } from 'vue' import { computed, defineComponent, h, toRefs, useModel } from 'vue' -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import type { ElementType, IPrimitiveProps, InstanceTypeRef, MergeProps } from '@oku-ui/primitive' import { composeEventHandlers } from '@oku-ui/utils' import { useControllable, useForwardRef } from '@oku-ui/use-composable' @@ -42,6 +42,7 @@ const Toggle = defineComponent({ type: Boolean, default: false, }, + ...PrimitiveProps, }, emits: ['update:pressed', 'update:modelValue'], setup(props, { attrs, slots, emit }) { @@ -69,6 +70,7 @@ const Toggle = defineComponent({ 'data-disabled': disabled ? '' : undefined, ...toggleProps, 'ref': forwardedRef, + 'asChild': props.asChild, 'onClick': composeEventHandlers(toggleProps.onClick, () => { if (!disabled) updateValue(!state.value) diff --git a/packages/components/visually-hidden/src/VisuallyHidden.ts b/packages/components/visually-hidden/src/VisuallyHidden.ts index a3b877548..052e8b6e3 100644 --- a/packages/components/visually-hidden/src/VisuallyHidden.ts +++ b/packages/components/visually-hidden/src/VisuallyHidden.ts @@ -1,4 +1,4 @@ -import { Primitive } from '@oku-ui/primitive' +import { Primitive, PrimitiveProps } from '@oku-ui/primitive' import type { ElementType, IPrimitiveProps, @@ -20,12 +20,9 @@ const VisuallyHidden = defineComponent({ name: NAME, inheritAttrs: false, props: { - asChild: { - type: Boolean, - default: undefined, - }, + ...PrimitiveProps, }, - setup(props, { attrs, expose }) { + setup(props, { attrs }) { const { ...visuallyHiddenAttrs } = attrs as VisuallyHiddenElement const forwardedRef = useForwardRef() diff --git a/packages/core/primitive/tsup.config.ts b/packages/core/primitive/tsup.config.ts index c5905e645..6cd5ada72 100644 --- a/packages/core/primitive/tsup.config.ts +++ b/packages/core/primitive/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,9 +16,8 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, - outDir: './dist', - target: 'node16', + clean: isClean, + target: 'node18', format: ['esm'], outExtension: () => ({ js: '.mjs' }), }, diff --git a/packages/core/provide/src/createProvide.ts b/packages/core/provide/src/createProvide.ts index 9c98347f0..332e2ff2c 100644 --- a/packages/core/provide/src/createProvide.ts +++ b/packages/core/provide/src/createProvide.ts @@ -1,4 +1,4 @@ -import type { ComputedRef, InjectionKey } from 'vue' +import type { InjectionKey, PropType } from 'vue' import { computed, defineComponent, inject, provide } from 'vue' function createProvide( @@ -32,17 +32,13 @@ function createProvide( return [Provider, useContext] as const } -/* ------------------------------------------------------------------------------------------------- - * createProvideScope - * ----------------------------------------------------------------------------------------------- */ - type VueProvide = { key: InjectionKey value: C } type Scope = { [scopeName: string]: VueProvide[] } | undefined -type ScopeHook = (scope: Scope) => ComputedRef<{ [__scopeProp: string]: Scope }> +type ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope } interface CreateScope { scopeName: string (): ScopeHook @@ -51,35 +47,36 @@ interface CreateScope { function createProvideScope(scopeName: string, createProvideScopeDeps: CreateScope[] = []) { let defaultProviders: any[] = [] /* ----------------------------------------------------------------------------------------------- - * createContext + * createProvide * --------------------------------------------------------------------------------------------- */ function createProvide( rootComponentName: string, defaultValue?: ProvideValueType, ) { - const BaseProvideKey: InjectionKey = rootComponentName as any - // const BaseProvide = provide(BaseProvideKey, defaultValue) + const BaseProvideKey: InjectionKey = Symbol(rootComponentName) as any + const BaseScope = { key: BaseProvideKey, value: defaultValue } as VueProvide const index = defaultProviders.length - defaultProviders = [...defaultProviders, { [scopeName]: [{ key: BaseProvideKey, value: defaultValue }] }] + defaultProviders = [...defaultProviders, [{ key: BaseProvideKey, value: defaultValue }]] function Provider( - props: ProvideValueType & { scope: Scope }, + props: ProvideValueType & { scope: Scope | undefined }, ) { - const { scope, ...context } = props as any - const Provide = scope?.[scopeName][index] || BaseScope.key as ProvideValueType - const value = computed(() => context) - provide(Provide, value) + const { scope, ...context } = props + + const Provide = scope?.[scopeName][index] || BaseScope.key + provide(Provide, context) } - function useInject(consumerName: string, scope: Scope): ComputedRef { + function useInject(consumerName: string, scope: Scope | undefined): ProvideValueType { const Provide = scope?.[scopeName]?.[index] || BaseScope - const provide = inject(Provide.key) + const provide = inject(Provide.key) + if (provide) return provide if (defaultValue !== undefined) - return computed(() => defaultValue) + return defaultValue // // if a defaultProvide wasn't specified, it's a required provide. throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``) @@ -93,22 +90,21 @@ function createProvideScope(scopeName: string, createProvideScopeDeps: CreateSco * --------------------------------------------------------------------------------------------- */ const createScope: CreateScope = () => { const scopeProviders = defaultProviders[0] + return function useScope(scope: Scope) { const providers = scope?.[scopeName] || scopeProviders - return computed(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: providers } })) + return ({ [`scope${scopeName}`]: { ...scope, [scopeName]: providers } }) } } - createScope.scopeName = scopeName - return [createProvide, composeContextScopes(createScope, ...createProvideScopeDeps)] as const + return [createProvide, composeInjectScopes(createScope, ...createProvideScopeDeps)] as const } -function composeContextScopes(...scopes: CreateScope[]) { +function composeInjectScopes(...scopes: CreateScope[]) { const baseScope = scopes[0] if (scopes.length === 1) return baseScope - const createScope: CreateScope = () => { const scopeHooks = scopes.map(createScope => ({ useScope: createScope(), @@ -119,11 +115,12 @@ function composeContextScopes(...scopes: CreateScope[]) { // We are calling a hook inside a callback which React warns against to avoid inconsistent // renders, however, scoping doesn't have render side effects so we ignore the rule. const scopeProps = useScope(overrideScopes) - const currentScope = computed(() => scopeProps.value[`__scope${scopeName}`]) + const currentScope = scopeProps[`scope${scopeName}`] return { ...nextScopes, ...currentScope } }, {}) - return computed(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes })) + const data = ({ [`scope${baseScope.scopeName}`]: nextScopes }) + return data } } @@ -131,5 +128,10 @@ function composeContextScopes(...scopes: CreateScope[]) { return createScope } +export const ScopePropObject = { + type: Object as unknown as PropType, + required: false, +} + export { createProvide, createProvideScope } export type { CreateScope, Scope } diff --git a/packages/core/provide/src/index.ts b/packages/core/provide/src/index.ts index d49c2510c..c280869e1 100644 --- a/packages/core/provide/src/index.ts +++ b/packages/core/provide/src/index.ts @@ -1,2 +1,2 @@ -export { createProvide, createProvideScope } from './createProvide' +export { createProvide, createProvideScope, ScopePropObject } from './createProvide' export type { CreateScope, Scope } from './createProvide' diff --git a/packages/core/provide/tsup.config.ts b/packages/core/provide/tsup.config.ts index c5905e645..02745fc07 100644 --- a/packages/core/provide/tsup.config.ts +++ b/packages/core/provide/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,8 +16,7 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, - outDir: './dist', + clean: isClean, target: 'node16', format: ['esm'], outExtension: () => ({ js: '.mjs' }), diff --git a/packages/core/use-composable/tsup.config.ts b/packages/core/use-composable/tsup.config.ts index c5905e645..6cd5ada72 100644 --- a/packages/core/use-composable/tsup.config.ts +++ b/packages/core/use-composable/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,9 +16,8 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, - outDir: './dist', - target: 'node16', + clean: isClean, + target: 'node18', format: ['esm'], outExtension: () => ({ js: '.mjs' }), }, diff --git a/packages/core/utils/src/index.ts b/packages/core/utils/src/index.ts index ca68c35cd..7a9e017d8 100644 --- a/packages/core/utils/src/index.ts +++ b/packages/core/utils/src/index.ts @@ -1,6 +1,6 @@ export { clamp } from './number' export { composeEventHandlers } from './primitive' - +export { isValidVNodeElement } from './isValidVNodeElement' export { observeElementRect } from './observeElementRect' export type { Measurable } from './observeElementRect' diff --git a/packages/core/utils/src/isValidVNodeElement.ts b/packages/core/utils/src/isValidVNodeElement.ts new file mode 100644 index 000000000..3efbf6946 --- /dev/null +++ b/packages/core/utils/src/isValidVNodeElement.ts @@ -0,0 +1,11 @@ +/** + * Checks whether a given VNode is a render-vialble element. + */ +export function isValidVNodeElement(input: any): boolean { + return ( + input + && (typeof input.type === 'string' + || typeof input.type === 'object' + || typeof input.type === 'function') + ) +} diff --git a/packages/core/utils/tsup.config.ts b/packages/core/utils/tsup.config.ts index c5905e645..6cd5ada72 100644 --- a/packages/core/utils/tsup.config.ts +++ b/packages/core/utils/tsup.config.ts @@ -1,3 +1,4 @@ +import process from 'node:process' import { defineConfig } from 'tsup' import pkg from './package.json' @@ -6,6 +7,8 @@ const external = [ ...Object.keys(pkg.peerDependencies || {}), ] +const isClean = (process.env.CLEAN as unknown as number) !== 0 + export default defineConfig((options) => { return [ { @@ -13,9 +16,8 @@ export default defineConfig((options) => { entryPoints: ['src/index.ts'], external, dts: true, - clean: true, - outDir: './dist', - target: 'node16', + clean: isClean, + target: 'node18', format: ['esm'], outExtension: () => ({ js: '.mjs' }), }, diff --git a/packages/tsconfig/node18.json b/packages/tsconfig/node18.json new file mode 100644 index 000000000..75082d4bc --- /dev/null +++ b/packages/tsconfig/node18.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Node 18", + "_version": "18.2.0", + "compilerOptions": { + "lib": [ + "ES2023", + "DOM" + ], + "module": "Node16", + "target": "es2022", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "moduleResolution": "Node", + "types": [ + "vite/client" + ] + } +} diff --git a/playground/vue3/src/pages/index.vue b/playground/vue3/src/pages/index.vue index 9231170b9..f8594341b 100644 --- a/playground/vue3/src/pages/index.vue +++ b/playground/vue3/src/pages/index.vue @@ -32,6 +32,10 @@ const pages: Page[] = [ name: 'OkuToggle', path: '/toggle', }, + { + name: 'OkuTabs', + path: '/tabs', + }, { name: 'OkuPopper', path: '/popper', diff --git a/playground/vue3/src/pages/tabs.vue b/playground/vue3/src/pages/tabs.vue new file mode 100644 index 000000000..01ce69ffd --- /dev/null +++ b/playground/vue3/src/pages/tabs.vue @@ -0,0 +1,7 @@ + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61ce138d3..b4371c9a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,6 +37,9 @@ importers: '@oku-ui/collection': specifier: workspace:^ version: link:packages/components/collection + '@oku-ui/direction': + specifier: workspace:^ + version: link:packages/components/direction '@oku-ui/label': specifier: workspace:^ version: link:packages/components/label @@ -391,9 +394,6 @@ importers: packages/components/presence: dependencies: - '@oku-ui/primitive': - specifier: latest - version: link:../../core/primitive '@oku-ui/use-composable': specifier: latest version: link:../../core/use-composable @@ -870,7 +870,7 @@ packages: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.18.6 dev: true /@babel/code-frame@7.22.5: @@ -879,11 +879,39 @@ packages: dependencies: '@babel/highlight': 7.22.5 + /@babel/compat-data@7.21.7: + resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true + /@babel/core@7.21.5: + resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-module-transforms': 7.21.5 + '@babel/helpers': 7.21.5 + '@babel/parser': 7.22.7 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/core@7.22.9: resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} @@ -907,6 +935,16 @@ packages: - supports-color dev: true + /@babel/generator@7.21.5: + resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/generator@7.22.9: resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} @@ -917,6 +955,13 @@ packages: jsesc: 2.5.2 dev: true + /@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -931,6 +976,34 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-compilation-targets@7.22.9(@babel/core@7.21.5): + resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.21.5 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} @@ -945,6 +1018,64 @@ packages: semver: 6.3.1 dev: true + /@babel/helper-create-class-features-plugin@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-yNSEck9SuDvPTEUYm4BSXl6ZVC7yO5ZLEMAhG3v3zi7RDxyL/nQDemWWZmw4L0stPWwhpnznRRyJHPRcbXR2jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-class-features-plugin@7.21.5(@babel/core@7.22.9): + resolution: {integrity: sha512-yNSEck9SuDvPTEUYm4BSXl6ZVC7yO5ZLEMAhG3v3zi7RDxyL/nQDemWWZmw4L0stPWwhpnznRRyJHPRcbXR2jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.21.5): + resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.21.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} @@ -957,31 +1088,31 @@ packages: '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.21.5) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.21.5): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9): + /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.21.5): resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -990,11 +1121,24 @@ packages: - supports-color dev: true + /@babel/helper-environment-visitor@7.21.5: + resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.22.5 + dev: true + /@babel/helper-function-name@7.22.5: resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} @@ -1003,6 +1147,13 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} @@ -1010,6 +1161,13 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-member-expression-to-functions@7.21.5: + resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} @@ -1017,6 +1175,13 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-module-imports@7.21.4: + resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} @@ -1024,6 +1189,36 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-module-transforms@7.21.5: + resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.22.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-module-transforms@7.22.9(@babel/core@7.21.5): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} @@ -1038,6 +1233,13 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true + /@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} @@ -1045,35 +1247,61 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-plugin-utils@7.21.5: + resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.21.5): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + /@babel/helper-replace-supers@7.21.5: + resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers@7.22.9(@babel/core@7.21.5): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 dev: true + /@babel/helper-simple-access@7.21.5: + resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -1081,6 +1309,13 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} @@ -1088,6 +1323,13 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -1103,6 +1345,11 @@ packages: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option@7.22.5: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} @@ -1117,6 +1364,17 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/helpers@7.21.5: + resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helpers@7.22.6: resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} engines: {node: '>=6.9.0'} @@ -1128,6 +1386,15 @@ packages: - supports-color dev: true + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/highlight@7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} @@ -1143,26 +1410,26 @@ packages: dependencies: '@babel/types': 7.22.5 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.21.5) dev: true /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.9): @@ -1199,69 +1466,69 @@ packages: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.21.5): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1275,44 +1542,54 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.22.9): resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} engines: {node: '>=6.9.0'} @@ -1320,15 +1597,24 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1341,30 +1627,39 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1377,26 +1672,36 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.22.9): resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} engines: {node: '>=6.9.0'} @@ -1404,189 +1709,189 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): + /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.21.5): resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.21.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.21.5): resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.21.5) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) dev: true /@babel/plugin-transform-flow-strip-types@7.21.0(@babel/core@7.22.9): @@ -1600,79 +1905,91 @@ packages: '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.21.5): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 dev: true /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): @@ -1682,242 +1999,257 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): + /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.21.5): resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-typescript@7.21.3(@babel/core@7.21.5): + resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.5(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-typescript@7.21.3(@babel/core@7.22.9): resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} engines: {node: '>=6.9.0'} @@ -1925,53 +2257,146 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.5(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.21.5 '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.22.9) + transitivePeerDependencies: + - supports-color dev: true - /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.21.5): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.22.9(@babel/core@7.21.5): + resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.21.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.21.5) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.21.5) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.21.5) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.21.5) + '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) + '@babel/types': 7.22.5 + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.21.5) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.21.5) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.21.5) + core-js-compat: 3.32.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color dev: true /@babel/preset-env@7.22.9(@babel/core@7.22.9): @@ -1982,83 +2407,83 @@ packages: dependencies: '@babel/compat-data': 7.22.9 '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.21.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) - '@babel/preset-modules': 0.1.5(@babel/core@7.22.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.21.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.21.5) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.21.5) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.21.5) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.21.5) + '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9) - babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9) - babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9) + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.21.5) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.21.5) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.21.5) core-js-compat: 3.32.0 semver: 6.3.1 transitivePeerDependencies: @@ -2077,15 +2502,15 @@ packages: '@babel/plugin-transform-flow-strip-types': 7.21.0(@babel/core@7.22.9) dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.22.9): + /@babel/preset-modules@0.1.5(@babel/core@7.21.5): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.21.5) '@babel/types': 7.22.5 esutils: 2.0.3 dev: true @@ -2102,6 +2527,8 @@ packages: '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.9) '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.22.9) + transitivePeerDependencies: + - supports-color dev: true /@babel/register@7.21.0(@babel/core@7.22.9): @@ -2134,6 +2561,15 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/parser': 7.22.7 + '@babel/types': 7.22.5 + dev: true + /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} @@ -2143,6 +2579,24 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/traverse@7.21.5: + resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.21.5 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.22.7 + '@babel/types': 7.22.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/traverse@7.22.8: resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} @@ -4713,7 +5167,7 @@ packages: hasBin: true dependencies: '@babel/core': 7.22.9 - '@babel/preset-env': 7.22.9(@babel/core@7.22.9) + '@babel/preset-env': 7.22.9(@babel/core@7.21.5) '@babel/types': 7.22.5 '@ndelangen/get-tarball': 3.0.7 '@storybook/codemod': 7.2.1 @@ -5896,9 +6350,9 @@ packages: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.22.9) - '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.5) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.5) vite: 4.3.5(@types/node@18.17.1) vue: 3.3.4 transitivePeerDependencies: @@ -6017,13 +6471,13 @@ packages: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true - /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.22.9): + /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.5): resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} dependencies: - '@babel/helper-module-imports': 7.22.5 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.9) - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 + '@babel/helper-module-imports': 7.21.4 + '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.5) + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 '@babel/types': 7.22.5 '@vue/babel-helper-vue-transform-on': 1.0.2 camelcase: 6.3.0 @@ -6718,38 +7172,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9): + /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.21.5): resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.21.5) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9): + /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.21.5): resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.21.5) core-js-compat: 3.32.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9): + /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.21.5): resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.21.5) transitivePeerDependencies: - supports-color dev: true @@ -6877,9 +7331,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.477 - node-releases: 2.0.13 + caniuse-lite: 1.0.30001481 + electron-to-chromium: 1.4.377 + node-releases: 2.0.10 update-browserslist-db: 1.0.11(browserslist@4.21.5) dev: true @@ -7007,8 +7461,8 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001517 + browserslist: 4.21.5 + caniuse-lite: 1.0.30001481 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true @@ -8019,6 +8473,10 @@ packages: jake: 10.8.5 dev: true + /electron-to-chromium@1.4.377: + resolution: {integrity: sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==} + dev: true + /electron-to-chromium@1.4.477: resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} dev: true @@ -11102,6 +11560,10 @@ packages: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} dev: true + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true @@ -11784,7 +12246,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.27 @@ -11797,7 +12259,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 postcss: 8.4.27 postcss-value-parser: 4.2.0 dev: true @@ -11941,7 +12403,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 caniuse-api: 3.0.0 cssnano-utils: 4.0.0(postcss@8.4.27) postcss: 8.4.27 @@ -11976,7 +12438,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 cssnano-utils: 4.0.0(postcss@8.4.27) postcss: 8.4.27 postcss-value-parser: 4.2.0 @@ -12119,7 +12581,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 postcss: 8.4.27 postcss-value-parser: 4.2.0 dev: true @@ -12161,7 +12623,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 caniuse-api: 3.0.0 postcss: 8.4.27 dev: true @@ -13463,7 +13925,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.10 + browserslist: 4.21.5 postcss: 8.4.27 postcss-selector-parser: 6.0.11 dev: true @@ -14333,7 +14795,7 @@ packages: resolution: {integrity: sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==} hasBin: true dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.21.5 '@babel/standalone': 7.21.7 '@babel/types': 7.22.5 defu: 6.1.2 diff --git a/scripts/dev.ts b/scripts/dev.ts index 73bc935e2..b842d0eee 100644 --- a/scripts/dev.ts +++ b/scripts/dev.ts @@ -37,7 +37,12 @@ async function deleteAllPackageDists() { console.log('finished deleting dist folders ✅') console.log('building components 🏗') - execSync('pnpm build', { stdio: 'inherit' }) + try { + execSync('pnpm build', { stdio: 'inherit' }) + } + catch (error) { + console.log('build problem 🚨') + } console.log('finished building components ✅') watchMode() @@ -71,7 +76,12 @@ function watchMode() { ], ignoreInitial: true, }).on('all', async (event, path) => { - await whereComponent(path) + try { + await whereComponent(path) + } + catch (error) { + console.log('build problem 🚨') + } }).once('ready', () => { console.log('watch mode active 🚀') }).prependListener('unlinkDir', async (path) => {