@studiometa/js-toolkit 4.0.0-alpha.1 → 4.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/Base.d.ts +0 -2
- package/dist/Base.js +1 -2
- package/dist/Base.js.map +1 -1
- package/dist/attribute-namespaces.d.ts +0 -2
- package/dist/attribute-namespaces.js +1 -2
- package/dist/attributes.d.ts +0 -2
- package/dist/attributes.js +1 -2
- package/dist/children-watchers.d.ts +0 -2
- package/dist/children-watchers.js +1 -2
- package/dist/component-brand.d.ts +0 -2
- package/dist/component-brand.js +1 -2
- package/dist/component-declarations.d.ts +0 -2
- package/dist/component-declarations.js +1 -2
- package/dist/context-subscription.d.ts +0 -2
- package/dist/context-subscription.js +1 -2
- package/dist/context.d.ts +0 -2
- package/dist/context.js +1 -2
- package/dist/decorators.d.ts +0 -2
- package/dist/decorators.js +1 -2
- package/dist/diagnostic-contract.d.ts +0 -2
- package/dist/diagnostic-contract.js +1 -2
- package/dist/diagnostics.d.ts +0 -2
- package/dist/diagnostics.js +1 -2
- package/dist/document-order.d.ts +0 -2
- package/dist/document-order.js +1 -2
- package/dist/dom-mutations.d.ts +0 -2
- package/dist/dom-mutations.js +1 -2
- package/dist/events.d.ts +0 -2
- package/dist/events.js +1 -2
- package/dist/group.d.ts +0 -2
- package/dist/group.js +1 -2
- package/dist/instances.d.ts +0 -2
- package/dist/instances.js +1 -2
- package/dist/manifest.d.ts +0 -2
- package/dist/manifest.js +1 -2
- package/dist/mount-strategies.d.ts +0 -2
- package/dist/mount-strategies.js +1 -2
- package/dist/negotiated-events.d.ts +0 -2
- package/dist/negotiated-events.js +1 -2
- package/dist/protocol-symbols.d.ts +0 -2
- package/dist/protocol-symbols.js +1 -2
- package/dist/registry.d.ts +0 -2
- package/dist/registry.js +1 -2
- package/dist/responsive-options.d.ts +0 -2
- package/dist/responsive-options.js +1 -2
- package/dist/scheduler.d.ts +0 -2
- package/dist/scheduler.js +1 -2
- package/dist/scheduler.js.map +1 -1
- package/dist/services/breakpoint.d.ts +0 -2
- package/dist/services/breakpoint.js +1 -2
- package/dist/services/drag.d.ts +0 -2
- package/dist/services/drag.js +1 -2
- package/dist/services/in-view.d.ts +0 -2
- package/dist/services/in-view.js +1 -2
- package/dist/services/key.d.ts +0 -2
- package/dist/services/key.js +1 -2
- package/dist/services/media.d.ts +0 -2
- package/dist/services/media.js +1 -2
- package/dist/services/mixin.d.ts +0 -2
- package/dist/services/mixin.js +1 -2
- package/dist/services/mutation.d.ts +0 -2
- package/dist/services/mutation.js +1 -2
- package/dist/services/pointer.d.ts +0 -2
- package/dist/services/pointer.js +1 -2
- package/dist/services/raf.d.ts +0 -2
- package/dist/services/raf.js +1 -2
- package/dist/services/resize.d.ts +0 -2
- package/dist/services/resize.js +1 -2
- package/dist/services/scroll-progress-offset.d.ts +0 -2
- package/dist/services/scroll-progress-offset.js +1 -2
- package/dist/services/scroll-progress.d.ts +0 -2
- package/dist/services/scroll-progress.js +1 -2
- package/dist/services/scroll.d.ts +0 -2
- package/dist/services/scroll.js +1 -2
- package/dist/services/service.d.ts +0 -2
- package/dist/services/service.js +1 -2
- package/dist/services/toggle.d.ts +0 -2
- package/dist/services/toggle.js +1 -2
- package/dist/services/until.d.ts +0 -2
- package/dist/services/until.js +1 -2
- package/dist/shared-runtime.d.ts +0 -2
- package/dist/shared-runtime.js +1 -2
- package/dist/storage/createStorage.d.ts +0 -2
- package/dist/storage/createStorage.js +1 -2
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.js +1 -2
- package/dist/storage/providers.d.ts +0 -2
- package/dist/storage/providers.js +1 -2
- package/dist/storage/serializers.d.ts +0 -2
- package/dist/storage/serializers.js +1 -2
- package/dist/storage/sync.d.ts +0 -2
- package/dist/storage/sync.js +1 -2
- package/dist/storage/types.d.ts +0 -2
- package/dist/subpaths/BREAKPOINTS.js +1 -2
- package/dist/subpaths/Base.js +1 -2
- package/dist/subpaths/DIAGNOSTICS.js +1 -2
- package/dist/subpaths/DRAG_MODES.js +1 -2
- package/dist/subpaths/EVENTS.js +1 -2
- package/dist/subpaths/MOUNT_ATTRIBUTE.js +1 -2
- package/dist/subpaths/SWAP_MODES.js +1 -2
- package/dist/subpaths/children.js +1 -2
- package/dist/subpaths/component.js +1 -2
- package/dist/subpaths/createContext.js +1 -2
- package/dist/subpaths/createFallbackProvider.js +1 -2
- package/dist/subpaths/createGroup.js +1 -2
- package/dist/subpaths/createLocalStorage.js +1 -2
- package/dist/subpaths/createMemoryStorageProvider.js +1 -2
- package/dist/subpaths/createService.js +1 -2
- package/dist/subpaths/createServiceMixin.js +1 -2
- package/dist/subpaths/createSessionStorage.js +1 -2
- package/dist/subpaths/createStorage.js +1 -2
- package/dist/subpaths/createUrlSearchParamsInHashProvider.js +1 -2
- package/dist/subpaths/createUrlSearchParamsInHashStorage.js +1 -2
- package/dist/subpaths/createUrlSearchParamsProvider.js +1 -2
- package/dist/subpaths/createUrlSearchParamsStorage.js +1 -2
- package/dist/subpaths/defaultScheduler.js +1 -2
- package/dist/subpaths/defineManifest.js +1 -2
- package/dist/subpaths/domUpdate.js +1 -2
- package/dist/subpaths/emitExtendable.js +1 -2
- package/dist/subpaths/fromMetaGlob.js +1 -2
- package/dist/subpaths/fromWebpackContext.js +1 -2
- package/dist/subpaths/getBreakpoints.js +1 -2
- package/dist/subpaths/getInstance.js +1 -2
- package/dist/subpaths/getInstances.js +1 -2
- package/dist/subpaths/getMountedInstances.js +1 -2
- package/dist/subpaths/getUnmountedInstances.js +1 -2
- package/dist/subpaths/inject.js +1 -2
- package/dist/subpaths/injectContext.js +1 -2
- package/dist/subpaths/injectContextSync.js +1 -2
- package/dist/subpaths/jsonSerializer.js +1 -2
- package/dist/subpaths/localStorageProvider.js +1 -2
- package/dist/subpaths/memoryStorageProvider.js +1 -2
- package/dist/subpaths/namespaceQualifier.js +1 -2
- package/dist/subpaths/nextFrame.js +1 -2
- package/dist/subpaths/on.js +1 -2
- package/dist/subpaths/perTarget.js +1 -2
- package/dist/subpaths/provide.js +1 -2
- package/dist/subpaths/provideContext.js +1 -2
- package/dist/subpaths/provideRootContext.js +1 -2
- package/dist/subpaths/read.js +1 -2
- package/dist/subpaths/registerComponent.js +1 -2
- package/dist/subpaths/registerComponents.js +1 -2
- package/dist/subpaths/registerManifest.js +1 -2
- package/dist/subpaths/reportDiagnostic.js +1 -2
- package/dist/subpaths/sessionStorageProvider.js +1 -2
- package/dist/subpaths/setBreakpoints.js +1 -2
- package/dist/subpaths/signal.js +1 -2
- package/dist/subpaths/subscribeContext.js +1 -2
- package/dist/subpaths/swap.js +1 -2
- package/dist/subpaths/toggle.js +1 -2
- package/dist/subpaths/until.js +1 -2
- package/dist/subpaths/urlSearchParamsInHashProvider.js +1 -2
- package/dist/subpaths/urlSearchParamsProvider.js +1 -2
- package/dist/subpaths/useBreakpoint.js +1 -2
- package/dist/subpaths/useDrag.js +1 -2
- package/dist/subpaths/useInView.js +1 -2
- package/dist/subpaths/useKey.js +1 -2
- package/dist/subpaths/useMediaQuery.js +1 -2
- package/dist/subpaths/useMutation.js +1 -2
- package/dist/subpaths/usePointer.js +1 -2
- package/dist/subpaths/usePrefersReducedMotion.js +1 -2
- package/dist/subpaths/useRaf.js +1 -2
- package/dist/subpaths/useResize.js +1 -2
- package/dist/subpaths/useScroll.js +1 -2
- package/dist/subpaths/useScrollProgress.js +1 -2
- package/dist/subpaths/useWindowScroll.js +1 -2
- package/dist/subpaths/useWindowSize.js +1 -2
- package/dist/subpaths/utils/DEFAULT_DAMP_FACTOR.js +1 -2
- package/dist/subpaths/utils/INERTIA_FRAME.js +1 -2
- package/dist/subpaths/utils/MAX_SPRING_RATIO.js +1 -2
- package/dist/subpaths/utils/SCROLL_ALIGNMENTS.js +1 -2
- package/dist/subpaths/utils/SCROLL_AXES.js +1 -2
- package/dist/subpaths/utils/TRANSFORM_PROPS.js +1 -2
- package/dist/subpaths/utils/TRANSITION_OPTIONS.js +1 -2
- package/dist/subpaths/utils/camelCase.js +1 -2
- package/dist/subpaths/utils/capitalize.js +1 -2
- package/dist/subpaths/utils/clamp.js +1 -2
- package/dist/subpaths/utils/clamp01.js +1 -2
- package/dist/subpaths/utils/clampDampFactor.js +1 -2
- package/dist/subpaths/utils/createEaseInOut.js +1 -2
- package/dist/subpaths/utils/createEaseOut.js +1 -2
- package/dist/subpaths/utils/createElement.js +1 -2
- package/dist/subpaths/utils/createRange.js +1 -2
- package/dist/subpaths/utils/damp.js +1 -2
- package/dist/subpaths/utils/debounce.js +1 -2
- package/dist/subpaths/utils/decayOver.js +1 -2
- package/dist/subpaths/utils/deepmerge.js +1 -2
- package/dist/subpaths/utils/easeInCirc.js +1 -2
- package/dist/subpaths/utils/easeInCubic.js +1 -2
- package/dist/subpaths/utils/easeInExpo.js +1 -2
- package/dist/subpaths/utils/easeInOutCirc.js +1 -2
- package/dist/subpaths/utils/easeInOutCubic.js +1 -2
- package/dist/subpaths/utils/easeInOutExpo.js +1 -2
- package/dist/subpaths/utils/easeInOutQuad.js +1 -2
- package/dist/subpaths/utils/easeInOutQuart.js +1 -2
- package/dist/subpaths/utils/easeInOutQuint.js +1 -2
- package/dist/subpaths/utils/easeInOutSine.js +1 -2
- package/dist/subpaths/utils/easeInQuad.js +1 -2
- package/dist/subpaths/utils/easeInQuart.js +1 -2
- package/dist/subpaths/utils/easeInQuint.js +1 -2
- package/dist/subpaths/utils/easeInSine.js +1 -2
- package/dist/subpaths/utils/easeLinear.js +1 -2
- package/dist/subpaths/utils/easeOutCirc.js +1 -2
- package/dist/subpaths/utils/easeOutCubic.js +1 -2
- package/dist/subpaths/utils/easeOutExpo.js +1 -2
- package/dist/subpaths/utils/easeOutQuad.js +1 -2
- package/dist/subpaths/utils/easeOutQuart.js +1 -2
- package/dist/subpaths/utils/easeOutQuint.js +1 -2
- package/dist/subpaths/utils/easeOutSine.js +1 -2
- package/dist/subpaths/utils/enterTransition.js +1 -2
- package/dist/subpaths/utils/fold.js +1 -2
- package/dist/subpaths/utils/getOffsetSizes.js +1 -2
- package/dist/subpaths/utils/historyPush.js +1 -2
- package/dist/subpaths/utils/historyReplace.js +1 -2
- package/dist/subpaths/utils/inertiaDecay.js +1 -2
- package/dist/subpaths/utils/inertiaFinalValue.js +1 -2
- package/dist/subpaths/utils/inertiaStep.js +1 -2
- package/dist/subpaths/utils/inertiaTimeConstant.js +1 -2
- package/dist/subpaths/utils/isBoolean.js +1 -2
- package/dist/subpaths/utils/isDefined.js +1 -2
- package/dist/subpaths/utils/isFunction.js +1 -2
- package/dist/subpaths/utils/isNull.js +1 -2
- package/dist/subpaths/utils/isNumber.js +1 -2
- package/dist/subpaths/utils/isObject.js +1 -2
- package/dist/subpaths/utils/isString.js +1 -2
- package/dist/subpaths/utils/kebabCase.js +1 -2
- package/dist/subpaths/utils/leaveTransition.js +1 -2
- package/dist/subpaths/utils/lerp.js +1 -2
- package/dist/subpaths/utils/loadImage.js +1 -2
- package/dist/subpaths/utils/loadLink.js +1 -2
- package/dist/subpaths/utils/loadScript.js +1 -2
- package/dist/subpaths/utils/lockScroll.js +1 -2
- package/dist/subpaths/utils/lowerCase.js +1 -2
- package/dist/subpaths/utils/map.js +1 -2
- package/dist/subpaths/utils/matrix.js +1 -2
- package/dist/subpaths/utils/mean.js +1 -2
- package/dist/subpaths/utils/memo.js +1 -2
- package/dist/subpaths/utils/noop.js +1 -2
- package/dist/subpaths/utils/noopValue.js +1 -2
- package/dist/subpaths/utils/objectToURLSearchParams.js +1 -2
- package/dist/subpaths/utils/pascalCase.js +1 -2
- package/dist/subpaths/utils/random.js +1 -2
- package/dist/subpaths/utils/randomInt.js +1 -2
- package/dist/subpaths/utils/randomItem.js +1 -2
- package/dist/subpaths/utils/round.js +1 -2
- package/dist/subpaths/utils/saveActiveElement.js +1 -2
- package/dist/subpaths/utils/scrollPosition.js +1 -2
- package/dist/subpaths/utils/scrollTo.js +1 -2
- package/dist/subpaths/utils/selectorFor.js +1 -2
- package/dist/subpaths/utils/setClassesOrStyles.js +1 -2
- package/dist/subpaths/utils/smoothTo.js +1 -2
- package/dist/subpaths/utils/snakeCase.js +1 -2
- package/dist/subpaths/utils/spring.js +1 -2
- package/dist/subpaths/utils/throttle.js +1 -2
- package/dist/subpaths/utils/transform.js +1 -2
- package/dist/subpaths/utils/transition.js +1 -2
- package/dist/subpaths/utils/trapFocus.js +1 -2
- package/dist/subpaths/utils/untrapFocus.js +1 -2
- package/dist/subpaths/utils/upperCase.js +1 -2
- package/dist/subpaths/utils/wait.js +1 -2
- package/dist/subpaths/utils/withLeadingCharacters.js +1 -2
- package/dist/subpaths/utils/withLeadingSlash.js +1 -2
- package/dist/subpaths/utils/withTrailingCharacters.js +1 -2
- package/dist/subpaths/utils/withTrailingSlash.js +1 -2
- package/dist/subpaths/utils/withoutLeadingCharacters.js +1 -2
- package/dist/subpaths/utils/withoutLeadingCharactersRecursive.js +1 -2
- package/dist/subpaths/utils/withoutLeadingSlash.js +1 -2
- package/dist/subpaths/utils/withoutTrailingCharacters.js +1 -2
- package/dist/subpaths/utils/withoutTrailingCharactersRecursive.js +1 -2
- package/dist/subpaths/utils/withoutTrailingSlash.js +1 -2
- package/dist/subpaths/utils/wrap.js +1 -2
- package/dist/subpaths/viewTransition.js +1 -2
- package/dist/subpaths/warn.js +1 -2
- package/dist/subpaths/watchAttributeNamespace.js +1 -2
- package/dist/subpaths/watchAttributes.js +1 -2
- package/dist/subpaths/whenDOMSettled.js +1 -2
- package/dist/subpaths/withDrag.js +1 -2
- package/dist/subpaths/withInView.js +1 -2
- package/dist/subpaths/withKey.js +1 -2
- package/dist/subpaths/withMutation.js +1 -2
- package/dist/subpaths/withPointer.js +1 -2
- package/dist/subpaths/withRaf.js +1 -2
- package/dist/subpaths/withResize.js +1 -2
- package/dist/subpaths/withScroll.js +1 -2
- package/dist/subpaths/withScrollProgress.js +1 -2
- package/dist/subpaths/write.js +1 -2
- package/dist/swap.d.ts +0 -2
- package/dist/swap.js +1 -2
- package/dist/test/index.d.ts +0 -2
- package/dist/test/index.js +1 -2
- package/dist/utils/deepmerge.d.ts +0 -2
- package/dist/utils/deepmerge.js +1 -2
- package/dist/utils/dom.d.ts +0 -2
- package/dist/utils/dom.js +1 -2
- package/dist/utils/easings.d.ts +0 -2
- package/dist/utils/easings.js +1 -2
- package/dist/utils/focus.d.ts +0 -2
- package/dist/utils/focus.js +1 -2
- package/dist/utils/history.d.ts +0 -2
- package/dist/utils/history.js +1 -2
- package/dist/utils/is.d.ts +0 -2
- package/dist/utils/is.js +1 -2
- package/dist/utils/load.d.ts +0 -2
- package/dist/utils/load.js +1 -2
- package/dist/utils/maths.d.ts +0 -2
- package/dist/utils/maths.js +1 -2
- package/dist/utils/memo.d.ts +0 -2
- package/dist/utils/memo.js +1 -2
- package/dist/utils/noop.d.ts +0 -2
- package/dist/utils/noop.js +1 -2
- package/dist/utils/random.d.ts +0 -2
- package/dist/utils/random.js +1 -2
- package/dist/utils/scroll-lock.d.ts +0 -2
- package/dist/utils/scroll-lock.js +1 -2
- package/dist/utils/scrollTo.d.ts +0 -2
- package/dist/utils/scrollTo.js +1 -2
- package/dist/utils/selectors.d.ts +0 -2
- package/dist/utils/selectors.js +1 -2
- package/dist/utils/smoothTo.d.ts +0 -2
- package/dist/utils/smoothTo.js +1 -2
- package/dist/utils/strings.d.ts +0 -2
- package/dist/utils/strings.js +1 -2
- package/dist/utils/timing.d.ts +0 -2
- package/dist/utils/timing.js +1 -2
- package/dist/utils/transform.d.ts +0 -2
- package/dist/utils/transform.js +1 -2
- package/dist/utils/transition.d.ts +0 -2
- package/dist/utils/transition.js +1 -2
- package/dist/viewTransition.d.ts +0 -2
- package/dist/viewTransition.js +1 -2
- package/package.json +6 -3
- package/skills/studiometa-js-toolkit/SKILL.md +87 -0
- package/skills/studiometa-js-toolkit/references/api/configuration.md +169 -0
- package/skills/studiometa-js-toolkit/references/api/context/createContext.md +46 -0
- package/skills/studiometa-js-toolkit/references/api/context/createGroup.md +67 -0
- package/skills/studiometa-js-toolkit/references/api/context/index.md +69 -0
- package/skills/studiometa-js-toolkit/references/api/context/injectContext.md +58 -0
- package/skills/studiometa-js-toolkit/references/api/context/injectContextSync.md +44 -0
- package/skills/studiometa-js-toolkit/references/api/context/provideContext.md +61 -0
- package/skills/studiometa-js-toolkit/references/api/context/provideRootContext.md +42 -0
- package/skills/studiometa-js-toolkit/references/api/context/signal.md +85 -0
- package/skills/studiometa-js-toolkit/references/api/context/subscribeContext.md +71 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/children.md +92 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/component.md +75 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/index.md +41 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/inject.md +73 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/on.md +149 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/provide.md +77 -0
- package/skills/studiometa-js-toolkit/references/api/decorators/read-write.md +93 -0
- package/skills/studiometa-js-toolkit/references/api/diagnostics/DIAGNOSTICS.md +137 -0
- package/skills/studiometa-js-toolkit/references/api/diagnostics/EVENTS.md +45 -0
- package/skills/studiometa-js-toolkit/references/api/diagnostics/index.md +58 -0
- package/skills/studiometa-js-toolkit/references/api/diagnostics/reportDiagnostic.md +67 -0
- package/skills/studiometa-js-toolkit/references/api/diagnostics/warn.md +54 -0
- package/skills/studiometa-js-toolkit/references/api/dom/breakpoints.md +81 -0
- package/skills/studiometa-js-toolkit/references/api/dom/domUpdate.md +70 -0
- package/skills/studiometa-js-toolkit/references/api/dom/emitExtendable.md +68 -0
- package/skills/studiometa-js-toolkit/references/api/dom/index.md +26 -0
- package/skills/studiometa-js-toolkit/references/api/dom/swap.md +105 -0
- package/skills/studiometa-js-toolkit/references/api/dom/watchAttributeNamespace.md +96 -0
- package/skills/studiometa-js-toolkit/references/api/dom/watchAttributes.md +56 -0
- package/skills/studiometa-js-toolkit/references/api/dom/whenDOMSettled.md +41 -0
- package/skills/studiometa-js-toolkit/references/api/html/data-component.md +105 -0
- package/skills/studiometa-js-toolkit/references/api/html/data-mount.md +69 -0
- package/skills/studiometa-js-toolkit/references/api/html/data-option.md +106 -0
- package/skills/studiometa-js-toolkit/references/api/html/data-ref.md +63 -0
- package/skills/studiometa-js-toolkit/references/api/html/index.md +32 -0
- package/skills/studiometa-js-toolkit/references/api/index.md +73 -0
- package/skills/studiometa-js-toolkit/references/api/instance-events.md +75 -0
- package/skills/studiometa-js-toolkit/references/api/instance-methods.md +267 -0
- package/skills/studiometa-js-toolkit/references/api/instance-properties.md +90 -0
- package/skills/studiometa-js-toolkit/references/api/methods-hooks-events.md +149 -0
- package/skills/studiometa-js-toolkit/references/api/methods-hooks-lifecycle.md +90 -0
- package/skills/studiometa-js-toolkit/references/api/methods-hooks-options.md +96 -0
- package/skills/studiometa-js-toolkit/references/api/methods-hooks-services.md +164 -0
- package/skills/studiometa-js-toolkit/references/api/registry/defineManifest.md +57 -0
- package/skills/studiometa-js-toolkit/references/api/registry/fromMetaGlob.md +33 -0
- package/skills/studiometa-js-toolkit/references/api/registry/fromWebpackContext.md +37 -0
- package/skills/studiometa-js-toolkit/references/api/registry/getInstance.md +52 -0
- package/skills/studiometa-js-toolkit/references/api/registry/getInstances.md +48 -0
- package/skills/studiometa-js-toolkit/references/api/registry/getMountedInstances.md +39 -0
- package/skills/studiometa-js-toolkit/references/api/registry/getUnmountedInstances.md +46 -0
- package/skills/studiometa-js-toolkit/references/api/registry/index.md +49 -0
- package/skills/studiometa-js-toolkit/references/api/registry/registerComponent.md +93 -0
- package/skills/studiometa-js-toolkit/references/api/registry/registerComponents.md +37 -0
- package/skills/studiometa-js-toolkit/references/api/registry/registerManifest.md +72 -0
- package/skills/studiometa-js-toolkit/references/api/scheduler/defaultScheduler.md +104 -0
- package/skills/studiometa-js-toolkit/references/api/scheduler/index.md +27 -0
- package/skills/studiometa-js-toolkit/references/api/scheduler/nextFrame.md +31 -0
- package/skills/studiometa-js-toolkit/references/api/scheduler/viewTransition.md +53 -0
- package/skills/studiometa-js-toolkit/references/api/services/createService.md +95 -0
- package/skills/studiometa-js-toolkit/references/api/services/createServiceMixin.md +81 -0
- package/skills/studiometa-js-toolkit/references/api/services/index.md +94 -0
- package/skills/studiometa-js-toolkit/references/api/services/mixins.md +148 -0
- package/skills/studiometa-js-toolkit/references/api/services/perTarget.md +65 -0
- package/skills/studiometa-js-toolkit/references/api/services/toggle.md +80 -0
- package/skills/studiometa-js-toolkit/references/api/services/until.md +44 -0
- package/skills/studiometa-js-toolkit/references/api/services/useBreakpoint.md +42 -0
- package/skills/studiometa-js-toolkit/references/api/services/useDrag.md +119 -0
- package/skills/studiometa-js-toolkit/references/api/services/useInView.md +64 -0
- package/skills/studiometa-js-toolkit/references/api/services/useKey.md +105 -0
- package/skills/studiometa-js-toolkit/references/api/services/useMediaQuery.md +45 -0
- package/skills/studiometa-js-toolkit/references/api/services/useMutation.md +69 -0
- package/skills/studiometa-js-toolkit/references/api/services/usePointer.md +91 -0
- package/skills/studiometa-js-toolkit/references/api/services/usePrefersReducedMotion.md +42 -0
- package/skills/studiometa-js-toolkit/references/api/services/useRaf.md +91 -0
- package/skills/studiometa-js-toolkit/references/api/services/useResize.md +60 -0
- package/skills/studiometa-js-toolkit/references/api/services/useScroll.md +88 -0
- package/skills/studiometa-js-toolkit/references/api/services/useScrollProgress.md +88 -0
- package/skills/studiometa-js-toolkit/references/api/services/useWindowScroll.md +25 -0
- package/skills/studiometa-js-toolkit/references/api/services/useWindowSize.md +25 -0
- package/skills/studiometa-js-toolkit/references/api/storage/createStorage.md +126 -0
- package/skills/studiometa-js-toolkit/references/api/storage/index.md +33 -0
- package/skills/studiometa-js-toolkit/references/api/storage/presets.md +58 -0
- package/skills/studiometa-js-toolkit/references/api/storage/providers.md +109 -0
- package/skills/studiometa-js-toolkit/references/api/test/index.md +214 -0
- package/skills/studiometa-js-toolkit/references/guide/concepts/attribute-grammar.md +93 -0
- package/skills/studiometa-js-toolkit/references/guide/concepts/mutation-engine.md +71 -0
- package/skills/studiometa-js-toolkit/references/guide/concepts/philosophy.md +78 -0
- package/skills/studiometa-js-toolkit/references/guide/concepts/the-registry.md +110 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/autoloading.md +104 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/handling-diagnostics.md +104 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/mount-strategies.md +95 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/scheduling-work.md +124 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/sharing-state.md +218 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/swapping-content.md +92 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/testing-components.md +137 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/typing-components.md +190 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/using-decorators.md +168 -0
- package/skills/studiometa-js-toolkit/references/guide/going-further/using-storage.md +125 -0
- package/skills/studiometa-js-toolkit/references/guide/index.md +163 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/installation.md +144 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/lifecycle-hooks.md +174 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/managing-components.md +229 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/managing-options.md +235 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/managing-refs.md +174 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/using-services.md +218 -0
- package/skills/studiometa-js-toolkit/references/guide/introduction/working-with-events.md +251 -0
- package/skills/studiometa-js-toolkit/references/guide/migration/v3-to-v4.md +373 -0
- package/skills/studiometa-js-toolkit/references/utils/css.md +98 -0
- package/skills/studiometa-js-toolkit/references/utils/dom.md +54 -0
- package/skills/studiometa-js-toolkit/references/utils/easings.md +217 -0
- package/skills/studiometa-js-toolkit/references/utils/focus.md +84 -0
- package/skills/studiometa-js-toolkit/references/utils/history.md +69 -0
- package/skills/studiometa-js-toolkit/references/utils/index.md +53 -0
- package/skills/studiometa-js-toolkit/references/utils/is.md +84 -0
- package/skills/studiometa-js-toolkit/references/utils/load.md +59 -0
- package/skills/studiometa-js-toolkit/references/utils/math.md +129 -0
- package/skills/studiometa-js-toolkit/references/utils/motion.md +218 -0
- package/skills/studiometa-js-toolkit/references/utils/objects.md +68 -0
- package/skills/studiometa-js-toolkit/references/utils/scroll.md +128 -0
- package/skills/studiometa-js-toolkit/references/utils/strings.md +176 -0
- package/skills/studiometa-js-toolkit/references/utils/timing.md +111 -0
- package/skills/studiometa-js-toolkit/references/utils/transitions.md +122 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Strings
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
import { camelCase, kebabCase, pascalCase } from '@studiometa/js-toolkit/utils';
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
## Case
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { camelCase, kebabCase, pascalCase } from '@studiometa/js-toolkit/utils';
|
|
11
|
+
|
|
12
|
+
pascalCase('drag-threshold'); // 'DragThreshold'
|
|
13
|
+
camelCase('drag-threshold'); // 'dragThreshold'
|
|
14
|
+
kebabCase('dragThreshold'); // 'drag-threshold'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
These are the functions the framework itself uses: `kebabCase` turns `dragThreshold` into `data-option-drag-threshold`, and `pascalCase` turns an option name into `optionDragThresholdChanged`.
|
|
18
|
+
|
|
19
|
+
**Four of them are memoised**
|
|
20
|
+
|
|
21
|
+
`pascalCase`, `camelCase`, `kebabCase` and `snakeCase` are `memo`-wrapped, because the framework converts the **same** names on every option read and every handler resolution. `lowerCase`, `upperCase` and `capitalize` are not — they are single-pass and there is nothing to cache.
|
|
22
|
+
|
|
23
|
+
### lowerCase
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
lowerCase(string: string): string
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### upperCase
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
upperCase(string: string): string
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### capitalize
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
capitalize(string: string): string
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### pascalCase
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
pascalCase(string: string): string
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`'foo bar'` → `'FooBar'`. Memoised.
|
|
48
|
+
|
|
49
|
+
### camelCase
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
camelCase(string: string): string
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`'foo bar'` → `'fooBar'`. Memoised.
|
|
56
|
+
|
|
57
|
+
### kebabCase
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
kebabCase(string: string): string
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`'fooBar'` → `'foo-bar'`. Memoised.
|
|
64
|
+
|
|
65
|
+
### snakeCase
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
snakeCase(string: string): string
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`'fooBar'` → `'foo_bar'`. Memoised.
|
|
72
|
+
|
|
73
|
+
## Leading and trailing characters
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
import {
|
|
77
|
+
withLeadingCharacters,
|
|
78
|
+
withoutTrailingCharactersRecursive,
|
|
79
|
+
} from '@studiometa/js-toolkit/utils';
|
|
80
|
+
|
|
81
|
+
withLeadingCharacters('bar', 'foo'); // 'foobar'
|
|
82
|
+
withLeadingCharacters('foobar', 'foo'); // 'foobar' — already there
|
|
83
|
+
withoutTrailingCharactersRecursive('path///', '/'); // 'path'
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The **recursive** pair exists because a URL joined from parts collects separators, and removing one is not the same as removing them all.
|
|
87
|
+
|
|
88
|
+
### withLeadingCharacters
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
withLeadingCharacters(string: string, characters: string): string
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Adds them if absent.
|
|
95
|
+
|
|
96
|
+
### withoutLeadingCharacters
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
withoutLeadingCharacters(string: string, characters: string): string
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Removes them once.
|
|
103
|
+
|
|
104
|
+
### withoutLeadingCharactersRecursive
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
withoutLeadingCharactersRecursive(string: string, characters: string): string
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Removes them as long as they are there.
|
|
111
|
+
|
|
112
|
+
### withTrailingCharacters
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
withTrailingCharacters(string: string, characters: string): string
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Adds them if absent.
|
|
119
|
+
|
|
120
|
+
### withoutTrailingCharacters
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
withoutTrailingCharacters(string: string, characters: string): string
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Removes them once.
|
|
127
|
+
|
|
128
|
+
### withoutTrailingCharactersRecursive
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
withoutTrailingCharactersRecursive(string: string, characters: string): string
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Removes them as long as they are there.
|
|
135
|
+
|
|
136
|
+
## Slashes
|
|
137
|
+
|
|
138
|
+
The four named cases, for the one separator every path uses. Each is the matching `*Characters` function with `'/'` filled in, which is what makes a call site readable at a glance.
|
|
139
|
+
|
|
140
|
+
```js
|
|
141
|
+
import {
|
|
142
|
+
withLeadingSlash,
|
|
143
|
+
withoutLeadingSlash,
|
|
144
|
+
withoutTrailingSlash,
|
|
145
|
+
withTrailingSlash,
|
|
146
|
+
} from '@studiometa/js-toolkit/utils';
|
|
147
|
+
|
|
148
|
+
withLeadingSlash('about'); // '/about'
|
|
149
|
+
withoutLeadingSlash('/about'); // 'about'
|
|
150
|
+
withTrailingSlash('/about'); // '/about/'
|
|
151
|
+
withoutTrailingSlash('/about/'); // '/about'
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### withLeadingSlash
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
withLeadingSlash(string: string): string
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### withoutLeadingSlash
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
withoutLeadingSlash(string: string): string
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### withTrailingSlash
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
withTrailingSlash(string: string): string
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### withoutTrailingSlash
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
withoutTrailingSlash(string: string): string
|
|
176
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Timing
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
import { debounce, memo, throttle, wait } from '@studiometa/js-toolkit/utils';
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
## Rate limiting
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { debounce, throttle } from '@studiometa/js-toolkit/utils';
|
|
11
|
+
|
|
12
|
+
const search = debounce((term) => console.log(term), 300); // after the last call
|
|
13
|
+
const track = throttle((y) => console.log(y), 100); // at most once per delay
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Not for scroll, resize, pointer or frame work**
|
|
17
|
+
|
|
18
|
+
The services already coalesce: the scroll service batches its events into **one `read` per frame**, and the resize service is a `ResizeObserver`. A `throttle` on top of that is a second, worse rate limiter.
|
|
19
|
+
|
|
20
|
+
Reach for these for what the framework does not own — a `fetch` per keystroke, an analytics call, a `localStorage` write.
|
|
21
|
+
|
|
22
|
+
### debounce
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
debounce<Args>(fn: (...args: Args) => void, delay?: number): (...args: Args) => void
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Runs once, after the calls stop.
|
|
29
|
+
|
|
30
|
+
### throttle
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
throttle<Args>(fn: (...args: Args) => void, delay?: number): (...args: Args) => void
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Runs at most once per `delay`.
|
|
37
|
+
|
|
38
|
+
## Waiting
|
|
39
|
+
|
|
40
|
+
### wait
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
wait(delay?: number): Promise<void>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
import { wait } from '@studiometa/js-toolkit/utils';
|
|
48
|
+
|
|
49
|
+
async function pause() {
|
|
50
|
+
await wait(300);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`await wait()` with no argument is one turn of the event loop.
|
|
55
|
+
|
|
56
|
+
For a frame rather than a timer, use [`nextFrame()`](../api/scheduler/nextFrame.md). For "the framework has caught up", use [`whenDOMSettled()`](../api/dom/whenDOMSettled.md) — a timer is the wrong tool for both, and the reason the [test helpers](../api/test/index.md) exist at all.
|
|
57
|
+
|
|
58
|
+
## Memoisation
|
|
59
|
+
|
|
60
|
+
### memo
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
memo<Args extends [] | [key: unknown], Value>(fn: (...args: Args) => Value): Memo<Args, Value>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```js
|
|
67
|
+
import { memo } from '@studiometa/js-toolkit/utils';
|
|
68
|
+
|
|
69
|
+
const expensive = memo((key) => key.toString().repeat(2));
|
|
70
|
+
|
|
71
|
+
expensive('a'); // computed
|
|
72
|
+
expensive('a'); // cached
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Zero or one argument, and that argument is the key.** That is the whole surface, and it is deliberate: a memo keyed on several arguments needs a key strategy, and a key strategy is a decision the caller should make visibly rather than inherit.
|
|
76
|
+
|
|
77
|
+
It is what the four memoised [string converters](strings.md) are built on, and what memoises the active breakpoint name for the length of one task.
|
|
78
|
+
|
|
79
|
+
`cache` and `memoize` from v3 are not shipped — this covers the one case core needed.
|
|
80
|
+
|
|
81
|
+
## Placeholders
|
|
82
|
+
|
|
83
|
+
They earn their place as **defaults**: a parameter defaulting to `noop` removes an `if` from every call site, and one defaulting to `noopValue` removes it from a transform pipeline. Both are one shared function, so a default costs no allocation per call.
|
|
84
|
+
|
|
85
|
+
```js
|
|
86
|
+
import { noop, noopValue } from '@studiometa/js-toolkit/utils';
|
|
87
|
+
|
|
88
|
+
const onDone = noop; // a callback that does nothing
|
|
89
|
+
const identity = noopValue; // a transform that changes nothing
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### noop
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
noop(): void
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### noopValue
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
noopValue<T>(value: T): T
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## What is not here
|
|
105
|
+
|
|
106
|
+
| Not shipped | Write |
|
|
107
|
+
| ------------------------------ | ---------------------------------------------------------- |
|
|
108
|
+
| `nextTick` | `await Promise.resolve()` |
|
|
109
|
+
| `nextMicrotask` | `queueMicrotask(fn)` |
|
|
110
|
+
| `Queue`, `SmartQueue` | the [scheduler](../api/scheduler/index.md)'s lanes |
|
|
111
|
+
| `domScheduler`, `useScheduler` | [`defaultScheduler`](../api/scheduler/defaultScheduler.md) |
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Transitions
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
import { enterTransition, leaveTransition, transition } from '@studiometa/js-toolkit/utils';
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
Promoted into core from the migration set, beside the easings, `spring()` and `smoothTo()`.
|
|
8
|
+
|
|
9
|
+
## transition
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
transition(
|
|
13
|
+
el: HTMLElement,
|
|
14
|
+
nameOrStyles: string | TransitionStyles,
|
|
15
|
+
mode?: 'keep' | 'remove',
|
|
16
|
+
): Promise<void>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
interface TransitionStyles {
|
|
21
|
+
from?: string | string[] | Partial<CSSStyleDeclaration>;
|
|
22
|
+
active?: string | string[] | Partial<CSSStyleDeclaration>;
|
|
23
|
+
to?: string | string[] | Partial<CSSStyleDeclaration>;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The three-state dance every CSS transition needs, with the frame boundaries in the right places:
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
import { transition } from '@studiometa/js-toolkit/utils';
|
|
31
|
+
|
|
32
|
+
const el = document.body;
|
|
33
|
+
|
|
34
|
+
async function run() {
|
|
35
|
+
// The class form: `fade-from`, `fade-active`, `fade-to`.
|
|
36
|
+
await transition(el, 'fade');
|
|
37
|
+
|
|
38
|
+
// The inline-style form.
|
|
39
|
+
await transition(el, {
|
|
40
|
+
from: { opacity: '0' },
|
|
41
|
+
active: { transition: 'opacity 300ms' },
|
|
42
|
+
to: { opacity: '1' },
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Keep the `to` state when it ends.
|
|
46
|
+
await transition(el, 'fade', 'keep');
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`mode` decides what happens at the end: `'remove'` (the default) clears the states, `'keep'` leaves the `to` state applied.
|
|
51
|
+
|
|
52
|
+
Each of the three states takes a class name, an array of class names, or an inline-style object — [`setClassesOrStyles()`](css.md#setclassesorstyles) is what makes that work.
|
|
53
|
+
|
|
54
|
+
## The two directions
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
type TransitionOptions = {
|
|
58
|
+
enterFrom: string;
|
|
59
|
+
enterActive: string;
|
|
60
|
+
enterTo: string;
|
|
61
|
+
enterKeep: boolean;
|
|
62
|
+
leaveFrom: string;
|
|
63
|
+
leaveActive: string;
|
|
64
|
+
leaveTo: string;
|
|
65
|
+
leaveKeep: boolean;
|
|
66
|
+
};
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
One option object, so a component declares eight options once and both calls read the same thing:
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
await enterTransition(this.$el, this.$options);
|
|
73
|
+
await leaveTransition(this.$el, this.$options);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### enterTransition
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
enterTransition(el: HTMLElement, options: TransitionOptions): Promise<void>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### leaveTransition
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
leaveTransition(el: HTMLElement, options: TransitionOptions): Promise<void>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### TRANSITION_OPTIONS
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
const TRANSITION_OPTIONS: Record<string, OptionDefinition>;
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
That option set as a `config.options` fragment, ready to spread:
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
static config = {
|
|
98
|
+
name: 'Panel',
|
|
99
|
+
options: {
|
|
100
|
+
...TRANSITION_OPTIONS,
|
|
101
|
+
open: Boolean,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Which means the eight names, their types and their defaults are declared in **one** place, and a component that wants them writes one line.
|
|
107
|
+
|
|
108
|
+
## Testing them
|
|
109
|
+
|
|
110
|
+
**A transition's end state is asserted by polling, never by `settle()`**
|
|
111
|
+
|
|
112
|
+
A method that starts a transition does not hand it back, and a kept end state lands only after `nextFrame()`, the `from` and `active` states, and either a `transitionend` or one more frame. `settle()` is generous rather than deterministic, which is a flake that passes alone and fails under load.
|
|
113
|
+
|
|
114
|
+
**Polling for an _absence_ is wrong** for the mirror-image reason: `leaveTransition()` clears the other direction's `to` state **synchronously**, so the poll passes before anything has happened.
|
|
115
|
+
|
|
116
|
+
See [`waitFor()`](../api/test/index.md#waitfor).
|
|
117
|
+
|
|
118
|
+
## What is not here
|
|
119
|
+
|
|
120
|
+
Time-based playback, stagger, sequencing, morphing and text splitting are the separate `ui-animation` package. `tween` and `animate` are not shipped.
|
|
121
|
+
|
|
122
|
+
`exit`, `layout` and `layoutId` are not an engine's job — [`viewTransition()`](../api/scheduler/viewTransition.md) solves them, and it is in core.
|