@geomak/ui 1.6.2 → 1.7.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.
- package/dist/index.cjs +140 -121
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +74 -2
- package/dist/index.d.ts +74 -2
- package/dist/index.js +43 -25
- package/dist/index.js.map +1 -1
- package/dist/styles.css +12 -5
- package/package.json +8 -10
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,80 @@
|
|
|
1
1
|
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-CvyV3YPI.cjs';
|
|
2
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
2
|
import React$1 from 'react';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
5
5
|
|
|
6
|
+
interface PortalProps {
|
|
7
|
+
/** Content to render at the target node. */
|
|
8
|
+
children: React$1.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Where to mount the portal.
|
|
11
|
+
* - omitted / undefined → `document.body` (the safe default for viewport-anchored UI)
|
|
12
|
+
* - HTMLElement → that exact node
|
|
13
|
+
* - () => HTMLElement → resolved at mount time (lets you query the DOM after layout)
|
|
14
|
+
* - null → portal is disabled and renders nothing
|
|
15
|
+
*/
|
|
16
|
+
target?: HTMLElement | (() => HTMLElement | null) | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* SSR-safe portal helper. Renders `children` at a detached DOM node — by
|
|
20
|
+
* default `document.body` — so that any `position: fixed` descendant resolves
|
|
21
|
+
* against the real viewport, never against a transformed, filtered, or
|
|
22
|
+
* contained ancestor.
|
|
23
|
+
*
|
|
24
|
+
* ## Why this exists
|
|
25
|
+
*
|
|
26
|
+
* Per CSS spec, **any ancestor with `transform`, `filter`, `perspective`,
|
|
27
|
+
* `will-change`, or `contain: layout|paint|strict` creates a new containing
|
|
28
|
+
* block for `position: fixed` descendants**. The fixed element then resolves
|
|
29
|
+
* its coordinates against that ancestor, not the viewport — silently breaking
|
|
30
|
+
* full-screen overlays, toast viewports, mobile drawers, and loading screens
|
|
31
|
+
* whenever the consumer wraps the component in:
|
|
32
|
+
* - a page-transition library (Framer Motion, view transitions)
|
|
33
|
+
* - a modal/drawer (Storybook's centered-layout wrapper hits this too)
|
|
34
|
+
* - a card with `contain: layout` or `will-change: transform`
|
|
35
|
+
* - a CSS filter (backdrop-blur, drop-shadow on a card)
|
|
36
|
+
*
|
|
37
|
+
* Portaling to `document.body` makes the component **immune** to any
|
|
38
|
+
* styling its consumer applies to ancestor elements. This is the same
|
|
39
|
+
* pattern Radix UI uses internally for every overlay primitive
|
|
40
|
+
* (`Dialog.Portal`, `Tooltip.Portal`, `Popover.Portal`, etc.).
|
|
41
|
+
*
|
|
42
|
+
* ## When to use it
|
|
43
|
+
*
|
|
44
|
+
* Wrap any element that uses `position: fixed` to anchor itself to the
|
|
45
|
+
* viewport — full-screen overlays, toast viewports, drawers, loading
|
|
46
|
+
* screens, command palettes. If you're using a Radix primitive, prefer
|
|
47
|
+
* its built-in `*.Portal` component (they're equivalent but match the
|
|
48
|
+
* primitive's lifecycle).
|
|
49
|
+
*
|
|
50
|
+
* ## SSR / hydration
|
|
51
|
+
*
|
|
52
|
+
* `document.body` isn't available during SSR or the very first client
|
|
53
|
+
* render. The component renders `null` until `useEffect` resolves the
|
|
54
|
+
* target post-mount, then re-renders with the portal in place. Content
|
|
55
|
+
* that needs to appear immediately on mount will paint one frame later
|
|
56
|
+
* — acceptable for overlays (the trigger interaction is what kicks them
|
|
57
|
+
* off anyway).
|
|
58
|
+
*
|
|
59
|
+
* @example Full-screen loading overlay
|
|
60
|
+
* <Portal>
|
|
61
|
+
* <div className="fixed inset-0 bg-black/40 z-overlay">
|
|
62
|
+
* <Spinner />
|
|
63
|
+
* </div>
|
|
64
|
+
* </Portal>
|
|
65
|
+
*
|
|
66
|
+
* @example Mount to a specific element
|
|
67
|
+
* <Portal target={() => document.getElementById('app-root')}>
|
|
68
|
+
* <Drawer />
|
|
69
|
+
* </Portal>
|
|
70
|
+
*
|
|
71
|
+
* @example Conditionally disable (e.g. SSR-only render)
|
|
72
|
+
* <Portal target={shouldPortal ? undefined : null}>
|
|
73
|
+
* <Banner />
|
|
74
|
+
* </Portal>
|
|
75
|
+
*/
|
|
76
|
+
declare function Portal({ children, target }: PortalProps): React$1.ReactPortal;
|
|
77
|
+
|
|
6
78
|
declare const Icon: {
|
|
7
79
|
(): react_jsx_runtime.JSX.Element;
|
|
8
80
|
Moon: ({ color }: {
|
|
@@ -1596,4 +1668,4 @@ declare const Temporal: {
|
|
|
1596
1668
|
TemporalPicker: typeof TemporalPickerBase;
|
|
1597
1669
|
};
|
|
1598
1670
|
|
|
1599
|
-
export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Button, type ButtonProps, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, type DatePickerProps, Drawer, type DrawerProps, Dropdown, type DropdownItem, DropdownPill, type DropdownPillProps, type DropdownProps, type ExpandRowOptions, FadingBase, type FadingBaseProps, FileInput, type FileInputProps, GridCard, type GridCardItem, type GridCardProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MenuBar, MenuBarItem, type MenuBarItemConfig, type MenuBarItemProps, type MenuBarProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, type PaginationOptions, Password, type PasswordProps, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Switch, type SwitchInputProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Temporal, type TemporalPickerProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, ToggleButton, type ToggleButtonProps, type ToggleItem, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Wizard, type WizardProps, type WizardStep, useNotification };
|
|
1671
|
+
export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Button, type ButtonProps, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, type DatePickerProps, Drawer, type DrawerProps, Dropdown, type DropdownItem, DropdownPill, type DropdownPillProps, type DropdownProps, type ExpandRowOptions, FadingBase, type FadingBaseProps, FileInput, type FileInputProps, GridCard, type GridCardItem, type GridCardProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MenuBar, MenuBarItem, type MenuBarItemConfig, type MenuBarItemProps, type MenuBarProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Switch, type SwitchInputProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Temporal, type TemporalPickerProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, ToggleButton, type ToggleButtonProps, type ToggleItem, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Wizard, type WizardProps, type WizardStep, useNotification };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,80 @@
|
|
|
1
1
|
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-CvyV3YPI.js';
|
|
2
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
2
|
import React$1 from 'react';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
5
5
|
|
|
6
|
+
interface PortalProps {
|
|
7
|
+
/** Content to render at the target node. */
|
|
8
|
+
children: React$1.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Where to mount the portal.
|
|
11
|
+
* - omitted / undefined → `document.body` (the safe default for viewport-anchored UI)
|
|
12
|
+
* - HTMLElement → that exact node
|
|
13
|
+
* - () => HTMLElement → resolved at mount time (lets you query the DOM after layout)
|
|
14
|
+
* - null → portal is disabled and renders nothing
|
|
15
|
+
*/
|
|
16
|
+
target?: HTMLElement | (() => HTMLElement | null) | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* SSR-safe portal helper. Renders `children` at a detached DOM node — by
|
|
20
|
+
* default `document.body` — so that any `position: fixed` descendant resolves
|
|
21
|
+
* against the real viewport, never against a transformed, filtered, or
|
|
22
|
+
* contained ancestor.
|
|
23
|
+
*
|
|
24
|
+
* ## Why this exists
|
|
25
|
+
*
|
|
26
|
+
* Per CSS spec, **any ancestor with `transform`, `filter`, `perspective`,
|
|
27
|
+
* `will-change`, or `contain: layout|paint|strict` creates a new containing
|
|
28
|
+
* block for `position: fixed` descendants**. The fixed element then resolves
|
|
29
|
+
* its coordinates against that ancestor, not the viewport — silently breaking
|
|
30
|
+
* full-screen overlays, toast viewports, mobile drawers, and loading screens
|
|
31
|
+
* whenever the consumer wraps the component in:
|
|
32
|
+
* - a page-transition library (Framer Motion, view transitions)
|
|
33
|
+
* - a modal/drawer (Storybook's centered-layout wrapper hits this too)
|
|
34
|
+
* - a card with `contain: layout` or `will-change: transform`
|
|
35
|
+
* - a CSS filter (backdrop-blur, drop-shadow on a card)
|
|
36
|
+
*
|
|
37
|
+
* Portaling to `document.body` makes the component **immune** to any
|
|
38
|
+
* styling its consumer applies to ancestor elements. This is the same
|
|
39
|
+
* pattern Radix UI uses internally for every overlay primitive
|
|
40
|
+
* (`Dialog.Portal`, `Tooltip.Portal`, `Popover.Portal`, etc.).
|
|
41
|
+
*
|
|
42
|
+
* ## When to use it
|
|
43
|
+
*
|
|
44
|
+
* Wrap any element that uses `position: fixed` to anchor itself to the
|
|
45
|
+
* viewport — full-screen overlays, toast viewports, drawers, loading
|
|
46
|
+
* screens, command palettes. If you're using a Radix primitive, prefer
|
|
47
|
+
* its built-in `*.Portal` component (they're equivalent but match the
|
|
48
|
+
* primitive's lifecycle).
|
|
49
|
+
*
|
|
50
|
+
* ## SSR / hydration
|
|
51
|
+
*
|
|
52
|
+
* `document.body` isn't available during SSR or the very first client
|
|
53
|
+
* render. The component renders `null` until `useEffect` resolves the
|
|
54
|
+
* target post-mount, then re-renders with the portal in place. Content
|
|
55
|
+
* that needs to appear immediately on mount will paint one frame later
|
|
56
|
+
* — acceptable for overlays (the trigger interaction is what kicks them
|
|
57
|
+
* off anyway).
|
|
58
|
+
*
|
|
59
|
+
* @example Full-screen loading overlay
|
|
60
|
+
* <Portal>
|
|
61
|
+
* <div className="fixed inset-0 bg-black/40 z-overlay">
|
|
62
|
+
* <Spinner />
|
|
63
|
+
* </div>
|
|
64
|
+
* </Portal>
|
|
65
|
+
*
|
|
66
|
+
* @example Mount to a specific element
|
|
67
|
+
* <Portal target={() => document.getElementById('app-root')}>
|
|
68
|
+
* <Drawer />
|
|
69
|
+
* </Portal>
|
|
70
|
+
*
|
|
71
|
+
* @example Conditionally disable (e.g. SSR-only render)
|
|
72
|
+
* <Portal target={shouldPortal ? undefined : null}>
|
|
73
|
+
* <Banner />
|
|
74
|
+
* </Portal>
|
|
75
|
+
*/
|
|
76
|
+
declare function Portal({ children, target }: PortalProps): React$1.ReactPortal;
|
|
77
|
+
|
|
6
78
|
declare const Icon: {
|
|
7
79
|
(): react_jsx_runtime.JSX.Element;
|
|
8
80
|
Moon: ({ color }: {
|
|
@@ -1596,4 +1668,4 @@ declare const Temporal: {
|
|
|
1596
1668
|
TemporalPicker: typeof TemporalPickerBase;
|
|
1597
1669
|
};
|
|
1598
1670
|
|
|
1599
|
-
export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Button, type ButtonProps, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, type DatePickerProps, Drawer, type DrawerProps, Dropdown, type DropdownItem, DropdownPill, type DropdownPillProps, type DropdownProps, type ExpandRowOptions, FadingBase, type FadingBaseProps, FileInput, type FileInputProps, GridCard, type GridCardItem, type GridCardProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MenuBar, MenuBarItem, type MenuBarItemConfig, type MenuBarItemProps, type MenuBarProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, type PaginationOptions, Password, type PasswordProps, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Switch, type SwitchInputProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Temporal, type TemporalPickerProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, ToggleButton, type ToggleButtonProps, type ToggleItem, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Wizard, type WizardProps, type WizardStep, useNotification };
|
|
1671
|
+
export { AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Button, type ButtonProps, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Checkbox, type CheckboxProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, type DatePickerProps, Drawer, type DrawerProps, Dropdown, type DropdownItem, DropdownPill, type DropdownPillProps, type DropdownProps, type ExpandRowOptions, FadingBase, type FadingBaseProps, FileInput, type FileInputProps, GridCard, type GridCardItem, type GridCardProps, Icon, IconButton, type IconButtonProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, MenuBar, MenuBarItem, type MenuBarItemConfig, type MenuBarItemProps, type MenuBarProps, Modal, type ModalProps, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, type PaginationOptions, Password, type PasswordProps, Portal, type PortalProps, ScalableContainer, type ScalableContainerProps, SearchInput, type SearchInputProps, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Switch, type SwitchInputProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, Temporal, type TemporalPickerProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, ToggleButton, type ToggleButtonProps, type ToggleItem, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Wizard, type WizardProps, type WizardStep, useNotification };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { colors_default } from './chunk-GKXP6OJJ.js';
|
|
2
2
|
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-GKXP6OJJ.js';
|
|
3
|
+
import React10, { createContext, useState, useEffect, useMemo, useContext, useRef, useCallback, useId } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
3
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
-
import React9, { createContext, useMemo, useState, useEffect, useContext, useRef, useCallback, useId } from 'react';
|
|
5
6
|
import * as Dialog from '@radix-ui/react-dialog';
|
|
6
7
|
import { useReducedMotion, AnimatePresence, motion } from 'framer-motion';
|
|
7
8
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
@@ -13,6 +14,18 @@ import * as Popover from '@radix-ui/react-popover';
|
|
|
13
14
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
14
15
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
15
16
|
|
|
17
|
+
function Portal({ children, target }) {
|
|
18
|
+
const [resolved, setResolved] = useState(null);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (target === null) {
|
|
21
|
+
setResolved(null);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const node = typeof target === "function" ? target() : target ?? document.body;
|
|
25
|
+
setResolved(node ?? null);
|
|
26
|
+
}, [target]);
|
|
27
|
+
return resolved ? createPortal(children, resolved) : null;
|
|
28
|
+
}
|
|
16
29
|
var Moon = ({ color = "gray" }) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: color, viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: color, className: "w-8 h-8", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z" }) });
|
|
17
30
|
var Sun = ({ color = "yellow" }) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: color, viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: color, className: "w-8 h-8", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z" }) });
|
|
18
31
|
var CheckCircle = ({ color = "#fff", size = 28 }) => /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 28 28", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14 0.25C6.40625 0.25 0.25 6.40625 0.25 14C0.25 21.5937 6.40625 27.75 14 27.75C21.5937 27.75 27.75 21.5937 27.75 14C27.75 6.40625 21.5937 0.25 14 0.25ZM19.96 11.675C20.0697 11.5496 20.1533 11.4034 20.2057 11.2452C20.2582 11.087 20.2784 10.9199 20.2653 10.7537C20.2522 10.5876 20.206 10.4257 20.1295 10.2777C20.0529 10.1296 19.9475 9.99838 19.8194 9.89168C19.6914 9.78497 19.5433 9.70495 19.3839 9.65633C19.2244 9.6077 19.0569 9.59145 18.8911 9.60853C18.7253 9.62562 18.5646 9.67568 18.4184 9.75579C18.2723 9.8359 18.1436 9.94443 18.04 10.075L12.665 16.5237L9.88375 13.7412C9.648 13.5136 9.33224 13.3876 9.0045 13.3904C8.67675 13.3933 8.36324 13.5247 8.13148 13.7565C7.89972 13.9882 7.76825 14.3018 7.76541 14.6295C7.76256 14.9572 7.88855 15.273 8.11625 15.5087L11.8662 19.2587C11.9891 19.3815 12.1361 19.4773 12.298 19.5401C12.4599 19.6028 12.6331 19.6312 12.8066 19.6233C12.98 19.6154 13.15 19.5715 13.3055 19.4943C13.4611 19.4171 13.5988 19.3084 13.71 19.175L19.96 11.675Z", fill: color }) });
|
|
@@ -735,9 +748,9 @@ var TYPE_BG = {
|
|
|
735
748
|
danger: "bg-status-error"
|
|
736
749
|
};
|
|
737
750
|
var VIEWPORT_CLASSES = {
|
|
738
|
-
"top-right": "fixed top-
|
|
739
|
-
"top-left": "fixed top-
|
|
740
|
-
"top-center": "fixed top-
|
|
751
|
+
"top-right": "fixed top-4 right-4 flex flex-col items-end",
|
|
752
|
+
"top-left": "fixed top-4 left-4 flex flex-col items-start",
|
|
753
|
+
"top-center": "fixed top-4 left-1/2 flex flex-col items-center -translate-x-1/2",
|
|
741
754
|
"bottom-right": "fixed bottom-4 right-4 flex flex-col-reverse items-end",
|
|
742
755
|
"bottom-left": "fixed bottom-4 left-4 flex flex-col-reverse items-start",
|
|
743
756
|
"bottom-center": "fixed bottom-4 left-1/2 flex flex-col-reverse items-center -translate-x-1/2"
|
|
@@ -790,6 +803,7 @@ function NotificationItem({
|
|
|
790
803
|
return /* @__PURE__ */ jsx(
|
|
791
804
|
motion.div,
|
|
792
805
|
{
|
|
806
|
+
className: "pointer-events-auto",
|
|
793
807
|
initial,
|
|
794
808
|
animate: { opacity: 1, y: 0, scale: 1 },
|
|
795
809
|
exit: {
|
|
@@ -875,13 +889,13 @@ function NotificationProvider({
|
|
|
875
889
|
};
|
|
876
890
|
return /* @__PURE__ */ jsx(NotificationContext.Provider, { value: { open, close }, children: /* @__PURE__ */ jsxs(Toast.Provider, { swipeDirection: position.endsWith("right") ? "right" : position.endsWith("left") ? "left" : "up", children: [
|
|
877
891
|
children,
|
|
878
|
-
/* @__PURE__ */ jsx(
|
|
892
|
+
/* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
|
|
879
893
|
Toast.Viewport,
|
|
880
894
|
{
|
|
881
895
|
asChild: true,
|
|
882
896
|
className: [
|
|
883
897
|
VIEWPORT_CLASSES[position],
|
|
884
|
-
"z-[500000] gap-2 w-[
|
|
898
|
+
"z-[500000] gap-2 w-[332px] outline-none pointer-events-none"
|
|
885
899
|
].join(" "),
|
|
886
900
|
children: /* @__PURE__ */ jsx("ul", { children: /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: notifications.map((n) => /* @__PURE__ */ jsx(
|
|
887
901
|
NotificationItem,
|
|
@@ -894,7 +908,7 @@ function NotificationProvider({
|
|
|
894
908
|
n.id
|
|
895
909
|
)) }) })
|
|
896
910
|
}
|
|
897
|
-
)
|
|
911
|
+
) })
|
|
898
912
|
] }) });
|
|
899
913
|
}
|
|
900
914
|
function useNotification() {
|
|
@@ -921,20 +935,24 @@ function LoadingSpinner({ prompt }) {
|
|
|
921
935
|
}
|
|
922
936
|
return () => timeouts.forEach(clearTimeout);
|
|
923
937
|
}, [letterRefs, letters.length]);
|
|
924
|
-
return
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
{
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
938
|
+
return (
|
|
939
|
+
// Portaled so the full-screen overlay always covers the real viewport,
|
|
940
|
+
// not whatever container the consumer renders LoadingSpinner inside.
|
|
941
|
+
/* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs("div", { className: "fixed top-0 bottom-0 right-0 left-0 bg-oxford-blue-700-opaque z-[8000000] flex flex-col gap-5 items-center justify-start pt-80", children: [
|
|
942
|
+
/* @__PURE__ */ jsx("div", { className: "border-r-prussian-blue border-l-prussian-blue border-t-white border-b-white border-[10px] w-[80px] h-[80px] rounded-xl shapeshift" }),
|
|
943
|
+
/* @__PURE__ */ jsx("div", { className: "text-prussian-blue dark:text-white text-3xl font-bold", children: letters.map((letter, index) => /* @__PURE__ */ jsx(
|
|
944
|
+
"span",
|
|
945
|
+
{
|
|
946
|
+
className: "select-none",
|
|
947
|
+
ref: (ref) => {
|
|
948
|
+
letterRefs[index] = ref;
|
|
949
|
+
},
|
|
950
|
+
children: letter
|
|
932
951
|
},
|
|
933
|
-
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
] });
|
|
952
|
+
index
|
|
953
|
+
)) })
|
|
954
|
+
] }) })
|
|
955
|
+
);
|
|
938
956
|
}
|
|
939
957
|
function FadingBase({
|
|
940
958
|
className = "",
|
|
@@ -1404,7 +1422,7 @@ function Wizard({ children, steps, storageKey = "po_wizard" }) {
|
|
|
1404
1422
|
children
|
|
1405
1423
|
] });
|
|
1406
1424
|
}
|
|
1407
|
-
var SearchInput =
|
|
1425
|
+
var SearchInput = React10.forwardRef(function SearchInput2({
|
|
1408
1426
|
value,
|
|
1409
1427
|
onChange,
|
|
1410
1428
|
disabled,
|
|
@@ -1668,7 +1686,7 @@ function TableBody({
|
|
|
1668
1686
|
setVisibleRows(initial);
|
|
1669
1687
|
}
|
|
1670
1688
|
}, [rows]);
|
|
1671
|
-
return /* @__PURE__ */ jsx("tbody", { className: "w-full", children: rows.map((row, i) => /* @__PURE__ */ jsxs(
|
|
1689
|
+
return /* @__PURE__ */ jsx("tbody", { className: "w-full", children: rows.map((row, i) => /* @__PURE__ */ jsxs(React10.Fragment, { children: [
|
|
1672
1690
|
/* @__PURE__ */ jsxs(
|
|
1673
1691
|
"tr",
|
|
1674
1692
|
{
|
|
@@ -2118,7 +2136,7 @@ function AppShell({
|
|
|
2118
2136
|
footer: sidebarFooter
|
|
2119
2137
|
}
|
|
2120
2138
|
),
|
|
2121
|
-
hasSidebar && isMobile && /* @__PURE__ */ jsxs(
|
|
2139
|
+
hasSidebar && isMobile && /* @__PURE__ */ jsxs(Portal, { children: [
|
|
2122
2140
|
/* @__PURE__ */ jsx(AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsx(
|
|
2123
2141
|
motion.div,
|
|
2124
2142
|
{
|
|
@@ -2249,7 +2267,7 @@ function ThemeProvider({
|
|
|
2249
2267
|
className = "",
|
|
2250
2268
|
style
|
|
2251
2269
|
}) {
|
|
2252
|
-
const id =
|
|
2270
|
+
const id = React10.useId().replace(/:/g, "");
|
|
2253
2271
|
const scopeClass = `geo-th-${id}`;
|
|
2254
2272
|
const divRef = useRef(null);
|
|
2255
2273
|
useEffect(() => {
|
|
@@ -3281,6 +3299,6 @@ Temporal.DatePicker = DatePickerBase;
|
|
|
3281
3299
|
Temporal.TemporalPicker = TemporalPickerBase;
|
|
3282
3300
|
var DatePicker_default = Temporal;
|
|
3283
3301
|
|
|
3284
|
-
export { AppShell, AutoComplete, Button, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ContextMenu, Drawer, Dropdown, DropdownPill, FadingBase, FileInput, GridCard, icons_default as Icon, IconButton, List2 as List, LoadingSpinner, MenuBar, MenuBarItem, Modal, NotificationProvider, NumberInput, OpaqueGridCard, Password, ScalableContainer, SearchInput_default as SearchInput, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Switch, Table, Tabs, DatePicker_default as Temporal, TextInput, ThemeProvider, ThemeSwitch, ToggleButton, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Wizard, useNotification };
|
|
3302
|
+
export { AppShell, AutoComplete, Button, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ContextMenu, Drawer, Dropdown, DropdownPill, FadingBase, FileInput, GridCard, icons_default as Icon, IconButton, List2 as List, LoadingSpinner, MenuBar, MenuBarItem, Modal, NotificationProvider, NumberInput, OpaqueGridCard, Password, Portal, ScalableContainer, SearchInput_default as SearchInput, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Switch, Table, Tabs, DatePicker_default as Temporal, TextInput, ThemeProvider, ThemeSwitch, ToggleButton, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Wizard, useNotification };
|
|
3285
3303
|
//# sourceMappingURL=index.js.map
|
|
3286
3304
|
//# sourceMappingURL=index.js.map
|