@primereact/core 11.0.0-alpha.9 → 11.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +45 -0
- package/README.md +43 -0
- package/base/index.d.mts +1 -1
- package/base/index.mjs +1 -1
- package/base/index.mjs.map +1 -1
- package/component/index.d.mts +11 -9
- package/component/index.mjs +1 -1
- package/component/index.mjs.map +1 -1
- package/config/index.mjs +1 -1
- package/config/index.mjs.map +1 -1
- package/dnd/index.d.mts +69 -0
- package/dnd/index.mjs +2 -0
- package/dnd/index.mjs.map +1 -0
- package/headless/index.d.mts +1 -1
- package/headless/index.mjs +1 -1
- package/headless/index.mjs.map +1 -1
- package/icon/index.d.mts +3 -3
- package/icon/index.mjs +1 -46
- package/icon/index.mjs.map +1 -1
- package/index.d.mts +3 -0
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/license/index.d.mts +22 -0
- package/license/index.mjs +2 -0
- package/license/index.mjs.map +1 -0
- package/locale/index.mjs +1 -1
- package/locale/index.mjs.map +1 -1
- package/motion/index.d.mts +24 -10
- package/motion/index.mjs +1 -1
- package/motion/index.mjs.map +1 -1
- package/overlay-manager/index.d.mts +84 -0
- package/overlay-manager/index.mjs +2 -0
- package/overlay-manager/index.mjs.map +1 -0
- package/package.json +13 -15
- package/passthrough/index.mjs +1 -1
- package/passthrough/index.mjs.map +1 -1
- package/theme/index.mjs +1 -1
- package/theme/index.mjs.map +1 -1
- package/umd/index.js +7 -212
- package/umd/index.js.map +1 -1
- package/use-style/index.mjs +1 -1
- package/use-style/index.mjs.map +1 -1
- package/utils/index.d.mts +73 -4
- package/utils/index.mjs +1 -1
- package/utils/index.mjs.map +1 -1
- package/LICENSE +0 -21
package/umd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js","../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js","../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/index.js","../../src/index.ts","../../src/api/FilterMatchMode.ts","../../src/api/FilterOperator.ts","../../../hooks/src/use-attr-selector/index.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/classnames/index.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/hasClass.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/addClass.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/calculateBodyScrollbarWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/helpers/blockBodyScroll.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/helpers/saveAs.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/helpers/exportCSV.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/removeClass.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/helpers/unblockBodyScroll.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getCSSVariableByRegex.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementDimensions.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getViewport.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getScrollLeft.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getWindowScrollLeft.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getWindowScrollTop.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isRTL.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/absolutePosition.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/addStyle.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getOuterWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/relativePosition.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/alignOverlay.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getParentNode.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isExist.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/toElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getTargetElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/appendChild.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/calculateScrollbarHeight.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/calculateScrollbarWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/clearSelection.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/setAttributes.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/createElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/createStyleMarkup.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/createStyleAsString.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/createStyleElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/createStyleTag.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/fadeIn.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/fadeOut.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/find.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/findSingle.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/focus.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getAttribute.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/resolveUserAgent.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getBrowser.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getBrowserLanguage.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getCSSProperty.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getCursorOffset.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getFocusableElements.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getFirstFocusableElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getHeight.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementOuterHeight.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementOuterWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getIndex.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getInnerWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getLastFocusableElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getNextElementSibling.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getNextFocusableElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getOffset.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getOuterHeight.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getParents.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getPreviousElementSibling.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getScrollableParents.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getSelection.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getUserAgent.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/getWidth.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/hasCSSAnimation.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/hasCSSTransition.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/invokeElementMethod.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isAndroid.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isAttributeEquals.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isAttributeNotEquals.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isClickable.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isClient.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isFocusableElement.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isVisible.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isHidden.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isIOS.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isPrefersReducedMotion.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isServer.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/isTouchDevice.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/nestedPosition.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/nextFrame.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/remove.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/removeChild.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/removeStyleTag.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/scrollInView.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/setAttribute.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/dom/methods/setCSSProperty.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/eventbus/index.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/classnames/index.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isFunction.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/mergeprops/index.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isEmpty.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/compare.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/deepEquals.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isFunction.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isNotEmpty.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/resolveFieldData.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/equals.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/contains.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isObject.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/deepMerge.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/filter.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/findIndexInList.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/findLast.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/findLastIndex.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/resolve.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isString.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toFlatCase.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/getKeyValue.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/insertIntoOrderedArray.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isArray.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isDate.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isLetter.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isNumber.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isPrintableCharacter.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/isScalar.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/localeComparator.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/matchRegex.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/mergeKeys.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/minifyCSS.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/nestedKeys.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/omit.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/removeAccents.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/reorderArray.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/shallowEqualProps.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/shallowEquals.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/sort.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/stringify.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toCamelCase.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toCapitalCase.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toKebabCase.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toMs.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toTokenKey.ts","../../../../node_modules/.pnpm/@primeuix+utils@0.6.3/node_modules/@primeuix/utils/src/object/methods/toValue.ts","../../../hooks/src/use-controlled-state/index.ts","../../../hooks/src/use-event-listener/index.ts","../../../hooks/src/use-previous/index.ts","../../../hooks/src/use-hot-key/index.ts","../../../hooks/src/use-id/index.ts","../../../hooks/src/use-mask/index.ts","../../../hooks/src/use-match-media/index.ts","../../../hooks/src/use-mount-effect/index.ts","../../../hooks/src/use-presence/index.ts","../../../hooks/src/use-props/index.ts","../../../hooks/src/use-queue-task/index.ts","../../../hooks/src/use-scrolltop/index.ts","../../../hooks/src/use-unmount-effect/index.ts","../../../hooks/src/use-update-effect/index.ts","../../../hooks/src/use-view-transition/index.ts","../../../hooks/src/use-visibility-change/index.ts","../../src/locale/Locale.context.tsx","../../src/locale/Locale.props.ts","../../src/locale/useLocale.ts","../../src/passthrough/PassThrough.context.tsx","../../src/passthrough/PassThrough.props.ts","../../src/passthrough/usePassThrough.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/definePreset.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/updatePreset.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/service/index.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/utils/sharedUtils.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/utils/themeUtils.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/color/mix.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/color/palette.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/color/shade.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/color/tint.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/css.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/dt.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/t.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/helpers/toVariables.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/config/index.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/updatePrimaryPalette.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/updateSurfacePalette.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/usePreset.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/actions/useTheme.ts","../../../../node_modules/.pnpm/@primeuix+styled@0.7.4/node_modules/@primeuix/styled/src/stylesheet/index.ts","../../src/theme/Theme.context.tsx","../../src/theme/Theme.props.ts","../../src/theme/useTheme.ts","../../src/config/PrimeReact.context.tsx","../../src/config/PrimeReact.props.ts","../../src/config/usePrimeReact.ts","../../src/utils/combinedRefs.ts","../../src/utils/ConnectedOverlayScrollHandler.ts","../../src/utils/createContext.tsx","../../src/utils/styleRegistry.ts","../../src/utils/index.ts","../../src/base/useBase.ts","../../src/component/Component.tsx","../../src/component/Component.props.ts","../../src/component/useComponent.ts","../../src/component/useComponentPT.ts","../../src/component/useComponentStyle.ts","../../src/use-style/useStyle.ts","../../src/use-style/useStyle.props.ts","../../src/component/useComponentStyleHandler.ts","../../src/component/withComponent.tsx","../../src/headless/useHeadless.ts","../../src/headless/withHeadless.ts","../../src/icon/Icon.tsx","../../src/icon/Icon.props.ts","../../src/icon/Icon.style.ts","../../src/icon/withIcon.tsx","../../src/icon/useIcon.ts","../../../styles/src/base/Base.style.ts","../../../primereact/src/base/index.ts","../../src/motion/Motion.tsx","../../src/motion/Motion.context.ts","../../src/motion/useMotion.props.ts","../../src/motion/Motion.props.ts","../../../../node_modules/.pnpm/@primeuix+motion@0.0.10/node_modules/@primeuix/motion/src/config/index.ts","../../../../node_modules/.pnpm/@primeuix+motion@0.0.10/node_modules/@primeuix/motion/src/utils/index.ts","../../src/motion/useMotion.ts","../../src/stylesheet/PrimeReactStyleSheet.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.3\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.3\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/***************** PrimeReact Core (Auto-Generated) *****************/\n\nexport * from '@primereact/core/api';\nexport * from '@primereact/core/base';\nexport * from '@primereact/core/component';\nexport * from '@primereact/core/config';\nexport * from '@primereact/core/headless';\nexport * from '@primereact/core/icon';\nexport * from '@primereact/core/locale';\nexport * from '@primereact/core/motion';\nexport * from '@primereact/core/passthrough';\nexport * from '@primereact/core/stylesheet';\nexport * from '@primereact/core/theme';\nexport * from '@primereact/core/use-style';\nexport * from '@primereact/core/utils';\n","export const FilterMatchMode = Object.freeze({\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter',\n CUSTOM: 'custom'\n} as const);\n\nexport declare type FilterMatchModeType = (typeof FilterMatchMode)[keyof typeof FilterMatchMode];\n","export const FilterOperator = Object.freeze({ AND: 'and', OR: 'or' });\n\nexport declare type FilterOperatorType = (typeof FilterOperator)[keyof typeof FilterOperator];\n","import * as React from 'react';\n\n/**\n * Generates a unique attribute selector based on the provided prefix.\n *\n * @param prefix - The prefix to prepend to the generated selector.\n * @returns A unique string combining the prefix and the selector.\n *\n * @example\n * ```ts\n * const selector = useAttrSelector('foo');\n * console.log(selector); // e.g., 'foo0'\n * ```\n */\nexport function useAttrSelector(prefix: string = ''): string {\n const id = React.useId();\n\n return React.useMemo(() => `${prefix}${id.replaceAll(/:|«|»/g, '')}`.trim().toLowerCase(), [id, prefix]);\n}\n","export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n","export default function hasClass(element: Element, className: string): boolean {\n if (element) {\n if (element.classList) return element.classList.contains(className);\n else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n\n return false;\n}\n","import hasClass from './hasClass';\n\nexport default function addClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (!hasClass(element, _className)) {\n if (element.classList) element.classList.add(_className);\n else element.className += ' ' + _className;\n }\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","export default function calculateBodyScrollbarWidth(): number {\n return window.innerWidth - document.documentElement.offsetWidth;\n}\n","import addClass from '../methods/addClass';\nimport calculateBodyScrollbarWidth from '../methods/calculateBodyScrollbarWidth';\n\nexport interface BlockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function blockBodyScroll(option: string | BlockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n addClass(document.body, option || 'p-overflow-hidden');\n } else {\n option?.variableName && document.body.style.setProperty(option.variableName, calculateBodyScrollbarWidth() + 'px');\n addClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function saveAs(file: { name: string; src: string }): boolean {\n if (file) {\n const link = document.createElement('a');\n\n if (link.download !== undefined) {\n const { name, src } = file;\n\n link.setAttribute('href', src);\n link.setAttribute('download', name);\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n return true;\n }\n }\n\n return false;\n}\n","import saveAs from './saveAs';\n\nexport default function exportCSV(csv: any, filename: string): void {\n const blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if ((window.navigator as any).msSaveOrOpenBlob) {\n (navigator as any).msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n const isDownloaded = saveAs({ name: filename + '.csv', src: URL.createObjectURL(blob) });\n\n if (!isDownloaded) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n}\n","export default function removeClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (element.classList) element.classList.remove(_className);\n else element.className = element.className.replace(new RegExp('(^|\\\\b)' + _className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","import removeClass from '../methods/removeClass';\n\nexport interface UnblockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function unblockBodyScroll(option: string | UnblockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n removeClass(document.body, option || 'p-overflow-hidden');\n } else {\n if (option?.variableName) document.body.style.removeProperty(option.variableName);\n removeClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function getCSSVariableByRegex(variableRegex: RegExp): { name: string | undefined; value: string | undefined } | null {\n for (const sheet of document?.styleSheets) {\n try {\n for (const rule of sheet?.cssRules) {\n for (const property of (rule as CSSStyleRule)?.style) {\n if (variableRegex.test(property)) {\n return { name: property, value: (rule as CSSStyleRule).style.getPropertyValue(property).trim() };\n }\n }\n }\n } catch {}\n }\n\n return null;\n}\n","export default function getHiddenElementDimensions(element?: HTMLElement): { width: number; height: number } {\n const dimensions: { width: number; height: number } = { width: 0, height: 0 };\n\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n const rect = element.getBoundingClientRect();\n\n // Temporarily hide the element to get its dimensions\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = rect.width || element.offsetWidth;\n dimensions.height = rect.height || element.offsetHeight;\n element.style.display = display;\n element.style.visibility = visibility;\n }\n\n return dimensions;\n}\n","export default function getViewport(): { width: number; height: number } {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n}\n","export default function getScrollLeft(element?: HTMLElement): number {\n // for RTL scrollLeft should be negative\n return element ? Math.abs(element.scrollLeft) : 0;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getWindowScrollLeft(): number {\n const doc = document.documentElement;\n\n return (window.pageXOffset || getScrollLeft(doc)) - (doc.clientLeft || 0);\n}\n","export default function getWindowScrollTop(): number {\n const doc = document.documentElement;\n\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n}\n","export default function isRTL(element?: HTMLElement): boolean {\n return element ? getComputedStyle(element).direction === 'rtl' : false;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\nimport getWindowScrollLeft from './getWindowScrollLeft';\nimport getWindowScrollTop from './getWindowScrollTop';\nimport isRTL from './isRTL';\n\nexport default function absolutePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const elementOuterHeight = elementDimensions.height;\n const elementOuterWidth = elementDimensions.width;\n const targetOuterHeight = target.offsetHeight;\n const targetOuterWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = getWindowScrollTop();\n const windowScrollLeft = getWindowScrollLeft();\n const viewport = getViewport();\n let top,\n left,\n origin = 'top';\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n origin = 'bottom';\n\n if (top < 0) {\n top = windowScrollTop;\n }\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n }\n\n if (targetOffset.left + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else left = targetOffset.left + windowScrollLeft;\n\n if (isRTL(element)) {\n element.style.insetInlineEnd = left + 'px';\n } else {\n element.style.insetInlineStart = left + 'px';\n }\n\n element.style.top = top + 'px';\n element.style.transformOrigin = origin;\n if (gutter) element.style.marginTop = origin === 'bottom' ? `calc(${getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '2px'} * -1)` : (getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '');\n }\n}\n","export default function addStyle(element: HTMLElement, style: string | object): void {\n if (element) {\n if (typeof style === 'string') {\n element.style.cssText = style;\n } else {\n Object.entries(style || {}).forEach(([key, value]: [string, string]) => ((element.style as any)[key] = value));\n }\n }\n}\n","export default function getOuterWidth(element: unknown, margin?: boolean): number {\n if (element instanceof HTMLElement) {\n let width = element.offsetWidth;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\n\nexport default function relativePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true, fixedOrigin: 'top' | 'bottom' | undefined = undefined): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const viewport = getViewport();\n let top,\n left,\n origin = fixedOrigin ?? 'top';\n\n if (!fixedOrigin && targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n origin = 'bottom';\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n } else {\n top = targetHeight;\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.insetInlineStart = left + 'px';\n element.style.transformOrigin = origin;\n\n if (gutter) {\n const gutterValue = getCSSVariableByRegex(/-anchor-gutter$/)?.value;\n\n element.style.marginTop = origin === 'bottom' ? `calc(${gutterValue ?? '2px'} * -1)` : (gutterValue ?? '');\n }\n }\n}\n","import absolutePosition from './absolutePosition';\nimport getOuterWidth from './getOuterWidth';\nimport relativePosition from './relativePosition';\n\nexport default function alignOverlay(overlay: HTMLElement, target: HTMLElement, appendTo: string, calculateMinWidth: boolean = true) {\n if (overlay && target) {\n if (appendTo === 'self') {\n relativePosition(overlay, target);\n } else {\n if (calculateMinWidth) overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(overlay, target);\n }\n }\n}\n","export default function getParentNode(element: Node): ParentNode | null {\n if (element) {\n let parent = element.parentNode;\n\n if (parent && parent instanceof ShadowRoot && parent.host) {\n parent = parent.host;\n }\n\n return parent;\n }\n\n return null;\n}\n","import getParentNode from './getParentNode';\n\nexport default function isExist(element: Node): boolean {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && getParentNode(element));\n}\n","export default function isElement(element: unknown): element is Element {\n return typeof Element !== 'undefined' ? element instanceof Element : element !== null && typeof element === 'object' && (element as Element).nodeType === 1 && typeof (element as Element).nodeName === 'string';\n}\n","import isElement from './isElement';\n\ntype ReactElement = { current: Element | null | undefined };\ntype VueElement = { el: Element | null | undefined };\ntype AngularElement = { el: { nativeElement: Element | undefined } };\n\nexport default function toElement(element: unknown): Element | null | undefined {\n let target = element;\n\n if (element && typeof element === 'object') {\n if (Object.hasOwn(element, 'current')) {\n // For React\n target = (element as ReactElement).current;\n } else if (Object.hasOwn(element, 'el')) {\n if (Object.hasOwn((element as AngularElement).el, 'nativeElement')) {\n // For Angular\n target = (element as AngularElement).el.nativeElement;\n } else {\n // For Vue\n target = (element as VueElement).el;\n }\n }\n }\n\n return isElement(target) ? target : undefined;\n}\n","import isExist from './isExist';\nimport toElement from './toElement';\n\nexport default function getTargetElement(target: unknown, currentElement?: Element): Window | Document | Element | null | undefined {\n if (!target) return undefined;\n\n switch (target) {\n case 'document':\n return document;\n case 'window':\n return window;\n case 'body':\n return document.body;\n case '@next':\n return currentElement?.nextElementSibling;\n case '@prev':\n return currentElement?.previousElementSibling;\n case '@first':\n return currentElement?.firstElementChild;\n case '@last':\n return currentElement?.lastElementChild;\n case '@child':\n return currentElement?.children?.[0];\n case '@parent':\n return currentElement?.parentElement;\n case '@grandparent':\n return currentElement?.parentElement?.parentElement;\n\n default: {\n if (typeof target === 'string') {\n // child selector\n const match = target.match(/^@child\\[(\\d+)]/);\n\n if (match) {\n return currentElement?.children?.[parseInt(match[1], 10)] || null;\n }\n\n return document.querySelector(target) || null;\n }\n\n const isFunction = (value: unknown): value is (...args: unknown[]) => unknown => typeof value === 'function' && 'call' in value && 'apply' in value;\n const computedTarget = isFunction(target) ? target() : target;\n const element = toElement(computedTarget);\n\n return isExist(element as Element) ? (element as Element) : (computedTarget as Document)?.nodeType === 9 ? (computedTarget as Document) : undefined;\n }\n }\n}\n","import getTargetElement from './getTargetElement';\n\nexport default function appendChild(element: unknown, child: Node | Element) {\n const target: Document | Element | null | undefined = getTargetElement(element, child as Element) as Exclude<ReturnType<typeof getTargetElement>, Window>;\n\n if (target) target.appendChild(child);\n else throw new Error('Cannot append ' + child + ' to ' + element);\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarHeight: number | undefined = undefined;\n\nexport default function calculateScrollbarHeight(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetHeight - element.clientHeight - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth);\n } else {\n if (calculatedScrollbarHeight != null) return calculatedScrollbarHeight;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarHeight = scrollbarHeight;\n\n return scrollbarHeight;\n }\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarWidth: number | undefined = undefined;\n\nexport default function calculateScrollbarWidth(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetWidth - element.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (calculatedScrollbarWidth != null) return calculatedScrollbarWidth;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarWidth = scrollbarWidth;\n\n return scrollbarWidth;\n }\n}\n","export default function clearSelection(): void {\n if (window.getSelection) {\n const selection: any = window.getSelection() || {};\n\n if (selection.empty) {\n selection.empty();\n } else if (selection.removeAllRanges && selection.rangeCount > 0 && selection.getRangeAt(0).getClientRects().length > 0) {\n selection.removeAllRanges();\n }\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttributes(element: HTMLElement, attributes: { [key: string]: any } = {}): void {\n if (isElement(element)) {\n const computedStyles = (rule: string, value: any): string[] => {\n const styles = (element as any)?.$attrs?.[rule] ? [(element as any)?.$attrs?.[rule]] : [];\n\n return [value].flat().reduce((cv, v) => {\n if (v !== null && v !== undefined) {\n const type = typeof v;\n\n if (type === 'string' || type === 'number') {\n cv.push(v);\n } else if (type === 'object') {\n const _cv = Array.isArray(v) ? computedStyles(rule, v) : Object.entries(v).map(([_k, _v]) => (rule === 'style' && (!!_v || _v === 0) ? `${_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}:${_v}` : _v ? _k : undefined));\n\n cv = _cv.length ? cv.concat(_cv.filter((c) => !!c)) : cv;\n }\n }\n\n return cv;\n }, styles);\n };\n\n Object.entries(attributes).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n const matchedEvent = key.match(/^on(.+)/);\n\n if (matchedEvent) {\n element.addEventListener(matchedEvent[1].toLowerCase(), value);\n } else if (key === 'p-bind' || key === 'pBind') {\n setAttributes(element, value);\n } else {\n value = key === 'class' ? [...new Set(computedStyles('class', value))].join(' ').trim() : key === 'style' ? computedStyles('style', value).join(';').trim() : value;\n ((element as any).$attrs = (element as any).$attrs || {}) && ((element as any).$attrs[key] = value);\n element.setAttribute(key, value);\n }\n }\n });\n }\n}\n","import setAttributes from './setAttributes';\n\nexport default function createElement(type: string, attributes: Record<string, unknown> = {}, ...children: (string | Node)[]): HTMLElement | undefined {\n if (type) {\n const element = document.createElement(type);\n\n setAttributes(element, attributes);\n element.append(...children);\n\n return element;\n }\n\n return undefined;\n}\n","export default function createStyleMarkup(css?: string, attributes: Record<string, unknown> = {}): string {\n return css ? `<style${Object.entries(attributes).reduce((s, [k, v]) => s + ` ${k}=\"${v}\"`, '')}>${css}</style>` : '';\n}\n","import createStyleMarkup from './createStyleMarkup';\n\n/**\n * @deprecated Use `createStyleMarkup` instead.\n */\nexport default function createStyleAsString(css?: string, options: Record<string, unknown> = {}) {\n return createStyleMarkup(css, options);\n}\n","import createElement from './createElement';\n\nexport default function createStyleElement(css: string, attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n const element = createElement('style', attributes, css)! as HTMLStyleElement;\n\n container?.appendChild(element);\n\n return element;\n}\n","import createStyleElement from './createStyleElement';\n\n/**\n * @deprecated Use `createStyleElement` instead.\n */\nexport default function createStyleTag(attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n return createStyleElement('', attributes, container || document.head);\n}\n","export default function fadeIn(element: HTMLElement, duration: number): void {\n if (element) {\n element.style.opacity = '0';\n\n let last = +new Date();\n let opacity = '0';\n\n const tick = function () {\n opacity = `${+element.style.opacity + (new Date().getTime() - last) / duration}`;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n if ('requestAnimationFrame' in window) requestAnimationFrame(tick);\n else setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n}\n","export default function fadeOut(element: HTMLElement, duration: number): void {\n if (element) {\n let opacity = 1;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(() => {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity.toString();\n }, interval);\n }\n}\n","import isElement from './isElement';\n\nexport default function find(element: Element, selector: string): Element[] {\n return isElement(element) ? Array.from(element.querySelectorAll(selector)) : [];\n}\n","import isElement from './isElement';\n\nexport default function findSingle(element: Element, selector: string): Element | null {\n return isElement(element) ? (element.matches(selector) ? element : element.querySelector(selector)) : null;\n}\n","export default function focus(element: HTMLElement, options?: FocusOptions): void {\n if (element && document.activeElement !== element) element.focus(options);\n}\n","import isElement from './isElement';\n\nexport default function getAttribute(element: Element, name: string): any {\n if (isElement(element)) {\n const value = element.getAttribute(name);\n\n if (!isNaN(value as any)) {\n return +(value as string);\n }\n\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n\n return value;\n }\n\n return undefined;\n}\n","export default function resolveUserAgent(): { browser: string | undefined; version: string | undefined } {\n const ua = navigator.userAgent.toLowerCase();\n const match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || (ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) || [];\n\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n}\n","import resolveUserAgent from './resolveUserAgent';\n\ntype BrowserType = {\n [key: string]: string | boolean | undefined;\n};\n\nlet browser: BrowserType | null = null;\n\nexport default function getBrowser(): BrowserType {\n if (!browser) {\n browser = {};\n\n const matched = resolveUserAgent();\n\n if (matched.browser) {\n browser[matched.browser] = true;\n browser['version'] = matched.version;\n }\n\n if (browser['chrome']) {\n browser['webkit'] = true;\n } else if (browser['webkit']) {\n browser['safari'] = true;\n }\n }\n\n return browser;\n}\n","export default function getBrowserLanguage(): string {\n return (navigator.languages && navigator.languages.length && navigator.languages[0]) || navigator.language || 'en';\n}\n","export default function getCSSProperty(element?: HTMLElement, property?: string, inline?: boolean): string | null {\n if (element && property) {\n return inline ? element?.style?.getPropertyValue(property) : getComputedStyle(element).getPropertyValue(property);\n }\n\n return null;\n}\n","export default function getCursorOffset(element: Element, prevText: string, nextText: string, currentText: string): { top: number | string; left: number | string } {\n if (element) {\n const style = getComputedStyle(element);\n const ghostDiv = document.createElement('div');\n\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '<br />');\n\n const ghostSpan = document.createElement('span');\n\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n\n const text = document.createTextNode(nextText);\n\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n\n const { offsetLeft, offsetTop, clientHeight } = ghostSpan;\n\n document.body.removeChild(ghostDiv);\n\n return {\n left: Math.abs(offsetLeft - element.scrollLeft),\n top: Math.abs(offsetTop - element.scrollTop) + clientHeight\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","import find from './find';\n\nexport default function getFocusableElements(element: Element, selector: string = ''): Element[] {\n const focusableElements = find(\n element,\n `button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href]:not([tabindex = \"-1\"]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`\n );\n\n const visibleFocusableElements: Element[] = [];\n\n for (const focusableElement of focusableElements) {\n if (getComputedStyle(focusableElement).display != 'none' && getComputedStyle(focusableElement).visibility != 'hidden') visibleFocusableElements.push(focusableElement);\n }\n\n return visibleFocusableElements;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getFirstFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[0] : null;\n}\n","export default function getHeight(element: HTMLElement): number {\n if (element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\n return height;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterHeight(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer height\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementHeight = element.offsetHeight;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementHeight;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterWidth(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer width\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementWidth = element.offsetWidth;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementWidth;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getIndex(element: HTMLElement): number {\n if (element) {\n const children = getParentNode(element)?.childNodes;\n let num = 0;\n\n if (children) {\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n }\n\n return -1;\n}\n","export default function getInnerWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.borderLeft) + parseFloat(style.borderRight);\n\n return width;\n }\n\n return 0;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getLastFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n}\n","export default function getNextElementSibling(element: Element, selector: string): Element | null {\n let nextElement = element.nextElementSibling;\n\n while (nextElement) {\n if (nextElement.matches(selector)) {\n return nextElement;\n } else {\n nextElement = nextElement.nextElementSibling;\n }\n }\n\n return null;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getNextFocusableElement(container: Element, element: Element, selector?: string): Element | null {\n const focusableElements: Element[] = getFocusableElements(container, selector);\n const index = focusableElements.length > 0 ? focusableElements.findIndex((el) => el === element) : -1;\n const nextIndex = index > -1 && focusableElements.length >= index + 1 ? index + 1 : -1;\n\n return nextIndex > -1 ? focusableElements[nextIndex] : null;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getOffset(element?: Element | null): { top: number | string; left: number | string } {\n if (element) {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || getScrollLeft(document.documentElement) || getScrollLeft(document.body) || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","export default function getOuterHeight(element: HTMLElement, margin?: boolean): number {\n if (element) {\n let height = element.offsetHeight;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getParents(element: Node, parents: ParentNode[] = []): ParentNode[] {\n const parent = getParentNode(element);\n\n return parent === null ? parents : getParents(parent, parents.concat([parent]));\n}\n","export default function getPreviousElementSibling(element: Element, selector: string): Element | null {\n let previousElement = element.previousElementSibling;\n\n while (previousElement) {\n if (previousElement.matches(selector)) {\n return previousElement;\n } else {\n previousElement = previousElement.previousElementSibling;\n }\n }\n\n return null;\n}\n","import findSingle from './findSingle';\nimport getParents from './getParents';\n\nexport default function getScrollableParents(element: Element): Element[] {\n const scrollableParents = [];\n\n if (element) {\n const parents = getParents(element) as HTMLElement[];\n const overflowRegex = /(auto|scroll)/;\n\n const overflowCheck = (node: Element) => {\n try {\n const styleDeclaration = window['getComputedStyle'](node, null);\n\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n } catch {\n return false;\n }\n };\n\n for (const parent of parents) {\n const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n const selectors = scrollSelectors.split(',');\n\n for (const selector of selectors) {\n const el = findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n\n return scrollableParents;\n}\n","export default function getSelection(): string | undefined {\n if (window.getSelection) return (window.getSelection() as any).toString();\n else if (document.getSelection) return (document.getSelection() as any).toString();\n\n return undefined;\n}\n","export default function getUserAgent(): string {\n return navigator.userAgent;\n}\n","export default function getWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n\n return width;\n }\n\n return 0;\n}\n","export default function hasCSSAnimation(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const animationDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n\n return animationDuration > 0;\n }\n\n return false;\n}\n","export default function hasCSSTransition(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const transitionDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n\n return transitionDuration > 0;\n }\n\n return false;\n}\n","export default function invokeElementMethod<T extends keyof Element>(element: Element, methodName: T, args?: unknown[]): void {\n const method = element[methodName];\n\n if (typeof method === 'function') {\n (method as (...args: unknown[]) => void).apply(element, args ?? []);\n }\n}\n","export default function isAndroid(): boolean {\n return /(android)/i.test(navigator.userAgent);\n}\n","import getAttribute from './getAttribute';\nimport isElement from './isElement';\n\nexport default function isAttributeEquals(element: Element, name: string, value: any): boolean {\n return isElement(element) ? getAttribute(element, name) === value : false;\n}\n","import isAttributeEquals from './isAttributeEquals';\n\nexport default function isAttributeNotEquals(element: Element, name: string, value: any): boolean {\n return !isAttributeEquals(element, name, value);\n}\n","export default function isClickable(element: Element): boolean {\n if (element) {\n const targetNode = element.nodeName;\n const parentNode = element.parentElement && element.parentElement.nodeName;\n\n return (\n targetNode === 'INPUT' ||\n targetNode === 'TEXTAREA' ||\n targetNode === 'BUTTON' ||\n targetNode === 'A' ||\n parentNode === 'INPUT' ||\n parentNode === 'TEXTAREA' ||\n parentNode === 'BUTTON' ||\n parentNode === 'A' ||\n !!element.closest('.p-button, .p-checkbox, .p-radiobutton') // @todo Add [data-pc-section=\"button\"]\n );\n }\n\n return false;\n}\n","export default function isClient(): boolean {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\n","import isElement from './isElement';\n\nexport default function isFocusableElement(element: unknown, selector: string = ''): boolean {\n return isElement(element)\n ? (element as Element).matches(`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`)\n : false;\n}\n","export default function isVisible(element?: HTMLElement): boolean {\n return !!(element && element.offsetParent != null);\n}\n","import isVisible from './isVisible';\n\nexport default function isHidden(element: HTMLElement): boolean {\n return !isVisible(element);\n}\n","export default function isIOS(): boolean {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n}\n","export default function isPrefersReducedMotion(): boolean {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return false;\n }\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n return mediaQuery.matches;\n}\n","import isClient from './isClient';\n\nexport default function isServer(): boolean {\n return !isClient();\n}\n","export default function isTouchDevice(): boolean {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || (navigator as Partial<Navigator & { msMaxTouchPoints?: number }>).msMaxTouchPoints! > 0;\n}\n","import calculateScrollbarWidth from './calculateScrollbarWidth';\nimport getHiddenElementOuterHeight from './getHiddenElementOuterHeight';\nimport getHiddenElementOuterWidth from './getHiddenElementOuterWidth';\nimport getOffset from './getOffset';\nimport getOuterHeight from './getOuterHeight';\nimport getOuterWidth from './getOuterWidth';\nimport getViewport from './getViewport';\n\nexport default function nestedPosition(element: HTMLElement, level: number): void {\n if (element) {\n const parentItem = element.parentElement;\n const elementOffset = getOffset(parentItem);\n const viewport = getViewport();\n const sublistWidth = element.offsetParent ? element.offsetWidth : getHiddenElementOuterWidth(element);\n const sublistHeight = element.offsetParent ? element.offsetHeight : getHiddenElementOuterHeight(element);\n const itemOuterWidth = getOuterWidth(parentItem?.children?.[0]);\n const itemOuterHeight = getOuterHeight(parentItem?.children?.[0] as HTMLElement);\n\n let left: string = '';\n let top: string = '';\n\n if ((elementOffset.left as number) + itemOuterWidth + sublistWidth > viewport.width - calculateScrollbarWidth()) {\n if ((elementOffset.left as number) < sublistWidth) {\n // for too small screens\n if (level % 2 === 1) {\n left = (elementOffset.left as number) ? '-' + (elementOffset.left as number) + 'px' : '100%';\n } else if (level % 2 === 0) {\n left = viewport.width - sublistWidth - calculateScrollbarWidth() + 'px';\n }\n } else {\n left = '-100%';\n }\n } else {\n left = '100%';\n }\n\n // getBoundingClientRect returns a top position from the current visible viewport area\n if (element.getBoundingClientRect().top + itemOuterHeight + sublistHeight > viewport.height) {\n top = `-${sublistHeight - itemOuterHeight}px`;\n } else {\n top = '0px';\n }\n\n element.style.top = top;\n element.style.insetInlineStart = left;\n }\n}\n","export default function nextFrame(): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve as () => void);\n });\n });\n}\n","export default function remove(element: Element) {\n if (element) {\n if (!('remove' in Element.prototype)) element.parentNode?.removeChild(element);\n else element.remove();\n }\n}\n","import toElement from './toElement';\n\nexport default function removeChild(element: unknown, child: Node) {\n const target = toElement(element);\n\n if (target) target.removeChild(child);\n else throw new Error('Cannot remove ' + child + ' from ' + element);\n}\n","import isExist from './isExist';\n\nexport default function removeStyleTag(element: Node): Node | null {\n if (isExist(element)) {\n try {\n element.parentNode?.removeChild(element);\n } catch {\n // style element may have already been removed in a fast refresh\n }\n\n return null;\n }\n\n return element;\n}\n","import getOuterHeight from './getOuterHeight';\n\nexport default function scrollInView(container: HTMLElement, item: HTMLElement): void {\n const borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n const borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n const paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n const paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n const containerRect = container.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n const offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n const scroll = container.scrollTop;\n const elementHeight = container.clientHeight;\n const itemHeight = getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttribute(element: HTMLElement, attribute: string = '', value: any): void {\n if (isElement(element) && value !== null && value !== undefined) {\n element.setAttribute(attribute, value);\n }\n}\n","export default function setCSSProperty(element?: HTMLElement, property?: string, value: any = null, priority?: string): void {\n property && element?.style?.setProperty(property, value, priority);\n}\n","export type Handler = (evt: unknown) => void;\n\nexport interface EventBusOptions {\n on(type: string, handler: Handler): void;\n off(type: string, handler: Handler): void;\n emit(type: string, evt?: unknown): void;\n clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n const allHandlers = new Map<string, Handler[]>();\n\n return {\n on(type: string, handler: Handler) {\n let handlers = allHandlers.get(type);\n\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n\n allHandlers.set(type, handlers);\n\n return this;\n },\n off(type: string, handler: Handler) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n\n return this;\n },\n emit(type: string, evt?: unknown) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.forEach((handler) => {\n handler(evt);\n });\n }\n },\n clear() {\n allHandlers.clear();\n }\n };\n}\n","export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import { cn } from '../classnames';\nimport { isFunction } from '../object';\n\nexport function mergeProps(...props: any[]): object | undefined {\n return props?.reduce((merged, ps = {}) => {\n for (const key in ps) {\n const value = ps[key];\n\n if (key === 'style') {\n merged['style'] = { ...merged['style'], ...ps['style'] };\n } else if (key === 'class' || key === 'className') {\n merged[key] = cn(merged[key], ps[key]);\n } else if (isFunction(value)) {\n const fn = merged[key];\n\n merged[key] = fn\n ? (...args: any[]) => {\n fn(...args);\n value(...args);\n }\n : value;\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n }, {});\n}\n","export default function isEmpty(value: any): boolean {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n}\n","import isEmpty from './isEmpty';\n\nexport default function compare<T = unknown>(value1: T, value2: T, comparator: (val1: T, val2: T) => number, order: number = 1): number {\n let result = -1;\n const emptyValue1 = isEmpty(value1);\n const emptyValue2 = isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = comparator(value1, value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n}\n","function _deepEquals(obj1: unknown, obj2: unknown, visited: WeakSet<object> = new WeakSet()): boolean {\n // Base case: same object reference\n if (obj1 === obj2) return true;\n\n // If one of them is null or not an object, directly return false\n if (!obj1 || !obj2 || typeof obj1 !== 'object' || typeof obj2 !== 'object') return false;\n\n // Check for circular references\n if (visited.has(obj1) || visited.has(obj2)) return false;\n\n // Add objects to the visited set\n visited.add(obj1).add(obj2);\n\n const arrObj1 = Array.isArray(obj1);\n const arrObj2 = Array.isArray(obj2);\n let i, length, key;\n\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!_deepEquals(obj1[i], obj2[i], visited)) return false;\n\n return true;\n }\n\n if (arrObj1 != arrObj2) return false;\n\n const dateObj1 = obj1 instanceof Date,\n dateObj2 = obj2 instanceof Date;\n\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n\n const regexpObj1 = obj1 instanceof RegExp,\n regexpObj2 = obj2 instanceof RegExp;\n\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n\n const keys = Object.keys(obj1);\n\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!_deepEquals((obj1 as Record<string, unknown>)[key], (obj2 as Record<string, unknown>)[key], visited)) return false;\n }\n\n return true;\n}\n\nexport default function deepEquals(obj1: unknown, obj2: unknown): boolean {\n return _deepEquals(obj1, obj2);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import isEmpty from './isEmpty';\n\nexport default function isNotEmpty(value: any): boolean {\n return !isEmpty(value);\n}\n","import isFunction from './isFunction';\nimport isNotEmpty from './isNotEmpty';\n\nexport default function resolveFieldData(data: any, field: any): any {\n if (!data || !field) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = data[field];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n // do nothing and continue to other methods to resolve field data\n }\n\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n const fields = field.split('.');\n let value = data;\n\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n }\n\n return null;\n}\n","import deepEquals from './deepEquals';\nimport resolveFieldData from './resolveFieldData';\n\nexport default function equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n","import equals from './equals';\n\nexport default function contains<T = unknown>(value: T, list: T[]): boolean {\n if (value != null && list && list.length) {\n for (const val of list) {\n if (equals(value, val)) return true;\n }\n }\n\n return false;\n}\n","export default function isObject(value: unknown, empty: boolean = true): value is object {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n","import isObject from './isObject';\n\nfunction _deepMerge(target: Record<string, unknown> = {}, source: Record<string, unknown> = {}): Record<string, unknown> {\n const mergedObj: Record<string, unknown> = { ...target };\n\n Object.keys(source).forEach((key) => {\n const typedKey = key as keyof typeof source;\n\n if (isObject(source[typedKey]) && typedKey in target && isObject(target[typedKey])) {\n mergedObj[typedKey] = _deepMerge(target[typedKey] as Record<string, unknown>, source[typedKey] as Record<string, unknown>);\n } else {\n mergedObj[typedKey] = source[typedKey];\n }\n });\n\n return mergedObj;\n}\n\n/**\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function deepMerge(...args: Record<string, unknown>[]): Record<string, unknown> {\n return args.reduce((acc, obj, i) => (i === 0 ? obj : _deepMerge(acc, obj)), {});\n}\n","import resolveFieldData from './resolveFieldData';\n\nexport default function filter<T = any>(value: T[], fields: string[], filterValue: string): T[] {\n const filteredItems = [];\n\n if (value) {\n for (const item of value) {\n for (const field of fields) {\n if (String(resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n}\n","export default function findIndexInList<T = any>(value: T, list: T[]): number {\n let index = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlast\n */\nexport default function findLast<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): T | undefined {\n let item;\n\n if (isNotEmpty(arr)) {\n try {\n item = (arr as any).findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\nexport default function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number {\n let index = -1;\n\n if (isNotEmpty(arr)) {\n try {\n index = (arr as any).findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback) as T);\n }\n }\n\n return index;\n}\n","import isFunction from './isFunction';\n\nexport default function resolve<T, P extends unknown[], R>(obj: T | ((...params: P) => R), ...params: P): T | R {\n return isFunction(obj) ? (obj as (...params: P) => R)(...params) : (obj as T);\n}\n","export default function isString(value: unknown, empty: boolean = true): value is string {\n return typeof value === 'string' && (empty || value !== '');\n}\n","import isString from './isString';\n\nexport default function toFlatCase(str: string): string {\n // convert snake, kebab, camel and pascal cases to flat case\n return isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n}\n","import isObject from './isObject';\nimport resolve from './resolve';\nimport toFlatCase from './toFlatCase';\n\nexport default function getKeyValue<T extends Record<string, unknown>>(obj: T | undefined, key: string = '', params: unknown = {}): unknown {\n const fKeys = toFlatCase(key).split('.');\n const fKey = fKeys.shift();\n\n if (fKey) {\n if (isObject(obj)) {\n const matchedKey = Object.keys(obj).find((k) => toFlatCase(k) === fKey) || '';\n\n return getKeyValue(resolve(obj[matchedKey], params) as Record<string, unknown>, fKeys.join('.'), params);\n }\n\n return undefined;\n }\n\n return resolve(obj, params);\n}\n","import findIndexInList from './findIndexInList';\n\nexport default function insertIntoOrderedArray<T>(item: T, index: number, arr: T[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n\n for (let i = 0; i < arr.length; i++) {\n const currentItemIndex = findIndexInList(arr[i], sourceArr);\n\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n}\n","export default function isArray(value: any, empty: boolean = true): boolean {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n","export default function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export default function isLetter(char: string): boolean {\n return /^[a-zA-Z\\u00C0-\\u017F]$/.test(char);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isNumber(value: unknown): boolean {\n return isNotEmpty(value) && !isNaN(value as number);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isPrintableCharacter(char: string = ''): boolean {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n","export default function isScalar(value: any): boolean {\n return value != null && (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean');\n}\n","export default function localeComparator(): (val1: string, val2: string) => number {\n //performance gain using Int.Collator. It is not recommended to use localeCompare against large arrays.\n return new Intl.Collator(undefined, { numeric: true }).compare;\n}\n","export default function matchRegex(str: string, regex?: RegExp): boolean {\n if (regex) {\n const match = regex.test(str);\n\n regex.lastIndex = 0;\n\n return match;\n }\n\n return false;\n}\n","import deepMerge from './deepMerge';\n\n/**\n * @deprecated Use `deepMerge` instead.\n *\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function mergeKeys(...args: Record<string, unknown>[]): Record<string, unknown> {\n return deepMerge(...args);\n}\n","export default function minifyCSS(css?: string): string | undefined {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n .trim()\n : css;\n}\n","import isObject from './isObject';\n\nexport default function nestedKeys(obj: Record<string, any> = {}, parentKey: string = ''): string[] {\n return Object.entries(obj).reduce<string[]>((o, [key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n isObject(value) ? (o = o.concat(nestedKeys(value, currentKey))) : o.push(currentKey);\n\n return o;\n }, []);\n}\n","import isObject from './isObject';\n\nexport default function omit(obj: unknown, ...keys: string[]): unknown {\n if (!isObject(obj)) return obj;\n\n const copy = { ...(obj as Record<string, unknown>) };\n\n keys?.flat().forEach((key) => delete copy[key]);\n\n return copy;\n}\n","export default function removeAccents(str: string): string {\n // Regular expression to check for any accented characters 'Latin-1 Supplement' and 'Latin Extended-A'\n const accentCheckRegex = /[\\xC0-\\xFF\\u0100-\\u017E]/;\n\n if (str && accentCheckRegex.test(str)) {\n const accentsMap: { [key: string]: RegExp } = {\n A: /[\\xC0-\\xC5\\u0100\\u0102\\u0104]/g,\n AE: /[\\xC6]/g,\n C: /[\\xC7\\u0106\\u0108\\u010A\\u010C]/g,\n D: /[\\xD0\\u010E\\u0110]/g,\n E: /[\\xC8-\\xCB\\u0112\\u0114\\u0116\\u0118\\u011A]/g,\n G: /[\\u011C\\u011E\\u0120\\u0122]/g,\n H: /[\\u0124\\u0126]/g,\n I: /[\\xCC-\\xCF\\u0128\\u012A\\u012C\\u012E\\u0130]/g,\n IJ: /[\\u0132]/g,\n J: /[\\u0134]/g,\n K: /[\\u0136]/g,\n L: /[\\u0139\\u013B\\u013D\\u013F\\u0141]/g,\n N: /[\\xD1\\u0143\\u0145\\u0147\\u014A]/g,\n O: /[\\xD2-\\xD6\\xD8\\u014C\\u014E\\u0150]/g,\n OE: /[\\u0152]/g,\n R: /[\\u0154\\u0156\\u0158]/g,\n S: /[\\u015A\\u015C\\u015E\\u0160]/g,\n T: /[\\u0162\\u0164\\u0166]/g,\n U: /[\\xD9-\\xDC\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172]/g,\n W: /[\\u0174]/g,\n Y: /[\\xDD\\u0176\\u0178]/g,\n Z: /[\\u0179\\u017B\\u017D]/g,\n\n a: /[\\xE0-\\xE5\\u0101\\u0103\\u0105]/g,\n ae: /[\\xE6]/g,\n c: /[\\xE7\\u0107\\u0109\\u010B\\u010D]/g,\n d: /[\\u010F\\u0111]/g,\n e: /[\\xE8-\\xEB\\u0113\\u0115\\u0117\\u0119\\u011B]/g,\n g: /[\\u011D\\u011F\\u0121\\u0123]/g,\n i: /[\\xEC-\\xEF\\u0129\\u012B\\u012D\\u012F\\u0131]/g,\n ij: /[\\u0133]/g,\n j: /[\\u0135]/g,\n k: /[\\u0137,\\u0138]/g,\n l: /[\\u013A\\u013C\\u013E\\u0140\\u0142]/g,\n n: /[\\xF1\\u0144\\u0146\\u0148\\u014B]/g,\n p: /[\\xFE]/g,\n o: /[\\xF2-\\xF6\\xF8\\u014D\\u014F\\u0151]/g,\n oe: /[\\u0153]/g,\n r: /[\\u0155\\u0157\\u0159]/g,\n s: /[\\u015B\\u015D\\u015F\\u0161]/g,\n t: /[\\u0163\\u0165\\u0167]/g,\n u: /[\\xF9-\\xFC\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173]/g,\n w: /[\\u0175]/g,\n y: /[\\xFD\\xFF\\u0177]/g,\n z: /[\\u017A\\u017C\\u017E]/g\n };\n\n for (const key in accentsMap) {\n str = str.replace(accentsMap[key], key);\n }\n }\n\n return str;\n}\n","export default function reorderArray<T>(value: T[], from: number, to: number): void {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n}\n","/**\n * Shallow equal for React/Vue props comparison\n * Ignores functions (common in props)\n */\nexport default function shallowEqualProps(propsA: Record<string, unknown>, propsB: Record<string, unknown>): boolean {\n if (propsA === propsB) return true;\n\n const keysA = Object.keys(propsA);\n const keysB = Object.keys(propsB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n const valueA = propsA[key];\n const valueB = propsB[key];\n\n // Skip function comparison (they rarely change)\n if (typeof valueA === 'function' && typeof valueB === 'function') {\n continue;\n }\n\n if (!Object.is(valueA, valueB)) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * Checks if two values are shallowly equal\n * - Primitives: compared by value (===)\n * - Objects/Arrays: compared by reference and first-level properties\n *\n * @param objA - First value to compare\n * @param objB - Second value to compare\n * @returns True if values are shallowly equal, false otherwise\n *\n * @example\n * shallowEquals(1, 1) // true\n * shallowEquals('a', 'a') // true\n * shallowEquals({ a: 1 }, { a: 1 }) // true (shallow)\n * shallowEquals({ a: { b: 1 } }, { a: { b: 1 } }) // false (nested objects are different references)\n * shallowEquals([1, 2], [1, 2]) // true (shallow)\n * shallowEquals([1, [2]], [1, [2]]) // false (nested arrays are different references)\n */\nexport default function shallowEquals(objA: unknown, objB: unknown): boolean {\n // Fast path: same reference\n if (objA === objB) return true;\n\n // Fast path: different types or null\n if (typeof objA !== typeof objB || objA === null || objB === null) {\n return false;\n }\n\n // Fast path: primitives\n if (typeof objA !== 'object') {\n return objA === objB;\n }\n\n // Same reference (including null === null, undefined === undefined)\n if (Object.is(objA, objB)) {\n return true;\n }\n\n // If either is not an object or is null, they're not equal\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n // Compare arrays\n if (Array.isArray(objA) && Array.isArray(objB)) {\n if (objA.length !== objB.length) {\n return false;\n }\n\n for (let i = 0; i < objA.length; i++) {\n if (!Object.is(objA[i], objB[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n // If only one is array, they're not equal\n if (Array.isArray(objA) || Array.isArray(objB)) {\n return false;\n }\n\n // Compare object keys\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Check if all keys and values match\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, key) || !Object.is((objA as Record<string, unknown>)[key], (objB as Record<string, unknown>)[key])) {\n return false;\n }\n }\n\n return true;\n}\n","import compare from './compare';\nimport isEmpty from './isEmpty';\n\nexport default function sort<T>(value1: T, value2: T, order: number = 1, comparator: (val1: T, val2: T) => number, nullSortOrder: number = 1): number {\n const result = compare(value1, value2, comparator, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (isEmpty(value1) || isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n}\n","import isArray from './isArray';\nimport isDate from './isDate';\nimport isFunction from './isFunction';\nimport isObject from './isObject';\n\nexport default function stringify(value: unknown, indent: number = 2, currentIndent: number = 0): string {\n const currentIndentStr = ' '.repeat(currentIndent);\n const nextIndentStr = ' '.repeat(currentIndent + indent);\n\n if (isArray(value)) {\n return '[' + (value as unknown[]).map((v: unknown) => stringify(v, indent, currentIndent + indent)).join(', ') + ']';\n } else if (isDate(value)) {\n return value.toISOString();\n } else if (isFunction(value)) {\n return value.toString();\n } else if (isObject(value)) {\n return (\n '{\\n' +\n Object.entries(value)\n .map(([k, v]) => `${nextIndentStr}${k}: ${stringify(v, indent, currentIndent + indent)}`)\n .join(',\\n') +\n `\\n${currentIndentStr}` +\n '}'\n );\n } else {\n return JSON.stringify(value);\n }\n}\n","import isString from './isString';\n\nexport default function toCamelCase(str: string): string {\n // convert snake, kebab and pascal cases to camel case\n return isString(str) ? str.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : '')) : str;\n}\n","import isString from './isString';\n\nexport default function toCapitalCase(str: string): string {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n","import isString from './isString';\n\nexport default function toKebabCase(str: string): string {\n // convert snake, camel and pascal cases to kebab case\n return isString(str)\n ? str\n .replace(/(_)/g, '-')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase()\n : str;\n}\n","export default function toMs(value: string | number): number {\n if (value === 'auto') return 0;\n\n if (typeof value === 'number') return value;\n\n return Number(value.replace(/[^\\d.]/g, '').replace(',', '.')) * 1000;\n}\n","import isString from './isString';\n\nexport default function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n","import resolve from './resolve';\n\ntype ReactRef = { current: unknown };\ntype VueRef = { value: unknown };\n\nexport default function toValue(value: unknown): unknown {\n if (value && typeof value === 'object') {\n if (Object.hasOwn(value, 'current')) {\n // For React\n return (value as ReactRef).current;\n } else if (Object.hasOwn(value, 'value')) {\n // For Vue\n return (value as VueRef).value;\n }\n }\n\n // For Angular signals and functions usage\n return resolve(value);\n}\n","import { resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * The options for the `useControlledState` hook.\n */\nexport interface UseControlledStateOptions<T = unknown, E = unknown> {\n /**\n * The value of the controlled state.\n */\n value?: T | undefined;\n /**\n * The default value of the uncontrolled state.\n */\n defaultValue?: T | undefined;\n /**\n * Callback function that is called when the value changes.\n */\n onChange?: (newValue: E) => void;\n}\n\n/**\n * The return type of the `useControlledState` hook.\n * A tuple containing the current value and a function to update it.\n */\nexport type UseControlledStateReturnType<T = unknown> = [T | undefined, (inValue: unknown | ((prev?: T) => unknown)) => void, boolean];\n\n/**\n * A custom hook that manages controlled and uncontrolled state.\n *\n * @param {UseControlledStateOptions} options - The options for the controlled state.\n * @returns A tuple containing the current value and a function to update it.\n *\n * @example\n * ```tsx\n * const ControlledComponent = () => {\n * const [controlledValue, setControlledValue] = React.useState('');\n *\n * const [value, setValue] = useControlledState({\n * value: controlledValue,\n * defaultValue: 'initial value',\n * onChange: (newValue) => {\n * setControlledValue(newValue);\n * }\n * });\n *\n * return <Component value={value} onChange={(e) => setValue(e.target.value)} />;\n * };\n * ```\n */\nexport function useControlledState<T = unknown, E = T>({ value, defaultValue, onChange }: UseControlledStateOptions<T, E>): UseControlledStateReturnType<T | undefined> {\n const [valueState, setValueState] = React.useState<T | undefined>(defaultValue ?? value);\n\n const isControlled = value !== undefined;\n const computedValue = isControlled ? (value as T) : valueState;\n\n const setValue = React.useCallback(\n (inValue: unknown | ((prev?: T) => unknown)) => {\n // @todo - update resolve to accept multiple parameters\n const [newValue, onChangeParam] = resolve(inValue, computedValue, isControlled) as [T, E];\n\n onChange?.(onChangeParam);\n\n if (!isControlled) {\n setValueState(newValue);\n }\n },\n [computedValue, isControlled, onChange]\n );\n\n React.useEffect(() => {\n if (!isControlled) {\n setValueState(defaultValue);\n }\n }, [defaultValue, isControlled]);\n\n return [computedValue, setValue, isControlled];\n}\n","import { getTargetElement, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { usePrevious } from '../use-previous';\n\n/**\n * The options for the `useEventListener` hook.\n */\nexport interface UseEventListenerOptions<T = keyof HTMLElementEventMap> {\n /**\n * The target element to bind the event listener to.\n * @default 'document'\n */\n target?: 'document' | 'window' | 'body' | HTMLElement | (() => HTMLElement) | React.Ref<HTMLElement> | string | null;\n /**\n * The event type to listen for.\n */\n type: T | string;\n /**\n * The event listener callback.\n */\n listener: EventListener;\n /**\n * The event listener options\n */\n options?: AddEventListenerOptions | boolean;\n /**\n * A boolean indicating whether the event listener should be active.\n */\n when?: boolean;\n}\n\n/**\n * The return type of the `useEventListener` hook.\n * A tuple containing functions;\n * 1. `bind` function is used to bind the event listener.\n * 2. `unbind` function is used to unbind the event listener.\n */\nexport type UseEventListenerReturnType = [(options?: Partial<Omit<UseEventListenerOptions, 'target'>> & { target?: UseEventListenerOptions['target'] | Document | null }) => void, () => void];\n\n/**\n * Listens for the specified event type on the target element.\n *\n * @param {UseEventListenerOptions} options - The options for the event listener.\n * @returns A tuple containing functions;\n * 1. `bind` function is used to bind the event listener.\n * 2. `unbind` function is used to unbind the event listener.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const [bind, unbind] = useEventListener({\n * target: 'document',\n * type: 'click',\n * listener: (event) => {\n * console.log(event);\n * },\n * when: true\n * });\n *\n * return <div>Click me</div>;\n * };\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const [bind, unbind] = useEventListener({\n * target: () => document.querySelector('.element'),\n * type: 'mouseover',\n * listener: (event) => {\n * console.log(event);\n * }\n * });\n *\n * return <div>MouseOver to `.element`</div>;\n * };\n * ```\n */\nexport function useEventListener({ target = 'document', type, listener, options, when = true }: UseEventListenerOptions): UseEventListenerReturnType {\n const targetRef = React.useRef<HTMLElement | null>(null);\n const listenerRef = React.useRef<EventListener | null>(null);\n let prevListener = usePrevious(listener);\n let prevOptions = usePrevious(options);\n\n const bind = (bindOptions: Partial<Omit<UseEventListenerOptions, 'target'>> & { target?: UseEventListenerOptions['target'] | Document | null } = {}) => {\n const { target: bindTarget } = bindOptions;\n\n if (isNotEmpty(bindTarget)) {\n unbind();\n\n if (bindOptions.when || when) {\n targetRef.current = getTargetElement(bindTarget) as HTMLElement;\n }\n }\n\n if (!listenerRef.current && targetRef.current) {\n listenerRef.current = (event: Event) => listener && listener(event);\n targetRef.current.addEventListener(type, listenerRef.current, options);\n }\n };\n\n const unbind = () => {\n if (listenerRef.current) {\n targetRef.current?.removeEventListener(type, listenerRef.current, options);\n listenerRef.current = null;\n }\n };\n\n const dispose = () => {\n unbind();\n // Prevent memory leak by releasing\n prevListener = null;\n prevOptions = null;\n };\n\n const updateTarget = React.useCallback(() => {\n if (when) {\n targetRef.current = getTargetElement(target) as HTMLElement;\n } else {\n unbind();\n targetRef.current = null;\n }\n }, [target, when]);\n\n React.useEffect(() => {\n return () => {\n dispose();\n };\n }, []);\n\n React.useEffect(() => {\n updateTarget();\n }, [updateTarget]);\n\n React.useEffect(() => {\n const listenerChanged = `${prevListener}` !== `${listener}`;\n const optionsChanged = prevOptions !== options;\n const listenerExists = listenerRef.current;\n\n if (listenerExists && (listenerChanged || optionsChanged)) {\n unbind();\n\n if (when) {\n bind();\n }\n } else if (!listenerExists) {\n dispose();\n }\n }, [listener, options, when]);\n\n return [bind, unbind];\n}\n","import * as React from 'react';\n\n/**\n * Returns the previous value of the provided value.\n *\n * @param value - The value to track.\n * @returns The previous value of the provided value.\n *\n * @example\n * ```tsx\n * const [count, setCount] = React.useState(5);\n * const prevCount = usePrevious(count);\n *\n * console.log(prevCount); // undefined\n *\n * setCount(10);\n *\n * console.log(prevCount); // 5\n * ```\n */\nexport function usePrevious<T>(value: T): T | null | undefined {\n const ref = React.useRef<T | null>(null);\n\n React.useEffect(() => {\n ref.current = value;\n\n return () => {\n ref.current = null;\n };\n }, [value]);\n\n return ref.current;\n}\n","import * as React from 'react';\n\nexport type UseHotKeyTarget = Document | HTMLElement | null | undefined;\n\nexport interface UseHotKeyOptions {\n /**\n * Target to listen on. Defaults to `document` when available.\n */\n target?: UseHotKeyTarget;\n /**\n * Keyboard event type.\n * @default 'keydown'\n */\n event?: 'keydown' | 'keyup' | 'keypress';\n /**\n * Enables or disables the listener.\n * @default true\n */\n when?: boolean;\n}\n\n/**\n * Runs the provided handler when any of the given keys is pressed.\n *\n * @param keys A single key or an array of keys to listen for (e.g. 'k' or 'ctrl+k').\n * @param handler Callback fired when a matching key event occurs.\n * @param options Optional configuration for target, event type, and enable flag.\n */\nexport function useHotKey(keys: string | string[], handler: (event: KeyboardEvent) => void, options: UseHotKeyOptions = {}) {\n const { target, event = 'keydown', when = true } = options;\n const handlerRef = React.useRef(handler);\n\n const normalizeKey = (key: string) => {\n const lower = key.toLowerCase();\n\n if (lower === 'space' || lower === 'spacebar') return ' ';\n\n return lower;\n };\n\n const parseKeySpec = (spec: string) => {\n const parts = spec\n .split('+')\n .map((p) => p.trim().toLowerCase())\n .filter(Boolean);\n\n let key: string | undefined;\n const required = {\n ctrl: false,\n meta: false,\n alt: false,\n shift: false\n };\n\n parts.forEach((part) => {\n switch (part) {\n case 'ctrl':\n case 'control':\n required.ctrl = true;\n break;\n case 'meta':\n case 'cmd':\n case 'command':\n required.meta = true;\n break;\n case 'alt':\n case 'option':\n required.alt = true;\n break;\n case 'shift':\n required.shift = true;\n break;\n default:\n key = normalizeKey(part);\n }\n });\n\n return { key, required };\n };\n\n const matches = (spec: ReturnType<typeof parseKeySpec>, event: KeyboardEvent) => {\n if (!spec.key) return false;\n\n const { required } = spec;\n\n if (required.ctrl !== event.ctrlKey || required.meta !== event.metaKey || required.alt !== event.altKey || required.shift !== event.shiftKey) {\n return false;\n }\n\n return normalizeKey(event.key) === spec.key;\n };\n\n React.useEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n\n React.useEffect(() => {\n if (!when) {\n return;\n }\n\n const targetElement: UseHotKeyTarget = target ?? (typeof document !== 'undefined' ? document : null);\n\n if (!targetElement) {\n return;\n }\n\n const keySpecs = (Array.isArray(keys) ? keys : [keys]).map(parseKeySpec);\n\n const listener: EventListener = (event) => {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keySpecs.some((spec) => matches(spec, keyboardEvent))) {\n handlerRef.current?.(keyboardEvent);\n }\n };\n\n targetElement.addEventListener(event, listener);\n\n return () => {\n targetElement.removeEventListener(event, listener);\n };\n }, [event, keys, target, when]);\n}\n","import * as React from 'react';\n\n/**\n * Generates a unique identifier.\n *\n * @param initialValue Optional initial value for the ID.\n * @returns The generated or provided ID.\n *\n * @example\n * ```tsx\n * const id = useId('foo');\n * console.log(id); // 'foo'\n * ```\n *\n * @example\n * ```tsx\n * const defaultId = useId();\n * console.log(defaultId); // e.g., 'pr_id_0'\n * ```\n */\nexport function useId(initialValue?: string): string {\n const idx = React.useId();\n const [idState, setIdState] = React.useState<string>(initialValue || `pr_id_${idx.replaceAll(/:|«|»/g, '')}`);\n\n React.useEffect(() => {\n setIdState(initialValue || `pr_id_${idx.replaceAll(/:|«|»/g, '')}`);\n }, [initialValue, idx]);\n\n return idState;\n}\n","import { useMountEffect } from '@primereact/hooks';\nimport { getUserAgent } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * Event fired when the component's state changes.\n */\nexport interface UseMaskChangeEvent {\n /**\n * The value of the component.\n */\n value: string | undefined;\n}\n\n/**\n * The options for the `useMask` hook.\n */\nexport interface UseMaskOptions {\n /**\n * Mask pattern.\n */\n mask: string;\n /**\n * Defines if model sets the raw unmasked value to bound value or the formatted mask value.\n * @default false\n */\n unmask?: string;\n /**\n * Placeholder character in mask, default is underscore.\n * @default _\n */\n slotChar?: string;\n /**\n * Clears the incomplete value on blur.\n * @default true\n */\n autoClear?: boolean;\n /**\n * Whether the components are clickable or not.\n * @default false\n */\n readOnly?: boolean;\n /**\n * Callback function that is called when the value is changed.\n * @param event The event that triggered the change.\n * @param event.value The value of the component.\n * @returns void\n */\n onMaskChange?: (event: UseMaskChangeEvent) => void;\n /**\n * Reference to the mask element.\n */\n target: HTMLInputElement;\n}\n\nexport interface UseMaskExposes {\n /**\n * Handles input events for the masked input field.\n * Processes character input and composition events while applying the mask pattern.\n * @param event - The form or composition event from the input element\n */\n onMaskInput: (event: React.FormEvent<HTMLInputElement> | React.CompositionEvent<HTMLInputElement>) => void;\n /**\n * Handles keydown events for special key operations.\n * Manages backspace, delete, escape, and enter key behaviors.\n * @param event - The keyboard event from the input element\n */\n onMaskKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Handles keypress events for character input validation.\n * Validates and places characters according to the mask pattern.\n * @param event - The keyboard event from the input element\n */\n onMaskKeyPress: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Handles focus events when the input gains focus.\n * Initializes the mask display and sets the cursor position.\n * @param event - The focus event from the input element\n */\n onMaskFocus: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Handles blur events when the input loses focus.\n * Validates the final value and triggers change events if needed.\n * @param event - The focus event from the input element\n */\n onMaskBlur: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Handles paste events for clipboard content insertion.\n * Processes pasted content according to the mask pattern.\n * @param event - The clipboard event from the input element\n */\n onMaskPaste: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n}\n\n/**\n * useMask hook is used to enter input in a certain format such as numeric, date, currency, email and phone.\n *\n * @param {UseMaskOptions} options - The options for the mask.\n * @returns {UseMaskExposes} - The exposed methods for the mask.\n *\n * @example\n * ```tsx\n * const { onMaskInput, onMaskKeyDown, onMaskKeyPress, onMaskFocus, onMaskBlur, onMaskPaste } = useMask({\n * mask: '99/99/9999',\n * onMaskChange: (event: UseMaskChangeEvent) => setValue(event.value ?? ''),\n * target: ref\n * });\n *\n * return (\n * <div className=\"card flex justify-center\">\n * <InputText ref={ref} value={value} placeholder=\"99/99/9999\" onInput={onMaskInput} onKeyDown={onMaskKeyDown} onKeyPress={onMaskKeyPress} onFocus={onMaskFocus} onBlur={onMaskBlur} onPaste={onMaskPaste} />\n * </div>\n * );\n */\nexport function useMask(options: UseMaskOptions): UseMaskExposes {\n const { mask, unmask, slotChar = '_', autoClear = true, readOnly = false, onMaskChange, target } = options;\n\n const len = React.useRef(0);\n const tests = React.useRef<Array<RegExp | null>>([]);\n const buffer = React.useRef<string[]>([]);\n const defaultBuffer = React.useRef<string | null>(null);\n const partialPosition = React.useRef<number>(0);\n const androidChrome = React.useRef(false);\n const focus = React.useRef(false);\n const focusText = React.useRef<string | null>(null);\n const firstNonMaskPos = React.useRef<number | null>(null);\n const lastRequiredNonMaskPos = React.useRef<number>(0);\n const caretTimeoutId = React.useRef<NodeJS.Timeout | null>(null);\n const oldVal = React.useRef<string | null>(null);\n const currentVal = React.useRef<string | null>(null);\n\n const onMaskInput = (event: React.FormEvent<HTMLInputElement> | React.CompositionEvent<HTMLInputElement>) => {\n // Check if the event is part of a text composition process (e.g., for Asian languages).\n // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n if ('isComposing' in event && event.isComposing) {\n return;\n }\n\n if (androidChrome.current) handleAndroidInput();\n else handleInputChange(event);\n };\n\n const onMaskKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (readOnly) {\n return;\n }\n\n const k = event.code;\n let pos, begin, end;\n const iPhone = /iphone/i.test(getUserAgent());\n\n oldVal.current = target?.value as string;\n\n //backspace, delete, and escape get special treatment\n if (k === 'Backspace' || k === 'Delete' || (iPhone && k === 'Escape')) {\n pos = caret();\n\n if (!pos) {\n return;\n }\n\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 'Delete' ? seekPrev(begin) : (end = seekNext(begin - 1));\n end = k === 'Delete' ? seekNext(end) : end;\n }\n\n clearBuffer(begin, end);\n shiftL(begin, end - 1);\n updateModelValue((event.target as HTMLInputElement).value);\n\n event.preventDefault();\n } else if (k === 'Enter') {\n // enter\n target.blur();\n updateModelValue((event.target as HTMLInputElement).value);\n } else if (k === 'Escape') {\n // escape\n if (target) {\n target.value = focusText.current ?? '';\n }\n\n caret(0, checkVal());\n updateModelValue((event.target as HTMLInputElement).value);\n event.preventDefault();\n }\n };\n\n const onMaskKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (readOnly) {\n return;\n }\n\n const k = event.code,\n pos = caret();\n let p: number, c: string, next: number;\n\n if (!pos) {\n return;\n }\n\n if (event.ctrlKey || event.altKey || event.metaKey || event.shiftKey || event.key === 'CapsLock' || event.key === 'Escape' || event.key === 'Tab') {\n //Ignore\n return;\n } else if (k && k !== 'Enter') {\n if (pos.end - pos.begin !== 0) {\n clearBuffer(pos.begin, pos.end);\n shiftL(pos.begin, pos.end - 1);\n }\n\n p = seekNext(pos.begin - 1);\n\n if (p < len.current) {\n c = event.key;\n\n if (tests.current[p]?.test(c)) {\n shiftR(p);\n\n buffer.current[p] = c;\n writeBuffer();\n next = seekNext(p);\n\n if (/android/i.test(getUserAgent())) {\n //Path for CSP Violation on FireFox OS 1.1\n const proxy = () => {\n caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n caret(next);\n }\n }\n }\n\n event.preventDefault();\n }\n\n updateModelValue((event.target as HTMLInputElement).value);\n };\n\n const onMaskFocus = () => {\n if (readOnly) {\n return;\n }\n\n if (caretTimeoutId.current) {\n clearTimeout(caretTimeoutId.current as NodeJS.Timeout);\n }\n\n focus.current = true;\n focusText.current = target.value as string;\n\n if (!target.value || target.value === defaultBuffer.current) {\n requestAnimationFrame(() => {\n if (target === document.activeElement) {\n caret(0, 0);\n }\n });\n } else {\n const pos = checkVal();\n\n caretTimeoutId.current = setTimeout(() => {\n if (target !== document.activeElement) {\n return;\n }\n\n writeBuffer();\n\n if (pos === mask?.replace('?', '').length) {\n caret(0, pos);\n } else {\n caret(pos);\n }\n }, 10);\n }\n };\n\n const onMaskBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n focus.current = false;\n checkVal();\n updateModelValue(event.target.value);\n\n if (target.value !== focusText.current) {\n const e = new Event('change', { bubbles: true, cancelable: false });\n\n target.dispatchEvent(e);\n }\n };\n\n const onMaskPaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n handleInputChange(event);\n };\n\n const caret = (first?: number, last?: number): { begin: number; end: number } | undefined => {\n let begin = 0,\n end = 0;\n\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n\n target.setSelectionRange(begin, end);\n } else {\n if (target) {\n begin = target.selectionStart ?? 0;\n end = target.selectionEnd ?? 0;\n }\n }\n\n return { begin, end };\n };\n\n const getPlaceholder = (i: number) => {\n if (i < slotChar.length) {\n return slotChar.charAt(i);\n }\n\n return slotChar.charAt(0);\n };\n\n const seekNext = (pos: number) => {\n while (++pos < len.current && !tests.current[pos]);\n\n return pos;\n };\n\n const seekPrev = (pos: number) => {\n while (--pos >= 0 && !tests.current[pos]);\n\n return pos;\n };\n\n const shiftL = (begin: number, end: number) => {\n let i, j;\n\n if (begin < 0) {\n return;\n }\n\n for (i = begin, j = seekNext(end); i < len.current; i++) {\n if (tests.current[i]) {\n if (j < len.current && tests.current[i]?.test(buffer.current[j])) {\n buffer.current[i] = buffer.current[j];\n buffer.current[j] = getPlaceholder(j);\n } else {\n break;\n }\n\n j = seekNext(j);\n }\n }\n\n writeBuffer();\n caret(Math.max(firstNonMaskPos.current ?? 0, begin));\n };\n\n const shiftR = (pos: number) => {\n let i, c, j, t;\n\n for (i = pos, c = getPlaceholder(pos); i < len.current; i++) {\n if (tests.current[i]) {\n j = seekNext(i);\n t = buffer.current[i];\n buffer.current[i] = c;\n\n if (j < len.current && tests.current[j]?.test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n };\n\n const handleAndroidInput = () => {\n const curVal = target.value as string;\n const pos = caret();\n\n if (!pos) {\n return;\n }\n\n if (oldVal.current && oldVal.current.length && oldVal.current.length > curVal.length) {\n // a deletion or backspace happened\n checkVal(true);\n while (pos.begin > 0 && !tests.current[pos.begin - 1]) pos.begin--;\n\n if (pos.begin === 0) {\n while (pos.begin < (firstNonMaskPos.current ?? 0) && !tests.current[pos.begin]) pos.begin++;\n }\n\n caret(pos.begin, pos.begin);\n } else {\n checkVal(true);\n while (pos.begin < len.current && !tests.current[pos.begin]) pos.begin++;\n\n caret(pos.begin, pos.begin);\n }\n };\n\n const clearBuffer = (start: number, end: number) => {\n let i;\n\n for (i = start; i < end && i < len.current; i++) {\n if (tests.current[i]) {\n buffer.current[i] = getPlaceholder(i);\n }\n }\n };\n\n const writeBuffer = () => {\n if (target) {\n target.value = buffer.current.join('');\n }\n };\n\n const checkVal = (allow = false): number => {\n //try to place characters where they belong\n const test = target.value;\n let lastMatch = -1,\n i,\n c,\n pos;\n\n for (i = 0, pos = 0; i < len.current; i++) {\n const currentTest = tests.current[i];\n\n if (currentTest !== null) {\n buffer.current[i] = getPlaceholder(i);\n\n while (pos++ < (test?.length ?? 0)) {\n c = test?.charAt(pos - 1) ?? '';\n\n if (currentTest.test(c)) {\n buffer.current[i] = c;\n lastMatch = i;\n break;\n }\n }\n\n if (pos > (test?.length ?? 0)) {\n clearBuffer(i + 1, len.current);\n break;\n }\n } else {\n if (buffer.current[i] === test?.charAt(pos)) {\n pos++;\n }\n\n if (i < partialPosition.current) {\n lastMatch = i;\n }\n }\n }\n\n if (allow) {\n writeBuffer();\n } else if (lastMatch + 1 < partialPosition.current) {\n if (autoClear || buffer.current.join('') === defaultBuffer.current) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (target.value) {\n target.value = '';\n }\n\n clearBuffer(0, len.current);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n writeBuffer();\n }\n } else {\n writeBuffer();\n\n if (target) {\n target.value = target.value.substring(0, lastMatch + 1);\n }\n }\n\n return partialPosition.current ? i : (firstNonMaskPos.current ?? 0);\n };\n\n const handleInputChange = (event: React.FormEvent<HTMLInputElement> | React.ClipboardEvent<HTMLInputElement>) => {\n const isPasteEvent = event.type === 'paste';\n\n if (readOnly || isPasteEvent) {\n return;\n }\n\n const pos = checkVal(true);\n\n caret(pos);\n updateModelValue((event.target as HTMLInputElement).value);\n };\n\n const unmaskValue = (value: string) => {\n const unmaskedBuffer = [];\n const thisbuffer = value.split('');\n\n for (let i = 0; i < thisbuffer.length; i++) {\n const c = thisbuffer[i];\n\n if (tests.current[i] && c !== getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n\n return unmaskedBuffer.join('');\n };\n\n const updateModelValue = (value: string) => {\n if (currentVal.current === value) return;\n\n const val = unmask ? unmaskValue(value) : value;\n const finalValue = defaultBuffer.current !== val ? val : '';\n\n currentVal.current = value;\n\n if (target) {\n target.value = finalValue;\n }\n\n // Call the onMaskChange callback to update React state\n if (onMaskChange) {\n onMaskChange({ value: finalValue });\n }\n };\n\n const updateValue = (updateModel = true) => {\n if (target) {\n if (target.value == null) {\n target.value = '';\n\n if (updateModel) {\n updateModelValue('');\n }\n } else {\n checkVal();\n\n setTimeout(() => {\n if (target) {\n writeBuffer();\n checkVal();\n\n if (updateModel) updateModelValue(target.value);\n }\n }, 10);\n }\n\n focusText.current = target.value;\n }\n };\n\n const initMask = () => {\n tests.current = [];\n partialPosition.current = mask ? mask.length : 0;\n len.current = mask ? mask.length : 0;\n firstNonMaskPos.current = null;\n const defs = {\n 9: '[0-9]',\n a: '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n } as Record<string, string>;\n\n const ua = getUserAgent();\n\n androidChrome.current = /chrome/i.test(ua) && /android/i.test(ua);\n\n const maskTokens = mask ? mask.split('') : '';\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c === '?') {\n len.current--;\n partialPosition.current = i;\n } else if (defs[c]) {\n tests.current.push(new RegExp(defs[c]));\n\n if (firstNonMaskPos.current === null) {\n firstNonMaskPos.current = tests.current.length - 1;\n }\n\n if (i < partialPosition.current) {\n lastRequiredNonMaskPos.current = tests.current.length - 1;\n }\n } else {\n tests.current.push(null);\n }\n }\n\n buffer.current = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c !== '?') {\n if (defs[c]) buffer.current.push(getPlaceholder(i));\n else buffer.current.push(c);\n }\n }\n\n defaultBuffer.current = buffer.current.join('');\n\n updateValue(false);\n };\n\n useMountEffect(() => {\n initMask();\n });\n\n return {\n onMaskInput,\n onMaskKeyDown,\n onMaskKeyPress,\n onMaskFocus,\n onMaskBlur,\n onMaskPaste\n };\n}\n","import * as React from 'react';\n\n/**\n * Listens for the specified media query.\n *\n * @param query - The media query to match.\n * @param when - A boolean indicating whether the media query should be active.\n * @returns A boolean indicating whether the media query matches.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const isMobile = useMatchMedia('(max-width: 768px)');\n *\n * return <div>{isMobile ? 'Mobile' : 'Desktop'}</div>;\n * };\n */\nexport function useMatchMedia(query: string, when: boolean = true): boolean {\n const [matches, setMatches] = React.useState(false);\n const matchMedia = React.useRef<MediaQueryList | null>(null);\n\n const handleChange = (event: MediaQueryListEvent) => setMatches(event.matches);\n const bind = () => matchMedia.current?.addEventListener('change', handleChange);\n const unbind = () => matchMedia.current?.removeEventListener('change', handleChange) && (matchMedia.current = null);\n\n React.useEffect(() => {\n if (when) {\n matchMedia.current = window.matchMedia(query);\n setMatches(matchMedia.current.matches);\n\n bind();\n }\n\n return () => {\n unbind();\n };\n }, [query, when]);\n\n return matches;\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs a mount effect only once.\n * This is similar to `useEffect`, but it only runs on mount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @returns {void}\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * useMountEffect(() => {\n * console.log('Mounted');\n * });\n * };\n * ```\n */\nexport function useMountEffect(effect: React.EffectCallback): void {\n const mounted = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!mounted.current) {\n mounted.current = true;\n\n effect?.();\n }\n }, []);\n}\n","import * as React from 'react';\n\n/**\n * usePresence hook is used to manage the presence of a component.\n *\n * @param open - The open state.\n * @returns An object containing the present, exiting, mounted, and ref states.\n *\n * @example\n * ```tsx\n * const { present, exiting, mounted, ref } = usePresence(true);\n *\n * return present && (\n * <div className=\"card flex justify-center\"></div>\n * );\n */\n\nexport function usePresence(open: boolean, fallbackMs: number = 500) {\n const [present, setPresent] = React.useState(open);\n const [exiting, setExiting] = React.useState(false);\n const [mounted, setMounted] = React.useState(false);\n const ref = React.useRef<HTMLElement>(null);\n const cleanupRef = React.useRef<(() => void) | null>(null);\n const rafCleanupRef = React.useRef<(() => void) | null>(null);\n\n React.useEffect(() => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n\n if (rafCleanupRef.current) {\n rafCleanupRef.current();\n rafCleanupRef.current = null;\n }\n\n if (open) {\n setPresent(true);\n setExiting(false);\n\n const rafs: number[] = [];\n\n rafs.push(\n requestAnimationFrame(() => {\n rafs.push(\n requestAnimationFrame(() => {\n rafs.push(requestAnimationFrame(() => setMounted(true)));\n })\n );\n })\n );\n\n rafCleanupRef.current = () => {\n rafs.forEach((raf) => cancelAnimationFrame(raf));\n rafs.length = 0;\n };\n } else if (ref.current) {\n setExiting(true);\n setMounted(false);\n const node = ref.current;\n let isHandled = false;\n\n const handleEnd = () => {\n if (isHandled) return;\n\n isHandled = true;\n\n setPresent(false);\n setExiting(false);\n\n node.removeEventListener('transitionend', handleEnd);\n node.removeEventListener('animationend', handleEnd);\n\n cleanupRef.current = null;\n };\n\n node.addEventListener('transitionend', handleEnd, { passive: true });\n node.addEventListener('animationend', handleEnd, { passive: true });\n\n // const fallbackTimeout = setTimeout(() => {\n // if (!isHandled) {\n // handleEnd();\n // }\n // }, fallbackMs);\n\n cleanupRef.current = () => {\n // clearTimeout(fallbackTimeout);\n\n if (!isHandled) {\n node.removeEventListener('transitionend', handleEnd);\n node.removeEventListener('animationend', handleEnd);\n }\n };\n } else {\n setMounted(false);\n setPresent(false);\n setExiting(false);\n }\n }, [open, fallbackMs]);\n\n React.useEffect(() => {\n return () => {\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n if (rafCleanupRef.current) {\n rafCleanupRef.current();\n }\n };\n }, []);\n\n return { present, exiting, mounted, ref };\n}\n","import * as React from 'react';\n\n/**\n * Used to merge and differentiate incoming props with the default props.\n * - Keys that exist in both `props1` and `props2` are placed in `props`, with values from `props1`.\n * - Keys that exist in `props1` but not in `props2` are placed in `attrs`.\n *\n * @template P1 The type of the incoming set of props.\n * @template P2 The type of the default set of props.\n *\n * @param props1 The incoming set of props (e.g., user-defined or dynamic props).\n * @param props2 The default set of props (e.g., default props).\n * @returns An object containing:\n * - `props`: A new object containing keys that exist in both `props1` and `props2`, using values from `props1`.\n * - `attrs`: A new object containing keys that exist only in `props1`, excluding any keys from `props2`.\n *\n * @example\n * ```ts\n * const { props, attrs } = useProps({ id: 'foo', className: 'bar' }, { className: 'baz' });\n *\n * console.log(props); // { className: 'bar' }\n * console.log(attrs); // { id: 'foo' }\n * ```\n */\nexport function useProps<P1, P2>(props1: P1 = {} as P1, props2: P2 = {} as P2) {\n type Props = Pick<P1 & P2, keyof P2>;\n type Attrs = Omit<P1, keyof P2>;\n type Result = { props: Props; attrs: Attrs };\n\n return React.useMemo(() => {\n const result: Result = { props: { ...props2 } as Props, attrs: {} as Attrs };\n\n Object.entries(props1 as Record<string, unknown>).forEach(([key, value]) => {\n if (key in (props2 as Record<string, unknown>)) {\n (result.props as Record<string, unknown>)[key] = value;\n } else {\n (result.attrs as Record<string, unknown>)[key] = value;\n }\n });\n\n return result;\n }, [props1, props2]);\n}\n","import * as React from 'react';\n\nexport const useQueueTask = () => {\n const tasksRef = React.useRef(new Map<string | number, () => void>());\n const scheduledRef = React.useRef(false);\n\n const flush = React.useCallback(() => {\n scheduledRef.current = false;\n const tasks = tasksRef.current;\n\n tasksRef.current = new Map();\n tasks.forEach((task) => task());\n }, []);\n\n return React.useCallback(\n (id: string | number, task: () => void) => {\n tasksRef.current.set(id, task);\n\n if (!scheduledRef.current) {\n scheduledRef.current = true;\n queueMicrotask(flush);\n }\n },\n [flush]\n );\n};\n","import { getWindowScrollTop } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * The options for the `useScrollTop` hook.\n */\nexport interface UseScrollTopOptions {\n /**\n * Reference to the target element.\n * @default window\n */\n target?: Window | Element | null;\n /**\n * Defines the threshold value of the vertical scroll position of the target to toggle the visibility.\n * @default 400\n */\n threshold?: number;\n /**\n * Defines the scrolling behaviour, 'smooth' adds an animation and 'auto' scrolls with a jump.\n * @default smooth\n */\n behavior?: ScrollBehavior;\n}\n\n/**\n * The exposes for the `useScrollTop` hook.\n */\nexport interface UseScrollTopExposes {\n /**\n * Current visible state as a boolean.\n * @default false\n */\n visible: boolean;\n /**\n * Scrolls the target element to the top.\n */\n scrollToTop: () => void;\n}\n\n/**\n * useScrollTop hook is used to enter input in a certain format such as numeric, date, currency, email and phone.\n *\n * @param {UseScrollTopOptions} options - The options for the scroll top behavior.\n * @returns {UseScrollTopExposes} - The exposed methods for the scroll top behavior.\n *\n * @example\n * ```tsx\n * const { scrollToTop, visible } = useScrollTop({\n * target: elementRef.current,\n * threshold: 400,\n * behavior: 'smooth'\n * });\n *\n * return (\n * <div ref={elementRef}>\n * {visible && (\n * <Button onClick={scrollToTop}>\n * <i className=\"pi pi-arrow-up\" />\n * </Button>\n * )}\n * </div>\n * );\n */\nexport function useScrollTop(options?: UseScrollTopOptions): UseScrollTopExposes {\n const { target = typeof window !== 'undefined' ? window : null, threshold = 400, behavior = 'smooth' } = options || {};\n const [visible, setVisible] = React.useState(false);\n\n const scrollToTop = () => {\n target?.scroll({\n top: 0,\n behavior: behavior\n });\n };\n\n React.useEffect(() => {\n if (!target) return;\n\n const checkVisibility = (scrollY: number) => {\n if (scrollY > threshold) setVisible(true);\n else setVisible(false);\n };\n\n const onScroll = () => {\n const scrollY = target === window ? getWindowScrollTop() : (target as Element).scrollTop;\n\n checkVisibility(scrollY);\n };\n\n target.addEventListener('scroll', onScroll);\n\n return () => {\n target.removeEventListener('scroll', onScroll);\n };\n }, [target, threshold]);\n\n return {\n //state\n visible,\n //methods\n scrollToTop\n };\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs an unmount effect only once.\n * This is similar to `useEffect`, but it only runs on unmount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @returns {void}\n *\n * @example\n * ```tsx\n * const Component = () => {\n * useUnmountEffect(() => {\n * console.log('Unmounted');\n * });\n * };\n * ```\n */\nexport function useUnmountEffect(effect: React.EffectCallback): void {\n React.useEffect(() => {\n return () => {\n effect?.();\n };\n }, []);\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs an update effect whenever dependencies change.\n * This is similar to `useEffect`, but it does not run on mount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @param {React.DependencyList} dependencies the dependencies\n * @returns {void}\n *\n * @example\n * ```tsx\n * const Component = ({ value }) => {\n * useUpdateEffect(() => {\n * console.log('Updated');\n * }, [value]);\n * };\n * ```\n */\nexport function useUpdateEffect(effect: React.EffectCallback, dependencies?: React.DependencyList): void {\n const mounted = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!mounted.current) {\n mounted.current = true;\n\n return;\n }\n\n return effect?.();\n }, dependencies);\n}\n","import * as React from 'react';\n\n/**\n * Starts a view transition.\n *\n * @returns A function that starts a view transition.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const startTransition = useViewTransition();\n *\n * const handleClick = () => {\n * startTransition(() => {\n * // Perform some work\n * });\n * };\n *\n * return <button onClick={handleClick}>Click me</button>;\n * };\n */\nexport function useViewTransition() {\n const startTransition = React.useCallback((callback: () => void) => {\n if (document.startViewTransition) {\n document.startViewTransition(() => {\n callback();\n });\n } else {\n callback();\n }\n }, []);\n\n return startTransition;\n}\n","import * as React from 'react';\n\n/**\n * useVisibilityChange hook is used to check if the document is visible.\n *\n * @returns A boolean indicating whether the document is visible.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const isVisible = useVisibilityChange();\n *\n * return <div>{isVisible ? 'Visible' : 'Hidden'}</div>;\n * };\n */\nexport function useVisibilityChange() {\n const [isVisible, setIsVisible] = React.useState(true);\n\n React.useEffect(() => {\n const handleVisibilityChange = () => {\n setIsVisible(!document.hidden);\n };\n\n handleVisibilityChange();\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n return isVisible;\n}\n","import { useProps } from '@primereact/hooks';\nimport type { LocaleProps } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultLocaleProps } from './Locale.props';\n\nexport const LocaleContext = React.createContext<LocaleProps | undefined>(undefined);\n\nexport const LocaleProvider = (inProps: React.PropsWithChildren<LocaleProps> = {}) => {\n const { attrs } = useProps(inProps, defaultLocaleProps as LocaleProps);\n const value = undefined;\n\n return <LocaleContext.Provider value={value}>{resolve(attrs.children, value)}</LocaleContext.Provider>;\n};\n","import type { LocaleProps } from '@primereact/types/core';\n\nexport const defaultLocaleProps: LocaleProps = {\n lang: 'en'\n};\n","import * as React from 'react';\nimport { LocaleContext } from './Locale.context';\n\nexport function useLocale() {\n const context = React.useContext(LocaleContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a LocaleProvider');\n }\n\n return context;\n}\n","import { useProps } from '@primereact/hooks';\nimport type { PassThroughProps } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultPTProps } from './PassThrough.props';\n\nexport const PassThroughContext = React.createContext<PassThroughProps | undefined>(undefined);\n\nexport const PassThroughProvider = (inProps: React.PropsWithChildren<PassThroughProps> = {}) => {\n const { props, attrs } = useProps(inProps, defaultPTProps as PassThroughProps);\n const { value, ...rest } = props;\n\n const pt = {\n value,\n options: rest\n };\n\n return <PassThroughContext.Provider value={pt}>{resolve(attrs.children, pt)}</PassThroughContext.Provider>;\n};\n","import type { PassThroughProps } from '@primereact/types/core';\n\nexport const defaultPTProps: PassThroughProps = {\n value: undefined,\n mergeProps: false,\n mergeSections: true\n};\n","import * as React from 'react';\nimport { PassThroughContext } from './PassThrough.context';\n\nexport function usePassThrough() {\n const context = React.useContext(PassThroughContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a PassThroughProvider');\n }\n\n return context;\n}\n","import { deepMerge } from '@primeuix/utils/object';\n\nexport default function definePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n return deepMerge(...presets) as T;\n}\n","import { deepMerge } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport default function updatePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n const newPreset = deepMerge(Theme.getPreset(), ...presets);\n\n Theme.setPreset(newPreset);\n\n return newPreset as T;\n}\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nconst ThemeService = EventBus();\n\nexport default ThemeService;\n","import { getKeyValue, isArray, isNotEmpty, isNumber, isObject, isString, matchRegex, toKebabCase } from '@primeuix/utils/object';\n\nexport const EXPR_REGEX = /{([^}]*)}/g; // Exp: '{a}', '{a.b}', '{a.b.c}' etc.\nexport const CALC_REGEX = /(\\d+\\s+[\\+\\-\\*\\/]\\s+\\d+)/g;\nexport const VAR_REGEX = /var\\([^)]+\\)/g;\n\nexport function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c: string, i: number) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n\nexport function merge(value1: any, value2: any): void {\n if (isArray(value1)) {\n value1.push(...(value2 || []));\n } else if (isObject(value1)) {\n Object.assign(value1, value2);\n }\n}\n\nexport function toValue(value: any): any {\n // Check for Figma ($value-$type)\n return isObject(value) && value.hasOwnProperty('$value') && value.hasOwnProperty('$type') ? (value as any).$value : value;\n}\n\nexport function toUnit(value: string, variable: string = ''): string {\n const excludedProperties = ['opacity', 'z-index', 'line-height', 'font-weight', 'flex', 'flex-grow', 'flex-shrink', 'order'];\n\n if (!excludedProperties.some((property) => variable.endsWith(property))) {\n const val = `${value}`.trim();\n const valArr = val.split(' ');\n\n return valArr.map((v) => (isNumber(v) ? `${v}px` : v)).join(' ');\n }\n\n return value;\n}\n\nexport function toNormalizePrefix(prefix: string): string {\n return prefix.replaceAll(/ /g, '').replace(/[^\\w]/g, '-');\n}\n\nexport function toNormalizeVariable(prefix: string = '', variable: string = ''): string {\n return toNormalizePrefix(`${isString(prefix, false) && isString(variable, false) ? `${prefix}-` : prefix}${variable}`);\n}\n\nexport function getVariableName(prefix: string = '', variable: string = ''): string {\n return `--${toNormalizeVariable(prefix, variable)}`;\n}\n\nexport function hasOddBraces(str: string = ''): boolean {\n const openBraces = (str.match(/{/g) || []).length;\n const closeBraces = (str.match(/}/g) || []).length;\n\n return (openBraces + closeBraces) % 2 !== 0;\n}\n\nexport function getVariableValue(value: any, variable: string = '', prefix: string = '', excludedKeyRegexes: RegExp[] = [], fallback?: string): string | undefined {\n if (isString(value)) {\n const val = value.trim();\n\n if (hasOddBraces(val)) {\n return undefined;\n } else if (matchRegex(val, EXPR_REGEX)) {\n const _val = val.replaceAll(EXPR_REGEX, (v: string) => {\n const path = v.replace(/{|}/g, '');\n const keys = path.split('.').filter((_v: string) => !excludedKeyRegexes.some((_r) => matchRegex(_v, _r)));\n\n return `var(${getVariableName(prefix, toKebabCase(keys.join('-')))}${isNotEmpty(fallback) ? `, ${fallback}` : ''})`;\n });\n\n return matchRegex(_val.replace(VAR_REGEX, '0'), CALC_REGEX) ? `calc(${_val})` : _val;\n }\n\n return val; //toUnit(val, variable);\n } else if (isNumber(value)) {\n return value; //toUnit(value, variable);\n }\n\n return undefined;\n}\n\nexport function getComputedValue(obj = {}, value: any): any {\n if (isString(value)) {\n const val = value.trim();\n\n return matchRegex(val, EXPR_REGEX) ? val.replaceAll(EXPR_REGEX, (v: string) => getKeyValue(obj, v.replace(/{|}/g, '')) as string) : val;\n } else if (isNumber(value)) {\n return value;\n }\n\n return undefined;\n}\n\nexport function setProperty(properties: string[], key: string, value?: string) {\n if (isString(key, false)) {\n properties.push(`${key}:${value};`);\n }\n}\n\nexport function getRule(selector: string, properties: string): string {\n if (selector) {\n return `${selector}{${properties}}`;\n }\n\n return '';\n}\n\nexport function evaluateDtExpressions(input: string, fn: (...args: any[]) => string): string {\n if (input.indexOf('dt(') === -1) return input;\n\n function fastParseArgs(str: string, fn: (...args: (string | number)[]) => string): (string | number)[] {\n const args: (string | number)[] = [];\n let i = 0;\n let current = '';\n let quote: string | null = null;\n let depth = 0;\n\n while (i <= str.length) {\n const c = str[i];\n\n if ((c === '\"' || c === \"'\" || c === '`') && str[i - 1] !== '\\\\') {\n quote = quote === c ? null : c;\n }\n\n if (!quote) {\n if (c === '(') depth++;\n if (c === ')') depth--;\n\n if ((c === ',' || i === str.length) && depth === 0) {\n const arg = current.trim();\n\n if (arg.startsWith('dt(')) {\n args.push(evaluateDtExpressions(arg, fn));\n } else {\n args.push(parseArg(arg));\n }\n\n current = '';\n i++;\n continue;\n }\n }\n\n if (c !== undefined) current += c;\n i++;\n }\n\n return args;\n }\n\n function parseArg(arg: string): string | number {\n const q = arg[0];\n\n if ((q === '\"' || q === \"'\" || q === '`') && arg[arg.length - 1] === q) {\n return arg.slice(1, -1);\n }\n\n const num = Number(arg);\n\n return isNaN(num) ? arg : num;\n }\n\n const indices: [number, number][] = [];\n const stack: number[] = [];\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === 'd' && input.slice(i, i + 3) === 'dt(') {\n stack.push(i);\n i += 2;\n } else if (input[i] === ')' && stack.length > 0) {\n const start = stack.pop()!;\n\n if (stack.length === 0) {\n indices.push([start, i]);\n }\n }\n }\n\n if (!indices.length) return input;\n\n for (let i = indices.length - 1; i >= 0; i--) {\n const [start, end] = indices[i];\n const inner = input.slice(start + 3, end);\n const args = fastParseArgs(inner, fn);\n const resolved = fn(...args);\n\n input = input.slice(0, start) + resolved + input.slice(end + 1);\n }\n\n return input;\n}\n","import { isEmpty, isNotEmpty, isObject, matchRegex, minifyCSS, resolve } from '@primeuix/utils/object';\nimport { dt, toVariables } from '../helpers/index';\nimport { CALC_REGEX, EXPR_REGEX, getRule, toTokenKey, VAR_REGEX } from './sharedUtils';\n\nexport default {\n regex: {\n rules: {\n class: {\n pattern: /^\\.([a-zA-Z][\\w-]*)$/,\n resolve(value: string) {\n return { type: 'class', selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n attr: {\n pattern: /^\\[(.*)\\]$/,\n resolve(value: string) {\n return { type: 'attr', selector: `:root${value},:host${value}`, matched: this.pattern.test(value.trim()) };\n }\n },\n media: {\n pattern: /^@media (.*)$/,\n resolve(value: string) {\n return { type: 'media', selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n system: {\n pattern: /^system$/,\n resolve(value: string) {\n return { type: 'system', selector: '@media (prefers-color-scheme: dark)', matched: this.pattern.test(value.trim()) };\n }\n },\n custom: {\n resolve(value: string) {\n return { type: 'custom', selector: value, matched: true };\n }\n }\n },\n resolve(value: any) {\n const rules = Object.keys(this.rules)\n .filter((k) => k !== 'custom')\n .map((r) => (this.rules as any)[r]);\n\n return [value].flat().map((v) => rules.map((r) => r.resolve(v)).find((rr) => rr.matched) ?? this.rules.custom.resolve(v));\n }\n },\n _toVariables(theme: any, options: any) {\n return toVariables(theme, { prefix: options?.prefix });\n },\n getCommon({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n let primitive_css, primitive_tokens, semantic_css, semantic_tokens, global_css, global_tokens, style;\n\n // @todo - check if options is not empty\n if (isNotEmpty(preset) && options.transform !== 'strict') {\n const { primitive, semantic, extend } = preset;\n const { colorScheme, ...sRest } = semantic || {};\n const { colorScheme: eColorScheme, ...eRest } = extend || {};\n const { dark, ...csRest } = colorScheme || {};\n const { dark: eDark, ...ecsRest } = eColorScheme || {};\n const prim_var: any = isNotEmpty(primitive) ? this._toVariables({ primitive }, options) : {};\n const sRest_var: any = isNotEmpty(sRest) ? this._toVariables({ semantic: sRest }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ light: csRest }, options) : {};\n const csDark_var: any = isNotEmpty(dark) ? this._toVariables({ dark }, options) : {};\n const eRest_var: any = isNotEmpty(eRest) ? this._toVariables({ semantic: eRest }, options) : {};\n const ecsRest_var: any = isNotEmpty(ecsRest) ? this._toVariables({ light: ecsRest }, options) : {};\n const ecsDark_var: any = isNotEmpty(eDark) ? this._toVariables({ dark: eDark }, options) : {};\n\n const [prim_css, prim_tokens] = [prim_var.declarations ?? '', prim_var.tokens];\n const [sRest_css, sRest_tokens] = [sRest_var.declarations ?? '', sRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [csDark_css, csDark_tokens] = [csDark_var.declarations ?? '', csDark_var.tokens || []];\n const [eRest_css, eRest_tokens] = [eRest_var.declarations ?? '', eRest_var.tokens || []];\n const [ecsRest_css, ecsRest_tokens] = [ecsRest_var.declarations ?? '', ecsRest_var.tokens || []];\n const [ecsDark_css, ecsDark_tokens] = [ecsDark_var.declarations ?? '', ecsDark_var.tokens || []];\n\n primitive_css = this.transformCSS(name, prim_css, 'light', 'variable', options, set, defaults);\n primitive_tokens = prim_tokens;\n\n const semantic_light_css = this.transformCSS(name, `${sRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults);\n const semantic_dark_css = this.transformCSS(name, `${csDark_css}`, 'dark', 'variable', options, set, defaults);\n\n semantic_css = `${semantic_light_css}${semantic_dark_css}`;\n semantic_tokens = [...new Set([...sRest_tokens, ...csRest_tokens, ...csDark_tokens])];\n\n const global_light_css = this.transformCSS(name, `${eRest_css}${ecsRest_css}color-scheme:light`, 'light', 'variable', options, set, defaults);\n const global_dark_css = this.transformCSS(name, `${ecsDark_css}color-scheme:dark`, 'dark', 'variable', options, set, defaults);\n\n global_css = `${global_light_css}${global_dark_css}`;\n global_tokens = [...new Set([...eRest_tokens, ...ecsRest_tokens, ...ecsDark_tokens])];\n\n style = resolve(preset.css, { dt }) as string;\n }\n\n return {\n primitive: {\n css: primitive_css,\n tokens: primitive_tokens\n },\n semantic: {\n css: semantic_css,\n tokens: semantic_tokens\n },\n global: {\n css: global_css,\n tokens: global_tokens\n },\n style\n };\n },\n getPreset({ name = '', preset = {}, options, params, set, defaults, selector }: any) {\n let p_css, p_tokens, p_style;\n\n if (isNotEmpty(preset) && options.transform !== 'strict') {\n const _name = name.replace('-directive', '');\n const { colorScheme, extend, css, ...vRest } = preset;\n const { colorScheme: eColorScheme, ...evRest } = extend || {};\n const { dark, ...csRest } = colorScheme || {};\n const { dark: ecsDark, ...ecsRest } = eColorScheme || {};\n const vRest_var: any = isNotEmpty(vRest) ? this._toVariables({ [_name]: { ...vRest, ...evRest } }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ [_name]: { ...csRest, ...ecsRest } }, options) : {};\n const csDark_var: any = isNotEmpty(dark) ? this._toVariables({ [_name]: { ...dark, ...ecsDark } }, options) : {};\n\n const [vRest_css, vRest_tokens] = [vRest_var.declarations ?? '', vRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [csDark_css, csDark_tokens] = [csDark_var.declarations ?? '', csDark_var.tokens || []];\n\n const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults, selector);\n const dark_variable_css = this.transformCSS(_name, csDark_css, 'dark', 'variable', options, set, defaults, selector);\n\n p_css = `${light_variable_css}${dark_variable_css}`;\n p_tokens = [...new Set([...vRest_tokens, ...csRest_tokens, ...csDark_tokens])];\n\n p_style = resolve(css, { dt }) as string;\n }\n\n return {\n css: p_css,\n tokens: p_tokens,\n style: p_style\n };\n },\n getPresetC({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n const cPreset = preset?.components?.[name];\n\n return this.getPreset({ name, preset: cPreset, options, params, set, defaults });\n },\n // @deprecated - use getPresetC instead\n getPresetD({ name = '', theme = {}, params, set, defaults }: any) {\n const dName = name.replace('-directive', '');\n const { preset, options } = theme;\n const dPreset = preset?.components?.[dName] || preset?.directives?.[dName];\n\n return this.getPreset({ name: dName, preset: dPreset, options, params, set, defaults });\n },\n applyDarkColorScheme(options: any) {\n return !(options.darkModeSelector === 'none' || options.darkModeSelector === false);\n },\n getColorSchemeOption(options: any, defaults: any) {\n return this.applyDarkColorScheme(options) ? this.regex.resolve(options.darkModeSelector === true ? defaults.options.darkModeSelector : (options.darkModeSelector ?? defaults.options.darkModeSelector)) : [];\n },\n getLayerOrder(name: string, options: any = {}, params: any, defaults: any) {\n const { cssLayer } = options;\n\n if (cssLayer) {\n const order = resolve(cssLayer.order || cssLayer.name || 'primeui', params);\n\n return `@layer ${order}`;\n }\n\n return '';\n },\n getCommonStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const common = this.getCommon({ name, theme, params, set, defaults });\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return Object.entries(common || {})\n .reduce((acc: any, [key, value]) => {\n if (isObject(value) && Object.hasOwn(value, 'css')) {\n const _css = minifyCSS((value as any).css);\n const id = `${key}-variables`;\n\n acc.push(`<style type=\"text/css\" data-primevue-style-id=\"${id}\" ${_props}>${_css}</style>`); // @todo data-primevue -> data-primeui check in primevue usestyle\n }\n\n return acc;\n }, [])\n .join('');\n },\n getStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const options = { name, theme, params, set, defaults };\n const preset_css = (name.includes('-directive') ? this.getPresetD(options) : this.getPresetC(options))?.css;\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return preset_css ? `<style type=\"text/css\" data-primevue-style-id=\"${name}-variables\" ${_props}>${minifyCSS(preset_css)}</style>` : ''; // @todo check\n },\n createTokens(obj: any = {}, defaults: any, parentKey: string = '', parentPath: string = '', tokens: any = {}) {\n const computedFn = function (this: any, colorScheme: string, tokenPathMap: any = {}, stack: string[] = []) {\n if (stack.includes(this.path)) {\n console.warn(`Circular reference detected at ${this.path}`);\n\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: undefined\n };\n }\n\n stack.push(this.path);\n tokenPathMap['name'] = this.path;\n tokenPathMap['binding'] ||= {};\n\n let computedValue: any = this.value;\n\n if (typeof this.value === 'string' && EXPR_REGEX.test(this.value)) {\n const val = this.value.trim();\n const _val = val.replace(EXPR_REGEX, (v: any) => {\n const refPath = v.slice(1, -1);\n const refToken = this.tokens[refPath];\n\n if (!refToken) {\n console.warn(`Token not found for path: ${refPath}`);\n\n return `__UNRESOLVED__`;\n }\n\n const computed = refToken.computed(colorScheme, tokenPathMap, stack);\n\n if (Array.isArray(computed) && computed.length === 2) {\n return `light-dark(${computed[0].value},${computed[1].value})`;\n } else {\n return computed?.value ?? `__UNRESOLVED__`;\n }\n });\n\n computedValue = CALC_REGEX.test(_val.replace(VAR_REGEX, '0')) ? `calc(${_val})` : _val;\n }\n\n if (isEmpty(tokenPathMap['binding'])) {\n delete tokenPathMap['binding'];\n }\n\n stack.pop();\n\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: computedValue.includes('__UNRESOLVED__') ? undefined : computedValue\n };\n };\n\n const traverse = (obj: any, parentKey: string, parentPath: string) => {\n Object.entries(obj).forEach(([key, value]) => {\n const currentKey = matchRegex(key, defaults.variable.excludedKeyRegex) ? parentKey : parentKey ? `${parentKey}.${toTokenKey(key)}` : toTokenKey(key);\n\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n\n if (isObject(value)) {\n traverse(value, currentKey, currentPath);\n } else {\n if (!tokens[currentKey]) {\n tokens[currentKey] = {\n paths: [],\n computed: (colorScheme: string, tokenPathMap: any = {}, stack: string[] = []) => {\n if (tokens[currentKey].paths.length === 1) {\n return tokens[currentKey].paths[0].computed(tokens[currentKey].paths[0].scheme, tokenPathMap['binding'], stack);\n } else if (colorScheme && colorScheme !== 'none') {\n for (let i = 0; i < tokens[currentKey].paths.length; i++) {\n const p = tokens[currentKey].paths[i];\n\n if (p.scheme === colorScheme) {\n return p.computed(colorScheme, tokenPathMap['binding'], stack);\n }\n }\n }\n\n return tokens[currentKey].paths.map((p: any) => p.computed(p.scheme, tokenPathMap[p.scheme], stack));\n }\n };\n }\n\n tokens[currentKey].paths.push({\n path: currentPath,\n value,\n scheme: currentPath.includes('colorScheme.light') ? 'light' : currentPath.includes('colorScheme.dark') ? 'dark' : 'none',\n computed: computedFn,\n tokens\n });\n }\n });\n };\n\n traverse(obj, parentKey, parentPath);\n\n return tokens;\n },\n getTokenValue(tokens: any, path: string, defaults: any) {\n const normalizePath = (str: string) => {\n const strArr = str.split('.');\n\n return strArr.filter((s) => !matchRegex(s.toLowerCase(), defaults.variable.excludedKeyRegex)).join('.');\n };\n\n const token = normalizePath(path);\n const colorScheme = path.includes('colorScheme.light') ? 'light' : path.includes('colorScheme.dark') ? 'dark' : undefined;\n const computedValues = [tokens[token as any]?.computed(colorScheme)].flat().filter((computed) => computed);\n\n return computedValues.length === 1\n ? computedValues[0].value\n : computedValues.reduce((acc = {}, computed) => {\n const { colorScheme: cs, ...rest } = computed;\n\n acc[cs] = rest;\n\n return acc;\n }, undefined);\n },\n getSelectorRule(selector1: any, selector2: any, type: string, css: string) {\n return type === 'class' || type === 'attr' ? getRule(isNotEmpty(selector2) ? `${selector1}${selector2},${selector1} ${selector2}` : selector1, css) : getRule(selector1, getRule(selector2 ?? ':root,:host', css));\n },\n transformCSS(name: string, css: string, mode?: string, type?: string, options: any = {}, set?: any, defaults?: any, selector?: string) {\n if (isNotEmpty(css)) {\n const { cssLayer } = options;\n\n if (type !== 'style') {\n const colorSchemeOption = this.getColorSchemeOption(options, defaults);\n\n css =\n mode === 'dark'\n ? colorSchemeOption.reduce((acc, { type, selector: _selector }) => {\n if (isNotEmpty(_selector)) {\n acc += _selector.includes('[CSS]') ? _selector.replace('[CSS]', css) : this.getSelectorRule(_selector, selector, type, css);\n }\n\n return acc;\n }, '')\n : getRule(selector ?? ':root,:host', css);\n }\n\n if (cssLayer) {\n const layerOptions = {\n name: 'primeui',\n order: 'primeui'\n };\n\n isObject(cssLayer) && (layerOptions.name = resolve((cssLayer as any).name, { name, type }));\n\n if (isNotEmpty(layerOptions.name)) {\n css = getRule(`@layer ${layerOptions.name}`, css);\n set?.layerNames(layerOptions.name);\n }\n }\n\n return css;\n }\n\n return '';\n }\n};\n","function normalizeColor(color: string): string {\n if (color.length === 4) {\n return `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n }\n\n return color;\n}\n\nfunction hexToRgb(hex: string) {\n const bigint = parseInt(hex.substring(1), 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return { r, g, b };\n}\n\nfunction rgbToHex(r: number, g: number, b: number) {\n return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n}\n\nexport default (color1: string, color2: string, weight: number): string => {\n color1 = normalizeColor(color1);\n color2 = normalizeColor(color2);\n\n const p = weight / 100;\n const w = p * 2 - 1;\n const w1 = (w + 1) / 2.0;\n const w2 = 1 - w1;\n\n const rgb1 = hexToRgb(color1);\n const rgb2 = hexToRgb(color2);\n\n const r = Math.round(rgb1.r * w1 + rgb2.r * w2);\n const g = Math.round(rgb1.g * w1 + rgb2.g * w2);\n const b = Math.round(rgb1.b * w1 + rgb2.b * w2);\n\n return rgbToHex(r, g, b);\n};\n","import { matchRegex } from '@primeuix/utils';\nimport type { ColorScale } from '../..';\nimport { EXPR_REGEX } from '../../utils/index';\nimport shade from './shade';\nimport tint from './tint';\n\nconst scales: number[] = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\nexport default (color: string): string | ColorScale => {\n if (matchRegex(color, EXPR_REGEX)) {\n const token = color.replace(/{|}/g, '');\n\n return scales.reduce<ColorScale>((acc, scale) => {\n acc[scale as keyof ColorScale] = `{${token}.${scale}}`;\n\n return acc;\n }, {});\n }\n\n return typeof color === 'string'\n ? scales.reduce<ColorScale>((acc, scale, i) => {\n acc[scale as keyof ColorScale] = i <= 5 ? tint(color, (5 - i) * 19) : shade(color, (i - 5) * 15);\n\n return acc;\n }, {})\n : color;\n};\n","import mix from './mix';\n\nexport default (color: string, percent: number) => mix('#000000', color, percent);\n","import mix from './mix';\n\nexport default (color: string, percent: number) => mix('#ffffff', color, percent);\n","import { resolve } from '@primeuix/utils';\nimport { evaluateDtExpressions, type StyleType } from '..';\nimport { dt } from './dt';\n\nexport function css(strings: TemplateStringsArray | StyleType, ...exprs: unknown[]): string | undefined {\n if (strings instanceof Array) {\n const raw = strings.reduce((acc, str, i) => acc + str + (resolve(exprs[i], { dt }) ?? ''), '');\n\n return evaluateDtExpressions(raw, dt);\n }\n\n return resolve(strings as unknown, { dt }) as string | undefined;\n}\n","import { isEmpty, matchRegex } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { EXPR_REGEX, getVariableValue } from '../utils/index';\n\nexport const $dt = (tokenPath: string): { name: string; variable: string; value: unknown } => {\n const theme = Theme.getTheme();\n\n const variable = dtwt(theme, tokenPath, undefined, 'variable');\n const name = variable?.match(/--[\\w-]+/g)?.[0];\n const value = dtwt(theme, tokenPath, undefined, 'value');\n\n return {\n name,\n variable,\n value\n };\n};\n\nexport const dt = (...args: Parameters<typeof dtwt> extends [unknown, ...infer Rest] ? Rest : never) => {\n return dtwt(Theme.getTheme(), ...args);\n};\n\nexport const dtwt = (theme: any = {}, tokenPath: string, fallback?: string, type?: string) => {\n if (tokenPath) {\n const { variable: VARIABLE, options: OPTIONS } = Theme.defaults || {};\n const { prefix, transform } = theme?.options || OPTIONS || {};\n const token = matchRegex(tokenPath, EXPR_REGEX) ? tokenPath : `{${tokenPath}}`;\n const isStrictTransform = type === 'value' || (isEmpty(type) && transform === 'strict'); // @todo - TRANSFORM: strict | lenient(default)\n\n return isStrictTransform ? Theme.getTokenValue(tokenPath) : getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex], fallback);\n }\n\n return '';\n};\n","import { mergeKeys } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport const $t = (theme: any = {}) => {\n let { preset: _preset, options: _options } = theme;\n\n return {\n preset(value: any) {\n _preset = _preset ? mergeKeys(_preset, value) : value;\n\n return this;\n },\n options(value: any) {\n _options = _options ? { ..._options, ...value } : value;\n\n return this;\n },\n // features\n primaryPalette(primary: any) {\n const { semantic } = _preset || {};\n\n _preset = { ..._preset, semantic: { ...semantic, primary } };\n\n return this;\n },\n surfacePalette(surface: any) {\n const { semantic } = _preset || {};\n const lightSurface = surface && Object.hasOwn(surface, 'light') ? surface.light : surface;\n const darkSurface = surface && Object.hasOwn(surface, 'dark') ? surface.dark : surface;\n const newColorScheme = {\n colorScheme: {\n light: { ...semantic?.colorScheme?.light, ...(!!lightSurface && { surface: lightSurface }) },\n dark: { ...semantic?.colorScheme?.dark, ...(!!darkSurface && { surface: darkSurface }) }\n }\n };\n\n _preset = { ..._preset, semantic: { ...semantic, ...newColorScheme } };\n\n return this;\n },\n // actions\n define({ useDefaultPreset = false, useDefaultOptions = false } = {}) {\n return {\n preset: useDefaultPreset ? Theme.getPreset() : _preset,\n options: useDefaultOptions ? Theme.getOptions() : _options\n };\n },\n update({ mergePresets = true, mergeOptions = true } = {}) {\n const newTheme = {\n preset: mergePresets ? mergeKeys(Theme.getPreset(), _preset) : _preset,\n options: mergeOptions ? { ...Theme.getOptions(), ..._options } : _options\n };\n\n Theme.setTheme(newTheme);\n\n return newTheme;\n },\n use(options: any) {\n const newTheme = this.define(options);\n\n Theme.setTheme(newTheme);\n\n return newTheme;\n }\n };\n};\n","import { isObject, matchRegex, toKebabCase } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { getRule, getVariableName, getVariableValue, setProperty, toNormalizeVariable, toValue } from '../utils/index';\n\nexport interface toVariableOptions {\n prefix?: string;\n selector?: string;\n excludedKeyRegex?: RegExp;\n}\n\nexport interface toVariableOutput {\n value: string[];\n tokens: string[];\n declarations: string;\n css: string;\n}\n\nexport default function (theme: any, options: toVariableOptions = {}): toVariableOutput {\n const VARIABLE = Theme.defaults.variable;\n const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options;\n\n const tokens: string[] = [];\n const variables: string[] = [];\n\n const stack = [{ node: theme, path: prefix }];\n\n while (stack.length) {\n const { node, path } = stack.pop()!;\n\n for (const key in node) {\n const raw = node[key];\n const val = toValue(raw);\n\n const skipNormalize = matchRegex(key, excludedKeyRegex);\n const variablePath = skipNormalize ? toNormalizeVariable(path) : toNormalizeVariable(path, toKebabCase(key));\n\n if (isObject(val)) {\n stack.push({ node: val, path: variablePath });\n } else {\n const varName = getVariableName(variablePath);\n const varValue = getVariableValue(val, variablePath, prefix, [excludedKeyRegex]);\n\n setProperty(variables, varName, varValue);\n\n let token = variablePath;\n\n if (prefix && token.startsWith(prefix + '-')) {\n token = token.slice(prefix.length + 1);\n }\n\n tokens.push(token.replace(/-/g, '.'));\n }\n }\n }\n\n const declarations = variables.join('');\n\n return {\n value: variables,\n tokens,\n declarations,\n css: getRule(selector, declarations)\n };\n}\n","import ThemeService from '../service/index';\nimport { ThemeUtils } from '../utils/index';\n\nexport default {\n defaults: {\n variable: {\n prefix: 'p',\n selector: ':root,:host',\n excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states|extend|css)$/gi\n },\n options: {\n prefix: 'p',\n darkModeSelector: 'system',\n cssLayer: false\n }\n },\n _theme: undefined,\n _layerNames: new Set(),\n _loadedStyleNames: new Set(),\n _loadingStyles: new Set(),\n _tokens: {},\n update(newValues: any = {}) {\n const { theme } = newValues;\n\n if (theme) {\n this._theme = {\n ...theme,\n options: {\n ...this.defaults.options,\n ...theme.options\n }\n };\n this._tokens = ThemeUtils.createTokens(this.preset, this.defaults);\n this.clearLoadedStyleNames();\n }\n },\n get theme(): any {\n return this._theme;\n },\n get preset() {\n return this.theme?.preset || {};\n },\n get options() {\n return this.theme?.options || {};\n },\n get tokens() {\n return this._tokens;\n },\n getTheme() {\n return this.theme;\n },\n setTheme(newValue: any) {\n this.update({ theme: newValue });\n ThemeService.emit('theme:change', newValue);\n },\n getPreset() {\n return this.preset;\n },\n setPreset(newValue: any) {\n this._theme = { ...this.theme, preset: newValue };\n this._tokens = ThemeUtils.createTokens(newValue, this.defaults);\n\n this.clearLoadedStyleNames();\n ThemeService.emit('preset:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getOptions() {\n return this.options;\n },\n setOptions(newValue: any) {\n this._theme = { ...this.theme, options: newValue };\n\n this.clearLoadedStyleNames();\n ThemeService.emit('options:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getLayerNames() {\n return [...this._layerNames];\n },\n setLayerNames(layerName: any) {\n this._layerNames.add(layerName);\n },\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name: string) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name: string) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name: string) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n },\n getTokenValue(tokenPath: string) {\n return ThemeUtils.getTokenValue(this.tokens, tokenPath, this.defaults);\n },\n getCommon(name = '', params: any) {\n return ThemeUtils.getCommon({ name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getComponent(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetC(options);\n },\n // @deprecated - use getComponent instead\n getDirective(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetD(options);\n },\n getCustomPreset(name = '', preset: any, selector: string, params: any) {\n const options = { name, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPreset(options);\n },\n getLayerOrderCSS(name = '') {\n return ThemeUtils.getLayerOrder(name, this.options, { names: this.getLayerNames() }, this.defaults);\n },\n transformCSS(name = '', css: string, type: string = 'style', mode?: string) {\n return ThemeUtils.transformCSS(name, css, mode, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults);\n },\n getCommonStyleSheet(name = '', params: any, props = {}) {\n return ThemeUtils.getCommonStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getStyleSheet(name: string, params: any, props = {}) {\n return ThemeUtils.getStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n onStyleMounted(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleUpdated(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleLoaded(event: any, { name }: { name: any }) {\n if (this._loadingStyles.size) {\n this._loadingStyles.delete(name);\n\n ThemeService.emit(`theme:${name}:load`, event); // Exp: ThemeService.emit('theme:panel-style:load', event)\n !this._loadingStyles.size && ThemeService.emit('theme:load');\n }\n }\n};\n","import { $t } from '../helpers/index';\n\nexport default function updatePrimaryPalette<T = unknown, P = unknown>(palette?: T): P {\n return $t().primaryPalette(palette).update().preset as P;\n}\n","import { $t } from '../helpers/index';\n\nexport default function updateSurfacePalette<T = unknown, P = unknown>(palette?: T): P {\n return $t().surfacePalette(palette).update().preset as P;\n}\n","import { deepMerge } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport default function usePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n const newPreset = deepMerge(...presets);\n\n Theme.setPreset(newPreset);\n\n return newPreset as T;\n}\n","import { $t } from '../helpers/index';\n\nexport default function useTheme<T = unknown>(theme: T): T {\n return $t(theme).update({ mergePresets: false }) as T;\n}\n","import { createStyleMarkup, isNotEmpty } from '@primeuix/utils';\n\nexport interface StyleSheetProps {\n attrs?: Record<string, unknown>;\n}\n\nexport interface StyleMeta<E = HTMLStyleElement> {\n name?: string;\n css?: string;\n attrs?: Record<string, unknown>;\n markup?: string;\n element?: E;\n}\n\nclass StyleSheet<E = HTMLStyleElement> {\n _styles: Map<string, StyleMeta<E>>;\n _attrs: Record<string, unknown>;\n constructor({ attrs }: StyleSheetProps = {}) {\n this._styles = new Map();\n this._attrs = attrs || {};\n }\n get(key: string) {\n return this._styles.get(key);\n }\n has(key: string) {\n return this._styles.has(key);\n }\n delete(key: string) {\n this._styles.delete(key);\n }\n clear() {\n this._styles.clear();\n }\n add(key: string, css?: string) {\n if (isNotEmpty(css)) {\n const meta = {\n name: key,\n css,\n attrs: this._attrs,\n markup: createStyleMarkup(css, this._attrs)\n } satisfies StyleMeta<E>;\n\n this._styles.set(key, {\n ...meta,\n element: this.createStyleElement(meta)\n });\n }\n }\n update() {\n // @todo\n }\n getStyles() {\n return this._styles;\n }\n getAllCSS() {\n return [...this._styles.values()].map((style) => style.css).filter(String);\n }\n getAllMarkup() {\n return [...this._styles.values()].map((style) => style.markup).filter(String);\n }\n getAllElements() {\n return [...this._styles.values()].map((style) => style.element);\n }\n /**\n * Used to create a style element.\n *\n * @param {StyleMeta} meta\n * @returns {HTMLStyleElement | undefined}\n */\n // eslint-disable-next-line\n createStyleElement(meta: StyleMeta = {}): E | undefined {\n return undefined;\n }\n}\n\nexport default StyleSheet;\n","import { useProps } from '@primereact/hooks';\nimport type { ThemeProps } from '@primereact/types/core';\nimport { Theme } from '@primeuix/styled';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultThemeProps } from './Theme.props';\n\nexport const ThemeContext = React.createContext<ThemeProps | null>(null);\n\nexport const ThemeProvider = (inProps: ThemeProps = {}) => {\n const { props } = useProps(inProps, defaultThemeProps);\n const { stylesheet, preset, ...rest } = props;\n\n const value = {\n preset,\n stylesheet,\n ...rest\n };\n\n Theme.setTheme({ preset, options: rest });\n\n return <ThemeContext.Provider value={value}>{resolve(inProps.children, value)}</ThemeContext.Provider>;\n};\n","import type { ThemeProps } from '@primereact/types/core';\n\nexport const defaultThemeProps: ThemeProps = {\n preset: undefined,\n prefix: 'p',\n darkModeSelector: 'system',\n cssLayer: false,\n stylesheet: undefined\n};\n","import * as React from 'react';\nimport { ThemeContext } from './Theme.context';\n\nexport function useTheme() {\n const context = React.useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a ThemeProvider');\n }\n\n return context;\n}\n","import { LocaleProvider } from '@primereact/core/locale';\nimport { PassThroughProvider } from '@primereact/core/passthrough';\nimport { ThemeProvider } from '@primereact/core/theme';\nimport { useProps } from '@primereact/hooks';\nimport type { PrimeReactProps } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultConfigProps } from './PrimeReact.props';\n\nexport const PrimeReactContext = React.createContext<PrimeReactProps | undefined>(undefined);\n\nexport function PrimeReactProvider(inProps: React.PropsWithChildren<PrimeReactProps> = {}) {\n const { props, attrs } = useProps(inProps, defaultConfigProps);\n\n // states\n const [inputVariant, setInputVariant] = React.useState(props.inputVariant);\n const [defaults, setDefaults] = React.useState(props.defaults);\n const [zIndex, setZIndex] = React.useState(props.zIndex);\n\n const value = {\n inputVariant,\n setInputVariant,\n defaults,\n setDefaults,\n zIndex,\n setZIndex\n };\n\n return (\n <PrimeReactContext.Provider value={value}>\n <LocaleProvider lang={props.locale}>\n <PassThroughProvider value={props.pt} {...props.ptOptions}>\n <ThemeProvider preset={props.theme?.preset} stylesheet={props.stylesheet} {...props.theme?.options}>\n {resolve(attrs.children, value)}\n </ThemeProvider>\n </PassThroughProvider>\n </LocaleProvider>\n </PrimeReactContext.Provider>\n );\n}\n","import { FilterMatchMode } from '@primereact/core/api';\nimport type { PrimeReactProps } from '@primereact/types/core';\n\nexport const defaultConfigProps: PrimeReactProps = {\n csp: { nonce: undefined },\n defaults: undefined,\n filterMatchModeOptions: {\n text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n },\n inputVariant: undefined,\n locale: 'en',\n pt: undefined,\n ptOptions: { mergeSections: true, mergeProps: false },\n ripple: false,\n theme: undefined,\n stylesheet: undefined,\n unstyled: false,\n zIndex: { modal: 1100, overlay: 1000, menu: 1000, tooltip: 1100 }\n};\n","import { LocaleContext } from '@primereact/core/locale';\nimport { PassThroughContext } from '@primereact/core/passthrough';\nimport { ThemeContext } from '@primereact/core/theme';\nimport * as React from 'react';\nimport { PrimeReactContext } from './PrimeReact.context';\n\nexport function usePrimeReact() {\n const config = React.useContext(PrimeReactContext);\n const locale = React.useContext(LocaleContext);\n const passthrough = React.useContext(PassThroughContext);\n const theme = React.useContext(ThemeContext);\n\n if (config === undefined) {\n throw new Error('Context must be used within a PrimeReactProvider');\n }\n\n return {\n config,\n locale,\n passthrough,\n theme\n };\n}\n","import * as React from 'react';\n\nexport const combinedRefs = <I = unknown>(innerRef?: React.Ref<I>, forwardRef?: React.Ref<unknown>) => {\n if (innerRef && forwardRef) {\n if (typeof forwardRef === 'function') {\n forwardRef(innerRef && 'current' in innerRef ? innerRef.current : null);\n } else {\n if ('current' in forwardRef) {\n forwardRef.current = innerRef && 'current' in innerRef ? innerRef.current : null;\n }\n }\n }\n};\n","import { getScrollableParents } from '@primeuix/utils/dom';\n\nexport class ConnectedOverlayScrollHandler {\n private element: HTMLElement | null;\n private listener: (() => void) | null;\n private scrollableParents: Element[] | null = null;\n\n constructor(element: HTMLElement | null, listener: () => void = () => {}) {\n this.element = element;\n this.listener = listener;\n }\n\n bindScrollListener() {\n if (!this.element) return;\n\n this.scrollableParents = getScrollableParents(this.element);\n\n for (let i = 0; i < this.scrollableParents.length; i++) {\n const parent = this.scrollableParents[i];\n\n if (parent && this.listener) {\n parent.addEventListener('scroll', this.listener);\n }\n }\n }\n\n unbindScrollListener() {\n if (this.scrollableParents && this.listener) {\n for (let i = 0; i < this.scrollableParents.length; i++) {\n const parent = this.scrollableParents[i];\n\n if (parent) {\n parent.removeEventListener('scroll', this.listener);\n }\n }\n }\n }\n\n destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n}\n","import { resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\nfunction createContext<T>(defaultValue?: T, fallback?: () => never | T | undefined) {\n const Context = React.createContext<T | undefined>(defaultValue);\n\n const useContext = () => {\n const context = React.useContext(Context);\n\n if (context === undefined) {\n return fallback?.();\n }\n\n return context;\n };\n\n const Provider = ({ value, children }: { value: T; children: React.ReactNode }) => <Context.Provider value={value}>{resolve(children, value)}</Context.Provider>;\n\n return [Provider, useContext] as const;\n}\n\nexport function createSafeContext<T>(defaultValue?: T, message?: string) {\n return createContext<T>(defaultValue, () => {\n throw new Error(message || 'Context must be used within a Provider');\n });\n}\n\nexport function createOptionalContext<T>(defaultValue?: T) {\n return createContext<T>(defaultValue, () => {\n return defaultValue;\n });\n}\n","export const StyleRegistry = {\n _loadedStyleNames: new Set(),\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name: string) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name: string) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name: string) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n }\n};\n","export * from './combinedRefs';\nexport * from './ConnectedOverlayScrollHandler';\nexport * from './createContext';\nexport * from './styleRegistry';\n\nexport function isValidElement(obj: unknown): obj is React.ReactElement {\n return typeof obj === 'object' && obj !== null && ((obj as React.ExoticComponent).$$typeof === Symbol.for('react.transitional.element') || (obj as React.ExoticComponent).$$typeof === Symbol.for('react.element'));\n}\n","import { usePrimeReact } from '@primereact/core/config';\nimport { combinedRefs } from '@primereact/core/utils';\nimport { useAttrSelector, useId, useProps } from '@primereact/hooks';\nimport type { BaseInstance, BaseSetup, CommonInstance, Instance, useBaseOptions } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A custom hook for creating a base instance.\n * This hook is used to initialize a base instance with common properties and methods.\n * It handles props, attributes, and provides a setup function for additional configuration.\n * @param name The name of the base instance.\n * @param options The options for the base instance.\n * @returns The base instance.\n */\nexport const useBase = <IProps extends { id?: string; ref?: React.Ref<unknown> }, DProps, Exposes extends Record<PropertyKey, unknown>>(name: string = 'UnknownBase', options: useBaseOptions<IProps, DProps, Exposes>) => {\n const $primereact = usePrimeReact();\n const { inProps, defaultProps, setup } = options || {};\n\n const id = useId(inProps?.id as string | undefined);\n const $attrSelector = useAttrSelector('pc_');\n\n const ref = React.useRef(inProps?.ref ?? null);\n const elementRef = React.useRef<HTMLElement | null>(null);\n\n const base = React.useMemo<BaseInstance<IProps>>(\n () => ({\n ref,\n elementRef,\n id,\n name,\n inProps,\n $attrSelector,\n $primereact\n }),\n [id, inProps, $attrSelector, $primereact]\n );\n\n const computedDefaultProps = React.useMemo<DProps>(() => {\n const globalDefaults = resolve($primereact?.config?.defaults?.[name] || $primereact?.config?.defaults?.[name.toLowerCase()], base) as { props?: DProps } | undefined;\n\n return { ...defaultProps, ...globalDefaults?.props } as DProps;\n }, [defaultProps, $primereact?.config?.defaults?.[name]]);\n\n const { props, attrs } = useProps(inProps, computedDefaultProps);\n\n const common = React.useMemo<CommonInstance<typeof props, IProps>>(\n () => ({\n ...base,\n props,\n attrs\n }),\n [base, props, attrs]\n );\n\n const $computedSetup = resolve(setup as BaseSetup<typeof props, IProps, Exposes>, common) as Exposes;\n\n const instance = React.useMemo<Instance<typeof props, IProps, Record<PropertyKey, unknown>, Exposes>>(\n () => ({\n state: {},\n $computedSetup,\n ...$computedSetup,\n ...common,\n elementRef: ($computedSetup?.elementRef ?? elementRef) as React.RefObject<HTMLElement | null>\n }),\n [$computedSetup, common]\n );\n\n React.useEffect(() => {\n combinedRefs(ref, inProps?.ref);\n }, [ref, inProps?.ref]);\n\n React.useImperativeHandle(ref as React.Ref<Instance<typeof props, IProps, typeof instance.state, Exposes>>, () => instance, [instance]);\n\n return instance;\n};\n","import { isValidElement } from '@primereact/core/utils';\nimport type { ComponentInstance, ComponentProps } from '@primereact/types/core';\nimport { cn, resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A component wrapper for rendering elements with additional props and attributes.\n * @param inProps The properties to pass to the component.\n * @returns A React element or null if `pIf` is false.\n */\nexport function Component<I extends ComponentInstance = ComponentInstance>(inProps: ComponentProps<I> = {}) {\n const { pIf = true, style, className, as, asChild, instance, ...props } = inProps;\n\n if (pIf === false) return null;\n\n const AsComponent = (as || instance?.props?.as || React.Fragment) as React.ElementType;\n const renderAsChild = asChild || instance?.props?.asChild;\n const isFragment = AsComponent === React.Fragment;\n\n const { ref = instance?.elementRef, children, attrs: inAttrs, ...restAttrs } = props;\n const attrs = { ...inAttrs, ...restAttrs } as React.HTMLAttributes<HTMLElement>;\n // @ts-expect-error: Update resolve to handle attrs correctly\n const content = resolve(children, instance, attrs) as React.ReactNode;\n const styles = resolve(style || instance?.props?.style, instance) as React.CSSProperties | undefined;\n const classNames = resolve(className || instance?.props?.className, instance) as string | undefined;\n\n return renderAsChild || isFragment ? (\n <React.Fragment>{content}</React.Fragment>\n ) : isValidElement(AsComponent) ? (\n resolve(AsComponent, instance)\n ) : (\n <AsComponent {...attrs} ref={ref} style={{ ...attrs.style, ...styles }} className={cn(attrs.className, classNames)}>\n {content}\n </AsComponent>\n );\n}\n\nComponent.displayName = 'PrimeReact.Component';\n","import type { ComponentProps, GlobalComponentProps } from '@primereact/types/core';\nimport { omit } from '@primeuix/utils';\n\nexport const globalProps: GlobalComponentProps = {\n ref: undefined,\n pIf: true,\n style: undefined,\n className: undefined,\n as: undefined,\n asChild: false,\n pt: undefined,\n ptOptions: undefined,\n unstyled: undefined,\n dt: undefined,\n children: undefined\n};\n\nexport const defaultComponentProps: ComponentProps = {\n ...(omit(globalProps, 'pt', 'ptOptions', 'dt', 'styles') as Record<PropertyKey, unknown>),\n instance: undefined,\n attrs: undefined\n};\n","import { useBase } from '@primereact/core/base';\nimport type { InComponentInstance, useBaseOptions, useComponentOptions } from '@primereact/types/core';\nimport * as React from 'react';\nimport { globalProps } from './Component.props';\nimport { useComponentPT } from './useComponentPT';\nimport { useComponentStyle } from './useComponentStyle';\n\n/**\n * A hook for creating a component instance.\n * This hook initializes a component with properties, attributes, and styles, and provides methods for handling pass-through options and styles.\n * It also supports custom setup functions for additional configuration.\n *\n * @param name The name of the component, used for debugging and identification.\n * @param options The options to customize the component instance.\n * @returns The component instance.\n */\nexport function useComponent<IProps, DProps, Exposes extends Record<PropertyKey, unknown>, Styles>(name: string = 'UnknownComponent', options: useComponentOptions<IProps, DProps, Exposes, Styles> = {}) {\n const defaultProps = React.useMemo(() => ({ ...globalProps, ...options.defaultProps }), [options.defaultProps]);\n const baseInstance = useBase(name, {\n inProps: options.inProps,\n defaultProps,\n setup: options.setup\n } as useBaseOptions<IProps & { id?: string; ref?: React.Ref<unknown> }, typeof defaultProps, Exposes>);\n\n const { ref, props } = baseInstance;\n const $params = React.useMemo(() => {\n return {\n instance: baseInstance,\n props: baseInstance.props,\n attrs: baseInstance.attrs,\n state: baseInstance.state\n };\n }, [baseInstance.props, baseInstance.attrs, baseInstance.state]);\n\n const ptx = useComponentPT(baseInstance, $params);\n const stx = useComponentStyle(baseInstance, props.styles || options.styles, $params);\n\n const instance = React.useMemo<InComponentInstance<typeof props, IProps, typeof baseInstance.state, Exposes>>(\n () => ({\n ...baseInstance,\n ...ptx,\n ...stx\n }),\n [baseInstance, ptx, stx]\n );\n\n React.useImperativeHandle(ref as React.Ref<InComponentInstance<typeof props, IProps, typeof baseInstance.state, Exposes>>, () => instance, [instance]);\n\n return instance;\n}\n","import { useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport type { GlobalComponentProps, Instance, PassThroughOptions, useComponentPTReturnType } from '@primereact/types/core';\nimport { mergeProps } from '@primeuix/utils/mergeprops';\nimport { getKeyValue, isArray, isFunction, isNotEmpty, isString, resolve, toFlatCase } from '@primeuix/utils/object';\nimport * as React from 'react';\n\n/**\n * A hook for managing pass-through options for a component.\n *\n * @param instance The instance of the component.\n * @param $params Additional parameters for the hook.\n * @returns An object containing the pass-through options.\n */\nexport function useComponentPT<Props extends GlobalComponentProps, IProps, Params>(instance: Instance<Props, IProps>, $params?: Params): useComponentPTReturnType {\n const { id, name, props, attrs, $primereact, $attrSelector } = instance || {};\n\n // methods\n const _hook = React.useCallback(\n (hookName: string) => {\n const selfHook = _usePT(_getPT(props.pt, name), getKeyValue, `hooks.${hookName}`) as (() => void) | undefined;\n const defaultHook = _useDefaultPT(getKeyValue, `hooks.${hookName}`) as (() => void) | undefined;\n\n selfHook?.();\n defaultHook?.();\n },\n [props.pt, name]\n );\n\n const _mergeProps = React.useCallback(<T extends unknown[], R = Record<PropertyKey, unknown>>(fn: ((...args: T) => R | undefined) | boolean, ...args: T): R => {\n return (isFunction(fn) ? fn(...args) : fn ? mergeProps(...args) : Object.assign({}, ...args)) as R;\n }, []);\n\n const _getPTValue = React.useCallback(\n (obj = {}, key = '', params: Record<string, unknown> = {}, searchInDefaultPT = true) => {\n const searchOut = /./g.test(key) && !!params[key.split('.')[0]];\n // @ts-expect-error - @todo\n const { mergeSections = true, mergeProps: useMergeProps = false } = props?.ptOptions || $primereact.passthrough?.options || {};\n const global = searchInDefaultPT ? (searchOut ? _useGlobalPT(_getPTClassValue, key, params) : _useDefaultPT(_getPTClassValue, key, params)) : undefined;\n const self = searchOut ? undefined : _getPTSelf(obj, _getPTClassValue, key, { ...params, global: global || {} });\n const datasets = _getPTDatasets(key);\n\n return mergeSections || (!mergeSections && self) ? _mergeProps(useMergeProps, global, self, datasets) : { ...self, ...datasets };\n },\n [props.ptOptions, _mergeProps]\n );\n\n const _getPTDatasets = React.useCallback(\n (key = '') => {\n const datasetPrefix = 'data-pc-';\n const isExtended = key === 'root' && isNotEmpty(props?.pt?.['data-pc-section']);\n\n return (\n key !== 'transition' && {\n ...(key === 'root' && {\n [`${datasetPrefix}name`]: toFlatCase((isExtended ? props.pt?.['data-pc-section'] : name) as string),\n ...(isExtended && { [`${datasetPrefix}extend`]: toFlatCase(name!) }),\n [`${$attrSelector}`]: ''\n }),\n [`${datasetPrefix}section`]: toFlatCase(key)\n }\n );\n },\n [props.pt, $attrSelector]\n );\n\n const _getPTClassValue = React.useCallback((obj: Record<string, unknown> = {}, key = '', params?: Record<string, unknown>) => {\n const value = getKeyValue(obj, key, params);\n\n return isString(value) || isArray(value) ? { className: value } : value;\n }, []);\n\n const _getPT = React.useCallback(<Fn extends (...args: unknown[]) => unknown>(pt?: Record<string, unknown>, key = '', fn?: Fn) => {\n const getValue = (value: unknown, checkSameKey = false) => {\n const computedValue = (fn ? fn(value) : value) as Record<string, unknown>;\n const _key = toFlatCase(key);\n const _cKey = toFlatCase(name!);\n\n return ((checkSameKey ? (_key !== _cKey ? computedValue?.[_key] : undefined) : computedValue?.[_key]) ?? computedValue) as Record<string, unknown>;\n };\n\n return pt && Object.hasOwn(pt, '_usept')\n ? {\n _usept: pt['_usept'],\n originalValue: getValue(pt.originalValue),\n value: getValue(pt.value)\n }\n : getValue(pt, true);\n }, []);\n\n const _usePT = React.useCallback(\n <Fn>(pt: Record<string, unknown>, fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n const vfn = (value: unknown) => (fn as (...args: unknown[]) => unknown)(value, key, params);\n\n if (pt && Object.hasOwn(pt, '_usept')) {\n // @ts-expect-error - @todo\n const { mergeSections = true, mergeProps: useMergeProps = false } = (pt['_usept'] || $primereact.passthrough?.options || {}) as PassThroughOptions;\n const originalValue = vfn(pt.originalValue);\n const value = vfn(pt.value);\n\n if (originalValue === undefined && value === undefined) return undefined;\n else if (isString(value)) return value;\n else if (isString(originalValue)) return originalValue;\n\n return mergeSections || (!mergeSections && value) ? _mergeProps(useMergeProps, originalValue, value) : value;\n }\n\n return vfn(pt);\n },\n // @ts-expect-error - @todo\n [$primereact.passthrough?.options, _mergeProps]\n );\n\n // computed values\n // @ts-expect-error - @todo\n const $globalPT = React.useMemo(() => _getPT($primereact?.passthrough?.value, undefined, (value) => resolve(value, instance)), [$primereact?.passthrough?.value]);\n // @ts-expect-error - @todo\n const $defaultPT = React.useMemo(() => _getPT($primereact?.passthrough?.value, undefined, (value) => getKeyValue(value as Record<string, unknown>, name, instance) || resolve(value, instance)), [$primereact?.passthrough?.value]);\n const $attrsPT = React.useMemo(() => {\n return Object.entries(attrs || {})\n .filter(([key]) => key?.startsWith('pt-'))\n .reduce<Record<string, unknown>>((result, [key, value]) => {\n const [, slot, ...rest] = key.split('-');\n\n [slot, rest?.join('-')]?.filter(Boolean).reduce((currentObj, nestedKey, index, array) => {\n if (!currentObj[nestedKey]) {\n currentObj[nestedKey] = index === array.length - 1 ? value : {};\n }\n\n return currentObj[nestedKey] as Record<string, unknown>;\n }, result);\n\n return result;\n }, {});\n }, [attrs]);\n const $attrsWithoutPT = React.useMemo(() => {\n return Object.entries(attrs || {})\n .filter(([key]) => !key?.startsWith('pt-'))\n .reduce<Record<string, unknown>>((acc, [key, value]) => {\n acc[key] = value;\n\n return acc;\n }, {});\n }, [attrs]);\n\n // helpers\n const _getPTSelf = React.useCallback(\n <Fn>(obj: Record<string, unknown> = {}, fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n return mergeProps(\n _usePT(_getPT(obj, name), fn, key, params), // Exp; <PRComponent pt={{ [passthrough_key]: { [attribute]: value } }}>\n _usePT($attrsPT, fn, key, params) // Exp; <PRComponent pt:[passthrough_key]:[attribute]={value}> or <PRComponent pt:[passthrough_key]={() =>{value}}>\n );\n },\n [$attrsPT]\n );\n\n const _useGlobalPT = React.useCallback(\n <Fn>(fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n return _usePT($globalPT, fn, key, params);\n },\n [$globalPT]\n );\n\n const _useDefaultPT = React.useCallback(\n <Fn>(fn: Fn, key: string, params?: Record<string, unknown>) => {\n return _usePT($defaultPT, fn, key, params);\n },\n [$defaultPT]\n );\n\n // exposed methods\n const ptm = React.useCallback(\n (key = '', params: Record<string, unknown> | undefined = {}) => {\n return _getPTValue(props.pt, key, { ...$params, ...params }) as Record<string, unknown>;\n },\n [props.pt, $params]\n );\n\n const ptmi = React.useCallback(\n (key = '', params: Record<string, unknown> | undefined = {}) => {\n const _attrs = mergeProps($attrsWithoutPT, ptm(key, params)) as Record<string, unknown>;\n\n if (_attrs && Object.hasOwn(_attrs, 'id')) {\n _attrs.id ??= id;\n }\n\n return _attrs as Record<string, unknown>;\n },\n [ptm, id, $attrsWithoutPT]\n );\n\n const ptmo = React.useCallback(\n (obj: Record<string, unknown> = {}, key = '', params: Record<string, unknown> | undefined = {}) => {\n return _getPTValue(obj, key, { ...$params, ...params }, false) as Record<string, unknown>;\n },\n [$params]\n );\n\n // hooks\n useMountEffect(() => _hook('onMounted'));\n useUpdateEffect(() => _hook('onUpdated'));\n useUnmountEffect(() => _hook('onUnmounted'));\n\n return React.useMemo(\n () => ({\n ptm,\n ptmi,\n ptmo\n }),\n [ptm, ptmi, ptmo]\n );\n}\n","import { StyleRegistry } from '@primereact/core/utils';\nimport type { GlobalComponentProps, Instance, useComponentStyleReturnType } from '@primereact/types/core';\nimport { Theme, ThemeService } from '@primeuix/styled';\nimport { cn, getKeyValue } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useComponentStyleHandler } from './useComponentStyleHandler';\n\n/**\n * A hook for managing component styles.\n *\n * @param instance The instance of the component.\n * @param styles The styles to apply to the component.\n * @param $params Additional parameters for the hook.\n * @returns An object containing the component styles.\n */\nexport function useComponentStyle<Props extends GlobalComponentProps, IProps, Styles, Params>(instance: Instance<Props, IProps>, styles?: Styles, $params?: Params): useComponentStyleReturnType {\n const { props = { unstyled: false, dt: undefined }, $primereact, $attrSelector, elementRef } = instance || {};\n const $style = useComponentStyleHandler(styles, elementRef);\n\n // refs\n const scopedStyleRef = React.useRef<HTMLStyleElement | null>(null);\n\n // methods\n const _load = React.useCallback(() => {\n if (!StyleRegistry.isStyleNameLoaded('base')) {\n const { css } = $style.baseStyles || {};\n\n $style.load(css, { name: 'base', ...$styleOptions });\n\n StyleRegistry.setLoadedStyleName('base');\n }\n\n _loadThemeStyles();\n }, [$style]);\n\n const _loadStyles = React.useCallback(() => {\n _load();\n _themeChangeListener(_load);\n }, [_load]);\n\n // computed values\n const $isUnstyled = React.useMemo(() => (props.unstyled !== undefined ? props.unstyled : $primereact?.config?.unstyled), [props, $primereact?.config]);\n const $styleOptions = React.useMemo(() => ({ nonce: $primereact?.config?.csp?.nonce }), [$primereact?.config]);\n\n // helpers\n const _loadCoreStyles = React.useCallback(() => {\n if (!StyleRegistry.isStyleNameLoaded($style?.name) && $style?.name) {\n const name = $style.name === 'global' ? 'base' : $style.name;\n\n $style.loadCSS({ name, ...$styleOptions });\n\n StyleRegistry.setLoadedStyleName($style.name);\n }\n }, [$style, $styleOptions]);\n\n const _loadThemeStyles = React.useCallback(() => {\n if ($isUnstyled || $primereact?.theme === 'none') return;\n\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic, global, style } = $style?.getCommonTheme?.() || {};\n\n $style.load(primitive?.css, { name: 'primitive-variables', ...$styleOptions });\n $style.load(semantic?.css, { name: 'semantic-variables', ...$styleOptions });\n $style.load(global?.css, { name: 'global-variables', ...$styleOptions });\n $style.load($style.baseStyles?.style, { name: 'global-style', ...$styleOptions }, style, true);\n\n Theme.setLoadedStyleName('common');\n }\n\n // component\n if (!Theme.isStyleNameLoaded($style?.name) && $style?.name) {\n const { css, style } = $style?.getComponentTheme?.() || {};\n\n $style.load(css, { name: `${$style.name}-variables`, ...$styleOptions });\n $style.loadStyle({ name: `${$style.name}-style`, ...$styleOptions }, style);\n\n Theme.setLoadedStyleName($style.name);\n }\n\n // layer order\n if (!Theme.isStyleNameLoaded('layer-order')) {\n const layerOrder = $style?.getLayerOrderThemeCSS?.();\n\n $style.load(layerOrder, { name: 'layer-order', first: true, ...$styleOptions });\n\n Theme.setLoadedStyleName('layer-order');\n }\n }, [$isUnstyled, $style, $styleOptions]);\n\n const _loadScopedThemeStyles = (preset: unknown) => {\n const { css } = $style?.getPresetTheme?.(preset, `[${$attrSelector}]`) || {};\n const scopedStyle = $style?.load(css, { name: `${$attrSelector}-${$style.name}`, ...$styleOptions });\n\n scopedStyleRef.current = scopedStyle as HTMLStyleElement;\n };\n\n /*const _unloadScopedThemeStyles = () => {\n scopedStyleRef.current?.remove();\n };*/\n\n const _themeChangeListener = React.useCallback((callback = () => {}) => {\n //if (!StyleRegistry.isStyleNameLoaded('base')) {\n //StyleRegistry.clearLoadedStyleNames();\n ThemeService.on('theme:change', callback);\n //}\n }, []);\n\n /*const _removeThemeListeners = () => {\n ThemeService.off('theme:change', _loadCoreStyles);\n ThemeService.off('theme:change', _load);\n ThemeService.off('theme:change', _themeScopedListener);\n };*/\n\n // exposed methods\n const cx = React.useCallback(\n (key = '', params = {}) => {\n return !$isUnstyled ? cn(getKeyValue($style.classes as Record<string, string>, key, { ...$params, context: params })) : undefined;\n },\n [$isUnstyled, instance, $style.classes]\n );\n\n const sx = React.useCallback(\n (key = '', when = true, params = {}) => {\n if (when) {\n const self = getKeyValue($style.inlineStyles as Record<string, React.CSSProperties>, key, { ...$params, context: params }) as React.CSSProperties;\n const base = getKeyValue($style.baseStyles?.inlineStyles as Record<string, React.CSSProperties>, key, { ...$params, context: params }) as React.CSSProperties;\n\n return { ...base, ...self };\n }\n\n return undefined;\n },\n [$style.inlineStyles, $style.baseStyles?.inlineStyles, instance]\n );\n\n // effects\n if (!$isUnstyled) {\n // @todo - remove\n //Theme.clearLoadedStyleNames();\n //StyleRegistry.clearLoadedStyleNames();\n _loadCoreStyles();\n _loadStyles();\n _loadScopedThemeStyles(props.dt);\n }\n\n return React.useMemo(\n () => ({\n cx,\n sx,\n isUnstyled: $isUnstyled,\n $style\n }),\n [cx, sx, $isUnstyled, $style]\n );\n}\n","import { ThemeContext } from '@primereact/core/theme';\nimport type { useStyleLoadOptions } from '@primereact/types/core';\nimport { isClient, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\n\nexport function useStyle() {\n const theme = React.useContext(ThemeContext);\n\n const _load = React.useCallback(\n (loadOptions: useStyleLoadOptions = {}) => {\n const { name, css, element, options = {} } = loadOptions;\n\n if (isClient() && isNotEmpty(css)) {\n let root = element?.getRootNode() as Element | Document | ShadowRoot | null;\n\n if (!root || root === document) root = document.head;\n\n const styleElement = root.querySelector(`style[data-primereact-style-id=\"${name}\"]`) || document.createElement('style');\n\n if (!styleElement.isConnected) {\n // @todo - add attributes and prepend\n if (options?.first) {\n root.prepend(styleElement);\n } else {\n root.appendChild(styleElement);\n }\n\n styleElement.setAttribute('data-primereact-style-id', name || '');\n }\n\n styleElement.textContent = css ?? '';\n\n return styleElement;\n }\n },\n [theme]\n );\n\n const load = React.useCallback(\n (loadOptions: useStyleLoadOptions = {}) => {\n const { name, css } = loadOptions;\n\n if (isNotEmpty(loadOptions.css)) {\n // @todo - implement\n if (name && !theme?.stylesheet?.has(name) && !isClient() && name !== 'layer-order') {\n theme?.stylesheet?.add(name, css);\n }\n\n return _load(loadOptions);\n }\n },\n [theme]\n );\n\n const unload = React.useCallback(() => {\n if (theme?.stylesheet) {\n theme.stylesheet.clear();\n }\n }, [theme]);\n\n React.useInsertionEffect(() => {\n theme?.stylesheet?.getStyles()?.forEach((value, key) => {\n _load({ name: key, css: value?.css });\n });\n\n return () => {\n unload();\n };\n }, [theme]);\n\n return [load, unload];\n}\n\n// @todo - Remove this\n/*function useCSS(cssMap = {}) {\n const { theme } = usePrimeReact();\n\n if (typeof window === 'undefined') {\n Object.entries(cssMap).forEach(([key, value]) => {\n config?.sheet?.add(key, value.css);\n });\n }\n\n React.useInsertionEffect(() => {\n theme.stylesheet?._styles?.forEach((value, key) => {\n const styleElement = document.head.querySelector(`style[data-primereact-style-id=\"${key}\"]`) || document.createElement('style');\n\n if (!styleElement.isConnected) {\n //setAttributes(styleElement, value.styleOptions);\n value.first ? document.head.prepend(styleElement) : document.head.appendChild(styleElement);\n setAttribute(styleElement, 'data-primereact-style-id', key);\n //styleRef.current.onload = (event: React.ReactEventHandler<HTMLStyleElement>) => onStyleLoaded?.(event, { name: styleNameRef.current });\n //onStyleMounted?.(styleNameRef.current);\n }\n\n styleElement.textContent = value.css;\n });\n });\n //return rule;\n}*/\n","export const defaultUseStyleProps = {};\n","import { ThemeContext } from '@primereact/core/theme';\nimport { useStyle } from '@primereact/core/use-style';\nimport type { StylesOptions, StyleType } from '@primereact/types/styles';\nimport { css as Css, dt, Theme } from '@primeuix/styled';\nimport { isNotEmpty, minifyCSS, resolve, toElement } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A custom hook for managing component styles.\n *\n * @param styles The styles to apply to the component.\n * @param elementRef A reference to the HTML element.\n * @returns An object containing methods to load and manage styles.\n */\nexport function useComponentStyleHandler<Styles>(styles?: Styles, elementRef?: React.Ref<HTMLElement>) {\n const theme = React.useContext(ThemeContext);\n const [load] = useStyle();\n\n const _load = React.useCallback(\n (css?: string, options?: Record<PropertyKey, unknown>) => {\n return load({ name: options?.name as string | undefined, css, element: toElement(elementRef), options });\n },\n [load, elementRef]\n );\n\n return React.useMemo(() => {\n const handler = {\n name: 'base',\n ...(styles as StylesOptions),\n load(style: StyleType = '', options: Record<PropertyKey, unknown> & { name?: string } = {}, extendedStyle = '', enableThemeTransform = false) {\n const name = options.name || handler.name;\n const resolvedStyle = Css`${style}${extendedStyle}` as string;\n const computedStyle = enableThemeTransform ? Theme.transformCSS(name, resolvedStyle) : resolvedStyle;\n\n return isNotEmpty(computedStyle) ? _load(minifyCSS(computedStyle), { name, ...options }) : {};\n },\n loadCSS(options?: Record<PropertyKey, unknown>) {\n return this.load(this.css, options);\n },\n loadStyle(options?: Record<PropertyKey, unknown>, extendedStyle = '') {\n return this.load(this.style, options, extendedStyle, true);\n },\n getCommonTheme(params?: Record<PropertyKey, unknown>) {\n return Theme.getCommon(this.name, params);\n },\n getComponentTheme(params?: Record<PropertyKey, unknown>) {\n return Theme.getComponent(this.name, params);\n },\n // @todo: preset type\n getPresetTheme(preset: unknown, selector: string, params?: Record<PropertyKey, unknown>) {\n return Theme.getCustomPreset(this.name, preset, selector, params);\n },\n getLayerOrderThemeCSS() {\n return Theme.getLayerOrderCSS(this.name);\n },\n getStyleSheet(extendedCSS = '', props = {}) {\n if (this.css) {\n // @ts-expect-error: update dt definition in primeuix/styled\n const _css = resolve(this.css, { dt }) as string;\n const _style = minifyCSS(Css`${_css}${extendedCSS}`);\n const _props = Object.entries(props)\n .reduce<string[]>((acc, [k, v]) => {\n acc.push(`${k}=\"${v}\"`);\n\n return acc;\n }, [])\n .join(' ');\n\n return `<style type=\"text/css\" data-primereact-style-id=\"${this.name}\" ${_props}>${_style}</style>`;\n }\n\n return '';\n },\n getCommonThemeStyleSheet(params?: Record<PropertyKey, unknown>, props: Record<PropertyKey, unknown> = {}) {\n return Theme.getCommonStyleSheet(this.name, params, props);\n },\n getThemeStyleSheet(params?: Record<PropertyKey, unknown>, props: Record<PropertyKey, unknown> = {}) {\n const cssArr = [Theme.getStyleSheet(this.name, params, props)];\n\n if (theme) {\n const _name = this.name === 'base' ? 'global-style' : `${this.name}-style`;\n const _css = Css`${resolve(theme, { dt })}` as string;\n const _style = minifyCSS(Theme.transformCSS(this.name, _css));\n const _props = Object.entries(props)\n .reduce<string[]>((acc, [k, v]) => {\n acc.push(`${k}=\"${v}\"`);\n\n return acc;\n }, [])\n .join(' ');\n\n cssArr.push(`<style type=\"text/css\" data-primereact-style-id=\"${_name}\" ${_props}>${_style}</style>`);\n }\n\n return cssArr.join('');\n }\n };\n\n return handler;\n }, [styles, theme, _load]);\n}\n","import type { ComponentInstance, InComponentInstance, useComponentOptions, withComponentOptions } from '@primereact/types/core';\nimport type { BaseComponentProps } from '@primereact/types/shared';\nimport type { StylesOptions } from '@primereact/types/styles';\nimport { isObject } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useComponent } from './useComponent';\n\n/**\n * A higher-order component for enhancing a component with additional features.\n *\n * @template IProps The interface for the component's input properties.\n * @template DProps The interface for the component's default properties.\n * @template Exposes The interface for the properties that the component exposes.\n * @template Styles The styles options for the component.\n * @template CData Additional data to expose on the component.\n *\n * @param options The options for the component.\n * @param options.name The name of the component, used for debugging and identification.\n * @param options.defaultProps The default properties for the component.\n * @param options.styles The styles to apply to the component.\n * @param options.components Additional components to include in the component.\n * @param options.setup A setup function for additional configuration of the component.\n * @param options.render A render function for the component.\n * @returns A React component wrapped with the specified options.\n */\nexport function withComponent<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n defaultProps,\n styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) {\n type InProps<I extends ComponentInstance, T extends React.ElementType> = BaseComponentProps<I, IProps, unknown, T> & DProps;\n\n const BaseComponent = <I extends ComponentInstance, T extends React.ElementType>(inProps?: InProps<I, T>) => {\n const instance = useComponent(name, { inProps, defaultProps, styles, setup } as useComponentOptions<InProps<I, T>, DProps, Exposes, Styles>);\n\n type RenderedComponentProps = InComponentInstance<typeof instance.props, InProps<I, T>, typeof instance.state, Exposes>;\n\n const RenderedComponent = (render as React.FC<RenderedComponentProps>) ?? (() => null);\n\n return instance.props.pIf ? <RenderedComponent {...(instance as RenderedComponentProps)} /> : null;\n };\n\n const Component = React.memo(BaseComponent, (prevProps, nextProps) => {\n if (!isObject(prevProps) || !isObject(nextProps)) {\n return false;\n }\n\n // Compare shallow equality for all defaultProps keys\n return prevProps === nextProps && Object.keys(defaultProps || {}).every((key) => (prevProps as Record<string, unknown>)[key] === (nextProps as Record<string, unknown>)[key]);\n }) as unknown as typeof BaseComponent & CData & React.FC;\n\n Component.displayName = `PrimeReact.${name}`;\n Object.entries(components || {}).forEach(([key, value]) => {\n (Component as Record<string, unknown>)[key] = value;\n });\n\n return Component;\n}\n","import { useBase } from '@primereact/core/base';\nimport type { HeadlessInstance, useHeadlessOptions } from '@primereact/types/core';\n\n/**\n * A custom hook for using headless components.\n *\n * @param name The name of the headless component.\n * @param options Options for the headless component.\n * @returns The headless instance.\n */\nexport function useHeadless<IProps, DProps, Exposes extends Record<PropertyKey, unknown>>(name: string = 'UnknownHeadless', options: useHeadlessOptions<IProps, DProps, Exposes> = {}) {\n const baseInstance = useBase(name, options as useHeadlessOptions<IProps & { id?: string; ref?: React.Ref<unknown> }, typeof options.defaultProps & DProps, Exposes>);\n\n return baseInstance as HeadlessInstance<DProps, IProps, Exposes>;\n}\n","import type { withHeadlessOptions } from '@primereact/types/core';\nimport { useHeadless } from './useHeadless';\n\n/**\n * Higher-order component for using headless components.\n *\n * @template IProps The input properties type for the headless component.\n * @template DProps The default properties type for the headless component.\n * @template Exposes The properties that the headless component exposes.\n *\n * @param options The options for the headless component.\n * @param options.name The name of the headless component.\n * @param options.defaultProps The default properties for the headless component.\n * @param options.setup The setup function for the headless component.\n * @returns A function that takes in props and returns the headless instance.\n */\nexport function withHeadless<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>>({ name, defaultProps, setup }: withHeadlessOptions<IProps, DProps, Exposes>) {\n return (inProps?: IProps) => {\n return useHeadless(name, { inProps, defaultProps, setup });\n };\n}\n","import { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultIconProps } from './Icon.props';\nimport { styles } from './Icon.style';\nimport { withIcon } from './withIcon';\n\nexport const Icon = withIcon({\n name: 'Icon',\n styles,\n defaultProps: defaultIconProps,\n render(instance) {\n const { id, props, ptmi, pti, cx, sx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n style: sx('root'),\n className: cx('root')\n },\n pti?.(),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { IconProps } from '@primereact/types/core';\n\nexport const defaultIconProps: IconProps = {\n as: 'i',\n size: undefined,\n rotate: undefined,\n flip: undefined,\n spin: false\n};\n","import type { StylesOptions } from '@primereact/types/styles';\nimport { $dt } from '@primeuix/styled';\n\nconst css = /*css*/ `\n.p-icon {\n display: inline-block;\n vertical-align: baseline;\n font-size: dt('icon.size');\n width: dt('icon.size');\n height: dt('icon.size');\n transform: rotate(dt('icon.rotate'));\n flex-shrink: 0;\n}\n\n.p-icon-flip-horizontal {\n transform: scaleX(-1);\n}\n\n.p-icon-flip-vertical {\n transform: scaleY(-1);\n}\n\n.p-icon-spin {\n -webkit-animation: p-icon-spin 2s infinite linear;\n animation: p-icon-spin 2s infinite linear;\n}\n\n@-webkit-keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n`;\n\nexport const styles = {\n name: 'icon',\n css,\n classes: {\n root: ({ props }) => [\n 'p-icon',\n {\n 'p-icon-spin': props.spin,\n 'p-icon-flip-horizontal': props.flip === 'horizontal',\n 'p-icon-flip-vertical': props.flip === 'vertical'\n }\n ]\n },\n inlineStyles: {\n root: ({ props }) => ({\n ...(props.size ? { [$dt('icon.size').name]: props.size } : undefined),\n ...(props.rotate ? { [$dt('icon.rotate').name]: `${props.rotate}deg` } : undefined)\n })\n }\n} as StylesOptions;\n","import { withComponent } from '@primereact/core/component';\nimport type { BaseSetup, IconExposes, withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useIcon } from './useIcon';\n\n/**\n * Higher-order component for enhancing icon components.\n *\n * @template IProps - The interface for the icon component's props.\n * @template DProps - The interface for the default properties of the icon component.\n * @template Exposes - The interface for the properties exposed by the icon component.\n * @template Styles - The styles options for the icon component.\n * @template CData - The context data for the icon component.\n *\n * @param options - The options for the icon component.\n * @param options.name - The name of the icon component.\n * @param options.defaultProps - The default properties for the icon component.\n * @param options.styles - The styles options for the icon component.\n * @param options.components - The components to be used within the icon component.\n * @param options.setup - The setup function for the icon component.\n * @param options.render - The render function for the icon component.\n * @returns A React component wrapped with the specified options.\n */\nexport function withIcon<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes & IconExposes, Styles, CData>) {\n return withComponent<IProps, DProps, Exposes & IconExposes, Styles, CData>({\n name: `${name ?? 'Unknown'}Icon`,\n defaultProps,\n styles,\n components,\n setup(instance) {\n const icon = useIcon(instance?.inProps);\n const computedSetup = resolve(setup as BaseSetup<typeof instance.props, IProps, Exposes>, instance) as Exposes;\n\n return React.useMemo(\n () => ({\n ...icon,\n ...computedSetup\n }),\n [icon, computedSetup]\n );\n },\n render\n });\n}\n","import { withHeadless } from '@primereact/core/headless';\nimport { isEmpty } from '@primeuix/utils';\n\nexport const useIcon = withHeadless({\n name: 'useIcon',\n setup({ attrs }) {\n const pti = () => {\n const isAriaLabelEmpty = isEmpty(attrs['aria-label']);\n\n return {\n role: !isAriaLabelEmpty ? 'img' : undefined,\n 'aria-hidden': isEmpty(attrs.tabIndex) && isAriaLabelEmpty\n };\n };\n\n return {\n pti\n };\n }\n});\n","import type { StylesOptions } from '@primereact/types/styles';\nimport { style } from '@primeuix/styles/base';\n\nconst css = /*css*/ `\n.p-hidden-accessible {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n opacity: 0;\n overflow: hidden;\n padding: 0;\n pointer-events: none;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.p-overflow-hidden {\n overflow: hidden;\n padding-right: dt('scrollbar.width');\n}\n\n/* For PrimeReact Motion */\n.p-toggleable-content-enter-from,\n.p-toggleable-content-leave-to {\n max-height: 0;\n}\n\n.p-toggleable-content-enter-to,\n.p-toggleable-content-leave-from {\n max-height: var(--pui-motion-height, 1000px);\n}\n\n.p-toggleable-content-leave-active {\n overflow: hidden;\n transition: max-height 200ms ease-out;\n}\n\n.p-toggleable-content-enter-active {\n overflow: hidden;\n transition: max-height 200ms ease-out;\n}\n`;\n\nexport const styles = {\n name: 'base',\n css,\n style,\n classes: {},\n inlineStyles: {}\n} satisfies StylesOptions;\n","import { withComponent as withComponentInCore } from '@primereact/core/component';\nimport { styles as baseStyles } from '@primereact/styles/base';\nimport type { withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\n\nexport const withComponent = <IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n defaultProps,\n styles = {\n ...baseStyles,\n name: 'global'\n } as Styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) => {\n return withComponentInCore<IProps, DProps, Exposes, Styles, CData>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n });\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps, nextFrame } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { MotionProvider } from './Motion.context';\nimport { defaultMotionProps } from './Motion.props';\nimport { useMotion } from './useMotion';\n\nexport const Motion = withComponent({\n name: 'Motion',\n defaultProps: defaultMotionProps,\n setup(instance) {\n const { props } = instance;\n\n const [rendered, setRendered] = React.useState(() => props.in || !props.mountOnEnter);\n const isInitialMount = React.useRef(true);\n const motion = useMotion(props);\n\n React.useEffect(() => {\n if (props.in && !rendered) {\n setRendered(true);\n }\n }, [props.in]);\n\n React.useLayoutEffect(() => {\n const element = motion?.elementRef?.current;\n\n if (!element || !rendered) {\n isInitialMount.current = false;\n\n return;\n }\n\n let cancelled = false;\n const shouldAppear = isInitialMount.current && props.in && props.appear;\n\n element.style.display = '';\n motion.update?.(element, props);\n\n if (props.in) {\n if (shouldAppear || !isInitialMount.current) {\n motion.enter?.();\n }\n } else {\n motion.leave?.()?.then(() => {\n if (!element || cancelled || props.in) return;\n\n if (props.unmountOnLeave) {\n element.style.display = 'none';\n nextFrame().then(() => {\n if (!cancelled) setRendered(false);\n });\n } else {\n element.style.display = 'none';\n }\n });\n }\n\n isInitialMount.current = false;\n\n return () => {\n cancelled = true;\n motion.cancel?.();\n };\n }, [props.in, rendered, props.unmountOnLeave, props.appear]);\n\n React.useEffect(() => {\n return () => {\n isInitialMount.current = true;\n };\n }, []);\n\n return {\n ...motion,\n rendered\n };\n },\n render(instance) {\n const { id, props, ptmi, rendered } = instance;\n\n const rootProps = mergeProps(\n {\n id\n },\n ptmi('root')\n );\n\n return (\n <MotionProvider value={instance}>\n <Component pIf={rendered} instance={instance} attrs={rootProps} children={props.children} />\n </MotionProvider>\n );\n }\n});\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { MotionInstance } from '@primereact/types/shared/motion';\n\nexport const [MotionProvider, useMotionContext] = createOptionalContext<MotionInstance>();\n","import type { useMotionProps } from '@primereact/types/shared/motion';\n\nexport const defaultUseMotionProps: useMotionProps = {\n name: undefined,\n type: undefined,\n safe: false,\n appear: false,\n enter: true,\n leave: true,\n duration: undefined,\n enterFromClassName: undefined,\n enterToClassName: undefined,\n enterActiveClassName: undefined,\n leaveFromClassName: undefined,\n leaveToClassName: undefined,\n leaveActiveClassName: undefined,\n onBeforeEnter: undefined,\n onEnter: undefined,\n onAfterEnter: undefined,\n onEnterCancelled: undefined,\n onBeforeLeave: undefined,\n onLeave: undefined,\n onAfterLeave: undefined,\n onLeaveCancelled: undefined\n};\n","import type { MotionProps } from '@primereact/types/shared/motion';\nimport * as HeadlessMotion from './useMotion.props';\n\nexport const defaultMotionProps: MotionProps = {\n ...HeadlessMotion.defaultUseMotionProps,\n as: 'div',\n in: false,\n mountOnEnter: true,\n unmountOnLeave: true\n};\n","import { addClass, removeClass } from '@primeuix/utils';\nimport type { MotionClassNamesWithPhase, MotionHooksWithPhase, MotionInstance, MotionOptions, MotionPhase, MotionType } from '../../types';\nimport { getMotionHooks, getMotionMetadata, mergeOptions, resolveClassNames, resolveDuration, setAutoDimensionVariables, shouldSkipMotion } from '../utils';\n\nexport const DEFAULT_MOTION_OPTIONS: MotionOptions = {\n name: 'p',\n safe: true,\n disabled: false,\n enter: true,\n leave: true,\n autoHeight: true,\n autoWidth: false\n};\n\n/**\n * Creates a MotionInstance for the given element with the specified options.\n * @param element - The target element for motion effects.\n * @param options - Configuration options for the motion instance.\n * @returns A MotionInstance that can be used to control the motion.\n */\nexport function createMotion(element: Element, options?: MotionOptions): MotionInstance {\n if (!element) throw new Error('Element is required.');\n\n const opts: MotionOptions = {};\n let skipMotion = false;\n let classNames: MotionClassNamesWithPhase = {} as MotionClassNamesWithPhase;\n let cancelCurrent: (() => void) | null = null;\n let hooks: MotionHooksWithPhase = {};\n\n const init = (newOpts?: MotionOptions) => {\n Object.assign(opts, mergeOptions(newOpts, DEFAULT_MOTION_OPTIONS));\n if (!opts.enter && !opts.leave) throw new Error('Enter or leave must be true.');\n\n hooks = getMotionHooks(opts);\n skipMotion = shouldSkipMotion(opts);\n classNames = resolveClassNames(opts);\n cancelCurrent = null;\n };\n\n const run = async (phase: MotionPhase): Promise<void> => {\n cancelCurrent?.();\n\n const { onBefore, onStart, onAfter, onCancelled } = hooks[phase] || {};\n const event = { element };\n\n if (skipMotion) {\n onBefore?.(event);\n onStart?.(event);\n onAfter?.(event);\n\n return;\n }\n\n const { from: fromClass, active: activeClass, to: toClass } = classNames[phase] || {};\n\n setAutoDimensionVariables(element as HTMLElement, opts.autoHeight, opts.autoWidth);\n\n onBefore?.(event);\n addClass(element, fromClass);\n addClass(element, activeClass);\n\n //await nextFrame();\n void (element as HTMLElement).offsetHeight; // force reflow\n\n removeClass(element, fromClass);\n addClass(element, toClass);\n onStart?.(event);\n\n return new Promise((resolve) => {\n const duration = resolveDuration(opts.duration, phase);\n\n const cleanup = () => {\n removeClass(element, [toClass, activeClass]);\n cancelCurrent = null;\n };\n\n const onDone = () => {\n cleanup();\n onAfter?.(event);\n resolve();\n };\n\n cancelCurrent = () => {\n cleanup();\n onCancelled?.(event);\n resolve();\n };\n\n whenEnd(element, opts.type, duration, onDone);\n });\n };\n\n init(options);\n\n const instance: MotionInstance = {\n enter: () => {\n if (!opts.enter) return Promise.resolve();\n\n return run('enter');\n },\n leave: () => {\n if (!opts.leave) return Promise.resolve();\n\n return run('leave');\n },\n cancel: () => {\n cancelCurrent?.();\n cancelCurrent = null;\n },\n update: (newElement?: Element, newOptions?: MotionOptions) => {\n if (!newElement) throw new Error('Element is required.');\n\n element = newElement as HTMLElement;\n instance.cancel();\n init(newOptions);\n }\n };\n\n if (opts.appear) instance.enter();\n\n return instance;\n}\n\nlet endId = 0;\n\n/**\n * Ported from Vue.js Transition Component;\n * @see https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/components/Transition.ts#L348\n *\n * When the transition is triggered, it waits for the end of the motion (transition or animation)\n * @param element - The element to wait for the motion end.\n * @param expectedType - The expected type of motion (transition or animation).\n * @param explicitTimeout - An optional explicit timeout in milliseconds.\n * @param resolve - A function to call when the motion ends.\n * @returns A timeout ID if an explicit timeout is provided, otherwise undefined.\n */\nfunction whenEnd(element: Element & { _motionEndId?: number }, expectedType: MotionType | undefined, explicitTimeout: number | null, resolve: () => void) {\n const id = (element._motionEndId = ++endId);\n\n const resolveIfNotStale = () => {\n if (id === element._motionEndId) {\n resolve();\n }\n };\n\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n\n const { type, timeout, count } = getMotionMetadata(element, expectedType);\n\n if (!type) {\n resolve();\n\n return;\n }\n\n const endEvent = type + 'end';\n let ended = 0;\n\n const end = () => {\n element.removeEventListener(endEvent, onEnd, true);\n resolveIfNotStale();\n };\n\n const onEnd = (event: Event) => {\n if (event.target === element && ++ended >= count) {\n end();\n }\n };\n\n element.addEventListener(endEvent, onEnd, { capture: true, once: true });\n setTimeout(() => {\n if (ended < count) {\n end();\n }\n }, timeout + 1);\n}\n","import { getHiddenElementDimensions, isPrefersReducedMotion, setCSSProperty, toMs } from '@primeuix/utils';\nimport type { MotionClassNamesWithPhase, MotionHooksWithPhase, MotionMetadata, MotionOptions, MotionPhase, MotionType } from '../../types';\n\nexport const ANIMATION = 'animation';\nexport const TRANSITION = 'transition';\n\n/**\n * Determines whether motion effects should be skipped based on the provided options.\n * @param options - The motion options to evaluate.\n * @returns A boolean indicating whether motion should be skipped.\n */\nexport function shouldSkipMotion(options: MotionOptions | undefined): boolean {\n if (!options) {\n return false;\n }\n\n return options.disabled || !!(options.safe && isPrefersReducedMotion());\n}\n\n/**\n * Merges the provided motion options with the default options.\n * @param inOptions - The motion options to merge.\n * @param defaultOptions - The default motion options.\n * @returns The merged motion options.\n */\nexport function mergeOptions(inOptions: MotionOptions | undefined, defaultOptions: MotionOptions): MotionOptions {\n if (!inOptions) {\n return defaultOptions;\n }\n\n return {\n ...inOptions,\n ...(Object.entries(defaultOptions).reduce((acc: Record<string, unknown>, [key, value]) => {\n acc[key] = (inOptions as Record<string, unknown>)[key] ?? value;\n\n return acc;\n }, {}) as MotionOptions)\n };\n}\n\n/**\n * Resolves class names for motion phases based on the provided options.\n * @param options - The motion options containing class names and base name.\n * @returns The resolved class names organized by motion phase.\n */\nexport function resolveClassNames(options: MotionOptions | undefined): MotionClassNamesWithPhase {\n const { name, enterClass, leaveClass } = options || {};\n\n return {\n enter: {\n from: enterClass?.from || `${name}-enter-from`,\n to: enterClass?.to || `${name}-enter-to`,\n active: enterClass?.active || `${name}-enter-active`\n },\n leave: {\n from: leaveClass?.from || `${name}-leave-from`,\n to: leaveClass?.to || `${name}-leave-to`,\n active: leaveClass?.active || `${name}-leave-active`\n }\n };\n}\n\n/**\n * Retrieves the motion hooks organized by phase based on the provided options.\n * @param options - The motion options containing hooks.\n * @returns The motion hooks organized by phase.\n */\nexport function getMotionHooks(options: MotionOptions | undefined): MotionHooksWithPhase {\n return {\n enter: {\n onBefore: options?.onBeforeEnter,\n onStart: options?.onEnter,\n onAfter: options?.onAfterEnter,\n onCancelled: options?.onEnterCancelled\n },\n leave: {\n onBefore: options?.onBeforeLeave,\n onStart: options?.onLeave,\n onAfter: options?.onAfterLeave,\n onCancelled: options?.onLeaveCancelled\n }\n };\n}\n\n/**\n * Retrieves motion metadata including type, timeout, and count for the given element.\n * @param element - The target element to retrieve motion metadata from.\n * @param expectedType - The expected type of motion ('transition' or 'animation').\n * @returns The motion metadata including type, timeout, and count.\n */\nexport function getMotionMetadata(element: Element, expectedType?: MotionMetadata['type']): MotionMetadata {\n const styles = window.getComputedStyle(element);\n\n const getDelaysAndDurations = (type: MotionType): [number[], number[]] => {\n const delays = styles[`${type}Delay`];\n const durations = styles[`${type}Duration`];\n\n return [delays.split(', ').map(toMs), durations.split(', ').map(toMs)];\n };\n\n const [transitionDelays, transitionDurations] = getDelaysAndDurations(TRANSITION);\n const [animationDelays, animationDurations] = getDelaysAndDurations(ANIMATION);\n\n const transitionTimeout = Math.max(...transitionDurations.map((d, i) => d + transitionDelays[i]));\n const animationTimeout = Math.max(...animationDurations.map((d, i) => d + animationDelays[i]));\n\n let type: MotionMetadata['type'] = undefined;\n let timeout = 0;\n let count = 0;\n\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n count = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n count = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? (transitionTimeout > animationTimeout ? TRANSITION : ANIMATION) : undefined;\n count = type ? (type === TRANSITION ? transitionDurations.length : animationDurations.length) : 0;\n }\n\n return {\n type,\n timeout,\n count\n };\n}\n\n/**\n * Resolves the duration for a given animation phase.\n * @param duration - The duration can be a number or an object with `enter` and `leave` properties.\n * @param phase - The phase of the transition/animation, either 'enter' or 'leave'.\n * @returns The resolved duration in milliseconds or null if not specified.\n */\nexport function resolveDuration(duration: MotionOptions['duration'], phase: MotionPhase): number | null {\n if (typeof duration === 'number') {\n return duration;\n } else if (typeof duration === 'object' && duration[phase] != null) {\n return duration[phase];\n }\n\n return null;\n}\n\n/**\n * Sets CSS custom properties for auto height and/or width on the given element.\n * @param element - The target HTML element.\n * @param autoHeight - Whether to set the auto height CSS variable.\n * @param autoWidth - Whether to set the auto width CSS variable.\n * @returns\n */\nexport function setAutoDimensionVariables(element: HTMLElement, autoHeight: boolean = true, autoWidth: boolean = false): void {\n if (!autoHeight && !autoWidth) return;\n\n const dimensions = getHiddenElementDimensions(element);\n\n if (autoHeight) {\n setCSSProperty(element, '--pui-motion-height', dimensions.height + 'px');\n }\n\n if (autoWidth) {\n setCSSProperty(element, '--pui-motion-width', dimensions.width + 'px');\n }\n}\n","import { withHeadless } from '@primereact/core/headless';\nimport type { useMotionProps } from '@primereact/types/shared/motion';\nimport { createMotion, type MotionInstance, type MotionOptions } from '@primeuix/motion';\nimport * as React from 'react';\nimport { defaultUseMotionProps } from './useMotion.props';\n\nexport const useMotion = withHeadless({\n name: 'useMotion',\n defaultProps: defaultUseMotionProps,\n setup({ props, elementRef }) {\n const motionRef = React.useRef<MotionInstance | null>(null);\n\n // methods\n const enter = React.useCallback(() => motionRef.current?.enter(), [motionRef.current]);\n const leave = React.useCallback(() => motionRef.current?.leave(), [motionRef.current]);\n const cancel = React.useCallback(() => motionRef.current?.cancel(), [motionRef.current]);\n const update = React.useCallback(\n (element: Element, motionProps?: useMotionProps) => {\n const options: MotionOptions = {\n ...motionProps,\n name: motionProps?.name,\n enterClass: {\n from: motionProps?.enterFromClassName,\n to: motionProps?.enterToClassName,\n active: motionProps?.enterActiveClassName\n },\n leaveClass: {\n from: motionProps?.leaveFromClassName,\n to: motionProps?.leaveToClassName,\n active: motionProps?.leaveActiveClassName\n }\n };\n\n if (!motionRef.current) {\n motionRef.current = createMotion(element, options);\n } else {\n motionRef.current?.update(element, options);\n }\n },\n [motionRef.current]\n );\n\n React.useLayoutEffect(() => {\n if (elementRef.current) {\n update(elementRef.current, props);\n }\n }, []);\n\n return {\n motionRef,\n // methods\n enter,\n leave,\n cancel,\n update\n };\n }\n});\n","import { StyleSheet, type StyleMeta, type StyleSheetProps } from '@primeuix/styled';\nimport { isEmpty } from '@primeuix/utils';\nimport * as React from 'react';\n\nexport class PrimeReactStyleSheet extends StyleSheet<React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement>> {\n constructor({ attrs }: StyleSheetProps = {}) {\n super({ attrs });\n this._styles.set('layer-order', {});\n }\n has(key: string) {\n if (key === 'layer-order') {\n return this._styles.get(key)?.css !== undefined;\n }\n\n return this._styles.has(key);\n }\n createStyleElement(meta: StyleMeta = {}) {\n const { css, attrs, name } = meta;\n\n if (isEmpty(name)) return undefined;\n\n return (\n <style {...attrs} data-primereact-style-id={name} key={name}>\n {css}\n </style>\n );\n }\n}\n"],"mappings":"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","names":["require_react_production","__commonJSMin","exports","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","type","key","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","c","nextNamePrefix","i","mapChildren","func","result","count","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","Children","forEachFunc","forEachContext","n","size","fn","config","propName","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react_development","__commonJSMin","exports","module","defineDeprecationWarning","methodName","info","Component","getIteratorFn","maybeIterable","MAYBE_ITERATOR_SYMBOL","warnNoop","publicInstance","callerName","warningKey","didWarnStateUpdateForUnmountedComponent","props","context","updater","emptyObject","ReactNoopUpdateQueue","ComponentDummy","PureComponent","noop","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getComponentNameFromType","type","REACT_CLIENT_REFERENCE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","x","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","config","hasOwnProperty","getter","defineKeyPropWarningGetter","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","key","owner","debugStack","debugTask","refProp","REACT_ELEMENT_TYPE","cloneAndReplaceKey","oldElement","newKey","validateChildKeys","node","isValidElement","object","escape","escaperLookup","match","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","callback","invokeCallback","childKey","isArrayImpl","userProvidedKeyEscapeRegex","c","i","didWarnAboutMaps","mapChildren","func","result","count","child","lazyInitializer","payload","ioInfo","moduleObject","_ioInfo","_ioInfo2","resolveDispatcher","releaseAsyncTransition","enqueueTask","task","enqueueTaskImpl","requireString","_err","didWarnAboutMessageChannel","channel","aggregateErrors","errors","popActScope","prevActQueue","prevActScopeDepth","actScopeDepth","recursivelyFlushAsyncActWork","returnValue","resolve","reject","queue","flushActQueue","isFlushing","continuation","assign","partialState","deprecatedAPIs","fnName","createTask","callStackForError","didWarnAboutOldJSXRuntime","unknownOwnerDebugStack","unknownOwnerDebugTask","reportGlobalError","event","didWarnNoAwaitAct","queueSeveralMicrotasks","size","forEachFunc","forEachContext","n","didAwaitActCall","error$0","_thrownError","returnValue$jscomp$0","fn","getCurrentStack","a","propName","defaultValue","childrenLength","childArray","_i","refObject","render","elementType","ownName","ctor","lazyType","compare","scope","prevTransition","currentTransition","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","formatterFn","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","__commonJSMin","exports","module","src_exports","__export","Component","ConnectedOverlayScrollHandler","FilterMatchMode","FilterOperator","Icon","LocaleContext","LocaleProvider","Motion","MotionProvider","PassThroughContext","PassThroughProvider","PrimeReactContext","PrimeReactProvider","PrimeReactStyleSheet","StyleRegistry","ThemeContext","ThemeProvider","combinedRefs","createOptionalContext","createSafeContext","defaultComponentProps","defaultConfigProps","defaultIconProps","defaultLocaleProps","defaultMotionProps","defaultPTProps","defaultThemeProps","defaultUseMotionProps","defaultUseStyleProps","globalProps","isValidElement","styles","useBase","useComponent","useHeadless","useIcon","useLocale","useMotion","useMotionContext","usePassThrough","usePrimeReact","useStyle","useTheme","withComponent","withHeadless","withIcon","FilterMatchMode","FilterOperator","React","useAttrSelector","prefix","id","cn","args","classes","i","className","type","_classes","key","value","c","hasClass","element","className","addClass","fn","_className","_classNames","removeClass","element","className","fn","_className","_classNames","getHiddenElementDimensions","element","dimensions","visibility","display","rect","getParentNode","element","parent","isElement","element","toElement","target","createStyleMarkup","css","attributes","s","k","v","findSingle","element","selector","isElement","getParents","element","parents","parent","getParentNode","getScrollableParents","element","scrollableParents","parents","getParents","overflowRegex","overflowCheck","node","styleDeclaration","e","parent","scrollSelectors","selectors","selector","el","findSingle","isClient","isPrefersReducedMotion","nextFrame","resolve","setCSSProperty","element","property","value","priority","_a","EventBus","allHandlers","type","handler","handlers","evt","cn","args","classes","i","className","type","_classes","key","value","c","isFunction","mergeProps","props","merged","ps","__spreadValues","fn","isEmpty","value","isFunction","value","isNotEmpty","isEmpty","isObject","value","empty","resolve","obj","params","isFunction","isString","value","empty","toFlatCase","str","getKeyValue","key","fKeys","fKey","isObject","matchedKey","k","isArray","value","empty","isNumber","value","isNotEmpty","matchRegex","str","regex","match","minifyCSS","css","omit","obj","keys","isObject","copy","__spreadValues","key","toKebabCase","str","isString","toMs","value","React","React","React","React","React","useId","initialValue","idx","idState","setIdState","React","React","React","useMountEffect","effect","mounted","React","React","useProps","props1","props2","result","__spreadValues","key","value","React","React","React","useUnmountEffect","effect","React","useUpdateEffect","effect","dependencies","mounted","React","React","React","defaultLocaleProps","LocaleContext","LocaleProvider","inProps","attrs","useProps","defaultLocaleProps","value","m","React","useLocale","context","LocaleContext","React","defaultPTProps","PassThroughContext","PassThroughProvider","inProps","props","attrs","useProps","defaultPTProps","_a","value","rest","__objRest","pt","m","React","usePassThrough","context","PassThroughContext","ThemeService","EventBus","service_default","EXPR_REGEX","CALC_REGEX","VAR_REGEX","toTokenKey","str","isString","c","i","toValue","value","isObject","toNormalizePrefix","prefix","toNormalizeVariable","variable","isString","getVariableName","hasOddBraces","str","openBraces","closeBraces","getVariableValue","value","excludedKeyRegexes","fallback","val","matchRegex","EXPR_REGEX","_val","v","keys","_v","_r","toKebabCase","isNotEmpty","VAR_REGEX","CALC_REGEX","isNumber","setProperty","properties","key","value","isString","getRule","selector","evaluateDtExpressions","input","fn","fastParseArgs","str","args","i","current","quote","depth","c","arg","parseArg","q","num","indices","stack","start","end","inner","resolved","$dt","tokenPath","_a","theme","config_default","variable","dtwt","name","value","dt","args","fallback","type","VARIABLE","OPTIONS","prefix","transform","token","matchRegex","EXPR_REGEX","isEmpty","getVariableValue","css","strings","exprs","raw","acc","str","i","resolve","evaluateDtExpressions","toVariables_default","theme","options","VARIABLE","config_default","prefix","selector","excludedKeyRegex","tokens","variables","stack","node","path","key","raw","val","toValue","variablePath","matchRegex","toNormalizeVariable","toKebabCase","isObject","varName","getVariableName","varValue","getVariableValue","setProperty","token","declarations","getRule","themeUtils_default","value","rules","k","r","v","_a","rr","name","params","set","defaults","_e","_f","_g","_h","_i","_j","_k","preset","primitive_css","primitive_tokens","semantic_css","semantic_tokens","global_css","global_tokens","style","isNotEmpty","primitive","semantic","extend","colorScheme","sRest","__objRest","_b","eColorScheme","eRest","_c","dark","csRest","_d","eDark","ecsRest","prim_var","sRest_var","csRest_var","csDark_var","eRest_var","ecsRest_var","ecsDark_var","prim_css","prim_tokens","sRest_css","sRest_tokens","csRest_css","csRest_tokens","csDark_css","csDark_tokens","eRest_css","eRest_tokens","ecsRest_css","ecsRest_tokens","ecsDark_css","ecsDark_tokens","semantic_light_css","semantic_dark_css","global_light_css","global_dark_css","resolve","dt","p_css","p_tokens","p_style","_name","css","vRest","evRest","ecsDark","vRest_var","__spreadValues","vRest_css","vRest_tokens","light_variable_css","dark_variable_css","cPreset","dName","dPreset","cssLayer","props","common","_props","acc","_css","minifyCSS","id","preset_css","obj","parentKey","parentPath","computedFn","tokenPathMap","computedValue","EXPR_REGEX","_val","refPath","refToken","computed","CALC_REGEX","VAR_REGEX","isEmpty","traverse","currentKey","toTokenKey","currentPath","i","p","str","s","computedValues","cs","rest","selector1","selector2","type","mode","colorSchemeOption","_selector","layerOptions","newValues","__spreadProps","newValue","service_default","layerName","tokenPath","event","StyleSheet","attrs","key","css","isNotEmpty","meta","createStyleMarkup","__spreadProps","__spreadValues","style","stylesheet_default","React","defaultThemeProps","ThemeContext","ThemeProvider","inProps","props","useProps","defaultThemeProps","_a","stylesheet","preset","rest","__objRest","value","__spreadValues","S","m","React","useTheme","context","ThemeContext","React","defaultConfigProps","FilterMatchMode","PrimeReactContext","PrimeReactProvider","inProps","_a","_b","props","attrs","useProps","defaultConfigProps","inputVariant","setInputVariant","defaults","setDefaults","zIndex","setZIndex","value","LocaleProvider","PassThroughProvider","__spreadValues","ThemeProvider","m","React","usePrimeReact","config","PrimeReactContext","locale","LocaleContext","passthrough","PassThroughContext","theme","ThemeContext","combinedRefs","innerRef","forwardRef","ConnectedOverlayScrollHandler","element","listener","At","i","parent","React","createContext","defaultValue","fallback","Context","value","children","m","context","createSafeContext","message","createOptionalContext","StyleRegistry","name","isValidElement","obj","React","useBase","name","options","_a","_b","_c","$primereact","usePrimeReact","inProps","defaultProps","setup","id","useId","$attrSelector","useAttrSelector","ref","elementRef","base","computedDefaultProps","_d","globalDefaults","m","__spreadValues","props","attrs","useProps","common","__spreadProps","$computedSetup","instance","combinedRefs","React","Component","inProps","_b","_c","_e","_f","_a","pIf","style","className","as","asChild","instance","props","__objRest","AsComponent","renderAsChild","isFragment","_d","ref","children","inAttrs","restAttrs","attrs","__spreadValues","content","m","styles","classNames","isValidElement","__spreadProps","f","globalProps","defaultComponentProps","__spreadProps","__spreadValues","Q","React","React","useComponentPT","instance","$params","_a","_b","_c","id","name","props","attrs","$primereact","$attrSelector","_hook","hookName","selfHook","_usePT","_getPT","F","defaultHook","_useDefaultPT","_mergeProps","fn","args","c","w","_getPTValue","obj","key","params","searchInDefaultPT","searchOut","mergeSections","useMergeProps","global","_useGlobalPT","_getPTClassValue","self","_getPTSelf","__spreadProps","__spreadValues","datasets","_getPTDatasets","datasetPrefix","isExtended","s","g","value","a","C","pt","getValue","checkSameKey","computedValue","_key","_cKey","vfn","originalValue","$globalPT","m","$defaultPT","$attrsPT","result","slot","rest","currentObj","nestedKey","index","array","$attrsWithoutPT","acc","ptm","ptmi","_attrs","ptmo","useMountEffect","useUpdateEffect","useUnmountEffect","React","React","useStyle","theme","ThemeContext","_load","loadOptions","name","css","element","options","tt","s","root","styleElement","load","_a","_b","unload","value","key","defaultUseStyleProps","React","useComponentStyleHandler","styles","elementRef","theme","ThemeContext","load","useStyle","_load","css","options","H","handler","__spreadProps","__spreadValues","style","extendedStyle","enableThemeTransform","name","resolvedStyle","ar","computedStyle","S","s","Y","params","preset","selector","extendedCSS","props","_css","m","E","_style","_props","acc","k","v","cssArr","_name","useComponentStyle","instance","styles","$params","_a","props","$primereact","$attrSelector","elementRef","$style","useComponentStyleHandler","scopedStyleRef","_load","StyleRegistry","css","__spreadValues","$styleOptions","_loadThemeStyles","_loadStyles","_themeChangeListener","$isUnstyled","_b","_loadCoreStyles","name","_c","_d","S","primitive","semantic","global","style","layerOrder","_loadScopedThemeStyles","preset","scopedStyle","callback","N","cx","key","params","f","F","__spreadProps","sx","when","self","base","useComponent","name","options","defaultProps","__spreadValues","globalProps","baseInstance","useBase","ref","props","$params","ptx","useComponentPT","stx","useComponentStyle","instance","React","withComponent","name","defaultProps","styles","components","setup","render","Component","inProps","instance","useComponent","RenderedComponent","__spreadValues","prevProps","nextProps","i","key","value","useHeadless","name","options","useBase","withHeadless","name","defaultProps","setup","inProps","useHeadless","React","defaultIconProps","css","styles","props","__spreadValues","rr","React","useIcon","withHeadless","attrs","isAriaLabelEmpty","l","withIcon","name","defaultProps","styles","components","setup","render","withComponent","instance","icon","useIcon","computedSetup","m","__spreadValues","Icon","withIcon","styles","defaultIconProps","instance","id","props","ptmi","pti","cx","sx","rootProps","w","Component","css","styles","style","withComponent","name","defaultProps","styles","__spreadProps","__spreadValues","components","setup","render","React","MotionProvider","useMotionContext","createOptionalContext","defaultUseMotionProps","defaultMotionProps","__spreadProps","__spreadValues","defaultUseMotionProps","ANIMATION","TRANSITION","shouldSkipMotion","options","isPrefersReducedMotion","mergeOptions","inOptions","defaultOptions","__spreadValues","acc","key","value","_a","resolveClassNames","name","enterClass","leaveClass","getMotionHooks","getMotionMetadata","element","expectedType","styles","getDelaysAndDurations","type","delays","durations","toMs","transitionDelays","transitionDurations","animationDelays","animationDurations","transitionTimeout","d","i","animationTimeout","timeout","count","resolveDuration","duration","phase","setAutoDimensionVariables","autoHeight","autoWidth","dimensions","getHiddenElementDimensions","setCSSProperty","DEFAULT_MOTION_OPTIONS","createMotion","opts","skipMotion","classNames","cancelCurrent","hooks","init","newOpts","run","__async","onBefore","onStart","onAfter","onCancelled","event","fromClass","activeClass","toClass","addClass","removeClass","resolve","cleanup","onDone","whenEnd","instance","newElement","newOptions","endId","explicitTimeout","id","resolveIfNotStale","endEvent","ended","end","onEnd","React","useMotion","withHeadless","defaultUseMotionProps","props","elementRef","motionRef","enter","_a","leave","cancel","update","element","motionProps","options","__spreadProps","__spreadValues","tt","Motion","withComponent","defaultMotionProps","instance","props","rendered","setRendered","isInitialMount","motion","useMotion","_a","_b","_c","_d","_e","element","cancelled","shouldAppear","Qt","__spreadProps","__spreadValues","id","ptmi","rootProps","w","MotionProvider","Component","React","PrimeReactStyleSheet","Nt","attrs","key","_a","meta","css","name","l","__spreadProps","__spreadValues"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react.production.js","../../../../../node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react.development.js","../../../../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js","../../src/index.ts","../../src/api/FilterMatchMode.ts","../../src/api/FilterOperator.ts","../../src/license/licensebanner.ts","../../../hooks/src/use-attr-selector/index.ts","../../../hooks/src/use-sortable-list/index.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/classnames/index.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isEmpty.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/compare.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/deepEquals.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isFunction.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isNotEmpty.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/resolveFieldData.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/equals.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/contains.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isObject.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/deepMerge.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/filter.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/findIndexInList.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/findLast.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/findLastIndex.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/resolve.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isString.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toFlatCase.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/getKeyValue.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/insertIntoOrderedArray.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isArray.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isDate.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isLetter.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isNumber.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isPrintableCharacter.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isScalar.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/localeComparator.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/matchRegex.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/mergeKeys.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/minifyCSS.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/nestedKeys.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/omit.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/removeAccents.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/reorderArray.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/shallowEqualProps.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/shallowEquals.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/sort.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/stringify.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toCamelCase.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toCapitalCase.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toKebabCase.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toMs.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toTokenKey.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/toValue.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/hasClass.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/addClass.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/calculateBodyScrollbarWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/helpers/blockBodyScroll.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/helpers/saveAs.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/helpers/exportCSV.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/removeClass.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/helpers/unblockBodyScroll.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getCSSVariableByRegex.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementDimensions.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getViewport.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getScrollLeft.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getWindowScrollLeft.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getWindowScrollTop.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isRTL.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/absolutePosition.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/addStyle.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getOuterWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/relativePosition.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/alignOverlay.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getParentNode.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isExist.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/toElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getTargetElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/appendChild.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/calculateScrollbarHeight.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/calculateScrollbarWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/clearSelection.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/setAttributes.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/createElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/createStyleMarkup.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/createStyleAsString.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/createStyleElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/createStyleTag.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/fadeIn.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/fadeOut.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/find.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/findSingle.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/focus.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getAttribute.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/resolveUserAgent.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getBrowser.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getBrowserLanguage.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getCSSProperty.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getCursorOffset.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getFocusableElements.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getFirstFocusableElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getHeight.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementOuterHeight.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getHiddenElementOuterWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getIndex.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getInnerWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getLastFocusableElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getNextElementSibling.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getNextFocusableElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getOffset.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getOuterHeight.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getParents.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getPreviousElementSibling.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getScrollableParents.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getSelection.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getUserAgent.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/getWidth.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/hasCSSAnimation.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/hasCSSTransition.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/invokeElementMethod.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isAndroid.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isAttributeEquals.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isAttributeNotEquals.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isClickable.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isClient.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isCssSupported.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isFocusableElement.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isVisible.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isHidden.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isIOS.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isPrefersReducedMotion.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isServer.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/isTouchDevice.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/nestedPosition.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/nextFrame.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/remove.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/removeChild.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/removeStyleTag.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/scrollInView.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/setAttribute.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/dom/methods/setCSSProperty.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/eventbus/index.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/classnames/index.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/object/methods/isFunction.ts","../../../../../node_modules/.pnpm/@primeuix+utils@0.7.2/node_modules/@primeuix/utils/src/mergeprops/index.ts","../../../hooks/src/use-controlled-state/index.ts","../../../hooks/src/use-event-listener/index.ts","../../../hooks/src/use-previous/index.ts","../../../hooks/src/use-filter/index.ts","../../../hooks/src/use-tree-filter/index.ts","../../../hooks/src/use-hot-key/index.ts","../../../hooks/src/use-id/index.ts","../../../hooks/src/use-local-storage/index.ts","../../../hooks/src/use-mask/index.ts","../../../hooks/src/use-match-media/index.ts","../../../hooks/src/use-mount-effect/index.ts","../../../hooks/src/use-mounted/index.ts","../../../hooks/src/use-number-formatter/index.ts","../../../hooks/src/use-presence/index.ts","../../../hooks/src/use-props/index.ts","../../../hooks/src/use-queue-task/index.ts","../../../hooks/src/use-scrolltop/index.ts","../../../hooks/src/use-unmount-effect/index.ts","../../../hooks/src/use-update-effect/index.ts","../../../hooks/src/use-view-transition/index.ts","../../../hooks/src/use-visibility-change/index.ts","../../src/locale/Locale.context.tsx","../../src/locale/Locale.props.ts","../../src/locale/useLocale.ts","../../src/passthrough/PassThrough.context.tsx","../../src/passthrough/PassThrough.props.ts","../../src/passthrough/usePassThrough.ts","../../src/utils/combinedRefs.ts","../../src/utils/ConnectedOverlayScrollHandler.ts","../../src/utils/createContext.tsx","../../src/utils/env.ts","../../src/utils/mergeRefs.ts","../../src/utils/overlayEventBus.ts","../../src/utils/stylePreloadRegistry.ts","../../src/utils/styleRegistry.ts","../../src/utils/index.ts","../../src/component/Component.tsx","../../src/component/Component.props.ts","../../src/component/useComponent.ts","../../src/component/useComponentPT.ts","../../src/component/Component.utils.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/definePreset.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/updatePreset.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/service/index.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/utils/sharedUtils.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/utils/themeUtils.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/color/mix.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/color/palette.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/color/shade.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/color/tint.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/css.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/dt.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/t.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/helpers/toVariables.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/config/index.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/updatePrimaryPalette.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/updateSurfacePalette.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/usePreset.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/actions/useTheme.ts","../../../../../node_modules/.pnpm/@primeuix+styled@1.0.0-rc.1/node_modules/@primeuix/styled/src/stylesheet/index.ts","../../src/component/useComponentStyle.ts","../../src/use-style/useStyle.ts","../../src/use-style/useStyle.props.ts","../../src/component/useComponentStyleHandler.ts","../../src/component/withComponent.tsx","../../src/icon/Icon.tsx","../../src/icon/Icon.props.ts","../../src/icon/Icon.style.ts","../../src/icon/withIcon.tsx","../../src/headless/useHeadless.ts","../../src/headless/withHeadless.ts","../../src/icon/useIcon.ts","../../src/theme/Theme.context.tsx","../../src/theme/Theme.props.ts","../../src/theme/useTheme.ts","../../../../../node_modules/.pnpm/@noble+ed25519@2.3.0/node_modules/@noble/ed25519/index.js","../../../../../node_modules/.pnpm/@primeui+license-manager@1.0.0-rc.1/node_modules/@primeui/license-manager/dist/index.mjs","../../src/config/PrimeReact.context.tsx","../../src/config/PrimeReact.props.ts","../../src/config/usePrimeReact.ts","../../src/base/useBase.ts","../../src/dnd/announcements.ts","../../src/dnd/utils.ts","../../src/dnd/collision.ts","../../src/dnd/sortable.ts","../../src/dnd/createDnd.ts","../../src/motion/Motion.tsx","../../src/motion/Motion.context.ts","../../src/motion/useMotion.props.ts","../../src/motion/Motion.props.ts","../../src/motion/useMotion.ts","../../src/motion/Motion.utils.ts","../../../../../node_modules/.pnpm/@primeuix+motion@1.0.0-rc.1/node_modules/@primeuix/motion/src/config/index.ts","../../../../../node_modules/.pnpm/@primeuix+motion@1.0.0-rc.1/node_modules/@primeuix/motion/src/utils/index.ts","../../src/overlay-manager/OverlayManager.tsx","../../src/stylesheet/PrimeReactStyleSheet.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.7\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.7\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/***************** PrimeReact Core (Auto-Generated) *****************/\n\nexport * from '@primereact/core/api';\nexport * from '@primereact/core/base';\nexport * from '@primereact/core/component';\nexport * from '@primereact/core/config';\nexport * from '@primereact/core/dnd';\nexport * from '@primereact/core/headless';\nexport * from '@primereact/core/icon';\nexport * from '@primereact/core/license';\nexport * from '@primereact/core/locale';\nexport * from '@primereact/core/motion';\nexport * from '@primereact/core/overlay-manager';\nexport * from '@primereact/core/passthrough';\nexport * from '@primereact/core/stylesheet';\nexport * from '@primereact/core/theme';\nexport * from '@primereact/core/use-style';\nexport * from '@primereact/core/utils';\n","export const FilterMatchMode = Object.freeze({\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter',\n CUSTOM: 'custom'\n} as const);\n\nexport declare type FilterMatchModeType = (typeof FilterMatchMode)[keyof typeof FilterMatchMode];\n","export const FilterOperator = Object.freeze({ AND: 'and', OR: 'or' });\n\nexport declare type FilterOperatorType = (typeof FilterOperator)[keyof typeof FilterOperator];\n","/**\n * Inject a fixed-positioned banner into the bottom-right of the page when the\n * PrimeReact license cannot be verified.\n *\n * The banner content is rendered inside a closed-mode shadow root so page-level\n * CSS cannot reach into it. `all:initial` on the host element blocks inherited\n * styles. The host carries no semantically obvious id, slowing down trivial\n * hide-by-selector attempts.\n *\n * Idempotent — guarded by the host id, so multiple call sites cannot produce\n * more than one banner per page.\n *\n * SSR-safe — short-circuits when `document` is undefined.\n *\n * Note: client-side license enforcement is anti-honest-user signaling, not\n * anti-piracy. The cryptographic signature (Ed25519) is what actually prevents\n * forging valid tokens. This banner just makes the licensing problem visible\n * to a legitimate customer whose key needs attention.\n */\nexport function showInvalidLicenseBanner(): void {\n if (typeof document === 'undefined') return;\n if (document.getElementById('p-license-host')) return;\n\n const host = document.createElement('div');\n\n host.id = 'p-license-host';\n host.style.cssText = 'all:initial;position:fixed;bottom:16px;right:16px;z-index:2147483647;pointer-events:none;';\n\n const shadow = host.attachShadow({ mode: 'closed' });\n\n shadow.innerHTML = '<div role=\"alert\" style=\"padding:10px 14px;background:#991b1b;color:#fff;font:600 13px/1.2 system-ui,-apple-system,sans-serif;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,0.2);\">' + 'Invalid PrimeUI License' + '</div>';\n\n document.body.appendChild(host);\n}\n","import * as React from 'react';\n\n/**\n * Generates a unique attribute selector based on the provided prefix.\n *\n * @param prefix - The prefix to prepend to the generated selector.\n * @returns A unique string combining the prefix and the selector.\n *\n * @example\n * ```ts\n * const selector = useAttrSelector('foo');\n * console.log(selector); // e.g., 'foo0'\n * ```\n */\nexport function useAttrSelector(prefix: string = ''): string {\n const id = React.useId();\n\n return React.useMemo(() => `${prefix}${id.replaceAll(/:|«|»/g, '')}`.trim().toLowerCase(), [id, prefix]);\n}\n","'use client';\nimport * as React from 'react';\n\nexport interface SortableListState<TListId extends string = string, TItem = unknown> {\n draggedItems: TItem[];\n draggedIndex: number | null;\n sourceListId: TListId | null;\n dragOverListId: TListId | null;\n dragOverIndex: number | null;\n isDragging: boolean;\n}\n\nexport interface UseSortableListOptions<TListId extends string = string, TItem = unknown> {\n /** Called when items are reordered within the same list */\n onReorder: (listId: TListId, fromIndex: number, toIndex: number) => void;\n /** Called when items are dropped onto a different list */\n onTransfer?: (sourceListId: TListId, targetListId: TListId, items: TItem[], targetIndex?: number) => void;\n /** Whether a transfer from source to target is allowed. Defaults to true. */\n canTransfer?: (sourceListId: TListId, targetListId: TListId) => boolean;\n /** Resolve the set of items to drag. Useful for multi-selection. Defaults to [item]. */\n getSelectedItems?: (listId: TListId, item: TItem) => TItem[];\n}\n\nexport interface UseSortableListReturn<TListId extends string = string, TItem = unknown> {\n dragState: SortableListState<TListId, TItem>;\n /**\n * Drag handlers for the list container.\n * Must be spread onto the list wrapper element — handles both same-list reorder\n * (via dragOverIndexRef) and cross-list transfer in onDrop, so individual items\n * do not need onDrop handlers and CSS transitions on items are safe to use.\n */\n getListHandlers: (listId: TListId) => {\n onDragOver: (e: React.DragEvent) => void;\n onDrop: (e: React.DragEvent) => void;\n };\n /** Drag handlers for individual items (onDragStart, onDragOver, onDragEnd) */\n getItemHandlers: (\n listId: TListId,\n index: number,\n item: TItem\n ) => {\n draggable: true;\n 'data-index': number;\n onDragStart: (e: React.DragEvent) => void;\n onDragOver: (e: React.DragEvent) => void;\n onDragEnd: () => void;\n };\n /** Reset all drag state */\n reset: () => void;\n}\n\nconst INITIAL_STATE = {\n draggedItems: [],\n draggedIndex: null,\n sourceListId: null,\n dragOverListId: null,\n dragOverIndex: null,\n isDragging: false\n};\n\nexport function useSortableList<TListId extends string = string, TItem = unknown>({ onReorder, onTransfer, canTransfer, getSelectedItems }: UseSortableListOptions<TListId, TItem>): UseSortableListReturn<TListId, TItem> {\n const draggedItemsRef = React.useRef<TItem[]>([]);\n const dragSourceRef = React.useRef<TListId | null>(null);\n const draggedIndexRef = React.useRef<number | null>(null);\n // Tracks the last hovered item index so list-level onDrop always uses the correct target,\n // regardless of where the cursor is when released (even over a transitioning item).\n const dragOverIndexRef = React.useRef<number | null>(null);\n\n const [dragState, setDragState] = React.useState<SortableListState<TListId, TItem>>(INITIAL_STATE as SortableListState<TListId, TItem>);\n\n const reset = React.useCallback(() => {\n draggedItemsRef.current = [];\n dragSourceRef.current = null;\n draggedIndexRef.current = null;\n dragOverIndexRef.current = null;\n setDragState(INITIAL_STATE as SortableListState<TListId, TItem>);\n }, []);\n\n const isTransferAllowed = React.useCallback(\n (sourceListId: TListId, targetListId: TListId) => {\n if (!onTransfer) return false;\n\n return canTransfer ? canTransfer(sourceListId, targetListId) : true;\n },\n [onTransfer, canTransfer]\n );\n\n const getListHandlers = React.useCallback(\n (listId: TListId) => ({\n onDragOver: (e: React.DragEvent) => {\n e.preventDefault();\n const sourceListId = dragSourceRef.current;\n\n if (sourceListId === listId) {\n e.dataTransfer.dropEffect = 'move';\n } else if (sourceListId) {\n e.dataTransfer.dropEffect = isTransferAllowed(sourceListId, listId) ? 'move' : 'none';\n }\n\n setDragState((prev) => (prev.dragOverListId !== listId ? { ...prev, dragOverListId: listId, dragOverIndex: null } : prev));\n },\n onDrop: (e: React.DragEvent) => {\n e.preventDefault();\n const sourceListId = dragSourceRef.current;\n const fromIndex = draggedIndexRef.current;\n const toIndex = dragOverIndexRef.current;\n\n if (sourceListId === listId) {\n // Same-list reorder using the last committed hover index.\n // Because drop is handled here (not on individual items), CSS transitions\n // on items cannot affect which element receives the drop event.\n if (fromIndex !== null && toIndex !== null && fromIndex !== toIndex) {\n onReorder(listId, fromIndex, toIndex);\n }\n } else if (sourceListId && draggedItemsRef.current.length > 0 && isTransferAllowed(sourceListId, listId)) {\n onTransfer!(sourceListId, listId, draggedItemsRef.current, toIndex ?? undefined);\n }\n\n reset();\n }\n }),\n [onReorder, onTransfer, isTransferAllowed, reset]\n );\n\n const getItemHandlers = React.useCallback(\n (listId: TListId, index: number, item: TItem) => ({\n draggable: true as const,\n 'data-index': index,\n onDragStart: (e: React.DragEvent) => {\n const itemsToDrag = getSelectedItems ? getSelectedItems(listId, item) : [item];\n\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', '');\n\n // Set refs immediately so dragOver/drop handlers work from the first event.\n draggedItemsRef.current = itemsToDrag;\n dragSourceRef.current = listId;\n draggedIndexRef.current = index;\n dragOverIndexRef.current = index;\n\n // Defer the state update by one frame so the browser captures the drag\n // ghost image from the element while it is still visible (opacity: 1).\n // React's synchronous batch flush would otherwise hide the element\n // (opacity: 0 in consumer code) before the ghost snapshot is taken.\n requestAnimationFrame(() => {\n setDragState({\n draggedItems: itemsToDrag,\n draggedIndex: index,\n sourceListId: listId,\n dragOverListId: null,\n dragOverIndex: null,\n isDragging: true\n });\n });\n },\n onDragOver: (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n const sourceListId = dragSourceRef.current;\n const isSameList = sourceListId === listId;\n\n if (isSameList) {\n e.dataTransfer.dropEffect = 'move';\n } else if (sourceListId) {\n e.dataTransfer.dropEffect = isTransferAllowed(sourceListId, listId) ? 'move' : 'none';\n }\n\n // The dragged item stays at its original slot (invisible placeholder).\n // Skip dragOverIndex updates for it to prevent the feedback loop where\n // hovering the invisible item resets all visual shifts.\n if (isSameList && index === draggedIndexRef.current) {\n return;\n }\n\n dragOverIndexRef.current = index;\n setDragState((prev) => (prev.dragOverListId !== listId || prev.dragOverIndex !== index ? { ...prev, dragOverListId: listId, dragOverIndex: index } : prev));\n },\n onDragEnd: reset\n }),\n [isTransferAllowed, getSelectedItems, reset]\n );\n\n return { dragState, getListHandlers, getItemHandlers, reset };\n}\n","export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n","export default function isEmpty(value: any): boolean {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n}\n","import isEmpty from './isEmpty';\n\nexport default function compare<T = unknown>(value1: T, value2: T, comparator: (val1: T, val2: T) => number, order: number = 1): number {\n let result = -1;\n const emptyValue1 = isEmpty(value1);\n const emptyValue2 = isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = comparator(value1, value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n}\n","function _deepEquals(obj1: unknown, obj2: unknown, visited: WeakSet<object> = new WeakSet()): boolean {\n // Base case: same object reference\n if (obj1 === obj2) return true;\n\n // If one of them is null or not an object, directly return false\n if (!obj1 || !obj2 || typeof obj1 !== 'object' || typeof obj2 !== 'object') return false;\n\n // Check for circular references\n if (visited.has(obj1) || visited.has(obj2)) return false;\n\n // Add objects to the visited set\n visited.add(obj1).add(obj2);\n\n const arrObj1 = Array.isArray(obj1);\n const arrObj2 = Array.isArray(obj2);\n let i, length, key;\n\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!_deepEquals(obj1[i], obj2[i], visited)) return false;\n\n return true;\n }\n\n if (arrObj1 != arrObj2) return false;\n\n const dateObj1 = obj1 instanceof Date,\n dateObj2 = obj2 instanceof Date;\n\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n\n const regexpObj1 = obj1 instanceof RegExp,\n regexpObj2 = obj2 instanceof RegExp;\n\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n\n const keys = Object.keys(obj1);\n\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!_deepEquals((obj1 as Record<string, unknown>)[key], (obj2 as Record<string, unknown>)[key], visited)) return false;\n }\n\n return true;\n}\n\nexport default function deepEquals(obj1: unknown, obj2: unknown): boolean {\n return _deepEquals(obj1, obj2);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import isEmpty from './isEmpty';\n\nexport default function isNotEmpty(value: any): boolean {\n return !isEmpty(value);\n}\n","import isFunction from './isFunction';\nimport isNotEmpty from './isNotEmpty';\n\nexport default function resolveFieldData(data: any, field: any): any {\n if (!data || !field) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = data[field];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n // do nothing and continue to other methods to resolve field data\n }\n\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n const fields = field.split('.');\n let value = data;\n\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n }\n\n return null;\n}\n","import deepEquals from './deepEquals';\nimport resolveFieldData from './resolveFieldData';\n\nexport default function equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n","import equals from './equals';\n\nexport default function contains<T = unknown>(value: T, list: T[]): boolean {\n if (value != null && list && list.length) {\n for (const val of list) {\n if (equals(value, val)) return true;\n }\n }\n\n return false;\n}\n","export default function isObject(value: unknown, empty: boolean = true): value is object {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n","import isObject from './isObject';\n\nfunction _deepMerge(target: Record<string, unknown> = {}, source: Record<string, unknown> = {}): Record<string, unknown> {\n const mergedObj: Record<string, unknown> = { ...target };\n\n Object.keys(source).forEach((key) => {\n const typedKey = key as keyof typeof source;\n\n if (isObject(source[typedKey]) && typedKey in target && isObject(target[typedKey])) {\n mergedObj[typedKey] = _deepMerge(target[typedKey] as Record<string, unknown>, source[typedKey] as Record<string, unknown>);\n } else {\n mergedObj[typedKey] = source[typedKey];\n }\n });\n\n return mergedObj;\n}\n\n/**\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function deepMerge(...args: Record<string, unknown>[]): Record<string, unknown> {\n return args.reduce((acc, obj, i) => (i === 0 ? obj : _deepMerge(acc, obj)), {});\n}\n","import resolveFieldData from './resolveFieldData';\n\nexport default function filter<T = any>(value: T[], fields: string[], filterValue: string): T[] {\n const filteredItems = [];\n\n if (value) {\n for (const item of value) {\n for (const field of fields) {\n if (String(resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n}\n","export default function findIndexInList<T = any>(value: T, list: T[]): number {\n let index = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlast\n */\nexport default function findLast<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): T | undefined {\n let item;\n\n if (isNotEmpty(arr)) {\n try {\n item = (arr as any).findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\nexport default function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number {\n let index = -1;\n\n if (isNotEmpty(arr)) {\n try {\n index = (arr as any).findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback) as T);\n }\n }\n\n return index;\n}\n","import isFunction from './isFunction';\n\nexport default function resolve<T, P extends unknown[], R>(obj: T | ((...params: P) => R), ...params: P): T | R {\n return isFunction(obj) ? (obj as (...params: P) => R)(...params) : (obj as T);\n}\n","export default function isString(value: unknown, empty: boolean = true): value is string {\n return typeof value === 'string' && (empty || value !== '');\n}\n","import isString from './isString';\n\nexport default function toFlatCase(str: string): string {\n // convert snake, kebab, camel and pascal cases to flat case\n return isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n}\n","import isObject from './isObject';\nimport resolve from './resolve';\nimport toFlatCase from './toFlatCase';\n\nexport default function getKeyValue<T extends Record<string, unknown>>(obj: T | undefined, key: string = '', params: unknown = {}): unknown {\n const fKeys = toFlatCase(key).split('.');\n const fKey = fKeys.shift();\n\n if (fKey) {\n if (isObject(obj)) {\n const matchedKey = Object.keys(obj).find((k) => toFlatCase(k) === fKey) || '';\n\n return getKeyValue(resolve(obj[matchedKey], params) as Record<string, unknown>, fKeys.join('.'), params);\n }\n\n return undefined;\n }\n\n return resolve(obj, params);\n}\n","import findIndexInList from './findIndexInList';\n\nexport default function insertIntoOrderedArray<T>(item: T, index: number, arr: T[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n\n for (let i = 0; i < arr.length; i++) {\n const currentItemIndex = findIndexInList(arr[i], sourceArr);\n\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n}\n","export default function isArray(value: any, empty: boolean = true): boolean {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n","export default function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export default function isLetter(char: string): boolean {\n return /^[a-zA-Z\\u00C0-\\u017F]$/.test(char);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isNumber(value: unknown): boolean {\n return isNotEmpty(value) && !isNaN(value as number);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isPrintableCharacter(char: string = ''): boolean {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n","export default function isScalar(value: any): boolean {\n return value != null && (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean');\n}\n","export default function localeComparator(): (val1: string, val2: string) => number {\n //performance gain using Int.Collator. It is not recommended to use localeCompare against large arrays.\n return new Intl.Collator(undefined, { numeric: true }).compare;\n}\n","export default function matchRegex(str: string, regex?: RegExp): boolean {\n if (regex) {\n const match = regex.test(str);\n\n regex.lastIndex = 0;\n\n return match;\n }\n\n return false;\n}\n","import deepMerge from './deepMerge';\n\n/**\n * @deprecated Use `deepMerge` instead.\n *\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function mergeKeys(...args: Record<string, unknown>[]): Record<string, unknown> {\n return deepMerge(...args);\n}\n","export default function minifyCSS(css?: string): string | undefined {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n .trim()\n : css;\n}\n","import isObject from './isObject';\n\nexport default function nestedKeys(obj: Record<string, any> = {}, parentKey: string = ''): string[] {\n return Object.entries(obj).reduce<string[]>((o, [key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n isObject(value) ? (o = o.concat(nestedKeys(value, currentKey))) : o.push(currentKey);\n\n return o;\n }, []);\n}\n","import isObject from './isObject';\n\nexport default function omit(obj: unknown, ...keys: string[]): unknown {\n if (!isObject(obj)) return obj;\n\n const copy = { ...(obj as Record<string, unknown>) };\n\n keys?.flat().forEach((key) => delete copy[key]);\n\n return copy;\n}\n","export default function removeAccents(str: string): string {\n // Regular expression to check for any accented characters 'Latin-1 Supplement' and 'Latin Extended-A'\n const accentCheckRegex = /[\\xC0-\\xFF\\u0100-\\u017E]/;\n\n if (str && accentCheckRegex.test(str)) {\n const accentsMap: { [key: string]: RegExp } = {\n A: /[\\xC0-\\xC5\\u0100\\u0102\\u0104]/g,\n AE: /[\\xC6]/g,\n C: /[\\xC7\\u0106\\u0108\\u010A\\u010C]/g,\n D: /[\\xD0\\u010E\\u0110]/g,\n E: /[\\xC8-\\xCB\\u0112\\u0114\\u0116\\u0118\\u011A]/g,\n G: /[\\u011C\\u011E\\u0120\\u0122]/g,\n H: /[\\u0124\\u0126]/g,\n I: /[\\xCC-\\xCF\\u0128\\u012A\\u012C\\u012E\\u0130]/g,\n IJ: /[\\u0132]/g,\n J: /[\\u0134]/g,\n K: /[\\u0136]/g,\n L: /[\\u0139\\u013B\\u013D\\u013F\\u0141]/g,\n N: /[\\xD1\\u0143\\u0145\\u0147\\u014A]/g,\n O: /[\\xD2-\\xD6\\xD8\\u014C\\u014E\\u0150]/g,\n OE: /[\\u0152]/g,\n R: /[\\u0154\\u0156\\u0158]/g,\n S: /[\\u015A\\u015C\\u015E\\u0160]/g,\n T: /[\\u0162\\u0164\\u0166]/g,\n U: /[\\xD9-\\xDC\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172]/g,\n W: /[\\u0174]/g,\n Y: /[\\xDD\\u0176\\u0178]/g,\n Z: /[\\u0179\\u017B\\u017D]/g,\n\n a: /[\\xE0-\\xE5\\u0101\\u0103\\u0105]/g,\n ae: /[\\xE6]/g,\n c: /[\\xE7\\u0107\\u0109\\u010B\\u010D]/g,\n d: /[\\u010F\\u0111]/g,\n e: /[\\xE8-\\xEB\\u0113\\u0115\\u0117\\u0119\\u011B]/g,\n g: /[\\u011D\\u011F\\u0121\\u0123]/g,\n i: /[\\xEC-\\xEF\\u0129\\u012B\\u012D\\u012F\\u0131]/g,\n ij: /[\\u0133]/g,\n j: /[\\u0135]/g,\n k: /[\\u0137,\\u0138]/g,\n l: /[\\u013A\\u013C\\u013E\\u0140\\u0142]/g,\n n: /[\\xF1\\u0144\\u0146\\u0148\\u014B]/g,\n p: /[\\xFE]/g,\n o: /[\\xF2-\\xF6\\xF8\\u014D\\u014F\\u0151]/g,\n oe: /[\\u0153]/g,\n r: /[\\u0155\\u0157\\u0159]/g,\n s: /[\\u015B\\u015D\\u015F\\u0161]/g,\n t: /[\\u0163\\u0165\\u0167]/g,\n u: /[\\xF9-\\xFC\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173]/g,\n w: /[\\u0175]/g,\n y: /[\\xFD\\xFF\\u0177]/g,\n z: /[\\u017A\\u017C\\u017E]/g\n };\n\n for (const key in accentsMap) {\n str = str.replace(accentsMap[key], key);\n }\n }\n\n return str;\n}\n","export default function reorderArray<T>(value: T[], from: number, to: number): void {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n}\n","/**\n * Shallow equal for React/Vue props comparison\n * Ignores functions (common in props)\n */\nexport default function shallowEqualProps(propsA: Record<string, unknown>, propsB: Record<string, unknown>): boolean {\n if (propsA === propsB) return true;\n\n const keysA = Object.keys(propsA);\n const keysB = Object.keys(propsB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n const valueA = propsA[key];\n const valueB = propsB[key];\n\n // Skip function comparison (they rarely change)\n if (typeof valueA === 'function' && typeof valueB === 'function') {\n continue;\n }\n\n if (!Object.is(valueA, valueB)) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * Checks if two values are shallowly equal\n * - Primitives: compared by value (===)\n * - Objects/Arrays: compared by reference and first-level properties\n *\n * @param objA - First value to compare\n * @param objB - Second value to compare\n * @returns True if values are shallowly equal, false otherwise\n *\n * @example\n * shallowEquals(1, 1) // true\n * shallowEquals('a', 'a') // true\n * shallowEquals({ a: 1 }, { a: 1 }) // true (shallow)\n * shallowEquals({ a: { b: 1 } }, { a: { b: 1 } }) // false (nested objects are different references)\n * shallowEquals([1, 2], [1, 2]) // true (shallow)\n * shallowEquals([1, [2]], [1, [2]]) // false (nested arrays are different references)\n */\nexport default function shallowEquals(objA: unknown, objB: unknown): boolean {\n // Fast path: same reference\n if (objA === objB) return true;\n\n // Fast path: different types or null\n if (typeof objA !== typeof objB || objA === null || objB === null) {\n return false;\n }\n\n // Fast path: primitives\n if (typeof objA !== 'object') {\n return objA === objB;\n }\n\n // Same reference (including null === null, undefined === undefined)\n if (Object.is(objA, objB)) {\n return true;\n }\n\n // If either is not an object or is null, they're not equal\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n // Compare arrays\n if (Array.isArray(objA) && Array.isArray(objB)) {\n if (objA.length !== objB.length) {\n return false;\n }\n\n for (let i = 0; i < objA.length; i++) {\n if (!Object.is(objA[i], objB[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n // If only one is array, they're not equal\n if (Array.isArray(objA) || Array.isArray(objB)) {\n return false;\n }\n\n // Compare object keys\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Check if all keys and values match\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, key) || !Object.is((objA as Record<string, unknown>)[key], (objB as Record<string, unknown>)[key])) {\n return false;\n }\n }\n\n return true;\n}\n","import compare from './compare';\nimport isEmpty from './isEmpty';\n\nexport default function sort<T>(value1: T, value2: T, order: number = 1, comparator: (val1: T, val2: T) => number, nullSortOrder: number = 1): number {\n const result = compare(value1, value2, comparator, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (isEmpty(value1) || isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n}\n","import isArray from './isArray';\nimport isDate from './isDate';\nimport isFunction from './isFunction';\nimport isObject from './isObject';\n\nexport default function stringify(value: unknown, indent: number = 2, currentIndent: number = 0): string {\n const currentIndentStr = ' '.repeat(currentIndent);\n const nextIndentStr = ' '.repeat(currentIndent + indent);\n\n if (isArray(value)) {\n return '[' + (value as unknown[]).map((v: unknown) => stringify(v, indent, currentIndent + indent)).join(', ') + ']';\n } else if (isDate(value)) {\n return value.toISOString();\n } else if (isFunction(value)) {\n return value.toString();\n } else if (isObject(value)) {\n return (\n '{\\n' +\n Object.entries(value)\n .map(([k, v]) => `${nextIndentStr}${k}: ${stringify(v, indent, currentIndent + indent)}`)\n .join(',\\n') +\n `\\n${currentIndentStr}` +\n '}'\n );\n } else {\n return JSON.stringify(value);\n }\n}\n","import isString from './isString';\n\nexport default function toCamelCase(str: string): string {\n // convert snake, kebab and pascal cases to camel case\n return isString(str) ? str.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : '')) : str;\n}\n","import isString from './isString';\n\nexport default function toCapitalCase(str: string): string {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n","import isString from './isString';\n\nexport default function toKebabCase(str: string): string {\n // convert snake, camel and pascal cases to kebab case\n return isString(str)\n ? str\n .replace(/(_)/g, '-')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase()\n : str;\n}\n","export default function toMs(value: string | number): number {\n if (value === 'auto') return 0;\n\n if (typeof value === 'number') return value;\n\n return Number(value.replace(/[^\\d.]/g, '').replace(',', '.')) * 1000;\n}\n","import isString from './isString';\n\nexport default function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n","import resolve from './resolve';\n\n/**\n * Resolves the underlying value from various wrapper patterns\n * Supports React refs, Vue refs, Lit directives, Angular signals, and direct values/functions\n * @param value - The value to resolve\n */\nexport default function toValue(value: unknown): unknown {\n if (value && typeof value === 'object') {\n // React ref pattern: { current: unknown }\n if ('current' in value) {\n return (value as { current: unknown }).current;\n }\n // Vue ref / Lit pattern: { value: unknown }\n // Note: Vue 3 refs use getters/setters, so we need 'in' operator instead of hasOwn\n else if ('value' in value) {\n return (value as { value: unknown }).value;\n }\n }\n\n // Angular signals or fallback to direct value/function\n return resolve(value);\n}\n","export default function hasClass(element: Element, className: string): boolean {\n if (element) {\n if (element.classList) return element.classList.contains(className);\n else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n\n return false;\n}\n","import hasClass from './hasClass';\n\nexport default function addClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (!hasClass(element, _className)) {\n if (element.classList) element.classList.add(_className);\n else element.className += ' ' + _className;\n }\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","export default function calculateBodyScrollbarWidth(): number {\n return window.innerWidth - document.documentElement.offsetWidth;\n}\n","import addClass from '../methods/addClass';\nimport calculateBodyScrollbarWidth from '../methods/calculateBodyScrollbarWidth';\n\nexport interface BlockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function blockBodyScroll(option: string | BlockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n addClass(document.body, option || 'p-overflow-hidden');\n } else {\n option?.variableName && document.body.style.setProperty(option.variableName, calculateBodyScrollbarWidth() + 'px');\n addClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function saveAs(file: { name: string; src: string }): boolean {\n if (file) {\n const link = document.createElement('a');\n\n if (link.download !== undefined) {\n const { name, src } = file;\n\n link.setAttribute('href', src);\n link.setAttribute('download', name);\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n return true;\n }\n }\n\n return false;\n}\n","import saveAs from './saveAs';\n\nexport default function exportCSV(csv: any, filename: string): void {\n const blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if ((window.navigator as any).msSaveOrOpenBlob) {\n (navigator as any).msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n const isDownloaded = saveAs({ name: filename + '.csv', src: URL.createObjectURL(blob) });\n\n if (!isDownloaded) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n}\n","export default function removeClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (element.classList) element.classList.remove(_className);\n else element.className = element.className.replace(new RegExp('(^|\\\\b)' + _className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","import removeClass from '../methods/removeClass';\n\nexport interface UnblockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function unblockBodyScroll(option: string | UnblockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n removeClass(document.body, option || 'p-overflow-hidden');\n } else {\n if (option?.variableName) document.body.style.removeProperty(option.variableName);\n removeClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function getCSSVariableByRegex(variableRegex: RegExp): { name: string | undefined; value: string | undefined } | null {\n for (const sheet of document?.styleSheets) {\n try {\n for (const rule of sheet?.cssRules) {\n for (const property of (rule as CSSStyleRule)?.style) {\n if (variableRegex.test(property)) {\n return { name: property, value: (rule as CSSStyleRule).style.getPropertyValue(property).trim() };\n }\n }\n }\n } catch {}\n }\n\n return null;\n}\n","export default function getHiddenElementDimensions(element?: HTMLElement): { width: number; height: number } {\n const dimensions: { width: number; height: number } = { width: 0, height: 0 };\n\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n const rect = element.getBoundingClientRect();\n\n // Temporarily hide the element to get its dimensions\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = rect.width || element.offsetWidth;\n dimensions.height = rect.height || element.offsetHeight;\n element.style.display = display;\n element.style.visibility = visibility;\n }\n\n return dimensions;\n}\n","export default function getViewport(): { width: number; height: number } {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n}\n","export default function getScrollLeft(element?: HTMLElement): number {\n // for RTL scrollLeft should be negative\n return element ? Math.abs(element.scrollLeft) : 0;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getWindowScrollLeft(): number {\n const doc = document.documentElement;\n\n return (window.pageXOffset || getScrollLeft(doc)) - (doc.clientLeft || 0);\n}\n","export default function getWindowScrollTop(): number {\n const doc = document.documentElement;\n\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n}\n","export default function isRTL(element?: HTMLElement): boolean {\n return element ? getComputedStyle(element).direction === 'rtl' : false;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\nimport getWindowScrollLeft from './getWindowScrollLeft';\nimport getWindowScrollTop from './getWindowScrollTop';\nimport isRTL from './isRTL';\n\nexport default function absolutePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const elementOuterHeight = elementDimensions.height;\n const elementOuterWidth = elementDimensions.width;\n const targetOuterHeight = target.offsetHeight;\n const targetOuterWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = getWindowScrollTop();\n const windowScrollLeft = getWindowScrollLeft();\n const viewport = getViewport();\n let top,\n left,\n origin = 'top';\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n origin = 'bottom';\n\n if (top < 0) {\n top = windowScrollTop;\n }\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n }\n\n if (targetOffset.left + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else left = targetOffset.left + windowScrollLeft;\n\n if (isRTL(element)) {\n element.style.insetInlineEnd = left + 'px';\n } else {\n element.style.insetInlineStart = left + 'px';\n }\n\n element.style.top = top + 'px';\n element.style.transformOrigin = origin;\n if (gutter) element.style.marginTop = origin === 'bottom' ? `calc(${getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '2px'} * -1)` : (getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '');\n }\n}\n","export default function addStyle(element: HTMLElement, style: string | object): void {\n if (element) {\n if (typeof style === 'string') {\n element.style.cssText = style;\n } else {\n Object.entries(style || {}).forEach(([key, value]: [string, string]) => ((element.style as any)[key] = value));\n }\n }\n}\n","export default function getOuterWidth(element: unknown, margin?: boolean): number {\n if (element instanceof HTMLElement) {\n let width = element.offsetWidth;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\n\nexport default function relativePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true, fixedOrigin: 'top' | 'bottom' | undefined = undefined): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const viewport = getViewport();\n let top,\n left,\n origin = fixedOrigin ?? 'top';\n\n if (!fixedOrigin && targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n origin = 'bottom';\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n } else {\n top = targetHeight;\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.insetInlineStart = left + 'px';\n element.style.transformOrigin = origin;\n\n if (gutter) {\n const gutterValue = getCSSVariableByRegex(/-anchor-gutter$/)?.value;\n\n element.style.marginTop = origin === 'bottom' ? `calc(${gutterValue ?? '2px'} * -1)` : (gutterValue ?? '');\n }\n }\n}\n","import absolutePosition from './absolutePosition';\nimport getOuterWidth from './getOuterWidth';\nimport relativePosition from './relativePosition';\n\nexport default function alignOverlay(overlay: HTMLElement, target: HTMLElement, appendTo: string, calculateMinWidth: boolean = true) {\n if (overlay && target) {\n if (appendTo === 'self') {\n relativePosition(overlay, target);\n } else {\n if (calculateMinWidth) overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(overlay, target);\n }\n }\n}\n","export default function getParentNode(element: Node): ParentNode | null {\n if (element) {\n let parent = element.parentNode;\n\n if (parent && parent instanceof ShadowRoot && parent.host) {\n parent = parent.host;\n }\n\n return parent;\n }\n\n return null;\n}\n","import getParentNode from './getParentNode';\n\nexport default function isExist(element: Node): boolean {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && getParentNode(element));\n}\n","import { resolve } from '@primeuix/utils/object';\nimport isElement from './isElement';\n\n/**\n * Converts various framework-specific element references to a DOM HTMLElement\n * Supports:\n * - React refs: { current: HTMLElement }\n * - Vue refs: { value: HTMLElement }\n * - Lit refs: { value: HTMLElement }\n * - Angular ViewChild: { nativeElement: HTMLElement }\n * - Vue template ref: { el: HTMLElement }\n * - Direct HTMLElement\n *\n * @param ref - Framework-specific element reference\n * @returns The resolved HTMLElement or undefined if not found\n */\nexport default function toElement(ref: unknown): HTMLElement | undefined {\n // Direct Element\n if (isElement(ref)) {\n return ref as HTMLElement;\n }\n\n if (!ref || typeof ref !== 'object') {\n return undefined;\n }\n\n let target: unknown = ref;\n\n // React ref pattern: { current: HTMLElement }\n if ('current' in ref) {\n target = (ref as { current: unknown }).current;\n target = toElement((target as { elementRef?: { current: unknown } })?.elementRef) ?? target; // Handle potential nested ref (e.g., when using withComponent)\n }\n // Vue ref / Lit pattern: { value: HTMLElement }\n // Note: Vue 3 refs use getters/setters, so we need 'in' operator instead of hasOwn\n else if ('value' in ref) {\n target = (ref as { value: unknown }).value;\n }\n // Angular ViewChild pattern: { nativeElement: HTMLElement }\n else if ('nativeElement' in ref) {\n target = (ref as { nativeElement: unknown }).nativeElement;\n }\n // Vue 3 template ref: { el: Element }\n else if ('el' in ref) {\n const el = (ref as { el: unknown }).el;\n\n // Nested element check (could be another ref)\n if (el && typeof el === 'object' && 'nativeElement' in el) {\n target = (el as { nativeElement: unknown }).nativeElement;\n } else {\n target = el;\n }\n }\n // PrimeReact component instance: { elementRef: { current: HTMLElement } }\n else if ('elementRef' in ref) {\n return toElement((ref as { elementRef: unknown }).elementRef);\n }\n\n // function pattern: resolve the element if it's a function that returns an element\n target = resolve(target);\n\n return isElement(target) ? (target as HTMLElement) : undefined;\n}\n","export default function isElement(element: unknown): element is Element {\n return typeof Element !== 'undefined' ? element instanceof Element : element !== null && typeof element === 'object' && (element as Element).nodeType === 1 && typeof (element as Element).nodeName === 'string';\n}\n","import isExist from './isExist';\nimport toElement from './toElement';\n\nexport default function getTargetElement(target: unknown, currentElement?: Element): Window | Document | Element | null | undefined {\n if (!target) return undefined;\n\n switch (target) {\n case 'document':\n return document;\n case 'window':\n return window;\n case 'body':\n return document.body;\n case '@next':\n return currentElement?.nextElementSibling;\n case '@prev':\n return currentElement?.previousElementSibling;\n case '@first':\n return currentElement?.firstElementChild;\n case '@last':\n return currentElement?.lastElementChild;\n case '@child':\n return currentElement?.children?.[0];\n case '@parent':\n return currentElement?.parentElement;\n case '@grandparent':\n return currentElement?.parentElement?.parentElement;\n\n default: {\n if (typeof target === 'string') {\n // child selector\n const match = target.match(/^@child\\[(\\d+)]/);\n\n if (match) {\n return currentElement?.children?.[parseInt(match[1], 10)] || null;\n }\n\n return document.querySelector(target) || null;\n }\n\n const isFunction = (value: unknown): value is (...args: unknown[]) => unknown => typeof value === 'function' && 'call' in value && 'apply' in value;\n const computedTarget = isFunction(target) ? target() : target;\n const element = toElement(computedTarget);\n\n return isExist(element as Element) ? (element as Element) : (computedTarget as Document)?.nodeType === 9 ? (computedTarget as Document) : undefined;\n }\n }\n}\n","import getTargetElement from './getTargetElement';\n\nexport default function appendChild(element: unknown, child: Node | Element) {\n const target: Document | Element | null | undefined = getTargetElement(element, child as Element) as Exclude<ReturnType<typeof getTargetElement>, Window>;\n\n if (target) target.appendChild(child);\n else throw new Error('Cannot append ' + child + ' to ' + element);\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarHeight: number | undefined = undefined;\n\nexport default function calculateScrollbarHeight(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetHeight - element.clientHeight - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth);\n } else {\n if (calculatedScrollbarHeight != null) return calculatedScrollbarHeight;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarHeight = scrollbarHeight;\n\n return scrollbarHeight;\n }\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarWidth: number | undefined = undefined;\n\nexport default function calculateScrollbarWidth(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetWidth - element.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (calculatedScrollbarWidth != null) return calculatedScrollbarWidth;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarWidth = scrollbarWidth;\n\n return scrollbarWidth;\n }\n}\n","export default function clearSelection(): void {\n if (window.getSelection) {\n const selection: any = window.getSelection() || {};\n\n if (selection.empty) {\n selection.empty();\n } else if (selection.removeAllRanges && selection.rangeCount > 0 && selection.getRangeAt(0).getClientRects().length > 0) {\n selection.removeAllRanges();\n }\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttributes(element: HTMLElement, attributes: { [key: string]: any } = {}): void {\n if (isElement(element)) {\n const computedStyles = (rule: string, value: any): string[] => {\n const styles = (element as any)?.$attrs?.[rule] ? [(element as any)?.$attrs?.[rule]] : [];\n\n return [value].flat().reduce((cv, v) => {\n if (v !== null && v !== undefined) {\n const type = typeof v;\n\n if (type === 'string' || type === 'number') {\n cv.push(v);\n } else if (type === 'object') {\n const _cv = Array.isArray(v) ? computedStyles(rule, v) : Object.entries(v).map(([_k, _v]) => (rule === 'style' && (!!_v || _v === 0) ? `${_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}:${_v}` : _v ? _k : undefined));\n\n cv = _cv.length ? cv.concat(_cv.filter((c) => !!c)) : cv;\n }\n }\n\n return cv;\n }, styles);\n };\n\n // CSP-safe\n const applyStyle = (value: any): void => {\n const declarations = computedStyles('style', value);\n\n declarations.forEach((decl) => {\n const idx = decl.indexOf(':');\n\n if (idx < 0) return;\n\n const prop = decl.slice(0, idx).trim();\n const val = decl.slice(idx + 1).trim();\n\n if (!prop) return;\n\n element.style.setProperty(prop, val);\n });\n };\n\n Object.entries(attributes).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n const matchedEvent = key.match(/^on(.+)/);\n\n if (matchedEvent) {\n element.addEventListener(matchedEvent[1].toLowerCase(), value);\n } else if (key === 'p-bind' || key === 'pBind') {\n setAttributes(element, value);\n } else if (key === 'style') {\n applyStyle(value);\n ((element as any).$attrs = (element as any).$attrs || {}) && ((element as any).$attrs[key] = element.style.cssText);\n } else {\n value = key === 'class' ? [...new Set(computedStyles('class', value))].join(' ').trim() : value;\n\n ((element as any).$attrs = (element as any).$attrs || {}) && ((element as any).$attrs[key] = value);\n element.setAttribute(key, value);\n }\n }\n });\n }\n}\n","import setAttributes from './setAttributes';\n\nexport default function createElement(type: string, attributes: Record<string, unknown> = {}, ...children: (string | Node)[]): HTMLElement | undefined {\n if (type) {\n const element = document.createElement(type);\n\n setAttributes(element, attributes);\n element.append(...children);\n\n return element;\n }\n\n return undefined;\n}\n","export default function createStyleMarkup(css?: string, attributes: Record<string, unknown> = {}): string {\n return css ? `<style${Object.entries(attributes).reduce((s, [k, v]) => s + ` ${k}=\"${v}\"`, '')}>${css}</style>` : '';\n}\n","import createStyleMarkup from './createStyleMarkup';\n\n/**\n * @deprecated Use `createStyleMarkup` instead.\n */\nexport default function createStyleAsString(css?: string, options: Record<string, unknown> = {}) {\n return createStyleMarkup(css, options);\n}\n","import createElement from './createElement';\n\nexport default function createStyleElement(css: string, attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n const element = createElement('style', attributes, css)! as HTMLStyleElement;\n\n container?.appendChild(element);\n\n return element;\n}\n","import createStyleElement from './createStyleElement';\n\n/**\n * @deprecated Use `createStyleElement` instead.\n */\nexport default function createStyleTag(attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n return createStyleElement('', attributes, container || document.head);\n}\n","export default function fadeIn(element: HTMLElement, duration: number): void {\n if (element) {\n element.style.opacity = '0';\n\n let last = +new Date();\n let opacity = '0';\n\n const tick = function () {\n opacity = `${+element.style.opacity + (new Date().getTime() - last) / duration}`;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n if ('requestAnimationFrame' in window) requestAnimationFrame(tick);\n else setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n}\n","export default function fadeOut(element: HTMLElement, duration: number): void {\n if (element) {\n let opacity = 1;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(() => {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity.toString();\n }, interval);\n }\n}\n","import isElement from './isElement';\n\nexport default function find(element: Element, selector: string): Element[] {\n return isElement(element) ? Array.from(element.querySelectorAll(selector)) : [];\n}\n","import isElement from './isElement';\n\nexport default function findSingle(element: Element, selector: string): Element | null {\n return isElement(element) ? (element.matches(selector) ? element : element.querySelector(selector)) : null;\n}\n","export default function focus(element: HTMLElement, options?: FocusOptions): void {\n if (element && document.activeElement !== element) element.focus(options);\n}\n","import isElement from './isElement';\n\nexport default function getAttribute(element: Element, name: string): any {\n if (isElement(element)) {\n const value = element.getAttribute(name);\n\n if (!isNaN(value as any)) {\n return +(value as string);\n }\n\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n\n return value;\n }\n\n return undefined;\n}\n","export default function resolveUserAgent(): { browser: string | undefined; version: string | undefined } {\n const ua = navigator.userAgent.toLowerCase();\n const match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || (ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) || [];\n\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n}\n","import resolveUserAgent from './resolveUserAgent';\n\ntype BrowserType = {\n [key: string]: string | boolean | undefined;\n};\n\nlet browser: BrowserType | null = null;\n\nexport default function getBrowser(): BrowserType {\n if (!browser) {\n browser = {};\n\n const matched = resolveUserAgent();\n\n if (matched.browser) {\n browser[matched.browser] = true;\n browser['version'] = matched.version;\n }\n\n if (browser['chrome']) {\n browser['webkit'] = true;\n } else if (browser['webkit']) {\n browser['safari'] = true;\n }\n }\n\n return browser;\n}\n","export default function getBrowserLanguage(): string {\n return (navigator.languages && navigator.languages.length && navigator.languages[0]) || navigator.language || 'en';\n}\n","export default function getCSSProperty(element?: HTMLElement, property?: string, inline?: boolean): string | null {\n if (element && property) {\n return inline ? element?.style?.getPropertyValue(property) : getComputedStyle(element).getPropertyValue(property);\n }\n\n return null;\n}\n","export default function getCursorOffset(element: Element, prevText: string, nextText: string, currentText: string): { top: number | string; left: number | string } {\n if (element) {\n const style = getComputedStyle(element);\n const ghostDiv = document.createElement('div');\n\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '<br />');\n\n const ghostSpan = document.createElement('span');\n\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n\n const text = document.createTextNode(nextText);\n\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n\n const { offsetLeft, offsetTop, clientHeight } = ghostSpan;\n\n document.body.removeChild(ghostDiv);\n\n return {\n left: Math.abs(offsetLeft - element.scrollLeft),\n top: Math.abs(offsetTop - element.scrollTop) + clientHeight\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","import find from './find';\n\nexport default function getFocusableElements(element: Element, selector: string = ''): Element[] {\n const focusableElements = find(\n element,\n `button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href]:not([tabindex = \"-1\"]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`\n );\n\n const visibleFocusableElements: Element[] = [];\n\n for (const focusableElement of focusableElements) {\n if (getComputedStyle(focusableElement).display != 'none' && getComputedStyle(focusableElement).visibility != 'hidden') visibleFocusableElements.push(focusableElement);\n }\n\n return visibleFocusableElements;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getFirstFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[0] : null;\n}\n","export default function getHeight(element: HTMLElement): number {\n if (element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\n return height;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterHeight(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer height\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementHeight = element.offsetHeight;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementHeight;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterWidth(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer width\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementWidth = element.offsetWidth;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementWidth;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getIndex(element: HTMLElement): number {\n if (element) {\n const children = getParentNode(element)?.childNodes;\n let num = 0;\n\n if (children) {\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n }\n\n return -1;\n}\n","export default function getInnerWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.borderLeft) + parseFloat(style.borderRight);\n\n return width;\n }\n\n return 0;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getLastFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n}\n","export default function getNextElementSibling(element: Element, selector: string): Element | null {\n let nextElement = element.nextElementSibling;\n\n while (nextElement) {\n if (nextElement.matches(selector)) {\n return nextElement;\n } else {\n nextElement = nextElement.nextElementSibling;\n }\n }\n\n return null;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getNextFocusableElement(container: Element, element: Element, selector?: string): Element | null {\n const focusableElements: Element[] = getFocusableElements(container, selector);\n const index = focusableElements.length > 0 ? focusableElements.findIndex((el) => el === element) : -1;\n const nextIndex = index > -1 && focusableElements.length >= index + 1 ? index + 1 : -1;\n\n return nextIndex > -1 ? focusableElements[nextIndex] : null;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getOffset(element?: Element | null): { top: number | string; left: number | string } {\n if (element) {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || getScrollLeft(document.documentElement) || getScrollLeft(document.body) || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","export default function getOuterHeight(element: HTMLElement, margin?: boolean): number {\n if (element) {\n let height = element.offsetHeight;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getParents(element: Node, parents: ParentNode[] = []): ParentNode[] {\n const parent = getParentNode(element);\n\n return parent === null ? parents : getParents(parent, parents.concat([parent]));\n}\n","export default function getPreviousElementSibling(element: Element, selector: string): Element | null {\n let previousElement = element.previousElementSibling;\n\n while (previousElement) {\n if (previousElement.matches(selector)) {\n return previousElement;\n } else {\n previousElement = previousElement.previousElementSibling;\n }\n }\n\n return null;\n}\n","import findSingle from './findSingle';\nimport getParents from './getParents';\n\nexport default function getScrollableParents(element: Element): Element[] {\n const scrollableParents = [];\n\n if (element) {\n const parents = getParents(element) as HTMLElement[];\n const overflowRegex = /(auto|scroll)/;\n\n const overflowCheck = (node: Element) => {\n try {\n const styleDeclaration = window['getComputedStyle'](node, null);\n\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n } catch {\n return false;\n }\n };\n\n for (const parent of parents) {\n const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n const selectors = scrollSelectors.split(',');\n\n for (const selector of selectors) {\n const el = findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n\n return scrollableParents;\n}\n","export default function getSelection(): string | undefined {\n if (window.getSelection) return (window.getSelection() as any).toString();\n else if (document.getSelection) return (document.getSelection() as any).toString();\n\n return undefined;\n}\n","export default function getUserAgent(): string {\n return navigator.userAgent;\n}\n","export default function getWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n\n return width;\n }\n\n return 0;\n}\n","export default function hasCSSAnimation(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const animationDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n\n return animationDuration > 0;\n }\n\n return false;\n}\n","export default function hasCSSTransition(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const transitionDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n\n return transitionDuration > 0;\n }\n\n return false;\n}\n","export default function invokeElementMethod<T extends keyof Element>(element: Element, methodName: T, args?: unknown[]): void {\n const method = element[methodName];\n\n if (typeof method === 'function') {\n (method as (...args: unknown[]) => void).apply(element, args ?? []);\n }\n}\n","export default function isAndroid(): boolean {\n return /(android)/i.test(navigator.userAgent);\n}\n","import getAttribute from './getAttribute';\nimport isElement from './isElement';\n\nexport default function isAttributeEquals(element: Element, name: string, value: any): boolean {\n return isElement(element) ? getAttribute(element, name) === value : false;\n}\n","import isAttributeEquals from './isAttributeEquals';\n\nexport default function isAttributeNotEquals(element: Element, name: string, value: any): boolean {\n return !isAttributeEquals(element, name, value);\n}\n","export default function isClickable(element: Element): boolean {\n if (element) {\n const targetNode = element.nodeName;\n const parentNode = element.parentElement && element.parentElement.nodeName;\n\n return (\n targetNode === 'INPUT' ||\n targetNode === 'TEXTAREA' ||\n targetNode === 'BUTTON' ||\n targetNode === 'A' ||\n parentNode === 'INPUT' ||\n parentNode === 'TEXTAREA' ||\n parentNode === 'BUTTON' ||\n parentNode === 'A' ||\n !!element.closest('.p-button, .p-checkbox, .p-radiobutton') // @todo Add [data-pc-section=\"button\"]\n );\n }\n\n return false;\n}\n","export default function isClient(): boolean {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\n","/**\n * Checks if a given CSS property-value pair is supported by the browser.\n *\n * @param property - CSS property string\n * @param value - CSS value string\n * @returns True if supported, false otherwise\n */\nexport function isCssSupported(property: keyof CSSStyleDeclaration | string, value: string): boolean;\n\n/**\n * Checks if a given CSS condition is supported by the browser.\n *\n * @param condition - CSS condition string\n * @returns True if supported, false otherwise\n */\nexport function isCssSupported(condition: string): boolean;\n\n/**\n * Checks if a given CSS property-value pair or condition is supported by the browser.\n *\n * @param input - CSS property or condition\n * @param value - CSS value (optional)\n * @returns True if supported, false otherwise\n */\nexport default function isCssSupported(input: keyof CSSStyleDeclaration | string, value?: string): boolean {\n if (typeof CSS === 'undefined' || !CSS.supports) {\n return false;\n }\n\n if (value !== undefined) {\n const prop = input.toString().replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n\n return CSS.supports(prop, value);\n }\n\n return CSS.supports(input.toString());\n}\n","import isElement from './isElement';\n\nexport default function isFocusableElement(element: unknown, selector: string = ''): boolean {\n return isElement(element)\n ? (element as Element).matches(`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`)\n : false;\n}\n","export default function isVisible(element?: HTMLElement): boolean {\n return !!(element && element.offsetParent != null);\n}\n","import isVisible from './isVisible';\n\nexport default function isHidden(element: HTMLElement): boolean {\n return !isVisible(element);\n}\n","export default function isIOS(): boolean {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n}\n","export default function isPrefersReducedMotion(): boolean {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return false;\n }\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n return mediaQuery.matches;\n}\n","import isClient from './isClient';\n\nexport default function isServer(): boolean {\n return !isClient();\n}\n","export default function isTouchDevice(): boolean {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || (navigator as Partial<Navigator & { msMaxTouchPoints?: number }>).msMaxTouchPoints! > 0;\n}\n","import calculateScrollbarWidth from './calculateScrollbarWidth';\nimport getHiddenElementOuterHeight from './getHiddenElementOuterHeight';\nimport getHiddenElementOuterWidth from './getHiddenElementOuterWidth';\nimport getOffset from './getOffset';\nimport getOuterHeight from './getOuterHeight';\nimport getOuterWidth from './getOuterWidth';\nimport getViewport from './getViewport';\n\nexport default function nestedPosition(element: HTMLElement, level: number): void {\n if (element) {\n const parentItem = element.parentElement;\n const elementOffset = getOffset(parentItem);\n const viewport = getViewport();\n const sublistWidth = element.offsetParent ? element.offsetWidth : getHiddenElementOuterWidth(element);\n const sublistHeight = element.offsetParent ? element.offsetHeight : getHiddenElementOuterHeight(element);\n const itemOuterWidth = getOuterWidth(parentItem?.children?.[0]);\n const itemOuterHeight = getOuterHeight(parentItem?.children?.[0] as HTMLElement);\n\n let left: string = '';\n let top: string = '';\n\n if ((elementOffset.left as number) + itemOuterWidth + sublistWidth > viewport.width - calculateScrollbarWidth()) {\n if ((elementOffset.left as number) < sublistWidth) {\n // for too small screens\n if (level % 2 === 1) {\n left = (elementOffset.left as number) ? '-' + (elementOffset.left as number) + 'px' : '100%';\n } else if (level % 2 === 0) {\n left = viewport.width - sublistWidth - calculateScrollbarWidth() + 'px';\n }\n } else {\n left = '-100%';\n }\n } else {\n left = '100%';\n }\n\n // getBoundingClientRect returns a top position from the current visible viewport area\n if (element.getBoundingClientRect().top + itemOuterHeight + sublistHeight > viewport.height) {\n top = `-${sublistHeight - itemOuterHeight}px`;\n } else {\n top = '0px';\n }\n\n element.style.top = top;\n element.style.insetInlineStart = left;\n }\n}\n","export default function nextFrame(): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve as () => void);\n });\n });\n}\n","export default function remove(element: Element) {\n if (element) {\n if (!('remove' in Element.prototype)) element.parentNode?.removeChild(element);\n else element.remove();\n }\n}\n","import toElement from './toElement';\n\nexport default function removeChild(element: unknown, child: Node) {\n const target = toElement(element);\n\n if (target) target.removeChild(child);\n else throw new Error('Cannot remove ' + child + ' from ' + element);\n}\n","import isExist from './isExist';\n\nexport default function removeStyleTag(element: Node): Node | null {\n if (isExist(element)) {\n try {\n element.parentNode?.removeChild(element);\n } catch {\n // style element may have already been removed in a fast refresh\n }\n\n return null;\n }\n\n return element;\n}\n","import getOuterHeight from './getOuterHeight';\n\nexport default function scrollInView(container: HTMLElement, item: HTMLElement): void {\n const borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n const borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n const paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n const paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n const containerRect = container.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n const offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n const scroll = container.scrollTop;\n const elementHeight = container.clientHeight;\n const itemHeight = getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttribute(element: HTMLElement, attribute: string = '', value: any): void {\n if (isElement(element) && value !== null && value !== undefined) {\n // CSP-safe\n if (attribute === 'style') {\n if (typeof value === 'string') {\n element.style.cssText = value;\n } else if (typeof value === 'object') {\n Object.entries(value).forEach(([prop, val]) => {\n if (val === null || val === undefined) return;\n\n const name = prop.startsWith('--') ? prop : prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n\n element.style.setProperty(name, String(val));\n });\n }\n\n return;\n }\n\n element.setAttribute(attribute, value);\n }\n}\n","export default function setCSSProperty(element?: HTMLElement, property?: string, value: any = null, priority?: string): void {\n property && element?.style?.setProperty(property, value, priority);\n}\n","export type Handler = (evt: unknown) => void;\n\nexport interface EventBusOptions {\n on(type: string, handler: Handler): void;\n off(type: string, handler: Handler): void;\n emit(type: string, evt?: unknown): void;\n clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n const allHandlers = new Map<string, Handler[]>();\n\n return {\n on(type: string, handler: Handler) {\n let handlers = allHandlers.get(type);\n\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n\n allHandlers.set(type, handlers);\n\n return this;\n },\n off(type: string, handler: Handler) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n\n return this;\n },\n emit(type: string, evt?: unknown) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.forEach((handler) => {\n handler(evt);\n });\n }\n },\n clear() {\n allHandlers.clear();\n }\n };\n}\n","export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import { cn } from '../classnames';\nimport { isFunction } from '../object';\n\nfunction _mergeProps({ skipUndefined = false }, ...props: any[]): object | undefined {\n return props?.reduce((merged, ps = {}) => {\n for (const key in ps) {\n const value = ps[key];\n\n if (skipUndefined && value === undefined) continue;\n\n if (key === 'style') {\n merged['style'] = { ...merged['style'], ...ps['style'] };\n } else if (key === 'class' || key === 'className') {\n merged[key] = cn(merged[key], ps[key]);\n } else if (isFunction(value)) {\n const fn = merged[key];\n\n merged[key] = fn\n ? (...args: any[]) => {\n fn(...args);\n value(...args);\n }\n : value;\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n }, {});\n}\n\nexport function mergeProps(...props: any[]): object | undefined {\n return _mergeProps({ skipUndefined: false }, ...props);\n}\n\nexport function mergeDefaultProps(...props: any[]): object | undefined {\n return _mergeProps({ skipUndefined: true }, ...props);\n}\n","import { resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * The options for the `useControlledState` hook.\n */\nexport interface UseControlledStateOptions<T = unknown, E = unknown> {\n /**\n * The value of the controlled state.\n */\n value?: T | undefined;\n /**\n * The default value of the uncontrolled state.\n */\n defaultValue?: T | undefined;\n /**\n * Callback function that is called when the value changes.\n */\n onChange?: (newValue: E) => void;\n}\n\n/**\n * The return type of the `useControlledState` hook.\n * A tuple containing the current value and a function to update it.\n */\nexport type UseControlledStateReturnType<T = unknown> = [T | undefined, (inValue: unknown | ((prev?: T) => unknown)) => void, boolean];\n\n/**\n * A custom hook that manages controlled and uncontrolled state.\n *\n * @param {UseControlledStateOptions} options - The options for the controlled state.\n * @returns A tuple containing the current value and a function to update it.\n *\n * @example\n * ```tsx\n * const ControlledComponent = () => {\n * const [controlledValue, setControlledValue] = React.useState('');\n *\n * const [value, setValue] = useControlledState({\n * value: controlledValue,\n * defaultValue: 'initial value',\n * onChange: (newValue) => {\n * setControlledValue(newValue);\n * }\n * });\n *\n * return <Component value={value} onChange={(e) => setValue(e.target.value)} />;\n * };\n * ```\n */\nexport function useControlledState<T = unknown, E = T>({ value, defaultValue, onChange }: UseControlledStateOptions<T, E>): UseControlledStateReturnType<T | undefined> {\n const isControlledRef = React.useRef(value !== undefined);\n const isControlled = isControlledRef.current;\n\n const [valueState, setValueState] = React.useState<T | undefined>(() => {\n return isControlled ? undefined : (defaultValue ?? value);\n });\n\n const computedValue = isControlled ? (value as T) : valueState;\n\n const setValue = React.useCallback(\n (inValue: unknown | ((prev?: T) => unknown)) => {\n // @todo - update resolve to accept multiple parameters\n const [newValue, onChangeParam] = resolve(inValue, computedValue, isControlled) as [T, E];\n\n onChange?.(onChangeParam);\n\n if (!isControlled) {\n setValueState(newValue);\n }\n },\n [computedValue, isControlled, onChange]\n );\n\n React.useEffect(() => {\n if (!isControlled) {\n setValueState(defaultValue);\n }\n }, [defaultValue, isControlled]);\n\n return [computedValue, setValue, isControlled];\n}\n","import { getTargetElement, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { usePrevious } from '../use-previous';\n\n/**\n * The options for the `useEventListener` hook.\n */\nexport interface UseEventListenerOptions<T = keyof HTMLElementEventMap> {\n /**\n * The target element to bind the event listener to.\n * @default 'document'\n */\n target?: 'document' | 'window' | 'body' | HTMLElement | (() => HTMLElement) | React.Ref<HTMLElement> | string | null;\n /**\n * The event type to listen for.\n */\n type: T | string;\n /**\n * The event listener callback.\n */\n listener: EventListener;\n /**\n * The event listener options\n */\n options?: AddEventListenerOptions | boolean;\n /**\n * A boolean indicating whether the event listener should be active.\n */\n when?: boolean;\n}\n\n/**\n * The return type of the `useEventListener` hook.\n * A tuple containing functions;\n * 1. `bind` function is used to bind the event listener.\n * 2. `unbind` function is used to unbind the event listener.\n */\nexport type UseEventListenerReturnType = [(options?: Partial<Omit<UseEventListenerOptions, 'target'>> & { target?: UseEventListenerOptions['target'] | Document | null }) => void, () => void];\n\n/**\n * Listens for the specified event type on the target element.\n *\n * @param {UseEventListenerOptions} options - The options for the event listener.\n * @returns A tuple containing functions;\n * 1. `bind` function is used to bind the event listener.\n * 2. `unbind` function is used to unbind the event listener.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const [bind, unbind] = useEventListener({\n * target: 'document',\n * type: 'click',\n * listener: (event) => {\n * console.log(event);\n * },\n * when: true\n * });\n *\n * return <div>Click me</div>;\n * };\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const [bind, unbind] = useEventListener({\n * target: () => document.querySelector('.element'),\n * type: 'mouseover',\n * listener: (event) => {\n * console.log(event);\n * }\n * });\n *\n * return <div>MouseOver to `.element`</div>;\n * };\n * ```\n */\nexport function useEventListener({ target = 'document', type, listener, options, when = true }: UseEventListenerOptions): UseEventListenerReturnType {\n const targetRef = React.useRef<HTMLElement | null>(null);\n const listenerRef = React.useRef<EventListener | null>(null);\n let prevListener = usePrevious(listener);\n let prevOptions = usePrevious(options);\n\n const bind = (bindOptions: Partial<Omit<UseEventListenerOptions, 'target'>> & { target?: UseEventListenerOptions['target'] | Document | null } = {}) => {\n const { target: bindTarget } = bindOptions;\n\n if (isNotEmpty(bindTarget)) {\n unbind();\n\n if (bindOptions.when || when) {\n targetRef.current = getTargetElement(bindTarget) as HTMLElement;\n }\n }\n\n if (!listenerRef.current && targetRef.current) {\n listenerRef.current = (event: Event) => listener && listener(event);\n targetRef.current.addEventListener(type, listenerRef.current, options);\n }\n };\n\n const unbind = () => {\n if (listenerRef.current) {\n targetRef.current?.removeEventListener(type, listenerRef.current, options);\n listenerRef.current = null;\n }\n };\n\n const dispose = () => {\n unbind();\n // Prevent memory leak by releasing\n prevListener = null;\n prevOptions = null;\n };\n\n const updateTarget = React.useCallback(() => {\n if (when) {\n targetRef.current = getTargetElement(target) as HTMLElement;\n } else {\n unbind();\n targetRef.current = null;\n }\n }, [target, when]);\n\n React.useEffect(() => {\n return () => {\n dispose();\n };\n }, []);\n\n React.useEffect(() => {\n updateTarget();\n }, [updateTarget]);\n\n React.useEffect(() => {\n const listenerChanged = `${prevListener}` !== `${listener}`;\n const optionsChanged = prevOptions !== options;\n const listenerExists = listenerRef.current;\n\n if (listenerExists && (listenerChanged || optionsChanged)) {\n unbind();\n\n if (when) {\n bind();\n }\n } else if (!listenerExists) {\n dispose();\n }\n }, [listener, options, when]);\n\n return [bind, unbind];\n}\n","import * as React from 'react';\n\n/**\n * Returns the previous value of the provided value.\n *\n * @param value - The value to track.\n * @returns The previous value of the provided value.\n *\n * @example\n * ```tsx\n * const [count, setCount] = React.useState(5);\n * const prevCount = usePrevious(count);\n *\n * console.log(prevCount); // undefined\n *\n * setCount(10);\n *\n * console.log(prevCount); // 5\n * ```\n */\nexport function usePrevious<T>(value: T): T | null | undefined {\n const ref = React.useRef<T | null>(null);\n\n React.useEffect(() => {\n ref.current = value;\n\n return () => {\n ref.current = null;\n };\n }, [value]);\n\n return ref.current;\n}\n","'use client';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport * as React from 'react';\nimport { BUILT_IN_MATCHERS, getGlobalMatchers, registerMatcher, unregisterMatcher, type BuiltInMatchMode, type FilterMatcher } from './_matchers';\n\nexport { registerMatcher, unregisterMatcher, BUILT_IN_MATCHERS, getGlobalMatchers };\nexport type { FilterMatcher, BuiltInMatchMode };\n\nexport type FilterOperator = 'and' | 'or';\n\nexport interface FilterConstraint<TMode extends string = string> {\n value: unknown;\n matchMode?: TMode;\n}\n\nexport interface FilterRuleSimple<TMode extends string = string> {\n field: string | string[];\n value: unknown;\n matchMode?: TMode;\n operator?: never;\n constraints?: never;\n}\n\nexport interface FilterRuleComposite<TMode extends string = string> {\n field: string | string[];\n operator?: FilterOperator;\n constraints: FilterConstraint<TMode>[];\n value?: never;\n matchMode?: never;\n}\n\nexport type FilterRule<TMode extends string = string> = FilterRuleSimple<TMode> | FilterRuleComposite<TMode>;\n\nexport interface UseFilterOptions<T, TMode extends string = BuiltInMatchMode> {\n data: T[];\n /** Shorthand: target field for a single-rule filter. Use `rules` / `defaultRules` for multi-rule setups. */\n field?: string | string[];\n /** Shorthand: value for the single-rule filter declared via `field`. */\n value?: unknown;\n /** Shorthand: match mode for the single-rule filter declared via `field`. Defaults to `contains`. */\n matchMode?: TMode;\n /** Shorthand: callback when the single-rule value changes. */\n onValueChange?: (value: unknown) => void;\n /** Multi-rule controlled state. Omit and use `field/value` for a single rule. */\n rules?: FilterRule<TMode>[];\n /** Multi-rule uncontrolled initial state. */\n defaultRules?: FilterRule<TMode>[];\n matchers?: Partial<Record<TMode, FilterMatcher>> & Record<string, FilterMatcher>;\n filterLocale?: string;\n filterDelay?: number;\n /** When true, `filteredData` is returned as-is; the consumer is responsible for filtering (server-side). */\n lazy?: boolean;\n /** Fires after rules settle (honours `filterDelay`). The consumer is expected to fetch a new `data` slice. */\n onLazyLoad?: (event: LazyFilterEvent<TMode>) => void;\n onRulesChange?: (rules: FilterRule<TMode>[]) => void;\n}\n\nexport interface LazyFilterEvent<TMode extends string = string> {\n rules: FilterRule<TMode>[];\n filterLocale?: string;\n}\n\nexport interface FilterConstraintCursor<TMode extends string = string> {\n value: unknown;\n matchMode: TMode | undefined;\n setValue: (value: unknown) => void;\n setMatchMode: (matchMode: TMode) => void;\n remove: () => void;\n}\n\nexport interface FilterRuleCursor<TMode extends string = string> {\n field: string | string[];\n value: unknown;\n matchMode: TMode | undefined;\n operator: FilterOperator | undefined;\n constraints: FilterConstraint<TMode>[] | undefined;\n setValue: (value: unknown) => void;\n setMatchMode: (matchMode: TMode) => void;\n setOperator: (operator: FilterOperator) => void;\n addConstraint: (matchMode?: TMode) => void;\n constraint: (index: number) => FilterConstraintCursor<TMode> | undefined;\n remove: () => void;\n clear: () => void;\n}\n\nexport interface UseFilterReturn<T, TMode extends string = string> {\n rules: FilterRule<TMode>[];\n filteredData: T[];\n isFiltered: boolean;\n\n setRules: (rules: FilterRule<TMode>[]) => void;\n setValue: (ruleIndex: number, value: unknown) => void;\n setMatchMode: (ruleIndex: number, matchMode: TMode) => void;\n setOperator: (ruleIndex: number, operator: FilterOperator) => void;\n setConstraintValue: (ruleIndex: number, constraintIndex: number, value: unknown) => void;\n setConstraintMatchMode: (ruleIndex: number, constraintIndex: number, matchMode: TMode) => void;\n addRule: (rule: FilterRule<TMode>) => void;\n removeRule: (ruleIndex: number) => void;\n clearRule: (ruleIndex: number) => void;\n addConstraint: (ruleIndex: number, matchMode?: TMode) => void;\n removeConstraint: (ruleIndex: number, constraintIndex: number) => void;\n clearAll: () => void;\n\n rule: (ruleKey: number | string) => FilterRuleCursor<TMode> | undefined;\n\n match: (item: T) => boolean;\n matchers: Readonly<Record<string, FilterMatcher>>;\n}\n\nfunction defaultMatchMode(): BuiltInMatchMode {\n return 'contains';\n}\n\nfunction ruleIsComposite<TMode extends string>(rule: FilterRule<TMode>): rule is FilterRuleComposite<TMode> {\n return Array.isArray((rule as FilterRuleComposite<TMode>).constraints);\n}\n\nfunction matchFields(item: unknown, field: string | string[], filterValue: unknown, matchMode: string, locale: string | undefined, matchers: Record<string, FilterMatcher>): boolean {\n const rule = matchers[matchMode];\n\n if (!rule) return true;\n\n if (Array.isArray(field)) {\n if (filterValue === undefined || filterValue === null || filterValue === '') return true;\n\n return field.some((f) => rule(resolveFieldData(item as Record<string, unknown>, f), filterValue, locale));\n }\n\n return rule(typeof item === 'object' ? resolveFieldData(item as Record<string, unknown>, field) : item, filterValue, locale);\n}\n\nexport function matchRule<T, TMode extends string>(item: T, rule: FilterRule<TMode>, matchers: Record<string, FilterMatcher>, locale?: string): boolean {\n if (ruleIsComposite(rule)) {\n const constraints = rule.constraints ?? [];\n\n if (constraints.length === 0) return true;\n\n const operator = rule.operator ?? 'and';\n\n if (operator === 'and') {\n return constraints.every((c) => matchFields(item, rule.field, c.value, c.matchMode ?? defaultMatchMode(), locale, matchers));\n }\n\n return constraints.some((c) => matchFields(item, rule.field, c.value, c.matchMode ?? defaultMatchMode(), locale, matchers));\n }\n\n return matchFields(item, rule.field, rule.value, rule.matchMode ?? defaultMatchMode(), locale, matchers);\n}\n\nexport function useFilter<T, TMode extends string = BuiltInMatchMode>(options: UseFilterOptions<T, TMode>): UseFilterReturn<T, TMode> {\n const shorthandField = options.field;\n const shorthandMatchMode = options.matchMode;\n const hasShorthand = shorthandField !== undefined;\n const shorthandControlled = hasShorthand && options.value !== undefined;\n\n const initialShorthandRule = React.useMemo<FilterRule<TMode>[]>(() => {\n if (!hasShorthand) return [];\n\n return [{ field: shorthandField!, value: options.value ?? null, matchMode: shorthandMatchMode } as FilterRule<TMode>];\n }, [hasShorthand, shorthandField, shorthandMatchMode]);\n\n const isControlled = options.rules !== undefined || shorthandControlled;\n const [internalRules, setInternalRules] = React.useState<FilterRule<TMode>[]>(options.defaultRules ?? (hasShorthand ? initialShorthandRule : []));\n\n const shorthandRules = React.useMemo<FilterRule<TMode>[]>(() => [{ field: shorthandField!, value: options.value, matchMode: shorthandMatchMode } as FilterRule<TMode>], [shorthandField, options.value, shorthandMatchMode]);\n\n const currentRules = options.rules !== undefined ? options.rules : shorthandControlled ? shorthandRules : internalRules;\n\n const onRulesChangeRef = React.useRef(options.onRulesChange);\n const onValueChangeRef = React.useRef(options.onValueChange);\n\n onRulesChangeRef.current = options.onRulesChange;\n onValueChangeRef.current = options.onValueChange;\n\n const commit = React.useCallback(\n (next: FilterRule<TMode>[]) => {\n if (!isControlled) setInternalRules(next);\n onRulesChangeRef.current?.(next);\n\n if (hasShorthand) {\n const first = next[0];\n\n if (first && !('constraints' in first)) onValueChangeRef.current?.(first.value);\n }\n },\n [isControlled, hasShorthand]\n );\n\n const filterLocale = options.filterLocale;\n const filterDelay = options.filterDelay ?? 0;\n\n const matchers = React.useMemo<Record<string, FilterMatcher>>(() => {\n return { ...(BUILT_IN_MATCHERS as Record<string, FilterMatcher>), ...getGlobalMatchers(), ...(options.matchers ?? {}) };\n }, [options.matchers]);\n\n const [debouncedRules, setDebouncedRules] = React.useState<FilterRule<TMode>[]>(currentRules);\n\n React.useEffect(() => {\n if (filterDelay <= 0) return;\n\n const t = setTimeout(() => setDebouncedRules(currentRules), filterDelay);\n\n return () => clearTimeout(t);\n }, [currentRules, filterDelay]);\n\n const activeRules = filterDelay > 0 ? debouncedRules : currentRules;\n\n const activeRulesNonEmpty = React.useMemo(() => activeRules.filter((r) => ruleHasValue(r)), [activeRules]);\n\n const match = React.useCallback((item: T) => activeRulesNonEmpty.every((r) => matchRule(item, r, matchers, filterLocale)), [activeRulesNonEmpty, matchers, filterLocale]);\n\n const lazy = !!options.lazy;\n\n const filteredData = React.useMemo(() => {\n if (lazy) return options.data;\n\n if (activeRulesNonEmpty.length === 0) return options.data;\n\n return options.data.filter(match);\n }, [lazy, options.data, activeRulesNonEmpty, match]);\n\n const isFiltered = activeRulesNonEmpty.length > 0;\n\n const onLazyLoadRef = React.useRef(options.onLazyLoad);\n\n onLazyLoadRef.current = options.onLazyLoad;\n\n const lastLazyKeyRef = React.useRef<string | null>(null);\n\n React.useEffect(() => {\n if (!lazy) return;\n\n const key = JSON.stringify(activeRules);\n\n if (lastLazyKeyRef.current === key) return;\n\n lastLazyKeyRef.current = key;\n onLazyLoadRef.current?.({ rules: activeRules, filterLocale });\n }, [lazy, activeRules, filterLocale]);\n\n const setRules = React.useCallback((next: FilterRule<TMode>[]) => commit(next), [commit]);\n\n const setValue = React.useCallback(\n (ruleIndex: number, value: unknown) => {\n const next = currentRules.map((r, i) => (i === ruleIndex ? { ...(r as FilterRuleSimple<TMode>), value } : r));\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const setMatchMode = React.useCallback(\n (ruleIndex: number, matchMode: TMode) => {\n const next = currentRules.map((r, i) => (i === ruleIndex ? { ...(r as FilterRuleSimple<TMode>), matchMode } : r));\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const setOperator = React.useCallback(\n (ruleIndex: number, operator: FilterOperator) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex) return r;\n\n if (!ruleIsComposite(r)) {\n return { field: r.field, operator, constraints: [{ value: r.value, matchMode: r.matchMode }] } as FilterRule<TMode>;\n }\n\n return { ...r, operator };\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const setConstraintValue = React.useCallback(\n (ruleIndex: number, constraintIndex: number, value: unknown) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex) return r;\n\n const constraints = ruleIsComposite(r) ? r.constraints.map((c, ci) => (ci === constraintIndex ? { ...c, value } : c)) : constraintIndex === 0 ? [{ value, matchMode: r.matchMode }] : (r.constraints ?? []);\n\n return { field: r.field, operator: ruleIsComposite(r) ? r.operator : undefined, constraints } as FilterRule<TMode>;\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const setConstraintMatchMode = React.useCallback(\n (ruleIndex: number, constraintIndex: number, matchMode: TMode) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex) return r;\n\n const constraints = ruleIsComposite(r) ? r.constraints.map((c, ci) => (ci === constraintIndex ? { ...c, matchMode } : c)) : constraintIndex === 0 ? [{ value: r.value, matchMode }] : (r.constraints ?? []);\n\n return { field: r.field, operator: ruleIsComposite(r) ? r.operator : undefined, constraints } as FilterRule<TMode>;\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const addRule = React.useCallback((rule: FilterRule<TMode>) => commit([...currentRules, rule]), [currentRules, commit]);\n\n const removeRule = React.useCallback(\n (ruleIndex: number) => {\n const next = currentRules.filter((_, i) => i !== ruleIndex);\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const clearRule = React.useCallback(\n (ruleIndex: number) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex) return r;\n\n if (ruleIsComposite(r)) {\n return { ...r, constraints: r.constraints.map((c) => ({ ...c, value: null })) };\n }\n\n return { ...r, value: null };\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const addConstraint = React.useCallback(\n (ruleIndex: number, matchMode?: TMode) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex) return r;\n\n const base = ruleIsComposite(r) ? r.constraints : [{ value: r.value, matchMode: r.matchMode }];\n\n return {\n field: r.field,\n operator: ruleIsComposite(r) ? r.operator : 'and',\n constraints: [...base, { value: null, matchMode: matchMode ?? (defaultMatchMode() as unknown as TMode) }]\n } as FilterRule<TMode>;\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const removeConstraint = React.useCallback(\n (ruleIndex: number, constraintIndex: number) => {\n const next = currentRules.map((r, i) => {\n if (i !== ruleIndex || !ruleIsComposite(r)) return r;\n\n const filtered = r.constraints.filter((_, ci) => ci !== constraintIndex);\n\n if (filtered.length === 0) return r;\n\n return { ...r, constraints: filtered };\n });\n\n commit(next);\n },\n [currentRules, commit]\n );\n\n const clearAll = React.useCallback(() => {\n const next = currentRules.map((r) => (ruleIsComposite(r) ? { ...r, constraints: r.constraints.map((c) => ({ ...c, value: null })) } : { ...r, value: null }));\n\n commit(next);\n }, [currentRules, commit]);\n\n const rule = React.useCallback(\n (key: number | string): FilterRuleCursor<TMode> | undefined => {\n const index = typeof key === 'number' ? key : currentRules.findIndex((r) => (Array.isArray(r.field) ? r.field.join(',') === key : r.field === key));\n\n if (index < 0 || !currentRules[index]) return undefined;\n\n const r = currentRules[index];\n const composite = ruleIsComposite(r);\n\n const constraintCursor = (ci: number): FilterConstraintCursor<TMode> | undefined => {\n const list = composite ? r.constraints : [{ value: r.value, matchMode: r.matchMode }];\n\n if (ci < 0 || ci >= list.length) return undefined;\n\n const c = list[ci];\n\n return {\n value: c.value,\n matchMode: c.matchMode,\n setValue: (v) => setConstraintValue(index, ci, v),\n setMatchMode: (m) => setConstraintMatchMode(index, ci, m),\n remove: () => removeConstraint(index, ci)\n };\n };\n\n return {\n field: r.field,\n value: composite ? undefined : r.value,\n matchMode: composite ? undefined : r.matchMode,\n operator: composite ? r.operator : undefined,\n constraints: composite ? r.constraints : undefined,\n setValue: (v) => setValue(index, v),\n setMatchMode: (m) => setMatchMode(index, m),\n setOperator: (op) => setOperator(index, op),\n addConstraint: (mm) => addConstraint(index, mm),\n constraint: constraintCursor,\n remove: () => removeRule(index),\n clear: () => clearRule(index)\n };\n },\n [currentRules, setValue, setMatchMode, setOperator, setConstraintValue, setConstraintMatchMode, addConstraint, removeConstraint, removeRule, clearRule]\n );\n\n return {\n rules: currentRules,\n filteredData,\n isFiltered,\n setRules,\n setValue,\n setMatchMode,\n setOperator,\n setConstraintValue,\n setConstraintMatchMode,\n addRule,\n removeRule,\n clearRule,\n addConstraint,\n removeConstraint,\n clearAll,\n rule,\n match,\n matchers\n };\n}\n\nexport function ruleHasValue<TMode extends string>(rule: FilterRule<TMode>): boolean {\n if (ruleIsComposite(rule)) {\n return rule.constraints.some((c) => c.value !== null && c.value !== undefined && c.value !== '');\n }\n\n return rule.value !== null && rule.value !== undefined && rule.value !== '';\n}\n","'use client';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { BUILT_IN_MATCHERS, getGlobalMatchers, matchRule, registerMatcher, ruleHasValue, unregisterMatcher, type BuiltInMatchMode, type FilterMatcher, type FilterRule } from '@primereact/hooks/use-filter';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport * as React from 'react';\n\nexport { registerMatcher, unregisterMatcher };\n\nexport type TreeFilterMode = 'lenient' | 'strict';\n\nexport interface TreeNodeLike {\n key?: string | number;\n data?: Record<string, unknown>;\n children?: TreeNodeLike[];\n}\n\nexport interface UseTreeFilterOptions<TNode extends TreeNodeLike, TMode extends string = BuiltInMatchMode> {\n nodes: TNode[];\n rules?: FilterRule<TMode>[];\n defaultRules?: FilterRule<TMode>[];\n /**\n * Shorthand for the single-field case. When set, the hook synthesizes a single\n * `{ field, value, matchMode }` rule. Ignored when `rules` / `defaultRules` is provided.\n */\n field?: string | string[];\n /** Controlled value for the shorthand `field`. Omit to let the hook own the state. */\n value?: unknown;\n /** Initial value when the hook owns the state. */\n defaultValue?: unknown;\n /** Fires when the shorthand `value` changes. */\n onValueChange?: (value: unknown) => void;\n /** Match mode for the shorthand `field`. Defaults to `'contains'`. */\n matchMode?: TMode;\n matchers?: Partial<Record<TMode, FilterMatcher>> & Record<string, FilterMatcher>;\n filterMode?: TreeFilterMode;\n filterLocale?: string;\n filterDelay?: number;\n /** When true, `filteredNodes` is returned as-is; the consumer fetches filtered data itself. */\n lazy?: boolean;\n /** Fires after rules settle (honours `filterDelay`). The consumer is expected to fetch filtered tree data. */\n onLazyLoad?: (event: LazyTreeFilterEvent<TMode>) => void;\n onRulesChange?: (rules: FilterRule<TMode>[]) => void;\n}\n\nexport interface LazyTreeFilterEvent<TMode extends string = string> {\n rules: FilterRule<TMode>[];\n filterMode: TreeFilterMode;\n filterLocale?: string;\n}\n\nexport interface UseTreeFilterReturn<TNode extends TreeNodeLike, TMode extends string = string> {\n rules: FilterRule<TMode>[];\n filteredNodes: TNode[];\n isFiltered: boolean;\n setRules: (rules: FilterRule<TMode>[]) => void;\n value: unknown;\n setValue: (value: unknown) => void;\n clearAll: () => void;\n match: (node: TNode) => boolean;\n matchers: Readonly<Record<string, FilterMatcher>>;\n}\n\nfunction nodeTarget<TNode extends TreeNodeLike>(node: TNode, field: string): unknown {\n // Prefer `node.data` (DataTable-style node) when it's an object that owns the\n // field, otherwise fall back to the node itself (Tree-style where fields like\n // `label` live at the top level). `node.data` may also be a primitive (string\n // / number) — guard against that before using `in`.\n const dataIsObject = node.data !== null && typeof node.data === 'object';\n\n if (dataIsObject && field in (node.data as object)) {\n return (node.data as Record<string, unknown>)[field];\n }\n\n if (dataIsObject) {\n const fromData = resolveFieldData(node.data as Record<string, unknown>, field);\n\n if (fromData !== undefined) return fromData;\n }\n\n if (field in (node as Record<string, unknown>)) return (node as Record<string, unknown>)[field];\n\n return resolveFieldData(node as unknown as Record<string, unknown>, field);\n}\n\nfunction isLeaf(node: TreeNodeLike): boolean {\n return !node.children || node.children.length === 0;\n}\n\nfunction nodeMatchesDirect<TNode extends TreeNodeLike, TMode extends string>(node: TNode, rule: FilterRule<TMode>, matchers: Record<string, FilterMatcher>, locale: string | undefined): boolean {\n const fields = Array.isArray(rule.field) ? rule.field : [rule.field];\n const projected: Record<string, unknown> = {};\n\n for (const f of fields) projected[f] = nodeTarget(node, f);\n\n return matchRule(projected, { ...rule, field: fields } as FilterRule<TMode>, matchers, locale);\n}\n\nfunction filterTree<TNode extends TreeNodeLike, TMode extends string>(nodes: TNode[], rules: FilterRule<TMode>[], matchers: Record<string, FilterMatcher>, locale: string | undefined, strict: boolean): TNode[] {\n const out: TNode[] = [];\n\n for (const node of nodes) {\n const selfMatch = rules.every((rule) => nodeMatchesDirect(node, rule, matchers, locale));\n\n let childMatched: TNode[] | null = null;\n\n if (node.children && node.children.length > 0) {\n const kidsFiltered = filterTree(node.children as TNode[], rules, matchers, locale, strict);\n\n if (kidsFiltered.length > 0) childMatched = kidsFiltered;\n }\n\n // lenient: self match or any descendant match → keep (all original children)\n // strict: leaf → must self-match; parent → must have a matching descendant\n if (strict) {\n if (isLeaf(node)) {\n if (selfMatch) out.push(node);\n } else if (childMatched) {\n out.push({ ...node, children: childMatched } as TNode);\n }\n } else {\n if (selfMatch) {\n out.push(node);\n } else if (childMatched) {\n out.push({ ...node, children: childMatched } as TNode);\n }\n }\n }\n\n return out;\n}\n\nexport function useTreeFilter<TNode extends TreeNodeLike, TMode extends string = BuiltInMatchMode>(options: UseTreeFilterOptions<TNode, TMode>): UseTreeFilterReturn<TNode, TMode> {\n // ---- Shorthand mode (field / value / matchMode) -------------------------\n // Active only when `field` is provided AND no explicit `rules` / `defaultRules`.\n // `value` can be controlled (parent owns) or uncontrolled (hook owns via defaultValue).\n const isShorthand = options.field !== undefined && options.rules === undefined && options.defaultRules === undefined;\n const shorthandMatchMode = (options.matchMode ?? ('contains' as TMode)) as TMode;\n\n const [shorthandValue, setShorthandValue] = useControlledState<unknown, unknown>({\n value: options.value,\n defaultValue: options.defaultValue,\n onChange: options.onValueChange\n });\n\n const setValue = React.useCallback((next: unknown) => setShorthandValue(next), [setShorthandValue]);\n\n // ---- Rule-array mode (existing API) -------------------------------------\n const isControlled = options.rules !== undefined;\n const [internalRules, setInternalRules] = React.useState<FilterRule<TMode>[]>(options.defaultRules ?? []);\n\n const shorthandRules = React.useMemo<FilterRule<TMode>[]>(() => {\n if (!isShorthand) return [];\n\n return [{ field: options.field as string | string[], value: shorthandValue, matchMode: shorthandMatchMode } as FilterRule<TMode>];\n }, [isShorthand, options.field, shorthandValue, shorthandMatchMode]);\n\n const currentRules = isShorthand ? shorthandRules : isControlled ? (options.rules ?? []) : internalRules;\n\n const onRulesChangeRef = React.useRef(options.onRulesChange);\n\n onRulesChangeRef.current = options.onRulesChange;\n\n const commit = React.useCallback(\n (next: FilterRule<TMode>[]) => {\n if (isShorthand) {\n // In shorthand mode, the only mutable surface is `value`.\n setShorthandValue((next[0] as FilterRule<TMode> | undefined)?.value ?? null);\n } else if (!isControlled) {\n setInternalRules(next);\n }\n\n onRulesChangeRef.current?.(next);\n },\n [isShorthand, isControlled, setShorthandValue]\n );\n\n const filterLocale = options.filterLocale;\n const filterDelay = options.filterDelay ?? 0;\n const filterMode = options.filterMode ?? 'lenient';\n\n const matchers = React.useMemo<Record<string, FilterMatcher>>(() => ({ ...(BUILT_IN_MATCHERS as Record<string, FilterMatcher>), ...getGlobalMatchers(), ...(options.matchers ?? {}) }), [options.matchers]);\n\n const [debouncedRules, setDebouncedRules] = React.useState<FilterRule<TMode>[]>(currentRules);\n\n React.useEffect(() => {\n if (filterDelay <= 0) return;\n\n const t = setTimeout(() => setDebouncedRules(currentRules), filterDelay);\n\n return () => clearTimeout(t);\n }, [currentRules, filterDelay]);\n\n const activeRules = filterDelay > 0 ? debouncedRules : currentRules;\n const activeRulesNonEmpty = React.useMemo(() => activeRules.filter(ruleHasValue), [activeRules]);\n\n const match = React.useCallback((node: TNode) => activeRulesNonEmpty.every((rule) => nodeMatchesDirect(node, rule, matchers, filterLocale)), [activeRulesNonEmpty, matchers, filterLocale]);\n\n const lazy = !!options.lazy;\n\n const filteredNodes = React.useMemo(() => {\n if (lazy) return options.nodes;\n\n if (activeRulesNonEmpty.length === 0) return options.nodes;\n\n return filterTree(options.nodes, activeRulesNonEmpty, matchers, filterLocale, filterMode === 'strict');\n }, [lazy, options.nodes, activeRulesNonEmpty, matchers, filterLocale, filterMode]);\n\n const onLazyLoadRef = React.useRef(options.onLazyLoad);\n\n onLazyLoadRef.current = options.onLazyLoad;\n\n const lastLazyKeyRef = React.useRef<string | null>(null);\n\n React.useEffect(() => {\n if (!lazy) return;\n\n const key = JSON.stringify(activeRules) + '|' + filterMode;\n\n if (lastLazyKeyRef.current === key) return;\n\n lastLazyKeyRef.current = key;\n onLazyLoadRef.current?.({ rules: activeRules, filterMode, filterLocale });\n }, [lazy, activeRules, filterMode, filterLocale]);\n\n const setRules = React.useCallback((next: FilterRule<TMode>[]) => commit(next), [commit]);\n\n const clearAll = React.useCallback(() => {\n const next = currentRules.map((r) =>\n Array.isArray((r as { constraints?: unknown }).constraints) ? { ...r, constraints: (r as { constraints: { value: unknown; matchMode?: TMode }[] }).constraints.map((c) => ({ ...c, value: null })) } : { ...r, value: null }\n ) as FilterRule<TMode>[];\n\n commit(next);\n }, [currentRules, commit]);\n\n return {\n rules: currentRules,\n filteredNodes,\n isFiltered: activeRulesNonEmpty.length > 0,\n setRules,\n value: shorthandValue,\n setValue,\n clearAll,\n match,\n matchers\n };\n}\n","import * as React from 'react';\n\nexport type UseHotKeyTarget = Document | HTMLElement | null | undefined;\n\nexport interface UseHotKeyOptions {\n /**\n * Target to listen on. Defaults to `document` when available.\n */\n target?: UseHotKeyTarget;\n /**\n * Keyboard event type.\n * @default 'keydown'\n */\n event?: 'keydown' | 'keyup' | 'keypress';\n /**\n * Enables or disables the listener.\n * @default true\n */\n when?: boolean;\n}\n\n/**\n * Runs the provided handler when any of the given keys is pressed.\n *\n * @param keys A single key or an array of keys to listen for (e.g. 'k' or 'ctrl+k').\n * @param handler Callback fired when a matching key event occurs.\n * @param options Optional configuration for target, event type, and enable flag.\n */\nexport function useHotKey(keys: string | string[], handler: (event: KeyboardEvent) => void, options: UseHotKeyOptions = {}) {\n const { target, event = 'keydown', when = true } = options;\n const handlerRef = React.useRef(handler);\n\n const normalizeKey = (key: string) => {\n const lower = key.toLowerCase();\n\n if (lower === 'space' || lower === 'spacebar') return ' ';\n\n return lower;\n };\n\n const parseKeySpec = (spec: string) => {\n const parts = spec\n .split('+')\n .map((p) => p.trim().toLowerCase())\n .filter(Boolean);\n\n let key: string | undefined;\n const required = {\n ctrl: false,\n meta: false,\n alt: false,\n shift: false\n };\n\n parts.forEach((part) => {\n switch (part) {\n case 'ctrl':\n case 'control':\n required.ctrl = true;\n break;\n case 'meta':\n case 'cmd':\n case 'command':\n required.meta = true;\n break;\n case 'alt':\n case 'option':\n required.alt = true;\n break;\n case 'shift':\n required.shift = true;\n break;\n default:\n key = normalizeKey(part);\n }\n });\n\n return { key, required };\n };\n\n const matches = (spec: ReturnType<typeof parseKeySpec>, event: KeyboardEvent) => {\n if (!spec.key) return false;\n\n const { required } = spec;\n\n if (required.ctrl !== event.ctrlKey || required.meta !== event.metaKey || required.alt !== event.altKey || required.shift !== event.shiftKey) {\n return false;\n }\n\n return normalizeKey(event.key) === spec.key;\n };\n\n React.useEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n\n React.useEffect(() => {\n if (!when) {\n return;\n }\n\n const targetElement: UseHotKeyTarget = target ?? (typeof document !== 'undefined' ? document : null);\n\n if (!targetElement) {\n return;\n }\n\n const keySpecs = (Array.isArray(keys) ? keys : [keys]).map(parseKeySpec);\n\n const listener: EventListener = (event) => {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keySpecs.some((spec) => matches(spec, keyboardEvent))) {\n handlerRef.current?.(keyboardEvent);\n }\n };\n\n targetElement.addEventListener(event, listener);\n\n return () => {\n targetElement.removeEventListener(event, listener);\n };\n }, [event, keys, target, when]);\n}\n","import * as React from 'react';\n\n/**\n * Generates a unique identifier.\n *\n * @param initialValue Optional initial value for the ID.\n * @returns The generated or provided ID.\n *\n * @example\n * ```tsx\n * const id = useId('foo');\n * console.log(id); // 'foo'\n * ```\n *\n * @example\n * ```tsx\n * const defaultId = useId();\n * console.log(defaultId); // e.g., 'pr_id_0'\n * ```\n */\nexport function useId(initialValue?: string): string {\n const idx = React.useId();\n const [idState, setIdState] = React.useState<string>(initialValue || `pr_id_${idx.replaceAll(/:|«|»/g, '')}`);\n\n React.useEffect(() => {\n setIdState(initialValue || `pr_id_${idx.replaceAll(/:|«|»/g, '')}`);\n }, [initialValue, idx]);\n\n return idState;\n}\n","import * as React from 'react';\n\n/**\n * The options for the `useLocalStorage` hook.\n */\nexport interface UseLocalStorageOptions<T = unknown> {\n /**\n * The key to use in localStorage.\n */\n key: string;\n /**\n * The initial value to use when no value is found in localStorage.\n */\n initialValue: T;\n /**\n * Custom serializer function. Defaults to `JSON.stringify`.\n */\n serializer?: (value: T) => string;\n /**\n * Custom deserializer function. Defaults to `JSON.parse`.\n */\n deserializer?: (value: string) => T;\n}\n\n/**\n * The return type of the `useLocalStorage` hook.\n * A tuple containing:\n * 1. The current stored value.\n * 2. A setter function to update the value.\n * 3. A function to remove the value from localStorage.\n */\nexport type UseLocalStorageReturnType<T = unknown> = [T, React.Dispatch<React.SetStateAction<T>>, () => void];\n\n/**\n * A custom hook that syncs state with localStorage.\n * Uses initialValue for SSR and first client render to avoid hydration mismatch,\n * then reads the stored value in useLayoutEffect (before paint) so no flash occurs.\n *\n * @param {UseLocalStorageOptions} options - The options for the local storage hook.\n * @returns A tuple containing the current value, a setter function, and a remove function.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * const [sizes, setSizes, removeSizes] = useLocalStorage({\n * key: 'splitter-sizes',\n * initialValue: [50, 50]\n * });\n *\n * return (\n * <Splitter.Root sizes={sizes} onResizeEnd={(e) => setSizes(e.sizes)}>\n * <Splitter.Panel />\n * <Splitter.Panel />\n * </Splitter.Root>\n * );\n * };\n * ```\n */\nexport function useLocalStorage<T>({ key, initialValue, serializer = JSON.stringify, deserializer = JSON.parse }: UseLocalStorageOptions<T>): UseLocalStorageReturnType<T> {\n const [storedValue, setStoredValue] = React.useState<T>(initialValue);\n const hydrated = React.useRef(false);\n\n // Read from localStorage before paint (after hydration).\n // Triggers a synchronous re-render so the user never sees the initialValue flash.\n React.useLayoutEffect(() => {\n try {\n const item = window.localStorage.getItem(key);\n\n if (item !== null) {\n setStoredValue(deserializer(item));\n }\n } catch {\n // Storage unavailable\n }\n\n hydrated.current = true;\n }, [key, deserializer]);\n\n // Write to localStorage on changes (skip until hydration is complete)\n React.useEffect(() => {\n if (!hydrated.current) return;\n\n try {\n window.localStorage.setItem(key, serializer(storedValue));\n } catch {\n // Storage full or unavailable\n }\n }, [key, storedValue, serializer]);\n\n const remove = React.useCallback(() => {\n try {\n window.localStorage.removeItem(key);\n } catch {\n // Storage unavailable\n }\n\n setStoredValue(initialValue);\n }, [key, initialValue]);\n\n return [storedValue, setStoredValue, remove];\n}\n","import { getUserAgent } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * Event payload for `useMask` value/complete callbacks.\n */\nexport interface UseMaskValueChangeEvent {\n /**\n * The DOM event that triggered the change, or `null` for programmatic\n * updates (`setValue`, `reset`).\n */\n originalEvent: Event | null;\n /**\n * Masked value (e.g. `\"12/05/2026\"`). Always in masked form.\n */\n value: string;\n /**\n * Unmasked (raw) value (e.g. `\"12052026\"`). Separators and placeholder\n * characters are stripped.\n */\n rawValue: string;\n /**\n * Whether all required slots are filled.\n */\n isComplete: boolean;\n}\n\n/**\n * Options for the `useMask` hook.\n */\nexport interface UseMaskOptions {\n /**\n * Mask pattern. Built-in tokens:\n * - `9` → [0-9]\n * - `a` → [A-Za-z]\n * - `A` → [A-Z]\n * - `*` → [A-Za-z0-9]\n * Append `?` to mark the remainder of the mask as optional. Extend with\n * the `tokens` option.\n */\n mask: string;\n /**\n * Custom token map merged on top of the built-in tokens. Each token\n * character is matched against the supplied RegExp.\n * @example { '#': /[0-9]/, H: /[A-Fa-f0-9]/ }\n */\n tokens?: Record<string, RegExp>;\n /**\n * Controlled masked value. When provided, the hook operates in\n * controlled mode.\n */\n value?: string;\n /**\n * Initial masked value for uncontrolled mode. Ignored when `value` is\n * provided.\n */\n defaultValue?: string;\n /**\n * Fires whenever the value changes (typing, paste, programmatic).\n */\n onValueChange?: (event: UseMaskValueChangeEvent) => void;\n /**\n * Fires when the value transitions to complete (all required slots\n * filled). Re-fires if the value becomes incomplete and is completed\n * again.\n */\n onComplete?: (event: UseMaskValueChangeEvent) => void;\n /**\n * Placeholder character for empty slots. Pass `null` to skip filling\n * empty slots visually.\n * @default '_'\n */\n slotChar?: string | null;\n /**\n * Whether to render the mask skeleton on focus.\n * @default false\n */\n showMaskOnFocus?: boolean;\n /**\n * Always render the mask skeleton, regardless of focus state.\n * @default false\n */\n alwaysShowMask?: boolean;\n /**\n * Clear an incomplete value on blur.\n * @default true\n */\n autoClear?: boolean;\n /**\n * Transform every character before token validation (e.g. uppercase).\n */\n transform?: (char: string) => string;\n /**\n * Read-only mode. Typing is blocked; programmatic `setValue` still\n * works.\n * @default false\n */\n readOnly?: boolean;\n}\n\n/**\n * Return type of the `useMask` hook.\n */\nexport interface UseMaskReturn {\n /**\n * Ref callback for the target `<input>` (or `<textarea>`). Attaches\n * native event listeners on mount and tears them down on unmount or\n * when the ref switches to a new element.\n */\n ref: (element: HTMLInputElement | null) => void;\n /**\n * Current masked value (always reflects what is in the input).\n */\n value: string;\n /**\n * Current unmasked (raw) value.\n */\n rawValue: string;\n /**\n * Whether all required slots are filled.\n */\n isComplete: boolean;\n /**\n * Programmatically set the masked value. The value is normalized\n * through the mask before being applied.\n */\n setValue: (next: string) => void;\n /**\n * Reset the input to an empty mask skeleton.\n */\n reset: () => void;\n}\n\nconst DEFAULT_TOKENS: Record<string, RegExp> = {\n '9': /[0-9]/,\n a: /[A-Za-z]/,\n A: /[A-Z]/,\n '*': /[A-Za-z0-9]/\n};\n\n/**\n * React hook for masked text input. Attach the returned `ref` to any\n * component that forwards a ref to a real `<input>` (e.g. `InputText`,\n * `Textarea`, `DatePicker.Input`). The hook installs DOM event listeners\n * directly on the element, so no other props need to be wired.\n *\n * @example\n * const { ref, value, rawValue, isComplete } = useMask({ mask: '99/99/9999' });\n * return <InputText ref={ref} placeholder=\"DD/MM/YYYY\" />;\n */\nexport function useMask(options: UseMaskOptions): UseMaskReturn {\n const { mask, tokens: userTokens, value: controlledValue, defaultValue, onValueChange, onComplete, slotChar = '_', showMaskOnFocus = false, alwaysShowMask = false, autoClear = true, transform, readOnly = false } = options;\n\n // Latest callback refs so handlers always see the freshest values\n // without forcing the listener registration to re-run on every render.\n const onValueChangeRef = React.useRef(onValueChange);\n\n onValueChangeRef.current = onValueChange;\n const onCompleteRef = React.useRef(onComplete);\n\n onCompleteRef.current = onComplete;\n const transformRef = React.useRef(transform);\n\n transformRef.current = transform;\n\n // Controlled / uncontrolled hybrid state. The hook owns an internal\n // string that mirrors the masked DOM value. When the consumer passes\n // `value` we operate in controlled mode and ignore internal state for\n // the public `value` field. Internal state still drives derived\n // outputs (`rawValue`, `isComplete`) when uncontrolled.\n const isControlled = controlledValue !== undefined;\n const [internalValue, setInternalValue] = React.useState<string>(defaultValue ?? '');\n const value = isControlled ? (controlledValue ?? '') : internalValue;\n const setStateValue = React.useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n },\n [isControlled]\n );\n\n // ---------------------------------------------------------------------\n // Mask engine state — preserved from the previous implementation. These\n // refs hold the parsed mask metadata and the live character buffer.\n // ---------------------------------------------------------------------\n const targetRef = React.useRef<HTMLInputElement | null>(null);\n const len = React.useRef(0);\n const tests = React.useRef<Array<RegExp | null>>([]);\n const buffer = React.useRef<string[]>([]);\n const defaultBuffer = React.useRef<string>('');\n const partialPosition = React.useRef<number>(0);\n const androidChrome = React.useRef(false);\n const focus = React.useRef(false);\n const focusText = React.useRef<string | null>(null);\n const firstNonMaskPos = React.useRef<number | null>(null);\n const lastRequiredNonMaskPos = React.useRef<number>(0);\n const caretTimeoutId = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const oldVal = React.useRef<string | null>(null);\n const currentVal = React.useRef<string | null>(null);\n const wasComplete = React.useRef(false);\n const lastEmittedValue = React.useRef<string | null>(null);\n\n // Cached options so handlers don't capture stale closures when options\n // change between renders.\n const optsRef = React.useRef({ slotChar, showMaskOnFocus, alwaysShowMask, autoClear, readOnly, mask, userTokens });\n\n optsRef.current = { slotChar, showMaskOnFocus, alwaysShowMask, autoClear, readOnly, mask, userTokens };\n\n // ---------------------------------------------------------------------\n // Helpers (all read `targetRef.current` lazily so a ref swap is safe).\n // ---------------------------------------------------------------------\n\n const getPlaceholder = React.useCallback((i: number) => {\n const sc = optsRef.current.slotChar;\n\n if (sc == null) return '';\n\n if (i < sc.length) return sc.charAt(i);\n\n return sc.charAt(0);\n }, []);\n\n const caret = React.useCallback((first?: number, last?: number): { begin: number; end: number } | undefined => {\n const target = targetRef.current;\n let begin = 0;\n let end = 0;\n\n if (!target) return { begin, end };\n\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n target.setSelectionRange(begin, end);\n } else {\n begin = target.selectionStart ?? 0;\n end = target.selectionEnd ?? 0;\n }\n\n return { begin, end };\n }, []);\n\n const seekNext = React.useCallback((pos: number) => {\n while (++pos < len.current && !tests.current[pos]);\n\n return pos;\n }, []);\n\n const seekPrev = React.useCallback((pos: number) => {\n while (--pos >= 0 && !tests.current[pos]);\n\n return pos;\n }, []);\n\n // Track whether we're currently writing to the DOM ourselves, so the\n // resulting `input` event doesn't re-enter our own handler chain.\n const internalWrite = React.useRef(false);\n\n // DOM value setter using React's native value setter so React's\n // `_valueTracker` stays in sync. Note: this only mutates the DOM —\n // it intentionally does NOT dispatch an `input` event. We dispatch\n // exactly once per user-visible change (see `notifyReact` below)\n // to avoid firing React `onChange` mid-operation and to keep\n // downstream consumers (e.g. DatePicker.Input parsing the value)\n // from seeing intermediate buffer states.\n const setNativeValue = React.useCallback((target: HTMLInputElement, next: string) => {\n const proto = window.HTMLInputElement.prototype;\n const setter = Object.getOwnPropertyDescriptor(proto, 'value')?.set;\n\n if (setter) setter.call(target, next);\n else target.value = next;\n }, []);\n\n // Notify React (and any other React-side onChange listeners) that\n // the input value has changed. Wraps the dispatch in `internalWrite`\n // so our own native `input` listener doesn't re-process the event.\n const notifyReact = React.useCallback((target: HTMLInputElement) => {\n internalWrite.current = true;\n try {\n target.dispatchEvent(new Event('input', { bubbles: true }));\n } finally {\n internalWrite.current = false;\n }\n }, []);\n\n const writeBuffer = React.useCallback(() => {\n const target = targetRef.current;\n\n if (!target) return;\n setNativeValue(target, buffer.current.join(''));\n }, [setNativeValue]);\n\n const clearBuffer = React.useCallback(\n (start: number, end: number) => {\n for (let i = start; i < end && i < len.current; i++) {\n if (tests.current[i]) buffer.current[i] = getPlaceholder(i);\n }\n },\n [getPlaceholder]\n );\n\n const shiftL = React.useCallback(\n (begin: number, end: number) => {\n if (begin < 0) return;\n\n let j = seekNext(end);\n\n for (let i = begin; i < len.current; i++) {\n if (tests.current[i]) {\n if (j < len.current && tests.current[i]?.test(buffer.current[j])) {\n buffer.current[i] = buffer.current[j];\n buffer.current[j] = getPlaceholder(j);\n } else {\n break;\n }\n\n j = seekNext(j);\n }\n }\n\n writeBuffer();\n caret(Math.max(firstNonMaskPos.current ?? 0, begin));\n },\n [seekNext, getPlaceholder, writeBuffer, caret]\n );\n\n const shiftR = React.useCallback(\n (pos: number) => {\n let c = getPlaceholder(pos);\n\n for (let i = pos; i < len.current; i++) {\n if (tests.current[i]) {\n const j = seekNext(i);\n const t = buffer.current[i];\n\n buffer.current[i] = c;\n\n if (j < len.current && tests.current[j]?.test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n },\n [getPlaceholder, seekNext]\n );\n\n const checkVal = React.useCallback(\n (allow = false): number => {\n const target = targetRef.current;\n\n if (!target) return firstNonMaskPos.current ?? 0;\n\n const test = target.value;\n let lastMatch = -1;\n let i: number;\n let c: string;\n let pos: number;\n\n for (i = 0, pos = 0; i < len.current; i++) {\n const currentTest = tests.current[i];\n\n if (currentTest !== null) {\n buffer.current[i] = getPlaceholder(i);\n\n while (pos++ < (test?.length ?? 0)) {\n c = test?.charAt(pos - 1) ?? '';\n\n if (currentTest.test(c)) {\n buffer.current[i] = c;\n lastMatch = i;\n break;\n }\n }\n\n if (pos > (test?.length ?? 0)) {\n clearBuffer(i + 1, len.current);\n break;\n }\n } else {\n if (buffer.current[i] === test?.charAt(pos)) pos++;\n\n if (i < partialPosition.current) lastMatch = i;\n }\n }\n\n if (allow) {\n writeBuffer();\n } else if (lastMatch + 1 < partialPosition.current) {\n if (optsRef.current.autoClear || buffer.current.join('') === defaultBuffer.current) {\n if (target.value) setNativeValue(target, '');\n clearBuffer(0, len.current);\n } else {\n writeBuffer();\n }\n } else {\n writeBuffer();\n setNativeValue(target, target.value.substring(0, lastMatch + 1));\n }\n\n return partialPosition.current ? i! : (firstNonMaskPos.current ?? 0);\n },\n [getPlaceholder, clearBuffer, writeBuffer, setNativeValue]\n );\n\n const unmaskValue = React.useCallback(\n (masked: string) => {\n const out: string[] = [];\n const chars = masked.split('');\n\n for (let i = 0; i < chars.length; i++) {\n const c = chars[i];\n\n if (tests.current[i] && c !== getPlaceholder(i)) {\n out.push(c);\n }\n }\n\n return out.join('');\n },\n [getPlaceholder]\n );\n\n const computeIsComplete = React.useCallback((maskedValue: string) => {\n // Complete when the buffer up to lastRequiredNonMaskPos has no\n // placeholders in its required slots.\n const chars = maskedValue.split('');\n\n for (let i = 0; i <= lastRequiredNonMaskPos.current && i < len.current; i++) {\n if (tests.current[i]) {\n const c = chars[i];\n\n if (!c || !tests.current[i]?.test(c)) return false;\n }\n }\n\n return true;\n }, []);\n\n // Single source of truth for emitting changes. Reads the current DOM\n // value, notifies React (so onChange handlers fire), derives\n // rawValue/isComplete, syncs internal state, and fires user callbacks.\n const emitChange = React.useCallback(\n (originalEvent: Event | null) => {\n const target = targetRef.current;\n\n if (!target) return;\n\n const masked = target.value;\n const isDefault = masked === defaultBuffer.current;\n const reported = isDefault ? '' : masked;\n\n if (lastEmittedValue.current === reported) return;\n lastEmittedValue.current = reported;\n\n // Notify React-side `onChange` handlers (e.g. DatePicker.Input's\n // parser) that the DOM value has changed. The flag `internalWrite`\n // prevents our own listener from re-processing this dispatch.\n // We only dispatch when the originating event was NOT a native\n // `input` event — for those, React already gets the change via\n // the original event.\n if (originalEvent?.type !== 'input') {\n notifyReact(target);\n }\n\n const rawValue = isDefault ? '' : unmaskValue(masked);\n const complete = !isDefault && computeIsComplete(masked);\n const eventPayload: UseMaskValueChangeEvent = {\n originalEvent,\n value: reported,\n rawValue,\n isComplete: complete\n };\n\n // Mirror DOM into hook's internal state (no-op in controlled mode).\n setStateValue(reported);\n\n onValueChangeRef.current?.(eventPayload);\n\n if (complete && !wasComplete.current) {\n onCompleteRef.current?.(eventPayload);\n }\n\n wasComplete.current = complete;\n currentVal.current = masked;\n },\n [unmaskValue, computeIsComplete, setStateValue, notifyReact]\n );\n\n // ---------------------------------------------------------------------\n // Event handlers — invoked from native DOM listeners installed in the\n // ref callback below.\n // ---------------------------------------------------------------------\n\n const handleInputChange = React.useCallback(\n (event: Event) => {\n if (optsRef.current.readOnly) return;\n if (event.type === 'paste') return;\n\n const pos = checkVal(true);\n\n caret(pos);\n emitChange(event);\n },\n [checkVal, caret, emitChange]\n );\n\n const handleAndroidInput = React.useCallback(\n (event: Event) => {\n const target = targetRef.current;\n\n if (!target) return;\n\n const curVal = target.value;\n const pos = caret();\n\n if (!pos) return;\n\n if (oldVal.current && oldVal.current.length && oldVal.current.length > curVal.length) {\n checkVal(true);\n while (pos.begin > 0 && !tests.current[pos.begin - 1]) pos.begin--;\n\n if (pos.begin === 0) {\n while (pos.begin < (firstNonMaskPos.current ?? 0) && !tests.current[pos.begin]) pos.begin++;\n }\n\n caret(pos.begin, pos.begin);\n } else {\n checkVal(true);\n while (pos.begin < len.current && !tests.current[pos.begin]) pos.begin++;\n caret(pos.begin, pos.begin);\n }\n\n emitChange(event);\n },\n [caret, checkVal, emitChange]\n );\n\n const onInput = React.useCallback(\n (event: Event) => {\n const target = targetRef.current;\n\n if (!target) return;\n // Ignore our own re-dispatched input events — they exist only to\n // notify React listeners (e.g. DatePicker.Input's onChange parse).\n if (internalWrite.current) return;\n\n if ('isComposing' in event && (event as InputEvent).isComposing) return;\n\n if (androidChrome.current) handleAndroidInput(event);\n else handleInputChange(event);\n },\n [handleAndroidInput, handleInputChange]\n );\n\n const onKeyDown = React.useCallback(\n (event: KeyboardEvent) => {\n const target = targetRef.current;\n\n if (!target || optsRef.current.readOnly) return;\n\n const k = event.code;\n let pos: { begin: number; end: number } | undefined;\n let begin: number;\n let end: number;\n const iPhone = /iphone/i.test(getUserAgent());\n\n oldVal.current = target.value;\n\n if (k === 'Backspace' || k === 'Delete' || (iPhone && k === 'Escape')) {\n pos = caret();\n\n if (!pos) return;\n\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 'Delete' ? seekPrev(begin) : (end = seekNext(begin - 1));\n end = k === 'Delete' ? seekNext(end) : end;\n }\n\n clearBuffer(begin, end);\n shiftL(begin, end - 1);\n emitChange(event);\n\n event.preventDefault();\n } else if (k === 'Enter') {\n target.blur();\n emitChange(event);\n } else if (k === 'Escape') {\n setNativeValue(target, focusText.current ?? '');\n caret(0, checkVal());\n emitChange(event);\n event.preventDefault();\n }\n },\n [caret, seekPrev, seekNext, clearBuffer, shiftL, emitChange, setNativeValue, checkVal]\n );\n\n const onKeyPress = React.useCallback(\n (event: KeyboardEvent) => {\n const target = targetRef.current;\n\n if (!target || optsRef.current.readOnly) return;\n\n const k = event.code;\n const pos = caret();\n\n if (!pos) return;\n\n if (event.ctrlKey || event.altKey || event.metaKey || event.shiftKey || event.key === 'CapsLock' || event.key === 'Escape' || event.key === 'Tab') {\n return;\n }\n\n if (k && k !== 'Enter') {\n if (pos.end - pos.begin !== 0) {\n clearBuffer(pos.begin, pos.end);\n shiftL(pos.begin, pos.end - 1);\n }\n\n const p = seekNext(pos.begin - 1);\n\n if (p < len.current) {\n let c = event.key;\n\n if (transformRef.current) c = transformRef.current(c);\n\n if (tests.current[p]?.test(c)) {\n shiftR(p);\n buffer.current[p] = c;\n writeBuffer();\n const next = seekNext(p);\n\n if (/android/i.test(getUserAgent())) {\n setTimeout(() => caret(next), 0);\n } else {\n caret(next);\n }\n }\n }\n\n event.preventDefault();\n }\n\n emitChange(event);\n },\n [caret, clearBuffer, shiftL, seekNext, shiftR, writeBuffer, emitChange]\n );\n\n const onFocus = React.useCallback(\n (_event: FocusEvent) => {\n const target = targetRef.current;\n\n if (!target || optsRef.current.readOnly) return;\n if (caretTimeoutId.current) clearTimeout(caretTimeoutId.current);\n focus.current = true;\n focusText.current = target.value;\n\n const shouldShowSkeleton = optsRef.current.showMaskOnFocus || optsRef.current.alwaysShowMask;\n\n if (!target.value || target.value === defaultBuffer.current) {\n if (shouldShowSkeleton) {\n setNativeValue(target, defaultBuffer.current);\n }\n\n requestAnimationFrame(() => {\n if (target === document.activeElement) {\n caret(firstNonMaskPos.current ?? 0, firstNonMaskPos.current ?? 0);\n }\n });\n } else {\n const pos = checkVal();\n\n caretTimeoutId.current = setTimeout(() => {\n if (target !== document.activeElement) return;\n writeBuffer();\n\n if (pos === optsRef.current.mask?.replace('?', '').length) {\n caret(0, pos);\n } else {\n caret(pos);\n }\n }, 10);\n }\n },\n [caret, checkVal, writeBuffer, setNativeValue]\n );\n\n const onBlur = React.useCallback(\n (event: FocusEvent) => {\n const target = targetRef.current;\n\n if (!target) return;\n focus.current = false;\n checkVal();\n\n if (!optsRef.current.alwaysShowMask && target.value === defaultBuffer.current) {\n setNativeValue(target, '');\n }\n\n emitChange(event);\n\n if (target.value !== focusText.current) {\n target.dispatchEvent(new Event('change', { bubbles: true, cancelable: false }));\n }\n },\n [checkVal, emitChange, setNativeValue]\n );\n\n const onPaste = React.useCallback(\n (event: Event) => {\n const target = targetRef.current;\n\n if (!target || optsRef.current.readOnly) return;\n\n // Defer to next tick so the pasted content is already in the input,\n // then run a full revalidation through checkVal(true).\n setTimeout(() => {\n const pos = checkVal(true);\n\n caret(pos);\n emitChange(event);\n }, 0);\n },\n [checkVal, caret, emitChange]\n );\n\n // ---------------------------------------------------------------------\n // Mask initialization: parses the pattern into the tests/buffer refs\n // and writes the initial value into the bound input (if any).\n // ---------------------------------------------------------------------\n const initMask = React.useCallback(() => {\n tests.current = [];\n partialPosition.current = mask ? mask.length : 0;\n len.current = mask ? mask.length : 0;\n firstNonMaskPos.current = null;\n lastRequiredNonMaskPos.current = 0;\n\n const tokenMap: Record<string, RegExp> = { ...DEFAULT_TOKENS, ...userTokens };\n const ua = getUserAgent();\n\n androidChrome.current = /chrome/i.test(ua) && /android/i.test(ua);\n\n const maskTokens = mask ? mask.split('') : [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c === '?') {\n len.current--;\n partialPosition.current = i;\n } else if (tokenMap[c]) {\n tests.current.push(tokenMap[c]);\n\n if (firstNonMaskPos.current === null) {\n firstNonMaskPos.current = tests.current.length - 1;\n }\n\n if (i < partialPosition.current) {\n lastRequiredNonMaskPos.current = tests.current.length - 1;\n }\n } else {\n tests.current.push(null);\n }\n }\n\n buffer.current = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c !== '?') {\n if (tokenMap[c]) buffer.current.push(getPlaceholder(i));\n else buffer.current.push(c);\n }\n }\n\n defaultBuffer.current = buffer.current.join('');\n\n const target = targetRef.current;\n\n if (target) {\n // Seed initial skeleton only when alwaysShowMask is on AND\n // the input has no value yet. Initial controlled/defaultValue\n // sync is handled by the dedicated effect below — keeping\n // `initMask` independent of `value` prevents it from\n // re-running on every keystroke (which would re-write the\n // DOM and fight user typing).\n if (!target.value && optsRef.current.alwaysShowMask) {\n setNativeValue(target, defaultBuffer.current);\n }\n }\n }, [mask, userTokens, getPlaceholder, setNativeValue]);\n\n // Re-init when mask or tokens change.\n React.useEffect(() => {\n initMask();\n }, [initMask]);\n\n // ---------------------------------------------------------------------\n // Sync controlled value -> input. When the consumer changes `value`\n // externally we must reflect it in the DOM.\n // ---------------------------------------------------------------------\n React.useEffect(() => {\n const target = targetRef.current;\n\n if (!target) return;\n if (controlledValue === undefined) return;\n if (controlledValue === currentVal.current) return;\n if (focus.current) return; // Don't fight the user while typing.\n\n setNativeValue(target, controlledValue);\n checkVal();\n currentVal.current = target.value;\n }, [controlledValue, setNativeValue, checkVal]);\n\n // ---------------------------------------------------------------------\n // Ref callback: install / tear down native listeners on the target.\n //\n // The callback has a STABLE identity (`useCallback` with no deps) so\n // React doesn't tear down and re-attach listeners on every render.\n // Listeners themselves are stable refs to the latest handlers via\n // the `*Handler` indirections below.\n // ---------------------------------------------------------------------\n const onInputRef = React.useRef(onInput);\n\n onInputRef.current = onInput;\n const onKeyDownRef = React.useRef(onKeyDown);\n\n onKeyDownRef.current = onKeyDown;\n const onKeyPressRef = React.useRef(onKeyPress);\n\n onKeyPressRef.current = onKeyPress;\n const onFocusRef = React.useRef(onFocus);\n\n onFocusRef.current = onFocus;\n const onBlurRef = React.useRef(onBlur);\n\n onBlurRef.current = onBlur;\n const onPasteRef = React.useRef(onPaste);\n\n onPasteRef.current = onPaste;\n\n // Stable trampoline handlers that delegate to the latest refs.\n const stableHandlers = React.useMemo(\n () => ({\n input: (e: Event) => onInputRef.current(e),\n keydown: (e: KeyboardEvent) => onKeyDownRef.current(e),\n keypress: (e: KeyboardEvent) => onKeyPressRef.current(e),\n focus: (e: FocusEvent) => onFocusRef.current(e),\n blur: (e: FocusEvent) => onBlurRef.current(e),\n paste: (e: Event) => onPasteRef.current(e)\n }),\n []\n );\n\n const refCallback = React.useCallback(\n (element: HTMLInputElement | null) => {\n const previous = targetRef.current;\n\n if (previous && previous !== element) {\n previous.removeEventListener('input', stableHandlers.input);\n previous.removeEventListener('keydown', stableHandlers.keydown);\n previous.removeEventListener('keypress', stableHandlers.keypress);\n previous.removeEventListener('focus', stableHandlers.focus);\n previous.removeEventListener('blur', stableHandlers.blur);\n previous.removeEventListener('paste', stableHandlers.paste);\n }\n\n targetRef.current = element;\n\n if (element && element !== previous) {\n element.addEventListener('input', stableHandlers.input);\n element.addEventListener('keydown', stableHandlers.keydown);\n element.addEventListener('keypress', stableHandlers.keypress);\n element.addEventListener('focus', stableHandlers.focus);\n element.addEventListener('blur', stableHandlers.blur);\n element.addEventListener('paste', stableHandlers.paste);\n\n // Seed the freshly-bound element. Use `controlledValue`\n // (not `value`) so the seed only happens for an externally\n // supplied controlled value; uncontrolled internal state\n // changes are handled by the user's typing and shouldn't\n // re-seed mid-stream.\n if (controlledValue) {\n setNativeValue(element, controlledValue);\n checkVal();\n } else if (defaultValue && !element.value) {\n setNativeValue(element, defaultValue);\n checkVal();\n } else if (optsRef.current.alwaysShowMask && !element.value) {\n setNativeValue(element, defaultBuffer.current);\n }\n }\n },\n // Intentionally NO `value`/`controlledValue` deps — see comment\n // above. The setter closures below read fresh values from refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [stableHandlers]\n );\n\n // ---------------------------------------------------------------------\n // Derived public outputs.\n // ---------------------------------------------------------------------\n const rawValue = React.useMemo(() => (value ? unmaskValue(value) : ''), [value, unmaskValue]);\n const isComplete = React.useMemo(() => (value ? computeIsComplete(value) : false), [value, computeIsComplete]);\n\n const setValue = React.useCallback(\n (next: string) => {\n const target = targetRef.current;\n\n if (!target) return;\n setNativeValue(target, next ?? '');\n checkVal(true);\n emitChange(null);\n },\n [setNativeValue, checkVal, emitChange]\n );\n\n const reset = React.useCallback(() => {\n const target = targetRef.current;\n\n if (!target) return;\n setNativeValue(target, '');\n clearBuffer(0, len.current);\n\n if (optsRef.current.alwaysShowMask) {\n setNativeValue(target, defaultBuffer.current);\n }\n\n currentVal.current = target.value;\n wasComplete.current = false;\n emitChange(null);\n }, [setNativeValue, clearBuffer, emitChange]);\n\n return {\n ref: refCallback,\n value,\n rawValue,\n isComplete,\n setValue,\n reset\n };\n}\n","import * as React from 'react';\n\n/**\n * Listens for the specified media query.\n *\n * @param query - The media query to match.\n * @param when - A boolean indicating whether the media query should be active.\n * @returns A boolean indicating whether the media query matches.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const isMobile = useMatchMedia('(max-width: 768px)');\n *\n * return <div>{isMobile ? 'Mobile' : 'Desktop'}</div>;\n * };\n */\nexport function useMatchMedia(query: string, when: boolean = true): boolean {\n const [matches, setMatches] = React.useState(false);\n const matchMedia = React.useRef<MediaQueryList | null>(null);\n\n const handleChange = (event: MediaQueryListEvent) => setMatches(event.matches);\n const bind = () => matchMedia.current?.addEventListener('change', handleChange);\n const unbind = () => matchMedia.current?.removeEventListener('change', handleChange) && (matchMedia.current = null);\n\n React.useEffect(() => {\n if (when) {\n matchMedia.current = window.matchMedia(query);\n setMatches(matchMedia.current.matches);\n\n bind();\n }\n\n return () => {\n unbind();\n };\n }, [query, when]);\n\n return matches;\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs a mount effect only once.\n * This is similar to `useEffect`, but it only runs on mount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @returns {void}\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * useMountEffect(() => {\n * console.log('Mounted');\n * });\n * };\n * ```\n */\nexport function useMountEffect(effect: React.EffectCallback): void {\n const mounted = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!mounted.current) {\n mounted.current = true;\n\n effect?.();\n }\n }, []);\n}\n","import * as React from 'react';\n\n/**\n * Options for the useMounted hook.\n */\nexport interface UseMountedOptions {\n /**\n * Callback invoked when the component transitions to mounted state.\n */\n onMounted?: () => void;\n /**\n * Callback invoked when the component transitions to unmounted state\n * or when the component is destroyed while mounted.\n */\n onUnmounted?: () => void;\n}\n\n/**\n * Custom hook that tracks whether a component is mounted on the client.\n * Provides SSR-safe mounting detection with optional lifecycle callbacks.\n *\n * @param {UseMountedOptions} options configuration options\n * @returns {boolean} whether the component is currently mounted\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * const mounted = useMounted({\n * onMounted: () => console.log('Mounted'),\n * onUnmounted: () => console.log('Unmounted')\n * });\n *\n * if (!mounted) return null;\n *\n * return <div>Content</div>;\n * };\n * ```\n */\nexport function useMounted(options: UseMountedOptions = {}): boolean {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n\n options.onMounted?.();\n\n return () => {\n options.onUnmounted?.();\n };\n }, []);\n\n return mounted;\n}\n","import * as React from 'react';\n\n/**\n * The options for the `useNumberFormatter` hook.\n */\nexport interface UseNumberFormatterOptions {\n /**\n * The numeric value to be formatted.\n */\n value?: number | string | null | undefined;\n /**\n * Locale to be used in formatting.\n */\n locale?: string;\n /**\n * The locale matching algorithm to use. Possible values are 'lookup' and 'best fit'.\n * @default 'best fit'\n */\n localeMatcher?: 'lookup' | 'best fit';\n /**\n * Defines the behavior of the component.\n * @default 'decimal'\n */\n mode?: 'decimal' | 'currency';\n /**\n * The currency to use in currency formatting (ISO 4217 currency codes).\n */\n currency?: string;\n /**\n * How to display the currency in currency formatting.\n */\n currencyDisplay?: 'symbol' | 'narrowSymbol' | 'code' | 'name';\n /**\n * Whether to use grouping separators, such as thousands separators.\n * @default true\n */\n useGrouping?: boolean;\n /**\n * The minimum number of fraction digits to use.\n */\n minFractionDigits?: number;\n /**\n * The maximum number of fraction digits to use.\n */\n maxFractionDigits?: number;\n /**\n * How decimals should be rounded.\n */\n roundingMode?: 'ceil' | 'floor' | 'expand' | 'trunc' | 'halfCeil' | 'halfFloor' | 'halfExpand' | 'halfTrunc' | 'halfEven';\n /**\n * Text to display before the value.\n */\n prefix?: string;\n /**\n * Text to display after the value.\n */\n suffix?: string;\n /**\n * Minimum boundary value (used to determine if minus sign is allowed).\n */\n min?: number;\n /**\n * Whether to format the value.\n * @default true\n */\n format?: boolean;\n}\n\n/**\n * The exposes for the `useNumberFormatter` hook.\n */\nexport interface UseNumberFormatterExposes {\n /**\n * The formatted value based on the provided value and options.\n */\n formattedValue: string;\n /**\n * Formats a numeric value to a localized string.\n * @param value - The value to format\n * @returns The formatted string\n */\n formatValue: (value: number | string | null | undefined) => string;\n /**\n * Parses a formatted string back to a numeric value.\n * @param text - The text to parse\n * @returns The parsed number, '-' for minus sign only, or null if invalid\n */\n parseValue: (text: string) => number | string | null;\n /**\n * Adds two numbers with floating-point precision handling.\n * @param base - The base number\n * @param increment - The increment to add\n * @returns The sum with proper precision\n */\n addWithPrecision: (base: number, increment: number) => number;\n /**\n * Checks if the mode is decimal.\n * @returns True if mode is 'decimal'\n */\n isDecimalMode: () => boolean;\n /**\n * Checks if a character is a numeral character (digit, decimal, group separator, or minus sign).\n * @param char - The character to check\n * @returns True if the character is a numeral character\n */\n isNumeralChar: (char: string) => boolean;\n /**\n * Checks if a character is a minus sign.\n * @param char - The character to check\n * @returns True if the character is a minus sign\n */\n isMinusSign: (char: string) => boolean;\n /**\n * Checks if a character is a decimal sign.\n * @param char - The character to check\n * @returns True if the character is a decimal sign\n */\n isDecimalSign: (char: string) => boolean;\n /**\n * Checks if minus sign is allowed based on min value.\n * @returns True if minus sign is allowed\n */\n allowMinusSign: () => boolean;\n /**\n * Gets the decimal character indexes in a value string.\n * @param val - The value string to analyze\n * @returns Object with decimalCharIndex and decimalCharIndexWithoutPrefix\n */\n getDecimalCharIndexes: (val: string) => { decimalCharIndex: number; decimalCharIndexWithoutPrefix: number };\n /**\n * Gets various character indexes (decimal, minus, suffix, currency) in a value string.\n * @param val - The value string to analyze\n * @returns Object with character indexes\n */\n getCharIndexes: (val: string) => { decimalCharIndex: number; minusCharIndex: number; suffixCharIndex: number; currencyCharIndex: number };\n /**\n * Gets the length of decimal part in a formatted value.\n * @param value - The formatted value string\n * @returns The decimal length\n */\n getDecimalLength: (value: string) => number;\n /**\n * Concatenates two value strings, handling decimal positions.\n * @param val1 - The first value\n * @param val2 - The second value\n * @returns The concatenated result\n */\n concatValues: (val1: string, val2: string) => string;\n /**\n * The group character used for thousands separator.\n */\n groupChar: string | null;\n /**\n * The prefix character/string.\n */\n prefixChar: string | null;\n /**\n * The suffix character/string.\n */\n suffixChar: string | null;\n /**\n * The resolved Intl.NumberFormat options.\n */\n resolvedOptions: () => Intl.ResolvedNumberFormatOptions | undefined;\n /**\n * Reinitializes the parser (call when options change).\n */\n constructParser: () => void;\n}\n\n/**\n * useNumberFormatter hook is used to format and parse numbers using Intl.NumberFormat.\n *\n * @param {UseNumberFormatterOptions} options - The options for the number formatter.\n * @returns {UseNumberFormatterExposes} - The exposed methods for the number formatter.\n *\n * @example\n * ```tsx\n * const formatter = useNumberFormatter({\n * value: 1234.56,\n * locale: 'en-US',\n * mode: 'currency',\n * currency: 'USD'\n * });\n *\n * const formatted = formatter.formatValue(1234.56); // \"$1,234.56\"\n * const parsed = formatter.parseValue(\"$1,234.56\"); // 1234.56\n * ```\n */\nexport function useNumberFormatter(options: UseNumberFormatterOptions = {}): UseNumberFormatterExposes {\n const { value, locale, localeMatcher, mode = 'decimal', currency, currencyDisplay, useGrouping = true, minFractionDigits, maxFractionDigits, roundingMode, prefix, suffix, min, format = true } = options;\n\n // Internal refs for regex patterns\n const numberFormat = React.useRef<Intl.NumberFormat | null>(null);\n const groupCharRef = React.useRef<string | null>(null);\n const prefixCharRef = React.useRef<string | null>(null);\n const suffixCharRef = React.useRef<string | null>(null);\n const _numeral = React.useRef<RegExp | null>(null);\n const _group = React.useRef<RegExp | null>(null);\n const _minusSign = React.useRef<RegExp | null>(null);\n const _currency = React.useRef<RegExp | null>(null);\n const _decimal = React.useRef<RegExp | null>(null);\n const _suffix = React.useRef<RegExp | null>(null);\n const _prefix = React.useRef<RegExp | null>(null);\n const _index = React.useRef<((d: string) => number | undefined) | null>(null);\n\n const getOptions = () => {\n return {\n localeMatcher: localeMatcher,\n style: mode,\n currency: currency,\n currencyDisplay: currencyDisplay,\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits ?? undefined,\n maximumFractionDigits: maxFractionDigits ?? undefined,\n roundingMode: roundingMode\n };\n };\n\n const escapeRegExp = (text: string) => {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n };\n\n const getDecimalExpression = () => {\n const formatter = new Intl.NumberFormat(locale, { ...getOptions(), useGrouping: false });\n\n return new RegExp(\n `[${formatter\n .format(1.1)\n .replace(_currency.current ?? '', '')\n .trim()\n .replace(_numeral.current ?? '', '')}]`,\n 'g'\n );\n };\n\n const getGroupingExpression = () => {\n const formatter = new Intl.NumberFormat(locale, { useGrouping: true });\n\n groupCharRef.current = formatter\n .format(1000000)\n .trim()\n .replace(_numeral.current ?? '', '')\n .charAt(0);\n\n return new RegExp(`[${groupCharRef.current}]`, 'g');\n };\n\n const getMinusSignExpression = () => {\n const formatter = new Intl.NumberFormat(locale, { useGrouping: false });\n\n return new RegExp(\n `[${formatter\n .format(-1)\n .trim()\n .replace(_numeral.current ?? '', '')}]`,\n 'g'\n );\n };\n\n const getCurrencyExpression = () => {\n if (currency) {\n const formatter = new Intl.NumberFormat(locale, { style: 'currency', currency: currency, currencyDisplay: currencyDisplay, minimumFractionDigits: 0, maximumFractionDigits: 0, roundingMode: roundingMode });\n\n return new RegExp(\n `[${formatter\n .format(1)\n .replace(/\\s/g, '')\n .replace(_numeral.current ?? '', '')\n .replace(_group.current ?? '', '')}]`,\n 'g'\n );\n }\n\n return new RegExp(`[]`, 'g');\n };\n\n const getPrefixExpression = () => {\n if (prefix) {\n _prefix.current = new RegExp(escapeRegExp(prefix), 'g');\n } else {\n const formatter = new Intl.NumberFormat(locale, { style: mode, currency: currency, currencyDisplay: currencyDisplay });\n\n const prefixStr = formatter.format(1).split('1')[0];\n\n _prefix.current = new RegExp(escapeRegExp(prefixStr), 'g');\n }\n\n return _prefix.current;\n };\n\n const getSuffixExpression = () => {\n if (suffix) {\n _suffix.current = new RegExp(escapeRegExp(suffix), 'g');\n } else {\n const formatter = new Intl.NumberFormat(locale, { style: mode, currency: currency, currencyDisplay: currencyDisplay, minimumFractionDigits: 0, maximumFractionDigits: 0, roundingMode: roundingMode });\n\n const suffixStr = formatter.format(1).split('1')[1];\n\n _suffix.current = new RegExp(escapeRegExp(suffixStr), 'g');\n }\n\n return _suffix.current;\n };\n\n const constructParser = () => {\n numberFormat.current = new Intl.NumberFormat(locale, getOptions());\n const numerals = [...new Intl.NumberFormat(locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n\n _numeral.current = new RegExp(`[${numerals.join('')}]`, 'g');\n _group.current = getGroupingExpression();\n _minusSign.current = getMinusSignExpression();\n _currency.current = getCurrencyExpression();\n _decimal.current = getDecimalExpression();\n _suffix.current = getSuffixExpression();\n _prefix.current = getPrefixExpression();\n _index.current = (d) => index.get(d);\n\n // Set prefix and suffix chars\n if (prefix) {\n prefixCharRef.current = prefix;\n } else {\n const formatter = new Intl.NumberFormat(locale, { style: mode, currency: currency, currencyDisplay: currencyDisplay });\n\n prefixCharRef.current = formatter.format(1).split('1')[0];\n }\n\n if (suffix) {\n suffixCharRef.current = suffix;\n } else {\n const formatter = new Intl.NumberFormat(locale, { style: mode, currency: currency, currencyDisplay: currencyDisplay, minimumFractionDigits: 0, maximumFractionDigits: 0, roundingMode: roundingMode });\n\n suffixCharRef.current = formatter.format(1).split('1')[1];\n }\n };\n\n const formatValue = (value: number | string | null | undefined) => {\n if (value != null) {\n if (typeof value === 'string' && value === '-') {\n // Minus sign\n return value;\n }\n\n if (format) {\n const formatter = new Intl.NumberFormat(locale, getOptions());\n const numericValue = typeof value === 'string' ? Number(value) : value;\n let formattedValue = formatter.format(numericValue);\n\n if (prefix) {\n formattedValue = prefix + formattedValue;\n }\n\n if (suffix) {\n formattedValue = formattedValue + suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n };\n\n const parseValue = (text: string) => {\n let cleanText = text\n .replace(_suffix.current || '', '')\n .replace(_prefix.current || '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current || '', '');\n\n if (_decimal.current && _minusSign.current && _numeral.current) {\n const validChars = new RegExp(\n `[${[...new Intl.NumberFormat(locale, { useGrouping: false }).format(9876543210)].reverse().join('')}${new Intl.NumberFormat(locale).format(1.1).replace(/[0-9]/g, '')}${new Intl.NumberFormat(locale)\n .format(-1)\n .replace(/[0-9]/g, '')}]`,\n 'g'\n );\n\n cleanText = cleanText.match(validChars)?.join('') || '';\n }\n\n if (_group.current) {\n cleanText = cleanText.replace(_group.current, '');\n }\n\n if (_minusSign.current) {\n cleanText = cleanText.replace(_minusSign.current, '-');\n }\n\n if (_decimal.current) {\n cleanText = cleanText.replace(_decimal.current, '.');\n }\n\n if (_numeral.current && _index.current) {\n cleanText = cleanText.replace(_numeral.current, (d) => {\n const res = _index.current ? _index.current(d) : undefined;\n\n return res !== undefined ? res.toString() : '';\n });\n }\n\n if (cleanText) {\n if (cleanText === '-') return cleanText;\n\n const parsedValue = +cleanText;\n\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n };\n\n const addWithPrecision = (base: number, increment: number) => {\n const baseStr = base.toString();\n const stepStr = increment.toString();\n\n const baseDecimalPlaces = baseStr.includes('.') ? baseStr.split('.')[1].length : 0;\n const stepDecimalPlaces = stepStr.includes('.') ? stepStr.split('.')[1].length : 0;\n\n const maxDecimalPlaces = Math.max(baseDecimalPlaces, stepDecimalPlaces);\n const precision = Math.pow(10, maxDecimalPlaces);\n\n return Math.round((base + increment) * precision) / precision;\n };\n\n const isDecimalMode = () => {\n return mode === 'decimal';\n };\n\n const resetRegex = () => {\n if (_numeral.current) _numeral.current.lastIndex = 0;\n\n if (_decimal.current) _decimal.current.lastIndex = 0;\n\n if (_group.current) _group.current.lastIndex = 0;\n\n if (_minusSign.current) _minusSign.current.lastIndex = 0;\n };\n\n const isNumeralChar = (char: string) => {\n if (char.length === 1 && ((_numeral.current && _numeral.current.test(char)) || (_decimal.current && _decimal.current.test(char)) || (_group.current && _group.current.test(char)) || (_minusSign.current && _minusSign.current.test(char)))) {\n resetRegex();\n\n return true;\n }\n\n return false;\n };\n\n const isMinusSignFn = (char: string) => {\n if ((_minusSign.current && _minusSign.current.test(char)) || char === '-') {\n if (_minusSign.current) {\n _minusSign.current.lastIndex = 0;\n }\n\n return true;\n }\n\n return false;\n };\n\n const isDecimalSignFn = (char: string) => {\n if ((locale?.includes('fr') && ['.', ','].includes(char)) || (_decimal.current && _decimal.current.test(char))) {\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n return true;\n }\n\n return false;\n };\n\n const allowMinusSign = () => {\n return min === undefined || min === null || min < 0;\n };\n\n const getDecimalCharIndexes = (val: string) => {\n const decimalCharIndex = _decimal.current ? val.search(_decimal.current) : -1;\n\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n const filteredVal = val\n .replace(_prefix.current || '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current || '', '');\n const decimalCharIndexWithoutPrefix = _decimal.current ? filteredVal.search(_decimal.current) : -1;\n\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n };\n\n const getCharIndexes = (val: string) => {\n const resetRegexLastIndex = (regex: RegExp | null) => {\n if (regex) {\n regex.lastIndex = 0;\n }\n };\n\n const decimalCharIndex = _decimal.current ? val.search(_decimal.current) : -1;\n\n resetRegexLastIndex(_decimal.current);\n\n const minusCharIndex = _minusSign.current ? val.search(_minusSign.current) : -1;\n\n resetRegexLastIndex(_minusSign.current);\n\n const suffixCharIndex = _suffix.current ? val.search(_suffix.current) : -1;\n\n resetRegexLastIndex(_suffix.current);\n\n const currencyCharIndex = _currency.current ? val.search(_currency.current) : -1;\n\n resetRegexLastIndex(_currency.current);\n\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n };\n\n const getDecimalLength = (value: string) => {\n if (value) {\n const valueSplit = value.split(_decimal.current ?? '');\n\n if (valueSplit.length === 2) {\n return valueSplit[1]\n .replace(_suffix.current ?? '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current ?? '', '').length;\n }\n }\n\n return 0;\n };\n\n const concatValues = (val1: string, val2: string) => {\n if (val1 && val2) {\n const decimalRegex = _decimal.current;\n const decimalCharIndex = decimalRegex ? val2.search(decimalRegex) : -1;\n\n if (decimalRegex) {\n decimalRegex.lastIndex = 0;\n }\n\n if (suffixCharRef.current) {\n return decimalCharIndex !== -1 ? val1.replace(suffixCharRef.current, '').split(decimalRegex ?? '')[0] + val2.replace(suffixCharRef.current, '').slice(decimalCharIndex) + suffixCharRef.current : val1;\n } else if (prefixCharRef.current) {\n return decimalCharIndex !== -1 ? val1.split(decimalRegex ?? '')[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n\n return val1;\n };\n\n React.useEffect(() => {\n constructParser();\n }, [locale, localeMatcher, mode, currency, currencyDisplay, useGrouping, minFractionDigits, maxFractionDigits, roundingMode, prefix, suffix]);\n\n return {\n formattedValue: formatValue(value),\n formatValue,\n parseValue,\n addWithPrecision,\n isDecimalMode,\n isNumeralChar,\n isMinusSign: isMinusSignFn,\n isDecimalSign: isDecimalSignFn,\n allowMinusSign,\n getDecimalCharIndexes,\n getCharIndexes,\n getDecimalLength,\n concatValues,\n groupChar: groupCharRef.current,\n prefixChar: prefixCharRef.current,\n suffixChar: suffixCharRef.current,\n resolvedOptions: () => numberFormat.current?.resolvedOptions(),\n constructParser\n };\n}\n","import * as React from 'react';\n\n/**\n * usePresence hook is used to manage the presence of a component.\n *\n * @param open - The open state.\n * @returns An object containing the present, exiting, mounted, and ref states.\n *\n * @example\n * ```tsx\n * const { present, exiting, mounted, ref } = usePresence(true);\n *\n * return present && (\n * <div className=\"card flex justify-center\"></div>\n * );\n */\n\nexport function usePresence(open: boolean, fallbackMs: number = 500) {\n const [present, setPresent] = React.useState(open);\n const [exiting, setExiting] = React.useState(false);\n const [mounted, setMounted] = React.useState(false);\n const nodeRef = React.useRef<HTMLElement | null>(null);\n const cleanupRef = React.useRef<(() => void) | null>(null);\n const rafCleanupRef = React.useRef<(() => void) | null>(null);\n\n const ref = React.useCallback((node: HTMLElement | null) => {\n nodeRef.current = node;\n }, []);\n\n React.useEffect(() => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n\n if (rafCleanupRef.current) {\n rafCleanupRef.current();\n rafCleanupRef.current = null;\n }\n\n if (open) {\n setPresent(true);\n setExiting(false);\n\n const rafs: number[] = [];\n\n rafs.push(\n requestAnimationFrame(() => {\n rafs.push(\n requestAnimationFrame(() => {\n rafs.push(requestAnimationFrame(() => setMounted(true)));\n })\n );\n })\n );\n\n rafCleanupRef.current = () => {\n rafs.forEach((raf) => cancelAnimationFrame(raf));\n rafs.length = 0;\n };\n } else if (nodeRef.current) {\n setExiting(true);\n setMounted(false);\n const node = nodeRef.current;\n let isHandled = false;\n\n const handleEnd = () => {\n if (isHandled) return;\n\n isHandled = true;\n\n setPresent(false);\n setExiting(false);\n\n node.removeEventListener('transitionend', handleEnd);\n node.removeEventListener('animationend', handleEnd);\n\n cleanupRef.current = null;\n };\n\n node.addEventListener('transitionend', handleEnd, { passive: true });\n node.addEventListener('animationend', handleEnd, { passive: true });\n\n // const fallbackTimeout = setTimeout(() => {\n // if (!isHandled) {\n // handleEnd();\n // }\n // }, fallbackMs);\n\n cleanupRef.current = () => {\n // clearTimeout(fallbackTimeout);\n\n if (!isHandled) {\n node.removeEventListener('transitionend', handleEnd);\n node.removeEventListener('animationend', handleEnd);\n }\n };\n } else {\n setMounted(false);\n setPresent(false);\n setExiting(false);\n }\n }, [open, fallbackMs]);\n\n React.useEffect(() => {\n return () => {\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n if (rafCleanupRef.current) {\n rafCleanupRef.current();\n }\n };\n }, []);\n\n return { present, exiting, mounted, ref };\n}\n","import * as React from 'react';\n\n/**\n * Performs a shallow comparison of two objects to determine if their values are equal.\n * Returns true if both objects have the same keys with the same values (by reference).\n */\nfunction shallowEqual(objA: Record<string, unknown>, objB: Record<string, unknown>): boolean {\n if (objA === objB) return true;\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n const key = keysA[i];\n\n if (objA[key] !== objB[key]) return false;\n }\n\n return true;\n}\n\n/**\n * Used to merge and differentiate incoming props with the default props.\n * - Keys that exist in both `props1` and `props2` are placed in `props`, with values from `props2`.\n * - Keys that exist in `props2` but not in `props1` are placed in `attrs`.\n *\n * Uses structural comparison to preserve referential stability — if the computed\n * props and attrs are shallowly equal to the previous result, the same reference is returned.\n * This prevents unnecessary downstream useMemo invalidation even when the parent\n * passes a new props object reference with identical values (e.g., from JSX spread).\n *\n * @template P1 The type of the default set of props.\n * @template P2 The type of the incoming set of props.\n *\n * @param props1 The default set of props (e.g., default props).\n * @param props2 The incoming set of props (e.g., user-defined or dynamic props).\n * @returns An object containing:\n * - `props`: A new object containing keys that exist in both `props1` and `props2`, using values from `props2`.\n * - `attrs`: A new object containing keys that exist only in `props2`, excluding any keys from `props1`.\n *\n * @example\n * ```ts\n * const { props, attrs } = useProps({ className: 'baz' }, { id: 'foo', className: 'bar' });\n *\n * console.log(props); // { className: 'bar' }\n * console.log(attrs); // { id: 'foo' }\n * ```\n */\nexport function useProps<P1, P2>(props1: P1 = {} as P1, props2: P2 = {} as P2) {\n type Props = Pick<P1 & P2, keyof P1>;\n type Attrs = Omit<P2, keyof P1>;\n type Result = { props: Props; attrs: Attrs };\n\n const prevRef = React.useRef<Result | null>(null);\n\n return React.useMemo(() => {\n const newProps = { ...props1 } as Props;\n const newAttrs = {} as Attrs;\n\n Object.entries(props2 as Record<string, unknown>).forEach(([key, value]) => {\n if (key in (props1 as Record<string, unknown>)) {\n (newProps as Record<string, unknown>)[key] = value;\n } else {\n (newAttrs as Record<string, unknown>)[key] = value;\n }\n });\n\n const prev = prevRef.current;\n\n if (prev && shallowEqual(prev.props as Record<string, unknown>, newProps as Record<string, unknown>) && shallowEqual(prev.attrs as Record<string, unknown>, newAttrs as Record<string, unknown>)) {\n return prev;\n }\n\n const result: Result = { props: newProps, attrs: newAttrs };\n\n prevRef.current = result;\n\n return result;\n }, [props1, props2]);\n}\n","import * as React from 'react';\n\nexport const useQueueTask = () => {\n const tasksRef = React.useRef(new Map<string | number, () => void>());\n const scheduledRef = React.useRef(false);\n\n const flush = React.useCallback(() => {\n scheduledRef.current = false;\n const tasks = tasksRef.current;\n\n tasksRef.current = new Map();\n tasks.forEach((task) => task());\n }, []);\n\n return React.useCallback(\n (id: string | number, task: () => void) => {\n tasksRef.current.set(id, task);\n\n if (!scheduledRef.current) {\n scheduledRef.current = true;\n queueMicrotask(flush);\n }\n },\n [flush]\n );\n};\n","import { getWindowScrollTop } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * The options for the `useScrollTop` hook.\n */\nexport interface UseScrollTopOptions {\n /**\n * Reference to the target element.\n * @default window\n */\n target?: Window | Element | null;\n /**\n * Defines the threshold value of the vertical scroll position of the target to toggle the visibility.\n * @default 400\n */\n threshold?: number;\n /**\n * Defines the scrolling behaviour, 'smooth' adds an animation and 'auto' scrolls with a jump.\n * @default smooth\n */\n behavior?: ScrollBehavior;\n}\n\n/**\n * The exposes for the `useScrollTop` hook.\n */\nexport interface UseScrollTopExposes {\n /**\n * Current visible state as a boolean.\n * @default false\n */\n visible: boolean;\n /**\n * Scrolls the target element to the top.\n */\n scrollToTop: () => void;\n}\n\n/**\n * useScrollTop hook is used to enter input in a certain format such as numeric, date, currency, email and phone.\n *\n * @param {UseScrollTopOptions} options - The options for the scroll top behavior.\n * @returns {UseScrollTopExposes} - The exposed methods for the scroll top behavior.\n *\n * @example\n * ```tsx\n * const { scrollToTop, visible } = useScrollTop({\n * target: elementRef.current,\n * threshold: 400,\n * behavior: 'smooth'\n * });\n *\n * return (\n * <div ref={elementRef}>\n * {visible && (\n * <Button onClick={scrollToTop}>\n * <i className=\"pi pi-arrow-up\" />\n * </Button>\n * )}\n * </div>\n * );\n */\nexport function useScrollTop(options?: UseScrollTopOptions): UseScrollTopExposes {\n const { target = typeof window !== 'undefined' ? window : null, threshold = 400, behavior = 'smooth' } = options || {};\n const [visible, setVisible] = React.useState(false);\n\n const scrollToTop = () => {\n target?.scroll({\n top: 0,\n behavior: behavior\n });\n };\n\n React.useEffect(() => {\n if (!target) return;\n\n const checkVisibility = (scrollY: number) => {\n if (scrollY > threshold) setVisible(true);\n else setVisible(false);\n };\n\n const onScroll = () => {\n const scrollY = target === window ? getWindowScrollTop() : (target as Element).scrollTop;\n\n checkVisibility(scrollY);\n };\n\n target.addEventListener('scroll', onScroll);\n\n return () => {\n target.removeEventListener('scroll', onScroll);\n };\n }, [target, threshold]);\n\n return {\n //state\n visible,\n //methods\n scrollToTop\n };\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs an unmount effect only once.\n * This is similar to `useEffect`, but it only runs on unmount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @returns {void}\n *\n * @example\n * ```tsx\n * const Component = () => {\n * useUnmountEffect(() => {\n * console.log('Unmounted');\n * });\n * };\n * ```\n */\nexport function useUnmountEffect(effect: React.EffectCallback): void {\n React.useEffect(() => {\n return () => {\n effect?.();\n };\n }, []);\n}\n","import * as React from 'react';\n\n/**\n * Custom hook that runs an update effect whenever dependencies change.\n * This is similar to `useEffect`, but it does not run on mount.\n *\n * @param {React.EffectCallback} effect the callback function\n * @param {React.DependencyList} dependencies the dependencies\n * @returns {void}\n *\n * @example\n * ```tsx\n * const Component = ({ value }) => {\n * useUpdateEffect(() => {\n * console.log('Updated');\n * }, [value]);\n * };\n * ```\n */\nexport function useUpdateEffect(effect: React.EffectCallback, dependencies?: React.DependencyList): void {\n const mounted = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!mounted.current) {\n mounted.current = true;\n\n return;\n }\n\n return effect?.();\n }, dependencies);\n}\n","import * as React from 'react';\n\n/**\n * Starts a view transition.\n *\n * @returns A function that starts a view transition.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const startTransition = useViewTransition();\n *\n * const handleClick = () => {\n * startTransition(() => {\n * // Perform some work\n * });\n * };\n *\n * return <button onClick={handleClick}>Click me</button>;\n * };\n */\nexport function useViewTransition() {\n const startTransition = React.useCallback((callback: () => void) => {\n if (document.startViewTransition) {\n document.startViewTransition(() => {\n callback();\n });\n } else {\n callback();\n }\n }, []);\n\n return startTransition;\n}\n","import * as React from 'react';\n\n/**\n * useVisibilityChange hook is used to check if the document is visible.\n *\n * @returns A boolean indicating whether the document is visible.\n *\n * @example\n * ```tsx\n * const Component = () => {\n * const isVisible = useVisibilityChange();\n *\n * return <div>{isVisible ? 'Visible' : 'Hidden'}</div>;\n * };\n */\nexport function useVisibilityChange() {\n const [isVisible, setIsVisible] = React.useState(true);\n\n React.useEffect(() => {\n const handleVisibilityChange = () => {\n setIsVisible(!document.hidden);\n };\n\n handleVisibilityChange();\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n return isVisible;\n}\n","'use client';\nimport { useProps } from '@primereact/hooks';\nimport type { LocaleProps } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultLocaleProps } from './Locale.props';\n\nexport const LocaleContext = React.createContext<LocaleProps | undefined>(undefined);\n\nexport const LocaleProvider = (inProps: React.PropsWithChildren<LocaleProps> = {}) => {\n const { attrs } = useProps(defaultLocaleProps as LocaleProps, inProps);\n const value = undefined;\n const resolvedChildren = React.useMemo(() => resolve(attrs.children, value) as React.ReactNode, [attrs.children, value]);\n\n return <LocaleContext.Provider value={value}>{resolvedChildren}</LocaleContext.Provider>;\n};\n","import type { LocaleProps } from '@primereact/types/core';\n\nexport const defaultLocaleProps: LocaleProps = {\n lang: 'en'\n};\n","import * as React from 'react';\nimport { LocaleContext } from './Locale.context';\n\nexport function useLocale() {\n const context = React.useContext(LocaleContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a LocaleProvider');\n }\n\n return context;\n}\n","'use client';\nimport { useProps } from '@primereact/hooks';\nimport type { PassThroughProps } from '@primereact/types/core';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultPTProps } from './PassThrough.props';\n\nexport const PassThroughContext = React.createContext<PassThroughProps | undefined>(undefined);\n\nexport const PassThroughProvider = (inProps: React.PropsWithChildren<PassThroughProps> = {}) => {\n const { props, attrs } = useProps(defaultPTProps as PassThroughProps, inProps);\n const { value, mergeProps, mergeSections } = props;\n\n const pt = React.useMemo(\n () => ({\n value,\n options: {\n mergeProps,\n mergeSections\n }\n }),\n [value, mergeProps, mergeSections]\n );\n\n const resolvedChildren = React.useMemo(() => resolve(attrs.children, pt) as React.ReactNode, [attrs.children, pt]);\n\n return <PassThroughContext.Provider value={pt}>{resolvedChildren}</PassThroughContext.Provider>;\n};\n","import type { PassThroughProps } from '@primereact/types/core';\n\nexport const defaultPTProps: PassThroughProps = {\n value: undefined,\n mergeProps: false,\n mergeSections: true\n};\n","import * as React from 'react';\nimport { PassThroughContext } from './PassThrough.context';\n\nexport function usePassThrough() {\n const context = React.useContext(PassThroughContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a PassThroughProvider');\n }\n\n return context;\n}\n","import * as React from 'react';\n\nexport const combinedRefs = <I = unknown>(innerRef?: React.Ref<I>, forwardRef?: React.Ref<unknown>) => {\n if (innerRef && forwardRef && forwardRef !== innerRef) {\n if (typeof forwardRef === 'function') {\n forwardRef(innerRef && 'current' in innerRef ? innerRef.current : null);\n } else {\n if ('current' in forwardRef && 'current' in innerRef && forwardRef.current !== innerRef.current) {\n forwardRef.current = innerRef && 'current' in innerRef ? innerRef.current : null;\n }\n }\n }\n};\n","import { getScrollableParents } from '@primeuix/utils/dom';\n\nexport class ConnectedOverlayScrollHandler {\n private element: HTMLElement | null;\n private listener: (() => void) | null;\n private scrollableParents: Element[] | null = null;\n private isBound = false;\n\n constructor(element: HTMLElement | null, listener: () => void = () => {}) {\n this.element = element;\n this.listener = listener;\n }\n\n bindScrollListener() {\n if (!this.element) return;\n\n if (this.isBound) {\n this.unbindScrollListener();\n }\n\n this.scrollableParents = getScrollableParents(this.element);\n\n for (let i = 0; i < this.scrollableParents.length; i++) {\n const parent = this.scrollableParents[i];\n\n if (parent && this.listener) {\n parent.addEventListener('scroll', this.listener);\n }\n }\n\n this.isBound = true;\n }\n\n unbindScrollListener() {\n if (this.scrollableParents && this.listener) {\n for (let i = 0; i < this.scrollableParents.length; i++) {\n const parent = this.scrollableParents[i];\n\n if (parent) {\n parent.removeEventListener('scroll', this.listener);\n }\n }\n }\n\n this.scrollableParents = null;\n this.isBound = false;\n }\n\n destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n this.isBound = false;\n }\n}\n","'use client';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\nfunction createContext<T>(defaultValue?: T, fallback?: () => never | T | undefined) {\n const Context = React.createContext<T | undefined>(defaultValue);\n\n const useContext = () => {\n const context = React.useContext(Context);\n\n if (context === undefined) {\n return fallback?.();\n }\n\n return context;\n };\n\n const Provider = ({ value, children }: { value: T; children: React.ReactNode }) => {\n const resolvedChildren = React.useMemo(() => resolve(children, value) as React.ReactNode, [children, value]);\n\n return <Context.Provider value={value}>{resolvedChildren}</Context.Provider>;\n };\n\n return [Provider, useContext] as const;\n}\n\nexport function createSafeContext<T>(defaultValue?: T, message?: string) {\n return createContext<T>(defaultValue, () => {\n throw new Error(message || 'Context must be used within a Provider');\n });\n}\n\nexport function createOptionalContext<T>(defaultValue?: T) {\n return createContext<T>(defaultValue, () => {\n return defaultValue;\n });\n}\n","export const isDev = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production';\n","import * as React from 'react';\n\n/**\n * Merge multiple React refs (callback refs and ref objects, mixed) into a\n * single callback ref. Each ref is updated whenever React assigns or clears\n * the underlying value.\n *\n * Use this in component wrappers when you need to forward the rendered\n * element / instance both to the local `elementRef` (used for styles, DOM\n * access, composition) and to a ref the caller passed in via props.\n */\nexport function mergeRefs<T>(...refs: Array<React.Ref<T> | undefined>): React.RefCallback<T> {\n return (value: T | null) => {\n for (const ref of refs) {\n if (ref == null) continue;\n\n if (typeof ref === 'function') {\n ref(value);\n } else {\n try {\n (ref as { current: T | null }).current = value;\n } catch {\n // Ignore — caller passed a frozen / read-only ref.\n }\n }\n }\n };\n}\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nexport interface OverlayClickPayload {\n originalEvent: Event | React.SyntheticEvent;\n target?: Element | null;\n}\n\nconst bus = EventBus() as { emit: (name: string, payload?: unknown) => void; on: (name: string, cb: (payload: unknown) => void) => void; off: (name: string, cb: (payload: unknown) => void) => void };\n\nexport const OverlayEventBus = bus;\n","import type { ThemeProps } from '@primereact/types/core';\n\nexport type StylePreloadPhase = 'ssr' | 'client' | 'both';\n\nexport type StylePreloadEntry = {\n id: string;\n css: string;\n phase?: StylePreloadPhase;\n priority?: number;\n};\n\ntype NormalizedStylePreloadEntry = {\n id: string;\n css: string;\n phase: StylePreloadPhase;\n priority: number;\n};\n\nconst normalizeEntry = (entry: StylePreloadEntry): NormalizedStylePreloadEntry => ({\n id: entry.id,\n css: entry.css,\n phase: entry.phase ?? 'both',\n priority: entry.priority ?? 0\n});\n\nconst sortEntries = (entries: NormalizedStylePreloadEntry[]) =>\n entries.sort((a, b) => {\n const byPriority = a.priority - b.priority;\n\n return byPriority !== 0 ? byPriority : a.id.localeCompare(b.id);\n });\n\nexport const StylePreloadRegistry = {\n _entries: new Map<string, NormalizedStylePreloadEntry>(),\n register(entry: StylePreloadEntry) {\n if (!entry.id || !entry.css) {\n return;\n }\n\n this._entries.set(entry.id, normalizeEntry(entry));\n },\n registerMany(entries: StylePreloadEntry[] = []) {\n entries.forEach((entry) => this.register(entry));\n },\n has(id: string) {\n return this._entries.has(id);\n },\n getAll() {\n return sortEntries([...this._entries.values()]);\n },\n getForSSR() {\n return sortEntries([...this._entries.values()].filter((entry) => entry.phase !== 'client'));\n },\n getForClient() {\n return sortEntries([...this._entries.values()].filter((entry) => entry.phase !== 'ssr'));\n },\n clear() {\n this._entries.clear();\n }\n};\n\nexport const addStylePreloadsToStyleSheet = (stylesheet: ThemeProps['stylesheet'], styles: { id: string; css: string }[]) => {\n styles.forEach((style) => {\n if (!stylesheet?.has(style.id)) {\n stylesheet?.add(style.id, style.css);\n }\n });\n};\n\nexport const upsertStylePreloadsToHead = (styles: { id: string; css: string }[]) => {\n styles.forEach((style) => {\n const styleElement = document.head.querySelector(`style[data-primereact-style-id=\"${style.id}\"]`) || document.createElement('style');\n\n if (!styleElement.isConnected) {\n document.head.appendChild(styleElement);\n styleElement.setAttribute('data-primereact-style-id', style.id);\n }\n\n styleElement.textContent = style.css;\n });\n};\n","export const StyleRegistry = {\n _loadedStyleNames: new Set<string>(),\n _styleRefCount: new Map<string, number>(),\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name: string) {\n return (this._styleRefCount.get(name) ?? 0) > 0;\n },\n getStyleRefCount(name: string) {\n return this._styleRefCount.get(name) ?? 0;\n },\n retainStyleName(name: string) {\n const current = this.getStyleRefCount(name);\n const next = current + 1;\n\n this._styleRefCount.set(name, next);\n this._loadedStyleNames.add(name);\n\n return current === 0;\n },\n releaseStyleName(name: string) {\n const current = this.getStyleRefCount(name);\n\n if (current <= 1) {\n this._styleRefCount.delete(name);\n this._loadedStyleNames.delete(name);\n\n return true;\n }\n\n this._styleRefCount.set(name, current - 1);\n\n return false;\n },\n setLoadedStyleName(name: string) {\n this.retainStyleName(name);\n },\n deleteLoadedStyleName(name: string) {\n this._styleRefCount.delete(name);\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._styleRefCount.clear();\n this._loadedStyleNames.clear();\n },\n getStats() {\n return {\n totalStyles: this._loadedStyleNames.size,\n styleRefCounts: Array.from(this._styleRefCount.entries()).map(([name, refCount]) => ({\n name,\n refCount\n }))\n };\n }\n};\n","export * from './combinedRefs';\nexport * from './ConnectedOverlayScrollHandler';\nexport * from './createContext';\nexport * from './env';\nexport * from './mergeRefs';\nexport * from './overlayEventBus';\nexport * from './stylePreloadRegistry';\nexport * from './styleRegistry';\n\nconst REACT_ELEMENT = Symbol.for('react.element');\nconst REACT_TRANSITIONAL_ELEMENT = Symbol.for('react.transitional.element');\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isValidElement(obj: any): obj is React.ReactElement {\n return typeof obj === 'object' && obj !== null && (obj.$$typeof === REACT_ELEMENT || obj.$$typeof === REACT_TRANSITIONAL_ELEMENT);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isElementOfType(obj: any, name: string): boolean {\n if (typeof obj !== 'object' || obj === null) return false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayName = (obj as any).displayName || (obj.type as any)?.displayName || (obj.type as any)?.name;\n\n return displayName === name || displayName?.includes(`PrimeReact.${name}`) || displayName?.includes(`PrimeReact.UI${name}`);\n}\n","import { isValidElement, mergeRefs } from '@primereact/core/utils';\nimport type { ComponentInstance, ComponentProps } from '@primereact/types/core';\nimport { cn, resolve } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A component wrapper for rendering elements with additional props and attributes.\n * @param inProps The properties to pass to the component.\n * @returns A React element or null if `pIf` is false.\n */\nexport function Component<I extends ComponentInstance = ComponentInstance>(inProps: ComponentProps<I> = {}) {\n const { pIf = true, style, className, as, asChild, instance, render, ...props } = inProps;\n\n if (pIf === false) return null;\n\n const AsComponent = (as || instance?.props?.as || React.Fragment) as React.ElementType;\n const renderAsChild = render || asChild || instance?.props?.asChild;\n const isFragment = AsComponent === React.Fragment;\n\n const { ref: propRef, children, attrs: inAttrs, ...restAttrs } = props;\n const attrs = { ...inAttrs, ...restAttrs } as React.HTMLAttributes<HTMLElement> & React.RefAttributes<unknown>;\n const content = resolve(render ?? children, instance, attrs) as React.ReactNode;\n const styles = resolve(style || instance?.props?.style, instance) as React.CSSProperties | undefined;\n const classNames = resolve(className || instance?.props?.className, instance) as string | undefined;\n\n if (renderAsChild || isFragment) {\n return <React.Fragment>{content}</React.Fragment>;\n } else if (isValidElement(AsComponent)) {\n return resolve(AsComponent, instance);\n } else {\n const asProps = {\n ...attrs,\n style: { ...attrs.style, ...styles },\n className: cn(attrs.className, classNames)\n } as React.HTMLAttributes<HTMLElement>;\n\n // Merge refs so the rendered child fans its instance out to:\n // 1. `instance.elementRef` — drives styles, composition, `toElement` chains\n // 2. caller-supplied refs (`attrs.ref`, `props.ref`, `instance.props.ref`)\n // For nested wrappers (e.g. `<DatePicker.Input as={InputText}>`), this\n // ensures the outer wrapper's `elementRef.current` actually receives\n // the inner instance once it commits.\n const asRef = mergeRefs(instance?.elementRef as React.Ref<unknown> | undefined, attrs.ref as React.Ref<unknown> | undefined, propRef as React.Ref<unknown> | undefined, (instance?.props as { ref?: React.Ref<unknown> } | undefined)?.ref);\n\n return asProps.children ? (\n <AsComponent {...asProps} ref={asRef} />\n ) : (\n <AsComponent {...asProps} ref={asRef}>\n {content}\n </AsComponent>\n );\n }\n}\n\nComponent.displayName = 'PrimeReact.Component';\n","import type { ComponentProps, GlobalComponentProps } from '@primereact/types/core';\nimport { omit } from '@primeuix/utils';\n\nexport const globalProps: GlobalComponentProps = Object.freeze({\n ref: undefined,\n pIf: true,\n style: undefined,\n className: undefined,\n as: undefined,\n asChild: false,\n instance: undefined,\n pt: undefined,\n ptOptions: undefined,\n unstyled: undefined,\n dt: undefined,\n styles: undefined,\n render: undefined,\n children: undefined\n});\n\nexport const defaultComponentProps: ComponentProps = Object.freeze({\n ...(omit(globalProps, 'pt', 'ptOptions', 'dt', 'styles') as Record<PropertyKey, unknown>),\n attrs: undefined\n});\n","import { useBase } from '@primereact/core/base';\nimport type { InComponentInstance, useBaseOptions, useComponentOptions } from '@primereact/types/core';\nimport * as React from 'react';\nimport { globalProps } from './Component.props';\nimport { useComponentPT } from './useComponentPT';\nimport { useComponentStyle } from './useComponentStyle';\n\n/**\n * A hook for creating a component instance.\n * This hook initializes a component with properties, attributes, and styles, and provides methods for handling pass-through options and styles.\n * It also supports custom setup functions for additional configuration.\n *\n * @param name The name of the component, used for debugging and identification.\n * @param options The options to customize the component instance.\n * @returns The component instance.\n */\nexport function useComponent<IProps, DProps, Exposes extends Record<PropertyKey, unknown>, Styles>(name: string = 'UnknownComponent', options: useComponentOptions<IProps, DProps, Exposes, Styles> = {}) {\n const defaultProps = React.useMemo(() => ({ ...globalProps, ...options.defaultProps }), [options.defaultProps]);\n const baseInstance = useBase(name, {\n type: options.type,\n inProps: options.inProps,\n defaultProps,\n setup: options.setup\n } as useBaseOptions<IProps & { id?: string; ref?: React.Ref<unknown> }, typeof defaultProps, Exposes>);\n\n const { ref, props } = baseInstance;\n const $params = React.useMemo(() => {\n return {\n instance: baseInstance,\n props: baseInstance.props,\n attrs: baseInstance.attrs,\n state: baseInstance.state\n };\n }, [baseInstance.props, baseInstance.attrs, baseInstance.state]);\n\n const ptx = useComponentPT(baseInstance, $params);\n const stx = useComponentStyle(baseInstance, props.styles || options.styles, $params);\n\n const instance = React.useMemo<InComponentInstance<typeof props, IProps, typeof baseInstance.state, Exposes>>(\n () => ({\n ...baseInstance,\n ...ptx,\n ...stx\n }),\n [baseInstance, ptx, stx]\n );\n\n React.useImperativeHandle(ref as React.Ref<InComponentInstance<typeof props, IProps, typeof baseInstance.state, Exposes>>, () => instance, [instance]);\n\n return instance;\n}\n","import { useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport type { GlobalComponentProps, Instance, PassThroughOptions, useComponentPTReturnType } from '@primereact/types/core';\nimport { mergeProps as primeuix_mergeProps } from '@primeuix/utils/mergeprops';\nimport { getKeyValue, isNotEmpty, isString, resolve } from '@primeuix/utils/object';\nimport * as React from 'react';\nimport { getPT, getPTClassValue, mergeProps } from './Component.utils';\n\n/**\n * A hook for managing pass-through options for a component.\n *\n * @param instance The instance of the component.\n * @param $params Additional parameters for the hook.\n * @returns An object containing the pass-through options.\n */\nexport function useComponentPT<Props extends GlobalComponentProps, IProps, Params>(instance: Instance<Props, IProps>, $params?: Params): useComponentPTReturnType {\n const { id, name, scope, part, props, attrs, $primereact, $attrSelector } = instance || {};\n const passthrough = $primereact?.passthrough;\n const passthroughValue = passthrough?.value;\n const passthroughOptions = passthrough?.options;\n\n const _usePT = React.useCallback(\n <Fn>(pt: Record<string, unknown>, fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n const vfn = (value: unknown) => (fn as (...args: unknown[]) => unknown)(value, key, params);\n\n if (pt && Object.hasOwn(pt, '_usept')) {\n const { mergeSections = true, mergeProps: useMergeProps = false } = (pt['_usept'] || passthroughOptions || {}) as PassThroughOptions;\n const originalValue = vfn(pt.originalValue);\n const value = vfn(pt.value);\n\n if (originalValue === undefined && value === undefined) return undefined;\n else if (isString(value)) return value;\n else if (isString(originalValue)) return originalValue;\n\n return mergeSections || (!mergeSections && value) ? mergeProps(useMergeProps, originalValue, value) : value;\n }\n\n return vfn(pt);\n },\n [passthroughOptions]\n );\n\n const _hook = React.useCallback(\n (hookName: string) => {\n const selfHook = _usePT(getPT(props.pt, name, name), getKeyValue, `hooks.${hookName}`) as (() => void) | undefined;\n const defaultHook = _usePT(getPT(passthroughValue, undefined, name), getKeyValue, `hooks.${hookName}`) as (() => void) | undefined;\n\n selfHook?.();\n defaultHook?.();\n },\n [props.pt, name, _usePT, passthroughValue]\n );\n\n // computed values\n const $globalPT = React.useMemo(() => getPT(passthroughValue, undefined, name, (value) => resolve(value, instance)), [passthroughValue, name]);\n const $defaultPT = React.useMemo(() => getPT(passthroughValue, undefined, name, (value) => getKeyValue(value as Record<string, unknown>, name, instance) || resolve(value, instance)), [passthroughValue, name]);\n\n const $attrsPT = React.useMemo(() => {\n return Object.entries(attrs || {})\n .filter(([key]) => key?.startsWith('pt-'))\n .reduce<Record<string, unknown>>((result, [key, value]) => {\n const [, slot, ...rest] = key.split('-');\n\n [slot, rest?.join('-')].filter(Boolean).reduce((currentObj, nestedKey, index, array) => {\n if (!currentObj[nestedKey]) {\n currentObj[nestedKey] = index === array.length - 1 ? value : {};\n }\n\n return currentObj[nestedKey] as Record<string, unknown>;\n }, result);\n\n return result;\n }, {});\n }, [attrs]);\n\n const $attrsWithoutPT = React.useMemo(() => {\n return Object.entries(attrs || {})\n .filter(([key]) => !key?.startsWith('pt-'))\n .reduce<Record<string, unknown>>((acc, [key, value]) => {\n acc[key] = value;\n\n return acc;\n }, {});\n }, [attrs]);\n\n const _getPTDatasets = React.useCallback(\n (key = '') => {\n const datasetPrefix = 'data-';\n const isExtended = key === 'root' && isNotEmpty(attrs?.['data-scope']);\n\n return isExtended\n ? {\n [`${datasetPrefix}extend`]: scope,\n [`${datasetPrefix}styled`]: scope\n }\n : {\n [`${datasetPrefix}scope`]: scope,\n ...(key === 'root' && {\n [`${datasetPrefix}part`]: part,\n [`${datasetPrefix}id`]: $attrSelector,\n [`${datasetPrefix}styled`]: scope\n }),\n [`${datasetPrefix}slot`]: key\n };\n },\n [scope, part, $attrSelector, attrs]\n );\n\n const _getPTSelf = React.useCallback(\n <Fn>(obj: Record<string, unknown> = {}, fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n const componentPT = _usePT(getPT(obj, name, name), fn, key, params) as Record<PropertyKey, unknown> | undefined;\n const attrsPT = _usePT($attrsPT, fn, key, params) as Record<PropertyKey, unknown> | undefined;\n\n return mergeProps(\n true,\n componentPT ?? {}, // Exp; <PRComponent pt={{ [passthrough_key]: { [attribute]: value } }}>\n attrsPT ?? {} // Exp; <PRComponent pt:[passthrough_key]:[attribute]={value}> or <PRComponent pt:[passthrough_key]={() =>{value}}>\n );\n },\n [$attrsPT, _usePT, name]\n );\n\n const _useGlobalPT = React.useCallback(\n <Fn>(fn: Fn, key: string = '', params?: Record<string, unknown>) => {\n return _usePT($globalPT, fn, key, params);\n },\n [$globalPT, _usePT]\n );\n\n const _useDefaultPT = React.useCallback(\n <Fn>(fn: Fn, key: string, params?: Record<string, unknown>) => {\n return _usePT($defaultPT, fn, key, params);\n },\n [$defaultPT, _usePT]\n );\n\n const _getPTValue = React.useCallback(\n (obj = {}, key = '', params: Record<string, unknown> = {}, searchInDefaultPT = true) => {\n const searchOut = key.includes('.') && !!params[key.split('.')[0]];\n const { mergeSections = true, mergeProps: useMergeProps = false } = props?.ptOptions || passthroughOptions || {};\n const global = searchInDefaultPT ? (searchOut ? _useGlobalPT(getPTClassValue, key, params) : _useDefaultPT(getPTClassValue, key, params)) : undefined;\n const self = searchOut ? undefined : _getPTSelf(obj, getPTClassValue, key, { ...params, global: global || {} });\n const datasets = _getPTDatasets(key);\n\n return mergeSections || (!mergeSections && self) ? mergeProps(useMergeProps, global, self, datasets) : { ...self, ...datasets };\n },\n [props.ptOptions, _useGlobalPT, _useDefaultPT, _getPTSelf, _getPTDatasets]\n );\n\n // exposed methods\n const ptm = React.useCallback(\n (key = '', params: Record<string, unknown> | undefined = {}) => {\n return _getPTValue(props.pt, key, { ...$params, ...params }) as Record<string, unknown>;\n },\n [props.pt, $params, _getPTValue]\n );\n\n const ptmi = React.useCallback(\n (key = '', params: Record<string, unknown> | undefined = {}) => {\n const _attrs = primeuix_mergeProps($attrsWithoutPT, ptm(key, params)) as Record<string, unknown>;\n\n if (_attrs && Object.hasOwn(_attrs, 'id')) {\n _attrs.id ??= id;\n }\n\n return _attrs as Record<string, unknown>;\n },\n [ptm, id, $attrsWithoutPT]\n );\n\n const ptmo = React.useCallback(\n (obj: Record<string, unknown> = {}, key = '', params: Record<string, unknown> | undefined = {}) => {\n return _getPTValue(obj, key, { ...$params, ...params }, false) as Record<string, unknown>;\n },\n [$params, _getPTValue]\n );\n\n // hooks\n useMountEffect(() => _hook('onMounted'));\n useUpdateEffect(() => _hook('onUpdated'));\n useUnmountEffect(() => _hook('onUnmounted'));\n\n return React.useMemo(\n () => ({\n ptm,\n ptmi,\n ptmo\n }),\n [ptm, ptmi, ptmo]\n );\n}\n","import { mergeProps as primeuix_mergeProps } from '@primeuix/utils/mergeprops';\nimport { getKeyValue, isArray, isFunction, isString, toFlatCase } from '@primeuix/utils/object';\n\n/**\n * Merges props based on the merge function or merge flag.\n */\nexport function mergeProps<T extends unknown[], R = Record<PropertyKey, unknown>>(fn: ((...args: T) => R | undefined) | boolean, ...args: T): R {\n return (isFunction(fn) ? fn(...args) : fn ? primeuix_mergeProps(...args) : Object.assign({}, ...args)) as R;\n}\n\n/**\n * Resolves a PT class value — wraps string/array values in { className }.\n */\nexport function getPTClassValue(obj: Record<string, unknown> = {}, key = '', params?: Record<string, unknown>) {\n const value = getKeyValue(obj, key, params);\n\n return isString(value) || isArray(value) ? { className: value } : value;\n}\n\n/**\n * Extracts pass-through value for a given component name from the PT object.\n */\nexport function getPT<Fn extends (...args: unknown[]) => unknown>(pt: Record<string, unknown> | undefined, key: string | undefined, name: string | undefined, fn?: Fn) {\n const getValue = (value: unknown, checkSameKey = false) => {\n const computedValue = (fn ? fn(value) : value) as Record<string, unknown>;\n const _key = toFlatCase(key ?? '');\n const _cKey = toFlatCase(name ?? '');\n\n return ((checkSameKey ? (_key !== _cKey ? computedValue?.[_key] : undefined) : computedValue?.[_key]) ?? computedValue) as Record<string, unknown>;\n };\n\n return pt && Object.hasOwn(pt, '_usept')\n ? {\n _usept: pt['_usept'],\n originalValue: getValue(pt.originalValue),\n value: getValue(pt.value)\n }\n : getValue(pt, true);\n}\n","import { deepMerge } from '@primeuix/utils/object';\n\nexport default function definePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n return deepMerge(...presets) as T;\n}\n","import { deepMerge } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport default function updatePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n const newPreset = deepMerge(Theme.getPreset(), ...presets);\n\n Theme.setPreset(newPreset);\n\n return newPreset as T;\n}\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nconst ThemeService = EventBus();\n\nexport default ThemeService;\n","import { getKeyValue, isArray, isNotEmpty, isNumber, isObject, isString, matchRegex, toKebabCase } from '@primeuix/utils/object';\n\nexport const EXPR_REGEX = /{([^}]*)}/g; // Exp: '{a}', '{a.b}', '{a.b.c}' etc.\nexport const CALC_REGEX = /(\\d+\\s+[\\+\\-\\*\\/]\\s+\\d+)/g;\nexport const VAR_REGEX = /var\\([^)]+\\)/g;\n\nexport function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c: string, i: number) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n\nexport function merge(value1: any, value2: any): void {\n if (isArray(value1)) {\n value1.push(...(value2 || []));\n } else if (isObject(value1)) {\n Object.assign(value1, value2);\n }\n}\n\nexport function toValue(value: any): any {\n // Check for Figma ($value-$type)\n return isObject(value) && value.hasOwnProperty('$value') && value.hasOwnProperty('$type') ? (value as any).$value : value;\n}\n\nexport function toUnit(value: string, variable: string = ''): string {\n const excludedProperties = ['opacity', 'z-index', 'line-height', 'font-weight', 'flex', 'flex-grow', 'flex-shrink', 'order'];\n\n if (!excludedProperties.some((property) => variable.endsWith(property))) {\n const val = `${value}`.trim();\n const valArr = val.split(' ');\n\n return valArr.map((v) => (isNumber(v) ? `${v}px` : v)).join(' ');\n }\n\n return value;\n}\n\nexport function toNormalizePrefix(prefix: string): string {\n return prefix.replaceAll(/ /g, '').replace(/[^\\w]/g, '-');\n}\n\nexport function toNormalizeVariable(prefix: string = '', variable: string = ''): string {\n return toNormalizePrefix(`${isString(prefix, false) && isString(variable, false) ? `${prefix}-` : prefix}${variable}`);\n}\n\nexport function getVariableName(prefix: string = '', variable: string = ''): string {\n return `--${toNormalizeVariable(prefix, variable)}`;\n}\n\nexport function hasOddBraces(str: string = ''): boolean {\n const openBraces = (str.match(/{/g) || []).length;\n const closeBraces = (str.match(/}/g) || []).length;\n\n return (openBraces + closeBraces) % 2 !== 0;\n}\n\nexport function getVariableValue(value: any, variable: string = '', prefix: string = '', excludedKeyRegexes: RegExp[] = [], fallback?: string): string | undefined {\n if (isString(value)) {\n const val = value.trim();\n\n if (hasOddBraces(val)) {\n return undefined;\n } else if (matchRegex(val, EXPR_REGEX)) {\n const _val = val.replaceAll(EXPR_REGEX, (v: string) => {\n const path = v.replace(/{|}/g, '');\n const keys = path.split('.').filter((_v: string) => !excludedKeyRegexes.some((_r) => matchRegex(_v, _r)));\n\n return `var(${getVariableName(prefix, toKebabCase(keys.join('-')))}${isNotEmpty(fallback) ? `, ${fallback}` : ''})`;\n });\n\n return matchRegex(_val.replace(VAR_REGEX, '0'), CALC_REGEX) ? `calc(${_val})` : _val;\n }\n\n return val; //toUnit(val, variable);\n } else if (isNumber(value)) {\n return value; //toUnit(value, variable);\n }\n\n return undefined;\n}\n\nexport function getComputedValue(obj = {}, value: any): any {\n if (isString(value)) {\n const val = value.trim();\n\n return matchRegex(val, EXPR_REGEX) ? val.replaceAll(EXPR_REGEX, (v: string) => getKeyValue(obj, v.replace(/{|}/g, '')) as string) : val;\n } else if (isNumber(value)) {\n return value;\n }\n\n return undefined;\n}\n\nexport function setProperty(properties: string[], key: string, value?: string) {\n if (isString(key, false)) {\n properties.push(`${key}:${value};`);\n }\n}\n\nexport function getRule(selector: string, properties: string): string {\n if (selector) {\n return `${selector}{${properties}}`;\n }\n\n return '';\n}\n\nexport function evaluateDtExpressions(input: string, fn: (...args: any[]) => string): string {\n if (input.indexOf('dt(') === -1) return input;\n\n function fastParseArgs(str: string, fn: (...args: (string | number)[]) => string): (string | number)[] {\n const args: (string | number)[] = [];\n let i = 0;\n let current = '';\n let quote: string | null = null;\n let depth = 0;\n\n while (i <= str.length) {\n const c = str[i];\n\n if ((c === '\"' || c === \"'\" || c === '`') && str[i - 1] !== '\\\\') {\n quote = quote === c ? null : c;\n }\n\n if (!quote) {\n if (c === '(') depth++;\n if (c === ')') depth--;\n\n if ((c === ',' || i === str.length) && depth === 0) {\n const arg = current.trim();\n\n if (arg.startsWith('dt(')) {\n args.push(evaluateDtExpressions(arg, fn));\n } else {\n args.push(parseArg(arg));\n }\n\n current = '';\n i++;\n continue;\n }\n }\n\n if (c !== undefined) current += c;\n i++;\n }\n\n return args;\n }\n\n function parseArg(arg: string): string | number {\n const q = arg[0];\n\n if ((q === '\"' || q === \"'\" || q === '`') && arg[arg.length - 1] === q) {\n return arg.slice(1, -1);\n }\n\n const num = Number(arg);\n\n return isNaN(num) ? arg : num;\n }\n\n const indices: [number, number][] = [];\n const stack: number[] = [];\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === 'd' && input.slice(i, i + 3) === 'dt(') {\n stack.push(i);\n i += 2;\n } else if (input[i] === ')' && stack.length > 0) {\n const start = stack.pop()!;\n\n if (stack.length === 0) {\n indices.push([start, i]);\n }\n }\n }\n\n if (!indices.length) return input;\n\n for (let i = indices.length - 1; i >= 0; i--) {\n const [start, end] = indices[i];\n const inner = input.slice(start + 3, end);\n const args = fastParseArgs(inner, fn);\n const resolved = fn(...args);\n\n input = input.slice(0, start) + resolved + input.slice(end + 1);\n }\n\n return input;\n}\n","import { isEmpty, isNotEmpty, isObject, matchRegex, minifyCSS, resolve } from '@primeuix/utils/object';\nimport { dt, toVariables } from '../helpers/index';\nimport { CALC_REGEX, EXPR_REGEX, getRule, toTokenKey, VAR_REGEX } from './sharedUtils';\n\nexport default {\n regex: {\n rules: {\n class: {\n pattern: /^\\.([a-zA-Z][\\w-]*)$/,\n resolve(value: string) {\n return { type: 'class', selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n attr: {\n pattern: /^\\[(.*)\\]$/,\n resolve(value: string) {\n return { type: 'attr', selector: `:root${value},:host${value}`, matched: this.pattern.test(value.trim()) };\n }\n },\n media: {\n pattern: /^@media (.*)$/,\n resolve(value: string) {\n return { type: 'media', selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n system: {\n pattern: /^system$/,\n resolve(value: string) {\n return { type: 'system', selector: '@media (prefers-color-scheme: dark)', matched: this.pattern.test(value.trim()) };\n }\n },\n custom: {\n resolve(value: string) {\n return { type: 'custom', selector: value, matched: true };\n }\n }\n },\n resolve(value: any) {\n const rules = Object.keys(this.rules)\n .filter((k) => k !== 'custom')\n .map((r) => (this.rules as any)[r]);\n\n return [value].flat().map((v) => rules.map((r) => r.resolve(v)).find((rr) => rr.matched) ?? this.rules.custom.resolve(v));\n }\n },\n _toVariables(theme: any, options: any) {\n return toVariables(theme, { prefix: options?.prefix });\n },\n getCommon({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n let primitive_css, primitive_tokens, semantic_css, semantic_tokens, global_css, global_tokens, style;\n\n // @todo - check if options is not empty\n // Note: primitive + semantic variables are emitted even when `cssVariables: false`\n // (only component variables are skipped — see getPreset).\n if (isNotEmpty(preset)) {\n const { primitive, semantic, extend } = preset;\n const { colorScheme, ...sRest } = semantic || {};\n const { colorScheme: eColorScheme, ...eRest } = extend || {};\n const { dark, ...csRest } = colorScheme || {};\n const { dark: eDark, ...ecsRest } = eColorScheme || {};\n const prim_var: any = isNotEmpty(primitive) ? this._toVariables({ primitive }, options) : {};\n const sRest_var: any = isNotEmpty(sRest) ? this._toVariables({ semantic: sRest }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ light: csRest }, options) : {};\n const csDark_var: any = isNotEmpty(dark) ? this._toVariables({ dark }, options) : {};\n const eRest_var: any = isNotEmpty(eRest) ? this._toVariables({ semantic: eRest }, options) : {};\n const ecsRest_var: any = isNotEmpty(ecsRest) ? this._toVariables({ light: ecsRest }, options) : {};\n const ecsDark_var: any = isNotEmpty(eDark) ? this._toVariables({ dark: eDark }, options) : {};\n\n const [prim_css, prim_tokens] = [prim_var.declarations ?? '', prim_var.tokens];\n const [sRest_css, sRest_tokens] = [sRest_var.declarations ?? '', sRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [csDark_css, csDark_tokens] = [csDark_var.declarations ?? '', csDark_var.tokens || []];\n const [eRest_css, eRest_tokens] = [eRest_var.declarations ?? '', eRest_var.tokens || []];\n const [ecsRest_css, ecsRest_tokens] = [ecsRest_var.declarations ?? '', ecsRest_var.tokens || []];\n const [ecsDark_css, ecsDark_tokens] = [ecsDark_var.declarations ?? '', ecsDark_var.tokens || []];\n\n primitive_css = this.transformCSS(name, prim_css, 'light', 'variable', options, set, defaults);\n primitive_tokens = prim_tokens;\n\n const semantic_light_css = this.transformCSS(name, `${sRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults);\n const semantic_dark_css = this.transformCSS(name, `${csDark_css}`, 'dark', 'variable', options, set, defaults);\n\n semantic_css = `${semantic_light_css}${semantic_dark_css}`;\n semantic_tokens = [...new Set([...sRest_tokens, ...csRest_tokens, ...csDark_tokens])];\n\n const global_light_css = this.transformCSS(name, `${eRest_css}${ecsRest_css}color-scheme:light`, 'light', 'variable', options, set, defaults);\n const global_dark_css = this.transformCSS(name, `${ecsDark_css}color-scheme:dark`, 'dark', 'variable', options, set, defaults);\n\n global_css = `${global_light_css}${global_dark_css}`;\n global_tokens = [...new Set([...eRest_tokens, ...ecsRest_tokens, ...ecsDark_tokens])];\n\n style = resolve(preset.css, { dt }) as string;\n }\n\n return {\n primitive: {\n css: primitive_css,\n tokens: primitive_tokens\n },\n semantic: {\n css: semantic_css,\n tokens: semantic_tokens\n },\n global: {\n css: global_css,\n tokens: global_tokens\n },\n style\n };\n },\n getPreset({ name = '', preset = {}, options, params, set, defaults, selector }: any) {\n let p_css, p_tokens, p_style;\n\n if (isNotEmpty(preset) && (options.cssVariables ?? true)) {\n const _name = name.replace('-directive', '');\n const { colorScheme, extend, css, ...vRest } = preset;\n const { colorScheme: eColorScheme, ...evRest } = extend || {};\n const { dark, ...csRest } = colorScheme || {};\n const { dark: ecsDark, ...ecsRest } = eColorScheme || {};\n const vRest_var: any = isNotEmpty(vRest) ? this._toVariables({ [_name]: { ...vRest, ...evRest } }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ [_name]: { ...csRest, ...ecsRest } }, options) : {};\n const csDark_var: any = isNotEmpty(dark) ? this._toVariables({ [_name]: { ...dark, ...ecsDark } }, options) : {};\n\n const [vRest_css, vRest_tokens] = [vRest_var.declarations ?? '', vRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [csDark_css, csDark_tokens] = [csDark_var.declarations ?? '', csDark_var.tokens || []];\n\n const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults, selector);\n const dark_variable_css = this.transformCSS(_name, csDark_css, 'dark', 'variable', options, set, defaults, selector);\n\n p_css = `${light_variable_css}${dark_variable_css}`;\n p_tokens = [...new Set([...vRest_tokens, ...csRest_tokens, ...csDark_tokens])];\n\n p_style = resolve(css, { dt }) as string;\n }\n\n return {\n css: p_css,\n tokens: p_tokens,\n style: p_style\n };\n },\n getScopedSelector(name: string, options: any) {\n if (!options?.scoped || !name) return undefined;\n\n return `[data-styled=\"${name}\"]`;\n },\n getPresetC({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n const cPreset = preset?.components?.[name];\n const selector = this.getScopedSelector(name, options);\n\n return this.getPreset({ name, preset: cPreset, options, params, set, defaults, selector });\n },\n // @deprecated - use getPresetC instead\n getPresetD({ name = '', theme = {}, params, set, defaults }: any) {\n const dName = name.replace('-directive', '');\n const { preset, options } = theme;\n const dPreset = preset?.components?.[dName] || preset?.directives?.[dName];\n const selector = this.getScopedSelector(dName, options);\n\n return this.getPreset({ name: dName, preset: dPreset, options, params, set, defaults, selector });\n },\n applyDarkColorScheme(options: any) {\n return !(options.darkModeSelector === 'none' || options.darkModeSelector === false);\n },\n getColorSchemeOption(options: any, defaults: any) {\n return this.applyDarkColorScheme(options) ? this.regex.resolve(options.darkModeSelector === true ? defaults.options.darkModeSelector : (options.darkModeSelector ?? defaults.options.darkModeSelector)) : [];\n },\n getLayerOrder(name: string, options: any = {}, params: any, defaults: any) {\n const { cssLayer } = options;\n\n if (cssLayer) {\n const order = resolve(cssLayer.order || cssLayer.name || 'primeui', params);\n\n return `@layer ${order}`;\n }\n\n return '';\n },\n getCommonStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const common = this.getCommon({ name, theme, params, set, defaults });\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return Object.entries(common || {})\n .reduce((acc: any, [key, value]) => {\n if (isObject(value) && Object.hasOwn(value, 'css')) {\n const _css = minifyCSS((value as any).css);\n const id = `${key}-variables`;\n\n acc.push(`<style type=\"text/css\" data-primevue-style-id=\"${id}\" ${_props}>${_css}</style>`); // @todo data-primevue -> data-primeui check in primevue usestyle\n }\n\n return acc;\n }, [])\n .join('');\n },\n getStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const options = { name, theme, params, set, defaults };\n const preset_css = (name.includes('-directive') ? this.getPresetD(options) : this.getPresetC(options))?.css;\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return preset_css ? `<style type=\"text/css\" data-primevue-style-id=\"${name}-variables\" ${_props}>${minifyCSS(preset_css)}</style>` : ''; // @todo check\n },\n createTokens(obj: any = {}, defaults: any, parentKey: string = '', parentPath: string = '', tokens: any = {}) {\n const resolveExpr = function (this: any, val: string, scheme: string, tokenPathMap: any, stack: string[]): string {\n return val.replace(EXPR_REGEX, (v: string) => {\n const refPath = v.slice(1, -1);\n const refToken = this.tokens[refPath];\n\n if (!refToken) {\n console.warn(`Token not found for path: ${refPath}`);\n\n return `__UNRESOLVED__`;\n }\n\n const computed = refToken.computed(scheme, tokenPathMap, stack);\n\n if (Array.isArray(computed) && computed.length === 2) {\n const lightV = computed[0].value;\n const darkV = computed[1].value;\n\n return lightV === darkV ? (lightV ?? `__UNRESOLVED__`) : `light-dark(${lightV},${darkV})`;\n }\n\n return computed?.value ?? `__UNRESOLVED__`;\n });\n };\n\n const resolveLightDarkLiterals = function (this: any, val: string, scheme: string, tokenPathMap: any, stack: string[]): string {\n if (val.indexOf('light-dark(') === -1) return val;\n\n const out: string[] = [];\n const len = val.length;\n let i = 0;\n\n while (i < len) {\n const ld = val.indexOf('light-dark(', i);\n\n if (ld === -1) {\n out.push(val.slice(i));\n break;\n }\n\n out.push(val.slice(i, ld));\n\n let depth = 1;\n let j = ld + 11;\n let commaAt = -1;\n\n while (j < len && depth > 0) {\n const c = val.charCodeAt(j);\n\n if (c === 40) depth++;\n else if (c === 41) depth--;\n else if (c === 44 && depth === 1 && commaAt === -1) commaAt = j;\n j++;\n }\n\n if (depth !== 0 || commaAt === -1) {\n out.push(val.slice(ld));\n break;\n }\n\n const lightArg = val.slice(ld + 11, commaAt).trim();\n const darkArg = val.slice(commaAt + 1, j - 1).trim();\n const targetScheme = scheme && scheme !== 'none' ? scheme : null;\n\n if (targetScheme === 'light') {\n out.push(resolveLightDarkLiterals.call(this, lightArg, 'light', tokenPathMap, stack));\n } else if (targetScheme === 'dark') {\n out.push(resolveLightDarkLiterals.call(this, darkArg, 'dark', tokenPathMap, stack));\n } else {\n const l = resolveExpr.call(this, resolveLightDarkLiterals.call(this, lightArg, 'light', tokenPathMap, stack), 'light', tokenPathMap, stack);\n const d = resolveExpr.call(this, resolveLightDarkLiterals.call(this, darkArg, 'dark', tokenPathMap, stack), 'dark', tokenPathMap, stack);\n\n out.push(l === d ? l : `light-dark(${l},${d})`);\n }\n\n i = j;\n }\n\n return out.join('');\n };\n\n const computedFn = function (this: any, colorScheme: string, tokenPathMap: any = {}, stack: string[] = []) {\n if (stack.includes(this.path)) {\n console.warn(`Circular reference detected at ${this.path}`);\n\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: undefined\n };\n }\n\n stack.push(this.path);\n tokenPathMap['name'] = this.path;\n tokenPathMap['binding'] ||= {};\n\n let computedValue: any = this.value;\n\n if (typeof this.value === 'string') {\n const val = this.value.trim();\n const hasLightDark = val.indexOf('light-dark(') !== -1;\n const hasExpr = val.indexOf('{') !== -1;\n\n if (hasLightDark || hasExpr) {\n const afterLD = hasLightDark ? resolveLightDarkLiterals.call(this, val, colorScheme, tokenPathMap, stack) : val;\n const _val = afterLD.indexOf('{') !== -1 ? resolveExpr.call(this, afterLD, colorScheme, tokenPathMap, stack) : afterLD;\n\n CALC_REGEX.lastIndex = 0;\n VAR_REGEX.lastIndex = 0;\n computedValue = CALC_REGEX.test(_val.replace(VAR_REGEX, '0')) ? `calc(${_val})` : _val;\n }\n }\n\n if (isEmpty(tokenPathMap['binding'])) {\n delete tokenPathMap['binding'];\n }\n\n stack.pop();\n\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: typeof computedValue === 'string' && computedValue.indexOf('__UNRESOLVED__') !== -1 ? undefined : computedValue\n };\n };\n\n const traverse = (obj: any, parentKey: string, parentPath: string) => {\n Object.entries(obj).forEach(([key, value]) => {\n const currentKey = matchRegex(key, defaults.variable.excludedKeyRegex) ? parentKey : parentKey ? `${parentKey}.${toTokenKey(key)}` : toTokenKey(key);\n\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n\n if (isObject(value)) {\n traverse(value, currentKey, currentPath);\n } else {\n if (!tokens[currentKey]) {\n tokens[currentKey] = {\n paths: [],\n computed: (colorScheme: string, tokenPathMap: any = {}, stack: string[] = []) => {\n const paths = tokens[currentKey].paths;\n\n if (paths.length === 1) {\n const only = paths[0];\n const effectiveScheme = only.scheme !== 'none' ? only.scheme : colorScheme;\n\n return only.computed(effectiveScheme, tokenPathMap['binding'], stack);\n } else if (colorScheme && colorScheme !== 'none') {\n for (let i = 0; i < paths.length; i++) {\n const p = paths[i];\n\n if (p.scheme === colorScheme) {\n return p.computed(colorScheme, tokenPathMap['binding'], stack);\n }\n }\n }\n\n return paths.map((p: any) => p.computed(p.scheme, tokenPathMap[p.scheme], stack));\n }\n };\n }\n\n tokens[currentKey].paths.push({\n path: currentPath,\n value,\n scheme: currentPath.includes('colorScheme.light') ? 'light' : currentPath.includes('colorScheme.dark') ? 'dark' : 'none',\n computed: computedFn,\n tokens\n });\n }\n });\n };\n\n traverse(obj, parentKey, parentPath);\n\n return tokens;\n },\n getTokenValue(tokens: any, path: string, defaults: any) {\n let cache = tokens.__cache;\n\n if (!cache) {\n cache = new Map();\n Object.defineProperty(tokens, '__cache', { value: cache, enumerable: false, configurable: true });\n }\n\n const cached = cache.get(path);\n\n if (cached !== undefined || cache.has(path)) return cached;\n\n const excludedRegex = defaults.variable.excludedKeyRegex;\n const segs = path.split('.');\n const filtered = [];\n\n for (let i = 0; i < segs.length; i++) {\n const s = segs[i];\n\n excludedRegex.lastIndex = 0;\n if (!excludedRegex.test(s.toLowerCase())) filtered.push(s);\n }\n\n const token = filtered.join('.');\n const explicitScheme = path.indexOf('colorScheme.light') !== -1 ? 'light' : path.indexOf('colorScheme.dark') !== -1 ? 'dark' : undefined;\n const entry = tokens[token];\n\n if (!entry) {\n cache.set(path, undefined);\n\n return undefined;\n }\n\n let result: any;\n\n if (explicitScheme) {\n const computed = entry.computed(explicitScheme);\n\n if (Array.isArray(computed)) {\n for (let i = 0; i < computed.length; i++) {\n if (computed[i]?.colorScheme === explicitScheme) {\n result = computed[i].value;\n break;\n }\n }\n } else {\n result = computed?.value;\n }\n } else {\n const lightComputed = entry.computed('light');\n const darkComputed = entry.computed('dark');\n let lightVal: any;\n let darkVal: any;\n\n if (Array.isArray(lightComputed)) {\n for (let i = 0; i < lightComputed.length; i++) {\n if (lightComputed[i]?.colorScheme === 'light') {\n lightVal = lightComputed[i].value;\n break;\n }\n }\n } else {\n lightVal = lightComputed?.value;\n }\n\n if (Array.isArray(darkComputed)) {\n for (let i = 0; i < darkComputed.length; i++) {\n if (darkComputed[i]?.colorScheme === 'dark') {\n darkVal = darkComputed[i].value;\n break;\n }\n }\n } else {\n darkVal = darkComputed?.value;\n }\n\n if (lightVal === undefined && darkVal === undefined) result = undefined;\n else if (lightVal === undefined) result = darkVal;\n else if (darkVal === undefined) result = lightVal;\n else if (lightVal === darkVal) result = lightVal;\n else result = `light-dark(${lightVal},${darkVal})`;\n }\n\n cache.set(path, result);\n\n return result;\n },\n getSelectorRule(selector1: any, selector2: any, type: string, css: string, globalSelector: string = ':root,:host') {\n return type === 'class' || type === 'attr' ? getRule(isNotEmpty(selector2) ? `${selector1}${selector2},${selector1} ${selector2}` : selector1, css) : getRule(selector1, getRule(selector2 ?? globalSelector, css));\n },\n transformCSS(name: string, css: string, mode?: string, type?: string, options: any = {}, set?: any, defaults?: any, selector?: string) {\n if (isNotEmpty(css)) {\n const { cssLayer } = options;\n\n if (type !== 'style') {\n const colorSchemeOption = this.getColorSchemeOption(options, defaults);\n const globalSelector = defaults?.variable?.selector ?? ':root,:host';\n\n css =\n mode === 'dark'\n ? colorSchemeOption.reduce((acc, { type, selector: _selector }) => {\n if (isNotEmpty(_selector)) {\n acc += _selector.includes('[CSS]') ? _selector.replace('[CSS]', css) : this.getSelectorRule(_selector, selector, type, css, globalSelector);\n }\n\n return acc;\n }, '')\n : getRule(selector ?? globalSelector, css);\n }\n\n if (cssLayer) {\n const layerOptions = {\n name: 'primeui',\n order: 'primeui'\n };\n\n isObject(cssLayer) && (layerOptions.name = resolve((cssLayer as any).name, { name, type }));\n\n if (isNotEmpty(layerOptions.name)) {\n css = getRule(`@layer ${layerOptions.name}`, css);\n set?.layerNames(layerOptions.name);\n }\n }\n\n return css;\n }\n\n return '';\n }\n};\n","function normalizeColor(color: string): string {\n if (color.length === 4) {\n return `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n }\n\n return color;\n}\n\nfunction hexToRgb(hex: string) {\n const bigint = parseInt(hex.substring(1), 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return { r, g, b };\n}\n\nfunction rgbToHex(r: number, g: number, b: number) {\n return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n}\n\nexport default (color1: string, color2: string, weight: number): string => {\n color1 = normalizeColor(color1);\n color2 = normalizeColor(color2);\n\n const p = weight / 100;\n const w = p * 2 - 1;\n const w1 = (w + 1) / 2.0;\n const w2 = 1 - w1;\n\n const rgb1 = hexToRgb(color1);\n const rgb2 = hexToRgb(color2);\n\n const r = Math.round(rgb1.r * w1 + rgb2.r * w2);\n const g = Math.round(rgb1.g * w1 + rgb2.g * w2);\n const b = Math.round(rgb1.b * w1 + rgb2.b * w2);\n\n return rgbToHex(r, g, b);\n};\n","import { matchRegex } from '@primeuix/utils';\nimport type { ColorScale } from '../..';\nimport { EXPR_REGEX } from '../../utils/index';\nimport shade from './shade';\nimport tint from './tint';\n\nconst scales: number[] = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\nexport default (color: string): string | ColorScale => {\n if (matchRegex(color, EXPR_REGEX)) {\n const token = color.replace(/{|}/g, '');\n\n return scales.reduce<ColorScale>((acc, scale) => {\n acc[scale as keyof ColorScale] = `{${token}.${scale}}`;\n\n return acc;\n }, {});\n }\n\n return typeof color === 'string'\n ? scales.reduce<ColorScale>((acc, scale, i) => {\n acc[scale as keyof ColorScale] = i <= 5 ? tint(color, (5 - i) * 19) : shade(color, (i - 5) * 15);\n\n return acc;\n }, {})\n : color;\n};\n","import mix from './mix';\n\nexport default (color: string, percent: number) => mix('#000000', color, percent);\n","import mix from './mix';\n\nexport default (color: string, percent: number) => mix('#ffffff', color, percent);\n","import { resolve } from '@primeuix/utils';\nimport { evaluateDtExpressions, type StyleType } from '..';\nimport { dt } from './dt';\n\nexport function css(strings: TemplateStringsArray | StyleType, ...exprs: unknown[]): string | undefined {\n if (strings instanceof Array) {\n const raw = strings.reduce((acc, str, i) => acc + str + (resolve(exprs[i], { dt }) ?? ''), '');\n\n return evaluateDtExpressions(raw, dt);\n }\n\n return resolve(strings as unknown, { dt }) as string | undefined;\n}\n","import { isEmpty, matchRegex } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { EXPR_REGEX, getVariableValue, toTokenKey } from '../utils/index';\n\nconst normalizeTokenPath = (tokenPath: string, excludedRegex: RegExp): string => {\n const segs = tokenPath.split('.');\n let token = '';\n\n for (let i = 0; i < segs.length; i++) {\n const seg = toTokenKey(segs[i]);\n\n excludedRegex.lastIndex = 0;\n if (excludedRegex.test(seg)) continue;\n token = token ? `${token}.${seg}` : seg;\n }\n\n return token;\n};\n\nconst resolveStrictComponentValue = (tokenPath: string, prefix: string, excludedRegex: RegExp, fallback?: string): unknown => {\n const tokens = Theme.tokens as Record<string, any>;\n const token = normalizeTokenPath(tokenPath, excludedRegex);\n\n let cache = tokens.__strictCache;\n\n if (!cache) {\n cache = new Map();\n Object.defineProperty(tokens, '__strictCache', { value: cache, enumerable: false, configurable: true });\n }\n\n const cacheKey = fallback ? `${prefix}|${token}|${fallback}` : `${prefix}|${token}`;\n\n if (cache.has(cacheKey)) return cache.get(cacheKey);\n\n const raw = tokens[token]?.paths?.[0]?.value;\n let result: unknown;\n\n if (typeof raw !== 'string') {\n result = raw ?? Theme.getTokenValue(tokenPath);\n } else {\n EXPR_REGEX.lastIndex = 0;\n\n if (!EXPR_REGEX.test(raw)) {\n result = raw;\n } else {\n const selfRoot = token.slice(0, token.indexOf('.'));\n const resolved = raw.replace(EXPR_REGEX, (expr) => {\n const refPath = expr.slice(1, -1);\n const dot = refPath.indexOf('.');\n\n if ((dot === -1 ? refPath : refPath.slice(0, dot)) !== selfRoot) return expr;\n\n const literal = Theme.getTokenValue(refPath);\n\n return literal == null ? expr : `${literal}`;\n });\n\n result = getVariableValue(resolved, undefined, prefix, [excludedRegex], fallback);\n }\n }\n\n cache.set(cacheKey, result);\n\n return result;\n};\n\nexport const $dt = (tokenPath: string): { name: string; variable: string; value: unknown } => {\n const theme = Theme.getTheme();\n\n const variable = dtwt(theme, tokenPath, undefined, 'variable');\n const name = variable?.match(/--[\\w-]+/g)?.[0];\n const value = dtwt(theme, tokenPath, undefined, 'value');\n\n return {\n name,\n variable,\n value\n };\n};\n\nexport const dt = (...args: Parameters<typeof dtwt> extends [unknown, ...infer Rest] ? Rest : never) => {\n return dtwt(Theme.getTheme(), ...args);\n};\n\nexport const dtwt = (theme: any = {}, tokenPath: string, fallback?: string, type?: string) => {\n if (!tokenPath) return '';\n\n const VARIABLE = Theme.defaults?.variable;\n const prefix = theme?.options?.prefix ?? Theme.defaults?.options?.prefix;\n const cssVariables = theme?.options?.cssVariables ?? (Theme.defaults?.options as any)?.cssVariables ?? true;\n\n if (type === 'value') {\n return Theme.getTokenValue(tokenPath);\n }\n\n if (isEmpty(type) && !cssVariables) {\n return resolveStrictComponentValue(tokenPath, prefix, VARIABLE.excludedKeyRegex, fallback);\n }\n\n const token = matchRegex(tokenPath, EXPR_REGEX) ? tokenPath : `{${tokenPath}}`;\n\n return getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex], fallback);\n};\n","import { mergeKeys } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport const $t = (theme: any = {}) => {\n let { preset: _preset, options: _options } = theme;\n\n return {\n preset(value: any) {\n _preset = _preset ? mergeKeys(_preset, value) : value;\n\n return this;\n },\n options(value: any) {\n _options = _options ? { ..._options, ...value } : value;\n\n return this;\n },\n // features\n primaryPalette(primary: any) {\n const { semantic } = _preset || {};\n\n _preset = { ..._preset, semantic: { ...semantic, primary } };\n\n return this;\n },\n surfacePalette(surface: any) {\n const { semantic } = _preset || {};\n const lightSurface = surface && Object.hasOwn(surface, 'light') ? surface.light : surface;\n const darkSurface = surface && Object.hasOwn(surface, 'dark') ? surface.dark : surface;\n const newColorScheme = {\n colorScheme: {\n light: { ...semantic?.colorScheme?.light, ...(!!lightSurface && { surface: lightSurface }) },\n dark: { ...semantic?.colorScheme?.dark, ...(!!darkSurface && { surface: darkSurface }) }\n }\n };\n\n _preset = { ..._preset, semantic: { ...semantic, ...newColorScheme } };\n\n return this;\n },\n // actions\n define({ useDefaultPreset = false, useDefaultOptions = false } = {}) {\n return {\n preset: useDefaultPreset ? Theme.getPreset() : _preset,\n options: useDefaultOptions ? Theme.getOptions() : _options\n };\n },\n update({ mergePresets = true, mergeOptions = true } = {}) {\n const newTheme = {\n preset: mergePresets ? mergeKeys(Theme.getPreset(), _preset) : _preset,\n options: mergeOptions ? { ...Theme.getOptions(), ..._options } : _options\n };\n\n Theme.setTheme(newTheme);\n\n return newTheme;\n },\n use(options: any) {\n const newTheme = this.define(options);\n\n Theme.setTheme(newTheme);\n\n return newTheme;\n }\n };\n};\n","import { isObject, matchRegex, toKebabCase } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { getRule, getVariableName, getVariableValue, setProperty, toNormalizeVariable, toValue } from '../utils/index';\n\nexport interface toVariableOptions {\n prefix?: string;\n selector?: string;\n excludedKeyRegex?: RegExp;\n}\n\nexport interface toVariableOutput {\n value: string[];\n tokens: string[];\n declarations: string;\n css: string;\n}\n\nexport default function (theme: any, options: toVariableOptions = {}): toVariableOutput {\n const VARIABLE = Theme.defaults.variable;\n const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options;\n\n const tokens: string[] = [];\n const variables: string[] = [];\n\n const stack = [{ node: theme, path: prefix }];\n\n while (stack.length) {\n const { node, path } = stack.pop()!;\n\n for (const key in node) {\n const raw = node[key];\n const val = toValue(raw);\n\n const skipNormalize = matchRegex(key, excludedKeyRegex);\n const variablePath = skipNormalize ? toNormalizeVariable(path) : toNormalizeVariable(path, toKebabCase(key));\n\n if (isObject(val)) {\n stack.push({ node: val, path: variablePath });\n } else {\n const varName = getVariableName(variablePath);\n const varValue = getVariableValue(val, variablePath, prefix, [excludedKeyRegex]);\n\n setProperty(variables, varName, varValue);\n\n let token = variablePath;\n\n if (prefix && token.startsWith(prefix + '-')) {\n token = token.slice(prefix.length + 1);\n }\n\n tokens.push(token.replace(/-/g, '.'));\n }\n }\n }\n\n const declarations = variables.join('');\n\n return {\n value: variables,\n tokens,\n declarations,\n css: getRule(selector, declarations)\n };\n}\n","import ThemeService from '../service/index';\nimport { ThemeUtils } from '../utils/index';\n\nexport default {\n defaults: {\n variable: {\n prefix: 'p',\n selector: ':root,:host',\n excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states|extend|css)$/gi\n },\n options: {\n prefix: 'p',\n darkModeSelector: 'system',\n cssLayer: false,\n cssVariables: true,\n scoped: false\n }\n },\n _theme: undefined,\n _layerNames: new Set(),\n _loadedStyleNames: new Set(),\n _loadingStyles: new Set(),\n _tokens: {},\n update(newValues: any = {}) {\n const { theme } = newValues;\n\n if (theme) {\n this._theme = {\n ...theme,\n options: {\n ...this.defaults.options,\n ...theme.options\n }\n };\n this._tokens = ThemeUtils.createTokens(this.preset, this.defaults);\n this.clearLoadedStyleNames();\n }\n },\n get theme(): any {\n return this._theme;\n },\n get preset() {\n return this.theme?.preset || {};\n },\n get options() {\n return this.theme?.options || {};\n },\n get tokens() {\n return this._tokens;\n },\n getTheme() {\n return this.theme;\n },\n setTheme(newValue: any) {\n this.update({ theme: newValue });\n ThemeService.emit('theme:change', newValue);\n },\n getPreset() {\n return this.preset;\n },\n setPreset(newValue: any) {\n this._theme = { ...this.theme, preset: newValue };\n this._tokens = ThemeUtils.createTokens(newValue, this.defaults);\n\n this.clearLoadedStyleNames();\n ThemeService.emit('preset:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getOptions() {\n return this.options;\n },\n setOptions(newValue: any) {\n this._theme = { ...this.theme, options: newValue };\n\n this.clearLoadedStyleNames();\n ThemeService.emit('options:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getLayerNames() {\n return [...this._layerNames];\n },\n setLayerNames(layerName: any) {\n this._layerNames.add(layerName);\n },\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name: string) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name: string) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name: string) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n },\n getTokenValue(tokenPath: string) {\n return ThemeUtils.getTokenValue(this.tokens, tokenPath, this.defaults);\n },\n getCommon(name = '', params: any) {\n return ThemeUtils.getCommon({ name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getComponent(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetC(options);\n },\n // @deprecated - use getComponent instead\n getDirective(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetD(options);\n },\n getCustomPreset(name = '', preset: any, selector: string, params: any) {\n const options = { name, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPreset(options);\n },\n getLayerOrderCSS(name = '') {\n return ThemeUtils.getLayerOrder(name, this.options, { names: this.getLayerNames() }, this.defaults);\n },\n transformCSS(name = '', css: string, type: string = 'style', mode?: string) {\n return ThemeUtils.transformCSS(name, css, mode, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults);\n },\n getCommonStyleSheet(name = '', params: any, props = {}) {\n return ThemeUtils.getCommonStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getStyleSheet(name: string, params: any, props = {}) {\n return ThemeUtils.getStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n onStyleMounted(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleUpdated(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleLoaded(event: any, { name }: { name: any }) {\n if (this._loadingStyles.size) {\n this._loadingStyles.delete(name);\n\n ThemeService.emit(`theme:${name}:load`, event); // Exp: ThemeService.emit('theme:panel-style:load', event)\n !this._loadingStyles.size && ThemeService.emit('theme:load');\n }\n }\n};\n","import { $t } from '../helpers/index';\n\nexport default function updatePrimaryPalette<T = unknown, P = unknown>(palette?: T): P {\n return $t().primaryPalette(palette).update().preset as P;\n}\n","import { $t } from '../helpers/index';\n\nexport default function updateSurfacePalette<T = unknown, P = unknown>(palette?: T): P {\n return $t().surfacePalette(palette).update().preset as P;\n}\n","import { deepMerge } from '@primeuix/utils/object';\nimport Theme from '../config/index';\n\nexport default function usePreset<T extends Record<string, unknown>>(...presets: T[]): T {\n const newPreset = deepMerge(...presets);\n\n Theme.setPreset(newPreset);\n\n return newPreset as T;\n}\n","import { $t } from '../helpers/index';\n\nexport default function useTheme<T = unknown>(theme: T): T {\n return $t(theme).update({ mergePresets: false, mergeOptions: false }) as T;\n}\n","import { createStyleMarkup, isNotEmpty } from '@primeuix/utils';\n\nexport interface StyleSheetProps {\n attrs?: Record<string, unknown>;\n}\n\nexport interface StyleMeta<E = HTMLStyleElement> {\n name?: string;\n css?: string;\n attrs?: Record<string, unknown>;\n markup?: string;\n element?: E;\n}\n\nclass StyleSheet<E = HTMLStyleElement> {\n _styles: Map<string, StyleMeta<E>>;\n _attrs: Record<string, unknown>;\n constructor({ attrs }: StyleSheetProps = {}) {\n this._styles = new Map();\n this._attrs = attrs || {};\n }\n get(key: string) {\n return this._styles.get(key);\n }\n has(key: string) {\n return this._styles.has(key);\n }\n delete(key: string) {\n this._styles.delete(key);\n }\n clear() {\n this._styles.clear();\n }\n add(key: string, css?: string) {\n if (isNotEmpty(css)) {\n const meta = {\n name: key,\n css,\n attrs: this._attrs,\n markup: createStyleMarkup(css, this._attrs)\n } satisfies StyleMeta<E>;\n\n this._styles.set(key, {\n ...meta,\n element: this.createStyleElement(meta)\n });\n }\n }\n update() {\n // @todo\n }\n getStyles() {\n return this._styles;\n }\n getAllCSS() {\n return [...this._styles.values()].map((style) => style.css).filter(String);\n }\n getAllMarkup() {\n return [...this._styles.values()].map((style) => style.markup).filter(String);\n }\n getAllElements() {\n return [...this._styles.values()].map((style) => style.element);\n }\n /**\n * Used to create a style element.\n *\n * @param {StyleMeta} meta\n * @returns {HTMLStyleElement | undefined}\n */\n // eslint-disable-next-line\n createStyleElement(meta: StyleMeta = {}): E | undefined {\n return undefined;\n }\n}\n\nexport default StyleSheet;\n","import { isDev, StyleRegistry } from '@primereact/core/utils';\nimport type { GlobalComponentProps, Instance, useComponentStyleReturnType } from '@primereact/types/core';\nimport { Theme, ThemeService } from '@primeuix/styled';\nimport { cn, getKeyValue, isClient } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useComponentStyleHandler } from './useComponentStyleHandler';\n\n/**\n * A hook for managing component styles.\n *\n * @param instance The instance of the component.\n * @param styles The styles to apply to the component.\n * @param $params Additional parameters for the hook.\n * @returns An object containing the component styles.\n */\nexport function useComponentStyle<Props extends GlobalComponentProps, IProps, Styles, Params>(instance: Instance<Props, IProps>, styles?: Styles, $params?: Params): useComponentStyleReturnType {\n const { props = { unstyled: false, dt: undefined }, $primereact, $attrSelector, elementRef } = instance || {};\n const $style = useComponentStyleHandler(styles, elementRef as React.Ref<HTMLElement> | undefined);\n const $isUnstyled = React.useMemo(() => (props.unstyled !== undefined ? props.unstyled : $primereact?.config?.unstyled), [props.unstyled, $primereact?.config?.unstyled]);\n const $styleOptions = React.useMemo(() => ({ nonce: $primereact?.config?.csp?.nonce }), [$primereact?.config?.csp?.nonce]);\n\n // refs\n const scopedStyleRef = React.useRef<HTMLStyleElement | null>(null);\n const hasRetainedBaseStyleRef = React.useRef(false);\n const retainedComponentStyleNameRef = React.useRef<string | null>(null);\n const styleContentRef = React.useRef<string | null>(null);\n const stylesChangedRef = React.useRef(false);\n\n // Detect HMR in dev: compare the actual string content of the style template.\n // When the source CSS changes, bypass the loaded-style cache so the new CSS is re-injected.\n if (isDev) {\n const nextStyleSource = (styles as { style?: unknown } | undefined)?.style;\n const nextContent = typeof nextStyleSource === 'string' ? nextStyleSource : null;\n\n if (nextContent !== null && styleContentRef.current !== nextContent) {\n styleContentRef.current = nextContent;\n stylesChangedRef.current = true;\n }\n }\n\n // helpers\n const _loadCoreStyles = React.useCallback(() => {\n if (!$style?.name) {\n return;\n }\n\n const name = $style.name === 'global' ? 'base' : $style.name;\n\n if (!isClient()) {\n $style.loadCSS({ name, ...$styleOptions });\n\n return;\n }\n\n if (retainedComponentStyleNameRef.current && retainedComponentStyleNameRef.current !== $style.name) {\n StyleRegistry.releaseStyleName(retainedComponentStyleNameRef.current);\n retainedComponentStyleNameRef.current = null;\n }\n\n const hmr = stylesChangedRef.current;\n\n if (hmr || !retainedComponentStyleNameRef.current) {\n if (hmr || StyleRegistry.retainStyleName($style.name)) {\n $style.loadCSS({ name, ...$styleOptions });\n }\n\n retainedComponentStyleNameRef.current = $style.name;\n }\n }, [$style, $styleOptions]);\n\n const _loadThemeStyles = React.useCallback(() => {\n if ($isUnstyled || $primereact?.theme === 'none') return;\n\n const loadCommonThemeStyles = () => {\n const { primitive, semantic, global, style } = $style?.getCommonTheme?.() || {};\n\n $style.load(primitive?.css, { name: 'primitive-variables', ...$styleOptions });\n $style.load(semantic?.css, { name: 'semantic-variables', ...$styleOptions });\n $style.load(global?.css, { name: 'global-variables', ...$styleOptions });\n $style.load($style.baseStyles?.style, { name: 'global-style', ...$styleOptions }, style, true);\n };\n\n const loadComponentThemeStyles = () => {\n const { css, style } = $style?.getComponentTheme?.() || {};\n\n $style.load(css, { name: `${$style.name}-variables`, ...$styleOptions });\n $style.loadStyle({ name: `${$style.name}-style`, ...$styleOptions }, style);\n };\n\n const loadLayerOrderStyles = () => {\n const layerOrder = $style?.getLayerOrderThemeCSS?.();\n\n $style.load(layerOrder, { name: 'layer-order', first: true, ...$styleOptions });\n };\n\n // Server-side renders should not rely on global loaded-name state.\n if (!isClient()) {\n loadCommonThemeStyles();\n\n if ($style?.name) {\n loadComponentThemeStyles();\n }\n\n loadLayerOrderStyles();\n\n return;\n }\n\n const hmr = stylesChangedRef.current;\n\n // common\n if (hmr || !Theme.isStyleNameLoaded('common')) {\n loadCommonThemeStyles();\n Theme.setLoadedStyleName('common');\n }\n\n // component\n if ((hmr || !Theme.isStyleNameLoaded($style?.name)) && $style?.name) {\n loadComponentThemeStyles();\n Theme.setLoadedStyleName($style.name);\n }\n\n // layer order\n if (hmr || !Theme.isStyleNameLoaded('layer-order')) {\n loadLayerOrderStyles();\n Theme.setLoadedStyleName('layer-order');\n }\n }, [$isUnstyled, $style, $styleOptions]);\n\n // methods\n const _load = React.useCallback(() => {\n const { css } = $style.baseStyles || {};\n\n if (!isClient()) {\n $style.load(css, { name: 'base', ...$styleOptions });\n\n _loadThemeStyles();\n\n return;\n }\n\n const hmr = stylesChangedRef.current;\n\n if (hmr || !hasRetainedBaseStyleRef.current) {\n hasRetainedBaseStyleRef.current = true;\n\n if (hmr || StyleRegistry.retainStyleName('base')) {\n $style.load(css, { name: 'base', ...$styleOptions });\n }\n }\n\n _loadThemeStyles();\n\n // Reset HMR flag after applying changes; subsequent renders use cached path so animations aren't disrupted.\n stylesChangedRef.current = false;\n }, [$style, $styleOptions, _loadThemeStyles]);\n\n const _loadScopedThemeStyles = React.useCallback(\n (preset: unknown) => {\n const { css } = $style?.getPresetTheme?.(preset, `[${$attrSelector}]`) || {};\n const scopedStyle = $style?.load(css, { name: `${$attrSelector}-${$style.name}`, ...$styleOptions });\n\n scopedStyleRef.current = (scopedStyle as HTMLStyleElement) || null;\n },\n [$style, $attrSelector, $styleOptions]\n );\n\n // exposed methods\n const cx = React.useCallback(\n (key = '', params = {}) => {\n return !$isUnstyled ? cn(getKeyValue($style.classes as Record<string, string>, key, { ...$params, context: params })) : undefined;\n },\n [$isUnstyled, $params, $style.classes]\n );\n\n const sx = React.useCallback(\n (key = '', when = true, params = {}) => {\n if (when) {\n const self = getKeyValue($style.inlineStyles as Record<string, React.CSSProperties>, key, { ...$params, context: params }) as React.CSSProperties;\n const base = getKeyValue($style.baseStyles?.inlineStyles as Record<string, React.CSSProperties>, key, { ...$params, context: params }) as React.CSSProperties;\n\n return { ...base, ...self };\n }\n\n return undefined;\n },\n [$style.inlineStyles, $style.baseStyles?.inlineStyles, $params]\n );\n\n if (!isClient() && !$isUnstyled) {\n _loadCoreStyles();\n _load();\n _loadScopedThemeStyles(props.dt);\n }\n\n // effects\n React.useInsertionEffect(() => {\n if (!isClient() || $isUnstyled) {\n return;\n }\n\n _loadCoreStyles();\n _load();\n }, [$isUnstyled, _loadCoreStyles, _load]);\n\n React.useEffect(() => {\n if (!isClient() || $isUnstyled || $primereact?.theme === 'none') {\n return;\n }\n\n const handleThemeChange = () => {\n _loadThemeStyles();\n _loadScopedThemeStyles(props.dt);\n };\n\n ThemeService.on('theme:change', handleThemeChange);\n\n return () => {\n ThemeService.off('theme:change', handleThemeChange);\n };\n }, [$isUnstyled, $primereact?.theme, _loadThemeStyles, _loadScopedThemeStyles, props.dt]);\n\n React.useInsertionEffect(() => {\n if (!isClient() || $isUnstyled) {\n return;\n }\n\n scopedStyleRef.current?.remove();\n scopedStyleRef.current = null;\n\n _loadScopedThemeStyles(props.dt);\n\n return () => {\n scopedStyleRef.current?.remove();\n scopedStyleRef.current = null;\n };\n }, [$isUnstyled, props.dt, _loadScopedThemeStyles]);\n\n React.useEffect(() => {\n if (!isClient()) {\n return;\n }\n\n return () => {\n if (hasRetainedBaseStyleRef.current) {\n StyleRegistry.releaseStyleName('base');\n hasRetainedBaseStyleRef.current = false;\n }\n\n if (retainedComponentStyleNameRef.current) {\n StyleRegistry.releaseStyleName(retainedComponentStyleNameRef.current);\n retainedComponentStyleNameRef.current = null;\n }\n };\n }, []);\n\n return React.useMemo(\n () => ({\n cx,\n sx,\n isUnstyled: $isUnstyled,\n $style\n }),\n [cx, sx, $isUnstyled, $style]\n );\n}\n","import { ThemeContext } from '@primereact/core/theme';\nimport type { useStyleLoadOptions } from '@primereact/types/core';\nimport { isClient, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\n\nexport function useStyle() {\n const theme = React.useContext(ThemeContext);\n\n const _load = React.useCallback((loadOptions: useStyleLoadOptions = {}) => {\n const { name, css, element, options = {} } = loadOptions;\n\n if (isClient() && isNotEmpty(css)) {\n let root = element?.getRootNode() as Element | Document | ShadowRoot | null;\n\n if (!root || root === document) root = document.head;\n\n const styleElement = root.querySelector(`style[data-primereact-style-id=\"${name}\"]`) || document.createElement('style');\n\n if (!styleElement.isConnected) {\n // @todo - add attributes and prepend\n if (options?.first) {\n root.prepend(styleElement);\n } else {\n root.appendChild(styleElement);\n }\n\n styleElement.setAttribute('data-primereact-style-id', name || '');\n }\n\n const nextCss = css ?? '';\n\n if (styleElement.textContent !== nextCss) {\n styleElement.textContent = nextCss;\n }\n\n return styleElement;\n }\n }, []);\n\n const load = React.useCallback(\n (loadOptions: useStyleLoadOptions = {}) => {\n const { name, css } = loadOptions;\n\n if (isNotEmpty(loadOptions.css)) {\n // @todo - implement\n if (name && !theme?.stylesheet?.has(name) && !isClient() && name !== 'layer-order') {\n theme?.stylesheet?.add(name, css);\n }\n\n return _load(loadOptions);\n }\n },\n [theme, _load]\n );\n\n const unload = React.useCallback(() => {\n if (theme?.stylesheet) {\n theme.stylesheet.clear();\n }\n }, [theme]);\n\n React.useInsertionEffect(() => {\n theme?.stylesheet?.getStyles()?.forEach((value, key) => {\n _load({ name: key, css: value?.css });\n });\n }, [theme, _load]);\n\n return [load, unload];\n}\n\n// @todo - Remove this\n/*function useCSS(cssMap = {}) {\n const { theme } = usePrimeReact();\n\n if (typeof window === 'undefined') {\n Object.entries(cssMap).forEach(([key, value]) => {\n config?.sheet?.add(key, value.css);\n });\n }\n\n React.useInsertionEffect(() => {\n theme.stylesheet?._styles?.forEach((value, key) => {\n const styleElement = document.head.querySelector(`style[data-primereact-style-id=\"${key}\"]`) || document.createElement('style');\n\n if (!styleElement.isConnected) {\n //setAttributes(styleElement, value.styleOptions);\n value.first ? document.head.prepend(styleElement) : document.head.appendChild(styleElement);\n setAttribute(styleElement, 'data-primereact-style-id', key);\n //styleRef.current.onload = (event: React.ReactEventHandler<HTMLStyleElement>) => onStyleLoaded?.(event, { name: styleNameRef.current });\n //onStyleMounted?.(styleNameRef.current);\n }\n\n styleElement.textContent = value.css;\n });\n });\n //return rule;\n}*/\n","export const defaultUseStyleProps = {};\n","import { ThemeContext } from '@primereact/core/theme';\nimport { useStyle } from '@primereact/core/use-style';\nimport type { StylesOptions, StyleType } from '@primereact/types/styles';\nimport { css as Css, dt, Theme } from '@primeuix/styled';\nimport { isNotEmpty, minifyCSS, resolve, toElement } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A custom hook for managing component styles.\n *\n * @param styles The styles to apply to the component.\n * @param elementRef A reference to the HTML element.\n * @returns An object containing methods to load and manage styles.\n */\nexport function useComponentStyleHandler<Styles>(styles?: Styles, elementRef?: React.Ref<HTMLElement>) {\n const theme = React.useContext(ThemeContext);\n const [load] = useStyle();\n\n const _load = React.useCallback(\n (css?: string, options?: Record<PropertyKey, unknown>) => {\n return load({ name: options?.name as string | undefined, css, element: toElement(elementRef), options });\n },\n [load, elementRef]\n );\n\n return React.useMemo(() => {\n const handler = {\n name: 'base',\n ...(styles as StylesOptions),\n load(style: StyleType = '', options: Record<PropertyKey, unknown> & { name?: string } = {}, extendedStyle = '', enableThemeTransform = false) {\n const name = options.name || handler.name;\n const resolvedStyle = Css`${style}${extendedStyle}` as string;\n const computedStyle = enableThemeTransform ? Theme.transformCSS(name, resolvedStyle) : resolvedStyle;\n\n return isNotEmpty(computedStyle) ? _load(minifyCSS(computedStyle), { name, ...options }) : undefined;\n },\n loadCSS(options?: Record<PropertyKey, unknown>) {\n return this.load(this.css, options);\n },\n loadStyle(options?: Record<PropertyKey, unknown>, extendedStyle = '') {\n return this.load(this.style, options, extendedStyle, true);\n },\n getCommonTheme(params?: Record<PropertyKey, unknown>) {\n return Theme.getCommon(this.name, params);\n },\n getComponentTheme(params?: Record<PropertyKey, unknown>) {\n return Theme.getComponent(this.name, params);\n },\n // @todo: preset type\n getPresetTheme(preset: unknown, selector: string, params?: Record<PropertyKey, unknown>) {\n return Theme.getCustomPreset(this.name, preset, selector, params);\n },\n getLayerOrderThemeCSS() {\n return Theme.getLayerOrderCSS(this.name);\n },\n getStyleSheet(extendedCSS = '', props = {}) {\n if (this.css) {\n // @ts-expect-error: update dt definition in primeuix/styled\n const _css = resolve(this.css, { dt }) as string;\n const _style = minifyCSS(Css`${_css}${extendedCSS}`);\n const _props = Object.entries(props)\n .reduce<string[]>((acc, [k, v]) => {\n acc.push(`${k}=\"${v}\"`);\n\n return acc;\n }, [])\n .join(' ');\n\n return `<style type=\"text/css\" data-primereact-style-id=\"${this.name}\" ${_props}>${_style}</style>`;\n }\n\n return '';\n },\n getCommonThemeStyleSheet(params?: Record<PropertyKey, unknown>, props: Record<PropertyKey, unknown> = {}) {\n return Theme.getCommonStyleSheet(this.name, params, props);\n },\n getThemeStyleSheet(params?: Record<PropertyKey, unknown>, props: Record<PropertyKey, unknown> = {}) {\n const cssArr = [Theme.getStyleSheet(this.name, params, props)];\n\n if (theme) {\n const _name = this.name === 'base' ? 'global-style' : `${this.name}-style`;\n const _css = Css`${resolve(theme, { dt })}` as string;\n const _style = minifyCSS(Theme.transformCSS(this.name, _css));\n const _props = Object.entries(props)\n .reduce<string[]>((acc, [k, v]) => {\n acc.push(`${k}=\"${v}\"`);\n\n return acc;\n }, [])\n .join(' ');\n\n cssArr.push(`<style type=\"text/css\" data-primereact-style-id=\"${_name}\" ${_props}>${_style}</style>`);\n }\n\n return cssArr.join('');\n }\n };\n\n return handler;\n }, [styles, theme, _load]);\n}\n","import type { ComponentInstance, InComponentInstance, useComponentOptions, withComponentOptions } from '@primereact/types/core';\nimport type { BaseComponentProps } from '@primereact/types';\nimport type { StylesOptions } from '@primereact/types/styles';\nimport { isObject } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useComponent } from './useComponent';\n\n/**\n * A higher-order component for enhancing a component with additional features.\n *\n * @template IProps The interface for the component's input properties.\n * @template DProps The interface for the component's default properties.\n * @template Exposes The interface for the properties that the component exposes.\n * @template Styles The styles options for the component.\n * @template CData Additional data to expose on the component.\n *\n * @param options The options for the component.\n * @param options.name The name of the component, used for debugging and identification.\n * @param options.defaultProps The default properties for the component.\n * @param options.styles The styles to apply to the component.\n * @param options.components Additional components to include in the component.\n * @param options.setup A setup function for additional configuration of the component.\n * @param options.render A render function for the component.\n * @returns A React component wrapped with the specified options.\n */\nexport function withComponent<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n type = 'primitive',\n defaultProps,\n styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) {\n type InProps<I extends ComponentInstance, T extends React.ElementType> = BaseComponentProps<I, IProps, unknown, T> & DProps;\n\n const BaseComponent = <I extends ComponentInstance, T extends React.ElementType>(inProps?: InProps<I, T>) => {\n const instance = useComponent(name, { type, inProps, defaultProps, styles, setup } as useComponentOptions<InProps<I, T>, DProps, Exposes, Styles>);\n\n type RenderedComponentProps = InComponentInstance<typeof instance.props, InProps<I, T>, typeof instance.state, Exposes>;\n\n const RenderedComponent = (render as React.FC<RenderedComponentProps>) ?? (() => null);\n\n return instance.props.pIf ? <RenderedComponent {...(instance as RenderedComponentProps)} /> : null;\n };\n\n const Component = React.memo(BaseComponent, (prevProps, nextProps) => {\n if (!isObject(prevProps) || !isObject(nextProps)) {\n return false;\n }\n\n // Function props (render props, event handlers) are recreated on every parent render\n // and their closures may reference ambient state. `shallowEqualProps` ignores function\n // mismatches to reduce churn, but that strands render-prop children against state updates.\n // Fall back to identity checks for functions so re-renders flow through.\n const prevRecord = prevProps as Record<string, unknown>;\n const nextRecord = nextProps as Record<string, unknown>;\n const keys = Object.keys(prevRecord);\n\n if (keys.length !== Object.keys(nextRecord).length) return false;\n\n for (const key of keys) {\n const prev = prevRecord[key];\n const next = nextRecord[key];\n\n if (typeof prev === 'function' || typeof next === 'function') {\n if (prev !== next) return false;\n continue;\n }\n\n if (!Object.is(prev, next)) return false;\n }\n\n return true;\n }) as unknown as typeof BaseComponent & CData & React.FC;\n\n Component.displayName = `PrimeReact.${name}`;\n Object.entries(components || {}).forEach(([key, value]) => {\n (Component as Record<string, unknown>)[key] = value;\n });\n\n return Component;\n}\n","import { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultIconProps } from './Icon.props';\nimport { styles } from './Icon.style';\nimport { withIcon } from './withIcon';\n\nexport const Icon = withIcon({\n name: 'Icon',\n styles,\n defaultProps: defaultIconProps,\n render(instance) {\n const { id, props, ptmi, pti, cx, sx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n style: sx('root'),\n className: cx('root')\n },\n pti?.(),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { IconProps } from '@primereact/types/core';\n\nexport const defaultIconProps: IconProps = {\n as: 'i',\n size: undefined,\n rotate: undefined,\n flip: undefined,\n spin: false\n};\n","import type { StylesOptions } from '@primereact/types/styles';\nimport { $dt } from '@primeuix/styled';\n\nexport const styles = {\n name: 'icon',\n classes: {\n root: ({ props }) => [\n 'p-icon',\n {\n 'p-icon-spin': props.spin,\n 'p-icon-flip-horizontal': props.flip === 'horizontal',\n 'p-icon-flip-vertical': props.flip === 'vertical'\n }\n ]\n },\n inlineStyles: {\n root: ({ props }) => ({\n ...(props.size ? { [$dt('icon.size').name]: props.size } : undefined),\n ...(props.rotate ? { [$dt('icon.rotate').name]: `${props.rotate}deg` } : undefined)\n })\n }\n} as StylesOptions;\n","import { withComponent } from '@primereact/core/component';\nimport type { BaseSetup, IconExposes, withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { useIcon } from './useIcon';\n\n/**\n * Higher-order component for enhancing icon components.\n *\n * @template IProps - The interface for the icon component's props.\n * @template DProps - The interface for the default properties of the icon component.\n * @template Exposes - The interface for the properties exposed by the icon component.\n * @template Styles - The styles options for the icon component.\n * @template CData - The context data for the icon component.\n *\n * @param options - The options for the icon component.\n * @param options.name - The name of the icon component.\n * @param options.defaultProps - The default properties for the icon component.\n * @param options.styles - The styles options for the icon component.\n * @param options.components - The components to be used within the icon component.\n * @param options.setup - The setup function for the icon component.\n * @param options.render - The render function for the icon component.\n * @returns A React component wrapped with the specified options.\n */\nexport function withIcon<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes & IconExposes, Styles, CData>) {\n return withComponent<IProps, DProps, Exposes & IconExposes, Styles, CData>({\n name: `${name ?? 'Unknown'}Icon`,\n defaultProps,\n styles,\n components,\n setup(instance) {\n const icon = useIcon(instance?.inProps);\n const computedSetup = resolve(setup as BaseSetup<typeof instance.props, IProps, Exposes>, instance) as Exposes;\n\n return React.useMemo(\n () => ({\n ...icon,\n ...computedSetup\n }),\n [icon, computedSetup]\n );\n },\n render\n });\n}\n","import { useBase } from '@primereact/core/base';\nimport type { HeadlessInstance, useHeadlessOptions } from '@primereact/types/core';\n\n/**\n * A custom hook for using headless components.\n *\n * @param name The name of the headless component.\n * @param options Options for the headless component.\n * @returns The headless instance.\n */\nexport function useHeadless<IProps, DProps, Exposes extends Record<PropertyKey, unknown>>(name: string = 'UnknownHeadless', options: useHeadlessOptions<IProps, DProps, Exposes> = {}) {\n const baseInstance = useBase(name, options as useHeadlessOptions<IProps & { id?: string; ref?: React.Ref<unknown> }, typeof options.defaultProps & DProps, Exposes>);\n\n return baseInstance as HeadlessInstance<DProps, IProps, Exposes>;\n}\n","import type { withHeadlessOptions } from '@primereact/types/core';\nimport { useHeadless } from './useHeadless';\n\n/**\n * Higher-order component for using headless components.\n *\n * @template IProps The input properties type for the headless component.\n * @template DProps The default properties type for the headless component.\n * @template Exposes The properties that the headless component exposes.\n *\n * @param options The options for the headless component.\n * @param options.name The name of the headless component.\n * @param options.defaultProps The default properties for the headless component.\n * @param options.setup The setup function for the headless component.\n * @returns A function that takes in props and returns the headless instance.\n */\nexport function withHeadless<IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>>({ name, type = 'headless', defaultProps, setup }: withHeadlessOptions<IProps, DProps, Exposes>) {\n return (inProps?: IProps) => {\n return useHeadless(name, { type, inProps, defaultProps, setup });\n };\n}\n","import { withHeadless } from '@primereact/core/headless';\nimport { isEmpty } from '@primeuix/utils';\nimport * as React from 'react';\n\nexport const useIcon = withHeadless({\n name: 'useIcon',\n setup({ attrs }) {\n const ariaLabel = attrs['aria-label'];\n const tabIndex = attrs.tabIndex;\n\n const pti = React.useCallback(() => {\n const isAriaLabelEmpty = isEmpty(ariaLabel);\n\n return {\n role: !isAriaLabelEmpty ? 'img' : undefined,\n 'aria-hidden': isEmpty(tabIndex) && isAriaLabelEmpty\n };\n }, [ariaLabel, tabIndex]);\n\n return {\n pti\n };\n }\n});\n","'use client';\nimport { styles as iconStyles } from '@primereact/core/icon';\nimport { addStylePreloadsToStyleSheet, StylePreloadRegistry, upsertStylePreloadsToHead } from '@primereact/core/utils';\nimport { useProps } from '@primereact/hooks';\nimport type { ThemeProps } from '@primereact/types/core';\nimport { css as Css, Theme } from '@primeuix/styled';\nimport { isClient, isNotEmpty, minifyCSS, resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultThemeProps } from './Theme.props';\n\nexport const ThemeContext = React.createContext<ThemeProps | null>(null);\n\nexport const ThemeProvider = (inProps: ThemeProps = {}) => {\n const { props } = useProps(defaultThemeProps, inProps);\n const { stylesheet, preset, ...rest } = props;\n\n const value = {\n preset,\n stylesheet,\n ...rest\n };\n\n Theme.setTheme({ preset, options: rest });\n\n const iconPreloadCSS = React.useMemo(() => minifyCSS(Css`${iconStyles.css}` as string) || '', []);\n\n React.useMemo(() => {\n if (isNotEmpty(iconPreloadCSS)) {\n StylePreloadRegistry.register({\n id: 'icon',\n css: iconPreloadCSS,\n phase: 'both',\n priority: 10\n });\n }\n }, [iconPreloadCSS]);\n\n if (!isClient()) {\n addStylePreloadsToStyleSheet(stylesheet, StylePreloadRegistry.getForSSR());\n }\n\n React.useInsertionEffect(() => {\n if (!isClient()) {\n return;\n }\n\n upsertStylePreloadsToHead(StylePreloadRegistry.getForClient());\n }, []);\n\n return <ThemeContext.Provider value={value}>{resolve(inProps.children, value)}</ThemeContext.Provider>;\n};\n","import type { ThemeProps } from '@primereact/types/core';\n\nexport const defaultThemeProps: ThemeProps = {\n preset: undefined,\n prefix: 'p',\n darkModeSelector: 'system',\n cssLayer: false,\n cssVariables: true,\n scoped: false,\n stylesheet: undefined\n};\n","import * as React from 'react';\nimport { ThemeContext } from './Theme.context';\n\nexport function useTheme() {\n const context = React.useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error('Context must be used within a ThemeProvider');\n }\n\n return context;\n}\n","/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\n/**\n * 4KB JS implementation of ed25519 EdDSA signatures.\n * Compliant with RFC8032, FIPS 186-5 & ZIP215.\n * @module\n * @example\n * ```js\nimport * as ed from '@noble/ed25519';\n(async () => {\n const privKey = ed.utils.randomPrivateKey();\n const message = Uint8Array.from([0xab, 0xbc, 0xcd, 0xde]);\n const pubKey = await ed.getPublicKeyAsync(privKey); // Sync methods are also present\n const signature = await ed.signAsync(message, privKey);\n const isValid = await ed.verifyAsync(signature, message, pubKey);\n})();\n```\n */\n/**\n * Curve params. ed25519 is twisted edwards curve. Equation is −x² + y² = -a + dx²y².\n * * P = `2n**255n - 19n` // field over which calculations are done\n * * N = `2n**252n + 27742317777372353535851937790883648493n` // group order, amount of curve points\n * * h = 8 // cofactor\n * * a = `Fp.create(BigInt(-1))` // equation param\n * * d = -121665/121666 a.k.a. `Fp.neg(121665 * Fp.inv(121666))` // equation param\n * * Gx, Gy are coordinates of Generator / base point\n */\nconst ed25519_CURVE = {\n p: 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,\n n: 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,\n h: 8n,\n a: 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,\n d: 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,\n Gx: 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,\n Gy: 0x6666666666666666666666666666666666666666666666666666666666666658n,\n};\nconst { p: P, n: N, Gx, Gy, a: _a, d: _d } = ed25519_CURVE;\nconst h = 8n; // cofactor\nconst L = 32; // field / group byte length\nconst L2 = 64;\n// Helpers and Precomputes sections are reused between libraries\n// ## Helpers\n// ----------\n// error helper, messes-up stack trace\nconst err = (m = '') => {\n throw new Error(m);\n};\nconst isBig = (n) => typeof n === 'bigint'; // is big integer\nconst isStr = (s) => typeof s === 'string'; // is string\nconst isBytes = (a) => a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n/** assert is Uint8Array (of specific length) */\nconst abytes = (a, l) => !isBytes(a) || (typeof l === 'number' && l > 0 && a.length !== l)\n ? err('Uint8Array expected')\n : a;\n/** create Uint8Array */\nconst u8n = (len) => new Uint8Array(len);\nconst u8fr = (buf) => Uint8Array.from(buf);\nconst padh = (n, pad) => n.toString(16).padStart(pad, '0');\nconst bytesToHex = (b) => Array.from(abytes(b))\n .map((e) => padh(e, 2))\n .join('');\nconst C = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; // ASCII characters\nconst _ch = (ch) => {\n if (ch >= C._0 && ch <= C._9)\n return ch - C._0; // '2' => 50-48\n if (ch >= C.A && ch <= C.F)\n return ch - (C.A - 10); // 'B' => 66-(65-10)\n if (ch >= C.a && ch <= C.f)\n return ch - (C.a - 10); // 'b' => 98-(97-10)\n return;\n};\nconst hexToBytes = (hex) => {\n const e = 'hex invalid';\n if (!isStr(hex))\n return err(e);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n return err(e);\n const array = u8n(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n // treat each char as ASCII\n const n1 = _ch(hex.charCodeAt(hi)); // parse first char, multiply it by 16\n const n2 = _ch(hex.charCodeAt(hi + 1)); // parse second char\n if (n1 === undefined || n2 === undefined)\n return err(e);\n array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9\n }\n return array;\n};\n/** normalize hex or ui8a to ui8a */\nconst toU8 = (a, len) => abytes(isStr(a) ? hexToBytes(a) : u8fr(abytes(a)), len);\nconst cr = () => globalThis?.crypto; // WebCrypto is available in all modern environments\nconst subtle = () => cr()?.subtle ?? err('crypto.subtle must be defined');\n// prettier-ignore\nconst concatBytes = (...arrs) => {\n const r = u8n(arrs.reduce((sum, a) => sum + abytes(a).length, 0)); // create u8a of summed length\n let pad = 0; // walk through each array,\n arrs.forEach(a => { r.set(a, pad); pad += a.length; }); // ensure they have proper type\n return r;\n};\n/** WebCrypto OS-level CSPRNG (random number generator). Will throw when not available. */\nconst randomBytes = (len = L) => {\n const c = cr();\n return c.getRandomValues(u8n(len));\n};\nconst big = BigInt;\nconst arange = (n, min, max, msg = 'bad number: out of range') => isBig(n) && min <= n && n < max ? n : err(msg);\n/** modular division */\nconst M = (a, b = P) => {\n const r = a % b;\n return r >= 0n ? r : b + r;\n};\nconst modN = (a) => M(a, N);\n/** Modular inversion using eucledian GCD (non-CT). No negative exponent for now. */\n// prettier-ignore\nconst invert = (num, md) => {\n if (num === 0n || md <= 0n)\n err('no inverse n=' + num + ' mod=' + md);\n let a = M(num, md), b = md, x = 0n, y = 1n, u = 1n, v = 0n;\n while (a !== 0n) {\n const q = b / a, r = b % a;\n const m = x - u * q, n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n return b === 1n ? M(x, md) : err('no inverse'); // b is gcd at this point\n};\nconst callHash = (name) => {\n // @ts-ignore\n const fn = etc[name];\n if (typeof fn !== 'function')\n err('hashes.' + name + ' not set');\n return fn;\n};\nconst apoint = (p) => (p instanceof Point ? p : err('Point expected'));\n// ## End of Helpers\n// -----------------\nconst B256 = 2n ** 256n;\n/** Point in XYZT extended coordinates. */\nclass Point {\n static BASE;\n static ZERO;\n ex;\n ey;\n ez;\n et;\n constructor(ex, ey, ez, et) {\n const max = B256;\n this.ex = arange(ex, 0n, max);\n this.ey = arange(ey, 0n, max);\n this.ez = arange(ez, 1n, max);\n this.et = arange(et, 0n, max);\n Object.freeze(this);\n }\n static fromAffine(p) {\n return new Point(p.x, p.y, 1n, M(p.x * p.y));\n }\n /** RFC8032 5.1.3: Uint8Array to Point. */\n static fromBytes(hex, zip215 = false) {\n const d = _d;\n // Copy array to not mess it up.\n const normed = u8fr(abytes(hex, L));\n // adjust first LE byte = last BE byte\n const lastByte = hex[31];\n normed[31] = lastByte & ~0x80;\n const y = bytesToNumLE(normed);\n // zip215=true: 0 <= y < 2^256\n // zip215=false, RFC8032: 0 <= y < 2^255-19\n const max = zip215 ? B256 : P;\n arange(y, 0n, max);\n const y2 = M(y * y); // y²\n const u = M(y2 - 1n); // u=y²-1\n const v = M(d * y2 + 1n); // v=dy²+1\n let { isValid, value: x } = uvRatio(u, v); // (uv³)(uv⁷)^(p-5)/8; square root\n if (!isValid)\n err('bad point: y not sqrt'); // not square root: bad point\n const isXOdd = (x & 1n) === 1n; // adjust sign of x coordinate\n const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n if (!zip215 && x === 0n && isLastByteOdd)\n err('bad point: x==0, isLastByteOdd'); // x=0, x_0=1\n if (isLastByteOdd !== isXOdd)\n x = M(-x);\n return new Point(x, y, 1n, M(x * y)); // Z=1, T=xy\n }\n /** Checks if the point is valid and on-curve. */\n assertValidity() {\n const a = _a;\n const d = _d;\n const p = this;\n if (p.is0())\n throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²\n const { ex: X, ey: Y, ez: Z, et: T } = p;\n const X2 = M(X * X); // X²\n const Y2 = M(Y * Y); // Y²\n const Z2 = M(Z * Z); // Z²\n const Z4 = M(Z2 * Z2); // Z⁴\n const aX2 = M(X2 * a); // aX²\n const left = M(Z2 * M(aX2 + Y2)); // (aX² + Y²)Z²\n const right = M(Z4 + M(d * M(X2 * Y2))); // Z⁴ + dX²Y²\n if (left !== right)\n throw new Error('bad point: equation left != right (1)');\n // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n const XY = M(X * Y);\n const ZT = M(Z * T);\n if (XY !== ZT)\n throw new Error('bad point: equation left != right (2)');\n return this;\n }\n /** Equality check: compare points P&Q. */\n equals(other) {\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const { ex: X2, ey: Y2, ez: Z2 } = apoint(other); // checks class equality\n const X1Z2 = M(X1 * Z2);\n const X2Z1 = M(X2 * Z1);\n const Y1Z2 = M(Y1 * Z2);\n const Y2Z1 = M(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n is0() {\n return this.equals(I);\n }\n /** Flip point over y coordinate. */\n negate() {\n return new Point(M(-this.ex), this.ey, this.ez, M(-this.et));\n }\n /** Point doubling. Complete formula. Cost: `4M + 4S + 1*a + 6add + 1*2`. */\n double() {\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const a = _a;\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n const A = M(X1 * X1);\n const B = M(Y1 * Y1);\n const C = M(2n * M(Z1 * Z1));\n const D = M(a * A);\n const x1y1 = X1 + Y1;\n const E = M(M(x1y1 * x1y1) - A - B);\n const G = D + B;\n const F = G - C;\n const H = D - B;\n const X3 = M(E * F);\n const Y3 = M(G * H);\n const T3 = M(E * H);\n const Z3 = M(F * G);\n return new Point(X3, Y3, Z3, T3);\n }\n /** Point addition. Complete formula. Cost: `8M + 1*k + 8add + 1*2`. */\n add(other) {\n const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this;\n const { ex: X2, ey: Y2, ez: Z2, et: T2 } = apoint(other); // doesn't check if other on-curve\n const a = _a;\n const d = _d;\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-3\n const A = M(X1 * X2);\n const B = M(Y1 * Y2);\n const C = M(T1 * d * T2);\n const D = M(Z1 * Z2);\n const E = M((X1 + Y1) * (X2 + Y2) - A - B);\n const F = M(D - C);\n const G = M(D + C);\n const H = M(B - a * A);\n const X3 = M(E * F);\n const Y3 = M(G * H);\n const T3 = M(E * H);\n const Z3 = M(F * G);\n return new Point(X3, Y3, Z3, T3);\n }\n /**\n * Point-by-scalar multiplication. Scalar must be in range 1 <= n < CURVE.n.\n * Uses {@link wNAF} for base point.\n * Uses fake point to mitigate side-channel leakage.\n * @param n scalar by which point is multiplied\n * @param safe safe mode guards against timing attacks; unsafe mode is faster\n */\n multiply(n, safe = true) {\n if (!safe && (n === 0n || this.is0()))\n return I;\n arange(n, 1n, N);\n if (n === 1n)\n return this;\n if (this.equals(G))\n return wNAF(n).p;\n // init result point & fake point\n let p = I;\n let f = G;\n for (let d = this; n > 0n; d = d.double(), n >>= 1n) {\n // if bit is present, add to point\n // if not present, add to fake, for timing safety\n if (n & 1n)\n p = p.add(d);\n else if (safe)\n f = f.add(d);\n }\n return p;\n }\n /** Convert point to 2d xy affine point. (X, Y, Z) ∋ (x=X/Z, y=Y/Z) */\n toAffine() {\n const { ex: x, ey: y, ez: z } = this;\n // fast-paths for ZERO point OR Z=1\n if (this.equals(I))\n return { x: 0n, y: 1n };\n const iz = invert(z, P);\n // (Z * Z^-1) must be 1, otherwise bad math\n if (M(z * iz) !== 1n)\n err('invalid inverse');\n // x = X*Z^-1; y = Y*Z^-1\n return { x: M(x * iz), y: M(y * iz) };\n }\n toBytes() {\n const { x, y } = this.assertValidity().toAffine();\n const b = numTo32bLE(y);\n // store sign in first LE byte\n b[31] |= x & 1n ? 0x80 : 0;\n return b;\n }\n toHex() {\n return bytesToHex(this.toBytes());\n } // encode to hex string\n clearCofactor() {\n return this.multiply(big(h), false);\n }\n isSmallOrder() {\n return this.clearCofactor().is0();\n }\n isTorsionFree() {\n // multiply by big number CURVE.n\n let p = this.multiply(N / 2n, false).double(); // ensures the point is not \"bad\".\n if (N % 2n)\n p = p.add(this); // P^(N+1) // P*N == (P*(N/2))*2+P\n return p.is0();\n }\n static fromHex(hex, zip215) {\n return Point.fromBytes(toU8(hex), zip215);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n toRawBytes() {\n return this.toBytes();\n }\n}\n/** Generator / base point */\nconst G = new Point(Gx, Gy, 1n, M(Gx * Gy));\n/** Identity / zero point */\nconst I = new Point(0n, 1n, 1n, 0n);\n// Static aliases\nPoint.BASE = G;\nPoint.ZERO = I;\nconst numTo32bLE = (num) => hexToBytes(padh(arange(num, 0n, B256), L2)).reverse();\nconst bytesToNumLE = (b) => big('0x' + bytesToHex(u8fr(abytes(b)).reverse()));\nconst pow2 = (x, power) => {\n // pow2(x, 4) == x^(2^4)\n let r = x;\n while (power-- > 0n) {\n r *= r;\n r %= P;\n }\n return r;\n};\n// prettier-ignore\nconst pow_2_252_3 = (x) => {\n const x2 = (x * x) % P; // x^2, bits 1\n const b2 = (x2 * x) % P; // x^3, bits 11\n const b4 = (pow2(b2, 2n) * b2) % P; // x^(2^4-1), bits 1111\n const b5 = (pow2(b4, 1n) * x) % P; // x^(2^5-1), bits 11111\n const b10 = (pow2(b5, 5n) * b5) % P; // x^(2^10)\n const b20 = (pow2(b10, 10n) * b10) % P; // x^(2^20)\n const b40 = (pow2(b20, 20n) * b20) % P; // x^(2^40)\n const b80 = (pow2(b40, 40n) * b40) % P; // x^(2^80)\n const b160 = (pow2(b80, 80n) * b80) % P; // x^(2^160)\n const b240 = (pow2(b160, 80n) * b80) % P; // x^(2^240)\n const b250 = (pow2(b240, 10n) * b10) % P; // x^(2^250)\n const pow_p_5_8 = (pow2(b250, 2n) * x) % P; // < To pow to (p+3)/8, multiply it by x.\n return { pow_p_5_8, b2 };\n};\nconst RM1 = 0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n; // √-1\n// for sqrt comp\n// prettier-ignore\nconst uvRatio = (u, v) => {\n const v3 = M(v * v * v); // v³\n const v7 = M(v3 * v3 * v); // v⁷\n const pow = pow_2_252_3(u * v7).pow_p_5_8; // (uv⁷)^(p-5)/8\n let x = M(u * v3 * pow); // (uv³)(uv⁷)^(p-5)/8\n const vx2 = M(v * x * x); // vx²\n const root1 = x; // First root candidate\n const root2 = M(x * RM1); // Second root candidate; RM1 is √-1\n const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root\n const useRoot2 = vx2 === M(-u); // If vx² = -u, set x <-- x * 2^((p-1)/4)\n const noRoot = vx2 === M(-u * RM1); // There is no valid root, vx² = -u√-1\n if (useRoot1)\n x = root1;\n if (useRoot2 || noRoot)\n x = root2; // We return root2 anyway, for const-time\n if ((M(x) & 1n) === 1n)\n x = M(-x); // edIsNegative\n return { isValid: useRoot1 || useRoot2, value: x };\n};\n// N == L, just weird naming\nconst modL_LE = (hash) => modN(bytesToNumLE(hash)); // modulo L; but little-endian\nconst sha512a = (...m) => etc.sha512Async(...m); // Async SHA512\nconst sha512s = (...m) => callHash('sha512Sync')(...m);\n// RFC8032 5.1.5\nconst hash2extK = (hashed) => {\n // slice creates a copy, unlike subarray\n const head = hashed.slice(0, L);\n head[0] &= 248; // Clamp bits: 0b1111_1000\n head[31] &= 127; // 0b0111_1111\n head[31] |= 64; // 0b0100_0000\n const prefix = hashed.slice(L, L2); // private key \"prefix\"\n const scalar = modL_LE(head); // modular division over curve order\n const point = G.multiply(scalar); // public key point\n const pointBytes = point.toBytes(); // point serialized to Uint8Array\n return { head, prefix, scalar, point, pointBytes };\n};\n// RFC8032 5.1.5; getPublicKey async, sync. Hash priv key and extract point.\nconst getExtendedPublicKeyAsync = (priv) => sha512a(toU8(priv, L)).then(hash2extK);\nconst getExtendedPublicKey = (priv) => hash2extK(sha512s(toU8(priv, L)));\n/** Creates 32-byte ed25519 public key from 32-byte private key. Async. */\nconst getPublicKeyAsync = (priv) => getExtendedPublicKeyAsync(priv).then((p) => p.pointBytes);\n/** Creates 32-byte ed25519 public key from 32-byte private key. To use, set `etc.sha512Sync` first. */\nconst getPublicKey = (priv) => getExtendedPublicKey(priv).pointBytes;\nconst hashFinishA = (res) => sha512a(res.hashable).then(res.finish);\nconst hashFinishS = (res) => res.finish(sha512s(res.hashable));\nconst _sign = (e, rBytes, msg) => {\n // sign() shared code\n const { pointBytes: P, scalar: s } = e;\n const r = modL_LE(rBytes); // r was created outside, reduce it modulo L\n const R = G.multiply(r).toBytes(); // R = [r]B\n const hashable = concatBytes(R, P, msg); // dom2(F, C) || R || A || PH(M)\n const finish = (hashed) => {\n // k = SHA512(dom2(F, C) || R || A || PH(M))\n const S = modN(r + modL_LE(hashed) * s); // S = (r + k * s) mod L; 0 <= s < l\n return abytes(concatBytes(R, numTo32bLE(S)), L2); // 64-byte sig: 32b R.x + 32b LE(S)\n };\n return { hashable, finish };\n};\n/**\n * Signs message (NOT message hash) using private key. Async.\n * Follows RFC8032 5.1.6.\n */\nconst signAsync = async (msg, privKey) => {\n const m = toU8(msg);\n const e = await getExtendedPublicKeyAsync(privKey);\n const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))\n return hashFinishA(_sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature\n};\n/**\n * Signs message (NOT message hash) using private key. To use, set `hashes.sha512` first.\n * Follows RFC8032 5.1.6.\n */\nconst sign = (msg, privKey) => {\n const m = toU8(msg);\n const e = getExtendedPublicKey(privKey);\n const rBytes = sha512s(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))\n return hashFinishS(_sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature\n};\nconst veriOpts = { zip215: true };\nconst _verify = (sig, msg, pub, opts = veriOpts) => {\n sig = toU8(sig, L2); // Signature hex str/Bytes, must be 64 bytes\n msg = toU8(msg); // Message hex str/Bytes\n pub = toU8(pub, L);\n const { zip215 } = opts; // switch between zip215 and rfc8032 verif\n let A;\n let R;\n let s;\n let SB;\n let hashable = Uint8Array.of();\n try {\n A = Point.fromHex(pub, zip215); // public key A decoded\n R = Point.fromHex(sig.slice(0, L), zip215); // 0 <= R < 2^256: ZIP215 R can be >= P\n s = bytesToNumLE(sig.slice(L, L2)); // Decode second half as an integer S\n SB = G.multiply(s, false); // in the range 0 <= s < L\n hashable = concatBytes(R.toBytes(), A.toBytes(), msg); // dom2(F, C) || R || A || PH(M)\n }\n catch (error) { }\n const finish = (hashed) => {\n // k = SHA512(dom2(F, C) || R || A || PH(M))\n if (SB == null)\n return false; // false if try-catch catched an error\n if (!zip215 && A.isSmallOrder())\n return false; // false for SBS: Strongly Binding Signature\n const k = modL_LE(hashed); // decode in little-endian, modulo L\n const RkA = R.add(A.multiply(k, false)); // [8]R + [8][k]A'\n return RkA.add(SB.negate()).clearCofactor().is0(); // [8][S]B = [8]R + [8][k]A'\n };\n return { hashable, finish };\n};\n/** Verifies signature on message and public key. Async. Follows RFC8032 5.1.7. */\nconst verifyAsync = async (s, m, p, opts = veriOpts) => hashFinishA(_verify(s, m, p, opts));\n/** Verifies signature on message and public key. To use, set `hashes.sha512` first. Follows RFC8032 5.1.7. */\nconst verify = (s, m, p, opts = veriOpts) => hashFinishS(_verify(s, m, p, opts));\n/** Math, hex, byte helpers. Not in `utils` because utils share API with noble-curves. */\nconst etc = {\n sha512Async: async (...messages) => {\n const s = subtle();\n const m = concatBytes(...messages);\n return u8n(await s.digest('SHA-512', m.buffer));\n },\n sha512Sync: undefined,\n bytesToHex: bytesToHex,\n hexToBytes: hexToBytes,\n concatBytes: concatBytes,\n mod: M,\n invert: invert,\n randomBytes: randomBytes,\n};\n/** ed25519-specific key utilities. */\nconst utils = {\n getExtendedPublicKeyAsync: getExtendedPublicKeyAsync,\n getExtendedPublicKey: getExtendedPublicKey,\n randomPrivateKey: () => randomBytes(L),\n precompute: (w = 8, p = G) => {\n p.multiply(3n);\n w;\n return p;\n }, // no-op\n};\n// ## Precomputes\n// --------------\nconst W = 8; // W is window size\nconst scalarBits = 256;\nconst pwindows = Math.ceil(scalarBits / W) + 1; // 33 for W=8\nconst pwindowSize = 2 ** (W - 1); // 128 for W=8\nconst precompute = () => {\n const points = [];\n let p = G;\n let b = p;\n for (let w = 0; w < pwindows; w++) {\n b = p;\n points.push(b);\n for (let i = 1; i < pwindowSize; i++) {\n b = b.add(p);\n points.push(b);\n } // i=1, bc we skip 0\n p = b.double();\n }\n return points;\n};\nlet Gpows = undefined; // precomputes for base point G\n// const-time negate\nconst ctneg = (cnd, p) => {\n const n = p.negate();\n return cnd ? n : p;\n};\n/**\n * Precomputes give 12x faster getPublicKey(), 10x sign(), 2x verify() by\n * caching multiples of G (base point). Cache is stored in 32MB of RAM.\n * Any time `G.multiply` is done, precomputes are used.\n * Not used for getSharedSecret, which instead multiplies random pubkey `P.multiply`.\n *\n * w-ary non-adjacent form (wNAF) precomputation method is 10% slower than windowed method,\n * but takes 2x less RAM. RAM reduction is possible by utilizing `.subtract`.\n *\n * !! Precomputes can be disabled by commenting-out call of the wNAF() inside Point#multiply().\n */\nconst wNAF = (n) => {\n const comp = Gpows || (Gpows = precompute());\n let p = I;\n let f = G; // f must be G, or could become I in the end\n const pow_2_w = 2 ** W; // 256 for W=8\n const maxNum = pow_2_w; // 256 for W=8\n const mask = big(pow_2_w - 1); // 255 for W=8 == mask 0b11111111\n const shiftBy = big(W); // 8 for W=8\n for (let w = 0; w < pwindows; w++) {\n let wbits = Number(n & mask); // extract W bits.\n n >>= shiftBy; // shift number by W bits.\n if (wbits > pwindowSize) {\n wbits -= maxNum;\n n += 1n;\n } // split if bits > max: +224 => 256-32\n const off = w * pwindowSize;\n const offF = off; // offsets, evaluate both\n const offP = off + Math.abs(wbits) - 1;\n const isEven = w % 2 !== 0; // conditions, evaluate both\n const isNeg = wbits < 0;\n if (wbits === 0) {\n // off == I: can't add it. Adding random offF instead.\n f = f.add(ctneg(isEven, comp[offF])); // bits are 0: add garbage to fake point\n }\n else {\n p = p.add(ctneg(isNeg, comp[offP])); // bits are 1: add to result point\n }\n }\n return { p, f }; // return both real and fake points for JIT\n};\n// !! Remove the export to easily use in REPL / browser console\nexport { ed25519_CURVE as CURVE, etc, Point as ExtendedPoint, getPublicKey, getPublicKeyAsync, Point, sign, signAsync, utils, verify, verifyAsync, };\n","import*as e from\"@noble/ed25519\";var r=Object.defineProperty,t=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,a=(e,t,i)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,o=(e,r,t)=>new Promise((i,n)=>{var a=e=>{try{u(t.next(e))}catch(e){n(e)}},o=e=>{try{u(t.throw(e))}catch(e){n(e)}},u=e=>e.done?i(e.value):Promise.resolve(e.value).then(a,o);u((t=t.apply(e,r)).next())});function u(e){const r={};for(let e=0;e<64;e++)r[\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"[e]]=e;const t=e.replace(/=+$/,\"\"),i=Math.floor(6*t.length/8),n=new Uint8Array(i);let a=0,o=0,u=0;for(let e=0;e<t.length;e++){const i=r[t[e]];if(void 0===i)throw new Error(\"Invalid base64url character\");a=a<<6|i,o+=6,o>=8&&(o-=8,n[u++]=a>>o&255)}return n}var c=30,s=\"primeui\",l=\"primeui-pro:\",d={primeui:\"primeui\",scheduler:\"primeui-pro:scheduler\",texteditor:\"primeui-pro:text-editor\",charts:\"primeui-pro:charts\",diagram:\"primeui-pro:diagram\",pdfviewer:\"primeui-pro:pdf-viewer\",taskboard:\"primeui-pro:task-board\",datagrid:\"primeui-pro:datagrid\",ganttchart:\"primeui-pro:gantt-chart\",filemanager:\"primeui-pro:file-manager\"},p={primeui:\"PrimeUI\",scheduler:\"Scheduler\",texteditor:\"TextEditor\",charts:\"Charts\",diagram:\"Diagram\",pdfviewer:\"PDF Viewer\",taskboard:\"Task Board\",datagrid:\"DataGrid\",ganttchart:\"Gantt\",filemanager:\"File Manager\"};function f(e,r=\"PrimeUI\"){switch(e){case\"active\":return`${r} license is active.`;case\"grace\":return`${r} license is in its grace period. Renew soon to keep using this version.`;case\"expired\":return`${r} license does not cover this version. Renew at primeui.store, or downgrade to a version released within your updates window.`;case\"tampered\":return`${r} license signature is invalid.`;case\"wrong-product\":return`License does not cover ${r}.`;case\"missing\":return`No license key configured for ${r}.`;case\"invalid\":return`${r} license is malformed.`;case\"unconfigured\":return`${r} license is not configured.`;default:return`${r} license status unknown.`}}var m=864e5;function y(e,r,o={}){return((e,r)=>{for(var o in r||(r={}))i.call(r,o)&&a(e,o,r[o]);if(t)for(var o of t(r))n.call(r,o)&&a(e,o,r[o]);return e})({valid:\"active\"===e||\"grace\"===e,status:e,message:f(e,r)},o)}function g(r,t){return o(this,null,function*(){var i,n;const a=t.productLabel;if(\"string\"!=typeof r||!r.includes(\".\"))return y(\"invalid\",a);const o=r.split(\".\");if(2!==o.length)return y(\"invalid\",a);const[c,d]=o;let p,f,g;try{p=function(e){const r=u(e),t=(new TextDecoder).decode(r);return JSON.parse(t)}(c)}catch(e){return y(\"invalid\",a)}if(!p||\"object\"!=typeof p||\"string\"!=typeof p.product||\"string\"!=typeof p.type||\"number\"!=typeof p.exp||\"number\"!=typeof p.iat||\"string\"!=typeof p.id)return y(\"invalid\",a);try{f=u(d),g=(new TextEncoder).encode(c)}catch(e){return y(\"invalid\",a)}const v=null!=(i=t.publicKeyOverride)?i:\"dae75e66b9f59bebf87d4bb29ca6494f37deccfcc2b132b98ee159ee7505373b\";let h;try{h=function(e){if(e.length%2!=0)throw new Error(\"Invalid hex length\");const r=new Uint8Array(e.length/2);for(let t=0;t<r.length;t++)r[t]=parseInt(e.substr(2*t,2),16);return r}(v)}catch(e){return y(\"invalid\",a)}let b=!1;try{b=yield e.verifyAsync(f,g,h)}catch(e){return y(\"tampered\",a,{payload:p})}if(!b)return y(\"tampered\",a,{payload:p});if(!function(e,r){return e.product===r||!(!r.startsWith(l)||e.product!==s||\"commercial\"!==e.tier)}(p,t.product))return y(\"wrong-product\",a,{payload:p});const w=1e3*p.exp,x=Date.now(),D=Math.floor((w-x)/m),O=function(e){if(void 0===e)return null;if(\"number\"==typeof e)return 1e3*e;const r=Date.parse(e);return Number.isNaN(r)?null:r}(t.releaseDate);if(null!==O&&O>w)return y(\"expired\",a,{daysUntilExpiry:D,payload:p});if(function(e){return\"oem\"===e.type||\"community\"===e.tier}(p)){if(x>w+(null!=(n=t.graceDays)?n:30)*m)return y(\"expired\",a,{daysUntilExpiry:D,payload:p});if(x>w)return y(\"grace\",a,{daysUntilExpiry:D,payload:p})}return y(\"active\",a,{daysUntilExpiry:D,payload:p})})}function v(e,r){return{valid:!1,status:e,message:f(e,r)}}function h(e,r){const t=null==r?void 0:r.graceDays,i=null==r?void 0:r.publicKeyOverride;return{verify(r,n){return o(this,null,function*(){var a;const o=d[r],u=null!=(a=p[r])?a:\"PrimeUI\",c=null==n?void 0:n.releaseDate;if(!o)return v(\"invalid\",u);const s=e[r],f=e.primeui;if(s){const e=yield g(s,{product:o,productLabel:u,releaseDate:c,graceDays:t,publicKeyOverride:i});if(e.valid)return e;if(\"wrong-product\"!==e.status)return e}return f&&\"primeui\"!==r&&o.startsWith(l)?g(f,{product:o,productLabel:u,releaseDate:c,graceDays:t,publicKeyOverride:i}):v(s?\"wrong-product\":\"missing\",u)})},has(r){const t=d[r];return!!t&&(!!e[r]||\"primeui\"!==r&&t.startsWith(l)&&!!e.primeui)}}}var b=null;function w(e,r){if(!e)throw new Error(\"[@primeui/license-manager] registerLicense: keys argument is required.\");return b=h(e,r)}function x(){return b}function D(e,r){var t;if(!b){const r=null!=(t=p[e])?t:\"PrimeUI\";return Promise.resolve({valid:!1,status:\"unconfigured\",message:f(\"unconfigured\",r)})}return b.verify(e,r)}export{c as GRACE_DAYS,s as PRIMEUI_PRODUCT,l as PRIMEUI_PRO_PREFIX,d as PRODUCT_MAP,p as SHORT_NAME_LABELS,h as createLicenseService,f as formatLicenseMessage,x as getLicenseService,w as registerLicense,g as verify,D as verifyLicense};","'use client';\nimport { showInvalidLicenseBanner } from '@primereact/core/license';\nimport { LocaleProvider } from '@primereact/core/locale';\nimport { PassThroughProvider } from '@primereact/core/passthrough';\nimport { ThemeProvider } from '@primereact/core/theme';\nimport { useProps } from '@primereact/hooks';\nimport type { PrimeReactProps } from '@primereact/types/core';\nimport { registerLicense, verifyLicense } from '@primeui/license-manager';\nimport { resolve } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultConfigProps } from './PrimeReact.props';\n\nconst RELEASE_DATE = '2026-06-28';\n\nexport const PrimeReactContext = React.createContext<PrimeReactProps | undefined>(undefined);\n\nexport function PrimeReactProvider(inProps: React.PropsWithChildren<PrimeReactProps> = {}) {\n const { props, attrs } = useProps(defaultConfigProps, inProps);\n\n // states\n const [inputVariant, setInputVariant] = React.useState(props.inputVariant);\n const [defaults, setDefaults] = React.useState(props.defaults);\n const [zIndex, setZIndex] = React.useState(props.zIndex);\n\n React.useEffect(() => {\n if (props.license) registerLicense({ primeui: props.license });\n\n verifyLicense('primeui', { releaseDate: RELEASE_DATE }).then((result) => {\n if (!result.valid) {\n // eslint-disable-next-line no-console\n console.warn(`[PrimeUI] ${result.message}`);\n showInvalidLicenseBanner();\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const value = React.useMemo(\n () => ({\n inputVariant,\n setInputVariant,\n defaults,\n setDefaults,\n zIndex,\n setZIndex\n }),\n [inputVariant, defaults, zIndex]\n );\n const resolvedChildren = React.useMemo(() => resolve(attrs.children, value) as React.ReactNode, [attrs.children, value]);\n\n return (\n <PrimeReactContext.Provider value={value}>\n <LocaleProvider lang={props.locale}>\n <PassThroughProvider value={props.pt} {...props.ptOptions}>\n <ThemeProvider preset={props.theme?.preset} stylesheet={props.stylesheet} {...props.theme?.options}>\n {resolvedChildren}\n </ThemeProvider>\n </PassThroughProvider>\n </LocaleProvider>\n </PrimeReactContext.Provider>\n );\n}\n","import { FilterMatchMode } from '@primereact/core/api';\nimport type { PrimeReactProps } from '@primereact/types/core';\n\nexport const defaultConfigProps: PrimeReactProps = {\n csp: { nonce: undefined },\n defaults: undefined,\n filterMatchModeOptions: {\n text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n },\n inputVariant: undefined,\n locale: 'en',\n pt: undefined,\n ptOptions: { mergeSections: true, mergeProps: false },\n ripple: false,\n theme: undefined,\n stylesheet: undefined,\n unstyled: false,\n zIndex: { modal: 1100, overlay: 1000, menu: 1000, tooltip: 1100 },\n license: undefined\n};\n","import { LocaleContext } from '@primereact/core/locale';\nimport { PassThroughContext } from '@primereact/core/passthrough';\nimport { ThemeContext } from '@primereact/core/theme';\nimport * as React from 'react';\nimport { PrimeReactContext } from './PrimeReact.context';\n\nexport function usePrimeReact() {\n const config = React.useContext(PrimeReactContext);\n const locale = React.useContext(LocaleContext);\n const passthrough = React.useContext(PassThroughContext);\n const theme = React.useContext(ThemeContext);\n\n if (config === undefined) {\n throw new Error('[PrimeReact] PrimeReactProvider not found. Wrap your application in <PrimeReactProvider> before using PrimeReact components.');\n }\n\n return React.useMemo(\n () => ({\n config,\n locale,\n passthrough,\n theme\n }),\n [config, locale, passthrough, theme]\n );\n}\n","import { usePrimeReact } from '@primereact/core/config';\nimport { useAttrSelector, useId, useProps } from '@primereact/hooks';\nimport type { BaseInstance, BaseSetup, CommonInstance, Instance, useBaseOptions } from '@primereact/types/core';\nimport { resolve, toKebabCase } from '@primeuix/utils';\nimport * as React from 'react';\n\n/**\n * A custom hook for creating a base instance.\n * This hook is used to initialize a base instance with common properties and methods.\n * It handles props, attributes, and provides a setup function for additional configuration.\n * @param name The name of the base instance.\n * @param options The options for the base instance.\n * @returns The base instance.\n */\nexport const useBase = <IProps extends { id?: string; ref?: React.Ref<unknown> }, DProps, Exposes extends Record<PropertyKey, unknown>>(name: string = 'UnknownBase', options: useBaseOptions<IProps, DProps, Exposes>) => {\n const $primereact = usePrimeReact();\n const { type, inProps, defaultProps, setup } = options || {};\n\n const id = useId(inProps?.id as string | undefined);\n const $attrSelector = useAttrSelector('pc_');\n const [scope, part] = React.useMemo(() => name.toLowerCase().split('.'), [name]);\n\n const ref = React.useRef(null);\n const elementRef = React.useRef<HTMLElement | undefined>(undefined);\n\n const base = React.useMemo<BaseInstance<IProps>>(() => {\n return {\n ref,\n elementRef,\n id,\n name,\n type,\n scope,\n part: toKebabCase(part),\n inProps,\n $attrSelector,\n $primereact\n };\n }, [id, inProps, $attrSelector, $primereact, name, type]);\n\n const globalDefaultsConfig = $primereact.config?.defaults;\n const computedDefaultProps = React.useMemo<DProps>(() => {\n const globalDefaults = resolve(globalDefaultsConfig?.[name] || globalDefaultsConfig?.[name.toLowerCase()], base) as { props?: DProps } | undefined;\n\n return { ...defaultProps, ...globalDefaults?.props } as DProps;\n }, [defaultProps, globalDefaultsConfig, name]);\n\n const { props, attrs } = useProps(computedDefaultProps, inProps);\n\n const common = React.useMemo<CommonInstance<typeof props, IProps>>(\n () => ({\n ...base,\n props,\n attrs\n }),\n [base, props, attrs]\n );\n\n const $computedSetup = resolve(setup as BaseSetup<typeof props, IProps, Exposes>, common) as Exposes;\n\n const instance = React.useMemo<Instance<typeof props, IProps, Record<PropertyKey, unknown>, Exposes>>(\n () => ({\n state: {},\n $computedSetup,\n ...$computedSetup,\n ...common,\n elementRef: ($computedSetup?.elementRef ?? elementRef) as React.RefObject<HTMLElement | undefined>\n }),\n [$computedSetup, common]\n );\n\n /*React.useEffect(() => {\n combinedRefs(ref, inProps?.ref);\n }, [inProps?.ref]);\n\n combinedRefs(ref, inProps?.ref);*/\n\n React.useImperativeHandle(ref as React.Ref<Instance<typeof props, IProps, typeof instance.state, Exposes>>, () => instance, [instance]);\n\n return instance;\n};\n","/**\n * Default screen reader announcements for DnD operations.\n */\nimport type { DndAnnouncements, DragData } from '@primereact/types/primitive/dnd';\n\nexport const DEFAULT_ANNOUNCEMENTS: DndAnnouncements = {\n onDragStart: (e) => `Picked up ${(e.active.data as DragData)?.label ?? 'item'}. Use Arrow keys to move, Space or Enter to drop, Escape to cancel.`,\n\n onDragOver: (e) => (e.over ? `Over ${(e.over.data as DragData)?.label ?? 'drop zone'}.` : 'Not over a drop zone.'),\n\n onDragEnd: (e) => {\n if (e.cancelled) return `Drag cancelled. Item returned to original position.`;\n\n if (e.over) return `Dropped on ${(e.over.data as DragData)?.label ?? 'drop zone'}.`;\n\n return 'Dropped.';\n },\n\n onDragCancel: () => 'Drag cancelled. Item returned to original position.',\n\n onSortOver: (info) => `Moved to position ${info.index + 1} of ${info.total}${info.containerId ? ` in ${String(info.containerId)}` : ''}.`\n};\n","/**\n * SSR & DOM utility functions for createDnd.\n * Pure, stateless helpers — no side effects at module level.\n */\nimport type { Point, Rect } from '@primereact/types/primitive/dnd';\n\n// ── SSR Guard ───────────────────────────────────────────────────\n\nexport function isClient(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n// ── Rect Helpers ────────────────────────────────────────────────\n\nexport function getElementRect(el: HTMLElement): Rect {\n const r = el.getBoundingClientRect();\n\n return { x: r.x, y: r.y, width: r.width, height: r.height, top: r.top, right: r.right, bottom: r.bottom, left: r.left };\n}\n\nexport function createRect(x: number, y: number, width: number, height: number): Rect {\n return { x, y, width, height, top: y, right: x + width, bottom: y + height, left: x };\n}\n\nexport function adjustRect(rect: Rect, scrollDelta: Point): Rect {\n return createRect(rect.x - scrollDelta.x, rect.y - scrollDelta.y, rect.width, rect.height);\n}\n\n// ── Geometry ────────────────────────────────────────────────────\n\nexport function distanceBetween(a: Point, b: Point): number {\n return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);\n}\n\nexport function rectCenter(rect: Rect): Point {\n return { x: rect.x + rect.width / 2, y: rect.y + rect.height / 2 };\n}\n\nexport function isPointInRect(point: Point, rect: Rect): boolean {\n return point.x >= rect.left && point.x <= rect.right && point.y >= rect.top && point.y <= rect.bottom;\n}\n\nexport function rectArea(rect: Rect): number {\n return rect.width * rect.height;\n}\n\nexport function intersectionArea(a: Rect, b: Rect): number {\n const x = Math.max(a.left, b.left);\n const y = Math.max(a.top, b.top);\n const w = Math.min(a.right, b.right) - x;\n const h = Math.min(a.bottom, b.bottom) - y;\n\n return w > 0 && h > 0 ? w * h : 0;\n}\n\n// ── Scroll Helpers ──────────────────────────────────────────────\n\nexport function findScrollableAncestor(element: HTMLElement): HTMLElement | null {\n if (!isClient()) return null;\n\n let current = element.parentElement;\n\n while (current && current !== document.documentElement) {\n const style = getComputedStyle(current);\n const scrollableY = (style.overflowY === 'auto' || style.overflowY === 'scroll') && current.scrollHeight > current.clientHeight;\n const scrollableX = (style.overflowX === 'auto' || style.overflowX === 'scroll') && current.scrollWidth > current.clientWidth;\n\n if (scrollableY || scrollableX) return current;\n\n current = current.parentElement;\n }\n\n if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {\n return document.documentElement;\n }\n\n return null;\n}\n\nexport function getScrollPosition(el: HTMLElement): Point {\n if (el === document.documentElement) {\n return { x: window.scrollX, y: window.scrollY };\n }\n\n return { x: el.scrollLeft, y: el.scrollTop };\n}\n\nexport function scrollElement(el: HTMLElement, left: number, top: number): void {\n if (el === document.documentElement) {\n window.scrollBy(left, top);\n } else {\n el.scrollBy(left, top);\n }\n}\n\n// ── Timing ──────────────────────────────────────────────────────\n\nexport function debounce(fn: () => void, ms: number): { call: () => void; cancel: () => void } {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n return {\n call() {\n if (timer !== null) clearTimeout(timer);\n\n timer = setTimeout(() => {\n timer = null;\n fn();\n }, ms);\n },\n cancel() {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n }\n };\n}\n","/**\n * Collision detection strategies for createDnd.\n */\nimport type { CollisionResult, DragData, Point, Rect, UniqueId } from '@primereact/types/primitive/dnd';\nimport { distanceBetween, intersectionArea, isPointInRect, rectArea, rectCenter } from './utils';\n\n// ── Collision Input ─────────────────────────────────────────────\n\nexport interface CollisionInput {\n position: Point;\n activeRect: Rect | null;\n droppables: Array<{ id: UniqueId; rect: Rect; data: DragData; disabled?: boolean }>;\n}\n\n// ── Strategies ──────────────────────────────────────────────────\n\n/**\n * Returns droppables whose rect contains the pointer.\n * Smallest (innermost) droppable wins for nested scenarios.\n */\nfunction pointerWithin(input: CollisionInput): CollisionResult[] {\n const results: CollisionResult[] = [];\n\n for (const d of input.droppables) {\n if (d.disabled) continue;\n\n if (isPointInRect(input.position, d.rect)) {\n const area = rectArea(d.rect);\n\n // Skip zero-area droppables; use inverted area so smallest (innermost) wins\n if (area > 0) {\n results.push({ id: d.id, data: d.data, ratio: 1 / area });\n }\n }\n }\n\n results.sort((a, b) => (b.ratio ?? 0) - (a.ratio ?? 0));\n\n return results;\n}\n\n/**\n * Returns droppables overlapping the active drag rect, sorted by overlap %.\n */\nfunction rectIntersection(input: CollisionInput): CollisionResult[] {\n if (!input.activeRect) return [];\n\n const results: CollisionResult[] = [];\n\n for (const d of input.droppables) {\n if (d.disabled) continue;\n\n const area = intersectionArea(input.activeRect, d.rect);\n\n if (area > 0) {\n const dropArea = rectArea(d.rect);\n\n results.push({ id: d.id, data: d.data, ratio: dropArea > 0 ? area / dropArea : 0 });\n }\n }\n\n results.sort((a, b) => (b.ratio ?? 0) - (a.ratio ?? 0));\n\n return results;\n}\n\n/**\n * Returns droppables sorted by center-to-center distance (closest first).\n */\nfunction closestCenter(input: CollisionInput): CollisionResult[] {\n if (!input.activeRect) return [];\n\n const ac = rectCenter(input.activeRect);\n const results: CollisionResult[] = [];\n\n for (const d of input.droppables) {\n if (d.disabled) continue;\n\n results.push({ id: d.id, data: d.data, distance: distanceBetween(ac, rectCenter(d.rect)) });\n }\n\n results.sort((a, b) => (a.distance ?? Infinity) - (b.distance ?? Infinity));\n\n return results;\n}\n\n/**\n * Returns droppables sorted by average corner-to-corner distance (closest first).\n */\nfunction closestCorners(input: CollisionInput): CollisionResult[] {\n if (!input.activeRect) return [];\n\n const ar = input.activeRect;\n const aCorners: Point[] = [\n { x: ar.left, y: ar.top },\n { x: ar.right, y: ar.top },\n { x: ar.left, y: ar.bottom },\n { x: ar.right, y: ar.bottom }\n ];\n const results: CollisionResult[] = [];\n\n for (const d of input.droppables) {\n if (d.disabled) continue;\n\n const dr = d.rect;\n const dCorners: Point[] = [\n { x: dr.left, y: dr.top },\n { x: dr.right, y: dr.top },\n { x: dr.left, y: dr.bottom },\n { x: dr.right, y: dr.bottom }\n ];\n\n let total = 0;\n\n for (let i = 0; i < 4; i++) total += distanceBetween(aCorners[i], dCorners[i]);\n\n results.push({ id: d.id, data: d.data, distance: total / 4 });\n }\n\n results.sort((a, b) => (a.distance ?? Infinity) - (b.distance ?? Infinity));\n\n return results;\n}\n\n/** All built-in collision strategies. */\nexport const collisionStrategies = { pointerWithin, rectIntersection, closestCenter, closestCorners } as const;\n","/**\n * Sortable collision detection and transform computation for createDnd.\n */\nimport type { DropPosition, Point, Rect, SortDirection, Transform, UniqueId } from '@primereact/types/primitive/dnd';\nimport { distanceBetween, rectCenter } from './utils';\n\n// ── Constants ───────────────────────────────────────────────────\n\n/** Fraction of item height/width for the 'before'/'after' edge zones. Middle = 'inside'. */\nconst EDGE_ZONE_RATIO = 0.25;\n\n// ── Sortable Item-Level Collision ───────────────────────────────\n\nexport interface SortableCollisionInput {\n position: Point;\n items: Array<{ id: UniqueId; rect: Rect }>;\n direction: SortDirection;\n activeId: UniqueId;\n /** When true, the middle zone returns 'inside' (for Tree-like nested drops). */\n allowInsideDrop?: boolean;\n}\n\nexport interface SortableCollisionResult {\n index: number;\n position: 'before' | 'after';\n /** Drop indicator info for visual feedback. */\n targetId: UniqueId | null;\n /** Three-zone position: 'before' | 'after' | 'inside'. Only 'inside' when allowInsideDrop is true. */\n dropPosition: DropPosition;\n /** Rect of the closest target item. */\n targetRect: Rect | null;\n}\n\nexport function sortableCollision(input: SortableCollisionInput): SortableCollisionResult {\n const { position, items, direction, activeId, allowInsideDrop = false } = input;\n const emptyResult: SortableCollisionResult = { index: 0, position: 'before', targetId: null, dropPosition: 'before', targetRect: null };\n\n if (items.length === 0) return emptyResult;\n\n const candidates = items.filter((item) => item.id !== activeId);\n\n if (candidates.length === 0) return emptyResult;\n\n let closestIdx = 0;\n let closestDist = Infinity;\n\n for (let i = 0; i < candidates.length; i++) {\n const center = rectCenter(candidates[i].rect);\n const dist = direction === 'horizontal' ? Math.abs(position.x - center.x) : direction === 'vertical' ? Math.abs(position.y - center.y) : distanceBetween(position, center);\n\n if (dist < closestDist) {\n closestDist = dist;\n closestIdx = i;\n }\n }\n\n const closest = candidates[closestIdx];\n const closestRect = closest.rect;\n const cc = rectCenter(closestRect);\n\n // ── Two-zone position (for sortable index computation) ──────\n let pos: 'before' | 'after';\n\n if (direction === 'horizontal') {\n pos = position.x < cc.x ? 'before' : 'after';\n } else if (direction === 'vertical') {\n pos = position.y < cc.y ? 'before' : 'after';\n } else {\n pos = position.y < cc.y ? 'before' : position.y > cc.y ? 'after' : position.x < cc.x ? 'before' : 'after';\n }\n\n // ── Three-zone drop position (for drop indicator rendering) ─\n let dropPosition: DropPosition;\n\n if (allowInsideDrop) {\n dropPosition = computeDropZone(position, closestRect, direction);\n } else {\n dropPosition = pos;\n }\n\n const originalIdx = items.findIndex((item) => item.id === closest.id);\n\n return {\n index: pos === 'after' ? originalIdx + 1 : originalIdx,\n position: pos,\n targetId: closest.id,\n dropPosition,\n targetRect: closestRect\n };\n}\n\n/**\n * Splits a rect into 3 zones: top/left edge → 'before', middle → 'inside', bottom/right edge → 'after'.\n */\nfunction computeDropZone(pointer: Point, rect: Rect, direction: SortDirection): DropPosition {\n if (direction === 'horizontal') {\n const edgeSize = rect.width * EDGE_ZONE_RATIO;\n\n if (pointer.x < rect.left + edgeSize) return 'before';\n\n if (pointer.x > rect.right - edgeSize) return 'after';\n\n return 'inside';\n }\n\n // Vertical and grid both use Y axis for zone detection\n const edgeSize = rect.height * EDGE_ZONE_RATIO;\n\n if (pointer.y < rect.top + edgeSize) return 'before';\n\n if (pointer.y > rect.bottom - edgeSize) return 'after';\n\n return 'inside';\n}\n\n// ── Transform Engine ────────────────────────────────────────────\n\nexport interface ComputeTransformsInput {\n items: UniqueId[];\n activeId: UniqueId;\n originalIndex: number;\n projectedIndex: number;\n activeRect: Rect | null;\n itemRects: Map<UniqueId, Rect>;\n direction: SortDirection;\n}\n\nexport function computeShiftTransforms(input: ComputeTransformsInput): Map<UniqueId, Transform> {\n const { items, activeId, originalIndex, projectedIndex, activeRect, itemRects, direction } = input;\n const transforms = new Map<UniqueId, Transform>();\n\n if (!activeRect || originalIndex === projectedIndex) return transforms;\n\n const movingForward = projectedIndex > originalIndex;\n\n if (direction === 'grid') {\n // Grid: per-item rect-based shifts for accurate row wrapping\n for (let i = 0; i < items.length; i++) {\n const itemId = items[i];\n\n if (itemId === activeId) continue;\n\n const inRange = movingForward ? i > originalIndex && i <= projectedIndex : i >= projectedIndex && i < originalIndex;\n\n if (!inRange) continue;\n\n let neighborIdx = movingForward ? i - 1 : i + 1;\n\n // Skip over the active item when finding the neighbor\n if (items[neighborIdx] === activeId) {\n neighborIdx = movingForward ? neighborIdx - 1 : neighborIdx + 1;\n }\n\n const neighborId = items[neighborIdx];\n const currentRect = itemRects.get(itemId);\n const neighborRect = neighborId ? itemRects.get(neighborId) : null;\n\n if (currentRect && neighborRect) {\n transforms.set(itemId, {\n x: neighborRect.x - currentRect.x,\n y: neighborRect.y - currentRect.y,\n scaleX: 1,\n scaleY: 1\n });\n }\n }\n } else {\n // Vertical / Horizontal: uniform shift by active item dimensions\n const shiftX = direction === 'horizontal' ? activeRect.width : 0;\n const shiftY = direction === 'vertical' ? activeRect.height : 0;\n\n for (let i = 0; i < items.length; i++) {\n const itemId = items[i];\n\n if (itemId === activeId) continue;\n\n let tx = 0;\n let ty = 0;\n\n if (movingForward) {\n if (i > originalIndex && i <= projectedIndex) {\n tx = -shiftX;\n ty = -shiftY;\n }\n } else {\n if (i >= projectedIndex && i < originalIndex) {\n tx = shiftX;\n ty = shiftY;\n }\n }\n\n if (tx !== 0 || ty !== 0) {\n transforms.set(itemId, { x: tx, y: ty, scaleX: 1, scaleY: 1 });\n }\n }\n }\n\n return transforms;\n}\n\nexport function computeCrossContainerTransforms(input: {\n sourceItems: UniqueId[];\n targetItems: UniqueId[];\n activeId: UniqueId;\n originalIndex: number;\n projectedIndex: number;\n activeRect: Rect | null;\n sourceDirection: SortDirection;\n targetDirection: SortDirection;\n}): { sourceTransforms: Map<UniqueId, Transform>; targetTransforms: Map<UniqueId, Transform> } {\n const { sourceItems, targetItems, activeId, originalIndex, projectedIndex, activeRect, sourceDirection, targetDirection } = input;\n const sourceTransforms = new Map<UniqueId, Transform>();\n const targetTransforms = new Map<UniqueId, Transform>();\n\n if (!activeRect) return { sourceTransforms, targetTransforms };\n\n // Source: items after originalIndex shift backward (filling gap)\n // For grid layouts, uniform shift is insufficient (items reflow), so default to vertical shift\n const srcShiftX = sourceDirection === 'horizontal' ? activeRect.width : 0;\n const srcShiftY = sourceDirection === 'vertical' || sourceDirection === 'grid' ? activeRect.height : 0;\n\n for (let i = 0; i < sourceItems.length; i++) {\n if (sourceItems[i] === activeId) continue;\n\n if (i > originalIndex) {\n sourceTransforms.set(sourceItems[i], { x: -srcShiftX, y: -srcShiftY, scaleX: 1, scaleY: 1 });\n }\n }\n\n // Target: items at and after projectedIndex shift forward (making space)\n const tgtShiftX = targetDirection === 'horizontal' ? activeRect.width : 0;\n const tgtShiftY = targetDirection === 'vertical' || targetDirection === 'grid' ? activeRect.height : 0;\n\n for (let i = 0; i < targetItems.length; i++) {\n if (i >= projectedIndex) {\n targetTransforms.set(targetItems[i], { x: tgtShiftX, y: tgtShiftY, scaleX: 1, scaleY: 1 });\n }\n }\n\n return { sourceTransforms, targetTransforms };\n}\n\n// ── Array Utilities ─────────────────────────────────────────────\n\n/** Immutably moves an item within an array. Returns original array if indices are out of bounds. */\nexport function arrayMove<T>(arr: readonly T[], fromIndex: number, toIndex: number): T[] {\n if (fromIndex < 0 || fromIndex >= arr.length || toIndex < 0 || toIndex > arr.length) {\n return arr.slice();\n }\n\n const result = arr.slice();\n const [item] = result.splice(fromIndex, 1);\n\n result.splice(toIndex, 0, item);\n\n return result;\n}\n\n/** Immutably transfers an item between two arrays. Returns originals if indices are out of bounds. */\nexport function arrayTransfer<T>(source: readonly T[], target: readonly T[], fromIndex: number, toIndex: number): { source: T[]; target: T[] } {\n if (fromIndex < 0 || fromIndex >= source.length || toIndex < 0 || toIndex > target.length) {\n return { source: source.slice(), target: target.slice() };\n }\n\n const newSource = source.slice();\n const [item] = newSource.splice(fromIndex, 1);\n const newTarget = target.slice();\n\n newTarget.splice(toIndex, 0, item);\n\n return { source: newSource, target: newTarget };\n}\n","/**\n * createDnd — Framework-Agnostic Drag & Drop Core\n *\n * Pure JavaScript implementation following the createMotion pattern.\n * Can be wrapped by React, Angular, Vue, Lit, Svelte, Solid etc.\n *\n * - SSR-safe: No DOM access at module level or during creation.\n * - Zero memory leaks: destroy() cleans every listener, timer, observer.\n * - Cross-browser: Uses only standard, well-supported APIs.\n * - Performance: RAF-throttled pointer, zero-reflow scroll pattern, rect caching.\n */\nimport type {\n AutoScrollOptions,\n CollisionResult,\n CollisionStrategy,\n CreateDndOptions,\n DndAnnouncements,\n DndEventMap,\n DndInstance,\n DndState,\n DragData,\n DraggableRegistration,\n DroppableRegistration,\n KeyboardSensorOptions,\n Point,\n PointerSensorOptions,\n Rect,\n SortableContainerRegistration,\n SortableOperationState,\n Transform,\n UniqueId\n} from '@primereact/types/primitive/dnd';\nimport { DEFAULT_ANNOUNCEMENTS } from './announcements';\nimport { type CollisionInput, collisionStrategies } from './collision';\nimport { computeCrossContainerTransforms, computeShiftTransforms, sortableCollision } from './sortable';\nimport { adjustRect, createRect, debounce, distanceBetween, findScrollableAncestor, getElementRect, getScrollPosition, isClient, isPointInRect, rectCenter, scrollElement } from './utils';\n\n// Re-export public utilities\nexport { collisionStrategies } from './collision';\nexport { arrayMove, arrayTransfer } from './sortable';\n\n// ────────────────────────────────────────────────────────────────\n// INTERNAL TYPE\n// ────────────────────────────────────────────────────────────────\n\ntype DndEventHandler<K extends keyof DndEventMap> = (event: DndEventMap[K]) => void;\n\n// ────────────────────────────────────────────────────────────────\n// CREATE DND — MAIN FACTORY\n// ────────────────────────────────────────────────────────────────\n\nexport function createDnd(options?: CreateDndOptions): DndInstance {\n // ── Destroyed Guard ────────────────────────────────────────\n\n let destroyed = false;\n\n function assertAlive(): void {\n if (destroyed) {\n throw new Error('createDnd: instance has been destroyed.');\n }\n }\n\n // ── State ──────────────────────────────────────────────────\n\n let state: DndState = {\n operation: null,\n draggables: new Map(),\n droppables: new Map(),\n sortableContainers: new Map(),\n collisions: [],\n sortable: null\n };\n\n // ── Subscribers (for useSyncExternalStore) ─────────────────\n\n const subscribers = new Set<() => void>();\n let isNotifying = false;\n\n function notify(): void {\n if (isNotifying) return;\n\n isNotifying = true;\n\n try {\n for (const fn of subscribers) fn();\n } finally {\n isNotifying = false;\n }\n }\n\n /**\n * Immutable state update. Creates a new state reference so that\n * useSyncExternalStore detects the change.\n */\n function setState(updater: (prev: DndState) => DndState): void {\n const next = updater(state);\n\n if (next !== state) {\n state = next;\n notify();\n }\n }\n\n // ── Event Emitters (lifecycle events) ──────────────────────\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eventHandlers = new Map<string, Set<(event: any) => void>>();\n\n function emit<K extends keyof DndEventMap>(name: K, data: DndEventMap[K]): void {\n const handlers = eventHandlers.get(name);\n\n if (handlers) {\n for (const fn of handlers) fn(data);\n }\n }\n\n // ── Collision Strategy ─────────────────────────────────────\n\n let activeStrategy: CollisionStrategy = options?.collisionDetection ?? 'pointerWithin';\n\n function getCollisionFn(): (input: CollisionInput) => CollisionResult[] {\n return collisionStrategies[activeStrategy] ?? collisionStrategies.pointerWithin;\n }\n\n // ── Auto-Scroll Config ─────────────────────────────────────\n\n let scrollableEl: HTMLElement | null = null;\n const autoScrollEnabled = options?.autoScroll !== false;\n const autoScrollOpts: AutoScrollOptions = typeof options?.autoScroll === 'object' ? options.autoScroll : {};\n let autoScrollRAF: number | null = null;\n let accumulatedScrollDelta: Point = { x: 0, y: 0 };\n\n // ── Announcements ──────────────────────────────────────────\n\n const announcements: DndAnnouncements = { ...DEFAULT_ANNOUNCEMENTS, ...options?.announcements };\n\n // ── Rect Cache ─────────────────────────────────────────────\n\n const baseRects = new Map<UniqueId, Rect>();\n\n function measureAllRects(): void {\n if (!isClient()) return;\n\n baseRects.clear();\n\n for (const [id, reg] of state.draggables) {\n if (reg.node) baseRects.set(id, getElementRect(reg.node));\n }\n\n for (const [id, reg] of state.droppables) {\n if (reg.node) baseRects.set(id, getElementRect(reg.node));\n }\n\n for (const [id, reg] of state.sortableContainers) {\n if (reg.node) baseRects.set(id, getElementRect(reg.node));\n }\n }\n\n function getAdjustedRectImpl(id: UniqueId, scrollDelta: Point): Rect | null {\n const base = baseRects.get(id);\n\n return base ? adjustRect(base, scrollDelta) : null;\n }\n\n function remeasureRects(): void {\n if (!state.operation) return;\n\n measureAllRects();\n accumulatedScrollDelta = { x: 0, y: 0 };\n runCollisionDetection(state.operation.current);\n }\n\n const debouncedRemeasure = debounce(remeasureRects, 50);\n const debouncedWindowResize = debounce(remeasureRects, 100);\n\n // ── Observers ──────────────────────────────────────────────\n\n let resizeObs: ResizeObserver | null = null;\n let mutationObs: MutationObserver | null = null;\n let scrollCleanup: (() => void) | null = null;\n let windowResizeCleanup: (() => void) | null = null;\n\n function setupResizeObserver(): void {\n if (!isClient() || typeof ResizeObserver === 'undefined') return;\n\n resizeObs = new ResizeObserver(() => debouncedRemeasure.call());\n\n for (const [, reg] of state.sortableContainers) {\n if (reg.node) resizeObs.observe(reg.node);\n }\n }\n\n function setupWindowResize(): void {\n if (!isClient()) return;\n\n const handler = () => debouncedWindowResize.call();\n\n window.addEventListener('resize', handler, { passive: true });\n\n windowResizeCleanup = () => {\n window.removeEventListener('resize', handler);\n debouncedWindowResize.cancel();\n };\n }\n\n /** Observers that live only during an active drag. */\n function setupDragObservers(): void {\n if (!isClient()) return;\n\n // MutationObserver on active containers (childList changes)\n if (typeof MutationObserver !== 'undefined') {\n mutationObs = new MutationObserver(() => debouncedRemeasure.call());\n\n for (const [, reg] of state.sortableContainers) {\n if (reg.node) mutationObs.observe(reg.node, { childList: true });\n }\n }\n\n // Scroll listener (manual scroll detection, separate from auto-scroll)\n const target = scrollableEl ?? window;\n const handler = () => debouncedRemeasure.call();\n\n target.addEventListener('scroll', handler, { passive: true });\n scrollCleanup = () => target.removeEventListener('scroll', handler);\n }\n\n function teardownDragObservers(): void {\n mutationObs?.disconnect();\n mutationObs = null;\n scrollCleanup?.();\n scrollCleanup = null;\n debouncedRemeasure.cancel();\n }\n\n // ── Collision Detection ────────────────────────────────────\n\n function buildDroppableList(scrollDelta: Point): CollisionInput['droppables'] {\n const list: CollisionInput['droppables'] = [];\n const op = state.operation;\n\n if (!op) return list;\n\n const activeReg = state.draggables.get(op.activeId);\n\n // Regular droppables\n for (const [id, reg] of state.droppables) {\n if (reg.disabled) continue;\n\n const rect = getAdjustedRectImpl(id, scrollDelta);\n\n if (!rect) continue;\n\n const scopeMatch = !reg.accept || (activeReg?.scope != null && reg.accept.includes(activeReg.scope));\n const canDrop = reg.canDrop ? reg.canDrop(op.data) : true;\n\n if (scopeMatch && canDrop) {\n list.push({ id, rect, data: reg.data ?? {}, disabled: false });\n }\n }\n\n // Sortable containers also act as droppables\n for (const [id, reg] of state.sortableContainers) {\n if (reg.disabled) continue;\n\n const rect = getAdjustedRectImpl(id, scrollDelta);\n\n if (!rect) continue;\n\n const scopeMatch = !reg.accept || (activeReg?.scope != null && reg.accept.includes(activeReg.scope));\n\n if (scopeMatch) {\n list.push({ id, rect, data: {}, disabled: false });\n }\n }\n\n return list;\n }\n\n function shallowEqualCollisions(a: CollisionResult[], b: CollisionResult[]): boolean {\n if (a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i].id !== b[i].id) return false;\n }\n\n return true;\n }\n\n function runCollisionDetection(position: Point, scrollDelta?: Point): void {\n const op = state.operation;\n\n if (!op) return;\n\n const delta = scrollDelta ?? accumulatedScrollDelta;\n const droppableList = buildDroppableList(delta);\n const activeRect = getAdjustedRectImpl(op.activeId, delta);\n const newCollisions = getCollisionFn()({ position, activeRect, droppables: droppableList });\n const changed = !shallowEqualCollisions(state.collisions, newCollisions);\n\n if (changed) {\n const prevOver = state.collisions[0] ?? null;\n const newOver = newCollisions[0] ?? null;\n\n setState((prev) => ({ ...prev, collisions: newCollisions }));\n\n if (prevOver?.id !== newOver?.id) {\n emit('dragOver', {\n active: { id: op.activeId, data: op.data },\n over: newOver ? { id: newOver.id, data: newOver.data } : null\n });\n }\n }\n\n runSortableCollision(position, delta);\n }\n\n // ── Sortable Collision ─────────────────────────────────────\n\n /** Cached source container for the current drag — avoids O(n*m) scan on every move. */\n let cachedSourceContainer: { containerId: UniqueId; index: number } | null = null;\n\n function findSourceContainer(activeId: UniqueId): { container: SortableContainerRegistration; index: number } | null {\n // Use cached source if available and still valid\n if (cachedSourceContainer) {\n const reg = state.sortableContainers.get(cachedSourceContainer.containerId);\n\n if (reg) {\n const idx = reg.items.indexOf(activeId);\n\n if (idx !== -1) return { container: reg, index: idx };\n }\n\n // Cache is stale (container removed or item moved)\n cachedSourceContainer = null;\n }\n\n for (const [, reg] of state.sortableContainers) {\n const idx = reg.items.indexOf(activeId);\n\n if (idx !== -1) {\n cachedSourceContainer = { containerId: reg.id, index: idx };\n\n return { container: reg, index: idx };\n }\n }\n\n return null;\n }\n\n function transformMapsEqual(a: Map<UniqueId, Transform>, b: Map<UniqueId, Transform>): boolean {\n if (a.size !== b.size) return false;\n\n for (const [key, val] of a) {\n const other = b.get(key);\n\n if (!other || val.x !== other.x || val.y !== other.y) return false;\n }\n\n return true;\n }\n\n function runSortableCollision(position: Point, scrollDelta: Point): void {\n const op = state.operation;\n\n if (!op) return;\n\n const source = findSourceContainer(op.activeId);\n\n if (!source) {\n if (state.sortable !== null) {\n setState((prev) => ({ ...prev, sortable: null }));\n }\n\n return;\n }\n\n const activeReg = state.draggables.get(op.activeId);\n\n // Phase 1: Container-level — which container is pointer over?\n let targetContainer: SortableContainerRegistration | null = null;\n\n for (const [, reg] of state.sortableContainers) {\n const containerRect = getAdjustedRectImpl(reg.id, scrollDelta);\n\n if (!containerRect || !isPointInRect(position, containerRect)) continue;\n\n const scopeMatch = !reg.accept || (activeReg?.scope != null && reg.accept.includes(activeReg.scope));\n\n if (scopeMatch || reg.id === source.container.id) {\n targetContainer = reg;\n break;\n }\n }\n\n if (!targetContainer) targetContainer = source.container;\n\n // Phase 2: Item-level collision within target container\n const itemRects: Array<{ id: UniqueId; rect: Rect }> = [];\n\n for (const itemId of targetContainer.items) {\n const rect = getAdjustedRectImpl(itemId, scrollDelta);\n\n if (rect) itemRects.push({ id: itemId, rect });\n }\n\n const sortResult = sortableCollision({\n position,\n items: itemRects,\n direction: targetContainer.direction,\n activeId: op.activeId,\n allowInsideDrop: targetContainer.allowInsideDrop\n });\n\n const projectedIndex = sortResult.index;\n const isCross = targetContainer.id !== source.container.id;\n\n // Compute transforms\n let allTransforms: Map<UniqueId, Transform>;\n\n if (isCross) {\n const { sourceTransforms, targetTransforms } = computeCrossContainerTransforms({\n sourceItems: source.container.items,\n targetItems: targetContainer.items,\n activeId: op.activeId,\n originalIndex: source.index,\n projectedIndex,\n activeRect: getAdjustedRectImpl(op.activeId, scrollDelta),\n sourceDirection: source.container.direction,\n targetDirection: targetContainer.direction\n });\n\n allTransforms = new Map([...sourceTransforms, ...targetTransforms]);\n } else {\n allTransforms = computeShiftTransforms({\n items: source.container.items,\n activeId: op.activeId,\n originalIndex: source.index,\n projectedIndex,\n activeRect: getAdjustedRectImpl(op.activeId, scrollDelta),\n itemRects: baseRects,\n direction: source.container.direction\n });\n }\n\n // Build drop indicator from sortable collision result\n const dropIndicator = sortResult.targetId != null ? { targetId: sortResult.targetId, position: sortResult.dropPosition, targetRect: sortResult.targetRect } : null;\n\n const newSortable: SortableOperationState = {\n sourceContainerId: source.container.id,\n currentContainerId: targetContainer.id,\n originalIndex: source.index,\n projectedIndex,\n transforms: allTransforms,\n dropIndicator\n };\n\n const prev = state.sortable;\n\n if (\n !prev ||\n prev.currentContainerId !== newSortable.currentContainerId ||\n prev.projectedIndex !== newSortable.projectedIndex ||\n !transformMapsEqual(prev.transforms, newSortable.transforms) ||\n prev.dropIndicator?.targetId !== newSortable.dropIndicator?.targetId ||\n prev.dropIndicator?.position !== newSortable.dropIndicator?.position\n ) {\n setState((prevState) => ({ ...prevState, sortable: newSortable }));\n }\n }\n\n // ── Auto-Scroll Engine ─────────────────────────────────────\n\n function startAutoScroll(): void {\n if (!autoScrollEnabled || !isClient()) return;\n\n if (!scrollableEl) {\n const activeReg = state.draggables.get(state.operation!.activeId);\n\n if (activeReg?.node) scrollableEl = findScrollableAncestor(activeReg.node);\n }\n\n if (!scrollableEl) return;\n\n accumulatedScrollDelta = { x: 0, y: 0 };\n tickAutoScroll();\n }\n\n function stopAutoScroll(): void {\n if (autoScrollRAF !== null) {\n cancelAnimationFrame(autoScrollRAF);\n autoScrollRAF = null;\n }\n\n accumulatedScrollDelta = { x: 0, y: 0 };\n }\n\n function tickAutoScroll(): void {\n const op = state.operation;\n\n if (!op || !scrollableEl) return;\n\n const threshold = autoScrollOpts.threshold ?? 50;\n const speed = autoScrollOpts.speed ?? 15;\n const dir = autoScrollOpts.direction ?? 'both';\n\n const pointer = op.current;\n const containerRect = scrollableEl === document.documentElement ? createRect(0, 0, window.innerWidth, window.innerHeight) : getElementRect(scrollableEl);\n\n let sx = 0;\n let sy = 0;\n\n // Vertical\n if (dir !== 'horizontal') {\n const distTop = pointer.y - containerRect.top;\n const distBottom = containerRect.bottom - pointer.y;\n\n if (distTop >= 0 && distTop < threshold) {\n sy = -speed * (1 - distTop / threshold);\n } else if (distBottom >= 0 && distBottom < threshold) {\n sy = speed * (1 - distBottom / threshold);\n }\n }\n\n // Horizontal\n if (dir !== 'vertical') {\n const distLeft = pointer.x - containerRect.left;\n const distRight = containerRect.right - pointer.x;\n\n if (distLeft >= 0 && distLeft < threshold) {\n sx = -speed * (1 - distLeft / threshold);\n } else if (distRight >= 0 && distRight < threshold) {\n sx = speed * (1 - distRight / threshold);\n }\n }\n\n if (sx !== 0 || sy !== 0) {\n const prevPos = getScrollPosition(scrollableEl);\n\n scrollElement(scrollableEl, sx, sy);\n\n const newPos = getScrollPosition(scrollableEl);\n const actualDx = newPos.x - prevPos.x;\n const actualDy = newPos.y - prevPos.y;\n\n if (actualDx !== 0 || actualDy !== 0) {\n accumulatedScrollDelta = {\n x: accumulatedScrollDelta.x + actualDx,\n y: accumulatedScrollDelta.y + actualDy\n };\n\n // Re-run collision with zero-reflow adjusted rects\n runCollisionDetection(op.current, accumulatedScrollDelta);\n }\n }\n\n autoScrollRAF = requestAnimationFrame(tickAutoScroll);\n }\n\n // ── Drag Lifecycle ─────────────────────────────────────────\n\n function startDrag(event: Event, activeId: UniqueId): void {\n assertAlive();\n\n if (state.operation) return;\n\n const reg = state.draggables.get(activeId);\n\n if (!reg || reg.disabled) return;\n\n const data: DragData = { ...reg.data };\n\n let origin: Point;\n\n if ('clientX' in event) {\n const e = event as PointerEvent;\n\n origin = { x: e.clientX, y: e.clientY };\n } else {\n const rect = reg.node ? getElementRect(reg.node) : null;\n\n origin = rect ? rectCenter(rect) : { x: 0, y: 0 };\n }\n\n setState((prev) => ({\n ...prev,\n operation: { activeId, origin, current: { ...origin }, delta: { x: 0, y: 0 }, data },\n collisions: [],\n sortable: null\n }));\n\n measureAllRects();\n setupDragObservers();\n startAutoScroll();\n\n emit('dragStart', { active: { id: activeId, data, node: reg.node }, event });\n\n runCollisionDetection(origin);\n }\n\n function updateDrag(event: Event, position: Point): void {\n assertAlive();\n\n const op = state.operation;\n\n if (!op) return;\n\n const delta: Point = { x: position.x - op.origin.x, y: position.y - op.origin.y };\n\n setState((prev) => ({\n ...prev,\n operation: prev.operation ? { ...prev.operation, current: position, delta } : null\n }));\n\n runCollisionDetection(position);\n\n const reg = state.draggables.get(op.activeId);\n\n emit('dragMove', {\n active: { id: op.activeId, data: op.data, node: reg?.node ?? null },\n position,\n delta,\n event\n });\n }\n\n function endDrag(event?: Event): void {\n assertAlive();\n\n const op = state.operation;\n\n if (!op) return;\n\n const overCollision = state.collisions[0] ?? null;\n const sortableState = state.sortable;\n\n if (sortableState) {\n const isCross = sortableState.sourceContainerId !== sortableState.currentContainerId;\n\n if (isCross) {\n emit('transfer', {\n activeId: op.activeId,\n from: { containerId: sortableState.sourceContainerId, index: sortableState.originalIndex },\n to: { containerId: sortableState.currentContainerId, index: sortableState.projectedIndex },\n event\n });\n } else if (sortableState.originalIndex !== sortableState.projectedIndex) {\n emit('sort', {\n containerId: sortableState.sourceContainerId,\n activeId: op.activeId,\n fromIndex: sortableState.originalIndex,\n toIndex: sortableState.projectedIndex,\n event\n });\n }\n }\n\n emit('dragEnd', {\n active: { id: op.activeId, data: op.data },\n over: overCollision ? { id: overCollision.id, data: overCollision.data } : null,\n cancelled: false,\n event\n });\n\n cleanupDragState();\n }\n\n function cancelDrag(event?: Event): void {\n assertAlive();\n\n const op = state.operation;\n\n if (!op) return;\n\n emit('dragCancel', { active: { id: op.activeId, data: op.data }, event });\n emit('dragEnd', { active: { id: op.activeId, data: op.data }, over: null, cancelled: true, event });\n\n cleanupDragState();\n }\n\n function cleanupDragState(): void {\n stopAutoScroll();\n teardownDragObservers();\n baseRects.clear();\n accumulatedScrollDelta = { x: 0, y: 0 };\n cachedSourceContainer = null;\n // Clear auto-discovered scrollable element to avoid stale DOM references\n scrollableEl = null;\n\n setState((prev) => ({ ...prev, operation: null, collisions: [], sortable: null }));\n }\n\n // ── Pointer Sensor ─────────────────────────────────────────\n\n const sensorCleanups = new Set<() => void>();\n\n function attachPointerSensor(element: HTMLElement, id: UniqueId, sensorOpts?: PointerSensorOptions): () => void {\n assertAlive();\n\n if (!isClient()) return () => {};\n\n const activationDist = sensorOpts?.activationDistance ?? 5;\n const activationDelay = sensorOpts?.activationDelay ?? 0;\n\n let pending = false;\n let active = false;\n let startPt: Point | null = null;\n let delayTimer: ReturnType<typeof setTimeout> | null = null;\n let delayMet = activationDelay === 0;\n let rafId: number | null = null;\n let pendingPos: Point | null = null;\n let pendingEvent: PointerEvent | null = null;\n\n function cleanup(): void {\n pending = false;\n active = false;\n startPt = null;\n delayMet = activationDelay === 0;\n\n if (delayTimer !== null) {\n clearTimeout(delayTimer);\n delayTimer = null;\n }\n\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n\n pendingPos = null;\n pendingEvent = null;\n\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', onPointerUp);\n document.removeEventListener('pointercancel', onPointerCancel);\n document.removeEventListener('keydown', onEscapeKey);\n document.removeEventListener('contextmenu', onContextMenu);\n }\n\n function processMove(): void {\n if (pendingPos && pendingEvent && active) {\n updateDrag(pendingEvent, pendingPos);\n pendingPos = null;\n pendingEvent = null;\n }\n\n rafId = null;\n }\n\n function onPointerDown(e: PointerEvent): void {\n if (e.button !== 0) return;\n\n if (state.operation) return;\n\n const reg = state.draggables.get(id);\n\n if (reg?.disabled) return;\n\n pending = true;\n startPt = { x: e.clientX, y: e.clientY };\n delayMet = activationDelay === 0;\n\n try {\n element.setPointerCapture(e.pointerId);\n } catch {\n /* noop */\n }\n\n if (activationDelay > 0) {\n delayTimer = setTimeout(() => {\n delayMet = true;\n delayTimer = null;\n }, activationDelay);\n }\n\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', onPointerUp);\n document.addEventListener('pointercancel', onPointerCancel);\n document.addEventListener('keydown', onEscapeKey);\n document.addEventListener('contextmenu', onContextMenu);\n }\n\n function onPointerMove(e: PointerEvent): void {\n if (!pending && !active) return;\n\n if (!startPt) return;\n\n const pos: Point = { x: e.clientX, y: e.clientY };\n\n if (!active) {\n const dist = distanceBetween(startPt, pos);\n\n if (!delayMet) {\n if (dist > activationDist) {\n cleanup();\n }\n\n return;\n }\n\n if (dist < activationDist) return;\n\n active = true;\n pending = false;\n startDrag(e, id);\n\n return;\n }\n\n // RAF-throttled update — store real event for forwarding\n pendingPos = pos;\n pendingEvent = e;\n\n if (rafId === null) {\n rafId = requestAnimationFrame(processMove);\n }\n }\n\n function onPointerUp(e: PointerEvent): void {\n if (active) {\n if (pendingPos) updateDrag(e, pendingPos);\n\n endDrag(e);\n }\n\n try {\n element.releasePointerCapture(e.pointerId);\n } catch {\n /* noop */\n }\n\n cleanup();\n }\n\n function onPointerCancel(e: PointerEvent): void {\n if (active) cancelDrag(e);\n\n try {\n element.releasePointerCapture(e.pointerId);\n } catch {\n /* noop */\n }\n\n cleanup();\n }\n\n function onEscapeKey(e: KeyboardEvent): void {\n if (e.key === 'Escape' && active) {\n cancelDrag(e);\n cleanup();\n }\n }\n\n function onContextMenu(e: Event): void {\n if (active || pending) e.preventDefault();\n }\n\n element.addEventListener('pointerdown', onPointerDown);\n\n const detach = (): void => {\n cleanup();\n element.removeEventListener('pointerdown', onPointerDown);\n sensorCleanups.delete(detach);\n };\n\n sensorCleanups.add(detach);\n\n return detach;\n }\n\n // ── Keyboard Sensor ────────────────────────────────────────\n\n function attachKeyboardSensor(element: HTMLElement, id: UniqueId, sensorOpts?: KeyboardSensorOptions): () => void {\n assertAlive();\n\n if (!isClient()) return () => {};\n\n const step = sensorOpts?.step ?? 25;\n const fastStep = sensorOpts?.fastStep ?? step * 5;\n\n let kbDragging = false;\n\n function onKeyDown(e: KeyboardEvent): void {\n const reg = state.draggables.get(id);\n\n if (reg?.disabled) return;\n\n if (!kbDragging) {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n kbDragging = true;\n startDrag(e, id);\n }\n\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case 'Escape':\n kbDragging = false;\n cancelDrag(e);\n break;\n\n case 'Tab':\n kbDragging = false;\n cancelDrag(e);\n break;\n\n case ' ':\n case 'Enter':\n kbDragging = false;\n endDrag(e);\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n if (!state.operation) break;\n\n if (state.sortable !== null) {\n handleSortMove(e);\n } else {\n const amount = e.shiftKey ? fastStep : step;\n const cur = state.operation.current;\n const newPos: Point = { x: cur.x, y: cur.y };\n\n if (e.key === 'ArrowUp') newPos.y -= amount;\n\n if (e.key === 'ArrowDown') newPos.y += amount;\n\n if (e.key === 'ArrowLeft') newPos.x -= amount;\n\n if (e.key === 'ArrowRight') newPos.x += amount;\n\n updateDrag(e, newPos);\n }\n\n break;\n\n case 'Home':\n case 'End':\n if (state.sortable) handleSortHomeEnd(e);\n\n break;\n }\n }\n\n function handleSortMove(e: KeyboardEvent): void {\n if (!state.operation || !state.sortable) return;\n\n const { currentContainerId, projectedIndex } = state.sortable;\n const container = state.sortableContainers.get(currentContainerId);\n\n if (!container) return;\n\n const isVert = container.direction === 'vertical' || container.direction === 'grid';\n const isHoriz = container.direction === 'horizontal' || container.direction === 'grid';\n\n let newIndex = projectedIndex;\n let newContainerId = currentContainerId;\n\n if ((e.key === 'ArrowUp' && isVert) || (e.key === 'ArrowLeft' && isHoriz)) {\n if (newIndex > 0) newIndex--;\n } else if ((e.key === 'ArrowDown' && isVert) || (e.key === 'ArrowRight' && isHoriz)) {\n const max = container.items.filter((itemId) => itemId !== state.operation!.activeId).length;\n\n if (newIndex < max) newIndex++;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n const adjacent = findAdjacentContainer(currentContainerId, e.key === 'ArrowRight' ? 'right' : 'left');\n\n if (adjacent) {\n newContainerId = adjacent.id;\n newIndex = 0;\n }\n }\n\n if (newIndex !== projectedIndex || newContainerId !== currentContainerId) {\n moveToSortIndex(newContainerId, newIndex, e);\n }\n }\n\n function handleSortHomeEnd(e: KeyboardEvent): void {\n if (!state.operation || !state.sortable) return;\n\n const container = state.sortableContainers.get(state.sortable.currentContainerId);\n\n if (!container) return;\n\n const items = container.items.filter((itemId) => itemId !== state.operation!.activeId);\n const targetId = e.key === 'Home' ? items[0] : items[items.length - 1];\n\n if (targetId != null) {\n const rect = getAdjustedRectImpl(targetId, accumulatedScrollDelta);\n\n if (rect) updateDrag(e, rectCenter(rect));\n }\n }\n\n function moveToSortIndex(containerId: UniqueId, index: number, e: Event): void {\n const container = state.sortableContainers.get(containerId);\n\n if (!container) return;\n\n const items = container.items.filter((itemId) => itemId !== state.operation!.activeId);\n const targetId = items[Math.min(index, items.length - 1)];\n\n if (targetId != null) {\n const rect = getAdjustedRectImpl(targetId, accumulatedScrollDelta);\n\n if (rect) {\n updateDrag(e, rectCenter(rect));\n\n // Scroll target into view\n const targetReg = state.draggables.get(targetId);\n\n if (targetReg?.node) {\n targetReg.node.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n }\n }\n }\n\n function findAdjacentContainer(currentId: UniqueId, direction: 'left' | 'right'): SortableContainerRegistration | null {\n const currentRect = getAdjustedRectImpl(currentId, accumulatedScrollDelta);\n\n if (!currentRect) return null;\n\n const currentCenter = rectCenter(currentRect);\n let closest: SortableContainerRegistration | null = null;\n let closestDist = Infinity;\n\n for (const [cId, reg] of state.sortableContainers) {\n if (cId === currentId) continue;\n\n const rect = getAdjustedRectImpl(cId, accumulatedScrollDelta);\n\n if (!rect) continue;\n\n const center = rectCenter(rect);\n\n if (direction === 'right' && center.x <= currentCenter.x) continue;\n\n if (direction === 'left' && center.x >= currentCenter.x) continue;\n\n const activeReg = state.draggables.get(state.operation!.activeId);\n\n if (reg.accept && activeReg?.scope != null && !reg.accept.includes(activeReg.scope)) continue;\n\n const dist = distanceBetween(currentCenter, center);\n\n if (dist < closestDist) {\n closestDist = dist;\n closest = reg;\n }\n }\n\n return closest;\n }\n\n element.addEventListener('keydown', onKeyDown);\n\n const detach = (): void => {\n if (kbDragging) {\n kbDragging = false;\n cancelDrag();\n }\n\n element.removeEventListener('keydown', onKeyDown);\n sensorCleanups.delete(detach);\n };\n\n sensorCleanups.add(detach);\n\n return detach;\n }\n\n // ── Registration ───────────────────────────────────────────\n\n function registerDraggable(reg: DraggableRegistration): () => void {\n assertAlive();\n\n setState((prev) => {\n const m = new Map(prev.draggables);\n\n m.set(reg.id, reg);\n\n return { ...prev, draggables: m };\n });\n\n return () => {\n if (state.operation?.activeId === reg.id) cancelDrag();\n\n setState((prev) => {\n const m = new Map(prev.draggables);\n\n m.delete(reg.id);\n\n return { ...prev, draggables: m };\n });\n };\n }\n\n function registerDroppable(reg: DroppableRegistration): () => void {\n assertAlive();\n\n setState((prev) => {\n const m = new Map(prev.droppables);\n\n m.set(reg.id, reg);\n\n return { ...prev, droppables: m };\n });\n\n return () => {\n setState((prev) => {\n const m = new Map(prev.droppables);\n\n m.delete(reg.id);\n\n return { ...prev, droppables: m };\n });\n };\n }\n\n function registerSortableContainer(reg: SortableContainerRegistration): () => void {\n assertAlive();\n\n setState((prev) => {\n const m = new Map(prev.sortableContainers);\n\n m.set(reg.id, reg);\n\n return { ...prev, sortableContainers: m };\n });\n\n if (reg.node && resizeObs) resizeObs.observe(reg.node);\n\n return () => {\n if (reg.node && resizeObs) resizeObs.unobserve(reg.node);\n\n setState((prev) => {\n const m = new Map(prev.sortableContainers);\n\n m.delete(reg.id);\n\n return { ...prev, sortableContainers: m };\n });\n };\n }\n\n // ── Announcement Helper ────────────────────────────────────\n\n function getAnnouncement<K extends keyof DndAnnouncements>(type: K, event: Parameters<DndAnnouncements[K]>[0]): string {\n const fn = announcements[type] as ((event: Parameters<DndAnnouncements[K]>[0]) => string) | undefined;\n\n return fn ? fn(event) : '';\n }\n\n // ── Initialize (SSR-guarded) ───────────────────────────────\n\n if (isClient()) {\n setupResizeObserver();\n setupWindowResize();\n }\n\n // ── Public Instance ────────────────────────────────────────\n\n return {\n getState: () => state,\n\n subscribe(listener: () => void): () => void {\n assertAlive();\n subscribers.add(listener);\n\n return () => {\n subscribers.delete(listener);\n };\n },\n\n registerDraggable,\n registerDroppable,\n registerSortableContainer,\n\n startDrag,\n updateDrag,\n endDrag,\n cancelDrag,\n\n on<K extends keyof DndEventMap>(name: K, handler: DndEventHandler<K>): () => void {\n assertAlive();\n\n if (!eventHandlers.has(name)) eventHandlers.set(name, new Set());\n\n const handlers = eventHandlers.get(name)!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fn = handler as (event: any) => void;\n\n handlers.add(fn);\n\n return () => {\n handlers.delete(fn);\n };\n },\n\n attachPointerSensor,\n attachKeyboardSensor,\n\n setScrollableElement(el: HTMLElement | null): void {\n scrollableEl = el;\n },\n\n setCollisionDetection(strategy: CollisionStrategy): void {\n activeStrategy = strategy;\n },\n\n measureRects: measureAllRects,\n\n getAdjustedRect: getAdjustedRectImpl,\n\n getAnnouncement,\n\n destroy(): void {\n if (destroyed) return;\n\n destroyed = true;\n\n // Cancel active drag — emit events before clearing handlers\n if (state.operation) {\n emit('dragCancel', { active: { id: state.operation.activeId, data: state.operation.data } });\n emit('dragEnd', { active: { id: state.operation.activeId, data: state.operation.data }, over: null, cancelled: true });\n stopAutoScroll();\n teardownDragObservers();\n }\n\n // Cleanup sensors\n for (const fn of sensorCleanups) fn();\n sensorCleanups.clear();\n\n // Cleanup observers\n resizeObs?.disconnect();\n resizeObs = null;\n windowResizeCleanup?.();\n windowResizeCleanup = null;\n debouncedRemeasure.cancel();\n debouncedWindowResize.cancel();\n\n // Clear subscriptions\n eventHandlers.clear();\n subscribers.clear();\n\n // Clear cache\n baseRects.clear();\n\n // Reset state\n state = {\n operation: null,\n draggables: new Map(),\n droppables: new Map(),\n sortableContainers: new Map(),\n collisions: [],\n sortable: null\n };\n }\n };\n}\n","'use client';\nimport { Component, withComponent } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport * as React from 'react';\nimport { MotionProvider } from './Motion.context';\nimport { defaultMotionProps } from './Motion.props';\nimport { useMotion } from './useMotion';\n\nexport const Motion = withComponent({\n name: 'Motion',\n defaultProps: defaultMotionProps,\n setup(instance) {\n const motion = useMotion(instance.inProps);\n\n return motion;\n },\n render(instance) {\n const { id, props, state, ptmi, rootProps: headlessRootProps } = instance;\n\n const rootProps = mergeProps(\n {\n id\n },\n ptmi('root'),\n headlessRootProps\n );\n\n return (\n <MotionProvider value={instance}>\n <Component pIf={state.rendered} instance={instance} attrs={rootProps} children={props.children} />\n </MotionProvider>\n );\n }\n});\n","'use client';\nimport { createOptionalContext } from '@primereact/core/utils';\nimport type { MotionInstance } from '@primereact/types/primitive/motion';\n\nexport const [MotionProvider, useMotionContext] = createOptionalContext<MotionInstance>();\n","import type { UseMotionProps } from '@primereact/types/headless/motion';\n\nexport const defaultUseMotionProps: UseMotionProps = {\n elementRef: undefined,\n visible: false,\n mountOnEnter: true,\n unmountOnLeave: true,\n name: undefined,\n type: undefined,\n safe: false,\n disabled: false,\n appear: false,\n enter: true,\n leave: true,\n duration: undefined,\n hideStrategy: 'display',\n cssVarPrefix: undefined,\n enterFromClassName: undefined,\n enterToClassName: undefined,\n enterActiveClassName: undefined,\n leaveFromClassName: undefined,\n leaveToClassName: undefined,\n leaveActiveClassName: undefined,\n onBeforeEnter: undefined,\n onEnter: undefined,\n onAfterEnter: undefined,\n onEnterCancelled: undefined,\n onBeforeLeave: undefined,\n onLeave: undefined,\n onAfterLeave: undefined,\n onLeaveCancelled: undefined\n};\n","import type { MotionProps } from '@primereact/types/primitive/motion';\nimport * as HeadlessMotion from './useMotion.props';\n\nexport const defaultMotionProps: MotionProps = {\n ...HeadlessMotion.defaultUseMotionProps,\n as: 'div'\n};\n","import { withHeadless } from '@primereact/core/headless';\nimport { UseMotionProps } from '@primereact/types/headless/motion';\nimport { nextFrame, toElement } from '@primeuix/utils';\nimport * as React from 'react';\nimport { applyHiddenStyles, getHiddenStyle, resetStyles } from './Motion.utils';\nimport { defaultUseMotionProps } from './useMotion.props';\n\nconst EMPTY_ROOT_PROPS: { style?: React.CSSProperties } = Object.freeze({});\n\nimport type { MotionClassNamesWithPhase, MotionHooksWithPhase, MotionInstance, MotionOptions, MotionPhase, MotionType } from '@primeuix/motion';\nimport {\n getMotionHooks,\n getMotionMetadata,\n mergeOptions,\n removeMotionPhase,\n removeMotionState,\n resolveClassNames,\n resolveCSSVarName,\n resolveDuration,\n setAutoDimensionVariables,\n setDimensionVariables,\n setMotionPhase,\n setMotionState,\n shouldSkipMotion\n} from '@primeuix/motion';\nimport { addClass, removeClass } from '@primeuix/utils';\n\nexport const DEFAULT_MOTION_OPTIONS: MotionOptions = {\n name: 'p',\n safe: true,\n disabled: false,\n enter: true,\n leave: true,\n autoHeight: true,\n autoWidth: false\n};\n\n/**\n * Creates a MotionInstance for the given element with the specified options.\n * @param element - The target element for motion effects.\n * @param options - Configuration options for the motion instance.\n * @returns A MotionInstance that can be used to control the motion.\n */\nexport function createMotion2(element: Element, options?: MotionOptions): MotionInstance {\n if (!element) throw new Error('Element is required.');\n\n const opts: MotionOptions = {};\n let skipMotion = false;\n let classNames: MotionClassNamesWithPhase = {} as MotionClassNamesWithPhase;\n let cancelCurrent: (() => void) | null = null;\n let hooks: MotionHooksWithPhase = {};\n\n const init = (newOpts?: MotionOptions) => {\n Object.assign(opts, mergeOptions(newOpts, DEFAULT_MOTION_OPTIONS));\n if (!opts.enter && !opts.leave) throw new Error('Enter or leave must be true.');\n\n hooks = getMotionHooks(opts);\n skipMotion = shouldSkipMotion(opts);\n classNames = resolveClassNames(opts);\n cancelCurrent = null;\n };\n\n const run = async (phase: MotionPhase): Promise<void> => {\n cancelCurrent?.();\n\n const { onBefore, onStart, onAfter, onCancelled } = hooks[phase] || {};\n const event = { element };\n\n setMotionPhase(element as HTMLElement, phase);\n\n if (skipMotion) {\n onBefore?.(event);\n onStart?.(event);\n onAfter?.(event);\n\n removeMotionPhase(element as HTMLElement);\n\n return;\n }\n\n const { from: fromClass, active: activeClass, to: toClass } = classNames[phase] || {};\n\n onBefore?.(event);\n\n // Set initial dimension variables: enter starts at 0, leave starts at current size\n if (phase === 'enter') {\n setDimensionVariables(element as HTMLElement, opts, '0px');\n } else {\n setAutoDimensionVariables(element as HTMLElement, opts);\n }\n\n addClass(element, fromClass);\n addClass(element, activeClass);\n setMotionState(element as HTMLElement, phase, 'from');\n\n await nextFrame();\n\n // Set target dimension variables: enter goes to auto, leave goes to 0\n if (phase === 'enter') {\n setAutoDimensionVariables(element as HTMLElement, opts);\n } else {\n setDimensionVariables(element as HTMLElement, opts, '0px');\n }\n\n removeClass(element, fromClass);\n addClass(element, toClass);\n setMotionState(element as HTMLElement, phase, 'to');\n onStart?.(event);\n\n return new Promise((resolve) => {\n const duration = resolveDuration(opts.duration, phase);\n\n const cleanup = () => {\n removeClass(element, [toClass, activeClass]);\n cancelCurrent = null;\n removeMotionState(element as HTMLElement);\n removeMotionPhase(element as HTMLElement);\n };\n\n const onDone = () => {\n cleanup();\n onAfter?.(event);\n resolve();\n\n // After enter: set to auto so content can resize naturally\n if (phase === 'enter') {\n setDimensionVariables(element as HTMLElement, opts, 'auto');\n }\n };\n\n cancelCurrent = () => {\n cleanup();\n onCancelled?.(event);\n resolve();\n };\n\n whenEnd(element, opts.type, duration, onDone);\n });\n };\n\n init(options);\n\n const instance: MotionInstance = {\n enter: () => {\n if (!opts.enter) return Promise.resolve();\n\n return run('enter');\n },\n leave: () => {\n if (!opts.leave) return Promise.resolve();\n\n return run('leave');\n },\n cancel: () => {\n cancelCurrent?.();\n cancelCurrent = null;\n },\n update: (newElement?: Element, newOptions?: MotionOptions) => {\n if (!newElement) throw new Error('Element is required.');\n\n element = newElement as HTMLElement;\n instance.cancel();\n init(newOptions);\n }\n };\n\n if (opts.appear) instance.enter();\n\n return instance;\n}\n\nlet endId = 0;\n\n/**\n * Ported from Vue.js Transition Component;\n * @see https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/components/Transition.ts#L348\n *\n * When the transition is triggered, it waits for the end of the motion (transition or animation)\n * @param element - The element to wait for the motion end.\n * @param expectedType - The expected type of motion (transition or animation).\n * @param explicitTimeout - An optional explicit timeout in milliseconds.\n * @param resolve - A function to call when the motion ends.\n * @returns A timeout ID if an explicit timeout is provided, otherwise undefined.\n */\nfunction whenEnd(element: Element & { _motionEndId?: number }, expectedType: MotionType | undefined, explicitTimeout: number | null, resolve: () => void) {\n const id = (element._motionEndId = ++endId);\n\n const resolveIfNotStale = () => {\n if (id === element._motionEndId) {\n resolve();\n }\n };\n\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n\n const { type, timeout, count } = getMotionMetadata(element, expectedType);\n\n if (!type) {\n resolve();\n\n return;\n }\n\n const endEvent = type + 'end';\n let ended = 0;\n\n const end = () => {\n element.removeEventListener(endEvent, onEnd, true);\n resolveIfNotStale();\n };\n\n const onEnd = (event: Event) => {\n if (event.target === element && ++ended >= count) {\n end();\n }\n };\n\n element.addEventListener(endEvent, onEnd, { capture: true, once: true });\n setTimeout(() => {\n if (ended < count) {\n end();\n }\n }, timeout + 1);\n}\n\nexport const useMotion = withHeadless({\n name: 'useMotion',\n defaultProps: defaultUseMotionProps,\n setup({ props, elementRef }) {\n const [renderedState, setRenderedState] = React.useState(() => (props.visible && props.mountOnEnter) || !props.mountOnEnter);\n\n const state = {\n rendered: renderedState\n };\n\n // refs\n const motionRef = React.useRef<MotionInstance | undefined>(undefined);\n const isInitialMount = React.useRef(true);\n\n // helpers\n const getElement = React.useCallback(() => toElement(props.elementRef) ?? elementRef?.current, [props.elementRef, elementRef]);\n\n // methods\n const enter = React.useCallback(() => motionRef.current?.enter(), []);\n const leave = React.useCallback(() => motionRef.current?.leave(), []);\n const cancel = React.useCallback(() => motionRef.current?.cancel(), []);\n const update = React.useCallback((element?: Element, motionProps: UseMotionProps = {}) => {\n if (!element) {\n return;\n }\n\n const options: MotionOptions = {\n ...motionProps,\n enterClass: {\n from: motionProps.enterFromClassName,\n to: motionProps.enterToClassName,\n active: motionProps.enterActiveClassName\n },\n leaveClass: {\n from: motionProps.leaveFromClassName,\n to: motionProps.leaveToClassName,\n active: motionProps.leaveActiveClassName\n }\n };\n\n if (!motionRef.current) {\n motionRef.current = createMotion2(element, options);\n } else {\n motionRef.current?.update(element, options);\n }\n }, []);\n\n // effects\n React.useLayoutEffect(() => {\n return () => {\n const element = getElement();\n\n resetStyles(element, props.hideStrategy);\n\n isInitialMount.current = true;\n };\n }, []);\n\n React.useLayoutEffect(() => {\n if (props.visible && !renderedState) {\n setRenderedState(true);\n }\n }, [props.visible]);\n\n React.useLayoutEffect(() => {\n const element = getElement();\n\n update?.(element, props);\n }, []);\n\n React.useLayoutEffect(() => {\n const element = getElement();\n\n if (!element || !renderedState) {\n if (element && !props.visible) {\n applyHiddenStyles(element, props.hideStrategy);\n }\n\n isInitialMount.current = false;\n\n return;\n }\n\n let cancelled = false;\n const shouldAppear = isInitialMount.current && props.visible && props.appear;\n\n resetStyles(element, props.hideStrategy);\n update?.(element, props);\n\n if (props.visible) {\n if (shouldAppear || !isInitialMount.current) {\n enter?.();\n } else if (props.cssVarPrefix) {\n // Initial mount with visible=true and no appear animation.\n // createMotion sets CSS vars to 0px, so we need to override them to auto\n // to ensure the content is visible immediately.\n const widthVar = resolveCSSVarName(props.cssVarPrefix, 'width');\n const heightVar = resolveCSSVarName(props.cssVarPrefix, 'height');\n\n element.style.setProperty(widthVar, 'auto');\n element.style.setProperty(heightVar, 'auto');\n }\n } else {\n leave?.()?.then(() => {\n if (!element || cancelled || props.visible) return;\n\n if (props.unmountOnLeave) {\n applyHiddenStyles(element, props.hideStrategy);\n nextFrame().then(() => {\n if (!cancelled) setRenderedState(false);\n });\n } else {\n applyHiddenStyles(element, props.hideStrategy);\n }\n });\n }\n\n isInitialMount.current = false;\n\n return () => {\n cancelled = true;\n cancel?.();\n };\n }, [props.visible, renderedState, props.unmountOnLeave, props.appear, getElement]);\n\n const rootProps = React.useMemo<{ style?: React.CSSProperties }>(() => {\n if (!props.visible && !renderedState) {\n const widthVar = resolveCSSVarName(props.cssVarPrefix, 'width');\n const heightVar = resolveCSSVarName(props.cssVarPrefix, 'height');\n\n return {\n style: {\n ...getHiddenStyle(props.hideStrategy),\n [widthVar]: '0px',\n [heightVar]: '0px'\n } as React.CSSProperties\n };\n }\n\n return EMPTY_ROOT_PROPS;\n }, [props.visible, renderedState, props.hideStrategy, props.cssVarPrefix]);\n\n return {\n state,\n // methods\n enter,\n leave,\n cancel,\n update,\n // props getters\n rootProps\n };\n }\n});\n","import type * as React from 'react';\n\nconst originalStyles = new WeakMap<HTMLElement, { display?: string; visibility?: string; maxHeight?: string }>();\n\nconst HIDDEN_STYLE_DISPLAY: React.CSSProperties = Object.freeze({ display: 'none' });\nconst HIDDEN_STYLE_VISIBILITY: React.CSSProperties = Object.freeze({ visibility: 'hidden', maxHeight: '0' });\n\nexport function getHiddenStyle(strategy?: 'display' | 'visibility' | 'none'): React.CSSProperties | undefined {\n switch (strategy) {\n case 'display':\n return HIDDEN_STYLE_DISPLAY;\n case 'visibility':\n return HIDDEN_STYLE_VISIBILITY;\n default:\n return undefined;\n }\n}\n\nexport function applyHiddenStyles(element?: HTMLElement, strategy?: 'display' | 'visibility' | 'none') {\n if (!element) return;\n\n if (!originalStyles.has(element)) {\n originalStyles.set(element, {\n display: element.style.display === 'none' ? '' : element.style.display,\n visibility: element.style.visibility === 'hidden' ? '' : element.style.visibility,\n maxHeight: element.style.maxHeight === '0' ? '' : element.style.maxHeight\n });\n }\n\n const hiddenStyle = getHiddenStyle(strategy);\n\n if (hiddenStyle) {\n Object.assign(element.style, hiddenStyle);\n }\n}\n\nexport function resetStyles(element?: HTMLElement, strategy?: 'display' | 'visibility' | 'none') {\n if (!element) return;\n\n const original = originalStyles.get(element);\n\n switch (strategy) {\n case 'display':\n element.style.display = original?.display ?? '';\n break;\n case 'visibility':\n element.style.visibility = original?.visibility ?? '';\n element.style.maxHeight = original?.maxHeight ?? '';\n break;\n }\n\n originalStyles.delete(element);\n}\n","import { addClass, removeClass } from '@primeuix/utils';\nimport type { MotionClassNamesWithPhase, MotionHooksWithPhase, MotionInstance, MotionOptions, MotionPhase, MotionType } from '../../types';\nimport { getMotionHooks, getMotionMetadata, mergeOptions, removeMotionPhase, removeMotionState, resolveClassNames, resolveDuration, setAutoDimensionVariables, setDimensionVariables, setMotionPhase, setMotionState, shouldSkipMotion } from '../utils';\n\nexport const DEFAULT_MOTION_OPTIONS: MotionOptions = {\n name: 'p',\n safe: true,\n disabled: false,\n enter: true,\n leave: true,\n autoHeight: true,\n autoWidth: true,\n cssVarPrefix: ''\n};\n\n/**\n * Creates a MotionInstance for the given element with the specified options.\n * @param element - The target element for motion effects.\n * @param options - Configuration options for the motion instance.\n * @returns A MotionInstance that can be used to control the motion.\n */\nexport function createMotion(element: Element, options?: MotionOptions): MotionInstance {\n if (!element) throw new Error('Element is required.');\n\n const opts: MotionOptions = {};\n let skipMotion = false;\n let classNames: MotionClassNamesWithPhase = {} as MotionClassNamesWithPhase;\n let cancelCurrent: (() => void) | null = null;\n let hooks: MotionHooksWithPhase = {};\n\n const init = (newOpts?: MotionOptions) => {\n Object.assign(opts, mergeOptions(newOpts, DEFAULT_MOTION_OPTIONS));\n if (!opts.enter && !opts.leave) throw new Error('Enter or leave must be true.');\n\n hooks = getMotionHooks(opts);\n skipMotion = shouldSkipMotion(opts);\n classNames = resolveClassNames(opts);\n cancelCurrent = null;\n };\n\n const run = async (phase: MotionPhase): Promise<void> => {\n cancelCurrent?.();\n\n const el = element as HTMLElement;\n const { onBefore, onStart, onAfter, onCancelled } = hooks[phase] || {};\n const event = { element };\n\n setMotionPhase(el, phase);\n\n if (skipMotion) {\n onBefore?.(event);\n onStart?.(event);\n onAfter?.(event);\n\n removeMotionPhase(el);\n\n return;\n }\n\n const { from: fromClass, active: activeClass, to: toClass } = classNames[phase] || {};\n\n onBefore?.(event);\n\n // \"from\" state\n if (phase === 'enter') {\n setDimensionVariables(el, opts, '0px');\n } else if (phase === 'leave') {\n setAutoDimensionVariables(el, opts);\n }\n\n addClass(el, fromClass);\n addClass(el, activeClass);\n setMotionState(el, phase, 'from');\n\n void el.offsetHeight; // force reflow\n\n // \"to\" state\n if (phase === 'enter') {\n setAutoDimensionVariables(el, opts);\n } else if (phase === 'leave') {\n setDimensionVariables(el, opts, '0px');\n }\n\n removeClass(el, fromClass);\n addClass(el, toClass);\n setMotionState(el, phase, 'to');\n onStart?.(event);\n\n return new Promise((resolve) => {\n const duration = resolveDuration(opts.duration, phase);\n\n const cleanup = () => {\n removeClass(el, [toClass, activeClass]);\n cancelCurrent = null;\n removeMotionState(el);\n removeMotionPhase(el);\n };\n\n const onDone = () => {\n cleanup();\n onAfter?.(event);\n resolve();\n\n if (phase === 'enter') {\n setDimensionVariables(el, opts, 'auto');\n } else if (phase === 'leave') {\n setDimensionVariables(el, opts, '0px');\n }\n };\n\n cancelCurrent = () => {\n cleanup();\n onCancelled?.(event);\n resolve();\n };\n\n whenEnd(el, opts.type, duration, onDone);\n });\n };\n\n init(options);\n setDimensionVariables(element as HTMLElement, opts, '0px');\n\n const instance: MotionInstance = {\n enter: () => {\n if (!opts.enter) return Promise.resolve();\n\n return run('enter');\n },\n leave: () => {\n if (!opts.leave) return Promise.resolve();\n\n return run('leave');\n },\n cancel: () => {\n cancelCurrent?.();\n cancelCurrent = null;\n },\n update: (newElement?: Element, newOptions?: MotionOptions) => {\n if (!newElement) throw new Error('Element is required.');\n\n element = newElement as HTMLElement;\n instance.cancel();\n init(newOptions);\n }\n };\n\n if (opts.appear) instance.enter();\n\n return instance;\n}\n\nlet endId = 0;\n\n/**\n * Ported from Vue.js Transition Component;\n * @see https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/components/Transition.ts#L348\n *\n * When the transition is triggered, it waits for the end of the motion (transition or animation)\n * @param element - The element to wait for the motion end.\n * @param expectedType - The expected type of motion (transition or animation).\n * @param explicitTimeout - An optional explicit timeout in milliseconds.\n * @param resolve - A function to call when the motion ends.\n * @returns A timeout ID if an explicit timeout is provided, otherwise undefined.\n */\nfunction whenEnd(element: Element & { _motionEndId?: number }, expectedType: MotionType | undefined, explicitTimeout: number | null, resolve: () => void) {\n const id = (element._motionEndId = ++endId);\n\n const resolveIfNotStale = () => {\n if (id === element._motionEndId) {\n resolve();\n }\n };\n\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n\n const { type, timeout, count } = getMotionMetadata(element, expectedType);\n\n if (!type) {\n resolve();\n\n return;\n }\n\n const endEvent = type + 'end';\n let ended = 0;\n\n const end = () => {\n element.removeEventListener(endEvent, onEnd, true);\n resolveIfNotStale();\n };\n\n const onEnd = (event: Event) => {\n if (event.target === element && ++ended >= count) {\n end();\n }\n };\n\n element.addEventListener(endEvent, onEnd, { capture: true, once: true });\n setTimeout(() => {\n if (ended < count) {\n end();\n }\n }, timeout + 1);\n}\n","import { getHiddenElementDimensions, isPrefersReducedMotion, setCSSProperty, toMs } from '@primeuix/utils';\nimport type { MotionClassNamesWithPhase, MotionHooksWithPhase, MotionMetadata, MotionOptions, MotionPhase, MotionState, MotionType } from '../../types';\n\nexport const ANIMATION = 'animation';\nexport const TRANSITION = 'transition';\nexport const DATA_ATTRS = ['data-enter-phase', 'data-enter-from', 'data-enter-to', 'data-enter-active', 'data-leave-phase', 'data-leave-from', 'data-leave-to', 'data-leave-active'] as const;\n\n/**\n * Determines whether motion effects should be skipped based on the provided options.\n * @param options - The motion options to evaluate.\n * @returns A boolean indicating whether motion should be skipped.\n */\nexport function shouldSkipMotion(options: MotionOptions | undefined): boolean {\n if (!options) {\n return false;\n }\n\n return options.disabled || !!(options.safe && isPrefersReducedMotion());\n}\n\n/**\n * Merges the provided motion options with the default options.\n * @param inOptions - The motion options to merge.\n * @param defaultOptions - The default motion options.\n * @returns The merged motion options.\n */\nexport function mergeOptions(inOptions: MotionOptions | undefined, defaultOptions: MotionOptions): MotionOptions {\n if (!inOptions) {\n return defaultOptions;\n }\n\n return {\n ...inOptions,\n ...(Object.entries(defaultOptions).reduce((acc: Record<string, unknown>, [key, value]) => {\n acc[key] = (inOptions as Record<string, unknown>)[key] ?? value;\n\n return acc;\n }, {}) as MotionOptions)\n };\n}\n\n/**\n * Resolves class names for motion phases based on the provided options.\n * @param options - The motion options containing class names and base name.\n * @returns The resolved class names organized by motion phase.\n */\nexport function resolveClassNames(options: MotionOptions | undefined): MotionClassNamesWithPhase {\n const { name, enterClass, leaveClass } = options || {};\n\n return {\n enter: {\n from: enterClass?.from || `${name}-enter-from`,\n to: enterClass?.to || `${name}-enter-to`,\n active: enterClass?.active || `${name}-enter-active`\n },\n leave: {\n from: leaveClass?.from || `${name}-leave-from`,\n to: leaveClass?.to || `${name}-leave-to`,\n active: leaveClass?.active || `${name}-leave-active`\n }\n };\n}\n\n/**\n * Retrieves the motion hooks organized by phase based on the provided options.\n * @param options - The motion options containing hooks.\n * @returns The motion hooks organized by phase.\n */\nexport function getMotionHooks(options: MotionOptions | undefined): MotionHooksWithPhase {\n return {\n enter: {\n onBefore: options?.onBeforeEnter,\n onStart: options?.onEnter,\n onAfter: options?.onAfterEnter,\n onCancelled: options?.onEnterCancelled\n },\n leave: {\n onBefore: options?.onBeforeLeave,\n onStart: options?.onLeave,\n onAfter: options?.onAfterLeave,\n onCancelled: options?.onLeaveCancelled\n }\n };\n}\n\n/**\n * Retrieves motion metadata including type, timeout, and count for the given element.\n * @param element - The target element to retrieve motion metadata from.\n * @param expectedType - The expected type of motion ('transition' or 'animation').\n * @returns The motion metadata including type, timeout, and count.\n */\nexport function getMotionMetadata(element: Element, expectedType?: MotionMetadata['type']): MotionMetadata {\n const styles = window.getComputedStyle(element);\n\n const getDelaysAndDurations = (type: MotionType): [number[], number[]] => {\n const delays = styles[`${type}Delay`];\n const durations = styles[`${type}Duration`];\n\n return [delays.split(', ').map(toMs), durations.split(', ').map(toMs)];\n };\n\n const [transitionDelays, transitionDurations] = getDelaysAndDurations(TRANSITION);\n const [animationDelays, animationDurations] = getDelaysAndDurations(ANIMATION);\n\n const transitionTimeout = Math.max(...transitionDurations.map((d, i) => d + transitionDelays[i]));\n const animationTimeout = Math.max(...animationDurations.map((d, i) => d + animationDelays[i]));\n\n let type: MotionMetadata['type'] = undefined;\n let timeout = 0;\n let count = 0;\n\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n count = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n count = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? (transitionTimeout > animationTimeout ? TRANSITION : ANIMATION) : undefined;\n count = type ? (type === TRANSITION ? transitionDurations.length : animationDurations.length) : 0;\n }\n\n return {\n type,\n timeout,\n count\n };\n}\n\n/**\n * Resolves the duration for a given animation phase.\n * @param duration - The duration can be a number or an object with `enter` and `leave` properties.\n * @param phase - The phase of the transition/animation, either 'enter' or 'leave'.\n * @returns The resolved duration in milliseconds or null if not specified.\n */\nexport function resolveDuration(duration: MotionOptions['duration'], phase: MotionPhase): number | null {\n if (typeof duration === 'number') {\n return duration;\n } else if (typeof duration === 'object' && duration[phase] != null) {\n return duration[phase];\n }\n\n return null;\n}\n\n/**\n * Resolves the CSS variable name based on the provided prefix and variable name.\n * @param prefix - An optional prefix for the CSS variable.\n * @param name - The base name of the CSS variable.\n * @returns The resolved CSS variable name in the format '--prefix-name' or '--name' if no prefix is provided.\n */\nexport function resolveCSSVarName(prefix: string | undefined, name: string): string {\n return prefix ? `--${prefix}-${name}` : `--${name}`;\n}\n\n/**\n * Sets CSS custom properties for height and/or width on the given element based on the motion options.\n * @param element - The target HTML element.\n * @param options - The motion options.\n * @param value - The value to set for the CSS variables. Can be a string for both or an object with `height` and `width` properties.\n */\nexport function setDimensionVariables(element: HTMLElement, options: MotionOptions, value: string | { height: string; width: string }): void {\n const { autoHeight, autoWidth, cssVarPrefix } = options;\n const isObject = typeof value === 'object';\n\n if (autoHeight) {\n setCSSProperty(element, resolveCSSVarName(cssVarPrefix, 'height'), isObject ? value.height : value);\n }\n\n if (autoWidth) {\n setCSSProperty(element, resolveCSSVarName(cssVarPrefix, 'width'), isObject ? value.width : value);\n }\n}\n\n/**\n * Sets CSS custom properties for auto height and/or width on the given element using the element's scroll dimensions.\n * @param element - The target HTML element.\n * @param options - The motion options.\n */\nexport function setAutoDimensionVariables(element: HTMLElement, options: MotionOptions): void {\n if (!options.autoHeight && !options.autoWidth) return;\n\n const dimensions = getHiddenElementDimensions(element);\n\n setDimensionVariables(element, options, {\n height: (element.scrollHeight || dimensions.height) + 'px',\n width: (element.scrollWidth || dimensions.width) + 'px'\n });\n}\n\n/**\n * Sets the current motion phase on the given element.\n * @param element - The target HTML element.\n * @param phase - The current motion phase.\n */\nexport function setMotionPhase(element: HTMLElement, phase: MotionPhase): void {\n element.setAttribute(`data-${phase}-phase`, '');\n}\n\n/**\n * Sets the current motion state on the given element.\n * @param element - The target HTML element.\n * @param phase - The current motion phase.\n * @param state - The current motion state.\n */\nexport function setMotionState(element: HTMLElement, phase: MotionPhase, state: MotionState): void {\n element.removeAttribute('data-enter-from');\n element.removeAttribute('data-enter-to');\n element.removeAttribute('data-leave-from');\n element.removeAttribute('data-leave-to');\n\n element.setAttribute(`data-${phase}-${state}`, '');\n element.setAttribute(`data-${phase}-active`, '');\n}\n\n/**\n * Removes the motion phase attribute from the given element.\n * @param element - The target HTML element.\n */\nexport function removeMotionPhase(element: HTMLElement): void {\n element.removeAttribute('data-enter-phase');\n element.removeAttribute('data-leave-phase');\n}\n\n/**\n * Removes the motion state attributes from the given element.\n * @param element - The target HTML element.\n */\nexport function removeMotionState(element: HTMLElement): void {\n DATA_ATTRS.forEach((attr) => element.removeAttribute(attr));\n}\n","import * as React from 'react';\n\nexport interface OverlayOpenChangeEvent {\n value: boolean | undefined;\n}\n\nexport interface OverlayEntry<P> {\n id: string;\n props: P;\n open: boolean;\n}\n\ntype OverlayItem<P> = OverlayEntry<P>;\n\ninterface OverlaySnapshotEntry {\n id: string;\n open: boolean;\n}\n\ninterface OverlayStore<P> {\n subscribe(listener: () => void): () => void;\n getSnapshot(): OverlayItem<P>[];\n open(id: string, props: P): void;\n close(id?: string): void;\n remove(id: string): void;\n removeAll(): void;\n update(id: string, props: Partial<P>): void;\n getItem(id: string): OverlayItem<P> | undefined;\n isOpen(id: string): boolean;\n isAnyOpen(): boolean;\n}\n\nconst isShallowEqualEntries = (prev: OverlaySnapshotEntry[], next: OverlaySnapshotEntry[]): boolean => {\n if (prev.length !== next.length) return false;\n\n for (let i = 0; i < prev.length; i++) {\n if (prev[i].id !== next[i].id || prev[i].open !== next[i].open) return false;\n }\n\n return true;\n};\n\nfunction createOverlayStore<P>(): OverlayStore<P> {\n const items = new Map<string, OverlayItem<P>>();\n const listeners = new Set<() => void>();\n let snapshot: OverlayItem<P>[] = [];\n let lastEntries: OverlaySnapshotEntry[] = [];\n\n const buildSnapshot = (): boolean => {\n const next = Array.from(items.values());\n const entries = next.map((item) => ({ id: item.id, open: item.open }));\n\n if (isShallowEqualEntries(lastEntries, entries) && next.length === snapshot.length) {\n // Items array updated but identity-stable (same ids + open states + props refs).\n // Still update props references so renders see latest props.\n const propsChanged = next.some((item, i) => item.props !== snapshot[i]?.props);\n\n if (!propsChanged) return false;\n }\n\n snapshot = next;\n lastEntries = entries;\n\n return true;\n };\n\n const emit = () => {\n if (buildSnapshot()) {\n listeners.forEach((l) => l());\n }\n };\n\n return {\n subscribe(listener) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n },\n getSnapshot() {\n return snapshot;\n },\n open(id, props) {\n items.set(id, { id, props, open: true });\n emit();\n },\n close(id) {\n if (id === undefined) {\n let changed = false;\n\n items.forEach((item, key) => {\n if (item.open) {\n items.set(key, { ...item, open: false });\n changed = true;\n }\n });\n\n if (changed) emit();\n\n return;\n }\n\n const item = items.get(id);\n\n if (!item?.open) return;\n\n items.set(id, { ...item, open: false });\n emit();\n },\n remove(id) {\n if (items.delete(id)) emit();\n },\n removeAll() {\n if (items.size === 0) return;\n\n items.clear();\n emit();\n },\n update(id, props) {\n const item = items.get(id);\n\n if (!item) return;\n\n items.set(id, { ...item, props: { ...item.props, ...props } });\n emit();\n },\n getItem(id) {\n return items.get(id);\n },\n isOpen(id) {\n return items.get(id)?.open ?? false;\n },\n isAnyOpen() {\n for (const item of items.values()) if (item.open) return true;\n\n return false;\n }\n };\n}\n\n/**\n * Props the manager injects into every overlay's prop bag. Spread these onto the overlay's\n * root component (e.g. `<Dialog.Root {...rest}>`) — the manager owns open state and lifecycle,\n * so the render function should not wire any of these manually.\n */\nexport interface OverlayInjectedProps {\n /** Stable id of the overlay entry. */\n overlayId: string;\n /** Whether the overlay should currently be open. The manager owns this value. */\n open: boolean;\n /** Fired by the overlay when its open state changes. The manager listens for `value: false` to begin closing the entry. */\n onOpenChange: (event: OverlayOpenChangeEvent) => void;\n /** Fired by the overlay once its leave transition completes. The manager removes the entry from the store. */\n onExitComplete: () => void;\n}\n\n/** Render function passed to `createOverlayManager`. */\nexport type OverlayRenderFn<P> = (props: P & OverlayInjectedProps) => React.ReactNode;\n\n/** Options for `createOverlayManager`. */\nexport interface OverlayManagerOptions<P> {\n /** Default props merged under every entry's caller-supplied props. */\n props?: Partial<P>;\n}\n\n/** Public instance returned from `createOverlayManager`. */\nexport interface OverlayManagerInstance<P> {\n /** Opens (or replaces) the overlay entry under `id`. */\n open: (id: string, props: P) => void;\n /**\n * Begins closing the entry (sets injected `open` to false). The entry is not removed until\n * the overlay's exit transition completes — this lets exit animations finish. Pass no `id`\n * to close every open entry.\n */\n close: (id?: string) => void;\n /**\n * Updates the props of an existing overlay entry. Manager-owned keys (`open`, `onOpenChange`,\n * `onExitComplete`, `overlayId`) are stripped to prevent accidental clobbering.\n */\n update: (id: string, props: Partial<P>) => void;\n /** Removes an entry immediately, skipping the exit animation. */\n remove: (id: string) => void;\n /** Removes every entry immediately. */\n removeAll: () => void;\n /** Whether the entry under `id` is currently open. */\n isOpen: (id: string) => boolean;\n /** Whether any entry is currently open. */\n isAnyOpen: () => boolean;\n /** Returns the user-supplied props for the entry under `id`, or undefined if not found. */\n get: (id: string) => P | undefined;\n /** Returns a snapshot of all current entries (id, open, props). */\n getSnapshot: () => readonly OverlayEntry<P>[];\n /** Replaces the render function. Useful for HMR or per-route render swaps. */\n setRender: (render: OverlayRenderFn<P>) => void;\n /** Renderer component. Mount as `<instance.Viewport />` once in the layout. */\n Viewport: React.ComponentType;\n}\n\ninterface OverlayItemRendererProps<P> {\n item: OverlayItem<P>;\n store: OverlayStore<P>;\n render: { current: OverlayRenderFn<P> };\n defaults: { current: Partial<P> | undefined };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction OverlayItemRenderer<P extends Record<string, any>>({ item, store, render, defaults }: OverlayItemRendererProps<P>) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n const onOpenChange = React.useCallback(\n (event: OverlayOpenChangeEvent) => {\n if (!event.value) store.close(item.id);\n },\n [item.id, store]\n );\n\n const onExitComplete = React.useCallback(() => {\n store.remove(item.id);\n }, [item.id, store]);\n\n return (\n <>\n {render.current({\n ...(defaults.current as P | undefined),\n ...item.props,\n overlayId: item.id,\n open: mounted ? item.open : false,\n onOpenChange,\n onExitComplete\n } as P & OverlayInjectedProps)}\n </>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst buildRenderComponent = <P extends Record<string, any>>(store: OverlayStore<P>, renderHolder: { current: OverlayRenderFn<P> }, defaultsHolder: { current: Partial<P> | undefined }): React.ComponentType => {\n const OverlayManagerRender: React.FC = () => {\n const items = React.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n return (\n <>\n {items.map((item) => (\n <OverlayItemRenderer key={item.id} item={item} store={store} render={renderHolder} defaults={defaultsHolder} />\n ))}\n </>\n );\n };\n\n OverlayManagerRender.displayName = 'OverlayManagerRender';\n\n return OverlayManagerRender;\n};\n\nconst RESERVED_KEYS = ['open', 'onOpenChange', 'onExitComplete', 'overlayId'] as const;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyProps = Record<string, any>;\n\nfunction stripReservedKeys<P extends AnyProps>(props: Partial<P>): Partial<P> {\n const next = { ...props } as AnyProps;\n\n for (const key of RESERVED_KEYS) delete next[key];\n\n return next as Partial<P>;\n}\n\n/**\n * Creates an overlay manager. Mount `<instance.Viewport />` once in the layout, then call\n * `instance.open(id, props)` from anywhere to drive overlays imperatively.\n *\n * @example\n * ```tsx\n * const dialog = createOverlayManager<{ title: string }>(\n * ({ title, ...rest }) => <Dialog.Root {...rest}>{title}</Dialog.Root>\n * );\n *\n * // Layout\n * <dialog.Viewport />\n *\n * // Anywhere\n * dialog.open('greeting', { title: 'Hi' });\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function createOverlayManager<P extends Record<string, any> = Record<string, never>>(render: OverlayRenderFn<P>, options: OverlayManagerOptions<P> = {}): OverlayManagerInstance<P> {\n const store = createOverlayStore<P>();\n const renderHolder = { current: render };\n const defaultsHolder = { current: options.props };\n const Viewport = buildRenderComponent(store, renderHolder, defaultsHolder);\n\n return {\n open: store.open,\n close: store.close,\n remove: store.remove,\n removeAll: store.removeAll,\n update: (id, props) => store.update(id, stripReservedKeys(props)),\n isOpen: store.isOpen,\n isAnyOpen: store.isAnyOpen,\n get: (id) => store.getItem(id)?.props,\n getSnapshot: store.getSnapshot,\n setRender: (next) => {\n renderHolder.current = next;\n },\n Viewport\n };\n}\n","import { StyleSheet, type StyleMeta, type StyleSheetProps } from '@primeuix/styled';\nimport { isEmpty } from '@primeuix/utils';\nimport * as React from 'react';\n\nexport class PrimeReactStyleSheet extends StyleSheet<React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement>> {\n constructor({ attrs }: StyleSheetProps = {}) {\n super({ attrs });\n this._styles.set('layer-order', {});\n }\n has(key: string) {\n if (key === 'layer-order') {\n return this._styles.get(key)?.css !== undefined;\n }\n\n return this._styles.has(key);\n }\n createStyleElement(meta: StyleMeta = {}) {\n const { css, attrs, name } = meta;\n\n if (isEmpty(name)) return undefined;\n\n return (\n <style {...attrs} data-primereact-style-id={name} key={name}>\n {css}\n </style>\n );\n }\n}\n"],"mappings":"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","names":["require_react_production","__commonJSMin","exports","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","type","key","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","nextNamePrefix","i","mapChildren","func","result","count","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","Children","forEachFunc","forEachContext","n","size","fn","config","propName","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react_development","__commonJSMin","exports","module","defineDeprecationWarning","methodName","info","Component","getIteratorFn","maybeIterable","MAYBE_ITERATOR_SYMBOL","warnNoop","publicInstance","callerName","warningKey","didWarnStateUpdateForUnmountedComponent","props","context","updater","emptyObject","ReactNoopUpdateQueue","ComponentDummy","PureComponent","noop","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getComponentNameFromType","type","REACT_CLIENT_REFERENCE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","x","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","config","hasOwnProperty","getter","defineKeyPropWarningGetter","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","key","owner","debugStack","debugTask","refProp","REACT_ELEMENT_TYPE","cloneAndReplaceKey","oldElement","newKey","validateChildKeys","node","isValidElement","object","escape","escaperLookup","match","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","callback","invokeCallback","childKey","isArrayImpl","userProvidedKeyEscapeRegex","c","i","didWarnAboutMaps","mapChildren","func","result","count","child","lazyInitializer","payload","ioInfo","moduleObject","_ioInfo","_ioInfo2","resolveDispatcher","releaseAsyncTransition","enqueueTask","task","enqueueTaskImpl","requireString","_err","didWarnAboutMessageChannel","channel","aggregateErrors","errors","popActScope","prevActQueue","prevActScopeDepth","actScopeDepth","recursivelyFlushAsyncActWork","returnValue","resolve","reject","queue","flushActQueue","isFlushing","continuation","assign","partialState","deprecatedAPIs","fnName","createTask","callStackForError","didWarnAboutOldJSXRuntime","unknownOwnerDebugStack","unknownOwnerDebugTask","reportGlobalError","event","didWarnNoAwaitAct","queueSeveralMicrotasks","size","forEachFunc","forEachContext","n","didAwaitActCall","error$0","_thrownError","returnValue$jscomp$0","fn","getCurrentStack","a","propName","defaultValue","childrenLength","childArray","_i","refObject","render","elementType","ownName","ctor","lazyType","compare","scope","prevTransition","currentTransition","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","formatterFn","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","__commonJSMin","exports","module","src_exports","__export","Component","ConnectedOverlayScrollHandler","DEFAULT_MOTION_OPTIONS","FilterMatchMode","FilterOperator","Icon","LocaleContext","LocaleProvider","Motion","MotionProvider","OverlayEventBus","PassThroughContext","PassThroughProvider","PrimeReactContext","PrimeReactProvider","PrimeReactStyleSheet","StylePreloadRegistry","StyleRegistry","ThemeContext","ThemeProvider","addStylePreloadsToStyleSheet","arrayMove","arrayTransfer","collisionStrategies","combinedRefs","createDnd","createMotion2","createOptionalContext","createOverlayManager","createSafeContext","defaultComponentProps","defaultConfigProps","defaultIconProps","defaultLocaleProps","defaultMotionProps","defaultPTProps","defaultThemeProps","defaultUseMotionProps","defaultUseStyleProps","globalProps","isDev","isElementOfType","isValidElement","mergeRefs","showInvalidLicenseBanner","styles","upsertStylePreloadsToHead","useBase","useComponent","useHeadless","useIcon","useLocale","useMotion","useMotionContext","usePassThrough","usePrimeReact","useStyle","useTheme","withComponent","withHeadless","withIcon","FilterMatchMode","FilterOperator","showInvalidLicenseBanner","host","shadow","React","useAttrSelector","prefix","id","React","cn","args","classes","i","className","type","_classes","key","value","c","isEmpty","value","isFunction","value","isNotEmpty","isEmpty","isObject","value","empty","resolve","obj","params","isFunction","isString","value","empty","toFlatCase","str","getKeyValue","key","fKeys","fKey","isObject","matchedKey","k","isArray","value","empty","isNumber","value","isNotEmpty","matchRegex","str","regex","match","minifyCSS","css","omit","obj","keys","isObject","copy","__spreadValues","key","toKebabCase","str","isString","toMs","value","hasClass","element","className","addClass","fn","_className","_classNames","removeClass","element","className","fn","_className","_classNames","getHiddenElementDimensions","element","dimensions","visibility","display","rect","getParentNode","element","parent","isElement","element","toElement","ref","_a","target","el","resolve","createStyleMarkup","css","attributes","s","k","v","findSingle","element","selector","isElement","getParents","element","parents","parent","getParentNode","getScrollableParents","element","scrollableParents","parents","getParents","overflowRegex","overflowCheck","node","styleDeclaration","e","parent","scrollSelectors","selectors","selector","el","findSingle","isClient","isPrefersReducedMotion","nextFrame","resolve","setCSSProperty","element","property","value","priority","_a","EventBus","allHandlers","type","handler","handlers","evt","cn","args","classes","i","className","type","_classes","key","value","c","isFunction","_mergeProps","skipUndefined","props","merged","ps","__spreadValues","fn","mergeProps","React","React","React","React","React","React","React","useId","initialValue","idx","idState","setIdState","React","React","React","React","useMountEffect","effect","mounted","React","React","React","React","shallowEqual","objA","objB","keysA","keysB","i","key","useProps","props1","props2","prevRef","newProps","__spreadValues","newAttrs","value","prev","result","React","React","React","useUnmountEffect","effect","React","useUpdateEffect","effect","dependencies","mounted","React","React","React","defaultLocaleProps","LocaleContext","LocaleProvider","inProps","attrs","useProps","defaultLocaleProps","value","resolvedChildren","m","React","useLocale","context","LocaleContext","React","defaultPTProps","PassThroughContext","PassThroughProvider","inProps","props","attrs","useProps","defaultPTProps","value","mergeProps","mergeSections","pt","resolvedChildren","m","React","usePassThrough","context","PassThroughContext","combinedRefs","innerRef","forwardRef","ConnectedOverlayScrollHandler","element","listener","At","i","parent","React","createContext","defaultValue","fallback","Context","value","children","resolvedChildren","m","context","createSafeContext","message","createOptionalContext","_a","isDev","mergeRefs","refs","value","ref","e","bus","s","OverlayEventBus","normalizeEntry","entry","_a","_b","sortEntries","entries","a","b","byPriority","StylePreloadRegistry","id","addStylePreloadsToStyleSheet","stylesheet","styles","style","upsertStylePreloadsToHead","styleElement","StyleRegistry","name","_a","current","next","refCount","REACT_ELEMENT","REACT_TRANSITIONAL_ELEMENT","isValidElement","obj","isElementOfType","name","_a","_b","displayName","React","Component","inProps","_b","_c","_e","_f","_g","_a","pIf","style","className","as","asChild","instance","render","props","__objRest","AsComponent","renderAsChild","isFragment","_d","propRef","children","inAttrs","restAttrs","attrs","__spreadValues","content","m","styles","classNames","isValidElement","asProps","__spreadProps","f","asRef","mergeRefs","globalProps","defaultComponentProps","__spreadProps","__spreadValues","Q","React","React","mergeProps","fn","args","c","w","getPTClassValue","obj","key","params","value","R","a","h","getPT","pt","name","getValue","checkSameKey","_a","computedValue","_key","g","_cKey","useComponentPT","instance","$params","id","name","scope","part","props","attrs","$primereact","$attrSelector","passthrough","passthroughValue","passthroughOptions","_usePT","pt","fn","key","params","vfn","value","mergeSections","useMergeProps","originalValue","a","mergeProps","_hook","hookName","selfHook","getPT","R","defaultHook","$globalPT","m","$defaultPT","$attrsPT","result","slot","rest","currentObj","nestedKey","index","array","$attrsWithoutPT","acc","_getPTDatasets","datasetPrefix","s","__spreadProps","__spreadValues","_getPTSelf","obj","componentPT","attrsPT","_useGlobalPT","_useDefaultPT","_getPTValue","searchInDefaultPT","searchOut","global","getPTClassValue","self","datasets","ptm","ptmi","_a","_attrs","w","ptmo","useMountEffect","useUpdateEffect","useUnmountEffect","ThemeService","EventBus","service_default","EXPR_REGEX","CALC_REGEX","VAR_REGEX","toTokenKey","str","isString","c","i","toValue","value","isObject","toNormalizePrefix","prefix","toNormalizeVariable","variable","isString","getVariableName","hasOddBraces","str","openBraces","closeBraces","getVariableValue","value","excludedKeyRegexes","fallback","val","matchRegex","EXPR_REGEX","_val","v","keys","_v","_r","toKebabCase","isNotEmpty","VAR_REGEX","CALC_REGEX","isNumber","setProperty","properties","key","value","isString","getRule","selector","evaluateDtExpressions","input","fn","fastParseArgs","str","args","i","current","quote","depth","c","arg","parseArg","q","num","indices","stack","start","end","inner","resolved","normalizeTokenPath","tokenPath","excludedRegex","segs","token","i","seg","toTokenKey","resolveStrictComponentValue","prefix","fallback","_a","_b","_c","tokens","config_default","cache","cacheKey","raw","result","EXPR_REGEX","selfRoot","resolved","expr","refPath","dot","literal","getVariableValue","$dt","theme","variable","dtwt","name","value","dt","args","type","_d","_e","_f","_g","_h","_i","_j","VARIABLE","cssVariables","isEmpty","matchRegex","css","strings","exprs","acc","str","resolve","evaluateDtExpressions","toVariables_default","theme","options","VARIABLE","config_default","prefix","selector","excludedKeyRegex","tokens","variables","stack","node","path","key","raw","val","toValue","variablePath","matchRegex","toNormalizeVariable","toKebabCase","isObject","varName","getVariableName","varValue","getVariableValue","setProperty","token","declarations","getRule","themeUtils_default","value","rules","k","r","v","_a","rr","name","params","set","defaults","_e","_f","_g","_h","_i","_j","_k","preset","primitive_css","primitive_tokens","semantic_css","semantic_tokens","global_css","global_tokens","style","isNotEmpty","primitive","semantic","extend","colorScheme","sRest","__objRest","_b","eColorScheme","eRest","_c","dark","csRest","_d","eDark","ecsRest","prim_var","sRest_var","csRest_var","csDark_var","eRest_var","ecsRest_var","ecsDark_var","prim_css","prim_tokens","sRest_css","sRest_tokens","csRest_css","csRest_tokens","csDark_css","csDark_tokens","eRest_css","eRest_tokens","ecsRest_css","ecsRest_tokens","ecsDark_css","ecsDark_tokens","semantic_light_css","semantic_dark_css","global_light_css","global_dark_css","resolve","dt","p_css","p_tokens","p_style","_name","css","vRest","evRest","ecsDark","vRest_var","__spreadValues","vRest_css","vRest_tokens","light_variable_css","dark_variable_css","cPreset","dName","dPreset","cssLayer","props","common","_props","acc","_css","minifyCSS","id","preset_css","obj","parentKey","parentPath","resolveExpr","scheme","tokenPathMap","EXPR_REGEX","refPath","refToken","computed","lightV","darkV","resolveLightDarkLiterals","out","len","i","ld","depth","j","commaAt","c","lightArg","darkArg","targetScheme","l","d","computedFn","computedValue","hasLightDark","hasExpr","afterLD","_val","CALC_REGEX","VAR_REGEX","isEmpty","traverse","currentKey","toTokenKey","currentPath","paths","only","effectiveScheme","p","cache","cached","excludedRegex","segs","filtered","s","explicitScheme","entry","result","lightComputed","darkComputed","lightVal","darkVal","selector1","selector2","type","globalSelector","mode","colorSchemeOption","_selector","layerOptions","newValues","__spreadProps","newValue","service_default","layerName","tokenPath","event","StyleSheet","attrs","key","css","isNotEmpty","meta","createStyleMarkup","__spreadProps","__spreadValues","style","stylesheet_default","React","React","useStyle","theme","ThemeContext","_load","loadOptions","name","css","element","options","et","s","root","styleElement","nextCss","load","_a","_b","unload","value","key","defaultUseStyleProps","React","useComponentStyleHandler","styles","elementRef","theme","ThemeContext","load","useStyle","_load","css","options","b","handler","__spreadProps","__spreadValues","style","extendedStyle","enableThemeTransform","name","resolvedStyle","cs","computedStyle","s","Y","params","preset","selector","extendedCSS","props","_css","m","P","_style","_props","acc","k","v","cssArr","_name","useComponentStyle","instance","styles","$params","_a","_b","_c","_d","props","$primereact","$attrSelector","elementRef","$style","useComponentStyleHandler","$isUnstyled","$styleOptions","scopedStyleRef","hasRetainedBaseStyleRef","retainedComponentStyleNameRef","styleContentRef","stylesChangedRef","isDev","nextStyleSource","nextContent","_loadCoreStyles","name","et","__spreadValues","StyleRegistry","hmr","_loadThemeStyles","loadCommonThemeStyles","primitive","semantic","global","style","loadComponentThemeStyles","css","loadLayerOrderStyles","layerOrder","b","_load","_loadScopedThemeStyles","preset","scopedStyle","cx","key","params","f","R","__spreadProps","sx","when","self","base","handleThemeChange","O","useComponent","name","options","defaultProps","__spreadValues","globalProps","baseInstance","useBase","ref","props","$params","ptx","useComponentPT","stx","useComponentStyle","instance","React","withComponent","name","type","defaultProps","styles","components","setup","render","Component","inProps","instance","useComponent","RenderedComponent","__spreadValues","prevProps","nextProps","i","prevRecord","nextRecord","keys","key","prev","next","value","React","defaultIconProps","styles","props","__spreadValues","ns","React","useHeadless","name","options","useBase","withHeadless","name","type","defaultProps","setup","inProps","useHeadless","React","useIcon","withHeadless","attrs","ariaLabel","tabIndex","isAriaLabelEmpty","l","withIcon","name","defaultProps","styles","components","setup","render","withComponent","instance","icon","useIcon","computedSetup","m","__spreadValues","Icon","withIcon","styles","defaultIconProps","instance","id","props","ptmi","pti","cx","sx","rootProps","w","Component","React","defaultThemeProps","ThemeContext","ThemeProvider","inProps","props","useProps","defaultThemeProps","_a","stylesheet","preset","rest","__objRest","value","__spreadValues","b","iconPreloadCSS","Y","cs","styles","s","StylePreloadRegistry","et","addStylePreloadsToStyleSheet","upsertStylePreloadsToHead","m","React","useTheme","context","ThemeContext","ed25519_CURVE","P","N","Gx","Gy","_a","_d","h","L","L2","err","m","isBig","n","isStr","s","isBytes","a","abytes","l","u8n","len","u8fr","buf","padh","pad","bytesToHex","b","e","C","_ch","ch","hexToBytes","hex","hl","al","array","ai","hi","n1","n2","toU8","cr","subtle","_b","concatBytes","arrs","r","sum","randomBytes","big","arange","min","max","msg","M","modN","invert","num","md","x","y","u","v","q","apoint","p","Point","err","B256","_Point","ex","ey","ez","et","__publicField","max","arange","M","hex","zip215","d","_d","normed","u8fr","abytes","L","lastByte","y","bytesToNumLE","P","y2","u","v","isValid","x","uvRatio","isXOdd","isLastByteOdd","a","_a","X","Y","Z","T","X2","Y2","Z2","Z4","aX2","left","right","XY","ZT","other","X1","Y1","Z1","X1Z2","X2Z1","Y1Z2","Y2Z1","I","A","B","C","D","x1y1","E","G","F","H","X3","Y3","T3","Z3","T1","T2","n","safe","N","wNAF","f","z","iz","invert","b","numTo32bLE","bytesToHex","big","h","toU8","Gx","Gy","num","hexToBytes","padh","L2","pow2","power","r","pow_2_252_3","b2","b4","b5","b10","b20","b40","b80","b160","b240","b250","RM1","v3","v7","pow","vx2","root1","root2","useRoot1","useRoot2","noRoot","modL_LE","hash","modN","sha512a","m","etc","hashFinishA","res","sha512a","veriOpts","_verify","sig","msg","pub","opts","toU8","L2","L","zip215","A","R","s","SB","hashable","Point","bytesToNumLE","G","concatBytes","error","hashed","k","modL_LE","verifyAsync","_0","_1","_2","_3","__async","m","p","hashFinishA","etc","messages","__async","s","subtle","m","concatBytes","u8n","bytesToHex","hexToBytes","M","invert","randomBytes","W","scalarBits","pwindows","pwindowSize","precompute","points","p","G","b","w","i","Gpows","ctneg","cnd","wNAF","n","comp","I","f","pow_2_w","maxNum","mask","big","shiftBy","wbits","off","offF","offP","isEven","isNeg","r","t","i","n","a","o","e","u","s","l","d","p","f","r","m","y","o","e","i","a","t","n","g","c","u","v","h","b","verifyAsync","w","x","D","O","D","r","t","b","p","f","React","defaultConfigProps","FilterMatchMode","RELEASE_DATE","PrimeReactContext","PrimeReactProvider","inProps","_a","_b","props","attrs","useProps","defaultConfigProps","inputVariant","setInputVariant","defaults","setDefaults","zIndex","setZIndex","w","D","result","showInvalidLicenseBanner","value","resolvedChildren","m","LocaleProvider","PassThroughProvider","__spreadValues","ThemeProvider","React","usePrimeReact","config","PrimeReactContext","locale","LocaleContext","passthrough","PassThroughContext","theme","ThemeContext","React","useBase","name","options","_a","$primereact","usePrimeReact","type","inProps","defaultProps","setup","id","useId","$attrSelector","useAttrSelector","scope","part","ref","elementRef","base","re","globalDefaultsConfig","computedDefaultProps","globalDefaults","m","__spreadValues","props","attrs","useProps","common","__spreadProps","$computedSetup","instance","DEFAULT_ANNOUNCEMENTS","_a","_b","info","isClient","getElementRect","el","r","createRect","x","y","width","height","adjustRect","rect","scrollDelta","distanceBetween","a","b","rectCenter","isPointInRect","point","rectArea","intersectionArea","w","h","findScrollableAncestor","element","current","style","scrollableY","scrollableX","getScrollPosition","scrollElement","left","top","debounce","fn","ms","timer","pointerWithin","input","results","d","isPointInRect","area","rectArea","a","b","_a","_b","rectIntersection","intersectionArea","dropArea","closestCenter","ac","rectCenter","distanceBetween","closestCorners","ar","aCorners","dr","dCorners","total","i","collisionStrategies","EDGE_ZONE_RATIO","sortableCollision","input","position","items","direction","activeId","allowInsideDrop","emptyResult","candidates","item","closestIdx","closestDist","i","center","rectCenter","dist","distanceBetween","closest","closestRect","cc","pos","dropPosition","computeDropZone","originalIdx","pointer","rect","edgeSize","computeShiftTransforms","originalIndex","projectedIndex","activeRect","itemRects","transforms","movingForward","itemId","neighborIdx","neighborId","currentRect","neighborRect","shiftX","shiftY","tx","ty","computeCrossContainerTransforms","sourceItems","targetItems","sourceDirection","targetDirection","sourceTransforms","targetTransforms","srcShiftX","srcShiftY","tgtShiftX","tgtShiftY","arrayMove","arr","fromIndex","toIndex","result","arrayTransfer","source","target","newSource","newTarget","createDnd","options","_a","destroyed","assertAlive","state","subscribers","isNotifying","notify","fn","setState","updater","next","eventHandlers","emit","name","data","handlers","activeStrategy","getCollisionFn","collisionStrategies","scrollableEl","autoScrollEnabled","autoScrollOpts","autoScrollRAF","accumulatedScrollDelta","announcements","__spreadValues","DEFAULT_ANNOUNCEMENTS","baseRects","measureAllRects","isClient","id","reg","getElementRect","getAdjustedRectImpl","scrollDelta","base","adjustRect","remeasureRects","runCollisionDetection","debouncedRemeasure","debounce","debouncedWindowResize","resizeObs","mutationObs","scrollCleanup","windowResizeCleanup","setupResizeObserver","setupWindowResize","handler","setupDragObservers","target","teardownDragObservers","buildDroppableList","list","op","activeReg","rect","scopeMatch","canDrop","shallowEqualCollisions","a","b","i","position","_b","delta","droppableList","activeRect","newCollisions","prevOver","newOver","prev","__spreadProps","runSortableCollision","cachedSourceContainer","findSourceContainer","activeId","idx","transformMapsEqual","key","val","other","_c","_d","source","targetContainer","containerRect","isPointInRect","itemRects","itemId","sortResult","sortableCollision","projectedIndex","isCross","allTransforms","sourceTransforms","targetTransforms","computeCrossContainerTransforms","computeShiftTransforms","dropIndicator","newSortable","prevState","startAutoScroll","findScrollableAncestor","tickAutoScroll","stopAutoScroll","threshold","speed","dir","pointer","createRect","sx","sy","distTop","distBottom","distLeft","distRight","prevPos","getScrollPosition","scrollElement","newPos","actualDx","actualDy","startDrag","event","origin","e","rectCenter","updateDrag","endDrag","overCollision","sortableState","cleanupDragState","cancelDrag","sensorCleanups","attachPointerSensor","element","sensorOpts","activationDist","activationDelay","pending","active","startPt","delayTimer","delayMet","rafId","pendingPos","pendingEvent","cleanup","onPointerMove","onPointerUp","onPointerCancel","onEscapeKey","onContextMenu","processMove","onPointerDown","pos","dist","distanceBetween","detach","attachKeyboardSensor","step","fastStep","kbDragging","onKeyDown","handleSortMove","amount","cur","handleSortHomeEnd","currentContainerId","container","isVert","isHoriz","newIndex","newContainerId","max","adjacent","findAdjacentContainer","moveToSortIndex","items","targetId","containerId","index","targetReg","currentId","direction","currentRect","currentCenter","closest","closestDist","cId","center","registerDraggable","m","registerDroppable","registerSortableContainer","getAnnouncement","type","listener","el","strategy","React","MotionProvider","useMotionContext","createOptionalContext","defaultUseMotionProps","defaultMotionProps","__spreadProps","__spreadValues","defaultUseMotionProps","React","originalStyles","HIDDEN_STYLE_DISPLAY","HIDDEN_STYLE_VISIBILITY","getHiddenStyle","strategy","applyHiddenStyles","element","hiddenStyle","resetStyles","_a","_b","_c","original","ANIMATION","TRANSITION","DATA_ATTRS","shouldSkipMotion","options","isPrefersReducedMotion","mergeOptions","inOptions","defaultOptions","__spreadValues","acc","key","value","_a","resolveClassNames","name","enterClass","leaveClass","getMotionHooks","getMotionMetadata","element","expectedType","styles","getDelaysAndDurations","type","delays","durations","toMs","transitionDelays","transitionDurations","animationDelays","animationDurations","transitionTimeout","d","i","animationTimeout","timeout","count","resolveDuration","duration","phase","resolveCSSVarName","prefix","setDimensionVariables","autoHeight","autoWidth","cssVarPrefix","isObject","setCSSProperty","setAutoDimensionVariables","dimensions","getHiddenElementDimensions","setMotionPhase","setMotionState","state","removeMotionPhase","removeMotionState","attr","EMPTY_ROOT_PROPS","DEFAULT_MOTION_OPTIONS","createMotion2","element","options","opts","skipMotion","classNames","cancelCurrent","hooks","init","newOpts","V","j","k","_","run","phase","__async","onBefore","onStart","onAfter","onCancelled","event","q","O","fromClass","activeClass","toClass","h","P","p","Qt","M","resolve","duration","R","cleanup","B","onDone","whenEnd","instance","newElement","newOptions","endId","expectedType","explicitTimeout","id","resolveIfNotStale","type","timeout","count","C","endEvent","ended","end","onEnd","useMotion","withHeadless","defaultUseMotionProps","props","elementRef","renderedState","setRenderedState","state","motionRef","isInitialMount","getElement","_a","b","enter","leave","cancel","update","motionProps","__spreadProps","__spreadValues","resetStyles","applyHiddenStyles","cancelled","shouldAppear","widthVar","W","heightVar","rootProps","getHiddenStyle","Motion","withComponent","defaultMotionProps","instance","useMotion","id","props","state","ptmi","headlessRootProps","rootProps","w","MotionProvider","Component","React","isShallowEqualEntries","prev","next","i","createOverlayStore","items","listeners","snapshot","lastEntries","buildSnapshot","entries","item","_a","emit","l","listener","id","props","changed","key","__spreadProps","__spreadValues","_b","OverlayItemRenderer","store","render","defaults","mounted","setMounted","onOpenChange","event","onExitComplete","buildRenderComponent","renderHolder","defaultsHolder","OverlayManagerRender","RESERVED_KEYS","stripReservedKeys","createOverlayManager","options","Viewport","React","PrimeReactStyleSheet","Nt","attrs","key","_a","meta","css","name","l","__spreadProps","__spreadValues"]}
|