@oxy.so/bloom 4.4.0 → 4.6.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/README.md +1 -1
- package/docs/adoption-matrix.mdx +12 -12
- package/docs/code.mdx +12 -0
- package/docs/context-menu.mdx +2 -0
- package/docs/dropdown-menu.mdx +21 -0
- package/docs/icons.mdx +2 -2
- package/docs/layout.mdx +36 -0
- package/docs/menubar.mdx +6 -2
- package/docs/page-header.mdx +16 -0
- package/docs/popover.mdx +4 -2
- package/docs/segmented-control.mdx +12 -0
- package/docs/select.mdx +19 -0
- package/docs/sidebar.mdx +6 -0
- package/docs/tabs.mdx +12 -0
- package/lib/commonjs/agent-chat/index.web.js.map +1 -1
- package/lib/commonjs/ai-chat/index.web.js.map +1 -1
- package/lib/commonjs/alert-dialog/index.web.js +10 -1
- package/lib/commonjs/alert-dialog/index.web.js.map +1 -1
- package/lib/commonjs/avatar-group/index.web.js.map +1 -1
- package/lib/commonjs/bottom-sheet/index.web.js.map +1 -1
- package/lib/commonjs/code/index.js +13 -0
- package/lib/commonjs/code/index.js.map +1 -1
- package/lib/commonjs/command/index.web.js +5 -0
- package/lib/commonjs/command/index.web.js.map +1 -1
- package/lib/commonjs/composer-loader/ComposerLoader.web.js +9 -0
- package/lib/commonjs/composer-loader/ComposerLoader.web.js.map +1 -1
- package/lib/commonjs/composer-loader/index.web.js.map +1 -1
- package/lib/commonjs/composer-panel/index.web.js.map +1 -1
- package/lib/commonjs/connection-dots/index.web.js.map +1 -1
- package/lib/commonjs/connection-status/index.web.js.map +1 -1
- package/lib/commonjs/content-panel/index.web.js.map +1 -1
- package/lib/commonjs/context-menu/ContextMenu.web.js +22 -4
- package/lib/commonjs/context-menu/ContextMenu.web.js.map +1 -1
- package/lib/commonjs/context-menu/context.js.map +1 -1
- package/lib/commonjs/context-menu/index.web.js.map +1 -1
- package/lib/commonjs/dialog/Dialog.web.js +14 -0
- package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
- package/lib/commonjs/dialog/index.web.js.map +1 -1
- package/lib/commonjs/dropdown-menu/DropdownMenu.web.js +22 -2
- package/lib/commonjs/dropdown-menu/DropdownMenu.web.js.map +1 -1
- package/lib/commonjs/dropdown-menu/index.web.js.map +1 -1
- package/lib/commonjs/floating/FloatingPanel.js +42 -33
- package/lib/commonjs/floating/FloatingPanel.js.map +1 -1
- package/lib/commonjs/floating/escape-stack.js +90 -0
- package/lib/commonjs/floating/escape-stack.js.map +1 -0
- package/lib/commonjs/floating/menu-keyboard.js +238 -0
- package/lib/commonjs/floating/menu-keyboard.js.map +1 -0
- package/lib/commonjs/floating/menu-sub-flyout.js +28 -16
- package/lib/commonjs/floating/menu-sub-flyout.js.map +1 -1
- package/lib/commonjs/fonts/index.web.js.map +1 -1
- package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js +10 -0
- package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
- package/lib/commonjs/frosted-icon-button/index.web.js.map +1 -1
- package/lib/commonjs/hooks/roving-focus.js +192 -0
- package/lib/commonjs/hooks/roving-focus.js.map +1 -0
- package/lib/commonjs/hover-card/index.web.js.map +1 -1
- package/lib/commonjs/icons/remix/RiBookReadLine.js +12 -0
- package/lib/commonjs/icons/remix/RiBookReadLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiBugLine.js +12 -0
- package/lib/commonjs/icons/remix/RiBugLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiChat1Line.js +12 -0
- package/lib/commonjs/icons/remix/RiChat1Line.js.map +1 -0
- package/lib/commonjs/icons/remix/RiCloudLine.js +12 -0
- package/lib/commonjs/icons/remix/RiCloudLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiCodeLine.js +12 -0
- package/lib/commonjs/icons/remix/RiCodeLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiCpuLine.js +12 -0
- package/lib/commonjs/icons/remix/RiCpuLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiFloodLine.js +12 -0
- package/lib/commonjs/icons/remix/RiFloodLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiLockUnlockLine.js +12 -0
- package/lib/commonjs/icons/remix/RiLockUnlockLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js +12 -0
- package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiPlayCircleLine.js +12 -0
- package/lib/commonjs/icons/remix/RiPlayCircleLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiRocket2Line.js +12 -0
- package/lib/commonjs/icons/remix/RiRocket2Line.js.map +1 -0
- package/lib/commonjs/icons/remix/RiServerLine.js +12 -0
- package/lib/commonjs/icons/remix/RiServerLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiShareBoxLine.js +12 -0
- package/lib/commonjs/icons/remix/RiShareBoxLine.js.map +1 -0
- package/lib/commonjs/icons/remix/RiTv2Line.js +12 -0
- package/lib/commonjs/icons/remix/RiTv2Line.js.map +1 -0
- package/lib/commonjs/icons/remix/index.js +98 -0
- package/lib/commonjs/icons/remix/index.js.map +1 -1
- package/lib/commonjs/index.js +21 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +21 -0
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/layout/StickySection.js +106 -0
- package/lib/commonjs/layout/StickySection.js.map +1 -0
- package/lib/commonjs/layout/header-dock.js +61 -0
- package/lib/commonjs/layout/header-dock.js.map +1 -0
- package/lib/commonjs/layout/index.js +20 -0
- package/lib/commonjs/layout/index.js.map +1 -1
- package/lib/commonjs/list/index.web.js.map +1 -1
- package/lib/commonjs/loading/Loading.js +21 -157
- package/lib/commonjs/loading/Loading.js.map +1 -1
- package/lib/commonjs/loading/Loading.web.js +23 -157
- package/lib/commonjs/loading/Loading.web.js.map +1 -1
- package/lib/commonjs/loading/LoadingBase.js +202 -0
- package/lib/commonjs/loading/LoadingBase.js.map +1 -0
- package/lib/commonjs/loading/index.web.js.map +1 -1
- package/lib/commonjs/media-flight/index.web.js.map +1 -1
- package/lib/commonjs/menubar/Menubar.js +31 -123
- package/lib/commonjs/menubar/Menubar.js.map +1 -1
- package/lib/commonjs/menubar/Menubar.web.js +33 -114
- package/lib/commonjs/menubar/Menubar.web.js.map +1 -1
- package/lib/commonjs/menubar/MenubarBase.js +154 -0
- package/lib/commonjs/menubar/MenubarBase.js.map +1 -0
- package/lib/commonjs/menubar/index.web.js.map +1 -1
- package/lib/commonjs/page-header/PageHeader.js +38 -14
- package/lib/commonjs/page-header/PageHeader.js.map +1 -1
- package/lib/commonjs/popover/index.web.js.map +1 -1
- package/lib/commonjs/popover/parts.js +69 -11
- package/lib/commonjs/popover/parts.js.map +1 -1
- package/lib/commonjs/popover/surface.js +39 -13
- package/lib/commonjs/popover/surface.js.map +1 -1
- package/lib/commonjs/portal/index.web.js.map +1 -1
- package/lib/commonjs/progressive-blur/index.web.js.map +1 -1
- package/lib/commonjs/scroll/index.web.js.map +1 -1
- package/lib/commonjs/segmented-control/SegmentedControl.js +36 -1
- package/lib/commonjs/segmented-control/SegmentedControl.js.map +1 -1
- package/lib/commonjs/select/Select.js +6 -81
- package/lib/commonjs/select/Select.js.map +1 -1
- package/lib/commonjs/select/Select.web.js +147 -85
- package/lib/commonjs/select/Select.web.js.map +1 -1
- package/lib/commonjs/select/index.js +4 -4
- package/lib/commonjs/select/index.js.map +1 -1
- package/lib/commonjs/select/index.web.js +4 -4
- package/lib/commonjs/select/index.web.js.map +1 -1
- package/lib/commonjs/select/shared.js +110 -5
- package/lib/commonjs/select/shared.js.map +1 -1
- package/lib/commonjs/sidebar/Sidebar.js +121 -108
- package/lib/commonjs/sidebar/Sidebar.js.map +1 -1
- package/lib/commonjs/sidebar/SidebarRail.js +70 -48
- package/lib/commonjs/sidebar/SidebarRail.js.map +1 -1
- package/lib/commonjs/sidebar/SidebarTeamMenu.js +1 -1
- package/lib/commonjs/sidebar/SidebarTeamMenu.js.map +1 -1
- package/lib/commonjs/sidebar/SidebarUserMenu.js +1 -1
- package/lib/commonjs/sidebar/SidebarUserMenu.js.map +1 -1
- package/lib/commonjs/sidebar/parts.js +9 -9
- package/lib/commonjs/sidebar/parts.js.map +1 -1
- package/lib/commonjs/styles/web-view-style.js +6 -0
- package/lib/commonjs/styles/web-view-style.js.map +1 -1
- package/lib/commonjs/surfaces/SurfaceHost.js +6 -0
- package/lib/commonjs/surfaces/SurfaceHost.js.map +1 -1
- package/lib/commonjs/surfaces/index.web.js +14 -4
- package/lib/commonjs/surfaces/index.web.js.map +1 -1
- package/lib/commonjs/tab-bar/index.web.js +13 -10
- package/lib/commonjs/tab-bar/index.web.js.map +1 -1
- package/lib/commonjs/tabs/Tabs.js +49 -2
- package/lib/commonjs/tabs/Tabs.js.map +1 -1
- package/lib/commonjs/theme/color-scope/index.web.js.map +1 -1
- package/lib/commonjs/theme/seed-scope/index.web.js.map +1 -1
- package/lib/commonjs/tooltip/index.web.js.map +1 -1
- package/lib/module/agent-chat/index.web.js +5 -3
- package/lib/module/agent-chat/index.web.js.map +1 -1
- package/lib/module/ai-chat/index.web.js +5 -2
- package/lib/module/ai-chat/index.web.js.map +1 -1
- package/lib/module/alert-dialog/index.web.js +10 -1
- package/lib/module/alert-dialog/index.web.js.map +1 -1
- package/lib/module/avatar-group/index.web.js +5 -0
- package/lib/module/avatar-group/index.web.js.map +1 -1
- package/lib/module/bottom-sheet/index.web.js +5 -0
- package/lib/module/bottom-sheet/index.web.js.map +1 -1
- package/lib/module/code/index.js +1 -0
- package/lib/module/code/index.js.map +1 -1
- package/lib/module/command/index.web.js +5 -0
- package/lib/module/command/index.web.js.map +1 -1
- package/lib/module/composer-loader/ComposerLoader.web.js +8 -0
- package/lib/module/composer-loader/ComposerLoader.web.js.map +1 -1
- package/lib/module/composer-loader/index.web.js +5 -2
- package/lib/module/composer-loader/index.web.js.map +1 -1
- package/lib/module/composer-panel/index.web.js +5 -3
- package/lib/module/composer-panel/index.web.js.map +1 -1
- package/lib/module/connection-dots/index.web.js +5 -0
- package/lib/module/connection-dots/index.web.js.map +1 -1
- package/lib/module/connection-status/index.web.js +5 -0
- package/lib/module/connection-status/index.web.js.map +1 -1
- package/lib/module/content-panel/index.web.js +5 -0
- package/lib/module/content-panel/index.web.js.map +1 -1
- package/lib/module/context-menu/ContextMenu.web.js +22 -4
- package/lib/module/context-menu/ContextMenu.web.js.map +1 -1
- package/lib/module/context-menu/context.js.map +1 -1
- package/lib/module/context-menu/index.web.js +5 -0
- package/lib/module/context-menu/index.web.js.map +1 -1
- package/lib/module/dialog/Dialog.web.js +13 -0
- package/lib/module/dialog/Dialog.web.js.map +1 -1
- package/lib/module/dialog/index.web.js +7 -11
- package/lib/module/dialog/index.web.js.map +1 -1
- package/lib/module/dropdown-menu/DropdownMenu.web.js +23 -3
- package/lib/module/dropdown-menu/DropdownMenu.web.js.map +1 -1
- package/lib/module/dropdown-menu/index.web.js +5 -0
- package/lib/module/dropdown-menu/index.web.js.map +1 -1
- package/lib/module/floating/FloatingPanel.js +42 -33
- package/lib/module/floating/FloatingPanel.js.map +1 -1
- package/lib/module/floating/escape-stack.js +85 -0
- package/lib/module/floating/escape-stack.js.map +1 -0
- package/lib/module/floating/menu-keyboard.js +227 -0
- package/lib/module/floating/menu-keyboard.js.map +1 -0
- package/lib/module/floating/menu-sub-flyout.js +28 -16
- package/lib/module/floating/menu-sub-flyout.js.map +1 -1
- package/lib/module/fonts/index.web.js +5 -20
- package/lib/module/fonts/index.web.js.map +1 -1
- package/lib/module/frosted-icon-button/FrostedIconButton.web.js +9 -0
- package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
- package/lib/module/frosted-icon-button/index.web.js +5 -7
- package/lib/module/frosted-icon-button/index.web.js.map +1 -1
- package/lib/module/hooks/roving-focus.js +181 -0
- package/lib/module/hooks/roving-focus.js.map +1 -0
- package/lib/module/hover-card/index.web.js +5 -0
- package/lib/module/hover-card/index.web.js.map +1 -1
- package/lib/module/icons/remix/RiBookReadLine.js +9 -0
- package/lib/module/icons/remix/RiBookReadLine.js.map +1 -0
- package/lib/module/icons/remix/RiBugLine.js +9 -0
- package/lib/module/icons/remix/RiBugLine.js.map +1 -0
- package/lib/module/icons/remix/RiChat1Line.js +9 -0
- package/lib/module/icons/remix/RiChat1Line.js.map +1 -0
- package/lib/module/icons/remix/RiCloudLine.js +9 -0
- package/lib/module/icons/remix/RiCloudLine.js.map +1 -0
- package/lib/module/icons/remix/RiCodeLine.js +9 -0
- package/lib/module/icons/remix/RiCodeLine.js.map +1 -0
- package/lib/module/icons/remix/RiCpuLine.js +9 -0
- package/lib/module/icons/remix/RiCpuLine.js.map +1 -0
- package/lib/module/icons/remix/RiFloodLine.js +9 -0
- package/lib/module/icons/remix/RiFloodLine.js.map +1 -0
- package/lib/module/icons/remix/RiLockUnlockLine.js +9 -0
- package/lib/module/icons/remix/RiLockUnlockLine.js.map +1 -0
- package/lib/module/icons/remix/RiMoneyDollarCircleLine.js +9 -0
- package/lib/module/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
- package/lib/module/icons/remix/RiPlayCircleLine.js +9 -0
- package/lib/module/icons/remix/RiPlayCircleLine.js.map +1 -0
- package/lib/module/icons/remix/RiRocket2Line.js +9 -0
- package/lib/module/icons/remix/RiRocket2Line.js.map +1 -0
- package/lib/module/icons/remix/RiServerLine.js +9 -0
- package/lib/module/icons/remix/RiServerLine.js.map +1 -0
- package/lib/module/icons/remix/RiShareBoxLine.js +9 -0
- package/lib/module/icons/remix/RiShareBoxLine.js.map +1 -0
- package/lib/module/icons/remix/RiTv2Line.js +9 -0
- package/lib/module/icons/remix/RiTv2Line.js.map +1 -0
- package/lib/module/icons/remix/index.js +14 -0
- package/lib/module/icons/remix/index.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/layout/StickySection.js +101 -0
- package/lib/module/layout/StickySection.js.map +1 -0
- package/lib/module/layout/header-dock.js +54 -0
- package/lib/module/layout/header-dock.js.map +1 -0
- package/lib/module/layout/index.js +2 -0
- package/lib/module/layout/index.js.map +1 -1
- package/lib/module/list/index.web.js +5 -0
- package/lib/module/list/index.web.js.map +1 -1
- package/lib/module/loading/Loading.js +17 -155
- package/lib/module/loading/Loading.js.map +1 -1
- package/lib/module/loading/Loading.web.js +19 -155
- package/lib/module/loading/Loading.web.js.map +1 -1
- package/lib/module/loading/LoadingBase.js +194 -0
- package/lib/module/loading/LoadingBase.js.map +1 -0
- package/lib/module/loading/index.web.js +5 -13
- package/lib/module/loading/index.web.js.map +1 -1
- package/lib/module/media-flight/index.web.js +5 -9
- package/lib/module/media-flight/index.web.js.map +1 -1
- package/lib/module/menubar/Menubar.js +15 -122
- package/lib/module/menubar/Menubar.js.map +1 -1
- package/lib/module/menubar/Menubar.web.js +18 -114
- package/lib/module/menubar/Menubar.web.js.map +1 -1
- package/lib/module/menubar/MenubarBase.js +146 -0
- package/lib/module/menubar/MenubarBase.js.map +1 -0
- package/lib/module/menubar/index.web.js +5 -0
- package/lib/module/menubar/index.web.js.map +1 -1
- package/lib/module/motion/index.web.js +5 -5
- package/lib/module/motion/index.web.js.map +1 -1
- package/lib/module/page-header/PageHeader.js +38 -14
- package/lib/module/page-header/PageHeader.js.map +1 -1
- package/lib/module/popover/index.web.js +5 -0
- package/lib/module/popover/index.web.js.map +1 -1
- package/lib/module/popover/parts.js +70 -12
- package/lib/module/popover/parts.js.map +1 -1
- package/lib/module/popover/surface.js +39 -13
- package/lib/module/popover/surface.js.map +1 -1
- package/lib/module/portal/index.web.js +6 -1
- package/lib/module/portal/index.web.js.map +1 -1
- package/lib/module/progressive-blur/index.web.js +5 -0
- package/lib/module/progressive-blur/index.web.js.map +1 -1
- package/lib/module/scroll/index.web.js +5 -0
- package/lib/module/scroll/index.web.js.map +1 -1
- package/lib/module/segmented-control/SegmentedControl.js +36 -1
- package/lib/module/segmented-control/SegmentedControl.js.map +1 -1
- package/lib/module/select/Select.js +5 -77
- package/lib/module/select/Select.js.map +1 -1
- package/lib/module/select/Select.web.js +147 -82
- package/lib/module/select/Select.web.js.map +1 -1
- package/lib/module/select/index.js +2 -2
- package/lib/module/select/index.js.map +1 -1
- package/lib/module/select/index.web.js +7 -2
- package/lib/module/select/index.web.js.map +1 -1
- package/lib/module/select/shared.js +106 -6
- package/lib/module/select/shared.js.map +1 -1
- package/lib/module/sidebar/Sidebar.js +121 -108
- package/lib/module/sidebar/Sidebar.js.map +1 -1
- package/lib/module/sidebar/SidebarRail.js +70 -48
- package/lib/module/sidebar/SidebarRail.js.map +1 -1
- package/lib/module/sidebar/SidebarTeamMenu.js +2 -2
- package/lib/module/sidebar/SidebarTeamMenu.js.map +1 -1
- package/lib/module/sidebar/SidebarUserMenu.js +2 -2
- package/lib/module/sidebar/SidebarUserMenu.js.map +1 -1
- package/lib/module/sidebar/parts.js +8 -8
- package/lib/module/sidebar/parts.js.map +1 -1
- package/lib/module/styles/web-view-style.js +5 -0
- package/lib/module/styles/web-view-style.js.map +1 -1
- package/lib/module/surfaces/SurfaceHost.js +6 -0
- package/lib/module/surfaces/SurfaceHost.js.map +1 -1
- package/lib/module/surfaces/index.web.js +14 -4
- package/lib/module/surfaces/index.web.js.map +1 -1
- package/lib/module/tab-bar/index.web.js +13 -10
- package/lib/module/tab-bar/index.web.js.map +1 -1
- package/lib/module/tabs/Tabs.js +49 -2
- package/lib/module/tabs/Tabs.js.map +1 -1
- package/lib/module/theme/color-scope/index.web.js +5 -0
- package/lib/module/theme/color-scope/index.web.js.map +1 -1
- package/lib/module/theme/seed-scope/index.web.js +5 -0
- package/lib/module/theme/seed-scope/index.web.js.map +1 -1
- package/lib/module/tooltip/index.web.js +5 -0
- package/lib/module/tooltip/index.web.js.map +1 -1
- package/lib/typescript/commonjs/agent-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/alert-dialog/index.web.d.ts +5 -1
- package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/avatar-group/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/code/index.d.ts +2 -0
- package/lib/typescript/commonjs/code/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts +8 -0
- package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-loader/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/connection-dots/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/connection-status/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/content-panel/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/context.d.ts +3 -0
- package/lib/typescript/commonjs/context-menu/context.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dropdown-menu/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/FloatingPanel.d.ts +1 -1
- package/lib/typescript/commonjs/floating/FloatingPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/escape-stack.d.ts +55 -0
- package/lib/typescript/commonjs/floating/escape-stack.d.ts.map +1 -0
- package/lib/typescript/commonjs/floating/menu-keyboard.d.ts +57 -0
- package/lib/typescript/commonjs/floating/menu-keyboard.d.ts.map +1 -0
- package/lib/typescript/commonjs/floating/menu-sub-flyout.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/types.d.ts +11 -0
- package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/fonts/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/roving-focus.d.ts +66 -0
- package/lib/typescript/commonjs/hooks/roving-focus.d.ts.map +1 -0
- package/lib/typescript/commonjs/hover-card/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts +8 -0
- package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/remix/index.d.ts +14 -0
- package/lib/typescript/commonjs/icons/remix/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/StickySection.d.ts +8 -0
- package/lib/typescript/commonjs/layout/StickySection.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/header-dock.d.ts +21 -0
- package/lib/typescript/commonjs/layout/header-dock.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/index.d.ts +3 -0
- package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/list/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/loading/Loading.d.ts +8 -2
- package/lib/typescript/commonjs/loading/Loading.d.ts.map +1 -1
- package/lib/typescript/commonjs/loading/Loading.web.d.ts +10 -2
- package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/loading/LoadingBase.d.ts +64 -0
- package/lib/typescript/commonjs/loading/LoadingBase.d.ts.map +1 -0
- package/lib/typescript/commonjs/loading/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/index.web.d.ts +0 -9
- package/lib/typescript/commonjs/media-flight/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/menubar/Menubar.d.ts +14 -9
- package/lib/typescript/commonjs/menubar/Menubar.d.ts.map +1 -1
- package/lib/typescript/commonjs/menubar/Menubar.web.d.ts +8 -6
- package/lib/typescript/commonjs/menubar/Menubar.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/menubar/MenubarBase.d.ts +5 -0
- package/lib/typescript/commonjs/menubar/MenubarBase.d.ts.map +1 -0
- package/lib/typescript/commonjs/menubar/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/motion/index.web.d.ts +0 -5
- package/lib/typescript/commonjs/motion/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/types.d.ts +10 -6
- package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/popover/parts.d.ts.map +1 -1
- package/lib/typescript/commonjs/popover/surface.d.ts +15 -5
- package/lib/typescript/commonjs/popover/surface.d.ts.map +1 -1
- package/lib/typescript/commonjs/portal/index.web.d.ts +1 -1
- package/lib/typescript/commonjs/portal/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/Select.d.ts +2 -4
- package/lib/typescript/commonjs/select/Select.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/Select.web.d.ts +2 -4
- package/lib/typescript/commonjs/select/Select.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/index.d.ts +2 -2
- package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/index.web.d.ts +2 -2
- package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/shared.d.ts +52 -5
- package/lib/typescript/commonjs/select/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/types.d.ts +6 -0
- package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/sidebar/Sidebar.d.ts.map +1 -1
- package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts +1 -1
- package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts.map +1 -1
- package/lib/typescript/commonjs/sidebar/parts.d.ts +8 -2
- package/lib/typescript/commonjs/sidebar/parts.d.ts.map +1 -1
- package/lib/typescript/commonjs/sidebar/types.d.ts +2 -0
- package/lib/typescript/commonjs/sidebar/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/web-view-style.d.ts +2 -0
- package/lib/typescript/commonjs/styles/web-view-style.d.ts.map +1 -1
- package/lib/typescript/commonjs/surfaces/SurfaceHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/surfaces/index.web.d.ts +9 -4
- package/lib/typescript/commonjs/surfaces/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/types.d.ts +6 -0
- package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tooltip/index.web.d.ts.map +1 -1
- package/lib/typescript/module/agent-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/module/alert-dialog/index.web.d.ts +5 -1
- package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/module/avatar-group/index.web.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
- package/lib/typescript/module/code/index.d.ts +2 -0
- package/lib/typescript/module/code/index.d.ts.map +1 -1
- package/lib/typescript/module/command/index.web.d.ts.map +1 -1
- package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts +8 -0
- package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts.map +1 -1
- package/lib/typescript/module/composer-loader/index.web.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/index.web.d.ts.map +1 -1
- package/lib/typescript/module/connection-dots/index.web.d.ts.map +1 -1
- package/lib/typescript/module/connection-status/index.web.d.ts.map +1 -1
- package/lib/typescript/module/content-panel/index.web.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/ContextMenu.web.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/context.d.ts +3 -0
- package/lib/typescript/module/context-menu/context.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
- package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/module/dialog/index.web.d.ts +2 -1
- package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
- package/lib/typescript/module/dropdown-menu/index.web.d.ts.map +1 -1
- package/lib/typescript/module/floating/FloatingPanel.d.ts +1 -1
- package/lib/typescript/module/floating/FloatingPanel.d.ts.map +1 -1
- package/lib/typescript/module/floating/escape-stack.d.ts +55 -0
- package/lib/typescript/module/floating/escape-stack.d.ts.map +1 -0
- package/lib/typescript/module/floating/menu-keyboard.d.ts +57 -0
- package/lib/typescript/module/floating/menu-keyboard.d.ts.map +1 -0
- package/lib/typescript/module/floating/menu-sub-flyout.d.ts.map +1 -1
- package/lib/typescript/module/floating/types.d.ts +11 -0
- package/lib/typescript/module/floating/types.d.ts.map +1 -1
- package/lib/typescript/module/fonts/index.web.d.ts.map +1 -1
- package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
- package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -1
- package/lib/typescript/module/hooks/roving-focus.d.ts +66 -0
- package/lib/typescript/module/hooks/roving-focus.d.ts.map +1 -0
- package/lib/typescript/module/hover-card/index.web.d.ts.map +1 -1
- package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiBugLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiBugLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiChat1Line.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiChat1Line.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiCloudLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiCloudLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiCodeLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiCodeLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiCpuLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiCpuLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiFloodLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiFloodLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiServerLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiServerLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/RiTv2Line.d.ts +8 -0
- package/lib/typescript/module/icons/remix/RiTv2Line.d.ts.map +1 -0
- package/lib/typescript/module/icons/remix/index.d.ts +14 -0
- package/lib/typescript/module/icons/remix/index.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/layout/StickySection.d.ts +8 -0
- package/lib/typescript/module/layout/StickySection.d.ts.map +1 -0
- package/lib/typescript/module/layout/header-dock.d.ts +21 -0
- package/lib/typescript/module/layout/header-dock.d.ts.map +1 -0
- package/lib/typescript/module/layout/index.d.ts +3 -0
- package/lib/typescript/module/layout/index.d.ts.map +1 -1
- package/lib/typescript/module/list/index.web.d.ts.map +1 -1
- package/lib/typescript/module/loading/Loading.d.ts +8 -2
- package/lib/typescript/module/loading/Loading.d.ts.map +1 -1
- package/lib/typescript/module/loading/Loading.web.d.ts +10 -2
- package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
- package/lib/typescript/module/loading/LoadingBase.d.ts +64 -0
- package/lib/typescript/module/loading/LoadingBase.d.ts.map +1 -0
- package/lib/typescript/module/loading/index.web.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/index.web.d.ts +0 -9
- package/lib/typescript/module/media-flight/index.web.d.ts.map +1 -1
- package/lib/typescript/module/menubar/Menubar.d.ts +14 -9
- package/lib/typescript/module/menubar/Menubar.d.ts.map +1 -1
- package/lib/typescript/module/menubar/Menubar.web.d.ts +8 -6
- package/lib/typescript/module/menubar/Menubar.web.d.ts.map +1 -1
- package/lib/typescript/module/menubar/MenubarBase.d.ts +5 -0
- package/lib/typescript/module/menubar/MenubarBase.d.ts.map +1 -0
- package/lib/typescript/module/menubar/index.web.d.ts.map +1 -1
- package/lib/typescript/module/motion/index.web.d.ts +0 -5
- package/lib/typescript/module/motion/index.web.d.ts.map +1 -1
- package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/module/page-header/types.d.ts +10 -6
- package/lib/typescript/module/page-header/types.d.ts.map +1 -1
- package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
- package/lib/typescript/module/popover/parts.d.ts.map +1 -1
- package/lib/typescript/module/popover/surface.d.ts +15 -5
- package/lib/typescript/module/popover/surface.d.ts.map +1 -1
- package/lib/typescript/module/portal/index.web.d.ts +1 -1
- package/lib/typescript/module/portal/index.web.d.ts.map +1 -1
- package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -1
- package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/module/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/module/select/Select.d.ts +2 -4
- package/lib/typescript/module/select/Select.d.ts.map +1 -1
- package/lib/typescript/module/select/Select.web.d.ts +2 -4
- package/lib/typescript/module/select/Select.web.d.ts.map +1 -1
- package/lib/typescript/module/select/index.d.ts +2 -2
- package/lib/typescript/module/select/index.d.ts.map +1 -1
- package/lib/typescript/module/select/index.web.d.ts +2 -2
- package/lib/typescript/module/select/index.web.d.ts.map +1 -1
- package/lib/typescript/module/select/shared.d.ts +52 -5
- package/lib/typescript/module/select/shared.d.ts.map +1 -1
- package/lib/typescript/module/select/types.d.ts +6 -0
- package/lib/typescript/module/select/types.d.ts.map +1 -1
- package/lib/typescript/module/sidebar/Sidebar.d.ts.map +1 -1
- package/lib/typescript/module/sidebar/SidebarRail.d.ts +1 -1
- package/lib/typescript/module/sidebar/SidebarRail.d.ts.map +1 -1
- package/lib/typescript/module/sidebar/parts.d.ts +8 -2
- package/lib/typescript/module/sidebar/parts.d.ts.map +1 -1
- package/lib/typescript/module/sidebar/types.d.ts +2 -0
- package/lib/typescript/module/sidebar/types.d.ts.map +1 -1
- package/lib/typescript/module/styles/web-view-style.d.ts +2 -0
- package/lib/typescript/module/styles/web-view-style.d.ts.map +1 -1
- package/lib/typescript/module/surfaces/SurfaceHost.d.ts.map +1 -1
- package/lib/typescript/module/surfaces/index.web.d.ts +9 -4
- package/lib/typescript/module/surfaces/index.web.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
- package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/module/tabs/types.d.ts +6 -0
- package/lib/typescript/module/tabs/types.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/index.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/seed-scope/index.web.d.ts.map +1 -1
- package/lib/typescript/module/tooltip/index.web.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agent-chat/index.web.ts +5 -3
- package/src/ai-chat/index.web.ts +5 -2
- package/src/alert-dialog/index.web.ts +10 -1
- package/src/avatar-group/index.web.ts +5 -0
- package/src/bottom-sheet/index.web.ts +5 -0
- package/src/code/index.ts +2 -0
- package/src/command/index.web.ts +5 -0
- package/src/composer-loader/ComposerLoader.web.tsx +8 -0
- package/src/composer-loader/index.web.ts +5 -2
- package/src/composer-panel/index.web.ts +5 -3
- package/src/connection-dots/index.web.ts +5 -0
- package/src/connection-status/index.web.ts +5 -0
- package/src/content-panel/index.web.ts +5 -0
- package/src/context-menu/ContextMenu.web.tsx +26 -3
- package/src/context-menu/context.ts +3 -0
- package/src/context-menu/index.web.ts +5 -0
- package/src/dialog/Dialog.web.tsx +13 -0
- package/src/dialog/index.web.ts +7 -11
- package/src/dropdown-menu/DropdownMenu.web.tsx +25 -2
- package/src/dropdown-menu/index.web.ts +5 -0
- package/src/floating/FloatingPanel.tsx +37 -38
- package/src/floating/escape-stack.ts +92 -0
- package/src/floating/menu-keyboard.ts +242 -0
- package/src/floating/menu-sub-flyout.tsx +22 -17
- package/src/floating/types.ts +11 -0
- package/src/fonts/index.web.ts +5 -20
- package/src/frosted-icon-button/FrostedIconButton.web.tsx +9 -0
- package/src/frosted-icon-button/index.web.ts +5 -7
- package/src/hooks/roving-focus.ts +204 -0
- package/src/hover-card/index.web.ts +5 -0
- package/src/icons/remix/RiBookReadLine.tsx +6 -0
- package/src/icons/remix/RiBugLine.tsx +6 -0
- package/src/icons/remix/RiChat1Line.tsx +6 -0
- package/src/icons/remix/RiCloudLine.tsx +6 -0
- package/src/icons/remix/RiCodeLine.tsx +6 -0
- package/src/icons/remix/RiCpuLine.tsx +6 -0
- package/src/icons/remix/RiFloodLine.tsx +6 -0
- package/src/icons/remix/RiLockUnlockLine.tsx +6 -0
- package/src/icons/remix/RiMoneyDollarCircleLine.tsx +6 -0
- package/src/icons/remix/RiPlayCircleLine.tsx +6 -0
- package/src/icons/remix/RiRocket2Line.tsx +6 -0
- package/src/icons/remix/RiServerLine.tsx +6 -0
- package/src/icons/remix/RiShareBoxLine.tsx +6 -0
- package/src/icons/remix/RiTv2Line.tsx +6 -0
- package/src/icons/remix/index.ts +14 -0
- package/src/index.ts +4 -0
- package/src/index.web.ts +4 -0
- package/src/layout/StickySection.tsx +75 -0
- package/src/layout/header-dock.tsx +42 -0
- package/src/layout/index.ts +4 -0
- package/src/list/index.web.ts +5 -0
- package/src/loading/Loading.tsx +15 -135
- package/src/loading/Loading.web.tsx +16 -134
- package/src/loading/LoadingBase.tsx +170 -0
- package/src/loading/index.web.ts +5 -13
- package/src/media-flight/index.web.ts +5 -9
- package/src/menubar/Menubar.tsx +16 -147
- package/src/menubar/Menubar.web.tsx +15 -138
- package/src/menubar/MenubarBase.tsx +170 -0
- package/src/menubar/index.web.ts +5 -0
- package/src/motion/index.web.ts +5 -5
- package/src/page-header/PageHeader.tsx +26 -12
- package/src/page-header/types.ts +10 -6
- package/src/popover/index.web.ts +5 -0
- package/src/popover/parts.tsx +76 -12
- package/src/popover/surface.ts +68 -15
- package/src/portal/index.web.ts +6 -1
- package/src/progressive-blur/index.web.ts +5 -0
- package/src/scroll/index.web.ts +5 -0
- package/src/segmented-control/SegmentedControl.tsx +45 -1
- package/src/select/Select.tsx +4 -67
- package/src/select/Select.web.tsx +133 -69
- package/src/select/index.ts +3 -3
- package/src/select/index.web.ts +8 -3
- package/src/select/shared.tsx +107 -5
- package/src/select/types.ts +6 -0
- package/src/sidebar/Sidebar.tsx +3 -0
- package/src/sidebar/SidebarRail.tsx +6 -1
- package/src/sidebar/SidebarTeamMenu.tsx +2 -2
- package/src/sidebar/SidebarUserMenu.tsx +2 -2
- package/src/sidebar/parts.tsx +8 -9
- package/src/sidebar/types.ts +2 -0
- package/src/styles/web-view-style.ts +5 -0
- package/src/surfaces/SurfaceHost.tsx +6 -0
- package/src/surfaces/index.web.ts +14 -4
- package/src/tab-bar/index.web.ts +13 -10
- package/src/tabs/Tabs.tsx +65 -1
- package/src/tabs/types.ts +6 -0
- package/src/theme/color-scope/index.web.ts +5 -0
- package/src/theme/seed-scope/index.web.ts +5 -0
- package/src/tooltip/index.web.ts +5 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `flood-line` (Weather). */
|
|
4
|
+
export const RiFloodLine = createSinglePathSVG({
|
|
5
|
+
path: 'M16.0001 17.4723C17.0616 18.4223 18.4634 19 20 19H22V21H20C18.5428 21 17.1766 20.6104 15.9998 19.9296C14.8242 20.6101 13.4576 21 12 21C10.5428 21 9.17657 20.6104 7.99984 19.9296C6.8242 20.6101 5.45763 21 4 21H2V19H4C5.53713 19 6.93925 18.422 8.00013 17.4723C9.06163 18.4223 10.4634 19 12 19C13.5371 19 14.9393 18.422 16.0001 17.4723ZM12.5734 1.53204L12.6727 1.6115L23 11H20V17C19.2988 17 18.6258 16.8797 18.0003 16.6587L18 9.15698L12 3.70198L6 9.15598L6.00125 16.6582C5.4648 16.8479 4.89325 16.9635 4.29898 16.9927L4 17V11H1L11.3273 1.6115C11.677 1.29365 12.1956 1.26716 12.5734 1.53204Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `lock-unlock-line` (System). */
|
|
4
|
+
export const RiLockUnlockLine = createSinglePathSVG({
|
|
5
|
+
path: 'M7 10H20C20.5523 10 21 10.4477 21 11V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V11C3 10.4477 3.44772 10 4 10H5V9C5 5.13401 8.13401 2 12 2C14.7405 2 17.1131 3.5748 18.2624 5.86882L16.4731 6.76344C15.6522 5.12486 13.9575 4 12 4C9.23858 4 7 6.23858 7 9V10ZM5 12V20H19V12H5ZM10 15H14V17H10V15Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `money-dollar-circle-line` (Finance). */
|
|
4
|
+
export const RiMoneyDollarCircleLine = createSinglePathSVG({
|
|
5
|
+
path: 'M12.0049 22.0027C6.48204 22.0027 2.00488 17.5256 2.00488 12.0027C2.00488 6.4799 6.48204 2.00275 12.0049 2.00275C17.5277 2.00275 22.0049 6.4799 22.0049 12.0027C22.0049 17.5256 17.5277 22.0027 12.0049 22.0027ZM12.0049 20.0027C16.4232 20.0027 20.0049 16.421 20.0049 12.0027C20.0049 7.58447 16.4232 4.00275 12.0049 4.00275C7.5866 4.00275 4.00488 7.58447 4.00488 12.0027C4.00488 16.421 7.5866 20.0027 12.0049 20.0027ZM8.50488 14.0027H14.0049C14.281 14.0027 14.5049 13.7789 14.5049 13.5027C14.5049 13.2266 14.281 13.0027 14.0049 13.0027H10.0049C8.62417 13.0027 7.50488 11.8835 7.50488 10.5027C7.50488 9.12203 8.62417 8.00275 10.0049 8.00275H11.0049V6.00275H13.0049V8.00275H15.5049V10.0027H10.0049C9.72874 10.0027 9.50488 10.2266 9.50488 10.5027C9.50488 10.7789 9.72874 11.0027 10.0049 11.0027H14.0049C15.3856 11.0027 16.5049 12.122 16.5049 13.5027C16.5049 14.8835 15.3856 16.0027 14.0049 16.0027H13.0049V18.0027H11.0049V16.0027H8.50488V14.0027Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `play-circle-line` (Media). */
|
|
4
|
+
export const RiPlayCircleLine = createSinglePathSVG({
|
|
5
|
+
path: 'M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM10.6219 8.41459L15.5008 11.6672C15.6846 11.7897 15.7343 12.0381 15.6117 12.2219C15.5824 12.2658 15.5447 12.3035 15.5008 12.3328L10.6219 15.5854C10.4381 15.708 10.1897 15.6583 10.0672 15.4745C10.0234 15.4088 10 15.3316 10 15.2526V8.74741C10 8.52649 10.1791 8.34741 10.4 8.34741C10.479 8.34741 10.5562 8.37078 10.6219 8.41459Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `rocket-2-line` (Map). */
|
|
4
|
+
export const RiRocket2Line = createSinglePathSVG({
|
|
5
|
+
path: 'M15.5018 20.0048C14.8432 21.5841 13.5794 22.848 12 23.5066C10.4206 22.848 9.15679 21.5841 8.49816 20.0048H10.7575C11.0838 20.4934 11.5051 20.9171 12 21.248C12.4949 20.9171 12.9162 20.4934 13.2425 20.0048H15.5018ZM18 14.8095L20 17.0777V19.0048H4V17.0777L6 14.8095V9.00478C6 5.52153 8.50442 2.55822 12 1.45999C15.4956 2.55822 18 5.52153 18 9.00478V14.8095ZM17.2692 17.0048L16 15.5653V9.00478C16 6.68694 14.4292 4.57431 12 3.58384C9.57078 4.57431 8 6.68694 8 9.00478V15.5653L6.73076 17.0048H17.2692ZM12 11.0048C10.8954 11.0048 10 10.1093 10 9.00478C10 7.90021 10.8954 7.00478 12 7.00478C13.1046 7.00478 14 7.90021 14 9.00478C14 10.1093 13.1046 11.0048 12 11.0048Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `server-line` (Device). */
|
|
4
|
+
export const RiServerLine = createSinglePathSVG({
|
|
5
|
+
path: 'M5 11H19V5H5V11ZM21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4ZM19 13H5V19H19V13ZM7 15H10V17H7V15ZM7 7H10V9H7V7Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `share-box-line` (System). */
|
|
4
|
+
export const RiShareBoxLine = createSinglePathSVG({
|
|
5
|
+
path: 'M10 3V5H5V19H19V14H21V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H10ZM17.5858 5H13V3H21V11H19V6.41421L12 13.4142L10.5858 12L17.5858 5Z',
|
|
6
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createSinglePathSVG } from '../TEMPLATE';
|
|
2
|
+
|
|
3
|
+
/** Remix Icon `tv-2-line` (Device). */
|
|
4
|
+
export const RiTv2Line = createSinglePathSVG({
|
|
5
|
+
path: 'M2 4.00087C2 3.44811 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44463 22 4.00087V17.9991C22 18.5519 21.5447 19 21.0082 19H2.9918C2.44405 19 2 18.5554 2 17.9991V4.00087ZM4 5V17H20V5H4ZM5 20H19V22H5V20Z',
|
|
6
|
+
});
|
package/src/icons/remix/index.ts
CHANGED
|
@@ -55,6 +55,7 @@ export { RiBlueskyFill } from './RiBlueskyFill';
|
|
|
55
55
|
export { RiBold } from './RiBold';
|
|
56
56
|
export { RiBookOpenFill } from './RiBookOpenFill';
|
|
57
57
|
export { RiBookOpenLine } from './RiBookOpenLine';
|
|
58
|
+
export { RiBookReadLine } from './RiBookReadLine';
|
|
58
59
|
export { RiBookShelfLine } from './RiBookShelfLine';
|
|
59
60
|
export { RiBookmark3Line } from './RiBookmark3Line';
|
|
60
61
|
export { RiBookmarkFill } from './RiBookmarkFill';
|
|
@@ -63,6 +64,7 @@ export { RiBox3Line } from './RiBox3Line';
|
|
|
63
64
|
export { RiBriefcase4Line } from './RiBriefcase4Line';
|
|
64
65
|
export { RiBroadcastLine } from './RiBroadcastLine';
|
|
65
66
|
export { RiBrushAiLine } from './RiBrushAiLine';
|
|
67
|
+
export { RiBugLine } from './RiBugLine';
|
|
66
68
|
export { RiBuilding2Line } from './RiBuilding2Line';
|
|
67
69
|
export { RiBuilding4Line } from './RiBuilding4Line';
|
|
68
70
|
export { RiBuildingLine } from './RiBuildingLine';
|
|
@@ -81,6 +83,7 @@ export { RiCameraSwitchLine } from './RiCameraSwitchLine';
|
|
|
81
83
|
export { RiCapsuleFill } from './RiCapsuleFill';
|
|
82
84
|
export { RiCarLine } from './RiCarLine';
|
|
83
85
|
export { RiCastLine } from './RiCastLine';
|
|
86
|
+
export { RiChat1Line } from './RiChat1Line';
|
|
84
87
|
export { RiChat3Fill } from './RiChat3Fill';
|
|
85
88
|
export { RiChat3Line } from './RiChat3Line';
|
|
86
89
|
export { RiChat4Fill } from './RiChat4Fill';
|
|
@@ -101,7 +104,9 @@ export { RiCloseCircleLine } from './RiCloseCircleLine';
|
|
|
101
104
|
export { RiCloseLine } from './RiCloseLine';
|
|
102
105
|
export { RiClosedCaptioningFill } from './RiClosedCaptioningFill';
|
|
103
106
|
export { RiClosedCaptioningLine } from './RiClosedCaptioningLine';
|
|
107
|
+
export { RiCloudLine } from './RiCloudLine';
|
|
104
108
|
export { RiCodeBlock } from './RiCodeBlock';
|
|
109
|
+
export { RiCodeLine } from './RiCodeLine';
|
|
105
110
|
export { RiCodeSLine } from './RiCodeSLine';
|
|
106
111
|
export { RiCodeSSlashLine } from './RiCodeSSlashLine';
|
|
107
112
|
export { RiCoinsFill } from './RiCoinsFill';
|
|
@@ -116,6 +121,7 @@ export { RiContractLeftRightLine } from './RiContractLeftRightLine';
|
|
|
116
121
|
export { RiCornerDownLeftLine } from './RiCornerDownLeftLine';
|
|
117
122
|
export { RiCornerDownRightLine } from './RiCornerDownRightLine';
|
|
118
123
|
export { RiCornerUpLeftLine } from './RiCornerUpLeftLine';
|
|
124
|
+
export { RiCpuLine } from './RiCpuLine';
|
|
119
125
|
export { RiCropLine } from './RiCropLine';
|
|
120
126
|
export { RiCursorLine } from './RiCursorLine';
|
|
121
127
|
export { RiCustomerService2Line } from './RiCustomerService2Line';
|
|
@@ -180,6 +186,7 @@ export { RiFlaskLine } from './RiFlaskLine';
|
|
|
180
186
|
export { RiFlightTakeoffLine } from './RiFlightTakeoffLine';
|
|
181
187
|
export { RiFlipHorizontalLine } from './RiFlipHorizontalLine';
|
|
182
188
|
export { RiFlipVerticalLine } from './RiFlipVerticalLine';
|
|
189
|
+
export { RiFloodLine } from './RiFloodLine';
|
|
183
190
|
export { RiFlowerLine } from './RiFlowerLine';
|
|
184
191
|
export { RiFocus3Line } from './RiFocus3Line';
|
|
185
192
|
export { RiFolder2Line } from './RiFolder2Line';
|
|
@@ -257,6 +264,7 @@ export { RiLiveLine } from './RiLiveLine';
|
|
|
257
264
|
export { RiLoader4Line } from './RiLoader4Line';
|
|
258
265
|
export { RiLock2Line } from './RiLock2Line';
|
|
259
266
|
export { RiLockLine } from './RiLockLine';
|
|
267
|
+
export { RiLockUnlockLine } from './RiLockUnlockLine';
|
|
260
268
|
export { RiLoginBoxLine } from './RiLoginBoxLine';
|
|
261
269
|
export { RiLogoutBoxRLine } from './RiLogoutBoxRLine';
|
|
262
270
|
export { RiLogoutCircleLine } from './RiLogoutCircleLine';
|
|
@@ -284,6 +292,7 @@ export { RiMic2Line } from './RiMic2Line';
|
|
|
284
292
|
export { RiMicLine } from './RiMicLine';
|
|
285
293
|
export { RiMicOffFill } from './RiMicOffFill';
|
|
286
294
|
export { RiMicOffLine } from './RiMicOffLine';
|
|
295
|
+
export { RiMoneyDollarCircleLine } from './RiMoneyDollarCircleLine';
|
|
287
296
|
export { RiMoneyEuroBoxLine } from './RiMoneyEuroBoxLine';
|
|
288
297
|
export { RiMoonClearFill } from './RiMoonClearFill';
|
|
289
298
|
export { RiMoonLine } from './RiMoonLine';
|
|
@@ -313,6 +322,7 @@ export { RiPencilLine } from './RiPencilLine';
|
|
|
313
322
|
export { RiPhoneFill } from './RiPhoneFill';
|
|
314
323
|
export { RiPhoneLine } from './RiPhoneLine';
|
|
315
324
|
export { RiPlantLine } from './RiPlantLine';
|
|
325
|
+
export { RiPlayCircleLine } from './RiPlayCircleLine';
|
|
316
326
|
export { RiPlayFill } from './RiPlayFill';
|
|
317
327
|
export { RiPlayLine } from './RiPlayLine';
|
|
318
328
|
export { RiPlayList2Line } from './RiPlayList2Line';
|
|
@@ -343,6 +353,7 @@ export { RiResetRightLine } from './RiResetRightLine';
|
|
|
343
353
|
export { RiRestaurantLine } from './RiRestaurantLine';
|
|
344
354
|
export { RiRobot2Fill } from './RiRobot2Fill';
|
|
345
355
|
export { RiRobot2Line } from './RiRobot2Line';
|
|
356
|
+
export { RiRocket2Line } from './RiRocket2Line';
|
|
346
357
|
export { RiRouteLine } from './RiRouteLine';
|
|
347
358
|
export { RiRssFill } from './RiRssFill';
|
|
348
359
|
export { RiRulerLine } from './RiRulerLine';
|
|
@@ -353,6 +364,7 @@ export { RiSearchFill } from './RiSearchFill';
|
|
|
353
364
|
export { RiSearchLine } from './RiSearchLine';
|
|
354
365
|
export { RiSeedlingLine } from './RiSeedlingLine';
|
|
355
366
|
export { RiSendPlaneLine } from './RiSendPlaneLine';
|
|
367
|
+
export { RiServerLine } from './RiServerLine';
|
|
356
368
|
export { RiSettings3Fill } from './RiSettings3Fill';
|
|
357
369
|
export { RiSettings3Line } from './RiSettings3Line';
|
|
358
370
|
export { RiSettings4Line } from './RiSettings4Line';
|
|
@@ -361,6 +373,7 @@ export { RiSettingsLine } from './RiSettingsLine';
|
|
|
361
373
|
export { RiShakeHandsLine } from './RiShakeHandsLine';
|
|
362
374
|
export { RiShapesLine } from './RiShapesLine';
|
|
363
375
|
export { RiShare2Line } from './RiShare2Line';
|
|
376
|
+
export { RiShareBoxLine } from './RiShareBoxLine';
|
|
364
377
|
export { RiShareForwardLine } from './RiShareForwardLine';
|
|
365
378
|
export { RiShareLine } from './RiShareLine';
|
|
366
379
|
export { RiShieldCheckFill } from './RiShieldCheckFill';
|
|
@@ -426,6 +439,7 @@ export { RiToolsLine } from './RiToolsLine';
|
|
|
426
439
|
export { RiTrainLine } from './RiTrainLine';
|
|
427
440
|
export { RiTranslate2 } from './RiTranslate2';
|
|
428
441
|
export { RiTreeLine } from './RiTreeLine';
|
|
442
|
+
export { RiTv2Line } from './RiTv2Line';
|
|
429
443
|
export { RiTvLine } from './RiTvLine';
|
|
430
444
|
export { RiTwitterXFill } from './RiTwitterXFill';
|
|
431
445
|
export { RiUnpinLine } from './RiUnpinLine';
|
package/src/index.ts
CHANGED
|
@@ -167,7 +167,11 @@ export {
|
|
|
167
167
|
ScrollOffsetProvider,
|
|
168
168
|
useScrollOffset,
|
|
169
169
|
ScreenScope,
|
|
170
|
+
HeaderDockProvider,
|
|
171
|
+
useHeaderDockInset,
|
|
172
|
+
StickySection,
|
|
170
173
|
} from './layout';
|
|
174
|
+
export type { StickySectionProps } from './layout';
|
|
171
175
|
export { Fab } from './fab';
|
|
172
176
|
export type { FabProps, FabVariant, FabSize, FabPlacement, FabMinimizeBehavior } from './fab';
|
|
173
177
|
export { FrostedIconButton } from './frosted-icon-button';
|
package/src/index.web.ts
CHANGED
|
@@ -172,7 +172,11 @@ export {
|
|
|
172
172
|
ScrollOffsetProvider,
|
|
173
173
|
useScrollOffset,
|
|
174
174
|
ScreenScope,
|
|
175
|
+
HeaderDockProvider,
|
|
176
|
+
useHeaderDockInset,
|
|
177
|
+
StickySection,
|
|
175
178
|
} from './layout';
|
|
179
|
+
export type { StickySectionProps } from './layout';
|
|
176
180
|
export { Fab } from './fab/index.web';
|
|
177
181
|
export type { FabProps, FabVariant, FabSize, FabPlacement, FabMinimizeBehavior } from './fab/index.web';
|
|
178
182
|
export { FrostedIconButton } from './frosted-icon-button/index.web';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useRef } from 'react';
|
|
2
|
+
import { Platform, View, type ViewProps } from 'react-native';
|
|
3
|
+
import { useSurfaceFill } from '../styles/surface-levels';
|
|
4
|
+
import { Z_INDEX } from '../styles/z-index';
|
|
5
|
+
import { WEB_POSITION_STICKY, webSurfaceStickyTopPlus, type WebCssStyle } from '../styles/web-view-style';
|
|
6
|
+
import { useHeaderDockContext } from './header-dock';
|
|
7
|
+
import { useTopEdgeInset } from './top-edge';
|
|
8
|
+
|
|
9
|
+
export interface StickySectionProps extends ViewProps {
|
|
10
|
+
/** Native: this sticky child's Y in the list content, measured by its owner. */
|
|
11
|
+
offset?: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** One docking section. Native lists retain ownership of stickyHeaderIndices. */
|
|
15
|
+
export function StickySection({children, offset, style, onLayout, ...props}: StickySectionProps) {
|
|
16
|
+
const dock = useHeaderDockContext();
|
|
17
|
+
const top = useTopEdgeInset();
|
|
18
|
+
const fill = useSurfaceFill();
|
|
19
|
+
const marker = useRef<View>(null);
|
|
20
|
+
const section = useRef<View>(null);
|
|
21
|
+
const owner = useRef({});
|
|
22
|
+
const measure = useCallback(() => {
|
|
23
|
+
if (!dock) return;
|
|
24
|
+
if (Platform.OS !== 'web') {
|
|
25
|
+
if (offset !== undefined) {
|
|
26
|
+
dock.targets.current.set(owner.current, offset);
|
|
27
|
+
dock.sectionOffset.value = offset;
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const anchor = marker.current as unknown as HTMLElement | null;
|
|
32
|
+
const sticky = section.current as unknown as HTMLElement | null;
|
|
33
|
+
if (!anchor?.getBoundingClientRect || !sticky) return;
|
|
34
|
+
// The zero-height marker remains in normal flow while the section sticks.
|
|
35
|
+
// Its coordinate is measured against the actual scrolling viewport.
|
|
36
|
+
let viewportTop = 0;
|
|
37
|
+
for (let parent = anchor.parentElement; parent; parent = parent.parentElement) {
|
|
38
|
+
if (/(auto|scroll)/.test(getComputedStyle(parent).overflowY)) {
|
|
39
|
+
viewportTop = parent.getBoundingClientRect().top + parent.clientTop;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const stickyTop = Number.parseFloat(getComputedStyle(sticky).top) || top;
|
|
44
|
+
const measuredOffset = anchor.getBoundingClientRect().top - viewportTop + dock.scrollY.value - stickyTop + top;
|
|
45
|
+
dock.targets.current.set(owner.current, measuredOffset);
|
|
46
|
+
dock.sectionOffset.value = measuredOffset;
|
|
47
|
+
}, [dock, offset, top]);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
measure();
|
|
50
|
+
if (Platform.OS !== 'web') return;
|
|
51
|
+
const anchor = marker.current as unknown as HTMLElement | null;
|
|
52
|
+
const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);
|
|
53
|
+
// Ancestor size changes cover delayed hero images/fonts without a scroll listener.
|
|
54
|
+
for (let element = anchor?.parentElement; element; element = element.parentElement) observer?.observe(element);
|
|
55
|
+
window.addEventListener('resize', measure);
|
|
56
|
+
return () => { observer?.disconnect(); window.removeEventListener('resize', measure); };
|
|
57
|
+
}, [measure]);
|
|
58
|
+
useEffect(() => () => {
|
|
59
|
+
if (!dock) return;
|
|
60
|
+
dock.targets.current.delete(owner.current);
|
|
61
|
+
// Virtualized lists may mount a sticky clone alongside the original cell.
|
|
62
|
+
// Removing that clone must restore the still-mounted original's target.
|
|
63
|
+
let remaining = Number.POSITIVE_INFINITY;
|
|
64
|
+
for (const target of dock.targets.current.values()) remaining = target;
|
|
65
|
+
dock.sectionOffset.value = remaining;
|
|
66
|
+
}, [dock]);
|
|
67
|
+
const stickyStyle: WebCssStyle = Platform.OS === 'web'
|
|
68
|
+
? {position:WEB_POSITION_STICKY, top:webSurfaceStickyTopPlus(top), zIndex:Z_INDEX.raised}
|
|
69
|
+
: {zIndex:Z_INDEX.raised};
|
|
70
|
+
return <>
|
|
71
|
+
{Platform.OS === 'web' && <View ref={marker} pointerEvents="none" style={{height:0}} />}
|
|
72
|
+
<View {...props} ref={section} onLayout={event => {measure(); onLayout?.(event);}}
|
|
73
|
+
style={[stickyStyle, {backgroundColor:fill}, style]}>{children}</View>
|
|
74
|
+
</>;
|
|
75
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { createContext, useContext, useMemo, useRef, useState, type PropsWithChildren } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import { useDerivedValue, useSharedValue, type SharedValue } from 'react-native-reanimated';
|
|
4
|
+
import { useScreenContext } from '../screen/context';
|
|
5
|
+
import { useScrollOffset } from './scroll-offset';
|
|
6
|
+
import { TopEdgeProvider, useTopEdgeInset } from './top-edge';
|
|
7
|
+
|
|
8
|
+
interface HeaderDockState {
|
|
9
|
+
scrollY: SharedValue<number>;
|
|
10
|
+
headerHeight: SharedValue<number>;
|
|
11
|
+
overlay: SharedValue<boolean>;
|
|
12
|
+
overlaps: boolean;
|
|
13
|
+
setOverlaps: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
+
sectionOffset: SharedValue<number>;
|
|
15
|
+
progress: SharedValue<number>;
|
|
16
|
+
targets: React.MutableRefObject<Map<object, number>>;
|
|
17
|
+
}
|
|
18
|
+
const HeaderDockContext = createContext<HeaderDockState | null>(null);
|
|
19
|
+
export function useHeaderDockContext() { return useContext(HeaderDockContext); }
|
|
20
|
+
|
|
21
|
+
/** Native lists already below an inline header need no additional clearance. */
|
|
22
|
+
export function useHeaderDockInset(): number {
|
|
23
|
+
const dock = useHeaderDockContext();
|
|
24
|
+
const height = useTopEdgeInset();
|
|
25
|
+
return Platform.OS === 'web' || dock?.overlaps ? height : 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Pairs one header and its docking section without rendering on scroll frames. */
|
|
29
|
+
export function HeaderDockProvider({ children, scrollY: supplied }: PropsWithChildren<{ scrollY?: SharedValue<number> }>) {
|
|
30
|
+
const screen = useScreenContext();
|
|
31
|
+
const contextual = useScrollOffset();
|
|
32
|
+
const rest = useSharedValue(0);
|
|
33
|
+
const scrollY = supplied ?? screen?.scrollY ?? contextual ?? rest;
|
|
34
|
+
const headerHeight = useSharedValue(0);
|
|
35
|
+
const overlay = useSharedValue(false);
|
|
36
|
+
const [overlaps, setOverlaps] = useState(false);
|
|
37
|
+
const sectionOffset = useSharedValue(Number.POSITIVE_INFINITY);
|
|
38
|
+
const targets = useRef(new Map<object, number>());
|
|
39
|
+
const progress = useDerivedValue(() => Math.min(1, Math.max(0, (scrollY.value - sectionOffset.value + (Platform.OS === 'web' || overlay.value ? headerHeight.value : 0) + 12) / 12)), [scrollY, sectionOffset, headerHeight, overlay]);
|
|
40
|
+
const value = useMemo(() => ({scrollY,headerHeight,sectionOffset,progress,targets,overlay,overlaps,setOverlaps}), [scrollY,headerHeight,sectionOffset,progress,overlay,overlaps]);
|
|
41
|
+
return <TopEdgeProvider><HeaderDockContext.Provider value={value}>{children}</HeaderDockContext.Provider></TopEdgeProvider>;
|
|
42
|
+
}
|
package/src/layout/index.ts
CHANGED
|
@@ -14,3 +14,7 @@ export { BottomEdgeProvider, useBottomEdgeInset, useClaimBottomEdge } from './bo
|
|
|
14
14
|
export { TopEdgeProvider, useClaimTopEdge, useTopEdgeInset } from './top-edge';
|
|
15
15
|
export { ScrollOffsetProvider, useScrollOffset } from './scroll-offset';
|
|
16
16
|
export { ScreenScope } from './screen-scope';
|
|
17
|
+
|
|
18
|
+
export { HeaderDockProvider, useHeaderDockInset } from './header-dock';
|
|
19
|
+
export { StickySection } from './StickySection';
|
|
20
|
+
export type { StickySectionProps } from './StickySection';
|
package/src/list/index.web.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
|
|
2
|
+
// Source of truth: src/list/index.ts.
|
|
3
|
+
// Re-run `bun run generate:exports` (or any `bun run build`) after
|
|
4
|
+
// changing that barrel or the set of web-forked subpaths.
|
|
5
|
+
|
|
1
6
|
export type {
|
|
2
7
|
VirtualListHandle,
|
|
3
8
|
VirtualListProps,
|
package/src/loading/Loading.tsx
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* `Loading` — NATIVE: the `top` variant's motion on react-native-reanimated.
|
|
3
|
+
*
|
|
4
|
+
* Everything else about the family is shared (`LoadingBase`); this file holds
|
|
5
|
+
* only what forks, and binds it. The `spinner` and `inline` variants, the size
|
|
6
|
+
* table and the stylesheet are identical on both platforms.
|
|
7
|
+
*/
|
|
8
|
+
import React, { useEffect } from 'react';
|
|
6
9
|
import Animated, {
|
|
7
10
|
Easing,
|
|
8
11
|
useAnimatedStyle,
|
|
@@ -10,60 +13,14 @@ import Animated, {
|
|
|
10
13
|
withTiming,
|
|
11
14
|
} from 'react-native-reanimated';
|
|
12
15
|
|
|
13
|
-
import {
|
|
16
|
+
import { normalizeBloomSize } from '../appearance/legacy';
|
|
17
|
+
import { resolveBloomColors } from '../appearance/colors';
|
|
18
|
+
import { useBloomAppearance } from '../appearance';
|
|
14
19
|
import { animation } from '../styles/tokens';
|
|
20
|
+
import { useTheme } from '../theme/use-theme';
|
|
21
|
+
import { bindLoading, SIZE_CONFIG, styles } from './LoadingBase';
|
|
15
22
|
import { SpinnerIcon } from './SpinnerIcon';
|
|
16
|
-
import type {
|
|
17
|
-
LoadingProps,
|
|
18
|
-
SpinnerLoadingProps,
|
|
19
|
-
TopLoadingProps,
|
|
20
|
-
InlineLoadingProps,
|
|
21
|
-
} from './types';
|
|
22
|
-
|
|
23
|
-
const SIZE_CONFIG = {
|
|
24
|
-
xs: { spinner: 16, text: 12 },
|
|
25
|
-
sm: { spinner: 20, text: 13 },
|
|
26
|
-
md: { spinner: 24, text: 15 },
|
|
27
|
-
lg: { spinner: 44, text: 16 },
|
|
28
|
-
} as const;
|
|
29
|
-
|
|
30
|
-
const SpinnerLoading: React.FC<SpinnerLoadingProps> = ({
|
|
31
|
-
size: sizeProp,
|
|
32
|
-
color,
|
|
33
|
-
tone: toneProp,
|
|
34
|
-
className,
|
|
35
|
-
text,
|
|
36
|
-
textStyle,
|
|
37
|
-
style,
|
|
38
|
-
showText = true,
|
|
39
|
-
iconSize,
|
|
40
|
-
spinnerIcon,
|
|
41
|
-
testID,
|
|
42
|
-
}) => {
|
|
43
|
-
const theme = useTheme();
|
|
44
|
-
const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
|
|
45
|
-
const sizeConfig = SIZE_CONFIG[size];
|
|
46
|
-
const effectiveIconSize = iconSize ?? sizeConfig.spinner;
|
|
47
|
-
const spinnerColor = className ? 'currentColor' : (color ?? resolveBloomColors(theme.colors, tone, 'solid').background);
|
|
48
|
-
const textColor = color ?? theme.colors.textSecondary;
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<View style={[styles.container, style]} testID={testID}>
|
|
52
|
-
{spinnerIcon ?? <SpinnerIcon size={effectiveIconSize} color={spinnerColor} className={className} />}
|
|
53
|
-
{showText && text && (
|
|
54
|
-
<Text
|
|
55
|
-
style={[
|
|
56
|
-
styles.text,
|
|
57
|
-
{ color: textColor, fontSize: sizeConfig.text, marginTop: 8 },
|
|
58
|
-
textStyle,
|
|
59
|
-
]}
|
|
60
|
-
>
|
|
61
|
-
{text}
|
|
62
|
-
</Text>
|
|
63
|
-
)}
|
|
64
|
-
</View>
|
|
65
|
-
);
|
|
66
|
-
};
|
|
23
|
+
import type { TopLoadingProps } from './types';
|
|
67
24
|
|
|
68
25
|
const TopLoading: React.FC<TopLoadingProps> = ({
|
|
69
26
|
size: sizeProp,
|
|
@@ -118,81 +75,4 @@ const TopLoading: React.FC<TopLoadingProps> = ({
|
|
|
118
75
|
);
|
|
119
76
|
};
|
|
120
77
|
|
|
121
|
-
const
|
|
122
|
-
size: sizeProp,
|
|
123
|
-
color,
|
|
124
|
-
tone: toneProp,
|
|
125
|
-
text,
|
|
126
|
-
style,
|
|
127
|
-
textStyle,
|
|
128
|
-
spinnerIcon,
|
|
129
|
-
testID,
|
|
130
|
-
}) => {
|
|
131
|
-
const theme = useTheme();
|
|
132
|
-
const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
|
|
133
|
-
const sizeConfig = SIZE_CONFIG[size];
|
|
134
|
-
const spinnerColor = color ?? resolveBloomColors(theme.colors, tone, 'solid').background;
|
|
135
|
-
const textColor = theme.colors.textSecondary;
|
|
136
|
-
|
|
137
|
-
return (
|
|
138
|
-
<View style={[styles.inlineContainer, style]} testID={testID}>
|
|
139
|
-
{spinnerIcon ?? <SpinnerIcon size={sizeConfig.spinner} color={spinnerColor} />}
|
|
140
|
-
{text && (
|
|
141
|
-
<Text
|
|
142
|
-
style={[
|
|
143
|
-
{ color: textColor, fontSize: sizeConfig.text, marginLeft: 8 },
|
|
144
|
-
textStyle,
|
|
145
|
-
]}
|
|
146
|
-
>
|
|
147
|
-
{text}
|
|
148
|
-
</Text>
|
|
149
|
-
)}
|
|
150
|
-
</View>
|
|
151
|
-
);
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
const LoadingComponent: React.FC<LoadingProps> = (props) => {
|
|
155
|
-
const variant = props.variant ?? 'spinner';
|
|
156
|
-
|
|
157
|
-
switch (variant) {
|
|
158
|
-
case 'top':
|
|
159
|
-
return <TopLoading {...(props as TopLoadingProps)} />;
|
|
160
|
-
case 'inline':
|
|
161
|
-
return <InlineLoading {...(props as InlineLoadingProps)} />;
|
|
162
|
-
case 'spinner':
|
|
163
|
-
default:
|
|
164
|
-
return <SpinnerLoading {...(props as SpinnerLoadingProps)} />;
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
export const Loading = memo(LoadingComponent);
|
|
169
|
-
Loading.displayName = 'Loading';
|
|
170
|
-
|
|
171
|
-
const styles = StyleSheet.create({
|
|
172
|
-
container: {
|
|
173
|
-
alignItems: 'center',
|
|
174
|
-
justifyContent: 'center',
|
|
175
|
-
padding: 16,
|
|
176
|
-
},
|
|
177
|
-
text: {
|
|
178
|
-
textAlign: 'center',
|
|
179
|
-
},
|
|
180
|
-
topContainer: {
|
|
181
|
-
width: '100%',
|
|
182
|
-
position: 'relative',
|
|
183
|
-
overflow: 'hidden',
|
|
184
|
-
},
|
|
185
|
-
topLoadingView: {
|
|
186
|
-
width: '100%',
|
|
187
|
-
alignItems: 'center',
|
|
188
|
-
justifyContent: 'center',
|
|
189
|
-
position: 'absolute',
|
|
190
|
-
top: 0,
|
|
191
|
-
left: 0,
|
|
192
|
-
},
|
|
193
|
-
inlineContainer: {
|
|
194
|
-
flexDirection: 'row',
|
|
195
|
-
alignItems: 'center',
|
|
196
|
-
justifyContent: 'center',
|
|
197
|
-
},
|
|
198
|
-
});
|
|
78
|
+
export const { Loading } = bindLoading({ SpinnerIcon, TopLoading });
|
|
@@ -1,65 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Loading` — WEB: the `top` variant's motion on CSS transitions.
|
|
3
|
+
*
|
|
4
|
+
* The native fork statically imports react-native-reanimated, whose worklets
|
|
5
|
+
* Babel plugin is native-only — importing it statically breaks every web
|
|
6
|
+
* bundler, Vite, webpack and Metro-web alike. That is the whole reason this
|
|
7
|
+
* family forks. Everything else is shared (`LoadingBase`): the `spinner` and
|
|
8
|
+
* `inline` variants, the size table and the stylesheet.
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import { View } from 'react-native';
|
|
12
|
+
|
|
1
13
|
import { normalizeBloomSize } from '../appearance/legacy';
|
|
2
14
|
import { resolveBloomColors } from '../appearance/colors';
|
|
3
15
|
import { useBloomAppearance } from '../appearance';
|
|
4
|
-
import
|
|
5
|
-
import { View, Text, StyleSheet, type DimensionValue } from 'react-native';
|
|
6
|
-
|
|
16
|
+
import { animation } from '../styles/tokens';
|
|
7
17
|
import type { WebCssStyle } from '../styles/web-view-style';
|
|
8
|
-
|
|
9
18
|
import { useTheme } from '../theme/use-theme';
|
|
10
|
-
import {
|
|
19
|
+
import { bindLoading, SIZE_CONFIG, styles } from './LoadingBase';
|
|
11
20
|
import { SpinnerIcon } from './SpinnerIcon.web';
|
|
12
|
-
import type {
|
|
13
|
-
LoadingProps,
|
|
14
|
-
SpinnerLoadingProps,
|
|
15
|
-
TopLoadingProps,
|
|
16
|
-
InlineLoadingProps,
|
|
17
|
-
} from './types';
|
|
18
|
-
|
|
19
|
-
const SIZE_CONFIG = {
|
|
20
|
-
xs: { spinner: 16, text: 12 },
|
|
21
|
-
sm: { spinner: 20, text: 13 },
|
|
22
|
-
md: { spinner: 24, text: 15 },
|
|
23
|
-
lg: { spinner: 44, text: 16 },
|
|
24
|
-
} as const;
|
|
25
|
-
|
|
26
|
-
const SpinnerLoading: React.FC<SpinnerLoadingProps> = ({
|
|
27
|
-
size: sizeProp,
|
|
28
|
-
color,
|
|
29
|
-
tone: toneProp,
|
|
30
|
-
className,
|
|
31
|
-
text,
|
|
32
|
-
textStyle,
|
|
33
|
-
style,
|
|
34
|
-
showText = true,
|
|
35
|
-
iconSize,
|
|
36
|
-
spinnerIcon,
|
|
37
|
-
testID,
|
|
38
|
-
}) => {
|
|
39
|
-
const theme = useTheme();
|
|
40
|
-
const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
|
|
41
|
-
const sizeConfig = SIZE_CONFIG[size];
|
|
42
|
-
const effectiveIconSize = iconSize ?? sizeConfig.spinner;
|
|
43
|
-
const spinnerColor = className ? 'currentColor' : (color ?? resolveBloomColors(theme.colors, tone, 'solid').background);
|
|
44
|
-
const textColor = color ?? theme.colors.textSecondary;
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<View style={[styles.container, style]} testID={testID}>
|
|
48
|
-
{spinnerIcon ?? <SpinnerIcon size={effectiveIconSize} color={spinnerColor} className={className} />}
|
|
49
|
-
{showText && text && (
|
|
50
|
-
<Text
|
|
51
|
-
style={[
|
|
52
|
-
styles.text,
|
|
53
|
-
{ color: textColor, fontSize: sizeConfig.text, marginTop: 8 },
|
|
54
|
-
textStyle,
|
|
55
|
-
]}
|
|
56
|
-
>
|
|
57
|
-
{text}
|
|
58
|
-
</Text>
|
|
59
|
-
)}
|
|
60
|
-
</View>
|
|
61
|
-
);
|
|
62
|
-
};
|
|
21
|
+
import type { TopLoadingProps } from './types';
|
|
63
22
|
|
|
64
23
|
/**
|
|
65
24
|
* Web fork of the `top` variant.
|
|
@@ -131,81 +90,4 @@ const TopLoading: React.FC<TopLoadingProps> = ({
|
|
|
131
90
|
);
|
|
132
91
|
};
|
|
133
92
|
|
|
134
|
-
const
|
|
135
|
-
size: sizeProp,
|
|
136
|
-
color,
|
|
137
|
-
tone: toneProp,
|
|
138
|
-
text,
|
|
139
|
-
style,
|
|
140
|
-
textStyle,
|
|
141
|
-
spinnerIcon,
|
|
142
|
-
testID,
|
|
143
|
-
}) => {
|
|
144
|
-
const theme = useTheme();
|
|
145
|
-
const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
|
|
146
|
-
const sizeConfig = SIZE_CONFIG[size];
|
|
147
|
-
const spinnerColor = color ?? resolveBloomColors(theme.colors, tone, 'solid').background;
|
|
148
|
-
const textColor = theme.colors.textSecondary;
|
|
149
|
-
|
|
150
|
-
return (
|
|
151
|
-
<View style={[styles.inlineContainer, style]} testID={testID}>
|
|
152
|
-
{spinnerIcon ?? <SpinnerIcon size={sizeConfig.spinner} color={spinnerColor} />}
|
|
153
|
-
{text && (
|
|
154
|
-
<Text
|
|
155
|
-
style={[
|
|
156
|
-
{ color: textColor, fontSize: sizeConfig.text, marginLeft: 8 },
|
|
157
|
-
textStyle,
|
|
158
|
-
]}
|
|
159
|
-
>
|
|
160
|
-
{text}
|
|
161
|
-
</Text>
|
|
162
|
-
)}
|
|
163
|
-
</View>
|
|
164
|
-
);
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const LoadingComponent: React.FC<LoadingProps> = (props) => {
|
|
168
|
-
const variant = props.variant ?? 'spinner';
|
|
169
|
-
|
|
170
|
-
switch (variant) {
|
|
171
|
-
case 'top':
|
|
172
|
-
return <TopLoading {...(props as TopLoadingProps)} />;
|
|
173
|
-
case 'inline':
|
|
174
|
-
return <InlineLoading {...(props as InlineLoadingProps)} />;
|
|
175
|
-
case 'spinner':
|
|
176
|
-
default:
|
|
177
|
-
return <SpinnerLoading {...(props as SpinnerLoadingProps)} />;
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
export const Loading = memo(LoadingComponent);
|
|
182
|
-
Loading.displayName = 'Loading';
|
|
183
|
-
|
|
184
|
-
const styles = StyleSheet.create({
|
|
185
|
-
container: {
|
|
186
|
-
alignItems: 'center',
|
|
187
|
-
justifyContent: 'center',
|
|
188
|
-
padding: 16,
|
|
189
|
-
},
|
|
190
|
-
text: {
|
|
191
|
-
textAlign: 'center',
|
|
192
|
-
},
|
|
193
|
-
topContainer: {
|
|
194
|
-
width: '100%',
|
|
195
|
-
position: 'relative',
|
|
196
|
-
overflow: 'hidden',
|
|
197
|
-
},
|
|
198
|
-
topLoadingView: {
|
|
199
|
-
width: '100%',
|
|
200
|
-
alignItems: 'center',
|
|
201
|
-
justifyContent: 'center',
|
|
202
|
-
position: 'absolute',
|
|
203
|
-
top: 0,
|
|
204
|
-
left: 0,
|
|
205
|
-
},
|
|
206
|
-
inlineContainer: {
|
|
207
|
-
flexDirection: 'row',
|
|
208
|
-
alignItems: 'center',
|
|
209
|
-
justifyContent: 'center',
|
|
210
|
-
},
|
|
211
|
-
});
|
|
93
|
+
export const { Loading } = bindLoading({ SpinnerIcon, TopLoading });
|