@akashjs/runtime 0.1.0 → 0.1.1

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/dist/index.js CHANGED
@@ -921,6 +921,55 @@ function useWindowSize() {
921
921
  height: (() => height())
922
922
  };
923
923
  }
924
+ function useClickOutside(target, handler, options = {}) {
925
+ if (typeof document === "undefined") return () => {
926
+ };
927
+ const {
928
+ events = ["pointerdown"],
929
+ ignore = [],
930
+ active = true
931
+ } = options;
932
+ let isActive = active;
933
+ function getTarget() {
934
+ return typeof target === "function" ? target() : target;
935
+ }
936
+ function shouldIgnore(event) {
937
+ const eventTarget = event.target;
938
+ if (!eventTarget) return false;
939
+ for (const pattern of ignore) {
940
+ if (typeof pattern === "string") {
941
+ if (eventTarget.closest(pattern)) return true;
942
+ } else {
943
+ if (pattern === eventTarget || pattern.contains(eventTarget)) return true;
944
+ }
945
+ }
946
+ return false;
947
+ }
948
+ function listener(event) {
949
+ if (!isActive) return;
950
+ const el = getTarget();
951
+ if (!el) return;
952
+ const eventTarget = event.target;
953
+ if (el === eventTarget || el.contains(eventTarget)) return;
954
+ if (shouldIgnore(event)) return;
955
+ handler(event);
956
+ }
957
+ for (const eventName of events) {
958
+ document.addEventListener(eventName, listener, { passive: true, capture: true });
959
+ }
960
+ const dispose = () => {
961
+ for (const eventName of events) {
962
+ document.removeEventListener(eventName, listener, { capture: true });
963
+ }
964
+ };
965
+ dispose.enable = () => {
966
+ isActive = true;
967
+ };
968
+ dispose.disable = () => {
969
+ isActive = false;
970
+ };
971
+ return dispose;
972
+ }
924
973
 
925
974
  // src/portal.ts
926
975
  var Portal = defineComponent((ctx) => {
@@ -4546,6 +4595,6 @@ function globalEventBus() {
4546
4595
  return globalBus;
4547
4596
  }
4548
4597
 
4549
- export { Await, ErrorBoundary, HYDRATE_ATTR, Image, LWWRegister, Portal, Suspense, Switch, Transition, VirtualFor, animate, animateGroup, animateSequence, animateSpring, animateStagger, applyDirective, applyStyles, assignTransitionName, awaitSignal, bindClass, bindClasses, bindDimensions, bindElement, bindGroup, bindGroupItem, bindScroll, bindStyle, bindStyles, calculateRange, capitalize, chain, checkForLeaks, claimElement, claimText, clearProviders, clearQueryState, clearStores, collectSSRHead, countOps, createApp, createDataTable, createEventBus, createFlip, createInjector, createLocalTransport, createMachine, createOfflineStore, createSlots, createSync, createTimer, createToaster, createWebSocketTransport, css, currency, cx, date, deepSignal, defer, defineAsyncComponent, defineCustomElement, defineDirective, defineFormAction, definePipe, definePlugin, defineProvider, defineSnippet, defineStates, defineStore, directiveFromFn, disableLeakDetection, discoverStaticRoutes, easings, enableLeakDetection, enableSnapshots, enterTransition, escapeHtml, exitTransition, findHydrationBoundaries, flip, formatProfile, generatePaths, generateSWScript, generateSitemap, generateTransitionCSS, getActiveEffects, getLeakDetectionStats, getProfileSummary, getQueryParams, getSuspenseContext, getTransitionClasses, globalEventBus, hasSlot, hydrate, injectProvider, inspect, isDeepSignal, isHydrationActive, isLeakDetectionEnabled, isProfiling, isServerRendering, json, keyframes, longestIncreasingSubsequence, lowercase, match, measureAsync, measureSync, nodeToHtml, number, onEvent, percent, pipe, plural, prerender, progressiveHydrate, reconcileKeys, recordPerfEntry, registerPending, registerServiceWorker, relativeTime, removeDirectives, removeQueryState, renderHeadToString, renderNodes, renderSlot, renderSwitch, renderToStream, renderToString, renderToStringSync, reportLeaks, resetQueryState, sitemapFromResults, ssrElement, ssrRaw, ssrText, startProfiling, startViewTransition, stopProfiling, subscribePush, supportsViewTransitions, titleCase, toCustomElement, toRaw, trackEffect, trim, truncate, tweened, untrackEffect, updateDirective, uppercase, urlToFilePath, useAnnounce, useBreakpoint, useClipboard, useCounter, useDebounce, useFocusTrap, useGeolocation, useHead, useInfiniteScroll, useInterval, useKeyboard, useMediaQuery, useOnline, useOpenGraph, usePrevious, useQueryState, useQueryStates, useSEO, useStorage, useStructuredData, useTheme, useThrottle, useTimeout, useToggle, useTwitterCard, useVirtualList, useWindowSize, vAutoFocus, vClickOutside, vIntersect, vLongPress, vResize, viewTransitionCSS, watch, watchDebounced, watchOnce, withModifiers };
4598
+ export { Await, ErrorBoundary, HYDRATE_ATTR, Image, LWWRegister, Portal, Suspense, Switch, Transition, VirtualFor, animate, animateGroup, animateSequence, animateSpring, animateStagger, applyDirective, applyStyles, assignTransitionName, awaitSignal, bindClass, bindClasses, bindDimensions, bindElement, bindGroup, bindGroupItem, bindScroll, bindStyle, bindStyles, calculateRange, capitalize, chain, checkForLeaks, claimElement, claimText, clearProviders, clearQueryState, clearStores, collectSSRHead, countOps, createApp, createDataTable, createEventBus, createFlip, createInjector, createLocalTransport, createMachine, createOfflineStore, createSlots, createSync, createTimer, createToaster, createWebSocketTransport, css, currency, cx, date, deepSignal, defer, defineAsyncComponent, defineCustomElement, defineDirective, defineFormAction, definePipe, definePlugin, defineProvider, defineSnippet, defineStates, defineStore, directiveFromFn, disableLeakDetection, discoverStaticRoutes, easings, enableLeakDetection, enableSnapshots, enterTransition, escapeHtml, exitTransition, findHydrationBoundaries, flip, formatProfile, generatePaths, generateSWScript, generateSitemap, generateTransitionCSS, getActiveEffects, getLeakDetectionStats, getProfileSummary, getQueryParams, getSuspenseContext, getTransitionClasses, globalEventBus, hasSlot, hydrate, injectProvider, inspect, isDeepSignal, isHydrationActive, isLeakDetectionEnabled, isProfiling, isServerRendering, json, keyframes, longestIncreasingSubsequence, lowercase, match, measureAsync, measureSync, nodeToHtml, number, onEvent, percent, pipe, plural, prerender, progressiveHydrate, reconcileKeys, recordPerfEntry, registerPending, registerServiceWorker, relativeTime, removeDirectives, removeQueryState, renderHeadToString, renderNodes, renderSlot, renderSwitch, renderToStream, renderToString, renderToStringSync, reportLeaks, resetQueryState, sitemapFromResults, ssrElement, ssrRaw, ssrText, startProfiling, startViewTransition, stopProfiling, subscribePush, supportsViewTransitions, titleCase, toCustomElement, toRaw, trackEffect, trim, truncate, tweened, untrackEffect, updateDirective, uppercase, urlToFilePath, useAnnounce, useBreakpoint, useClickOutside, useClipboard, useCounter, useDebounce, useFocusTrap, useGeolocation, useHead, useInfiniteScroll, useInterval, useKeyboard, useMediaQuery, useOnline, useOpenGraph, usePrevious, useQueryState, useQueryStates, useSEO, useStorage, useStructuredData, useTheme, useThrottle, useTimeout, useToggle, useTwitterCard, useVirtualList, useWindowSize, vAutoFocus, vClickOutside, vIntersect, vLongPress, vResize, viewTransitionCSS, watch, watchDebounced, watchOnce, withModifiers };
4550
4599
  //# sourceMappingURL=index.js.map
4551
4600
  //# sourceMappingURL=index.js.map