playbook_ui 16.13.0.pre.rc.4 → 17.0.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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_description_react.md +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +8 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +8 -0
- data/app/pb_kits/playbook/pb_advanced_table/kit.schema.json +1 -1
- data/dist/chunks/StickyLayoutHelper-DCzCcWUN.js +1 -0
- data/dist/chunks/_detail-BKKHcGcj.js +5 -0
- data/dist/chunks/{_pb_line_graph-BL9pXDkX.js → _pb_line_graph-B3q4LKEz.js} +1 -1
- data/dist/chunks/_table-Bkla2kcQ.js +1 -0
- data/dist/chunks/_typeahead-CULhE-SU.js +1 -0
- data/dist/chunks/{globalProps-BQqb1ZGy.js → globalProps-zGbN4oBH.js} +1 -1
- data/dist/chunks/lib-LNv9xZ-1.js +29 -0
- data/dist/chunks/time_picker_helper-Bx8nzyM8.js +1 -0
- data/dist/chunks/vendor.js +3 -23
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/tokens/colors.json +117 -1
- data/lib/playbook/tokens.rb +5 -4
- data/lib/playbook/version.rb +1 -1
- metadata +11 -7
- data/dist/chunks/_typeahead-BcKnlPk3.js +0 -5
- data/dist/chunks/lib-CYrXqTdQ.js +0 -29
- data/dist/chunks/time_picker_helper-CVMV9ync.js +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8a0a3a991932ffc02ce86b727b56b252fbf4bb0bc93f232fbbad6941c63e56d5
|
|
4
|
+
data.tar.gz: 342f580343e5a39ef86663eba4d1fb8bce4ddcc699d3d7b52c9a7e1d16404f95
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 878f0f3aa7a1930e43394ae899c2708d9d7d3596f4ebb014c588f1095921c9cb7575f77f33dfb207286bb93c2c3b2185b9b244df1addd71aa6347835c0560560
|
|
7
|
+
data.tar.gz: 71ddab4024b085f462b341b2daf4158aac4cc81a5289025f5cf1782ba4c72560e2b75d6054a61faae3eb5d3cd1cf46ae24e8d579bcd313fe0578a5ac06692efb
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, {useState} from "react"
|
|
2
2
|
import { render, screen, waitFor } from "../utilities/test-utils"
|
|
3
3
|
|
|
4
|
-
import { AdvancedTable
|
|
4
|
+
import { AdvancedTable } from "playbook-ui/advanced-table"
|
|
5
|
+
import { Pill, colors } from "playbook-ui"
|
|
5
6
|
|
|
6
7
|
global.ResizeObserver = class {
|
|
7
8
|
observe() {}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Advanced Table is available through a separate entrypoint so TanStack stays out of the main `playbook-ui` bundle until this kit is used. TanStack is still bundled with that entrypoint, no additional installation is required.
|
|
2
|
+
|
|
3
|
+
**NOTE**: Import Advanced Table using:
|
|
4
|
+
```javascript
|
|
5
|
+
import { AdvancedTable } from 'playbook-ui/advanced-table'
|
|
6
|
+
```
|
|
@@ -259,6 +259,11 @@
|
|
|
259
259
|
}
|
|
260
260
|
},
|
|
261
261
|
"hints": {
|
|
262
|
+
"advanced_table_import": {
|
|
263
|
+
"when": {},
|
|
264
|
+
"message": "AdvancedTable is imported from playbook-ui/advanced-table so apps can keep TanStack out of the main playbook-ui bundle until this kit is used.",
|
|
265
|
+
"type": "info"
|
|
266
|
+
},
|
|
262
267
|
"sorting_info": {
|
|
263
268
|
"when": {
|
|
264
269
|
"enableSortingRemoval": true
|
|
@@ -316,6 +321,9 @@
|
|
|
316
321
|
"type": "info"
|
|
317
322
|
}
|
|
318
323
|
},
|
|
324
|
+
"externalImports": [
|
|
325
|
+
"import { AdvancedTable } from 'playbook-ui/advanced-table'"
|
|
326
|
+
],
|
|
319
327
|
"structureModes": {
|
|
320
328
|
"default": "implicit",
|
|
321
329
|
"modes": {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"externalImports": [
|
|
3
|
+
"import { AdvancedTable } from 'playbook-ui/advanced-table'"
|
|
4
|
+
],
|
|
2
5
|
"structureModes": {
|
|
3
6
|
"default": "implicit",
|
|
4
7
|
"modes": {
|
|
@@ -311,6 +314,11 @@
|
|
|
311
314
|
}
|
|
312
315
|
},
|
|
313
316
|
"hints": {
|
|
317
|
+
"advanced_table_import": {
|
|
318
|
+
"when": {},
|
|
319
|
+
"message": "AdvancedTable is imported from playbook-ui/advanced-table so apps can keep TanStack out of the main playbook-ui bundle until this kit is used.",
|
|
320
|
+
"type": "info"
|
|
321
|
+
},
|
|
314
322
|
"sorting_info": {
|
|
315
323
|
"when": {
|
|
316
324
|
"enableSortingRemoval": true
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"globalProps": true,
|
|
313
313
|
"usage": {
|
|
314
314
|
"react": {
|
|
315
|
-
"import": "import { AdvancedTable } from 'playbook-ui'",
|
|
315
|
+
"import": "import { AdvancedTable } from 'playbook-ui/advanced-table'",
|
|
316
316
|
"example": "<AdvancedTable columnGroupBorderColor=\"text_lt_default\" enableToggleExpansion=\"all\"></AdvancedTable>"
|
|
317
317
|
},
|
|
318
318
|
"rails": {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const VISIBLE_ACTION_BAR_SELECTOR=".row-selection-actions-card.is-visible, .row-selection-actions-card.show-action-card";const ACTION_BAR_HEIGHT_TRANSITION_MS=350;const measureElementHeight=element=>{const{height:rectHeight}=element.getBoundingClientRect();const scrollHeight=element.scrollHeight;const offsetHeight=element.offsetHeight;return Math.ceil(Math.max(rectHeight,scrollHeight,offsetHeight))};const updateStickyActionBarHeight=advancedTableWrapper=>{if(!advancedTableWrapper)return 0;const actionBar=advancedTableWrapper.querySelector(VISIBLE_ACTION_BAR_SELECTOR);if(!actionBar){advancedTableWrapper.style.setProperty("--advanced-table-action-bar-height","0px");return 0}const actionBarHeight=measureElementHeight(actionBar);advancedTableWrapper.style.setProperty("--advanced-table-action-bar-height",`${actionBarHeight}px`);return actionBarHeight};const scheduleStickyActionBarHeightUpdate=advancedTableWrapper=>{if(!advancedTableWrapper)return;updateStickyActionBarHeight(advancedTableWrapper);requestAnimationFrame((()=>{updateStickyActionBarHeight(advancedTableWrapper);requestAnimationFrame((()=>{updateStickyActionBarHeight(advancedTableWrapper)}))}));window.setTimeout((()=>{updateStickyActionBarHeight(advancedTableWrapper)}),ACTION_BAR_HEIGHT_TRANSITION_MS)};const updateStickyHeaderRowHeights=advancedTableWrapper=>{if(!advancedTableWrapper)return;const table=advancedTableWrapper.querySelector("table.pb_table");const thead=table==null?void 0:table.querySelector("thead");if(!thead)return;const rows=Array.from(thead.querySelectorAll("tr"));let totalHeight=0;rows.forEach(((tr,index)=>{const height=tr.offsetHeight;if(index===0){advancedTableWrapper.style.setProperty("--advanced-table-header-row-0-height",`${height}px`)}else if(index===1){advancedTableWrapper.style.setProperty("--advanced-table-header-row-1-height",`${height}px`)}totalHeight+=height}));advancedTableWrapper.style.setProperty("--advanced-table-header-height",`${totalHeight}px`);updateStickyActionBarHeight(advancedTableWrapper)};const updateStickyLayoutHeights=advancedTableWrapper=>{updateStickyHeaderRowHeights(advancedTableWrapper)};export{updateStickyHeaderRowHeights as a,updateStickyLayoutHeights as b,measureElementHeight as m,scheduleStickyActionBarHeightUpdate as s,updateStickyActionBarHeight as u};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{jsx,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useRef,useEffect,useMemo,useContext,createElement,forwardRef,useLayoutEffect,useState}from"react";import{D as noop,E as get,F as getAllIcons,G as spacing,c as colors,H as evaluate,I as getSide,J as getSideAxis,K as getOppositePlacement,L as getExpandedPlacements,M as getOppositeAxisPlacements,N as getAlignmentSides,O as clamp,Q as getAlignment,R as getPaddingObject,S as rectToClientRect,T as getOppositeAxis,U as getAlignmentAxis,V as getAxisLength,W as min,X as createCoords,Y as round,Z as max,_ as floor}from"./lib-LNv9xZ-1.js";import{a as buildDataProps,c as buildHtmlProps,f as globalInlineProps,d as classnames,g as globalProps,b as buildAriaProps,e as buildCss,n as noop$1}from"./globalProps-zGbN4oBH.js";import*as ReactDOM from"react-dom";const initialState={items:[],dragData:{id:"",initialGroup:"",originId:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return{...state,items:action.payload};case"SET_DRAG_DATA":return{...state,dragData:action.payload};case"SET_IS_DRAGGING":return{...state,isDragging:action.payload};case"SET_ACTIVE_CONTAINER":return{...state,activeContainer:action.payload};case"CHANGE_CATEGORY":return{...state,items:state.items.map((item=>item.id===action.payload.itemId?{...item,container:action.payload.container}:item))};case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return{...state,items:newItems}}case"REORDER_ITEMS_CROSS_CONTAINER":{const{dragId:dragId,targetId:targetId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item&&item.id===targetId));if(draggedIndex===-1||targetIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,updatedItem);return{...state,items:newItems}}case"MOVE_TO_CONTAINER_END":{const{dragId:dragId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);if(draggedIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);const lastIndexInContainer=newItems.map((item=>item&&item.container)).lastIndexOf(newContainer);if(lastIndexInContainer===-1){newItems.push(updatedItem)}else{newItems.splice(lastIndexInContainer+1,0,updatedItem)}return{...state,items:newItems}}case"RESET_DRAG_CONTAINER":{const{itemId:itemId,originalContainer:originalContainer,originalIndex:originalIndex}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===itemId));if(!draggedItem)return state;const currentIndex=newItems.indexOf(draggedItem);newItems.splice(currentIndex,1);const restoredItem={...draggedItem,container:originalContainer};if(originalIndex!==void 0&&originalIndex>=0){newItems.splice(originalIndex,0,restoredItem)}else{newItems.push(restoredItem)}return{...state,items:newItems}}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver,dropZone:dropZone={type:"ghost",color:"neutral",direction:"vertical"},providerId:providerId="default",enableCrossContainerPreview:enableCrossContainerPreview=false})=>{const[state,dispatch]=useReducer(reducer,initialState);const dragStateRef=useRef({isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false});const stateRef=useRef(state);useEffect((()=>{stateRef.current=state}),[state]);let dropZoneType="ghost";let dropZoneColor="neutral";let dropZoneDirection="vertical";if(typeof dropZone==="string"){dropZoneType=dropZone}else{dropZoneType=dropZone.type||"ghost";dropZoneColor=dropZone.type==="line"?dropZone.color||"primary":dropZone.color||"neutral";if(dropZoneType==="line"){dropZoneDirection=dropZone.direction||"vertical"}}useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);useEffect((()=>{if(!enableCrossContainerPreview)return;const handleGlobalDragOver=e=>{if(dragStateRef.current.isDragging){e.preventDefault()}};const handleGlobalDrop=e=>{if(!dragStateRef.current.isDragging)return;if(dragStateRef.current.dropOccurred)return;e.preventDefault();const originalContainer=dragStateRef.current.originalContainer;dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}};const handleGlobalMouseUp=()=>{if(dragStateRef.current.isDragging){setTimeout((()=>{const currentContainer=dragStateRef.current.currentContainer;if(dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){if(currentContainer&¤tContainer!==dragStateRef.current.originalContainer){if(onDrop){const draggedItem=stateRef.current.items.find((item=>item&&item.id===dragStateRef.current.draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:currentContainer}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===currentContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===dragStateRef.current.draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDrop(dragStateRef.current.draggedItemId,currentContainer,dragStateRef.current.originalContainer,updatedItem,itemAbove,itemBelow)}}else{dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}}),50)}};const handleDragLeave=e=>{if(!e.relatedTarget&&dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}};document.addEventListener("dragover",handleGlobalDragOver);document.addEventListener("drop",handleGlobalDrop);document.addEventListener("dragleave",handleDragLeave);document.addEventListener("mouseup",handleGlobalMouseUp);document.addEventListener("pointerup",handleGlobalMouseUp);return()=>{document.removeEventListener("dragover",handleGlobalDragOver);document.removeEventListener("drop",handleGlobalDrop);document.removeEventListener("dragleave",handleDragLeave);document.removeEventListener("mouseup",handleGlobalMouseUp);document.removeEventListener("pointerup",handleGlobalMouseUp)}}),[enableCrossContainerPreview]);const prevIsDraggingRef=useRef(state.isDragging);useEffect((()=>{if(!enableCrossContainerPreview)return;const wasDragging=prevIsDraggingRef.current;const isNowDragging=state.isDragging;if(wasDragging&&!isNowDragging){if(!dragStateRef.current.dropOccurred&&dragStateRef.current.draggedItemId){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}prevIsDraggingRef.current=isNowDragging}),[state.isDragging,enableCrossContainerPreview]);const handleDragStart=(id,container)=>{if(enableCrossContainerPreview){const originalIndex=state.items.findIndex((item=>item&&item.id===id));dragStateRef.current={isDragging:true,draggedItemId:id,originalContainer:container,originalIndex:originalIndex,currentContainer:container,dropOccurred:false}}dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container,originId:providerId}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.originId!==providerId)return;if(state.dragData.id!==id){if(enableCrossContainerPreview){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));const currentContainer=draggedItem&&draggedItem.container?draggedItem.container:state.dragData.initialGroup;const isCrossContainer=currentContainer!==container&&(currentContainer!==void 0||container!==void 0);if(isCrossContainer){dispatch({type:"REORDER_ITEMS_CROSS_CONTAINER",payload:{dragId:state.dragData.id,targetId:id,newContainer:container}});if(enableCrossContainerPreview){dragStateRef.current.currentContainer=container}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}const newInitialGroup=enableCrossContainerPreview?state.dragData.initialGroup:container;dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:newInitialGroup,originId:providerId}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview&&!dragStateRef.current.dropOccurred&&draggedItemId&&originalContainer){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});if(enableCrossContainerPreview&&dragStateRef.current.dropOccurred){return}if(onDragEnd){if(!enableCrossContainerPreview){onDragEnd()}else{const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const finalContainer=draggedItem?draggedItem.container:originalContainer;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===finalContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDragEnd(draggedItemId,finalContainer,originalContainer,itemAbove,itemBelow)}}};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{if(state.dragData.originId!==providerId)return;const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview){dragStateRef.current.dropOccurred=true}const isCrossContainer=container!==originalContainer;let callbackData=null;if(enableCrossContainerPreview){const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:container}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===container));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;callbackData={updatedItem:updatedItem,itemAbove:itemAbove,itemBelow:itemBelow}}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});changeCategory(state.dragData.id,container);if(onDrop){if(!enableCrossContainerPreview){onDrop(container)}else{onDrop(draggedItemId,container,originalContainer,callbackData.updatedItem,callbackData.itemAbove,callbackData.itemBelow)}}if(enableCrossContainerPreview&&isCrossContainer&&onDragEnd&&callbackData){onDragEnd(draggedItemId,container,originalContainer,callbackData.itemAbove,callbackData.itemBelow)}};const handleDragOver=(e,container)=>{if(state.dragData.originId!==providerId)return;e.preventDefault();dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});if(enableCrossContainerPreview&&state.dragData.id){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));if(draggedItem&&draggedItem.container!==container){dispatch({type:"MOVE_TO_CONTAINER_END",payload:{dragId:state.dragData.id,newContainer:container}});dragStateRef.current.currentContainer=container}}if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,dropZone:dropZoneType,dropZoneColor:dropZoneColor,...dropZoneType==="line"?{direction:dropZoneDirection}:{},handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state,dropZoneType,dropZoneColor,dropZoneDirection]);return jsx(DragContext.Provider,{value:contextValue,children:children})};const Flex=props=>{const{align:align="none",children:children,className:className,data:data={},inline:inline=false,horizontal:horizontal="left",htmlOptions:htmlOptions={},justify:justify="none",orientation:orientation="row",spacing:spacing2="none",gap:gap="none",rowGap:rowGap="none",columnGap:columnGap="none",reverse:reverse=false,vertical:vertical="top",wrap:wrap=false,alignSelf:alignSelf="none"}=props;const orientationClass=orientation!==void 0?`pb_flex_kit_orientation_${orientation}`:"";const justifyClass=justify!=="none"?`pb_flex_kit_justify_content_${justify}`:`pb_flex_kit_justify_content_${horizontal}`;const alignClass=align!=="none"?`pb_flex_kit_align_items_${align}`:`pb_flex_kit_align_items_${vertical}`;const inlineClass=inline===true?"pb_flex_kit_inline":"";const spacingClass=spacing2!==void 0?`pb_flex_kit_spacing_${spacing2}`:"";const gapClass=gap!=="none"&&typeof gap==="string"?`pb_flex_kit_gap_${gap}`:"";const rowGapClass=rowGap!=="none"&&typeof rowGap==="string"?`pb_flex_kit_rowGap_${rowGap}`:"";const columnGapClass=columnGap!=="none"&&typeof columnGap==="string"?`pb_flex_kit_columnGap_${columnGap}`:"";const responsiveGapClass=gap!=="none"&&typeof gap==="object"&&gap!==null&&!Array.isArray(gap)?"pb_flex_kit_gap_responsive":"";const responsiveRowGapClass=rowGap!=="none"&&typeof rowGap==="object"&&rowGap!==null&&!Array.isArray(rowGap)?"pb_flex_kit_rowGap_responsive":"";const responsiveColumnGapClass=columnGap!=="none"&&typeof columnGap==="object"&&columnGap!==null&&!Array.isArray(columnGap)?"pb_flex_kit_columnGap_responsive":"";const wrapClass=wrap===true?"pb_flex_kit_wrap":"";const reverseClass=reverse===true?"pb_flex_kit_reverse":"";const alignSelfClass=alignSelf!=="none"?`pb_flex_kit_align_self_${alignSelf}`:"";const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const dynamicInlineProps=globalInlineProps(props);return jsx("div",{className:classnames("pb_flex_kit",orientationClass,justifyClass,alignClass,inlineClass,reverseClass,wrapClass,spacingClass,gapClass,rowGapClass,columnGapClass,responsiveGapClass,responsiveRowGapClass,responsiveColumnGapClass,alignSelfClass,globalProps(props),className),style:dynamicInlineProps,...dataProps,...htmlProps,children:children})};const isValidEmoji=emoji=>{const emojiRegex=new RegExp("^(\\p{Emoji}|\\uFE0F|\\u200D|\\u20E3)+$","u");return emojiRegex.test(emoji)};const flipMap={fa:{horizontal:"fa-flip-horizontal",vertical:"fa-flip-vertical",both:"fa-flip-horizontal fa-flip-vertical",none:""},svg:{horizontal:"flip_horizontal",vertical:"flip_vertical",both:"flip_horizontal flip_vertical",none:""}};const pulseMap={fa:"fa-pulse",svg:"pulse"};const spinMap={fa:"fa-spin",svg:"spin"};const rotateMap={fa:{90:"fa-rotate-90",180:"fa-rotate-180",270:"fa-rotate-270"},svg:{90:"rotate_90",180:"rotate_180",270:"rotate_270"}};const sizeMap={fa:{lg:"fa-lg",xs:"fa-xs",sm:"fa-sm","1x":"fa-1x","2x":"fa-2x","3x":"fa-3x","4x":"fa-4x","5x":"fa-5x","6x":"fa-6x","7x":"fa-7x","8x":"fa-8x","9x":"fa-9x","10x":"fa-10x","":""},svg:{lg:"svg_lg",xs:"svg_xs",sm:"svg_sm","1x":"svg_1x","2x":"svg_2x","3x":"svg_3x","4x":"svg_4x","5x":"svg_5x","6x":"svg_6x","7x":"svg_7x","8x":"svg_8x","9x":"svg_9x","10x":"svg_10x","":""}};const Icon=props=>{const{aria:aria={},border:borderProp=false,className:className,color:color,customIcon:customIcon,data:data={},fixedWidth:fixedWidth=true,flip:flip2="none",htmlOptions:htmlOptions={},icon:icon="",id:id,inverse:inverse=false,listItem:listItem=false,pull:pull,pulse:pulse=false,rotation:rotation,size:size,fontStyle:fontStyle="far",spin:spin=false,tabIndex:tabIndex}=props;const faBorder=borderProp===true;const globalPropsForCss=typeof borderProp==="boolean"?{...props,border:void 0}:props;let iconElement=typeof icon==="object"?icon:null;if(!customIcon&&!iconElement){const PowerIcon=window.PB_ICONS?window.PB_ICONS[icon]:null;if(PowerIcon){iconElement=jsx(PowerIcon,{})}}const isFA=!iconElement&&!customIcon;let classes=classnames(!iconElement&&!customIcon?"pb_icon_kit":"",iconElement||customIcon?"pb_custom_icon":fontStyle,iconElement?"svg-inline--fa":"",color?`color_${color}`:"",globalProps(globalPropsForCss),className);const transformClasses=classnames(flip2?flipMap[isFA?"fa":"svg"][flip2]:null,pulse?pulseMap[isFA?"fa":"svg"]:null,rotation?rotateMap[isFA?"fa":"svg"][rotation]:null,spin?spinMap[isFA?"fa":"svg"]:null,size?sizeMap[isFA?"fa":"svg"][size]:null,faBorder?isFA?"fa-border":"svg_border":null,fixedWidth?isFA?"fa-fw":"svg_fw":null,inverse?isFA?"fa-inverse":"svg_inverse":null,listItem?isFA?"fa-li":"svg_li":null,pull?isFA?`fa-pull-${pull}`:`pull_${pull}`:null);classes+=` ${transformClasses}`;if(isFA){const faClassList={"fa-border":faBorder,"fa-inverse":inverse,"fa-li":listItem,[`fa-${size}`]:size,[`fa-pull-${pull}`]:pull};faClassList[`fa-${icon}`]=icon;classes+=` ${classnames(faClassList)}`}const classesEmoji=classnames("pb_icon_kit_emoji",globalProps(globalPropsForCss),className);aria.label?null:aria.label=`${icon} icon`;const normalizedAria=Object.fromEntries(Object.entries(aria).map((([key,value])=>[key,typeof value==="boolean"?String(value):value])));const ariaProps=buildAriaProps(normalizedAria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const displaySVG=customIcon2=>{if(iconElement||customIcon2)return jsx(Fragment,{children:React__default.cloneElement(iconElement||customIcon2,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,...props.tabIndex!==void 0&&{tabIndex:tabIndex}})});else if(isValidEmoji(icon))return jsx(Fragment,{children:jsx("span",{...ariaProps,...dataProps,...htmlProps,className:classesEmoji,id:id,children:icon})});else return jsxs(Fragment,{children:[jsx("i",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id}),jsx("span",{...ariaProps,hidden:true})]})};return jsx(Fragment,{children:displaySVG(customIcon)})};const DraggableContainer=props=>{const{aria:aria={},children:children,className:className,container:container,data:data={},htmlOptions:htmlOptions={},id:id,tag:tag="div"}=props;const contextValues=DraggableContext();const{handleDragOver:handleDragOver,handleDrop:handleDrop,activeContainer:activeContainer,dropZone:dropZone}=contextValues;const direction=dropZone==="line"?contextValues.direction||"vertical":null;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const Tag=`${tag}`;const classes=classnames(buildCss("pb_draggable_container"),`${activeContainer===container?"active":""}`,dropZone==="line"&&direction==="vertical"?"line_vertical":"",dropZone==="line"&&direction==="horizontal"?"line_horizontal":"",globalProps(props),className);return createElement(Tag,{...ariaProps,...dataProps,...htmlProps,className:classes,"data-pb-drag-container":container,id:id,key:container,onDragOver:e=>handleDragOver(e,container),onDrop:()=>handleDrop(container)},children)};const DRAG_HANDLE_SELECTOR=".pb_draggable_handle, .card_draggable_handle";const DRAG_THRESHOLD_PX=5;const isTouchDragDevice=()=>{if(typeof window==="undefined")return false;const hasCoarsePointer=typeof window.matchMedia==="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches;return hasCoarsePointer};const getDragIdFromElement=element=>{const item=element==null?void 0:element.closest(".pb_draggable_item");if(!item)return null;return item.getAttribute("data-pb-drag-id")};const getContainerFromElement=element=>{const container=element==null?void 0:element.closest(".pb_draggable_container");if(!container)return void 0;return container.getAttribute("data-pb-drag-container")||void 0};const getSortedDragItems=containerElement=>Array.from(containerElement.querySelectorAll(".pb_draggable_item[data-pb-drag-id]")).map((element=>({id:element.getAttribute("data-pb-drag-id"),rect:element.getBoundingClientRect()}))).sort(((a,b)=>a.rect.left-b.rect.left));const getDragIdFromElementsAtPoint=(clientX,clientY,dragId)=>{if(typeof document.elementsFromPoint!=="function")return null;return document.elementsFromPoint(clientX,clientY).map((element=>getDragIdFromElement(element))).find((id=>id&&id!==dragId))??null};const getTargetWhenPointerOnDraggedItem=(containerElement,clientX,dragId)=>{const items=getSortedDragItems(containerElement);const currentIndex=items.findIndex((item=>item.id===dragId));if(currentIndex===-1)return null;const others=items.filter((item=>item.id!==dragId));if(!others.length)return null;let slot=0;others.forEach(((item,index2)=>{const midpoint=item.rect.left+item.rect.width/2;if(clientX>midpoint){slot=index2+1}}));const desiredIndex=Math.min(slot,items.length-1);if(desiredIndex===currentIndex)return null;const targetItem=items[desiredIndex];if(!targetItem||targetItem.id===dragId)return null;return targetItem.id};const resolvePointerDragTarget=(clientX,clientY,dragId)=>{const elementBelow=typeof document.elementFromPoint==="function"?document.elementFromPoint(clientX,clientY):null;const hitId=getDragIdFromElement(elementBelow);if(hitId&&hitId!==dragId){return{targetDragId:hitId,targetContainer:getContainerFromElement(elementBelow)}}const stackId=getDragIdFromElementsAtPoint(clientX,clientY,dragId);if(stackId){return{targetDragId:stackId,targetContainer:getContainerFromElement(elementBelow)}}const containerElement=elementBelow==null?void 0:elementBelow.closest(".pb_draggable_container");if(!containerElement){return{targetDragId:null,targetContainer:void 0}}return{targetDragId:getTargetWhenPointerOnDraggedItem(containerElement,clientX,dragId),targetContainer:getContainerFromElement(containerElement)}};const createPreventableEvent=()=>({preventDefault:()=>void 0});const runDragPointerMove=(state,clientX,clientY,dragId,container,handlers)=>{if(!state.dragging){const deltaX=clientX-state.startX;const deltaY=clientY-state.startY;if(Math.hypot(deltaX,deltaY)<DRAG_THRESHOLD_PX)return false;state.dragging=true;handlers.onDragStart(dragId,container)}const{targetDragId:targetDragId,targetContainer:targetContainer}=resolvePointerDragTarget(clientX,clientY,dragId);if(!targetDragId||targetDragId===dragId){state.lastTargetDragId=null}else if(targetDragId!==state.lastTargetDragId){state.lastTargetDragId=targetDragId;handlers.onDragEnter(targetDragId,targetContainer??container)}if(targetContainer&&targetContainer!==state.lastContainer){state.lastContainer=targetContainer;handlers.onDragOver(createPreventableEvent(),targetContainer)}else if(targetContainer){handlers.onDragOver(createPreventableEvent(),targetContainer)}return true};const finishDragPointer=(state,clientX,clientY,container,handlers,itemElement)=>{if(!state.active)return;if(state.dragging&&clientX!==null&&clientY!==null){const elementBelow=document.elementFromPoint(clientX,clientY);const dropContainer=getContainerFromElement(elementBelow)??container;if(dropContainer){handlers.onDrop(dropContainer)}handlers.onDragEnd()}state.active=false;state.dragging=false;state.lastTargetDragId=null;state.lastContainer=void 0;itemElement.classList.remove("is_touch_active")};const bindTouchDrag=({dragId:dragId,container:container,itemElement:itemElement,handlers:handlers})=>{if(!isTouchDragDevice()){return()=>void 0}const handle=itemElement.querySelector(DRAG_HANDLE_SELECTOR);const dragTarget=handle||itemElement;const state={active:false,dragging:false,startX:0,startY:0,lastTargetDragId:null,lastContainer:void 0};const handleTouchStart=event=>{if(handle&&!handle.contains(event.target)){return}const touch=event.touches[0];if(!touch)return;state.active=true;state.startX=touch.clientX;state.startY=touch.clientY;itemElement.classList.add("is_touch_active")};const handleTouchMove=event=>{if(!state.active)return;const touch=event.touches[0];if(!touch)return;if(runDragPointerMove(state,touch.clientX,touch.clientY,dragId,container,handlers)){event.preventDefault()}};const finishDrag=touch=>{finishDragPointer(state,(touch==null?void 0:touch.clientX)??null,(touch==null?void 0:touch.clientY)??null,container,handlers,itemElement)};const handleTouchEnd=event=>{finishDrag(event.changedTouches[0]??null)};const handleTouchCancel=event=>{if(state.dragging){handlers.onDragEnd()}finishDrag(event.changedTouches[0]??null)};dragTarget.addEventListener("touchstart",handleTouchStart,{passive:true});dragTarget.addEventListener("touchmove",handleTouchMove,{passive:false});dragTarget.addEventListener("touchend",handleTouchEnd,{passive:true});dragTarget.addEventListener("touchcancel",handleTouchCancel,{passive:true});return()=>{dragTarget.removeEventListener("touchstart",handleTouchStart);dragTarget.removeEventListener("touchmove",handleTouchMove);dragTarget.removeEventListener("touchend",handleTouchEnd);dragTarget.removeEventListener("touchcancel",handleTouchCancel)}};const DRAG_INTERACTION_EXCLUDE_SELECTOR=".pb_form_pill_close";const isHandleEventTarget=target=>Boolean(target==null?void 0:target.closest(DRAG_HANDLE_SELECTOR));const isExcludedDragTarget=target=>Boolean(target==null?void 0:target.closest(DRAG_INTERACTION_EXCLUDE_SELECTOR));const bindMousePointerDrag=({dragId:dragId,container:container,itemElement:itemElement,handlers:handlers,allowWholeItem:allowWholeItem=false})=>{const hasHandle=Boolean(itemElement.querySelector(DRAG_HANDLE_SELECTOR));if(!hasHandle&&!allowWholeItem){return()=>void 0}const state={active:false,dragging:false,startX:0,startY:0,lastTargetDragId:null,lastContainer:void 0};const handleMouseMove=event=>{if(!state.active)return;if(runDragPointerMove(state,event.clientX,event.clientY,dragId,container,handlers)){event.preventDefault()}};const handleMouseUp=event=>{document.removeEventListener("mousemove",handleMouseMove);document.removeEventListener("mouseup",handleMouseUp);finishDragPointer(state,event.clientX,event.clientY,container,handlers,itemElement)};const handleMouseDown=event=>{if(event.button!==0)return;if(isExcludedDragTarget(event.target))return;if(hasHandle){if(!isHandleEventTarget(event.target))return}else if(!itemElement.contains(event.target)){return}event.preventDefault();event.stopPropagation();state.active=true;state.startX=event.clientX;state.startY=event.clientY;itemElement.classList.add("is_touch_active");document.addEventListener("mousemove",handleMouseMove);document.addEventListener("mouseup",handleMouseUp)};itemElement.addEventListener("mousedown",handleMouseDown);return()=>{itemElement.removeEventListener("mousedown",handleMouseDown);document.removeEventListener("mousemove",handleMouseMove);document.removeEventListener("mouseup",handleMouseUp)}};const DraggableItem=props=>{const{aria:aria={},children:children,className:className,container:container,data:data={},htmlOptions:htmlOptions={},id:id,dragId:dragId,tag:tag="div",onDrag:onDrag=noop,onDragEnd:onDragEnd=noop,onDragEnter:onDragEnter=noop,onDragLeave:onDragLeave=noop,onDragOver:onDragOver=noop,onDragStart:onDragStart=noop,onDrop:onDrop=noop,pointerDrag:pointerDrag=false,handlePointerDrag:handlePointerDrag=false}=props;const{isDragging:isDragging,handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver,dropZone:dropZone="ghost",dropZoneColor:dropZoneColor="neutral"}=DraggableContext();const itemRef=React__default.useRef(null);const[useTouchDrag,setUseTouchDrag]=React__default.useState(false);const[usePointerMouseDrag,setUsePointerMouseDrag]=React__default.useState(false);const handlersRef=React__default.useRef({handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragOver:onDragOver,onDrop:onDrop,onDragEnd:onDragEnd});handlersRef.current={handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragOver:onDragOver,onDrop:onDrop,onDragEnd:onDragEnd};const dragHandlers=React__default.useMemo((()=>({onDragStart:(id2,itemContainer)=>{handlersRef.current.handleDragStart(id2,itemContainer);handlersRef.current.onDragStart()},onDragEnter:(targetDragId,targetContainer)=>{handlersRef.current.handleDragEnter(targetDragId,targetContainer);handlersRef.current.onDragEnter()},onDragOver:(event,targetContainer)=>{handlersRef.current.handleDragOver(event,targetContainer);handlersRef.current.onDragOver()},onDrop:dropContainer=>{handlersRef.current.handleDrop(dropContainer);handlersRef.current.onDrop()},onDragEnd:()=>{handlersRef.current.handleDragEnd();handlersRef.current.onDragEnd()}})),[]);React__default.useLayoutEffect((()=>{const touchMode=isTouchDragDevice();setUseTouchDrag(touchMode);setUsePointerMouseDrag(!touchMode&&(pointerDrag||handlePointerDrag))}),[dragId,container,children,pointerDrag,handlePointerDrag]);React__default.useEffect((()=>{if(!useTouchDrag||!itemRef.current||!dragId)return;return bindTouchDrag({dragId:dragId,container:container,itemElement:itemRef.current,handlers:dragHandlers})}),[useTouchDrag,dragId,container,dragHandlers]);React__default.useEffect((()=>{if(!usePointerMouseDrag||!itemRef.current||!dragId)return;return bindMousePointerDrag({dragId:dragId,container:container,itemElement:itemRef.current,handlers:dragHandlers,allowWholeItem:pointerDrag})}),[usePointerMouseDrag,dragId,container,dragHandlers,pointerDrag]);const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const Tag=`${tag}`;const classes=classnames(buildCss("pb_draggable_item"),`${isDragging===dragId?"is_dragging":""}`,isDragging===dragId?`drop_zone_${dropZone}`:"",isDragging===dragId&&dropZone!=="ghost"?`drop_zone_color_${dropZoneColor}`:"",globalProps(props),className);const handleDragStartWithCustom=e=>{if(dropZone!=="ghost"&&itemRef.current){const clone=itemRef.current.cloneNode(true);clone.className=clone.className.replace(/drop_zone_[^ ]*/g,"");clone.className=clone.className.replace(/is_dragging/g,"");const rect=itemRef.current.getBoundingClientRect();clone.style.position="fixed";clone.style.top="-9999px";clone.style.left="-9999px";clone.style.width=`${rect.width}px`;clone.style.height=`${rect.height}px`;clone.style.opacity="1";clone.style.pointerEvents="none";document.body.appendChild(clone);e.dataTransfer.setDragImage(clone,e.clientX-rect.left,e.clientY-rect.top);setTimeout((()=>{document.body.removeChild(clone)}),0)}handleDragStart(dragId,container);onDragStart()};return createElement(Tag,{...ariaProps,...dataProps,...htmlProps,className:classes,"data-pb-drag-id":dragId,draggable:!useTouchDrag&&!usePointerMouseDrag,id:id,key:dragId,onDrag:onDrag,onDragEnd:()=>{handleDragEnd();onDragEnd()},onDragEnter:()=>{handleDragEnter(dragId,container);onDragEnter()},onDragLeave:onDragLeave,onDragOver:onDragOver,onDragStart:handleDragStartWithCustom,onDrop:onDrop,ref:itemRef},children)};const Draggable=props=>{const{aria:aria={},className:className,children:children,data:data={},htmlOptions:htmlOptions={},id:id}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_draggable"),globalProps(props),className);return jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})};Draggable.Container=DraggableContainer;Draggable.Item=DraggableItem;const Header=props=>{const{children:children,className:className,headerColor:headerColor="category_1",headerColorStriped:headerColorStriped=false}=props;const headerColorCSS=`pb_card_header_kit_${headerColor}`;const headerStripedCSS=headerColorStriped?`pb_card_header_kit_${headerColor}_striped`:"";const headerCSS=classnames("pb_card_header_kit",headerColorCSS,headerStripedCSS);const headerSpacing=globalProps(props);return jsx("div",{className:classnames(headerCSS,headerSpacing,className),children:children})};const Body$1=props=>{const{children:children,className:className}=props;const bodySpacing=globalProps(props);return jsx("div",{className:classnames("pb_card_body_kit",bodySpacing,className),children:children})};const Card=props=>{const{aria:aria={},background:background="none",borderNone:borderNone=false,borderRadius:borderRadius="md",children:children,className:className,data:data={},dragId:dragId,dragHandle:dragHandle=true,draggableItem:draggableItem=false,highlight:highlight={},htmlOptions:htmlOptions={},selected:selected=false,tag:tag="div"}=props;const borderCSS=borderNone==true?"pb_card_kit_border_none":"";const selectedCSS=selected==true?"pb_card_kit_selected":"";const backgroundCSS=background=="none"?"":`pb_card_kit_background_${background}`;const borderRadiusCSS=borderRadius!=="md"?`pb_card_kit_border_radius_${borderRadius}`:"";const highlightPositionCSS=highlight.position?`pb_card_kit_highlight_${highlight.position}`:"";const highlightColorCSS=highlight.color?`pb_card_kit_highlight_${highlight.color}`:"";const cardCss=classnames("pb_card_kit",selectedCSS,borderCSS,borderRadiusCSS,backgroundCSS,highlightPositionCSS,highlightColorCSS);const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const cardChildren=React__default.Children.toArray(children);const dynamicInlineProps=globalInlineProps(props);const{style:htmlStyle={},...restHtmlProps}=htmlProps;const mergedStyles={...htmlStyle,...dynamicInlineProps};const subComponentTags=tagName=>cardChildren.filter((c=>get(c,"type.displayName")===tagName)).map(((child,i)=>{if(React__default.isValidElement(child)){return React__default.cloneElement(child,{key:`${tagName.toLowerCase()}-${i}`})}}));const nonHeaderChildren=cardChildren.filter((child=>get(child,"type.displayName")!=="Header"));const tagOptions=["div","section","footer","header","article","aside","main","nav"];const Tag=tagOptions.includes(tag)?tag:"div";return jsx(Fragment,{children:draggableItem?jsx(Draggable.Item,{dragId:dragId,children:jsxs(Tag,{...ariaProps,...dataProps,className:classnames(cardCss,globalProps(props),className),...restHtmlProps,style:mergedStyles,children:[subComponentTags("Header"),dragHandle?jsxs(Flex,{children:[jsx("span",{className:"card_draggable_handle pb_draggable_handle",children:jsx(Icon,{icon:"grip-dots-vertical",paddingRight:"xs",verticalAlign:"middle"})}),jsx("div",{style:{width:"100%"},children:nonHeaderChildren})]}):nonHeaderChildren]})},dragId):jsxs(Tag,{...ariaProps,...dataProps,className:classnames(cardCss,globalProps(props),className),...restHtmlProps,style:mergedStyles,children:[subComponentTags("Header"),nonHeaderChildren]})})};Card.Header=Header;Card.Body=Body$1;const escapeRegExp=value=>value.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&");const findHighlightChunks=(textToHighlight,searchWords)=>{const text=textToHighlight||"";const matchRanges=searchWords.filter((searchWord=>searchWord)).reduce(((chunks,searchWord)=>{const regex=new RegExp(escapeRegExp(searchWord),"gi");let match;while(match=regex.exec(text)){const start=match.index;const end=regex.lastIndex;if(end>start){chunks.push({start:start,end:end})}if(match.index===regex.lastIndex){regex.lastIndex++}}return chunks}),[]);const combined=matchRanges.sort(((first,second)=>first.start-second.start)).reduce(((processedChunks,nextChunk)=>{if(processedChunks.length===0){return[nextChunk]}const prevChunk=processedChunks.pop();if(nextChunk.start<=prevChunk.end){processedChunks.push({start:prevChunk.start,end:Math.max(prevChunk.end,nextChunk.end)})}else{processedChunks.push(prevChunk,nextChunk)}return processedChunks}),[]);const allChunks=[];const append=(start,end,highlight)=>{if(end-start>0){allChunks.push({start:start,end:end,highlight:highlight})}};if(combined.length===0){append(0,text.length,false)}else{let lastIndex=0;combined.forEach((chunk=>{append(lastIndex,chunk.start,false);append(chunk.start,chunk.end,true);lastIndex=chunk.end}));append(lastIndex,text.length,false)}return allChunks};const Highlight=props=>{const{children:children,className:className="pb_highlight_kit",data:data={},highlightedText:highlightedText=["highlight"],htmlOptions:htmlOptions={},id:id="",text:text=""}=props;const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const highlightContent=text||children||"";const highlightClassName=classnames(globalProps(props),className);const chunks=findHighlightChunks(highlightContent,highlightedText);return jsx("span",{...dataProps,...htmlProps,id:id,children:chunks.map(((chunk,index2)=>{const chunkText=highlightContent.substring(chunk.start,chunk.end);if(chunk.highlight){return jsx("mark",{className:highlightClassName,children:chunkText},index2)}return jsx("span",{children:chunkText},index2)}))})};const Body=props=>{if(props.variant);const{aria:aria={},children:children,className:className,color:color="",data:data={},highlightedText:highlightedText=[],highlighting:highlighting=false,htmlOptions:htmlOptions={},id:id="",status:status=null,tag:tag="div",text:text="",variant:variant=null}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_body_kit",color,variant,status),globalProps(props),className);const Tag=`${tag}`;return jsxs(Tag,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:[highlighting&&jsx(Highlight,{highlightedText:highlightedText,text:text,children:children}),!highlighting&&(text||children)]})};const Caption=props=>{if(props.variant);const{aria:aria={},children:children,className:className,color:color,data:data={},htmlOptions:htmlOptions={},id:id,size:size="md",tag:tag="div",text:text,variant:variant=null}=props;const tagOptions=["h1","h2","h3","h4","h5","h6","p","span","div","caption"];const Tag=tagOptions.includes(tag)?tag:"div";const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const css=classnames(buildCss("pb_caption_kit",size,variant,color),globalProps(props),className);return jsx(Tag,{...ariaProps,...dataProps,...htmlProps,className:css,id:id,children:text||children})};const buttonClassName=props=>{const{disabled:disabled=false,fullWidth:fullWidth=false,highlight:highlight,icon:icon,loading:loading=false,type:type="inline",variant:variant="primary",size:size=null,text:text,children:children}=props;const classNames=["pb_button_kit"];const isIconOnly=icon&&!text&&!children&&variant!=="reaction";if(variant)classNames.push(`pb_button_${variant}`);if(type)classNames.push(`pb_button_${type}`);if(fullWidth)classNames.push("pb_button_block");classNames.push(disabled?"pb_button_disabled":"pb_button_enabled");if(loading)classNames.push("pb_button_loading");if(size)classNames.push(`pb_button_size_${size}`);if(variant==="reaction"&&icon&&!isValidEmoji(icon))classNames.push("pb_button_reaction_default");if(variant==="reaction"&&highlight)classNames.push("pb_button_active");if(isIconOnly)classNames.push("pb_button_icon_only");return classNames.join(" ")};const spinnerIcon=getAllIcons()["spinner"];const Button=props=>{const{aria:aria={},children:children,className:className,count:count2,data:data={},disabled:disabled,htmlOptions:htmlOptions={},icon:icon=null,iconRight:iconRight=false,id:id,loading:loading=false,onClick:onClick,tabIndex:tabIndex,link:link=null,newWindow:newWindow=false,target:target="",text:text,htmlType:htmlType="button",value:value,variant:variant,form:form=null}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const css=classnames(buttonClassName(props),globalProps(props),className);const loadingIcon=jsx("div",{className:"loading-icon",children:jsx(Icon,{className:"svg-inline--fa",customIcon:spinnerIcon.icon,fixedWidth:true,pulse:true})});const content=jsxs("span",{className:"pb_button_content",children:[icon&&!iconRight&&jsx(Icon,{className:"button_with_icon",icon:icon}),jsx("span",{children:text||children}),icon&&iconRight&&jsx(Icon,{className:"button_with_icon_right",icon:icon})]});const ifLoading=()=>{if(loading){return jsx(Fragment,{children:loadingIcon})}else{return content}};const getTargetAttribute=()=>{if(target&&link){return target}else if(newWindow){return"_blank"}return null};const displayButton=()=>{if(link){return jsx("a",{...ariaProps,...dataProps,...htmlProps,className:css,href:link,id:id,rel:target!=="child"?"noreferrer":null,role:"link",tabIndex:tabIndex,target:getTargetAttribute(),children:ifLoading()})}else if(variant==="reaction"){return jsxs("button",{...ariaProps,...dataProps,...htmlProps,className:css,disabled:disabled,form:form,id:id,onClick:onClick,role:"button",tabIndex:tabIndex,type:htmlType,value:value,children:[icon&&isValidEmoji(icon)&&jsxs(Flex,{align:"center",children:[jsx(Icon,{icon:icon}),count2&&jsx(Caption,{paddingLeft:"xxs",size:"xs",children:count2})]}),!isValidEmoji(icon)&&jsx(Icon,{icon:icon?icon:"face-smile-plus"})]})}else{return jsx("button",{...ariaProps,...dataProps,...htmlProps,className:css,disabled:disabled,form:form,id:id,onClick:onClick,role:"button",tabIndex:tabIndex,type:htmlType,value:value,children:ifLoading()})}};return jsx(Fragment,{children:displayButton()})};const Checkbox=forwardRef(((props,ref)=>{const{aria:aria={},checked:checked=false,children:children,className:className,dark:dark=false,data:data={},disabled:disabled=false,error:error=false,htmlOptions:htmlOptions={},id:id,indeterminate:indeterminate=false,name:name="",onChange:onChange=()=>{},requiredIndicator:requiredIndicator=false,tabIndex:tabIndex,text:text="",value:value=""}=props;const internalRef=useRef(null);const setRefs=el=>{internalRef.current=el;if(typeof ref==="function"){ref(el)}else if(ref){ref.current=el}};const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_checkbox_kit",checked?"checked":null,error?"error":null,indeterminate?"indeterminate":null),globalProps(props),className);useEffect((()=>{if(internalRef.current){internalRef.current.checked=checked;internalRef.current.indeterminate=indeterminate}}),[indeterminate,checked]);const checkboxChildren=()=>{if(children)return children;else return jsx("input",{defaultChecked:checked,disabled:disabled,name:name,onChange:onChange,ref:setRefs,tabIndex:tabIndex,type:"checkbox",value:value})};return jsxs("label",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:[jsx(Fragment,{children:checkboxChildren()}),!indeterminate&&jsx("span",{className:"pb_checkbox_checkmark",children:jsx(Icon,{className:"check_icon",fixedWidth:true,icon:"check"})}),indeterminate&&jsx("span",{className:"pb_checkbox_indeterminate",children:jsx(Icon,{className:"indeterminate_icon",fixedWidth:true,icon:"minus"})}),jsxs(Body,{className:"pb_checkbox_label",dark:dark,status:error?"negative":null,variant:null,children:[text,requiredIndicator&&jsx("span",{"aria-hidden":"true",className:"pb_required_indicator",style:{color:colors.error,marginLeft:spacing.space_xs},children:"*"})]})]})}));Checkbox.displayName="Checkbox";const CircleIconButton=props=>{const{aria:aria={},className:className,dark:dark,data:data={},disabled:disabled,htmlOptions:htmlOptions={},icon:icon,id:id,loading:loading=false,onClick:onClick=noop$1,type:type,target:target,link:link,newWindow:newWindow,variant:variant,size:size="default"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const sizeClass=size==="sm"?"size_small":"";const classes=classnames(buildCss("pb_circle_icon_button_kit"),sizeClass,globalProps(props),className);return jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:jsx(Button,{aria:aria,dark:dark,disabled:disabled,htmlType:type,link:link,loading:loading,newWindow:newWindow,onClick:onClick,target:target,text:null,variant:variant,children:jsx(Icon,{fixedWidth:true,htmlOptions:{"aria-hidden":true},icon:icon})})})};function hasWindow(){return typeof window!=="undefined"}function getNodeName(node){if(isNode(node)){return(node.nodeName||"").toLowerCase()}return"#document"}function getWindow(node){var _node$ownerDocument;return(node==null||(_node$ownerDocument=node.ownerDocument)==null?void 0:_node$ownerDocument.defaultView)||window}function getDocumentElement(node){var _ref;return(_ref=(isNode(node)?node.ownerDocument:node.document)||window.document)==null?void 0:_ref.documentElement}function isNode(value){if(!hasWindow()){return false}return value instanceof Node||value instanceof getWindow(value).Node}function isElement(value){if(!hasWindow()){return false}return value instanceof Element||value instanceof getWindow(value).Element}function isHTMLElement(value){if(!hasWindow()){return false}return value instanceof HTMLElement||value instanceof getWindow(value).HTMLElement}function isShadowRoot(value){if(!hasWindow()||typeof ShadowRoot==="undefined"){return false}return value instanceof ShadowRoot||value instanceof getWindow(value).ShadowRoot}function isOverflowElement(element){const{overflow:overflow,overflowX:overflowX,overflowY:overflowY,display:display}=getComputedStyle$1(element);return/auto|scroll|overlay|hidden|clip/.test(overflow+overflowY+overflowX)&&!["inline","contents"].includes(display)}function isTableElement(element){return["table","td","th"].includes(getNodeName(element))}function isTopLayer(element){return[":popover-open",":modal"].some((selector=>{try{return element.matches(selector)}catch(e){return false}}))}function isContainingBlock(elementOrCss){const webkit=isWebKit();const css=isElement(elementOrCss)?getComputedStyle$1(elementOrCss):elementOrCss;return css.transform!=="none"||css.perspective!=="none"||(css.containerType?css.containerType!=="normal":false)||!webkit&&(css.backdropFilter?css.backdropFilter!=="none":false)||!webkit&&(css.filter?css.filter!=="none":false)||["transform","perspective","filter"].some((value=>(css.willChange||"").includes(value)))||["paint","layout","strict","content"].some((value=>(css.contain||"").includes(value)))}function getContainingBlock(element){let currentNode=getParentNode(element);while(isHTMLElement(currentNode)&&!isLastTraversableNode(currentNode)){if(isContainingBlock(currentNode)){return currentNode}else if(isTopLayer(currentNode)){return null}currentNode=getParentNode(currentNode)}return null}function isWebKit(){if(typeof CSS==="undefined"||!CSS.supports)return false;return CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(node){return["html","body","#document"].includes(getNodeName(node))}function getComputedStyle$1(element){return getWindow(element).getComputedStyle(element)}function getNodeScroll(element){if(isElement(element)){return{scrollLeft:element.scrollLeft,scrollTop:element.scrollTop}}return{scrollLeft:element.scrollX,scrollTop:element.scrollY}}function getParentNode(node){if(getNodeName(node)==="html"){return node}const result=node.assignedSlot||node.parentNode||isShadowRoot(node)&&node.host||getDocumentElement(node);return isShadowRoot(result)?result.host:result}function getNearestOverflowAncestor(node){const parentNode=getParentNode(node);if(isLastTraversableNode(parentNode)){return node.ownerDocument?node.ownerDocument.body:node.body}if(isHTMLElement(parentNode)&&isOverflowElement(parentNode)){return parentNode}return getNearestOverflowAncestor(parentNode)}function getOverflowAncestors(node,list,traverseIframes){var _node$ownerDocument2;if(list===void 0){list=[]}if(traverseIframes===void 0){traverseIframes=true}const scrollableAncestor=getNearestOverflowAncestor(node);const isBody=scrollableAncestor===((_node$ownerDocument2=node.ownerDocument)==null?void 0:_node$ownerDocument2.body);const win=getWindow(scrollableAncestor);if(isBody){const frameElement=getFrameElement(win);return list.concat(win,win.visualViewport||[],isOverflowElement(scrollableAncestor)?scrollableAncestor:[],frameElement&&traverseIframes?getOverflowAncestors(frameElement):[])}return list.concat(scrollableAncestor,getOverflowAncestors(scrollableAncestor,[],traverseIframes))}function getFrameElement(win){return win.parent&&Object.getPrototypeOf(win.parent)?win.frameElement:null}function activeElement(doc){let activeElement2=doc.activeElement;while(((_activeElement=activeElement2)==null||(_activeElement=_activeElement.shadowRoot)==null?void 0:_activeElement.activeElement)!=null){var _activeElement;activeElement2=activeElement2.shadowRoot.activeElement}return activeElement2}function contains(parent,child){if(!parent||!child){return false}const rootNode=child.getRootNode==null?void 0:child.getRootNode();if(parent.contains(child)){return true}if(rootNode&&isShadowRoot(rootNode)){let next=child;while(next){if(parent===next){return true}next=next.parentNode||next.host}}return false}function isSafari(){return/apple/i.test(navigator.vendor)}function isMouseLikePointerType(pointerType,strict){const values=["mouse","pen"];if(!strict){values.push("",void 0)}return values.includes(pointerType)}function getDocument(node){return(node==null?void 0:node.ownerDocument)||document}function getTarget(event){if("composedPath"in event){return event.composedPath()[0]}return event.target}const TYPEABLE_SELECTOR="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function isTypeableElement(element){return isHTMLElement(element)&&element.matches(TYPEABLE_SELECTOR)}
|
|
2
|
+
/*!
|
|
3
|
+
* tabbable 6.2.0
|
|
4
|
+
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
|
5
|
+
*/var candidateSelectors=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"];var candidateSelector=candidateSelectors.join(",");var NoElement=typeof Element==="undefined";var matches=NoElement?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector;var getRootNode=!NoElement&&Element.prototype.getRootNode?function(element){var _element$getRootNode;return element===null||element===void 0?void 0:(_element$getRootNode=element.getRootNode)===null||_element$getRootNode===void 0?void 0:_element$getRootNode.call(element)}:function(element){return element===null||element===void 0?void 0:element.ownerDocument};var isInert=function isInert2(node,lookUp){var _node$getAttribute;if(lookUp===void 0){lookUp=true}var inertAtt=node===null||node===void 0?void 0:(_node$getAttribute=node.getAttribute)===null||_node$getAttribute===void 0?void 0:_node$getAttribute.call(node,"inert");var inert=inertAtt===""||inertAtt==="true";var result=inert||lookUp&&node&&isInert2(node.parentNode);return result};var isContentEditable=function isContentEditable2(node){var _node$getAttribute2;var attValue=node===null||node===void 0?void 0:(_node$getAttribute2=node.getAttribute)===null||_node$getAttribute2===void 0?void 0:_node$getAttribute2.call(node,"contenteditable");return attValue===""||attValue==="true"};var getCandidates=function getCandidates2(el,includeContainer,filter){if(isInert(el)){return[]}var candidates=Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));if(includeContainer&&matches.call(el,candidateSelector)){candidates.unshift(el)}candidates=candidates.filter(filter);return candidates};var getCandidatesIteratively=function getCandidatesIteratively2(elements,includeContainer,options){var candidates=[];var elementsToCheck=Array.from(elements);while(elementsToCheck.length){var element=elementsToCheck.shift();if(isInert(element,false)){continue}if(element.tagName==="SLOT"){var assigned=element.assignedElements();var content=assigned.length?assigned:element.children;var nestedCandidates=getCandidatesIteratively2(content,true,options);if(options.flatten){candidates.push.apply(candidates,nestedCandidates)}else{candidates.push({scopeParent:element,candidates:nestedCandidates})}}else{var validCandidate=matches.call(element,candidateSelector);if(validCandidate&&options.filter(element)&&(includeContainer||!elements.includes(element))){candidates.push(element)}var shadowRoot=element.shadowRoot||typeof options.getShadowRoot==="function"&&options.getShadowRoot(element);var validShadowRoot=!isInert(shadowRoot,false)&&(!options.shadowRootFilter||options.shadowRootFilter(element));if(shadowRoot&&validShadowRoot){var _nestedCandidates=getCandidatesIteratively2(shadowRoot===true?element.children:shadowRoot.children,true,options);if(options.flatten){candidates.push.apply(candidates,_nestedCandidates)}else{candidates.push({scopeParent:element,candidates:_nestedCandidates})}}else{elementsToCheck.unshift.apply(elementsToCheck,element.children)}}}return candidates};var hasTabIndex=function hasTabIndex2(node){return!isNaN(parseInt(node.getAttribute("tabindex"),10))};var getTabIndex=function getTabIndex2(node){if(!node){throw new Error("No node provided")}if(node.tabIndex<0){if((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName)||isContentEditable(node))&&!hasTabIndex(node)){return 0}}return node.tabIndex};var getSortOrderTabIndex=function getSortOrderTabIndex2(node,isScope){var tabIndex=getTabIndex(node);if(tabIndex<0&&isScope&&!hasTabIndex(node)){return 0}return tabIndex};var sortOrderedTabbables=function sortOrderedTabbables2(a,b){return a.tabIndex===b.tabIndex?a.documentOrder-b.documentOrder:a.tabIndex-b.tabIndex};var isInput=function isInput2(node){return node.tagName==="INPUT"};var isHiddenInput=function isHiddenInput2(node){return isInput(node)&&node.type==="hidden"};var isDetailsWithSummary=function isDetailsWithSummary2(node){var r=node.tagName==="DETAILS"&&Array.prototype.slice.apply(node.children).some((function(child){return child.tagName==="SUMMARY"}));return r};var getCheckedRadio=function getCheckedRadio2(nodes,form){for(var i=0;i<nodes.length;i++){if(nodes[i].checked&&nodes[i].form===form){return nodes[i]}}};var isTabbableRadio=function isTabbableRadio2(node){if(!node.name){return true}var radioScope=node.form||getRootNode(node);var queryRadios=function queryRadios2(name){return radioScope.querySelectorAll('input[type="radio"][name="'+name+'"]')};var radioSet;if(typeof window!=="undefined"&&typeof window.CSS!=="undefined"&&typeof window.CSS.escape==="function"){radioSet=queryRadios(window.CSS.escape(node.name))}else{try{radioSet=queryRadios(node.name)}catch(err){console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",err.message);return false}}var checked=getCheckedRadio(radioSet,node.form);return!checked||checked===node};var isRadio=function isRadio2(node){return isInput(node)&&node.type==="radio"};var isNonTabbableRadio=function isNonTabbableRadio2(node){return isRadio(node)&&!isTabbableRadio(node)};var isNodeAttached=function isNodeAttached2(node){var _nodeRoot;var nodeRoot=node&&getRootNode(node);var nodeRootHost=(_nodeRoot=nodeRoot)===null||_nodeRoot===void 0?void 0:_nodeRoot.host;var attached=false;if(nodeRoot&&nodeRoot!==node){var _nodeRootHost,_nodeRootHost$ownerDo,_node$ownerDocument;attached=!!((_nodeRootHost=nodeRootHost)!==null&&_nodeRootHost!==void 0&&(_nodeRootHost$ownerDo=_nodeRootHost.ownerDocument)!==null&&_nodeRootHost$ownerDo!==void 0&&_nodeRootHost$ownerDo.contains(nodeRootHost)||node!==null&&node!==void 0&&(_node$ownerDocument=node.ownerDocument)!==null&&_node$ownerDocument!==void 0&&_node$ownerDocument.contains(node));while(!attached&&nodeRootHost){var _nodeRoot2,_nodeRootHost2,_nodeRootHost2$ownerD;nodeRoot=getRootNode(nodeRootHost);nodeRootHost=(_nodeRoot2=nodeRoot)===null||_nodeRoot2===void 0?void 0:_nodeRoot2.host;attached=!!((_nodeRootHost2=nodeRootHost)!==null&&_nodeRootHost2!==void 0&&(_nodeRootHost2$ownerD=_nodeRootHost2.ownerDocument)!==null&&_nodeRootHost2$ownerD!==void 0&&_nodeRootHost2$ownerD.contains(nodeRootHost))}}return attached};var isZeroArea=function isZeroArea2(node){var _node$getBoundingClie=node.getBoundingClientRect(),width=_node$getBoundingClie.width,height=_node$getBoundingClie.height;return width===0&&height===0};var isHidden=function isHidden2(node,_ref){var displayCheck=_ref.displayCheck,getShadowRoot=_ref.getShadowRoot;if(getComputedStyle(node).visibility==="hidden"){return true}var isDirectSummary=matches.call(node,"details>summary:first-of-type");var nodeUnderDetails=isDirectSummary?node.parentElement:node;if(matches.call(nodeUnderDetails,"details:not([open]) *")){return true}if(!displayCheck||displayCheck==="full"||displayCheck==="legacy-full"){if(typeof getShadowRoot==="function"){var originalNode=node;while(node){var parentElement=node.parentElement;var rootNode=getRootNode(node);if(parentElement&&!parentElement.shadowRoot&&getShadowRoot(parentElement)===true){return isZeroArea(node)}else if(node.assignedSlot){node=node.assignedSlot}else if(!parentElement&&rootNode!==node.ownerDocument){node=rootNode.host}else{node=parentElement}}node=originalNode}if(isNodeAttached(node)){return!node.getClientRects().length}if(displayCheck!=="legacy-full"){return true}}else if(displayCheck==="non-zero-area"){return isZeroArea(node)}return false};var isDisabledFromFieldset=function isDisabledFromFieldset2(node){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)){var parentNode=node.parentElement;while(parentNode){if(parentNode.tagName==="FIELDSET"&&parentNode.disabled){for(var i=0;i<parentNode.children.length;i++){var child=parentNode.children.item(i);if(child.tagName==="LEGEND"){return matches.call(parentNode,"fieldset[disabled] *")?true:!child.contains(node)}}return true}parentNode=parentNode.parentElement}}return false};var isNodeMatchingSelectorFocusable=function isNodeMatchingSelectorFocusable2(options,node){if(node.disabled||isInert(node)||isHiddenInput(node)||isHidden(node,options)||isDetailsWithSummary(node)||isDisabledFromFieldset(node)){return false}return true};var isNodeMatchingSelectorTabbable=function isNodeMatchingSelectorTabbable2(options,node){if(isNonTabbableRadio(node)||getTabIndex(node)<0||!isNodeMatchingSelectorFocusable(options,node)){return false}return true};var isValidShadowRootTabbable=function isValidShadowRootTabbable2(shadowHostNode){var tabIndex=parseInt(shadowHostNode.getAttribute("tabindex"),10);if(isNaN(tabIndex)||tabIndex>=0){return true}return false};var sortByOrder=function sortByOrder2(candidates){var regularTabbables=[];var orderedTabbables=[];candidates.forEach((function(item,i){var isScope=!!item.scopeParent;var element=isScope?item.scopeParent:item;var candidateTabindex=getSortOrderTabIndex(element,isScope);var elements=isScope?sortByOrder2(item.candidates):element;if(candidateTabindex===0){isScope?regularTabbables.push.apply(regularTabbables,elements):regularTabbables.push(element)}else{orderedTabbables.push({documentOrder:i,tabIndex:candidateTabindex,item:item,isScope:isScope,content:elements})}}));return orderedTabbables.sort(sortOrderedTabbables).reduce((function(acc,sortable){sortable.isScope?acc.push.apply(acc,sortable.content):acc.push(sortable.content);return acc}),[]).concat(regularTabbables)};var tabbable=function tabbable2(container,options){options=options||{};var candidates;if(options.getShadowRoot){candidates=getCandidatesIteratively([container],options.includeContainer,{filter:isNodeMatchingSelectorTabbable.bind(null,options),flatten:false,getShadowRoot:options.getShadowRoot,shadowRootFilter:isValidShadowRootTabbable})}else{candidates=getCandidates(container,options.includeContainer,isNodeMatchingSelectorTabbable.bind(null,options))}return sortByOrder(candidates)};function computeCoordsFromPlacement(_ref,placement,rtl){let{reference:reference,floating:floating}=_ref;const sideAxis=getSideAxis(placement);const alignmentAxis=getAlignmentAxis(placement);const alignLength=getAxisLength(alignmentAxis);const side=getSide(placement);const isVertical=sideAxis==="y";const commonX=reference.x+reference.width/2-floating.width/2;const commonY=reference.y+reference.height/2-floating.height/2;const commonAlign=reference[alignLength]/2-floating[alignLength]/2;let coords;switch(side){case"top":coords={x:commonX,y:reference.y-floating.height};break;case"bottom":coords={x:commonX,y:reference.y+reference.height};break;case"right":coords={x:reference.x+reference.width,y:commonY};break;case"left":coords={x:reference.x-floating.width,y:commonY};break;default:coords={x:reference.x,y:reference.y}}switch(getAlignment(placement)){case"start":coords[alignmentAxis]-=commonAlign*(rtl&&isVertical?-1:1);break;case"end":coords[alignmentAxis]+=commonAlign*(rtl&&isVertical?-1:1);break}return coords}const computePosition$1=async(reference,floating,config)=>{const{placement:placement="bottom",strategy:strategy="absolute",middleware:middleware=[],platform:platform2}=config;const validMiddleware=middleware.filter(Boolean);const rtl=await(platform2.isRTL==null?void 0:platform2.isRTL(floating));let rects=await platform2.getElementRects({reference:reference,floating:floating,strategy:strategy});let{x:x,y:y}=computeCoordsFromPlacement(rects,placement,rtl);let statefulPlacement=placement;let middlewareData={};let resetCount=0;for(let i=0;i<validMiddleware.length;i++){const{name:name,fn:fn}=validMiddleware[i];const{x:nextX,y:nextY,data:data,reset:reset}=await fn({x:x,y:y,initialPlacement:placement,placement:statefulPlacement,strategy:strategy,middlewareData:middlewareData,rects:rects,platform:platform2,elements:{reference:reference,floating:floating}});x=nextX!=null?nextX:x;y=nextY!=null?nextY:y;middlewareData={...middlewareData,[name]:{...middlewareData[name],...data}};if(reset&&resetCount<=50){resetCount++;if(typeof reset==="object"){if(reset.placement){statefulPlacement=reset.placement}if(reset.rects){rects=reset.rects===true?await platform2.getElementRects({reference:reference,floating:floating,strategy:strategy}):reset.rects}({x:x,y:y}=computeCoordsFromPlacement(rects,statefulPlacement,rtl))}i=-1}}return{x:x,y:y,placement:statefulPlacement,strategy:strategy,middlewareData:middlewareData}};async function detectOverflow(state,options){var _await$platform$isEle;if(options===void 0){options={}}const{x:x,y:y,platform:platform2,rects:rects,elements:elements,strategy:strategy}=state;const{boundary:boundary="clippingAncestors",rootBoundary:rootBoundary="viewport",elementContext:elementContext="floating",altBoundary:altBoundary=false,padding:padding=0}=evaluate(options,state);const paddingObject=getPaddingObject(padding);const altContext=elementContext==="floating"?"reference":"floating";const element=elements[altBoundary?altContext:elementContext];const clippingClientRect=rectToClientRect(await platform2.getClippingRect({element:((_await$platform$isEle=await(platform2.isElement==null?void 0:platform2.isElement(element)))!=null?_await$platform$isEle:true)?element:element.contextElement||await(platform2.getDocumentElement==null?void 0:platform2.getDocumentElement(elements.floating)),boundary:boundary,rootBoundary:rootBoundary,strategy:strategy}));const rect=elementContext==="floating"?{x:x,y:y,width:rects.floating.width,height:rects.floating.height}:rects.reference;const offsetParent=await(platform2.getOffsetParent==null?void 0:platform2.getOffsetParent(elements.floating));const offsetScale=await(platform2.isElement==null?void 0:platform2.isElement(offsetParent))?await(platform2.getScale==null?void 0:platform2.getScale(offsetParent))||{x:1,y:1}:{x:1,y:1};const elementClientRect=rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect?await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({elements:elements,rect:rect,offsetParent:offsetParent,strategy:strategy}):rect);return{top:(clippingClientRect.top-elementClientRect.top+paddingObject.top)/offsetScale.y,bottom:(elementClientRect.bottom-clippingClientRect.bottom+paddingObject.bottom)/offsetScale.y,left:(clippingClientRect.left-elementClientRect.left+paddingObject.left)/offsetScale.x,right:(elementClientRect.right-clippingClientRect.right+paddingObject.right)/offsetScale.x}}const arrow$3=options=>({name:"arrow",options:options,async fn(state){const{x:x,y:y,placement:placement,rects:rects,platform:platform2,elements:elements,middlewareData:middlewareData}=state;const{element:element,padding:padding=0}=evaluate(options,state)||{};if(element==null){return{}}const paddingObject=getPaddingObject(padding);const coords={x:x,y:y};const axis=getAlignmentAxis(placement);const length=getAxisLength(axis);const arrowDimensions=await platform2.getDimensions(element);const isYAxis=axis==="y";const minProp=isYAxis?"top":"left";const maxProp=isYAxis?"bottom":"right";const clientProp=isYAxis?"clientHeight":"clientWidth";const endDiff=rects.reference[length]+rects.reference[axis]-coords[axis]-rects.floating[length];const startDiff=coords[axis]-rects.reference[axis];const arrowOffsetParent=await(platform2.getOffsetParent==null?void 0:platform2.getOffsetParent(element));let clientSize=arrowOffsetParent?arrowOffsetParent[clientProp]:0;if(!clientSize||!(await(platform2.isElement==null?void 0:platform2.isElement(arrowOffsetParent)))){clientSize=elements.floating[clientProp]||rects.floating[length]}const centerToReference=endDiff/2-startDiff/2;const largestPossiblePadding=clientSize/2-arrowDimensions[length]/2-1;const minPadding=min(paddingObject[minProp],largestPossiblePadding);const maxPadding=min(paddingObject[maxProp],largestPossiblePadding);const min$1=minPadding;const max2=clientSize-arrowDimensions[length]-maxPadding;const center=clientSize/2-arrowDimensions[length]/2+centerToReference;const offset2=clamp(min$1,center,max2);const shouldAddOffset=!middlewareData.arrow&&getAlignment(placement)!=null&¢er!==offset2&&rects.reference[length]/2-(center<min$1?minPadding:maxPadding)-arrowDimensions[length]/2<0;const alignmentOffset=shouldAddOffset?center<min$1?center-min$1:center-max2:0;return{[axis]:coords[axis]+alignmentOffset,data:{[axis]:offset2,centerOffset:center-offset2-alignmentOffset,...shouldAddOffset&&{alignmentOffset:alignmentOffset}},reset:shouldAddOffset}}});const flip$2=function(options){if(options===void 0){options={}}return{name:"flip",options:options,async fn(state){var _middlewareData$arrow,_middlewareData$flip;const{placement:placement,middlewareData:middlewareData,rects:rects,initialPlacement:initialPlacement,platform:platform2,elements:elements}=state;const{mainAxis:checkMainAxis=true,crossAxis:checkCrossAxis=true,fallbackPlacements:specifiedFallbackPlacements,fallbackStrategy:fallbackStrategy="bestFit",fallbackAxisSideDirection:fallbackAxisSideDirection="none",flipAlignment:flipAlignment=true,...detectOverflowOptions}=evaluate(options,state);if((_middlewareData$arrow=middlewareData.arrow)!=null&&_middlewareData$arrow.alignmentOffset){return{}}const side=getSide(placement);const initialSideAxis=getSideAxis(initialPlacement);const isBasePlacement=getSide(initialPlacement)===initialPlacement;const rtl=await(platform2.isRTL==null?void 0:platform2.isRTL(elements.floating));const fallbackPlacements=specifiedFallbackPlacements||(isBasePlacement||!flipAlignment?[getOppositePlacement(initialPlacement)]:getExpandedPlacements(initialPlacement));const hasFallbackAxisSideDirection=fallbackAxisSideDirection!=="none";if(!specifiedFallbackPlacements&&hasFallbackAxisSideDirection){fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement,flipAlignment,fallbackAxisSideDirection,rtl))}const placements=[initialPlacement,...fallbackPlacements];const overflow=await detectOverflow(state,detectOverflowOptions);const overflows=[];let overflowsData=((_middlewareData$flip=middlewareData.flip)==null?void 0:_middlewareData$flip.overflows)||[];if(checkMainAxis){overflows.push(overflow[side])}if(checkCrossAxis){const sides=getAlignmentSides(placement,rects,rtl);overflows.push(overflow[sides[0]],overflow[sides[1]])}overflowsData=[...overflowsData,{placement:placement,overflows:overflows}];if(!overflows.every((side2=>side2<=0))){var _middlewareData$flip2,_overflowsData$filter;const nextIndex=(((_middlewareData$flip2=middlewareData.flip)==null?void 0:_middlewareData$flip2.index)||0)+1;const nextPlacement=placements[nextIndex];if(nextPlacement){return{data:{index:nextIndex,overflows:overflowsData},reset:{placement:nextPlacement}}}let resetPlacement=(_overflowsData$filter=overflowsData.filter((d=>d.overflows[0]<=0)).sort(((a,b)=>a.overflows[1]-b.overflows[1]))[0])==null?void 0:_overflowsData$filter.placement;if(!resetPlacement){switch(fallbackStrategy){case"bestFit":{var _overflowsData$filter2;const placement2=(_overflowsData$filter2=overflowsData.filter((d=>{if(hasFallbackAxisSideDirection){const currentSideAxis=getSideAxis(d.placement);return currentSideAxis===initialSideAxis||currentSideAxis==="y"}return true})).map((d=>[d.placement,d.overflows.filter((overflow2=>overflow2>0)).reduce(((acc,overflow2)=>acc+overflow2),0)])).sort(((a,b)=>a[1]-b[1]))[0])==null?void 0:_overflowsData$filter2[0];if(placement2){resetPlacement=placement2}break}case"initialPlacement":resetPlacement=initialPlacement;break}}if(placement!==resetPlacement){return{reset:{placement:resetPlacement}}}}return{}}}};async function convertValueToCoords(state,options){const{placement:placement,platform:platform2,elements:elements}=state;const rtl=await(platform2.isRTL==null?void 0:platform2.isRTL(elements.floating));const side=getSide(placement);const alignment=getAlignment(placement);const isVertical=getSideAxis(placement)==="y";const mainAxisMulti=["left","top"].includes(side)?-1:1;const crossAxisMulti=rtl&&isVertical?-1:1;const rawValue=evaluate(options,state);let{mainAxis:mainAxis,crossAxis:crossAxis,alignmentAxis:alignmentAxis}=typeof rawValue==="number"?{mainAxis:rawValue,crossAxis:0,alignmentAxis:null}:{mainAxis:rawValue.mainAxis||0,crossAxis:rawValue.crossAxis||0,alignmentAxis:rawValue.alignmentAxis};if(alignment&&typeof alignmentAxis==="number"){crossAxis=alignment==="end"?alignmentAxis*-1:alignmentAxis}return isVertical?{x:crossAxis*crossAxisMulti,y:mainAxis*mainAxisMulti}:{x:mainAxis*mainAxisMulti,y:crossAxis*crossAxisMulti}}const offset$2=function(options){if(options===void 0){options=0}return{name:"offset",options:options,async fn(state){var _middlewareData$offse,_middlewareData$arrow;const{x:x,y:y,placement:placement,middlewareData:middlewareData}=state;const diffCoords=await convertValueToCoords(state,options);if(placement===((_middlewareData$offse=middlewareData.offset)==null?void 0:_middlewareData$offse.placement)&&(_middlewareData$arrow=middlewareData.arrow)!=null&&_middlewareData$arrow.alignmentOffset){return{}}return{x:x+diffCoords.x,y:y+diffCoords.y,data:{...diffCoords,placement:placement}}}}};const shift$2=function(options){if(options===void 0){options={}}return{name:"shift",options:options,async fn(state){const{x:x,y:y,placement:placement}=state;const{mainAxis:checkMainAxis=true,crossAxis:checkCrossAxis=false,limiter:limiter={fn:_ref=>{let{x:x2,y:y2}=_ref;return{x:x2,y:y2}}},...detectOverflowOptions}=evaluate(options,state);const coords={x:x,y:y};const overflow=await detectOverflow(state,detectOverflowOptions);const crossAxis=getSideAxis(getSide(placement));const mainAxis=getOppositeAxis(crossAxis);let mainAxisCoord=coords[mainAxis];let crossAxisCoord=coords[crossAxis];if(checkMainAxis){const minSide=mainAxis==="y"?"top":"left";const maxSide=mainAxis==="y"?"bottom":"right";const min2=mainAxisCoord+overflow[minSide];const max2=mainAxisCoord-overflow[maxSide];mainAxisCoord=clamp(min2,mainAxisCoord,max2)}if(checkCrossAxis){const minSide=crossAxis==="y"?"top":"left";const maxSide=crossAxis==="y"?"bottom":"right";const min2=crossAxisCoord+overflow[minSide];const max2=crossAxisCoord-overflow[maxSide];crossAxisCoord=clamp(min2,crossAxisCoord,max2)}const limitedCoords=limiter.fn({...state,[mainAxis]:mainAxisCoord,[crossAxis]:crossAxisCoord});return{...limitedCoords,data:{x:limitedCoords.x-x,y:limitedCoords.y-y,enabled:{[mainAxis]:checkMainAxis,[crossAxis]:checkCrossAxis}}}}}};function getCssDimensions(element){const css=getComputedStyle$1(element);let width=parseFloat(css.width)||0;let height=parseFloat(css.height)||0;const hasOffset=isHTMLElement(element);const offsetWidth=hasOffset?element.offsetWidth:width;const offsetHeight=hasOffset?element.offsetHeight:height;const shouldFallback=round(width)!==offsetWidth||round(height)!==offsetHeight;if(shouldFallback){width=offsetWidth;height=offsetHeight}return{width:width,height:height,$:shouldFallback}}function unwrapElement(element){return!isElement(element)?element.contextElement:element}function getScale(element){const domElement=unwrapElement(element);if(!isHTMLElement(domElement)){return createCoords(1)}const rect=domElement.getBoundingClientRect();const{width:width,height:height,$:$}=getCssDimensions(domElement);let x=($?round(rect.width):rect.width)/width;let y=($?round(rect.height):rect.height)/height;if(!x||!Number.isFinite(x)){x=1}if(!y||!Number.isFinite(y)){y=1}return{x:x,y:y}}const noOffsets=createCoords(0);function getVisualOffsets(element){const win=getWindow(element);if(!isWebKit()||!win.visualViewport){return noOffsets}return{x:win.visualViewport.offsetLeft,y:win.visualViewport.offsetTop}}function shouldAddVisualOffsets(element,isFixed,floatingOffsetParent){if(isFixed===void 0){isFixed=false}if(!floatingOffsetParent||isFixed&&floatingOffsetParent!==getWindow(element)){return false}return isFixed}function getBoundingClientRect(element,includeScale,isFixedStrategy,offsetParent){if(includeScale===void 0){includeScale=false}if(isFixedStrategy===void 0){isFixedStrategy=false}const clientRect=element.getBoundingClientRect();const domElement=unwrapElement(element);let scale=createCoords(1);if(includeScale){if(offsetParent){if(isElement(offsetParent)){scale=getScale(offsetParent)}}else{scale=getScale(element)}}const visualOffsets=shouldAddVisualOffsets(domElement,isFixedStrategy,offsetParent)?getVisualOffsets(domElement):createCoords(0);let x=(clientRect.left+visualOffsets.x)/scale.x;let y=(clientRect.top+visualOffsets.y)/scale.y;let width=clientRect.width/scale.x;let height=clientRect.height/scale.y;if(domElement){const win=getWindow(domElement);const offsetWin=offsetParent&&isElement(offsetParent)?getWindow(offsetParent):offsetParent;let currentWin=win;let currentIFrame=getFrameElement(currentWin);while(currentIFrame&&offsetParent&&offsetWin!==currentWin){const iframeScale=getScale(currentIFrame);const iframeRect=currentIFrame.getBoundingClientRect();const css=getComputedStyle$1(currentIFrame);const left=iframeRect.left+(currentIFrame.clientLeft+parseFloat(css.paddingLeft))*iframeScale.x;const top=iframeRect.top+(currentIFrame.clientTop+parseFloat(css.paddingTop))*iframeScale.y;x*=iframeScale.x;y*=iframeScale.y;width*=iframeScale.x;height*=iframeScale.y;x+=left;y+=top;currentWin=getWindow(currentIFrame);currentIFrame=getFrameElement(currentWin)}}return rectToClientRect({width:width,height:height,x:x,y:y})}function getWindowScrollBarX(element,rect){const leftScroll=getNodeScroll(element).scrollLeft;if(!rect){return getBoundingClientRect(getDocumentElement(element)).left+leftScroll}return rect.left+leftScroll}function getHTMLOffset(documentElement,scroll,ignoreScrollbarX){if(ignoreScrollbarX===void 0){ignoreScrollbarX=false}const htmlRect=documentElement.getBoundingClientRect();const x=htmlRect.left+scroll.scrollLeft-(ignoreScrollbarX?0:getWindowScrollBarX(documentElement,htmlRect));const y=htmlRect.top+scroll.scrollTop;return{x:x,y:y}}function convertOffsetParentRelativeRectToViewportRelativeRect(_ref){let{elements:elements,rect:rect,offsetParent:offsetParent,strategy:strategy}=_ref;const isFixed=strategy==="fixed";const documentElement=getDocumentElement(offsetParent);const topLayer=elements?isTopLayer(elements.floating):false;if(offsetParent===documentElement||topLayer&&isFixed){return rect}let scroll={scrollLeft:0,scrollTop:0};let scale=createCoords(1);const offsets=createCoords(0);const isOffsetParentAnElement=isHTMLElement(offsetParent);if(isOffsetParentAnElement||!isOffsetParentAnElement&&!isFixed){if(getNodeName(offsetParent)!=="body"||isOverflowElement(documentElement)){scroll=getNodeScroll(offsetParent)}if(isHTMLElement(offsetParent)){const offsetRect=getBoundingClientRect(offsetParent);scale=getScale(offsetParent);offsets.x=offsetRect.x+offsetParent.clientLeft;offsets.y=offsetRect.y+offsetParent.clientTop}}const htmlOffset=documentElement&&!isOffsetParentAnElement&&!isFixed?getHTMLOffset(documentElement,scroll,true):createCoords(0);return{width:rect.width*scale.x,height:rect.height*scale.y,x:rect.x*scale.x-scroll.scrollLeft*scale.x+offsets.x+htmlOffset.x,y:rect.y*scale.y-scroll.scrollTop*scale.y+offsets.y+htmlOffset.y}}function getClientRects(element){return Array.from(element.getClientRects())}function getDocumentRect(element){const html=getDocumentElement(element);const scroll=getNodeScroll(element);const body=element.ownerDocument.body;const width=max(html.scrollWidth,html.clientWidth,body.scrollWidth,body.clientWidth);const height=max(html.scrollHeight,html.clientHeight,body.scrollHeight,body.clientHeight);let x=-scroll.scrollLeft+getWindowScrollBarX(element);const y=-scroll.scrollTop;if(getComputedStyle$1(body).direction==="rtl"){x+=max(html.clientWidth,body.clientWidth)-width}return{width:width,height:height,x:x,y:y}}function getViewportRect(element,strategy){const win=getWindow(element);const html=getDocumentElement(element);const visualViewport=win.visualViewport;let width=html.clientWidth;let height=html.clientHeight;let x=0;let y=0;if(visualViewport){width=visualViewport.width;height=visualViewport.height;const visualViewportBased=isWebKit();if(!visualViewportBased||visualViewportBased&&strategy==="fixed"){x=visualViewport.offsetLeft;y=visualViewport.offsetTop}}return{width:width,height:height,x:x,y:y}}function getInnerBoundingClientRect(element,strategy){const clientRect=getBoundingClientRect(element,true,strategy==="fixed");const top=clientRect.top+element.clientTop;const left=clientRect.left+element.clientLeft;const scale=isHTMLElement(element)?getScale(element):createCoords(1);const width=element.clientWidth*scale.x;const height=element.clientHeight*scale.y;const x=left*scale.x;const y=top*scale.y;return{width:width,height:height,x:x,y:y}}function getClientRectFromClippingAncestor(element,clippingAncestor,strategy){let rect;if(clippingAncestor==="viewport"){rect=getViewportRect(element,strategy)}else if(clippingAncestor==="document"){rect=getDocumentRect(getDocumentElement(element))}else if(isElement(clippingAncestor)){rect=getInnerBoundingClientRect(clippingAncestor,strategy)}else{const visualOffsets=getVisualOffsets(element);rect={x:clippingAncestor.x-visualOffsets.x,y:clippingAncestor.y-visualOffsets.y,width:clippingAncestor.width,height:clippingAncestor.height}}return rectToClientRect(rect)}function hasFixedPositionAncestor(element,stopNode){const parentNode=getParentNode(element);if(parentNode===stopNode||!isElement(parentNode)||isLastTraversableNode(parentNode)){return false}return getComputedStyle$1(parentNode).position==="fixed"||hasFixedPositionAncestor(parentNode,stopNode)}function getClippingElementAncestors(element,cache){const cachedResult=cache.get(element);if(cachedResult){return cachedResult}let result=getOverflowAncestors(element,[],false).filter((el=>isElement(el)&&getNodeName(el)!=="body"));let currentContainingBlockComputedStyle=null;const elementIsFixed=getComputedStyle$1(element).position==="fixed";let currentNode=elementIsFixed?getParentNode(element):element;while(isElement(currentNode)&&!isLastTraversableNode(currentNode)){const computedStyle=getComputedStyle$1(currentNode);const currentNodeIsContaining=isContainingBlock(currentNode);if(!currentNodeIsContaining&&computedStyle.position==="fixed"){currentContainingBlockComputedStyle=null}const shouldDropCurrentNode=elementIsFixed?!currentNodeIsContaining&&!currentContainingBlockComputedStyle:!currentNodeIsContaining&&computedStyle.position==="static"&&!!currentContainingBlockComputedStyle&&["absolute","fixed"].includes(currentContainingBlockComputedStyle.position)||isOverflowElement(currentNode)&&!currentNodeIsContaining&&hasFixedPositionAncestor(element,currentNode);if(shouldDropCurrentNode){result=result.filter((ancestor=>ancestor!==currentNode))}else{currentContainingBlockComputedStyle=computedStyle}currentNode=getParentNode(currentNode)}cache.set(element,result);return result}function getClippingRect(_ref){let{element:element,boundary:boundary,rootBoundary:rootBoundary,strategy:strategy}=_ref;const elementClippingAncestors=boundary==="clippingAncestors"?isTopLayer(element)?[]:getClippingElementAncestors(element,this._c):[].concat(boundary);const clippingAncestors=[...elementClippingAncestors,rootBoundary];const firstClippingAncestor=clippingAncestors[0];const clippingRect=clippingAncestors.reduce(((accRect,clippingAncestor)=>{const rect=getClientRectFromClippingAncestor(element,clippingAncestor,strategy);accRect.top=max(rect.top,accRect.top);accRect.right=min(rect.right,accRect.right);accRect.bottom=min(rect.bottom,accRect.bottom);accRect.left=max(rect.left,accRect.left);return accRect}),getClientRectFromClippingAncestor(element,firstClippingAncestor,strategy));return{width:clippingRect.right-clippingRect.left,height:clippingRect.bottom-clippingRect.top,x:clippingRect.left,y:clippingRect.top}}function getDimensions(element){const{width:width,height:height}=getCssDimensions(element);return{width:width,height:height}}function getRectRelativeToOffsetParent(element,offsetParent,strategy){const isOffsetParentAnElement=isHTMLElement(offsetParent);const documentElement=getDocumentElement(offsetParent);const isFixed=strategy==="fixed";const rect=getBoundingClientRect(element,true,isFixed,offsetParent);let scroll={scrollLeft:0,scrollTop:0};const offsets=createCoords(0);if(isOffsetParentAnElement||!isOffsetParentAnElement&&!isFixed){if(getNodeName(offsetParent)!=="body"||isOverflowElement(documentElement)){scroll=getNodeScroll(offsetParent)}if(isOffsetParentAnElement){const offsetRect=getBoundingClientRect(offsetParent,true,isFixed,offsetParent);offsets.x=offsetRect.x+offsetParent.clientLeft;offsets.y=offsetRect.y+offsetParent.clientTop}else if(documentElement){offsets.x=getWindowScrollBarX(documentElement)}}const htmlOffset=documentElement&&!isOffsetParentAnElement&&!isFixed?getHTMLOffset(documentElement,scroll):createCoords(0);const x=rect.left+scroll.scrollLeft-offsets.x-htmlOffset.x;const y=rect.top+scroll.scrollTop-offsets.y-htmlOffset.y;return{x:x,y:y,width:rect.width,height:rect.height}}function isStaticPositioned(element){return getComputedStyle$1(element).position==="static"}function getTrueOffsetParent(element,polyfill){if(!isHTMLElement(element)||getComputedStyle$1(element).position==="fixed"){return null}if(polyfill){return polyfill(element)}let rawOffsetParent=element.offsetParent;if(getDocumentElement(element)===rawOffsetParent){rawOffsetParent=rawOffsetParent.ownerDocument.body}return rawOffsetParent}function getOffsetParent(element,polyfill){const win=getWindow(element);if(isTopLayer(element)){return win}if(!isHTMLElement(element)){let svgOffsetParent=getParentNode(element);while(svgOffsetParent&&!isLastTraversableNode(svgOffsetParent)){if(isElement(svgOffsetParent)&&!isStaticPositioned(svgOffsetParent)){return svgOffsetParent}svgOffsetParent=getParentNode(svgOffsetParent)}return win}let offsetParent=getTrueOffsetParent(element,polyfill);while(offsetParent&&isTableElement(offsetParent)&&isStaticPositioned(offsetParent)){offsetParent=getTrueOffsetParent(offsetParent,polyfill)}if(offsetParent&&isLastTraversableNode(offsetParent)&&isStaticPositioned(offsetParent)&&!isContainingBlock(offsetParent)){return win}return offsetParent||getContainingBlock(element)||win}const getElementRects=async function(data){const getOffsetParentFn=this.getOffsetParent||getOffsetParent;const getDimensionsFn=this.getDimensions;const floatingDimensions=await getDimensionsFn(data.floating);return{reference:getRectRelativeToOffsetParent(data.reference,await getOffsetParentFn(data.floating),data.strategy),floating:{x:0,y:0,width:floatingDimensions.width,height:floatingDimensions.height}}};function isRTL(element){return getComputedStyle$1(element).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement,isRTL:isRTL};function observeMove(element,onMove){let io=null;let timeoutId2;const root=getDocumentElement(element);function cleanup(){var _io;clearTimeout(timeoutId2);(_io=io)==null||_io.disconnect();io=null}function refresh(skip,threshold){if(skip===void 0){skip=false}if(threshold===void 0){threshold=1}cleanup();const{left:left,top:top,width:width,height:height}=element.getBoundingClientRect();if(!skip){onMove()}if(!width||!height){return}const insetTop=floor(top);const insetRight=floor(root.clientWidth-(left+width));const insetBottom=floor(root.clientHeight-(top+height));const insetLeft=floor(left);const rootMargin=-insetTop+"px "+-insetRight+"px "+-insetBottom+"px "+-insetLeft+"px";const options={rootMargin:rootMargin,threshold:max(0,min(1,threshold))||1};let isFirstUpdate=true;function handleObserve(entries){const ratio=entries[0].intersectionRatio;if(ratio!==threshold){if(!isFirstUpdate){return refresh()}if(!ratio){timeoutId2=setTimeout((()=>{refresh(false,1e-7)}),1e3)}else{refresh(false,ratio)}}isFirstUpdate=false}try{io=new IntersectionObserver(handleObserve,{...options,root:root.ownerDocument})}catch(e){io=new IntersectionObserver(handleObserve,options)}io.observe(element)}refresh(true);return cleanup}function autoUpdate(reference,floating,update,options){if(options===void 0){options={}}const{ancestorScroll:ancestorScroll=true,ancestorResize:ancestorResize=true,elementResize:elementResize=typeof ResizeObserver==="function",layoutShift:layoutShift=typeof IntersectionObserver==="function",animationFrame:animationFrame=false}=options;const referenceEl=unwrapElement(reference);const ancestors=ancestorScroll||ancestorResize?[...referenceEl?getOverflowAncestors(referenceEl):[],...getOverflowAncestors(floating)]:[];ancestors.forEach((ancestor=>{ancestorScroll&&ancestor.addEventListener("scroll",update,{passive:true});ancestorResize&&ancestor.addEventListener("resize",update)}));const cleanupIo=referenceEl&&layoutShift?observeMove(referenceEl,update):null;let reobserveFrame=-1;let resizeObserver=null;if(elementResize){resizeObserver=new ResizeObserver((_ref=>{let[firstEntry]=_ref;if(firstEntry&&firstEntry.target===referenceEl&&resizeObserver){resizeObserver.unobserve(floating);cancelAnimationFrame(reobserveFrame);reobserveFrame=requestAnimationFrame((()=>{var _resizeObserver;(_resizeObserver=resizeObserver)==null||_resizeObserver.observe(floating)}))}update()}));if(referenceEl&&!animationFrame){resizeObserver.observe(referenceEl)}resizeObserver.observe(floating)}let frameId;let prevRefRect=animationFrame?getBoundingClientRect(reference):null;if(animationFrame){frameLoop()}function frameLoop(){const nextRefRect=getBoundingClientRect(reference);if(prevRefRect&&(nextRefRect.x!==prevRefRect.x||nextRefRect.y!==prevRefRect.y||nextRefRect.width!==prevRefRect.width||nextRefRect.height!==prevRefRect.height)){update()}prevRefRect=nextRefRect;frameId=requestAnimationFrame(frameLoop)}update();return()=>{var _resizeObserver2;ancestors.forEach((ancestor=>{ancestorScroll&&ancestor.removeEventListener("scroll",update);ancestorResize&&ancestor.removeEventListener("resize",update)}));cleanupIo==null||cleanupIo();(_resizeObserver2=resizeObserver)==null||_resizeObserver2.disconnect();resizeObserver=null;if(animationFrame){cancelAnimationFrame(frameId)}}}const offset$1=offset$2;const shift$1=shift$2;const flip$1=flip$2;const arrow$2=arrow$3;const computePosition=(reference,floating,options)=>{const cache=new Map;const mergedOptions={platform:platform,...options};const platformWithCache={...mergedOptions.platform,_c:cache};return computePosition$1(reference,floating,{...mergedOptions,platform:platformWithCache})};var index$1=typeof document!=="undefined"?useLayoutEffect:useEffect;function deepEqual(a,b){if(a===b){return true}if(typeof a!==typeof b){return false}if(typeof a==="function"&&a.toString()===b.toString()){return true}let length;let i;let keys;if(a&&b&&typeof a==="object"){if(Array.isArray(a)){length=a.length;if(length!==b.length)return false;for(i=length;i--!==0;){if(!deepEqual(a[i],b[i])){return false}}return true}keys=Object.keys(a);length=keys.length;if(length!==Object.keys(b).length){return false}for(i=length;i--!==0;){if(!{}.hasOwnProperty.call(b,keys[i])){return false}}for(i=length;i--!==0;){const key=keys[i];if(key==="_owner"&&a.$$typeof){continue}if(!deepEqual(a[key],b[key])){return false}}return true}return a!==a&&b!==b}function getDPR(element){if(typeof window==="undefined"){return 1}const win=element.ownerDocument.defaultView||window;return win.devicePixelRatio||1}function roundByDPR(element,value){const dpr=getDPR(element);return Math.round(value*dpr)/dpr}function useLatestRef$1(value){const ref=React.useRef(value);index$1((()=>{ref.current=value}));return ref}function useFloating$1(options){if(options===void 0){options={}}const{placement:placement="bottom",strategy:strategy="absolute",middleware:middleware=[],platform:platform2,elements:{reference:externalReference,floating:externalFloating}={},transform:transform=true,whileElementsMounted:whileElementsMounted,open:open}=options;const[data,setData]=React.useState({x:0,y:0,strategy:strategy,placement:placement,middlewareData:{},isPositioned:false});const[latestMiddleware,setLatestMiddleware]=React.useState(middleware);if(!deepEqual(latestMiddleware,middleware)){setLatestMiddleware(middleware)}const[_reference,_setReference]=React.useState(null);const[_floating,_setFloating]=React.useState(null);const setReference=React.useCallback((node=>{if(node!==referenceRef.current){referenceRef.current=node;_setReference(node)}}),[]);const setFloating=React.useCallback((node=>{if(node!==floatingRef.current){floatingRef.current=node;_setFloating(node)}}),[]);const referenceEl=externalReference||_reference;const floatingEl=externalFloating||_floating;const referenceRef=React.useRef(null);const floatingRef=React.useRef(null);const dataRef=React.useRef(data);const hasWhileElementsMounted=whileElementsMounted!=null;const whileElementsMountedRef=useLatestRef$1(whileElementsMounted);const platformRef=useLatestRef$1(platform2);const openRef=useLatestRef$1(open);const update=React.useCallback((()=>{if(!referenceRef.current||!floatingRef.current){return}const config={placement:placement,strategy:strategy,middleware:latestMiddleware};if(platformRef.current){config.platform=platformRef.current}computePosition(referenceRef.current,floatingRef.current,config).then((data2=>{const fullData={...data2,isPositioned:openRef.current!==false};if(isMountedRef.current&&!deepEqual(dataRef.current,fullData)){dataRef.current=fullData;ReactDOM.flushSync((()=>{setData(fullData)}))}}))}),[latestMiddleware,placement,strategy,platformRef,openRef]);index$1((()=>{if(open===false&&dataRef.current.isPositioned){dataRef.current.isPositioned=false;setData((data2=>({...data2,isPositioned:false})))}}),[open]);const isMountedRef=React.useRef(false);index$1((()=>{isMountedRef.current=true;return()=>{isMountedRef.current=false}}),[]);index$1((()=>{if(referenceEl)referenceRef.current=referenceEl;if(floatingEl)floatingRef.current=floatingEl;if(referenceEl&&floatingEl){if(whileElementsMountedRef.current){return whileElementsMountedRef.current(referenceEl,floatingEl,update)}update()}}),[referenceEl,floatingEl,update,whileElementsMountedRef,hasWhileElementsMounted]);const refs=React.useMemo((()=>({reference:referenceRef,floating:floatingRef,setReference:setReference,setFloating:setFloating})),[setReference,setFloating]);const elements=React.useMemo((()=>({reference:referenceEl,floating:floatingEl})),[referenceEl,floatingEl]);const floatingStyles=React.useMemo((()=>{const initialStyles={position:strategy,left:0,top:0};if(!elements.floating){return initialStyles}const x=roundByDPR(elements.floating,data.x);const y=roundByDPR(elements.floating,data.y);if(transform){return{...initialStyles,transform:"translate("+x+"px, "+y+"px)",...getDPR(elements.floating)>=1.5&&{willChange:"transform"}}}return{position:strategy,left:x,top:y}}),[strategy,transform,elements.floating,data.x,data.y]);return React.useMemo((()=>({...data,update:update,refs:refs,elements:elements,floatingStyles:floatingStyles})),[data,update,refs,elements,floatingStyles])}const arrow$1=options=>{function isRef(value){return{}.hasOwnProperty.call(value,"current")}return{name:"arrow",options:options,fn(state){const{element:element,padding:padding}=typeof options==="function"?options(state):options;if(element&&isRef(element)){if(element.current!=null){return arrow$2({element:element.current,padding:padding}).fn(state)}return{}}if(element){return arrow$2({element:element,padding:padding}).fn(state)}return{}}}};const offset=(options,deps)=>({...offset$1(options),options:[options,deps]});const shift=(options,deps)=>({...shift$1(options),options:[options,deps]});const flip=(options,deps)=>({...flip$1(options),options:[options,deps]});const arrow=(options,deps)=>({...arrow$1(options),options:[options,deps]});const SafeReact={...React};const useInsertionEffect=SafeReact.useInsertionEffect;const useSafeInsertionEffect=useInsertionEffect||(fn=>fn());function useEffectEvent(callback){const ref=React.useRef((()=>{}));useSafeInsertionEffect((()=>{ref.current=callback}));return React.useCallback((function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return ref.current==null?void 0:ref.current(...args)}),[])}var index=typeof document!=="undefined"?useLayoutEffect:useEffect;function _extends(){_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}let serverHandoffComplete=false;let count=0;const genId=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+count++;function useFloatingId(){const[id,setId]=React.useState((()=>serverHandoffComplete?genId():void 0));index((()=>{if(id==null){setId(genId())}}),[]);React.useEffect((()=>{serverHandoffComplete=true}),[]);return id}const useReactId=SafeReact.useId;const useId=useReactId||useFloatingId;function createPubSub(){const map=new Map;return{emit(event,data){var _map$get;(_map$get=map.get(event))==null||_map$get.forEach((handler=>handler(data)))},on(event,listener){map.set(event,[...map.get(event)||[],listener])},off(event,listener){var _map$get2;map.set(event,((_map$get2=map.get(event))==null?void 0:_map$get2.filter((l=>l!==listener)))||[])}}}const FloatingNodeContext=React.createContext(null);const FloatingTreeContext=React.createContext(null);const useFloatingParentNodeId=()=>{var _React$useContext;return((_React$useContext=React.useContext(FloatingNodeContext))==null?void 0:_React$useContext.id)||null};const useFloatingTree=()=>React.useContext(FloatingTreeContext);function createAttribute(name){return"data-floating-ui-"+name}function useLatestRef(value){const ref=useRef(value);index((()=>{ref.current=value}));return ref}const safePolygonIdentifier=createAttribute("safe-polygon");function getDelay(value,prop,pointerType){if(pointerType&&!isMouseLikePointerType(pointerType)){return 0}if(typeof value==="number"){return value}return value==null?void 0:value[prop]}function useHover(context,props){if(props===void 0){props={}}const{open:open,onOpenChange:onOpenChange,dataRef:dataRef,events:events,elements:elements}=context;const{enabled:enabled=true,delay:delay=0,handleClose:handleClose=null,mouseOnly:mouseOnly=false,restMs:restMs=0,move:move=true}=props;const tree=useFloatingTree();const parentId=useFloatingParentNodeId();const handleCloseRef=useLatestRef(handleClose);const delayRef=useLatestRef(delay);const openRef=useLatestRef(open);const pointerTypeRef=React.useRef();const timeoutRef=React.useRef(-1);const handlerRef=React.useRef();const restTimeoutRef=React.useRef(-1);const blockMouseMoveRef=React.useRef(true);const performedPointerEventsMutationRef=React.useRef(false);const unbindMouseMoveRef=React.useRef((()=>{}));const restTimeoutPendingRef=React.useRef(false);const isHoverOpen=React.useCallback((()=>{var _dataRef$current$open;const type=(_dataRef$current$open=dataRef.current.openEvent)==null?void 0:_dataRef$current$open.type;return(type==null?void 0:type.includes("mouse"))&&type!=="mousedown"}),[dataRef]);React.useEffect((()=>{if(!enabled)return;function onOpenChange2(_ref){let{open:open2}=_ref;if(!open2){clearTimeout(timeoutRef.current);clearTimeout(restTimeoutRef.current);blockMouseMoveRef.current=true;restTimeoutPendingRef.current=false}}events.on("openchange",onOpenChange2);return()=>{events.off("openchange",onOpenChange2)}}),[enabled,events]);React.useEffect((()=>{if(!enabled)return;if(!handleCloseRef.current)return;if(!open)return;function onLeave(event){if(isHoverOpen()){onOpenChange(false,event,"hover")}}const html=getDocument(elements.floating).documentElement;html.addEventListener("mouseleave",onLeave);return()=>{html.removeEventListener("mouseleave",onLeave)}}),[elements.floating,open,onOpenChange,enabled,handleCloseRef,isHoverOpen]);const closeWithDelay=React.useCallback((function(event,runElseBranch,reason){if(runElseBranch===void 0){runElseBranch=true}if(reason===void 0){reason="hover"}const closeDelay=getDelay(delayRef.current,"close",pointerTypeRef.current);if(closeDelay&&!handlerRef.current){clearTimeout(timeoutRef.current);timeoutRef.current=window.setTimeout((()=>onOpenChange(false,event,reason)),closeDelay)}else if(runElseBranch){clearTimeout(timeoutRef.current);onOpenChange(false,event,reason)}}),[delayRef,onOpenChange]);const cleanupMouseMoveHandler=useEffectEvent((()=>{unbindMouseMoveRef.current();handlerRef.current=void 0}));const clearPointerEvents=useEffectEvent((()=>{if(performedPointerEventsMutationRef.current){const body=getDocument(elements.floating).body;body.style.pointerEvents="";body.removeAttribute(safePolygonIdentifier);performedPointerEventsMutationRef.current=false}}));const isClickLikeOpenEvent=useEffectEvent((()=>dataRef.current.openEvent?["click","mousedown"].includes(dataRef.current.openEvent.type):false));React.useEffect((()=>{if(!enabled)return;function onMouseEnter(event){clearTimeout(timeoutRef.current);blockMouseMoveRef.current=false;if(mouseOnly&&!isMouseLikePointerType(pointerTypeRef.current)||restMs>0&&!getDelay(delayRef.current,"open")){return}const openDelay=getDelay(delayRef.current,"open",pointerTypeRef.current);if(openDelay){timeoutRef.current=window.setTimeout((()=>{if(!openRef.current){onOpenChange(true,event,"hover")}}),openDelay)}else if(!open){onOpenChange(true,event,"hover")}}function onMouseLeave(event){if(isClickLikeOpenEvent())return;unbindMouseMoveRef.current();const doc=getDocument(elements.floating);clearTimeout(restTimeoutRef.current);restTimeoutPendingRef.current=false;if(handleCloseRef.current&&dataRef.current.floatingContext){if(!open){clearTimeout(timeoutRef.current)}handlerRef.current=handleCloseRef.current({...dataRef.current.floatingContext,tree:tree,x:event.clientX,y:event.clientY,onClose(){clearPointerEvents();cleanupMouseMoveHandler();if(!isClickLikeOpenEvent()){closeWithDelay(event,true,"safe-polygon")}}});const handler=handlerRef.current;doc.addEventListener("mousemove",handler);unbindMouseMoveRef.current=()=>{doc.removeEventListener("mousemove",handler)};return}const shouldClose=pointerTypeRef.current==="touch"?!contains(elements.floating,event.relatedTarget):true;if(shouldClose){closeWithDelay(event)}}function onScrollMouseLeave(event){if(isClickLikeOpenEvent())return;if(!dataRef.current.floatingContext)return;handleCloseRef.current==null||handleCloseRef.current({...dataRef.current.floatingContext,tree:tree,x:event.clientX,y:event.clientY,onClose(){clearPointerEvents();cleanupMouseMoveHandler();if(!isClickLikeOpenEvent()){closeWithDelay(event)}}})(event)}if(isElement(elements.domReference)){var _elements$floating;const ref=elements.domReference;open&&ref.addEventListener("mouseleave",onScrollMouseLeave);(_elements$floating=elements.floating)==null||_elements$floating.addEventListener("mouseleave",onScrollMouseLeave);move&&ref.addEventListener("mousemove",onMouseEnter,{once:true});ref.addEventListener("mouseenter",onMouseEnter);ref.addEventListener("mouseleave",onMouseLeave);return()=>{var _elements$floating2;open&&ref.removeEventListener("mouseleave",onScrollMouseLeave);(_elements$floating2=elements.floating)==null||_elements$floating2.removeEventListener("mouseleave",onScrollMouseLeave);move&&ref.removeEventListener("mousemove",onMouseEnter);ref.removeEventListener("mouseenter",onMouseEnter);ref.removeEventListener("mouseleave",onMouseLeave)}}}),[elements,enabled,context,mouseOnly,restMs,move,closeWithDelay,cleanupMouseMoveHandler,clearPointerEvents,onOpenChange,open,openRef,tree,delayRef,handleCloseRef,dataRef,isClickLikeOpenEvent]);index((()=>{var _handleCloseRef$curre;if(!enabled)return;if(open&&(_handleCloseRef$curre=handleCloseRef.current)!=null&&_handleCloseRef$curre.__options.blockPointerEvents&&isHoverOpen()){performedPointerEventsMutationRef.current=true;const floatingEl=elements.floating;if(isElement(elements.domReference)&&floatingEl){var _tree$nodesRef$curren;const body=getDocument(elements.floating).body;body.setAttribute(safePolygonIdentifier,"");const ref=elements.domReference;const parentFloating=tree==null||(_tree$nodesRef$curren=tree.nodesRef.current.find((node=>node.id===parentId)))==null||(_tree$nodesRef$curren=_tree$nodesRef$curren.context)==null?void 0:_tree$nodesRef$curren.elements.floating;if(parentFloating){parentFloating.style.pointerEvents=""}body.style.pointerEvents="none";ref.style.pointerEvents="auto";floatingEl.style.pointerEvents="auto";return()=>{body.style.pointerEvents="";ref.style.pointerEvents="";floatingEl.style.pointerEvents=""}}}}),[enabled,open,parentId,elements,tree,handleCloseRef,isHoverOpen]);index((()=>{if(!open){pointerTypeRef.current=void 0;restTimeoutPendingRef.current=false;cleanupMouseMoveHandler();clearPointerEvents()}}),[open,cleanupMouseMoveHandler,clearPointerEvents]);React.useEffect((()=>()=>{cleanupMouseMoveHandler();clearTimeout(timeoutRef.current);clearTimeout(restTimeoutRef.current);clearPointerEvents()}),[enabled,elements.domReference,cleanupMouseMoveHandler,clearPointerEvents]);const reference=React.useMemo((()=>{function setPointerRef(event){pointerTypeRef.current=event.pointerType}return{onPointerDown:setPointerRef,onPointerEnter:setPointerRef,onMouseMove(event){const{nativeEvent:nativeEvent}=event;function handleMouseMove(){if(!blockMouseMoveRef.current&&!openRef.current){onOpenChange(true,nativeEvent,"hover")}}if(mouseOnly&&!isMouseLikePointerType(pointerTypeRef.current)){return}if(open||restMs===0){return}if(restTimeoutPendingRef.current&&event.movementX**2+event.movementY**2<2){return}clearTimeout(restTimeoutRef.current);if(pointerTypeRef.current==="touch"){handleMouseMove()}else{restTimeoutPendingRef.current=true;restTimeoutRef.current=window.setTimeout(handleMouseMove,restMs)}}}}),[mouseOnly,onOpenChange,open,openRef,restMs]);const floating=React.useMemo((()=>({onMouseEnter(){clearTimeout(timeoutRef.current)},onMouseLeave(event){if(!isClickLikeOpenEvent()){closeWithDelay(event.nativeEvent,false)}}})),[closeWithDelay,isClickLikeOpenEvent]);return React.useMemo((()=>enabled?{reference:reference,floating:floating}:{}),[enabled,reference,floating])}function getChildren(nodes,id){let allChildren=nodes.filter((node=>{var _node$context;return node.parentId===id&&((_node$context=node.context)==null?void 0:_node$context.open)}));let currentChildren=allChildren;while(currentChildren.length){currentChildren=nodes.filter((node=>{var _currentChildren;return(_currentChildren=currentChildren)==null?void 0:_currentChildren.some((n=>{var _node$context2;return node.parentId===n.id&&((_node$context2=node.context)==null?void 0:_node$context2.open)}))}));allChildren=allChildren.concat(currentChildren)}return allChildren}const getTabbableOptions=()=>({getShadowRoot:true,displayCheck:typeof ResizeObserver==="function"&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function getTabbableIn(container,direction){const allTabbable=tabbable(container,getTabbableOptions());if(direction==="prev"){allTabbable.reverse()}const activeIndex=allTabbable.indexOf(activeElement(getDocument(container)));const nextTabbableElements=allTabbable.slice(activeIndex+1);return nextTabbableElements[0]}function getNextTabbable(){return getTabbableIn(document.body,"next")}function getPreviousTabbable(){return getTabbableIn(document.body,"prev")}function isOutsideEvent(event,container){const containerElement=container||event.currentTarget;const relatedTarget=event.relatedTarget;return!relatedTarget||!contains(containerElement,relatedTarget)}function disableFocusInside(container){const tabbableElements=tabbable(container,getTabbableOptions());tabbableElements.forEach((element=>{element.dataset.tabindex=element.getAttribute("tabindex")||"";element.setAttribute("tabindex","-1")}))}function enableFocusInside(container){const elements=container.querySelectorAll("[data-tabindex]");elements.forEach((element=>{const tabindex=element.dataset.tabindex;delete element.dataset.tabindex;if(tabindex){element.setAttribute("tabindex",tabindex)}else{element.removeAttribute("tabindex")}}))}const HIDDEN_STYLES={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0};let timeoutId;function setActiveElementOnTab(event){if(event.key==="Tab"){event.target;clearTimeout(timeoutId)}}const FocusGuard=React.forwardRef((function FocusGuard2(props,ref){const[role,setRole]=React.useState();index((()=>{if(isSafari()){setRole("button")}document.addEventListener("keydown",setActiveElementOnTab);return()=>{document.removeEventListener("keydown",setActiveElementOnTab)}}),[]);const restProps={ref:ref,tabIndex:0,role:role,"aria-hidden":role?void 0:true,[createAttribute("focus-guard")]:"",style:HIDDEN_STYLES};return React.createElement("span",_extends({},props,restProps))}));const PortalContext=React.createContext(null);const attr=createAttribute("portal");function useFloatingPortalNode(props){if(props===void 0){props={}}const{id:id,root:root}=props;const uniqueId=useId();const portalContext=usePortalContext();const[portalNode,setPortalNode]=React.useState(null);const portalNodeRef=React.useRef(null);index((()=>()=>{portalNode==null||portalNode.remove();queueMicrotask((()=>{portalNodeRef.current=null}))}),[portalNode]);index((()=>{if(!uniqueId)return;if(portalNodeRef.current)return;const existingIdRoot=id?document.getElementById(id):null;if(!existingIdRoot)return;const subRoot=document.createElement("div");subRoot.id=uniqueId;subRoot.setAttribute(attr,"");existingIdRoot.appendChild(subRoot);portalNodeRef.current=subRoot;setPortalNode(subRoot)}),[id,uniqueId]);index((()=>{if(root===null)return;if(!uniqueId)return;if(portalNodeRef.current)return;let container=root||(portalContext==null?void 0:portalContext.portalNode);if(container&&!isElement(container))container=container.current;container=container||document.body;let idWrapper=null;if(id){idWrapper=document.createElement("div");idWrapper.id=id;container.appendChild(idWrapper)}const subRoot=document.createElement("div");subRoot.id=uniqueId;subRoot.setAttribute(attr,"");container=idWrapper||container;container.appendChild(subRoot);portalNodeRef.current=subRoot;setPortalNode(subRoot)}),[id,root,uniqueId,portalContext]);return portalNode}function FloatingPortal(props){const{children:children,id:id,root:root,preserveTabOrder:preserveTabOrder=true}=props;const portalNode=useFloatingPortalNode({id:id,root:root});const[focusManagerState,setFocusManagerState]=React.useState(null);const beforeOutsideRef=React.useRef(null);const afterOutsideRef=React.useRef(null);const beforeInsideRef=React.useRef(null);const afterInsideRef=React.useRef(null);const modal=focusManagerState==null?void 0:focusManagerState.modal;const open=focusManagerState==null?void 0:focusManagerState.open;const shouldRenderGuards=!!focusManagerState&&!focusManagerState.modal&&focusManagerState.open&&preserveTabOrder&&!!(root||portalNode);React.useEffect((()=>{if(!portalNode||!preserveTabOrder||modal){return}function onFocus(event){if(portalNode&&isOutsideEvent(event)){const focusing=event.type==="focusin";const manageFocus=focusing?enableFocusInside:disableFocusInside;manageFocus(portalNode)}}portalNode.addEventListener("focusin",onFocus,true);portalNode.addEventListener("focusout",onFocus,true);return()=>{portalNode.removeEventListener("focusin",onFocus,true);portalNode.removeEventListener("focusout",onFocus,true)}}),[portalNode,preserveTabOrder,modal]);React.useEffect((()=>{if(!portalNode)return;if(open)return;enableFocusInside(portalNode)}),[open,portalNode]);return React.createElement(PortalContext.Provider,{value:React.useMemo((()=>({preserveTabOrder:preserveTabOrder,beforeOutsideRef:beforeOutsideRef,afterOutsideRef:afterOutsideRef,beforeInsideRef:beforeInsideRef,afterInsideRef:afterInsideRef,portalNode:portalNode,setFocusManagerState:setFocusManagerState})),[preserveTabOrder,portalNode])},shouldRenderGuards&&portalNode&&React.createElement(FocusGuard,{"data-type":"outside",ref:beforeOutsideRef,onFocus:event=>{if(isOutsideEvent(event,portalNode)){var _beforeInsideRef$curr;(_beforeInsideRef$curr=beforeInsideRef.current)==null||_beforeInsideRef$curr.focus()}else{const prevTabbable=getPreviousTabbable()||(focusManagerState==null?void 0:focusManagerState.refs.domReference.current);prevTabbable==null||prevTabbable.focus()}}}),shouldRenderGuards&&portalNode&&React.createElement("span",{"aria-owns":portalNode.id,style:HIDDEN_STYLES}),portalNode&&ReactDOM.createPortal(children,portalNode),shouldRenderGuards&&portalNode&&React.createElement(FocusGuard,{"data-type":"outside",ref:afterOutsideRef,onFocus:event=>{if(isOutsideEvent(event,portalNode)){var _afterInsideRef$curre;(_afterInsideRef$curre=afterInsideRef.current)==null||_afterInsideRef$curre.focus()}else{const nextTabbable=getNextTabbable()||(focusManagerState==null?void 0:focusManagerState.refs.domReference.current);nextTabbable==null||nextTabbable.focus();(focusManagerState==null?void 0:focusManagerState.closeOnFocusOut)&&(focusManagerState==null?void 0:focusManagerState.onOpenChange(false,event.nativeEvent,"focus-out"))}}}))}const usePortalContext=()=>React.useContext(PortalContext);const FOCUSABLE_ATTRIBUTE="data-floating-ui-focusable";function isButtonTarget(event){return isHTMLElement(event.target)&&event.target.tagName==="BUTTON"}function isSpaceIgnored(element){return isTypeableElement(element)}function useClick(context,props){if(props===void 0){props={}}const{open:open,onOpenChange:onOpenChange,dataRef:dataRef,elements:{domReference:domReference}}=context;const{enabled:enabled=true,event:eventOption="click",toggle:toggle=true,ignoreMouse:ignoreMouse=false,keyboardHandlers:keyboardHandlers=true,stickIfOpen:stickIfOpen=true}=props;const pointerTypeRef=React.useRef();const didKeyDownRef=React.useRef(false);const reference=React.useMemo((()=>({onPointerDown(event){pointerTypeRef.current=event.pointerType},onMouseDown(event){const pointerType=pointerTypeRef.current;if(event.button!==0)return;if(eventOption==="click")return;if(isMouseLikePointerType(pointerType,true)&&ignoreMouse)return;if(open&&toggle&&(dataRef.current.openEvent&&stickIfOpen?dataRef.current.openEvent.type==="mousedown":true)){onOpenChange(false,event.nativeEvent,"click")}else{event.preventDefault();onOpenChange(true,event.nativeEvent,"click")}},onClick(event){const pointerType=pointerTypeRef.current;if(eventOption==="mousedown"&&pointerTypeRef.current){pointerTypeRef.current=void 0;return}if(isMouseLikePointerType(pointerType,true)&&ignoreMouse)return;if(open&&toggle&&(dataRef.current.openEvent&&stickIfOpen?dataRef.current.openEvent.type==="click":true)){onOpenChange(false,event.nativeEvent,"click")}else{onOpenChange(true,event.nativeEvent,"click")}},onKeyDown(event){pointerTypeRef.current=void 0;if(event.defaultPrevented||!keyboardHandlers||isButtonTarget(event)){return}if(event.key===" "&&!isSpaceIgnored(domReference)){event.preventDefault();didKeyDownRef.current=true}if(event.key==="Enter"){if(open&&toggle){onOpenChange(false,event.nativeEvent,"click")}else{onOpenChange(true,event.nativeEvent,"click")}}},onKeyUp(event){if(event.defaultPrevented||!keyboardHandlers||isButtonTarget(event)||isSpaceIgnored(domReference)){return}if(event.key===" "&&didKeyDownRef.current){didKeyDownRef.current=false;if(open&&toggle){onOpenChange(false,event.nativeEvent,"click")}else{onOpenChange(true,event.nativeEvent,"click")}}}})),[dataRef,domReference,eventOption,ignoreMouse,keyboardHandlers,onOpenChange,open,stickIfOpen,toggle]);return React.useMemo((()=>enabled?{reference:reference}:{}),[enabled,reference])}function useFloatingRootContext(options){const{open:open=false,onOpenChange:onOpenChangeProp,elements:elementsProp}=options;const floatingId=useId();const dataRef=React.useRef({});const[events]=React.useState((()=>createPubSub()));const nested=useFloatingParentNodeId()!=null;const[positionReference,setPositionReference]=React.useState(elementsProp.reference);const onOpenChange=useEffectEvent(((open2,event,reason)=>{dataRef.current.openEvent=open2?event:void 0;events.emit("openchange",{open:open2,event:event,reason:reason,nested:nested});onOpenChangeProp==null||onOpenChangeProp(open2,event,reason)}));const refs=React.useMemo((()=>({setPositionReference:setPositionReference})),[]);const elements=React.useMemo((()=>({reference:positionReference||elementsProp.reference||null,floating:elementsProp.floating||null,domReference:elementsProp.reference})),[positionReference,elementsProp.reference,elementsProp.floating]);return React.useMemo((()=>({dataRef:dataRef,open:open,onOpenChange:onOpenChange,elements:elements,events:events,floatingId:floatingId,refs:refs})),[open,onOpenChange,elements,events,floatingId,refs])}function useFloating(options){if(options===void 0){options={}}const{nodeId:nodeId}=options;const internalRootContext=useFloatingRootContext({...options,elements:{reference:null,floating:null,...options.elements}});const rootContext=options.rootContext||internalRootContext;const computedElements=rootContext.elements;const[_domReference,setDomReference]=React.useState(null);const[positionReference,_setPositionReference]=React.useState(null);const optionDomReference=computedElements==null?void 0:computedElements.domReference;const domReference=optionDomReference||_domReference;const domReferenceRef=React.useRef(null);const tree=useFloatingTree();index((()=>{if(domReference){domReferenceRef.current=domReference}}),[domReference]);const position=useFloating$1({...options,elements:{...computedElements,...positionReference&&{reference:positionReference}}});const setPositionReference=React.useCallback((node=>{const computedPositionReference=isElement(node)?{getBoundingClientRect:()=>node.getBoundingClientRect(),contextElement:node}:node;_setPositionReference(computedPositionReference);position.refs.setReference(computedPositionReference)}),[position.refs]);const setReference=React.useCallback((node=>{if(isElement(node)||node===null){domReferenceRef.current=node;setDomReference(node)}if(isElement(position.refs.reference.current)||position.refs.reference.current===null||node!==null&&!isElement(node)){position.refs.setReference(node)}}),[position.refs]);const refs=React.useMemo((()=>({...position.refs,setReference:setReference,setPositionReference:setPositionReference,domReference:domReferenceRef})),[position.refs,setReference,setPositionReference]);const elements=React.useMemo((()=>({...position.elements,domReference:domReference})),[position.elements,domReference]);const context=React.useMemo((()=>({...position,...rootContext,refs:refs,elements:elements,nodeId:nodeId})),[position,refs,elements,nodeId,rootContext]);index((()=>{rootContext.dataRef.current.floatingContext=context;const node=tree==null?void 0:tree.nodesRef.current.find((node2=>node2.id===nodeId));if(node){node.context=context}}));return React.useMemo((()=>({...position,context:context,refs:refs,elements:elements})),[position,refs,elements,context])}const ACTIVE_KEY="active";const SELECTED_KEY="selected";function mergeProps(userProps,propsList,elementKey){const map=new Map;const isItem=elementKey==="item";let domUserProps=userProps;if(isItem&&userProps){const{[ACTIVE_KEY]:_,[SELECTED_KEY]:__,...validProps}=userProps;domUserProps=validProps}return{...elementKey==="floating"&&{tabIndex:-1,[FOCUSABLE_ATTRIBUTE]:""},...domUserProps,...propsList.map((value=>{const propsOrGetProps=value?value[elementKey]:null;if(typeof propsOrGetProps==="function"){return userProps?propsOrGetProps(userProps):null}return propsOrGetProps})).concat(userProps).reduce(((acc,props)=>{if(!props){return acc}Object.entries(props).forEach((_ref=>{let[key,value]=_ref;if(isItem&&[ACTIVE_KEY,SELECTED_KEY].includes(key)){return}if(key.indexOf("on")===0){if(!map.has(key)){map.set(key,[])}if(typeof value==="function"){var _map$get;(_map$get=map.get(key))==null||_map$get.push(value);acc[key]=function(){var _map$get2;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return(_map$get2=map.get(key))==null?void 0:_map$get2.map((fn=>fn(...args))).find((val=>val!==void 0))}}}else{acc[key]=value}}));return acc}),{})}}function useInteractions(propsList){if(propsList===void 0){propsList=[]}const referenceDeps=propsList.map((key=>key==null?void 0:key.reference));const floatingDeps=propsList.map((key=>key==null?void 0:key.floating));const itemDeps=propsList.map((key=>key==null?void 0:key.item));const getReferenceProps=React.useCallback((userProps=>mergeProps(userProps,propsList,"reference")),referenceDeps);const getFloatingProps=React.useCallback((userProps=>mergeProps(userProps,propsList,"floating")),floatingDeps);const getItemProps=React.useCallback((userProps=>mergeProps(userProps,propsList,"item")),itemDeps);return React.useMemo((()=>({getReferenceProps:getReferenceProps,getFloatingProps:getFloatingProps,getItemProps:getItemProps})),[getReferenceProps,getFloatingProps,getItemProps])}function isPointInPolygon(point,polygon){const[x,y]=point;let isInside2=false;const length=polygon.length;for(let i=0,j=length-1;i<length;j=i++){const[xi,yi]=polygon[i]||[0,0];const[xj,yj]=polygon[j]||[0,0];const intersect=yi>=y!==yj>=y&&x<=(xj-xi)*(y-yi)/(yj-yi)+xi;if(intersect){isInside2=!isInside2}}return isInside2}function isInside(point,rect){return point[0]>=rect.x&&point[0]<=rect.x+rect.width&&point[1]>=rect.y&&point[1]<=rect.y+rect.height}function safePolygon(options){if(options===void 0){options={}}const{buffer:buffer=.5,blockPointerEvents:blockPointerEvents=false,requireIntent:requireIntent=true}=options;let timeoutId2;let hasLanded=false;let lastX=null;let lastY=null;let lastCursorTime=performance.now();function getCursorSpeed(x,y){const currentTime=performance.now();const elapsedTime=currentTime-lastCursorTime;if(lastX===null||lastY===null||elapsedTime===0){lastX=x;lastY=y;lastCursorTime=currentTime;return null}const deltaX=x-lastX;const deltaY=y-lastY;const distance=Math.sqrt(deltaX*deltaX+deltaY*deltaY);const speed=distance/elapsedTime;lastX=x;lastY=y;lastCursorTime=currentTime;return speed}const fn=_ref=>{let{x:x,y:y,placement:placement,elements:elements,onClose:onClose,nodeId:nodeId,tree:tree}=_ref;return function onMouseMove(event){function close(){clearTimeout(timeoutId2);onClose()}clearTimeout(timeoutId2);if(!elements.domReference||!elements.floating||placement==null||x==null||y==null){return}const{clientX:clientX,clientY:clientY}=event;const clientPoint=[clientX,clientY];const target=getTarget(event);const isLeave=event.type==="mouseleave";const isOverFloatingEl=contains(elements.floating,target);const isOverReferenceEl=contains(elements.domReference,target);const refRect=elements.domReference.getBoundingClientRect();const rect=elements.floating.getBoundingClientRect();const side=placement.split("-")[0];const cursorLeaveFromRight=x>rect.right-rect.width/2;const cursorLeaveFromBottom=y>rect.bottom-rect.height/2;const isOverReferenceRect=isInside(clientPoint,refRect);const isFloatingWider=rect.width>refRect.width;const isFloatingTaller=rect.height>refRect.height;const left=(isFloatingWider?refRect:rect).left;const right=(isFloatingWider?refRect:rect).right;const top=(isFloatingTaller?refRect:rect).top;const bottom=(isFloatingTaller?refRect:rect).bottom;if(isOverFloatingEl){hasLanded=true;if(!isLeave){return}}if(isOverReferenceEl){hasLanded=false}if(isOverReferenceEl&&!isLeave){hasLanded=true;return}if(isLeave&&isElement(event.relatedTarget)&&contains(elements.floating,event.relatedTarget)){return}if(tree&&getChildren(tree.nodesRef.current,nodeId).some((_ref2=>{let{context:context}=_ref2;return context==null?void 0:context.open}))){return}if(side==="top"&&y>=refRect.bottom-1||side==="bottom"&&y<=refRect.top+1||side==="left"&&x>=refRect.right-1||side==="right"&&x<=refRect.left+1){return close()}let rectPoly=[];switch(side){case"top":rectPoly=[[left,refRect.top+1],[left,rect.bottom-1],[right,rect.bottom-1],[right,refRect.top+1]];break;case"bottom":rectPoly=[[left,rect.top+1],[left,refRect.bottom-1],[right,refRect.bottom-1],[right,rect.top+1]];break;case"left":rectPoly=[[rect.right-1,bottom],[rect.right-1,top],[refRect.left+1,top],[refRect.left+1,bottom]];break;case"right":rectPoly=[[refRect.right-1,bottom],[refRect.right-1,top],[rect.left+1,top],[rect.left+1,bottom]];break}function getPolygon(_ref3){let[x2,y2]=_ref3;switch(side){case"top":{const cursorPointOne=[isFloatingWider?x2+buffer/2:cursorLeaveFromRight?x2+buffer*4:x2-buffer*4,y2+buffer+1];const cursorPointTwo=[isFloatingWider?x2-buffer/2:cursorLeaveFromRight?x2+buffer*4:x2-buffer*4,y2+buffer+1];const commonPoints=[[rect.left,cursorLeaveFromRight?rect.bottom-buffer:isFloatingWider?rect.bottom-buffer:rect.top],[rect.right,cursorLeaveFromRight?isFloatingWider?rect.bottom-buffer:rect.top:rect.bottom-buffer]];return[cursorPointOne,cursorPointTwo,...commonPoints]}case"bottom":{const cursorPointOne=[isFloatingWider?x2+buffer/2:cursorLeaveFromRight?x2+buffer*4:x2-buffer*4,y2-buffer];const cursorPointTwo=[isFloatingWider?x2-buffer/2:cursorLeaveFromRight?x2+buffer*4:x2-buffer*4,y2-buffer];const commonPoints=[[rect.left,cursorLeaveFromRight?rect.top+buffer:isFloatingWider?rect.top+buffer:rect.bottom],[rect.right,cursorLeaveFromRight?isFloatingWider?rect.top+buffer:rect.bottom:rect.top+buffer]];return[cursorPointOne,cursorPointTwo,...commonPoints]}case"left":{const cursorPointOne=[x2+buffer+1,isFloatingTaller?y2+buffer/2:cursorLeaveFromBottom?y2+buffer*4:y2-buffer*4];const cursorPointTwo=[x2+buffer+1,isFloatingTaller?y2-buffer/2:cursorLeaveFromBottom?y2+buffer*4:y2-buffer*4];const commonPoints=[[cursorLeaveFromBottom?rect.right-buffer:isFloatingTaller?rect.right-buffer:rect.left,rect.top],[cursorLeaveFromBottom?isFloatingTaller?rect.right-buffer:rect.left:rect.right-buffer,rect.bottom]];return[...commonPoints,cursorPointOne,cursorPointTwo]}case"right":{const cursorPointOne=[x2-buffer,isFloatingTaller?y2+buffer/2:cursorLeaveFromBottom?y2+buffer*4:y2-buffer*4];const cursorPointTwo=[x2-buffer,isFloatingTaller?y2-buffer/2:cursorLeaveFromBottom?y2+buffer*4:y2-buffer*4];const commonPoints=[[cursorLeaveFromBottom?rect.left+buffer:isFloatingTaller?rect.left+buffer:rect.right,rect.top],[cursorLeaveFromBottom?isFloatingTaller?rect.left+buffer:rect.right:rect.left+buffer,rect.bottom]];return[cursorPointOne,cursorPointTwo,...commonPoints]}}}if(isPointInPolygon([clientX,clientY],rectPoly)){return}if(hasLanded&&!isOverReferenceRect){return close()}if(!isLeave&&requireIntent){const cursorSpeed=getCursorSpeed(event.clientX,event.clientY);const cursorSpeedThreshold=.1;if(cursorSpeed!==null&&cursorSpeed<cursorSpeedThreshold){return close()}}if(!isPointInPolygon([clientX,clientY],getPolygon([x,y]))){close()}else if(!hasLanded&&requireIntent){timeoutId2=window.setTimeout(close,40)}}};fn.__options={blockPointerEvents:blockPointerEvents};return fn}const TOOLTIP_BOUNDARY_PADDING=8;const Tooltip=forwardRef(((props,ref)=>{const{aria:aria={},className:className,children:children,useClickToOpen:useClickToOpen=false,data:data={},delay:delay=0,height:height,htmlOptions:htmlOptions={},icon:icon=null,interaction:interaction=false,maxHeight:maxHeight,maxWidth:maxWidth,minHeight:minHeight,minWidth:minWidth,placement:preferredPlacement="top",position:position="absolute",text:text,showTooltip:showTooltip=true,width:width,zIndex:zIndex,forceOpenTooltip:forceOpenTooltip=false,...rest}=props;const dataProps=buildDataProps(data);const ariaProps=buildAriaProps(aria);const htmlProps=buildHtmlProps(htmlOptions);const css=classnames(globalProps({...rest}),className);const[open,setOpen]=useState(false);const arrowRef=useRef(null);const{context:context,middlewareData:{arrow:{x:arrowX,y:arrowY}={}},placement:placement,refs:refs,strategy:strategy,x:x,y:y}=useFloating({strategy:position,whileElementsMounted:autoUpdate,middleware:[offset(10),flip({fallbackPlacements:["top","right","bottom","left"],fallbackStrategy:"initialPlacement",flipAlignment:false,padding:TOOLTIP_BOUNDARY_PADDING}),shift({padding:TOOLTIP_BOUNDARY_PADDING}),arrow({element:arrowRef,padding:TOOLTIP_BOUNDARY_PADDING})],open:open,onOpenChange(open2){if(!showTooltip){return}else{setOpen(open2)}},placement:preferredPlacement});const hover=useHover(context,{delay:delay,handleClose:interaction?safePolygon({blockPointerEvents:false}):null,enabled:!useClickToOpen});const click=useClick(context,{enabled:useClickToOpen});const{getFloatingProps:getFloatingProps,getReferenceProps:getReferenceProps}=useInteractions([hover,click]);const staticSide={bottom:"top",left:"right",right:"left",top:"bottom"}[placement.split("-")[0]];const arrowPlacementStyle=staticSide?{[staticSide]:"-5px"}:{};const tooltipSizing=()=>Object.assign({},height?{height:height}:{},maxHeight?{maxHeight:maxHeight}:{},maxWidth?{maxWidth:maxWidth}:{},minHeight?{minHeight:minHeight}:{},minWidth?{minWidth:minWidth}:{},width?{width:width}:{});return jsxs(Fragment,{children:[jsx("div",{...getReferenceProps({className:`pb_tooltip_kit ${css}`,ref:element=>{refs.setReference(element);if(ref){if(typeof ref==="function"){ref(element)}else if(typeof ref==="object"){ref.current=element}}},role:"tooltip_trigger",style:{display:"inline-block"},...ariaProps,...dataProps,...htmlProps}),children:children}),(open||forceOpenTooltip)&&jsx(FloatingPortal,{children:jsxs("div",{"data-placement":placement,...getFloatingProps({className:classnames(`tooltip_tooltip ${placement} visible`,{dark:rest.dark}),ref:refs.setFloating,role:"tooltip",style:{...tooltipSizing(),position:strategy,top:y??0,left:x??0,...zIndex?{zIndex:zIndex}:{}}}),children:[jsxs(Flex,{align:"center",gap:"xs",children:[icon&&jsx("i",{className:`pb_icon_kit`,children:jsx(Icon,{icon:icon})}),text]}),jsx("div",{className:"arrow_bg",ref:arrowRef,style:{position:"absolute",left:arrowX!=null?`${arrowX}px`:"",top:arrowY!=null?`${arrowY}px`:"",...arrowPlacementStyle}})]})})]})}));Tooltip.displayName="Tooltip";const Title=props=>{if(props.variant);const{aria:aria={},children:children,className:className,color:color,data:data={},htmlOptions:htmlOptions={},id:id,size:size=3,displaySize:displaySize=null,bold:bold=true,tag:tag="h3",text:text,variant:variant=null}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const isSizeNumberOrString=typeof size==="number"||typeof size==="string";const buildResponsiveSizeCss=()=>{const classes2=[];if(!isSizeNumberOrString){Object.entries(size).forEach((sizeObj=>{classes2.push(`pb_title_${sizeObj[0]}_${sizeObj[1]}`)}))}return classes2};const buildDisplaySize=()=>{if(displaySize){return[`pb_title_dynamic_${displaySize}`]}return[]};const titleClasses=["pb_title_kit"];if(isSizeNumberOrString){titleClasses.push(`pb_title_${size}`)}if(variant)titleClasses.push(`pb_title_${variant}`);if(color)titleClasses.push(`pb_title_${color}`);if(!bold)titleClasses.push("pb_title_thin");titleClasses.push(...buildDisplaySize());titleClasses.push(...buildResponsiveSizeCss());const classes=classnames(titleClasses.join(" "),globalProps(props),className);const Tag=`${tag}`;return jsx(Tag,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text||children})};const DialogContext=React__default.createContext(null);const Detail=props=>{const{aria:aria={},bold:bold=false,children:children,className:className,color:color="light",data:data={},htmlOptions:htmlOptions={},id:id="",tag:tag="div",text:text=""}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const isBold=bold?"bold":null;const classes=classnames(buildCss("pb_detail_kit",`color`,color),isBold,globalProps(props),className);const Tag=`${tag}`;return jsx(Tag,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text||children})};export{Body as B,Checkbox as C,Detail as D,Flex as F,Highlight as H,Icon as I,Tooltip as T,Caption as a,Card as b,Draggable as c,DialogContext as d,Title as e,CircleIconButton as f,Button as g,DraggableProvider as h,DraggableContext as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx}from"react/jsx-runtime";import{useMemo}from"react";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,d as classnames,e as buildCss,g as globalProps}from"./globalProps-
|
|
1
|
+
import{jsx}from"react/jsx-runtime";import{useMemo}from"react";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,d as classnames,e as buildCss,g as globalProps}from"./globalProps-zGbN4oBH.js";import Highcharts from"highcharts";import HighchartsReact from"highcharts-react-official";import{t as typography,c as colors}from"./lib-LNv9xZ-1.js";import highchartsMore from"highcharts/highcharts-more";import solidGauge from"highcharts/modules/solid-gauge";const barGraphTheme={title:{text:"",style:{color:colors.text_lt_default,fontFamily:typography.font_family_base,fontWeight:typography.bold,fontSize:typography.heading_3}},subtitle:{text:"",style:{fontFamily:typography.font_family_base,color:colors.text_lt_light,fontWeight:typography.regular,fontSize:typography.text_base}},chart:{type:"column"},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,colors.bg_dark],[1,colors.bg_dark]]},style:{fontFamily:typography.font_family_base,color:colors.text_dk_default,fontWeight:typography.regular,fontSize:typography.text_smaller}},colors:[colors.data_1,colors.data_2,colors.data_3,colors.data_4,colors.data_5,colors.data_6,colors.data_7],credits:{enabled:false},legend:{enabled:false,itemStyle:{color:colors.text_lt_light,fill:colors.text_lt_light,fontSize:typography.text_smaller}},xAxis:{gridLineWidth:0,lineColor:colors.border_light,tickColor:colors.border_light,labels:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}},title:{style:{color:colors.text_lt_default,fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_4}}},yAxis:{alternateGridColor:void 0,minorTickInterval:null,gridLineColor:colors.border_light,minorGridLineColor:colors.border_light,lineWidth:0,tickWidth:0,labels:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}},title:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}}}};const PbBarGraph=props=>{const{aria:aria={},data:data={},id:id,htmlOptions:htmlOptions={},options:options,className:className}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_pb_bar_graph"),globalProps(props),className);const mergedOptions=useMemo((()=>{if(!options||typeof options!=="object"){console.error("❌ Invalid options passed to <PbBarGraph />",options);return{}}return Highcharts.merge({},barGraphTheme,options)}),[options]);return jsx("div",{children:jsx(HighchartsReact,{containerProps:{className:classnames(classes),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:mergedOptions})})};const pbCircleChartTheme={title:{text:"",style:{color:colors.text_lt_default,fontFamily:typography.font_family_base,fontWeight:typography.bold,fontSize:typography.heading_3}},chart:{type:"pie"},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,colors.bg_dark],[1,colors.bg_dark]]},pointFormat:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',followPointer:true,shadow:false,borderWidth:0,borderRadius:10,style:{fontFamily:typography.font_family_base,color:colors.text_dk_default,fontWeight:typography.regular,fontSize:typography.text_smaller}},plotOptions:{pie:{dataLabels:{enabled:false,connectorShape:"straight",connectorWidth:3,format:"<div>{point.name}</div>",style:{fontFamily:typography.font_family_base,fontSize:typography.text_smaller,color:colors.text_lt_light,fontWeight:typography.regular,textOutline:"2px $white"}},innerSize:"50%",borderColor:"",borderWidth:null,colors:[colors.data_1,colors.data_2,colors.data_3,colors.data_4,colors.data_5,colors.data_6,colors.data_7]}},legend:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemStyle:{fontFamily:typography.font_family_base,color:colors.text_lt_light,fontWeight:typography.regular,fontSize:typography.text_smaller},itemHoverStyle:{color:colors.text_lt_default},itemHiddenStyle:{color:colors.text_lt_lighter}},credits:{enabled:false}};const PbCircleChart=props=>{const{aria:aria={},className:className,data:data={},id:id,htmlOptions:htmlOptions={},options:options}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_pb_circle_chart"),globalProps(props),className);const mergedOptions=useMemo((()=>{if(!options||typeof options!=="object"){console.error("❌ Invalid options passed to <PbCircleChart />",options);return{}}return Highcharts.merge({},pbCircleChartTheme,options)}),[options]);return jsx("div",{children:jsx(HighchartsReact,{containerProps:{className:classnames(classes),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:mergedOptions})})};const pbGaugeGraphTheme={title:{text:"",style:{fontFamily:typography.font_family_base,fontSize:typography.text_larger}},chart:{type:"solidgauge",events:{render(){this.container;const arc=this.container.querySelector("path.gauge-pane");if(arc)arc.setAttribute("stroke-linejoin","round")}}},pane:{size:"90%",startAngle:-100,endAngle:100,background:[{borderWidth:20,innerRadius:"90%",outerRadius:"90%",shape:"arc",className:"gauge-pane",borderColor:colors.border_light,borderRadius:"50%"}]},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,colors.bg_dark],[1,colors.bg_dark]]},pointFormat:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',followPointer:true,shadow:false,borderWidth:0,borderRadius:10,style:{fontFamily:typography.font_family_base,color:colors.text_dk_default,fontWeight:typography.regular,fontSize:typography.text_smaller}},yAxis:{min:0,max:100,lineWidth:0,tickPositions:[]},plotOptions:{solidgauge:{borderColor:colors.data_1,borderWidth:20,color:colors.data_1,radius:90,innerRadius:"90%",y:-26,dataLabels:{borderWidth:0,color:colors.text_lt_default,enabled:true,format:'<span class="fix">{y:,f}</span>',style:{fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_2},y:-26}}},credits:{enabled:false}};const PbGaugeChart=props=>{const{aria:aria={},className:className,data:data={},htmlOptions:htmlOptions={},id:id,ref:ref,options:options={}}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_pb_gauge_chart"),globalProps(props),className);const mergedOptions=useMemo((()=>{if(!options||typeof options!=="object"){console.error("❌ Invalid options passed to <PbLineGraph />",options);return{}}return Highcharts.merge({},pbGaugeGraphTheme,options)}),[options]);highchartsMore(Highcharts);solidGauge(Highcharts);return jsx("div",{children:jsx(HighchartsReact,{containerProps:{className:classnames(classes),id:id,ref:ref,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:mergedOptions})})};const pbLineGraphTheme={title:{text:"",style:{color:colors.text_lt_default,fontFamily:typography.font_family_base,fontWeight:typography.bold,fontSize:typography.heading_3}},subtitle:{text:"",style:{fontFamily:typography.font_family_base,color:colors.text_lt_light,fontWeight:typography.regular,fontSize:typography.text_base}},chart:{type:"line"},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,colors.bg_dark],[1,colors.bg_dark]]},followPointer:true,shadow:false,borderWidth:0,borderRadius:10,style:{fontFamily:typography.font_family_base,color:colors.text_dk_default,fontWeight:typography.regular,fontSize:typography.text_smaller}},plotOptions:{line:{dataLabels:{enabled:false}}},credits:{enabled:false},legend:{enabled:false,itemStyle:{fontFamily:typography.font_family_base,color:colors.text_lt_light,fontWeight:typography.regular,fontSize:typography.text_smaller},itemHoverStyle:{color:colors.text_lt_default},itemHiddenStyle:{color:colors.text_lt_lighter}},colors:[colors.data_1,colors.data_2,colors.data_3,colors.data_4,colors.data_5,colors.data_6,colors.data_7],xAxis:{gridLineWidth:0,lineColor:colors.border_light,tickColor:colors.border_light,labels:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}},title:{style:{color:colors.text_lt_default,fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_4}}},yAxis:{alternateGridColor:void 0,minorTickInterval:null,gridLineColor:colors.border_light,minorGridLineColor:colors.border_light,lineWidth:0,tickWidth:0,tickPixelInterval:50,labels:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}},title:{style:{fontFamily:typography.font_family_base,color:colors.text_lt_lighter,fontWeight:typography.bold,fontSize:typography.text_smaller}}}};const PbLineGraph=props=>{const{aria:aria={},className:className,data:data={},id:id,htmlOptions:htmlOptions={},options:options}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames(buildCss("pb_pb_line_graph"),globalProps(props),className);const mergedOptions=useMemo((()=>{if(!options||typeof options!=="object"){console.error("❌ Invalid options passed to <PbLineGraph />",options);return{}}return Highcharts.merge({},pbLineGraphTheme,options)}),[options]);return jsx("div",{children:jsx(HighchartsReact,{containerProps:{className:classnames(classes),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:mergedOptions})})};export{PbBarGraph as P,PbCircleChart as a,PbGaugeChart as b,PbLineGraph as c};
|