@almadar/ui 5.130.0 → 5.132.0

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.
@@ -2361,6 +2361,21 @@ function useDragReorder(initialItems, onReorder) {
2361
2361
  getItemProps
2362
2362
  };
2363
2363
  }
2364
+ function useMediaQuery(query) {
2365
+ const subscribe = react.useCallback(
2366
+ (onChange) => {
2367
+ const mql = window.matchMedia(query);
2368
+ mql.addEventListener("change", onChange);
2369
+ return () => mql.removeEventListener("change", onChange);
2370
+ },
2371
+ [query]
2372
+ );
2373
+ return react.useSyncExternalStore(
2374
+ subscribe,
2375
+ () => window.matchMedia(query).matches,
2376
+ () => false
2377
+ );
2378
+ }
2364
2379
  function useInfiniteScroll(onLoadMore, options = {}) {
2365
2380
  const { rootMargin = "200px", hasMore = true, isLoading = false } = options;
2366
2381
  const observerRef = react.useRef(null);
@@ -2862,6 +2877,7 @@ exports.useGitHubRepos = useGitHubRepos;
2862
2877
  exports.useGitHubStatus = useGitHubStatus;
2863
2878
  exports.useInfiniteScroll = useInfiniteScroll;
2864
2879
  exports.useLongPress = useLongPress;
2880
+ exports.useMediaQuery = useMediaQuery;
2865
2881
  exports.useOrbitalHistory = useOrbitalHistory;
2866
2882
  exports.usePreview = usePreview;
2867
2883
  exports.usePullToRefresh = usePullToRefresh;
@@ -750,6 +750,15 @@ interface DragReorderResult<T> {
750
750
  }
751
751
  declare function useDragReorder<T>(initialItems: T[], onReorder: (fromIndex: number, toIndex: number, item: T) => void): DragReorderResult<T>;
752
752
 
753
+ /**
754
+ * Reactively track a CSS media query (e.g. `'(pointer: coarse)'`).
755
+ *
756
+ * Components whose LAYOUT MATH depends on a media feature (a JS-computed
757
+ * grid track, an inline-action budget) can't express it in CSS alone —
758
+ * this hook is the one owner for that. SSR-safe: `false` on the server.
759
+ */
760
+ declare function useMediaQuery(query: string): boolean;
761
+
753
762
  interface InfiniteScrollOptions {
754
763
  /** Root margin for IntersectionObserver (default: "200px") */
755
764
  rootMargin?: string;
@@ -1008,4 +1017,4 @@ declare function useGitHubBranches(owner: string, repo: string, enabled?: boolea
1008
1017
  branches: string[];
1009
1018
  }>, Error>;
1010
1019
 
1011
- export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type HistoryChangeSummary, type HistoryTimelineItem, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type RevertResult, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type UseFileSystemResult, type UseOrbitalHistoryOptions, type UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEventBus, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
1020
+ export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type HistoryChangeSummary, type HistoryTimelineItem, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type RevertResult, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type UseFileSystemResult, type UseOrbitalHistoryOptions, type UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEventBus, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
@@ -750,6 +750,15 @@ interface DragReorderResult<T> {
750
750
  }
751
751
  declare function useDragReorder<T>(initialItems: T[], onReorder: (fromIndex: number, toIndex: number, item: T) => void): DragReorderResult<T>;
752
752
 
753
+ /**
754
+ * Reactively track a CSS media query (e.g. `'(pointer: coarse)'`).
755
+ *
756
+ * Components whose LAYOUT MATH depends on a media feature (a JS-computed
757
+ * grid track, an inline-action budget) can't express it in CSS alone —
758
+ * this hook is the one owner for that. SSR-safe: `false` on the server.
759
+ */
760
+ declare function useMediaQuery(query: string): boolean;
761
+
753
762
  interface InfiniteScrollOptions {
754
763
  /** Root margin for IntersectionObserver (default: "200px") */
755
764
  rootMargin?: string;
@@ -1008,4 +1017,4 @@ declare function useGitHubBranches(owner: string, repo: string, enabled?: boolea
1008
1017
  branches: string[];
1009
1018
  }>, Error>;
1010
1019
 
1011
- export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type HistoryChangeSummary, type HistoryTimelineItem, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type RevertResult, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type UseFileSystemResult, type UseOrbitalHistoryOptions, type UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEventBus, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
1020
+ export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type HistoryChangeSummary, type HistoryTimelineItem, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type RevertResult, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type UseFileSystemResult, type UseOrbitalHistoryOptions, type UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEventBus, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
@@ -2359,6 +2359,21 @@ function useDragReorder(initialItems, onReorder) {
2359
2359
  getItemProps
2360
2360
  };
2361
2361
  }
2362
+ function useMediaQuery(query) {
2363
+ const subscribe = useCallback(
2364
+ (onChange) => {
2365
+ const mql = window.matchMedia(query);
2366
+ mql.addEventListener("change", onChange);
2367
+ return () => mql.removeEventListener("change", onChange);
2368
+ },
2369
+ [query]
2370
+ );
2371
+ return useSyncExternalStore(
2372
+ subscribe,
2373
+ () => window.matchMedia(query).matches,
2374
+ () => false
2375
+ );
2376
+ }
2362
2377
  function useInfiniteScroll(onLoadMore, options = {}) {
2363
2378
  const { rootMargin = "200px", hasMore = true, isLoading = false } = options;
2364
2379
  const observerRef = useRef(null);
@@ -2830,4 +2845,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
2830
2845
  });
2831
2846
  }
2832
2847
 
2833
- export { ALMADAR_DND_MIME, DEFAULT_SLOTS, I18nProvider, SharedEntityStoreContext, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useUISlotManager, useValidation };
2848
+ export { ALMADAR_DND_MIME, DEFAULT_SLOTS, I18nProvider, SharedEntityStoreContext, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useUISlotManager, useValidation };
@@ -3548,7 +3548,7 @@ var Button = React12__namespace.default.forwardRef(
3548
3548
  "cursor-pointer",
3549
3549
  "chrome-button",
3550
3550
  "transition-all duration-normal",
3551
- "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-offset-[length:var(--focus-ring-offset)]",
3551
+ "focus:outline-none focus-visible:ring-[length:var(--focus-ring-width)] focus-visible:ring-ring focus-visible:ring-offset-[length:var(--focus-ring-offset)]",
3552
3552
  "disabled:opacity-50 disabled:cursor-not-allowed",
3553
3553
  variantStyles2[variant],
3554
3554
  sizeStyles[size],
@@ -3613,6 +3613,8 @@ var Badge = React12__namespace.default.forwardRef(
3613
3613
  };
3614
3614
  const iconPx = size === "lg" ? 20 : 16;
3615
3615
  const resolvedIcon = iconAsset?.url ? /* @__PURE__ */ jsxRuntime.jsx(AtlasImage, { asset: iconAsset, size: iconPx, alt: iconAsset.name ?? iconAsset.category ?? "", className: "flex-shrink-0" }) : typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, className: iconSizes[size] }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, className: iconSizes[size] }) : null;
3616
+ const hasText = Boolean(children) || amount != null || label !== void 0 && label !== null && label !== "";
3617
+ if (!hasText && !resolvedIcon && !onRemove) return null;
3616
3618
  return /* @__PURE__ */ jsxRuntime.jsxs(
3617
3619
  "span",
3618
3620
  {
@@ -3639,7 +3641,7 @@ var Badge = React12__namespace.default.forwardRef(
3639
3641
  },
3640
3642
  className: cn(
3641
3643
  "inline-flex items-center justify-center rounded-sm",
3642
- "hover:bg-foreground/10 focus:outline-none focus:ring-1 focus:ring-ring",
3644
+ "hover:bg-foreground/10 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
3643
3645
  "transition-colors",
3644
3646
  size === "sm" ? "w-4 h-4 ml-0.5" : size === "md" ? "w-5 h-5 ml-1" : "w-6 h-6 ml-1"
3645
3647
  ),
@@ -3527,7 +3527,7 @@ var Button = React12__default.forwardRef(
3527
3527
  "cursor-pointer",
3528
3528
  "chrome-button",
3529
3529
  "transition-all duration-normal",
3530
- "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-offset-[length:var(--focus-ring-offset)]",
3530
+ "focus:outline-none focus-visible:ring-[length:var(--focus-ring-width)] focus-visible:ring-ring focus-visible:ring-offset-[length:var(--focus-ring-offset)]",
3531
3531
  "disabled:opacity-50 disabled:cursor-not-allowed",
3532
3532
  variantStyles2[variant],
3533
3533
  sizeStyles[size],
@@ -3592,6 +3592,8 @@ var Badge = React12__default.forwardRef(
3592
3592
  };
3593
3593
  const iconPx = size === "lg" ? 20 : 16;
3594
3594
  const resolvedIcon = iconAsset?.url ? /* @__PURE__ */ jsx(AtlasImage, { asset: iconAsset, size: iconPx, alt: iconAsset.name ?? iconAsset.category ?? "", className: "flex-shrink-0" }) : typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon ? /* @__PURE__ */ jsx(Icon, { icon, className: iconSizes[size] }) : null;
3595
+ const hasText = Boolean(children) || amount != null || label !== void 0 && label !== null && label !== "";
3596
+ if (!hasText && !resolvedIcon && !onRemove) return null;
3595
3597
  return /* @__PURE__ */ jsxs(
3596
3598
  "span",
3597
3599
  {
@@ -3618,7 +3620,7 @@ var Badge = React12__default.forwardRef(
3618
3620
  },
3619
3621
  className: cn(
3620
3622
  "inline-flex items-center justify-center rounded-sm",
3621
- "hover:bg-foreground/10 focus:outline-none focus:ring-1 focus:ring-ring",
3623
+ "hover:bg-foreground/10 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
3622
3624
  "transition-colors",
3623
3625
  size === "sm" ? "w-4 h-4 ml-0.5" : size === "md" ? "w-5 h-5 ml-1" : "w-6 h-6 ml-1"
3624
3626
  ),